@remit/web-client-dist 0.0.628 → 0.0.630
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.
- package/assets/BriefPane-BKvJtW7P.js +1 -0
- package/assets/{CalendarComposePane-DfWDnSVI.js → CalendarComposePane-BnFar796.js} +1 -1
- package/assets/{CalendarComposeSeed-DH5mZaIr.js → CalendarComposeSeed-CoBJvY4z.js} +1 -1
- package/assets/{CalendarShell-B69HL1Vn.js → CalendarShell-Cn0I6Vvm.js} +1 -1
- package/assets/{EmptyState-28oCa06N.js → EmptyState-qd933Bsk.js} +1 -1
- package/assets/{ErrorState-BzYqAQcg.js → ErrorState-BVdOvQ-L.js} +1 -1
- package/assets/FlaggedPane-DFhN-9ba.js +1 -0
- package/assets/{FullCompose-DJNGdM6H.js → FullCompose-CDWH93DV.js} +1 -1
- package/assets/MailListHeader-DfTZIWWN.js +7 -0
- package/assets/{MailNav-c2yINVkf.js → MailNav-B7LPRzg0.js} +1 -1
- package/assets/{MailShell--9aT3BGW.js → MailShell-CtO2MHSB.js} +1 -1
- package/assets/{MailViewChrome-BAdVRGhG.js → MailViewChrome-CRWRFzzn.js} +1 -1
- package/assets/MailboxPane-BoORdnvC.js +1 -0
- package/assets/{NavMenuButton-BkuW2f2_.js → NavMenuButton-DCxmrboa.js} +1 -1
- package/assets/OnboardingWizard-BOS18etD.js +1 -0
- package/assets/{OpenCalendarEvent-TTnwIIyV.js → OpenCalendarEvent-C0IWaWHp.js} +1 -1
- package/assets/{OutboxPane-D8zYXC_h.js → OutboxPane-bdM0JZ5p.js} +1 -1
- package/assets/_calendarObjectId-CszYwgZK.js +1 -0
- package/assets/_mailboxId-B40MVSCz.js +1 -0
- package/assets/_messageId-B-5KPdBL.js +1 -0
- package/assets/_messageId-C-BDVSar.js +1 -0
- package/assets/_messageId-DHyiKpfu.js +1 -0
- package/assets/_outboxMessageId-BaSa8b00.js +1 -0
- package/assets/_recurrenceId-BhKedEWc.js +1 -0
- package/assets/_threadId-BsqrhV7R.js +1 -0
- package/assets/_threadId-DV9SY40E.js +1 -0
- package/assets/_threadId-DYXL40KB.js +1 -0
- package/assets/{_view._date-Blp0nEoE.js → _view._date-CZhuTU9F.js} +1 -1
- package/assets/accounts-DiMUQMY7.js +1 -0
- package/assets/{advanced-S_vwbT38.js → advanced-D_pX30-x.js} +1 -1
- package/assets/{appearance-C8xToJJQ.js → appearance-BOJuYB8U.js} +1 -1
- package/assets/attendee-row-B9hpEAkf.js +1 -0
- package/assets/{avatar-BfRzACAd.js → avatar-PpJvUKcb.js} +1 -1
- package/assets/{bell-off-BGNttWrY.js → bell-off-DjlvvPfg.js} +1 -1
- package/assets/{bottom-sheet-DLdGdNT_.js → bottom-sheet-CLPeQJ-f.js} +1 -1
- package/assets/{brief-BfNVHwc8.js → brief-BS1vz3Kk.js} +1 -1
- package/assets/brief-DEPt5dOD.js +1 -0
- package/assets/{browser-ponyfill-BSP7q0CW.js → browser-ponyfill-Bo8ta8J-.js} +1 -1
- package/assets/{bug-VvRcGYKb.js → bug-CWQYBkcg.js} +1 -1
- package/assets/{calendar-BTrztmC9.js → calendar-2UCxXQ4E.js} +1 -1
- package/assets/{calendar-clash-strip-D0oSgsYp.js → calendar-clash-strip-c-C-246X.js} +1 -1
- package/assets/{calendar-format-Cuk-IqMF.js → calendar-format-DVsu1tdP.js} +1 -1
- package/assets/{calendar-report-BP6aGPQB.js → calendar-report-BSFSM3jR.js} +1 -1
- package/assets/{calendar-suggestion-DRetUYmN.js → calendar-suggestion-CHYcokek.js} +1 -1
- package/assets/{calendars-DKHAPwlL.js → calendars-CBF96bdc.js} +1 -1
- package/assets/{card-Bn8Hl7rv.js → card-CFZSFXnj.js} +1 -1
- package/assets/checkbox-D45SsLVD.js +1 -0
- package/assets/chevron-left-Dg14UM2R.js +1 -0
- package/assets/{circle-check-DbWUDsDQ.js → circle-check-B6oXrwfe.js} +1 -1
- package/assets/{circle-check-big-_TJ-VjVx.js → circle-check-big-Bu9AuvPt.js} +1 -1
- package/assets/{circle-help-DjnTO-lQ.js → circle-help-6IBYDO3B.js} +1 -1
- package/assets/{clock-uaFy-j4_.js → clock-CPAnQ_i3.js} +1 -1
- package/assets/compose._-_outboxMessageId_-B4t2fJLb.js +1 -0
- package/assets/compose._-_outboxMessageId_-BMFssK09.js +1 -0
- package/assets/compose._-_outboxMessageId_-DSnu1i9E.js +1 -0
- package/assets/compose._-_outboxMessageId_-DcE9zfZL.js +1 -0
- package/assets/{config-import-BfXysHsA.js → config-import-7Zb_lato.js} +1 -1
- package/assets/{confirm-dialog-CxwxNGW_.js → confirm-dialog-D1IHJ9VI.js} +1 -1
- package/assets/{copy-Ce9dPJUN.js → copy-9UGj2CAA.js} +1 -1
- package/assets/{credential-steps-CSuwTPyr.js → credential-steps-Mk-2QOA_.js} +1 -1
- package/assets/{download-DndLNGVd.js → download-CAhteD36.js} +1 -1
- package/assets/{file-json-xCACRicJ.js → file-json-iOuRtvIw.js} +1 -1
- package/assets/{filters-cKyjKiJX.js → filters-DjM2I58C.js} +1 -1
- package/assets/{flagged-C65tBcvn.js → flagged-BKMxZCzW.js} +1 -1
- package/assets/flagged-CSRF6tBk.js +1 -0
- package/assets/{folders-D4GtRo_k.js → folders-DCSbUoTs.js} +1 -1
- package/assets/{help-copy-DIony4zd.js → help-copy-C5TvfyZk.js} +1 -1
- package/assets/{import-CG3doznc.js → import-CmB-tXBk.js} +1 -1
- package/assets/index-BLFkszsy.js +1 -0
- package/assets/{index-DLVOTSNL.js → index-Bawa3pbn.js} +4 -4
- package/assets/index-C-BDVSar.js +1 -0
- package/assets/index-C6KMLRdE.js +1 -0
- package/assets/{index-HuhbOhsZ.js → index-C84DA66y.js} +1 -1
- package/assets/index-Cb0cdgd5.js +1 -0
- package/assets/index-CdOyIyOK.js +1 -0
- package/assets/{index-CzAIxx9Z.css → index-DBfeW6p_.css} +1 -1
- package/assets/index-DHyiKpfu.js +1 -0
- package/assets/index-DJL9ctko.js +1 -0
- package/assets/index-Dt5GH2pJ.js +1 -0
- package/assets/index-J3262KK1.js +1 -0
- package/assets/{index-CcbTB5sD.js → index-t5crud3K.js} +20 -20
- package/assets/{kbd-C927jK4P.js → kbd-DgqltlqE.js} +1 -1
- package/assets/{labels-DdHxlXiH.js → labels-D_dfVjw5.js} +1 -1
- package/assets/{mail-BGx3b4IE.js → mail-BKY3XCrg.js} +1 -1
- package/assets/mail-DPCoAufC.js +1 -0
- package/assets/{menu-BlO9U_uh.js → menu-Cz4Ftzyn.js} +1 -1
- package/assets/minus-CKFao0fn.js +1 -0
- package/assets/{new-Cb3bUHQj.js → new-BeSNxH0U.js} +1 -1
- package/assets/onboarding-BzlDvLEe.js +1 -0
- package/assets/{onboarding-completion-tC51Y0Qh.js → onboarding-completion-BYQLWZTY.js} +1 -1
- package/assets/outbox-CjFZ__AG.js +1 -0
- package/assets/{pencil-C5Z2yWAL.js → pencil-IKOz1Z_M.js} +1 -1
- package/assets/{popover-menu-ySklKha2.js → popover-menu-DXuYrnhR.js} +1 -1
- package/assets/{refresh-cw-DYkfaCKh.js → refresh-cw-DPDAyIIa.js} +1 -1
- package/assets/{rich-text-mV-FWtiq.js → rich-text-BfMvo4La.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-DpOk3CBy.js → rich-text-spellcheck-worker-provider-D09y2o4I.js} +1 -1
- package/assets/{rotate-ccw-Bo4Kjyvq.js → rotate-ccw-C9iNb57I.js} +1 -1
- package/assets/{roving-focus-vUQMkWse.js → roving-focus-DBAJObjP.js} +1 -1
- package/assets/{row-actions-ADKfMpto.js → row-actions-gHLFzk4u.js} +1 -1
- package/assets/{search-mirror-DNVnl0Bz.js → search-mirror-DlivavUl.js} +1 -1
- package/assets/{search-token-index-BYHoSA7d.js → search-token-index-CrObJoxe.js} +1 -1
- package/assets/{sections-DYg5zJ6k.js → sections-gZ1dvgtD.js} +1 -1
- package/assets/{senders-Dmg6lEiJ.js → senders-CdxYRHNl.js} +1 -1
- package/assets/settings-aDu0QzH_.js +1 -0
- package/assets/{settings-screen-CeW5ksV6.js → settings-screen-B749ZQCh.js} +1 -1
- package/assets/{shield-check-DnptXaiX.js → shield-check-Crm-XFcM.js} +1 -1
- package/assets/{suggested-vips-DNYJx7cj.js → suggested-vips-HNjr32BZ.js} +1 -1
- package/assets/{undo-2-Cgt6seFp.js → undo-2-G1Yvb8Jw.js} +1 -1
- package/assets/{useCalendarData-tOjD-sM9.js → useCalendarData-TX9MyaAN.js} +1 -1
- package/assets/{useCalendarWrites-CgwnlsLN.js → useCalendarWrites-DdKDh0DK.js} +1 -1
- package/assets/{useCalendars-RTghAiMI.js → useCalendars-B8RzWXbM.js} +1 -1
- package/assets/{useDebouncedValue-aHAKoTFI.js → useDebouncedValue-LUaMlgn7.js} +1 -1
- package/assets/{useFilters-CrEu6ABm.js → useFilters-Hg6WK6JG.js} +1 -1
- package/assets/{useLabels-DAY52Umi.js → useLabels-C5MNOzEr.js} +1 -1
- package/assets/{useLayoutTier-DLwSx4uw.js → useLayoutTier-pkdyP-pL.js} +1 -1
- package/assets/{useMessageBodyContent-DsJGPt91.js → useMessageBodyContent-azL4b3YG.js} +1 -1
- package/assets/{useQueries-BdXHQsH0.js → useQueries-BHKFrgem.js} +1 -1
- package/assets/{useRefreshControl-BHvXurmD.js → useRefreshControl-CbSCttkS.js} +1 -1
- package/assets/{useResultFolderIndex-vej7cJKZ.js → useResultFolderIndex-D0PUXjDa.js} +1 -1
- package/assets/{useSearchTokenContext-ByaKT82a.js → useSearchTokenContext-Cf-ZuaNT.js} +1 -1
- package/assets/{useSemanticSearch-DTxWqPzH.js → useSemanticSearch-BmWmvU_l.js} +1 -1
- package/assets/{useSignature-5UitVKwT.js → useSignature-CDJGYLT1.js} +1 -1
- package/index.html +2 -2
- package/package.json +1 -1
- package/assets/BriefPane-tHzUzzx1.js +0 -1
- package/assets/FlaggedPane-FDV2sAhQ.js +0 -1
- package/assets/MailListHeader-DvOWAj7-.js +0 -7
- package/assets/MailboxPane-Cvh0G1l2.js +0 -1
- package/assets/OnboardingWizard-CalyNM8V.js +0 -1
- package/assets/_calendarObjectId-DqvyUPbd.js +0 -1
- package/assets/_mailboxId-B5uTqd_A.js +0 -1
- package/assets/_messageId-BaTU4Qh8.js +0 -1
- package/assets/_messageId-DOYmBloa.js +0 -1
- package/assets/_messageId-M7jqBTxZ.js +0 -1
- package/assets/_outboxMessageId-B4gATrDu.js +0 -1
- package/assets/_recurrenceId-C6vHv8g0.js +0 -1
- package/assets/_threadId-40dUXZDK.js +0 -1
- package/assets/_threadId-W0xEPNq7.js +0 -1
- package/assets/_threadId-usCXu9pW.js +0 -1
- package/assets/accounts-C1vLHE6M.js +0 -1
- package/assets/attendee-row-DzVGYTJn.js +0 -1
- package/assets/brief-B8Maf2nT.js +0 -1
- package/assets/chevron-left-2Pgm8rQs.js +0 -1
- package/assets/compose._-_outboxMessageId_-BGlV_j4x.js +0 -1
- package/assets/compose._-_outboxMessageId_-DHGfeTdC.js +0 -1
- package/assets/compose._-_outboxMessageId_-DWih_4Y1.js +0 -1
- package/assets/compose._-_outboxMessageId_-DqUasn9w.js +0 -1
- package/assets/flagged-BYjHNvav.js +0 -1
- package/assets/index-BXcfGy1t.js +0 -1
- package/assets/index-BaTU4Qh8.js +0 -1
- package/assets/index-C1OT2u50.js +0 -1
- package/assets/index-CV3lav8x.js +0 -1
- package/assets/index-Cvv9ckN2.js +0 -1
- package/assets/index-DXDUYgt_.js +0 -1
- package/assets/index-DsVeiYQK.js +0 -1
- package/assets/index-wkHQTfII.js +0 -1
- package/assets/index-zvrNCDcg.js +0 -1
- package/assets/mail-CHF3I4M1.js +0 -1
- package/assets/onboarding-DPUjf0wy.js +0 -1
- package/assets/outbox-Cct9lTHi.js +0 -1
- package/assets/settings-ChbjiVxx.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as p,i as b,eF as I,c as C,eG as x,e0 as F,eH as D,h as y,eI as N,eJ as P,eK as L,eL as z}from"./index-
|
|
1
|
+
import{r as p,i as b,eF as I,c as C,eG as x,e0 as F,eH as D,h as y,eI as N,eJ as P,eK as L,eL as z}from"./index-t5crud3K.js";const W=(e,t)=>{if(e.state==="Expired")return"Expired";if(e.scope!=="Temporary"||!e.expiresAt)return"Active";const r=Date.parse(e.expiresAt);return Number.isNaN(r)?"Active":r<=t?"Expired":"Active"},B=e=>{if(!e)return;const t=Date.parse(e);if(!Number.isNaN(t))return new Date(t).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},M=(e,t=new Date)=>{if(!e)return;const r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!r)return;const[,a,i,n]=r,s=new Date(Number(a),Number(i)-1,Number(n),23,59,59,0);if(Number.isNaN(s.getTime()))return;const o=-t.getTimezoneOffset(),d=o>=0?"+":"-",l=Math.abs(o),c=String(Math.floor(l/60)).padStart(2,"0"),f=String(l%60).padStart(2,"0"),u=m=>String(m).padStart(2,"0");return`${s.getFullYear()}-${u(s.getMonth()+1)}-${u(s.getDate())}T${u(s.getHours())}:${u(s.getMinutes())}:${u(s.getSeconds())}${d}${c}:${f}`},h="None",G=e=>!e.literalClauses.some(t=>t.field==="HasWords"),O=e=>({...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h}),V=({mode:e,ruleScope:t})=>t==="standing"?"standing":t==="until"?"temporary":e==="selected"?"just-these":"all-like-these",X=({mode:e,ruleScope:t,anchorMessageId:r,clauses:a,matchOperator:i,moveMailboxId:n,until:s})=>({...e==="similar"&&r?{anchorMessageId:r}:{},matchOperator:i==="all"?"And":"Or",literalClauses:a.map(o=>({field:o.field,value:o.value})),moveMailboxId:n,expiresAt:t==="until"?M(s??""):void 0}),S=(e,t,r)=>({name:r,scope:t==="standing"?"Standing":"Temporary",...t==="temporary"&&e.expiresAt?{expiresAt:e.expiresAt}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h,...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{}}),T=new Set(["Complete","Failed"]),v=e=>e!==void 0&&T.has(e),w=1e3,J=15e3,_=e=>{const t=Math.max(0,e),r=w*2**t;return Math.min(r,J)},$=(e,t,r)=>{if(e)return{kind:r?"restartFailed":"startFailed",error:e};if(t)return{kind:"statusUnreadable",error:t}},Y=e=>{const[t,r]=p.useState(),a=b({...I(),onSuccess:g=>r(g.organizeJobId)}),{mutate:i}=a,n=C({...x({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:g=>{const E=g.state.data?.state;return v(E)?!1:_(g.state.dataUpdateCount)}}),s=p.useCallback(g=>{e&&i({path:{accountId:e},body:O(g)})},[e,i]),{refetch:o}=n,d=p.useCallback(()=>{o()},[o]),l=n.data,c=a.isPending?void 0:l,f=c?.state??a.data?.state,u=v(c?.state),m={state:f,matchedCount:c?.matchedCount??0,appliedCount:c?.appliedCount??0,failedCount:c?.failedCount??0,errorMessage:c?.errorMessage??""};return{start:s,refreshStatus:d,progress:m,isStarting:a.isPending,isRunning:!!t&&!u,isDone:u,failure:$(a.error,n.error,!!l)}},Z=["From","Subject","HasWords","ListId","FromDomain"],k=e=>{const t=e.trim(),r=t.match(/<([^>]+)>/);return(r?r[1]:t).trim().toLowerCase()},ee=(e,t)=>e==="ListId"?k(t):t.trim(),R=e=>e==="all"?"And":"Or",U=(e,t)=>{const r=e.widen!==void 0&&!e.widen.inactive,a=e.clauses.map(i=>({field:i.field,value:i.value}));return{...r&&t?{anchorMessageId:t}:{},matchOperator:R(e.matchOperator),literalClauses:a}},H=e=>e.anchorMessageId!==void 0||!e.literalClauses.some(t=>t.field==="HasWords"),Q=e=>JSON.stringify({anchor:e.anchorMessageId??null,operator:e.matchOperator,clauses:e.literalClauses.map(t=>`${t.field} ${t.value}`)}),te=(e,t)=>{const r=U(e,t);return{...r.anchorMessageId?{anchorMessageId:r.anchorMessageId}:{},matchOperator:r.matchOperator,literalClauses:r.literalClauses,moveMailboxId:e.moveMailboxId,labelId:e.labelId,expiresAt:e.scope==="until"?M(e.until??""):void 0}},j=(e,t)=>{if(e.error!==void 0&&e.errorSignature===t)return{status:"error",reason:e.error};if(e.count===void 0)return{status:"loading"};const r=e.indexEmpty===!0?{indexEmpty:!0}:{};return e.previewedSignature===t?{status:"ready",count:e.count,...r}:{status:"ready",count:e.count,stale:!0,...r}},q=350,re=(e,t,r)=>{const a=b(F()),{mutateAsync:i}=a,n=Q(t),[s,o]=p.useState(()=>({})),d=p.useRef(t);d.current=t;const l=p.useRef(n),c=H(t);return p.useEffect(()=>{if(!e||!c||n===s.previewedSignature||n===s.errorSignature)return;const f=setTimeout(()=>{const u=n;l.current=u,i({path:{accountId:e},body:O({...d.current})}).then(m=>{l.current===u&&o({count:m.matchedCount,matchedIds:m.messageIds,indexEmpty:m.semanticIndexEmpty===!0,previewedSignature:u})}).catch(m=>{l.current===u&&o(g=>({...g,error:m instanceof Error?m.message:"Couldn't count matches.",errorSignature:u}))})},q);return()=>clearTimeout(f)},[e,c,n,s.previewedSignature,s.errorSignature,i]),c?{count:j(s,n),matchedIds:s.previewedSignature===n?s.matchedIds??[]:[]}:{count:{status:"error",reason:D},matchedIds:[]}},A=e=>P({path:{accountId:e}}),se=e=>{const t=C({...L({path:{accountId:e??""}}),enabled:!!e});return{filters:t.data?.items??[],isPending:t.isPending,isError:t.isError,error:t.error,refetch:t.refetch}},ae=e=>{const t=y(),r=b({...N(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a,mutateAsync:i}=r,n=p.useCallback((o,d,l)=>{e&&a({path:{accountId:e},body:S(o,d,l)})},[e,a]),s=p.useCallback(async(o,d,l)=>e?i({path:{accountId:e},body:S(o,d,l)}).then(()=>!0,()=>!1):!1,[e,i]);return{createFilter:n,createFilterAsync:s,isPending:r.isPending,isSuccess:r.isSuccess,isError:r.isError,error:r.error,reset:r.reset}},ne=e=>{const t=y(),r=b({...z(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a}=r;return{deleteFilter:p.useCallback(n=>{e&&a({path:{accountId:e,filterId:n}})},[e,a]),isPending:r.isPending,deletingFilterId:r.isPending?r.variables?.path.filterId:void 0}};export{h as N,Z as S,Y as a,A as b,te as c,B as d,se as e,W as f,ne as g,O as h,ae as i,X as j,G as k,ee as n,V as o,M as p,U as r,re as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as p,ep as L,h as n,i as l,eq as d,r as o,er as y,es as c,et as g}from"./index-
|
|
1
|
+
import{c as p,ep as L,h as n,i as l,eq as d,r as o,er as y,es as c,et as g}from"./index-t5crud3K.js";const u=e=>y({path:{accountId:e}}),f=e=>{const r=p({...L({path:{accountId:e??""}}),enabled:!!e});return{labels:r.data?.items??[],isPending:r.isPending,isError:r.isError,error:r.error,refetch:r.refetch}},h=e=>{const r=n(),t=l({...d(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutateAsync:s}=t;return{createLabel:o.useCallback((a,i="Default")=>e?s({path:{accountId:e},body:{name:a,color:i}}):Promise.reject(new Error("No account")),[e,s]),isPending:t.isPending,isError:t.isError,error:t.error,reset:t.reset}},m=e=>{const r=n(),t=l({...c(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutate:s}=t;return{updateLabel:o.useCallback((a,i)=>{e&&s({path:{accountId:e,labelId:a},body:i})},[e,s]),isPending:t.isPending,updatingLabelId:t.isPending?t.variables?.path.labelId:void 0}},C=e=>{const r=n(),t=l({...g(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutate:s}=t;return{deleteLabel:o.useCallback(a=>{e&&s({path:{accountId:e,labelId:a}})},[e,s]),isPending:t.isPending,deletingLabelId:t.isPending?t.variables?.path.labelId:void 0}};export{f as a,m as b,C as c,h as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c1 as s,c2 as e}from"./index-
|
|
1
|
+
import{c1 as s,c2 as e}from"./index-t5crud3K.js";const i=768,r=t=>t!=="desktop",a=()=>{const t=s(`(min-width: ${i}px)`);return s(e)?"desktop":t?"tablet":"phone"};export{r as i,a as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as c,u as S,cn as O,co as N,a9 as h,cp as B,q as P,ab as U,h as $,c as D,cN as F,cO as v}from"./index-
|
|
1
|
+
import{r as c,u as S,cn as O,co as N,a9 as h,cp as B,q as P,ab as U,h as $,c as D,cN as F,cO as v}from"./index-t5crud3K.js";const R="/mail/brief/compose/{-$outboxMessageId}",w="/mail/flagged/compose/{-$outboxMessageId}",E="/mail/outbox/compose/{-$outboxMessageId}",k="/mail/$mailboxId/compose/{-$outboxMessageId}";function T(){const e=h({from:R,shouldThrow:!1}),t=h({from:w,shouldThrow:!1}),r=h({from:E,shouldThrow:!1}),s=h({from:k,shouldThrow:!1});return e??t??r??s}function Y(){return T()!==void 0}function j(){return T()?.outboxMessageId}function L(e,t,r){return e==="flagged"?{to:w,params:{outboxMessageId:r}}:e==="outbox"?{to:E,params:{outboxMessageId:r}}:e==="mailbox"&&t?{to:k,params:{mailboxId:t,outboxMessageId:r}}:{to:R,params:{outboxMessageId:r}}}function g(){const e=S(),t=O(),{list:r,mailboxId:s}=N();return c.useCallback((n,o)=>{e({...L(r,s,n),search:a=>a,hash:o?.keepPanels?!0:t,replace:o?.replace??!1})},[e,t,r,s])}function J(){const e=g();return c.useCallback(()=>e(void 0),[e])}function V(){const e=g();return c.useCallback(t=>e(t),[e])}function Z(){const e=g();return c.useCallback(t=>e(t,{replace:!0,keepPanels:!0}),[e])}function ee(){return B()}const _=e=>{const t=e.filter(n=>!n.isMultipart&&n.disposition!=="attachment"&&n.mediaType==="TEXT"&&n.contentUrl.length>0),r=t.find(n=>n.mediaSubtype.toUpperCase()==="HTML");if(r)return{kind:"html",contentUrl:r.contentUrl};const s=t.find(n=>n.mediaSubtype.toUpperCase()==="PLAIN");return s?{kind:"text",contentUrl:s.contentUrl}:null},b={all:["messages"],detail:e=>[...b.all,"detail",e],body:e=>[...b.detail(e),"body"]};class f extends Error{reason;status;retryAfterSeconds;constructor(t,r,s,n){super(r),this.name="BodyFetchError",this.reason=t,this.status=s,this.retryAfterSeconds=n}}const q=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},K=8,Q="x-remit-403-reason",I=(e,t)=>{const r=t?.trim()??"";return e===401?"auth":e===403?r.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},X=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,G=(e,t)=>{const r=(t??"").toLowerCase();return!!(e==="text"&&r.startsWith("text/html"))},H=async(e,t,r=async()=>null)=>{const s={},n=await r();n&&(s.Authorization=`Bearer ${n}`);const o=await v(e,{headers:s});if(o.status===202)throw new f("not-ready","Message body is still syncing",202,q(o.headers.get("Retry-After")));if(!o.ok){const l=o.headers.get(Q),y=I(o.status,l);throw new f(y,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const a=o.headers.get("content-type");if(G(t,a))throw new f("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${a}`);const m=await o.text();if(X(m,a))throw new f("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return m},W=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),te=({messageId:e,bodyParts:t,enabled:r=!0})=>{const s=t?_(t):null,n=P(),{getToken:o}=U(),a=c.useRef(null),m=$(),l=c.useRef(!1),y=c.useRef(null),C=e&&s?`${e}:${s.contentUrl}`:null;y.current!==C&&(y.current=C,l.current=!1);const i=D({queryKey:e?[...b.body(e),s?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!s)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const d=l.current;return l.current=!1,W({fetchContent:(u,M)=>H(u,M,o),refetchDescribeMessage:()=>m.refetchQueries({queryKey:F({path:{messageId:e}})})},{contentUrl:s.contentUrl,kind:s.kind,isRetryAfterNotReady:d})},enabled:r&&!!e&&!!s,staleTime:300*1e3,gcTime:1800*1e3,retry:(d,u)=>u instanceof f&&u.reason==="not-ready"?d<K:d<1,retryDelay:(d,u)=>u instanceof f&&u.reason==="not-ready"?(l.current=!0,(u.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),p=i.isLoading&&!!s,x=t!==void 0&&s===null;c.useEffect(()=>{p&&(a.current=performance.now())},[p]),c.useEffect(()=>{i.isSuccess&&a.current!==null&&(n.recordTiming("message.body.load",Math.round(performance.now()-a.current)),a.current=null)},[i.isSuccess,n]);const A=i.data&&s?{kind:s.kind,body:i.data}:void 0;return{picked:s,data:A,isLoading:p,hasNoRenderablePart:x,isError:i.isError,error:i.error,refetch:i.refetch}};export{f as B,Y as a,te as b,j as c,Z as d,ee as e,V as f,I as g,J as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c3 as Q,c4 as y,c5 as S,c6 as w,c7 as C,h as k,c8 as q,c9 as x,r as p,ca as M,cb as H,cc as L,cd as P,ce as O,cf as B,cg as A}from"./index-
|
|
1
|
+
import{c3 as Q,c4 as y,c5 as S,c6 as w,c7 as C,h as k,c8 as q,c9 as x,r as p,ca as M,cb as H,cc as L,cd as P,ce as O,cf as B,cg as A}from"./index-t5crud3K.js";function R(r,e){const s=new Set(e);return r.filter(t=>!s.has(t))}function T(r,e,s){const t=r.slice(0);return t[e]=s,t}var z=class extends Q{#i;#e;#n;#r;#s;#t;#o;#u;#h;#c=[];constructor(r,e,s){super(),this.#i=r,this.#r=s,this.#n=[],this.#s=[],this.#e=[],this.setQueries(e)}onSubscribe(){this.listeners.size===1&&this.#s.forEach(r=>{r.subscribe(e=>{this.#d(r,e)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#s.forEach(r=>{r.destroy()})}setQueries(r,e){this.#n=r,this.#r=e,y.batch(()=>{const s=this.#s,t=this.#f(this.#n);t.forEach(o=>o.observer.setOptions(o.defaultedQueryOptions));const i=t.map(o=>o.observer),n=i.map(o=>o.getCurrentResult()),u=s.length!==i.length,a=i.some((o,d)=>o!==s[d]),f=u||a,b=f?!0:n.some((o,d)=>{const g=this.#e[d];return!g||!S(o,g)});!f&&!b||(f&&(this.#c=t,this.#s=i),this.#e=n,this.hasListeners()&&(f&&(R(s,i).forEach(o=>{o.destroy()}),R(i,s).forEach(o=>{o.subscribe(d=>{this.#d(o,d)})})),this.#p()))})}getCurrentResult(){return this.#e}getQueries(){return this.#s.map(r=>r.getCurrentQuery())}getObservers(){return this.#s}getOptimisticResult(r,e){const s=this.#f(r),t=s.map(n=>n.observer.getOptimisticResult(n.defaultedQueryOptions)),i=s.map(n=>n.defaultedQueryOptions.queryHash);return[t,n=>this.#l(n??t,e,i),()=>this.#a(t,s)]}#a(r,e){return e.map((s,t)=>{const i=r[t];return s.defaultedQueryOptions.notifyOnChangeProps?i:s.observer.trackResult(i,n=>{e.forEach(u=>{u.observer.trackProp(n)})})})}#l(r,e,s){if(e){const t=this.#h,i=s!==void 0&&t!==void 0&&(t.length!==s.length||s.some((n,u)=>n!==t[u]));return(!this.#t||this.#e!==this.#u||i||e!==this.#o)&&(this.#o=e,this.#u=this.#e,s!==void 0&&(this.#h=s),this.#t=w(this.#t,e(r))),this.#t}return r}#b(){return this.#r?.combine!==void 0&&this.#s.some((r,e)=>r.options.suspense&&this.#e[e]?.data===void 0)}#f(r){const e=new Map;this.#s.forEach(t=>{const i=t.options.queryHash;if(!i)return;const n=e.get(i);n?n.push(t):e.set(i,[t])});const s=[];return r.forEach(t=>{const i=this.#i.defaultQueryOptions(t),u=e.get(i.queryHash)?.shift()??new C(this.#i,i);s.push({defaultedQueryOptions:i,observer:u})}),s}#d(r,e){const s=this.#s.indexOf(r);s!==-1&&(this.#e=T(this.#e,s,e),this.#p())}#p(){if(this.hasListeners()){const r=this.#a(this.#e,this.#c),e=this.#b(),s=this.#t,t=e?s:this.#l(r,this.#r?.combine);(e||s!==t)&&y.batch(()=>{this.listeners.forEach(i=>{i(this.#e)})})}}};function U({queries:r,...e},s){const t=k(),i=q(),n=x(),u=p.useMemo(()=>r.map(h=>{const c=t.defaultQueryOptions(h);return c._optimisticResults=i?"isRestoring":"optimistic",c}),[r,t,i]);u.forEach(h=>{M(h);const c=t.getQueryCache().get(h.queryHash);H(h,n,c)}),L(n);const[a]=p.useState(()=>new z(t,u,e)),[f,b,o]=a.getOptimisticResult(u,e.combine),d=!i&&e.subscribed!==!1;p.useSyncExternalStore(p.useCallback(h=>d?a.subscribe(y.batchCalls(h)):P,[a,d]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),p.useEffect(()=>{a.setQueries(u,e)},[u,e,a]);const m=f.some((h,c)=>O(u[c],h))?f.flatMap((h,c)=>{const l=u[c];if(l&&O(l,h)){const E=new C(t,l);return B(l,E,n)}return[]}):[];if(m.length>0)throw Promise.all(m);const v=f.find((h,c)=>{const l=u[c];return l&&A({result:h,errorResetBoundary:n,throwOnError:l.throwOnError,query:t.getQueryCache().get(l.queryHash),suspense:l.suspense})});if(v?.error)throw v.error;return b(o())}export{U as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as E,a0 as K,t as Q,f as U,r as o,aT as R,h as N,C as $,E as z,F as B,q as G,P as I,Q as X,R as V,S as J}from"./index-
|
|
1
|
+
import{j as E,a0 as K,t as Q,f as U,r as o,aT as R,h as N,C as $,E as z,F as B,q as G,P as I,Q as X,R as V,S as J}from"./index-t5crud3K.js";import{C as Y}from"./circle-check-big-Bu9AuvPt.js";import{R as Z}from"./refresh-cw-DPDAyIIa.js";import{u as P}from"./useQueries-BHKFrgem.js";function ye({state:e,onRefresh:s,label:t,errorMessage:n,hasUpdate:a,size:u="sm",className:c}){const i=e==="refreshing",r=e==="error",h=e==="success",S=r?E.jsx(K,{className:"size-4 text-danger"}):h?E.jsx(Y,{className:"size-4 text-positive"}):E.jsx(Z,{className:Q("size-4",i&&"animate-spin")}),w=r?`${t} — failed: ${n??"try again"}`:i?`${t} — refreshing`:h?`${t} — up to date`:a?`${t} — new mail`:t;return E.jsxs("div",{className:"relative inline-flex",children:[E.jsx(U,{variant:"ghost",size:u,icon:S,onClick:s,disabled:i,"aria-label":w,"aria-busy":i||void 0,title:r?n:t,className:c}),e==="idle"&&a&&E.jsx("span",{"aria-hidden":"true",className:"absolute right-1 top-1 size-1.5 rounded-full bg-accent-2"})]})}const ee=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function L(e){return!!e&&ee.has(e)}const F=3e3,te=F*2,C={syncing:!1,resolved:!1,synced:0,total:0};function we(e,s){const t=e.join(","),[n,a]=o.useState(!1),[u,c]=o.useState(!1);o.useEffect(()=>{a(!1),c(!1)},[t,s]),o.useEffect(()=>{if(!s)return;const m=setTimeout(()=>c(!0),te);return()=>clearTimeout(m)},[t,s]);const i=P({queries:e.map(m=>({...R({path:{accountId:m}}),enabled:s&&!n,refetchInterval:F,meta:{softError:!0}}))}),r=i.every(m=>m.isSuccess||m.isError),h=i.length===0||r||u;let S=!1,w=0,y=0;for(const m of i)if(L(m.data?.syncPhase)){S=!0;for(const l of m.data?.mailboxes??[])w+=l.messagesSynced,y+=l.messagesTotal}const x=s&&h&&!S;return o.useEffect(()=>{x&&a(!0)},[x]),!s||!h?C:{syncing:S,resolved:!0,synced:w,total:y}}const se=180*1e3,xe=30*1e3;let q=0;const M=new Set,re=(e=Date.now())=>{q=e+se;for(const s of M)s()},pe=(e=Date.now())=>e<q,Ee=e=>(M.add(e),()=>{M.delete(e)}),T=6e4,ne=new Set(["sent","drafts","trash","archive"]),_=(e,s)=>{const t=new Map;for(const n of e){const a=s.get(n.mailboxId)?.role;a&&ne.has(a)||t.set(n.mailboxId,n.highWaterMarkUid)}return t},j=(e,s)=>{const t=[];for(const[n,a]of s)a>(e.get(n)??0)&&t.push(n);return t},oe=(e,s)=>j(e,s).length>0,D=o.createContext(null),ae=()=>{const e=o.useContext(D);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function be({accountIds:e,children:s}){const t=N(),{resultFolderIndex:n}=$(),a=o.useRef(new Map),u=o.useRef(new Set),c=o.useRef(new Map),[i,r]=o.useState(new Set),h=P({queries:e.map(l=>({...R({path:{accountId:l}}),refetchInterval:T,staleTime:T,meta:{softError:!0}}))}),S=h.map(l=>l.dataUpdatedAt).join(","),w=e.join(",");o.useEffect(()=>{let l=!1;const f=new Set(i);e.forEach((d,p)=>{const b=h[p]?.data;if(!b)return;const g=_(b.mailboxes??[],n),v=c.current.get(d);if(c.current.set(d,g),v){const A=j(v,g);A.length>0&&z(t,B(A))}if(!u.current.has(d)){u.current.add(d),a.current.set(d,g);return}if(f.has(d))return;const W=a.current.get(d)??new Map;oe(W,g)&&(f.add(d),l=!0)}),l&&r(f)},[w,S]);const y=o.useCallback(l=>l.some(f=>i.has(f)),[i]),x=o.useCallback(l=>{r(f=>{if(l.every(p=>!f.has(p)))return f;const d=new Set(f);for(const p of l)d.delete(p);return d});for(const f of l){const d=t.getQueryData(R({path:{accountId:f}}).queryKey);a.current.set(f,_(d?.mailboxes??[],n)),u.current.add(f)}},[t,n]),m=o.useMemo(()=>({hasNewMail:y,acknowledge:x}),[y,x]);return E.jsx(D.Provider,{value:m,children:s})}const ie=2e3,ce=45e3,ue=e=>new Promise(s=>setTimeout(s,e)),k=e=>e instanceof Error&&e.message?e.message:"Something went wrong",le=e=>{V(e,{softError:!0},"user")&&J(e)},O=(e,s)=>e.fetchQuery({...R({path:{accountId:s}}),staleTime:0}),H=e=>e.mailboxes?.find(s=>s.fullPath?.toUpperCase()==="INBOX")?.lastSyncedAt??0,fe=async({accountId:e,readStatus:s,baselineLastSyncAt:t,baselineInboxSyncedAt:n=0,onInboxSynced:a,deadline:u,pollMs:c=ie})=>{let i=!1;for(;;){const r=await s().then(y=>({ok:!0,data:y})).catch(y=>({ok:!1,error:y}));if(!r.ok)return{accountId:e,message:k(r.error)};const{syncPhase:h,lastSyncAt:S}=r.data;if((S??0)>t&&!L(h))return h==="error"?{accountId:e,message:"Sync failed for this account"}:void 0;if(!i&&H(r.data)>n&&(i=!0,a?.()),Date.now()>=u)return{accountId:e,message:"Refresh is taking longer than usual"};await ue(c)}},de=async(e,s,t,n,a)=>{const u=await O(e,t).then(r=>({ok:!0,lastSyncAt:r.lastSyncAt??0,inboxSyncedAt:H(r)})).catch(r=>({ok:!1,error:r}));if(!u.ok)return{accountId:t,enqueued:!1,ok:!1,message:k(u.error)};const c=await I({path:{accountId:t},throwOnError:!0}).then(()=>({ok:!0})).catch(r=>({ok:!1,error:r}));if(!c.ok)return le(c.error),{accountId:t,enqueued:!1,ok:!1,message:k(c.error)};s.recordEvent("sync.triggered");const i=await fe({accountId:t,readStatus:()=>O(e,t),baselineLastSyncAt:u.lastSyncAt,baselineInboxSyncedAt:u.inboxSyncedAt,onInboxSynced:()=>a(t),deadline:n});return i?{accountId:t,enqueued:!0,ok:!1,message:i.message}:{accountId:t,enqueued:!0,ok:!0}},Re=(e,s={})=>{const t=N(),n=G(),{acknowledge:a}=ae(),[u,c]=o.useState("idle"),[i,r]=o.useState(),h=o.useRef(0),S=o.useRef(e);S.current=e;const w=o.useRef(s);w.current=s,o.useEffect(()=>{if(u!=="success")return;const x=setTimeout(()=>c("idle"),2e3);return()=>clearTimeout(x)},[u]);const y=o.useCallback(()=>{const x=S.current;if(x.length===0){c("error"),r("Nothing to refresh yet");return}const m=++h.current;c("refreshing"),r(void 0),re();const l=f=>{h.current===m&&(t.invalidateQueries({queryKey:X({path:{accountId:f}})}),w.current.onSettled?.())};(async()=>{const f=Date.now()+ce,d=await Promise.all(x.map(g=>de(t,n,g,f,l)));if(h.current!==m)return;const p=d.filter(g=>g.enqueued).map(g=>g.accountId);for(const g of p)l(g);p.length>0&&a(p);const b=d.filter(g=>!g.ok);b.length===0?c("success"):(c("error"),r(b[0]?.message))})()},[a,t,n]);return{state:u,errorMessage:i,refresh:y}};export{xe as H,be as M,ye as R,Re as a,L as b,we as c,pe as i,Ee as s,ae as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as r,r as s,b7 as t}from"./index-
|
|
1
|
+
import{K as r,r as s,b7 as t}from"./index-t5crud3K.js";import{u as m}from"./useQueries-BHKFrgem.js";const a=i=>({items:i.map(e=>e.data?.items??[]),isPending:i.some(e=>e.isPending),error:i.find(e=>e.error)?.error??null});function u(i){const e=m({queries:i.map(o=>({...r({path:{accountId:o.accountId}}),staleTime:1/0})),combine:a});return{index:s.useMemo(()=>t(i.map((o,n)=>({folderAppointments:o.folderAppointments,mailboxes:e.items[n]??[]}))),[i,e]),isPending:e.isPending,error:e.error}}export{u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as h,j as a,cu as Y,t as b,I as X,h as Z,at as J,i as ee,av as te,cN as se,bS as re,ab as ne,a0 as ae,X as oe,d6 as _,d7 as I,C as ie,co as ce}from"./index-
|
|
1
|
+
import{r as h,j as a,cu as Y,t as b,I as X,h as Z,at as J,i as ee,av as te,cN as se,bS as re,ab as ne,a0 as ae,X as oe,d6 as _,d7 as I,C as ie,co as ce}from"./index-t5crud3K.js";import{K as A}from"./kbd-DgqltlqE.js";import{B as le,b as de}from"./useMessageBodyContent-azL4b3YG.js";import{i as ue}from"./search-scope-B5-OK3Cq.js";const me='"Geist Variable", "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',k={light:{fg:"oklch(0.3 0.025 235)",canvas:"oklch(0.96 0.015 90)",accent:"oklch(0.55 0.14 150)"},dark:{fg:"oklch(0.88 0.02 90)",canvas:"oklch(0.22 0.025 220)",accent:"oklch(0.78 0.16 150)"}},fe={background:!1,spacing:!1},he="16px",ge=()=>`html{padding:0}body{padding:${he};box-sizing:border-box}`,pe=()=>"html{overflow:hidden}body{overflow-x:auto}",be=/prefers-color-scheme\s*:\s*dark|color-scheme\s*:\s*[^;}"']*\bdark\b/i,ye='<meta name="viewport" content="width=device-width, initial-scale=1">',xe=e=>{const t=e?k.dark:k.light;return`
|
|
2
2
|
/* Plain-email base: UI font-stack + theme-aware colors (#424) */
|
|
3
3
|
html, body {
|
|
4
4
|
font-family: ${me};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as L,at as M,i as k,E as I,F as E,cz as A,el as R,r as v,dy as
|
|
1
|
+
import{h as L,at as M,i as k,E as I,F as E,cz as A,el as R,r as v,dy as w,j as p,em as h,en as D,eo as _,C as j,co as z,c as N,dS as Q,d6 as O}from"./index-t5crud3K.js";import{c as U}from"./popover-menu-DXuYrnhR.js";import{ai as q}from"./MailListHeader-DfTZIWWN.js";import{a as P}from"./useLabels-C5MNOzEr.js";import{n as B}from"./search-query-Cr_ZXBCp.js";import{b as F}from"./search-scope-B5-OK3Cq.js";import{u as G,p as H}from"./useSearchTokenContext-Cf-ZuaNT.js";const ne=e=>{const t=new Set;for(const s of e)s&&t.add(s);return t.size>1?{accountId:void 0,restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"}:{accountId:t.size===1?[...t][0]:void 0,restriction:void 0,moveDisabledHint:void 0}},K=e=>{const{mailboxId:t,messages:s}=e,n=L(),{pushError:l}=M(),{mutateAsync:c,isPending:a}=k({...R(),onError:(r,u)=>{l({title:u.body.action==="Remove"?"Couldn't remove label":"Couldn't apply label",detail:A(r),error:r})},onSettled:(r,u,d)=>{I(n,E(q(d.body.messageIds??[],s??[],t)))}});return{applyLabel:v.useCallback((r,u,d)=>{r.length!==0&&w(r,m=>c({body:{messageIds:m,labelId:u,action:d}}))},[c]),isPending:a}};function re({accountId:e,mailboxId:t,messageIds:s}){const{labels:n}=P(e),{applyLabel:l}=K({mailboxId:t}),c=v.useMemo(()=>n.map(a=>({key:a.labelId,label:a.name,icon:p.jsx("span",{className:`size-2.5 rounded-full ${D(a.color)?h[a.color]:h.Default}`}),onSelect:()=>l(s,a.labelId,"Apply")})),[n,s,l]);return c.length===0?null:p.jsx(U,{triggerLabel:"Apply label to selected messages",triggerIcon:p.jsx(_,{className:"size-4 text-fg-subtle"}),triggerText:"Apply label",items:c,align:"start",nested:!0,touch:!1,triggerClassName:"min-h-11 w-full justify-start gap-3 px-4 py-2.5 text-sm font-normal text-fg"})}const V=3,ie=({hasSearchQuery:e,freeText:t,residualTokenCount:s})=>{if(!e||s>0)return!1;const n=t.trim();return n.length===0||n.length>=V},ce=e=>e===void 0?{kind:"unknown"}:{kind:"exact",value:e},Y=20,$=new Set(Object.values(O)),J=e=>e!==void 0&&$.has(e)?e:void 0,W=e=>{if(e.some(t=>t.type==="isUnread"))return!1;if(e.some(t=>t.type==="isRead"))return!0};function le({mailboxId:e,filterCategory:t}={}){const{searchQuery:s}=j(),n=G(),l=z(),c=B(s),{freeText:a,tokens:i}=H(c,n),r=a.length>0,u=i.find(o=>o.type==="category"),d=J(t)??u?.category,m=i.some(o=>o.type==="hasAttachment")?!0:void 0,f=i.some(o=>o.type==="isStarred")?!0:void 0,y=W(i),b=i.find(o=>o.type==="after"),g=i.find(o=>o.type==="before"),S=i.find(o=>o.type==="in"),x=F({browsed:l,callerMailboxId:e,inTokenMailboxId:S?.mailboxId}),{data:T,isLoading:C}=N({...Q({query:{query:a,mailboxId:x,limit:Y,...d!==void 0?{category:d}:{},...m!==void 0?{hasAttachment:m}:{},...f!==void 0?{hasStars:f}:{},...y!==void 0?{isRead:y}:{},...b?{sentDateFrom:b.epochSeconds}:{},...g?{sentDateTo:g.epochSeconds}:{}}}),enabled:r,staleTime:6e4});return{hits:T?.items??[],isLoading:r&&C}}export{re as L,ne as r,ie as s,ce as t,le as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as g,at as p,c as f,d as m,r,i as y,av as T,o as E,l as d}from"./index-
|
|
1
|
+
import{h as g,at as p,c as f,d as m,r,i as y,av as T,o as E,l as d}from"./index-t5crud3K.js";const i={html:"",plainText:""},x=e=>{const u=g(),{pushError:o}=p(),{data:n}=f({...m(),staleTime:1/0}),l=r.useMemo(()=>{if(!e||!n)return i;const t=n.accounts.find(a=>a.accountId===e);return t?{html:t.signatureHtml??"",plainText:t.signaturePlainText??""}:i},[e,n]),s=y({...d(),onSuccess:()=>{u.invalidateQueries({queryKey:E()})},onError:t=>{o(T("Couldn't save signature","The signature wasn't saved.",t))}}),c=r.useCallback((t,a)=>{e&&s.mutate({path:{accountId:e},body:{signatureHtml:t,signaturePlainText:a}})},[e,s]);return{signature:l,setSignature:c,isSaving:s.isPending}};export{x as u};
|
package/index.html
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
} catch (_) {}
|
|
39
39
|
})();
|
|
40
40
|
</script>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
42
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-t5crud3K.js"></script>
|
|
42
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DBfeW6p_.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
|
45
45
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as n,L as kt,W as Et,eM as We,eN as ne,e1 as re,r,c as $e,C as ie,bq as Ot,cU as At,K as Ft,dT as Nt,eO as Bt,eP as Lt,a0 as Ye,ek as qt,eQ as Pt,ak as Dt,d4 as _t,d5 as Qt}from"./index-CcbTB5sD.js";import{g as Ve,e as zt,f as Je,u as Ht,p as Kt,R as Ut}from"./useSearchTokenContext-ByaKT82a.js";import{a8 as Gt,A as Wt,E as $t,ak as Yt,al as Vt,am as Jt,an as De,ao as Zt,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 _e,N as ps,K as xs,d as Is,Y as ys,Z as vs,$ as Ze,a0 as Xe,a1 as bs,a2 as Ss,a3 as Cs}from"./MailListHeader-DvOWAj7-.js";import{u as Ts,a as ws,R as Rs,b as Ms,c as js}from"./useRefreshControl-BHvXurmD.js";import{u as ae}from"./useQueries-BdXHQsH0.js";import{t as et,s as ks,u as Es,r as Os,L as As}from"./useSemanticSearch-DTxWqPzH.js";import{a as Fs}from"./useLabels-DAY52Umi.js";import{u as Ns}from"./useLayoutTier-DLwSx4uw.js";import{d as Bs,w as Ls}from"./wizard-selection-DxUM65kM.js";import{m as qs,e as Ps,f as Ds}from"./search-token-index-BYHoSA7d.js";import{u as tt}from"./sections-DYg5zJ6k.js";import{R as _s}from"./refresh-cw-DYkfaCKh.js";import{a as Qs}from"./useMessageBodyContent-DsJGPt91.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=Je(e);if(t)return st.find(s=>s.name===t.name&&s.value===t.value.toLowerCase())?.id},ye=e=>{const t=Je(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,Js={kind:"unknown"},Ke=e=>(t,s)=>Gt(s?.queryKey,e)?t:void 0,Zs=(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=Zs(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):Js,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),P=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,_=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)){P(o);return}const f=Ws(l,o);f!==void 0&&h(f)},[E,l,h,P]),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)&&Jt(f,$)),[Me,$]),J=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]),Z=r.useMemo(()=>V(Ce),[Ce,V]),pt=r.useCallback(o=>{Y.find(f=>f.category===o)?.retry()},[Y]),R=r.useMemo(()=>y?Z:J.flatMap(o=>o.rows),[y,Z,J]),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}=Zt(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(Z)}]:Xt(J.map(f=>({...f,rows:o(f.rows)})))},[y,Z,J,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:_,expanded:le,onExpandedChange:j,onSelectCategory:f=>k(f),onSelectSource:F,onToggleFilter:f=>I(f),onClear:ue}},[ge,z,Q,_,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,{})]}),Pe=!me&&!we&&!Le,Rt=ss({tier:p,hasLiveInput:E,hasCommittedQuery:d.trim().length>0,bodyRendersCommittedResults:!0}),Mt=Pe?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:_,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(_s,{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:Pe&&!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=Ps(),a=Ds(),i=tt(),{searchInput:c}=ie(),d=e?.threadId,l=e?.messageId,{data:u}=$e({...Pt(),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=_e({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,P=_e({thread:j,isOpen:j?.messageId===b}),U=Qs(),E=Dt(),w=_t(),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:_,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")||P.deleteThread()},toggleStar:P.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(_),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(Ze,{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(Ze,{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 +0,0 @@
|
|
|
1
|
-
import{eN as _,r as o,e1 as J,c as de,C as K,bq as le,cU as ce,aH as ue,aI as ge,j as a,ak as he,d4 as me,d5 as fe}from"./index-CcbTB5sD.js";import{u as pe,p as U,R as Ie}from"./useSearchTokenContext-ByaKT82a.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 Y,a0 as Z,a1 as De,a2 as qe,a3 as Ee}from"./MailListHeader-DvOWAj7-.js";import{u as Be,l as Qe,b as He,a as Ke}from"./MailViewChrome-BAdVRGhG.js";import{f as ze}from"./ErrorState-BzYqAQcg.js";import{d as Ve,w as Ge}from"./wizard-selection-DxUM65kM.js";import{a as Ue}from"./useMessageBodyContent-DsJGPt91.js";import{e as We,f as _e}from"./search-token-index-BYHoSA7d.js";import{u as Je}from"./sections-DYg5zJ6k.js";const z=e=>({...e,starred:!0,order:"desc"}),Ye=(e={})=>J({query:z(e)});function $(e={}){const{data:t,isLoading:s,isError:r,error:c,refetch:u,fetchNextPage:n,hasNextPage:g,isFetchingNextPage:h}=Be({queryKey:Ye(e),queryFn:async({pageParam:I})=>{const{data:l}=await _({query:{...z(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 Ze(e={}){const t={...z(e),unread:!0,count:!0,results:!1},{data:s}=de({queryKey:J({query:t}),queryFn:async()=>{const{data:r}=await _({query:t,throwOnError:!0});return r},staleTime:6e4});return s?.count}const $e=["from","subject","category","unread","starred","attachments"],Xe=(e,t)=>{const s=xe(e),{params:r,residual:c}=Te(t,{...s,starred:!0},$e);return{criteria:{...r,...s},residual:c}};function et({rows:e,verb:t}){const{selectedIds:s,exitSelection:r}=Fe(),c=o.useMemo(()=>Ge(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}=K(),h=pe(),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}=U(u.trim().toLowerCase(),h),L=U(u.trim(),h).freeText,{criteria:N,residual:f}=o.useMemo(()=>Xe({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:E,refetch:M,fetchNextPage:B,hasNextPage:Q,isFetchingNextPage:O}=$(F),p=o.useMemo(()=>Ve(A).map(ye).filter(i=>be(i,f)),[A,f]),d=o.useCallback((i,S)=>{const x=p.find(ie=>ie.id===i)?.threadId;x&&t?.({threadId:x,messageId:i},S)},[p,t]),C=o.useCallback(i=>{const S=i.threadId??p.find(x=>x.id===i.id)?.threadId;S&&t?.({threadId:S,messageId:i.id})},[p,t]),H=o.useMemo(()=>ve(),[]),te=o.useMemo(()=>p.map(i=>Ce(i,n)),[p,n]),se=Ze(F)??null,ae=o.useMemo(()=>v.filter(i=>i.type!=="isStarred"),[v]),re=Qe({chips:{category:l,attributes:b},tokens:ae,reach:f.length>0?"loaded-pages":"whole-folder",onClear:T}),V=D?"loading":y?"error":p.length===0?"empty":"ready",oe=o.useCallback(()=>{const i=ue(ge());window.open(i,"_blank","noopener,noreferrer")},[]),G=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:p.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(He,{title:"Starred",unreadCount:se,preset:H,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:p,onOpen:d,onDeleteMessages:c,onSelectionVerb:I.start,commandsRef:s,onTriageContextChange:r,children:[a.jsx(Ke,{listTitle:"Starred",sections:[{id:"flagged",threads:p}],flatList:!0,hideHeader:!0,listState:G.searchResults?"ready":V,listFilter:re,listScopeLabel:"Starred",searchQuery:L||void 0,errorMessage:y?ze(E):void 0,onRetry:()=>M(),onReportError:oe,selectedThreadId:e,onSelectThread:d,isDesktop:k,selectionBar:a.jsx(je,{title:"Starred"}),listBody:G.searchResults??(V==="ready"?ne:void 0)}),a.jsx(et,{rows:p,verb:I.verb})]})})}const X=o.createContext(null);function q(){const e=o.useContext(X);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function st({thread:e,children:t}){const s=We(),r=_e(),c=Je(),{searchInput:u}=K(),n=e?.threadId,g=e?.messageId,{threads:h}=$(),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,f=o.useMemo(()=>h.find(d=>d.messageId===L),[h,L])??l,F=W({thread:f,isOpen:f?.messageId===m}),A=Ue(),D=he(),y=me(),E=o.useMemo(()=>fe(y,n,m),[y,n,m]),M=o.useMemo(()=>{if(f)return d=>y({threadId:f.threadId,messageId:f.messageId,mode:d})},[y,f]),{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")||f&&v([f.messageId],!f.isRead)},goBrief:()=>c("brief"),goSettings:()=>c("settings")}}),O=o.useCallback(d=>{if(!d)return;const C=h.find(H=>H.messageId===d);return C?{threadId:C.threadId,messageId:d}:void 0},[h]),p={selectedMessageId:m,selectedThread:l,conversation:b,onOpenThread:P,onCloseThread:r,nextThread:O(B),previousThread:O(Q),actions:w,onReply:E,triage:T,onDeleteMessages:j,handleDeselectIfRemoved:R};return a.jsx(X.Provider,{value:p,children:t})}function ee(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:r}=q();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}=q(),u=!!e,n=qe(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(Ee,{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(Y,{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(Z,{isOpen:n.drawerOpen,onClose:n.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:c})]})}function rt(){const{selectedThread:e,handleDeselectIfRemoved:t}=q(),{onToggleIntelligence:s}=K();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}=q(),g=Ae(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(Y,{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(Z,{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 ft=Object.assign(st,{List:ee,Reading:at,Intelligence:rt,Phone:ot});export{ft as F};
|