@remit/web-client-dist 0.0.371 → 0.0.372
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-DrZfK0Gd.js → BriefPane-BDUlX1dd.js} +1 -1
- package/assets/{ErrorState-BSxJF2PW.js → ErrorState-CNRyRb6l.js} +1 -1
- package/assets/{FlaggedPane-BM3k3lvQ.js → FlaggedPane-Y2qJ-pRo.js} +1 -1
- package/assets/{FullCompose-Cv5wtn3l.js → FullCompose-sO0aEoyo.js} +1 -1
- package/assets/{MailListHeader-Csp5my8W.js → MailListHeader-D31JcI05.js} +2 -2
- package/assets/{MailViewChrome-BjC9URoJ.js → MailViewChrome-CUDvmwTn.js} +1 -1
- package/assets/{MailboxPane-ClyP2dRI.js → MailboxPane-DbcxmYLE.js} +1 -1
- package/assets/{NavMenuButton-CZLcxZyh.js → NavMenuButton-BmjnuYnv.js} +1 -1
- package/assets/{OnboardingWizard-ZXgEMD6r.js → OnboardingWizard-NmbXX13A.js} +1 -1
- package/assets/{OutboxPane-DqQef49V.js → OutboxPane-CuFD7jTd.js} +1 -1
- package/assets/_mailboxId-BMoBs8x5.js +1 -0
- package/assets/_messageId-DZ-036Eg.js +1 -0
- package/assets/_messageId-DwLC2u56.js +1 -0
- package/assets/_messageId-DxTnKS-9.js +1 -0
- package/assets/_outboxMessageId-BGSaMsgb.js +1 -0
- package/assets/_threadId-D1gZ7Nwd.js +1 -0
- package/assets/_threadId-Dboy5fMG.js +1 -0
- package/assets/_threadId-I8cwucoX.js +1 -0
- package/assets/{accounts-CeYPFdwe.js → accounts-idwnTro-.js} +1 -1
- package/assets/{advanced-CHUN9wBD.js → advanced-BtUfq8Sd.js} +1 -1
- package/assets/{appearance-CnzXYyRI.js → appearance-D_C_f5Pv.js} +1 -1
- package/assets/{attachment-file-RH0DWTsN.js → attachment-file-CmBlR4Nw.js} +1 -1
- package/assets/{avatar-DvkNhWxQ.js → avatar-DADuvAhc.js} +1 -1
- package/assets/{bottom-sheet-BDtFFCq0.js → bottom-sheet-DkNRMhO-.js} +1 -1
- package/assets/brief-DICffxfb.js +1 -0
- package/assets/{brief-CZGynABe.js → brief-RCH5MtG1.js} +1 -1
- package/assets/{browser-ponyfill-zMauGd3V.js → browser-ponyfill-BHPGYQtP.js} +1 -1
- package/assets/{bug-BUgCrEpO.js → bug-B1DCV8k2.js} +1 -1
- package/assets/{circle-check-BKvn8P17.js → circle-check-CZ6Y-mRM.js} +1 -1
- package/assets/{circle-check-big-Bapdm9QB.js → circle-check-big-CcGlW81M.js} +1 -1
- package/assets/{circle-help-CFXWKP84.js → circle-help-BgtRhroK.js} +1 -1
- package/assets/{clock-B-FX1jfS.js → clock-BAfOPOro.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BDqy5AQx.js +1 -0
- package/assets/compose._-_outboxMessageId_-BLvXHEbf.js +1 -0
- package/assets/compose._-_outboxMessageId_-DLTwyDE0.js +1 -0
- package/assets/compose._-_outboxMessageId_-yO7wXDO3.js +1 -0
- package/assets/{confirm-dialog-CU5m51NF.js → confirm-dialog-D9gyhlPW.js} +1 -1
- package/assets/{download-BGsvaoH2.js → download-CiIP3hvx.js} +1 -1
- package/assets/{filters-DUSN8Hed.js → filters-C3OBPVW-.js} +1 -1
- package/assets/{flagged-Bt84KN6x.js → flagged-BTDPgxgF.js} +1 -1
- package/assets/flagged-DqZib9uq.js +1 -0
- package/assets/{folders-tEn875YQ.js → folders-DKVIZCXc.js} +1 -1
- package/assets/index-B7lXGXvZ.js +1 -0
- package/assets/{index-oN0qOnC8.js → index-BOTjtS9M.js} +3 -3
- package/assets/index-CevfsXBN.js +1 -0
- package/assets/{index-RknGDPY9.js → index-CruZwy_j.js} +54 -54
- package/assets/index-D0jtKZ0E.js +1 -0
- package/assets/index-DZ-036Eg.js +1 -0
- package/assets/index-Din4hbj5.js +1 -0
- package/assets/index-DxTnKS-9.js +1 -0
- package/assets/index-tumrcnwg.js +1 -0
- package/assets/index-wvh1_3xJ.js +1 -0
- package/assets/{kbd-BXbj5hiP.js → kbd-CPpFVi9O.js} +1 -1
- package/assets/{labels-D0dmhQsE.js → labels-Caie2UeA.js} +1 -1
- package/assets/{mail-BMtAzo5U.js → mail-C1G9szr-.js} +1 -1
- package/assets/{mail-B-IOTgxO.js → mail-CvhP0j2e.js} +1 -1
- package/assets/{menu-O8i6xKri.js → menu-Csa6gu1E.js} +1 -1
- package/assets/{move-options-BgvDxycF.js → move-options-XwMlkuRe.js} +1 -1
- package/assets/{onboarding-rl4NxPg0.js → onboarding-DXQhAMkk.js} +1 -1
- package/assets/outbox-BLDXNwHc.js +1 -0
- package/assets/{pencil-DS4W5BHn.js → pencil-DHiKxe2W.js} +1 -1
- package/assets/{rich-text-De8Rc6J3.js → rich-text-C9mGofSm.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-vUcC0a30.js → rich-text-spellcheck-worker-provider-ofHr_Ndk.js} +1 -1
- package/assets/{rotate-ccw-BIz8-Z_u.js → rotate-ccw-BSKwjQcA.js} +1 -1
- package/assets/{row-actions-VNa2e2Fq.js → row-actions-BxDbSihO.js} +1 -1
- package/assets/{search-scope-BuiB7dLO.js → search-scope-BhgcAbIG.js} +1 -1
- package/assets/{search-token-index-BCiueBZU.js → search-token-index-Bduf_pxP.js} +1 -1
- package/assets/{search-view-DqxBDyM8.js → search-view-D0WpJ5LA.js} +1 -1
- package/assets/{senders-DEuw7snq.js → senders-DQj-mz1j.js} +1 -1
- package/assets/{settings-screen-CqBsMbyo.js → settings-screen-Dr5expLP.js} +1 -1
- package/assets/settings-vtqgdivN.js +1 -0
- package/assets/{shield-check-BRA-UNwN.js → shield-check-DiUF5wWn.js} +1 -1
- package/assets/{suggested-vips-Ctf8EF-z.js → suggested-vips-C2YZDZ28.js} +1 -1
- package/assets/{useDebouncedValue-CsP6V-ze.js → useDebouncedValue-DOo7UPcD.js} +1 -1
- package/assets/{useFilters-PEdz9Yje.js → useFilters-DloCKDYh.js} +1 -1
- package/assets/{useLabels-DiDx-Lwv.js → useLabels-zav64w0S.js} +1 -1
- package/assets/{useMediaQuery-DEcH4IWF.js → useMediaQuery-C5e0Az56.js} +1 -1
- package/assets/{useMessageBodyContent-XGiSxgJ2.js → useMessageBodyContent-DPqly9Qg.js} +1 -1
- package/assets/{useRefreshControl-D6lwR4az.js → useRefreshControl-BliVFItV.js} +1 -1
- package/assets/{useSearchMirror-CvmdBwb8.js → useSearchMirror-DsCLU4Os.js} +1 -1
- package/assets/{useSearchTokenContext-Cd-PQSDT.js → useSearchTokenContext-D18dJFny.js} +1 -1
- package/assets/{useSemanticSearch-Br8iRRIy.js → useSemanticSearch-BnRS-ivx.js} +1 -1
- package/assets/{useSignature-DZWg60aU.js → useSignature-B2YdvIEW.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/_mailboxId-CM4U3i6d.js +0 -1
- package/assets/_messageId-B2sfx6l-.js +0 -1
- package/assets/_messageId-CVV-9aiw.js +0 -1
- package/assets/_messageId-DP5yo9KD.js +0 -1
- package/assets/_outboxMessageId-DP-lr1JH.js +0 -1
- package/assets/_threadId-B7bHchK-.js +0 -1
- package/assets/_threadId-BtRw4rNE.js +0 -1
- package/assets/_threadId-CTaG8rS8.js +0 -1
- package/assets/brief-DyR61mM5.js +0 -1
- package/assets/compose._-_outboxMessageId_-BDA6OqWt.js +0 -1
- package/assets/compose._-_outboxMessageId_-DZD51oZo.js +0 -1
- package/assets/compose._-_outboxMessageId_-DjuaF9B0.js +0 -1
- package/assets/compose._-_outboxMessageId_-F4tBwlfV.js +0 -1
- package/assets/flagged-BcT9M4cf.js +0 -1
- package/assets/index-B2sfx6l-.js +0 -1
- package/assets/index-BGKIBD6C.js +0 -1
- package/assets/index-BqazKSdx.js +0 -1
- package/assets/index-C6v3sIir.js +0 -1
- package/assets/index-CVJ3PSnQ.js +0 -1
- package/assets/index-CVV-9aiw.js +0 -1
- package/assets/index-DE7UVrfK.js +0 -1
- package/assets/index-Do451hT8.js +0 -1
- package/assets/outbox-Od9ttGbf.js +0 -1
- package/assets/settings-Cx2NP6D_.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,af as Ze,S as Xe,bh as es,l as E,bb as ss,m as oe,r as o,s as ae,bi as ne,q as ts,bj as as,bk as ns,bl as os,e as Te,bm as rs,i as is}from"./index-RknGDPY9.js";import{s as Re,a as ls,b as Me,u as cs,p as ds,R as us}from"./useSearchTokenContext-Cd-PQSDT.js";import{a2 as ve,D as ye,a3 as ms,a4 as fs,E as hs,a5 as Se,a6 as gs,a7 as xs,a8 as ps,a1 as Is,a9 as bs,aa as vs,ab as ys,M as Ss,ac as Cs,ad as js,ae as Ts,e as Rs,v as Ms,af as ws,r as ks,S as As,H as Fs,L as Ce,K as Ns,I as Bs,d as Os,W as Ls,X as we,Y as Es,Z as ke,_ as Ds}from"./MailListHeader-Csp5my8W.js";import{u as Ps,a as qs,R as zs,i as Hs,b as Qs}from"./useRefreshControl-D6lwR4az.js";import{e as _s,c as $s,R as Ws}from"./search-token-index-BCiueBZU.js";import{a as Us}from"./useLabels-DiDx-Lwv.js";import{u as Vs}from"./useMediaQuery-DEcH4IWF.js";import{u as Ys,L as Gs}from"./useSemanticSearch-Br8iRRIy.js";import{n as Js,e as Ks,g as Zs,o as Xs,r as et}from"./useMessageBodyContent-XGiSxgJ2.js";function st({sync:e}){return e?a.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:[a.jsx(Ze,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:tt(e)})]}):a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[a.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function tt({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Ae=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Fe="category",at={unclassified:"uncategorized"},W=e=>ls(e).map(s=>s.raw),$=e=>e.join(" "),re=e=>{const s=Me(e);if(s)return Ae.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=Me(e);if(!s||s.name!==Fe)return;const n=s.value.toLowerCase(),r=at[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ne=e=>Ae.find(s=>s.id===e),Be=e=>Ne(e)!==void 0,nt=e=>{const s=new Set;for(const n of W(e)){const r=re(n);r&&s.add(r)}return s},ot=e=>{let s="all";for(const n of W(e)){const r=ie(n);r&&(s=r)}return s},rt=(e,s)=>{const n=Ne(s);if(!n)return;const r=W(e),d=r.filter(l=>re(l)!==s);return d.length<r.length?$(d):$([...r,Re(n.name,n.value)])},it=(e,s)=>{const n=W(e).filter(r=>!ie(r));return $(s==="all"?n:[...n,Re(Fe,s)])},lt=e=>$(W(e).filter(s=>!re(s)&&!ie(s))),Oe=e=>e.trim().length>0,ct=e=>{if(!Oe(e.query))return e.ownFilters;const s=new Set(nt(e.query));for(const n of e.ownFilters)Be(n)||s.add(n);return s},dt=e=>Oe(e.query)?ot(e.query):e.ownCategory,ut=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),mt=e=>[...e].sort(ut),ft=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),ht=({accountEmail:e})=>{const s=oe();return a.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:[a.jsx(Te,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},gt=(e,s)=>{if(s.size===0)return{};const n=new Set,r=new Set;for(const l of e)s.has(l.id)&&(l.accountId&&n.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(n.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=n.size===1?[...n][0]:void 0;return r.size>1?{accountId:d,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:d,mailboxId:r.size===1?[...r][0]:void 0}};function xt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:d,selectedCount:l,exitSelection:g,orderedIds:m,allSelected:u,toggleAllLoaded:S}=Ts(),p=o.useMemo(()=>gt(s,d),[s,d]),{junkMailboxId:I}=Rs(p.accountId),{labels:b}=Us(p.accountId),F=o.useMemo(()=>Array.from(d),[d]),D=o.useMemo(()=>s.filter(x=>d.has(x.id)).map(x=>({id:x.id,sender:x.fromName,email:x.fromEmail,subject:x.subject,date:x.timeLabel})),[s,d]),f=Ms(I,p.mailboxId),v=o.useMemo(()=>m.length>0?{checked:u,indeterminate:l>0&&!u,onChange:S}:void 0,[m.length,u,l,S]),N=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(As,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:g,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:f?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Gs,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:F}):void 0,selectAll:v,notice:N});return a.jsx(ws,{...e,selectionBar:C,paneOverlay:a.jsx(ks,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:D,selectionRestriction:p.restriction,onFinished:g}),children:r})}function pt({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:d,onDeleteMessages:l}){const{searchQuery:g,searchInput:m,resultFolderIndex:u,onSearchChange:S}=E(),p=cs(),I=Vs(),b=_s(),F=ss(),D=oe(),f=o.useMemo(()=>mt(e.filter(t=>!t.muted?.value)),[e]),[v,N]=o.useState("all"),[C,x]=o.useState("all"),[U,P]=o.useState(new Set),[K,j]=o.useState(!1),q=o.useCallback(t=>{P(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),V=o.useCallback(()=>P(new Set),[]),R=m.trim().length>0,T=o.useMemo(()=>ct({query:m,ownFilters:U}),[m,U]),M=o.useMemo(()=>dt({query:m,ownCategory:C}),[m,C]),B=o.useCallback(t=>{if(!R||!Be(t)){q(t);return}const i=rt(m,t);i!==void 0&&S(i)},[R,m,S,q]),z=o.useCallback(t=>{if(!R){x(t);return}S(it(m,t))},[R,m,S]),H=o.useCallback(()=>{x("all"),N("all"),V(),R&&S(lt(m))},[R,m,S,V]),{data:O,isLoading:Q,isError:h,refetch:L}=ae({...ne(),staleTime:6e4}),w=$s({queries:f.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),Y=o.useMemo(()=>{const t=new Map;for(let i=0;i<f.length;i++){const c=f[i].accountId,Ge=(w[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ge)}return t},[f,w]),De=o.useMemo(()=>f.filter((t,i)=>{const c=w[i];return c?.isError?!as(c.error):!1}),[f,w]),{freeText:k,tokens:Z}=ds(g.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ft}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(O?.items??[]).map(ye);return(k?ms(t.filter(c=>fs(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&hs(c,Z))},[O,le,v,k,Z]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(A=>Se(A,u)),{spam:i}=gs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(A=>A.id));return{bodyRows:y.filter(A=>!c.has(A.id)),briefSpamOffer:xs(t)}},[y,k,u]),de=o.useMemo(()=>ps(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(A=>A.id===t)?.threadId;c&&n?.({threadId:c,messageId:t},i)},[y,n]),qe=o.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&n?.({threadId:i,messageId:t.id})},[y,n]),ee=o.useMemo(()=>f.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...f.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:Y.get(t.accountId),active:v===t.accountId}))],[f,Y,v]),_=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(Y.values()).reduce((t,i)=>t+i,0),[Y]),se=o.useMemo(()=>f.map(t=>t.accountId),[f]),{hasNewMail:me}=Ps(),{state:fe,errorMessage:he,refresh:ge}=qs(se,{onSettled:()=>L()}),He=o.useMemo(()=>a.jsx(zs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(M==="all"||t.category===M)&&ns(t,T)).map(t=>Se(t,u)),[y,M,T,u]),{hits:xe,isLoading:Qe}=Ys(),_e=o.useMemo(()=>{const t=new Map;for(const c of O?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return Is(xe,i,u)},[xe,te,O,u]),$e=o.useMemo(()=>{const t=bs(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:_>0?`+${_} muted`:void 0,selectedCategory:M,activeFilters:T,expanded:K,onExpandedChange:j,onSelectCategory:i=>z(i),onSelectSource:N,onToggleFilter:i=>B(i),onClear:H}},[ee,_,M,T,K,B,z,H]),pe=de.length===0&&v==="all"&&k.length===0&&Z.length===0,We=o.useMemo(()=>f.map(t=>t.accountId),[f]),Ue=o.useMemo(()=>f.some(t=>Hs(t.syncPhase)),[f]),G=Qs(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!h&&!pe,Ve=vs({tier:b,hasLiveInput:R,hasCommittedQuery:g.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(ys,{count:X.count,onScopeToSpam:()=>D({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:g||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:M,Row:Ss,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:z,sources:ee,sourcesNote:_>0?`+${_} muted`:void 0,onSelectSource:N,activeFilters:T,onToggleFilter:B,onClearFilters:H})})]}):Q?Ie:h?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[a.jsx(Te,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>L(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Ws,{className:"size-3.5"}),"Try again"]})]}):G.resolved?a.jsx(st,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Cs,{selectedMessageId:s,onOpen:ue,onDeleteMessages:l,onSelectionVerb:F.start,wizardOpen:F.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(xt,{wizard:F,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(js,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:Qe,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:He},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[De.map(t=>a.jsx(ht,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ye})]})})})})}const Le=o.createContext(null);function J(){const e=o.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function It({thread:e,children:s}){const n=oe(),r=Js(),{searchInput:d}=E(),l=e?.threadId,g=e?.messageId,{data:m}=ae({...ne(),staleTime:6e4}),u=o.useMemo(()=>m?.items??[],[m]),S=o.useMemo(()=>{if(l)return u.find(h=>h.messageId===g)??u.find(h=>h.threadId===l)},[u,l,g]),p=Fs(l,g),I=S??p,b=g??I?.messageId,F=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),D=o.useCallback((h,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:h,replace:L?.replace,search:w=>({...w,q:d||void 0}),hash:r})},[n,r,d]),f=o.useCallback(()=>{n({to:"/mail/brief",search:h=>h,hash:r})},[n,r]),v=o.useCallback(h=>{b&&h.includes(b)&&f()},[b,f]),N=Ce({thread:I,onAfterOptimisticRemove:v}),C=Ns(),{deleteMessages:x}=Bs({mailboxId:I?.mailboxId??"",messages:u,onAfterOptimisticRemove:v}),{toggleReadFor:U}=Os({mailboxId:I?.mailboxId??"",messages:u}),P=C.focusedMessageId,j=o.useMemo(()=>u.find(h=>h.messageId===P),[u,P])??I,q=Ce({thread:j}),V=Ks(),R=Zs(),T=Xs(),M=o.useMemo(()=>et(T,l,b),[T,l,b]),B=o.useMemo(()=>{if(j)return h=>T({threadId:j.threadId,messageId:j.messageId,mode:h})},[T,j]),{nextMessageId:z,previousMessageId:H}=Ls({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!V&&!R,onClose:f,handlers:{reply:()=>B?.("reply"),replyAll:()=>B?.("reply-all"),forward:()=>B?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||q.deleteThread()},toggleStar:q.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&U([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),O=o.useCallback(h=>{if(!h)return;const L=u.find(w=>w.messageId===h);return L?{threadId:L.threadId,messageId:h}:void 0},[u]),Q={selectedMessageId:b,selectedThread:I,conversation:F,onOpenThread:D,onCloseThread:f,nextThread:O(z),previousThread:O(H),actions:N,onReply:M,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function Ee(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:d}=E();return a.jsx(pt,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function bt(){const{conversation:e,actions:s,onReply:n}=J(),{intelligenceOpen:r,onToggleIntelligence:d}=E(),l=is()?.showIntelligencePane??!1,g=!!e,m=l&&g;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ds,{hasThread:g,intelligenceOpen:m&&r,canToggleIntelligence:m,onToggleIntelligence:d,onReply:n?()=>n("reply"):void 0,onReplyAll:n?()=>n("reply-all"):void 0,onForward:n?()=>n("forward"):void 0,onDelete:g?s.deleteThread:void 0,onToggleStar:g?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:g&&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(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity}):a.jsx(us,{})})]})}function vt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=E();return a.jsx(ke,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function yt(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:d,previousThread:l,handleDeselectIfRemoved:g}=J(),{intelligenceOpen:m,onToggleIntelligence:u}=E();return s?a.jsxs(a.Fragment,{children:[a.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:u,onSwipeNext:d?()=>n(d):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:m}),a.jsx(Es,{isOpen:m,onClose:u,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:u,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:g})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const Ft=Object.assign(It,{List:Ee,Reading:bt,Intelligence:vt,Phone:yt});export{Ft as B};
|
|
1
|
+
import{j as a,af as Ze,S as Xe,bh as es,l as E,bb as ss,m as oe,r as o,s as ae,bi as ne,q as ts,bj as as,bk as ns,bl as os,e as Te,bm as rs,i as is}from"./index-CruZwy_j.js";import{s as Re,a as ls,b as Me,u as cs,p as ds,R as us}from"./useSearchTokenContext-D18dJFny.js";import{a2 as ve,D as ye,a3 as ms,a4 as fs,E as hs,a5 as Se,a6 as gs,a7 as xs,a8 as ps,a1 as Is,a9 as bs,aa as vs,ab as ys,M as Ss,ac as Cs,ad as js,ae as Ts,e as Rs,v as Ms,af as ws,r as ks,S as As,H as Fs,L as Ce,K as Ns,I as Bs,d as Os,W as Ls,X as we,Y as Es,Z as ke,_ as Ds}from"./MailListHeader-D31JcI05.js";import{u as Ps,a as qs,R as zs,i as Hs,b as Qs}from"./useRefreshControl-BliVFItV.js";import{e as _s,c as $s,R as Ws}from"./search-token-index-Bduf_pxP.js";import{a as Us}from"./useLabels-zav64w0S.js";import{u as Vs}from"./useMediaQuery-C5e0Az56.js";import{u as Ys,L as Gs}from"./useSemanticSearch-BnRS-ivx.js";import{n as Js,e as Ks,g as Zs,o as Xs,r as et}from"./useMessageBodyContent-DPqly9Qg.js";function st({sync:e}){return e?a.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:[a.jsx(Ze,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:tt(e)})]}):a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[a.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),a.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),a.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function tt({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Ae=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Fe="category",at={unclassified:"uncategorized"},W=e=>ls(e).map(s=>s.raw),$=e=>e.join(" "),re=e=>{const s=Me(e);if(s)return Ae.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=Me(e);if(!s||s.name!==Fe)return;const n=s.value.toLowerCase(),r=at[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ne=e=>Ae.find(s=>s.id===e),Be=e=>Ne(e)!==void 0,nt=e=>{const s=new Set;for(const n of W(e)){const r=re(n);r&&s.add(r)}return s},ot=e=>{let s="all";for(const n of W(e)){const r=ie(n);r&&(s=r)}return s},rt=(e,s)=>{const n=Ne(s);if(!n)return;const r=W(e),d=r.filter(l=>re(l)!==s);return d.length<r.length?$(d):$([...r,Re(n.name,n.value)])},it=(e,s)=>{const n=W(e).filter(r=>!ie(r));return $(s==="all"?n:[...n,Re(Fe,s)])},lt=e=>$(W(e).filter(s=>!re(s)&&!ie(s))),Oe=e=>e.trim().length>0,ct=e=>{if(!Oe(e.query))return e.ownFilters;const s=new Set(nt(e.query));for(const n of e.ownFilters)Be(n)||s.add(n);return s},dt=e=>Oe(e.query)?ot(e.query):e.ownCategory,ut=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),mt=e=>[...e].sort(ut),ft=200,je=()=>a.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>a.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[a.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsxs("div",{className:"flex justify-between gap-2",children:[a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),a.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),ht=({accountEmail:e})=>{const s=oe();return a.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:[a.jsx(Te,{className:"size-3.5 shrink-0"}),a.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),a.jsx("button",{type:"button",onClick:()=>s({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},gt=(e,s)=>{if(s.size===0)return{};const n=new Set,r=new Set;for(const l of e)s.has(l.id)&&(l.accountId&&n.add(l.accountId),l.mailboxId&&r.add(l.mailboxId));if(n.size>1)return{restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"};const d=n.size===1?[...n][0]:void 0;return r.size>1?{accountId:d,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${r.size} folders`}:{accountId:d,mailboxId:r.size===1?[...r][0]:void 0}};function xt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:d,selectedCount:l,exitSelection:g,orderedIds:m,allSelected:u,toggleAllLoaded:S}=Ts(),p=o.useMemo(()=>gt(s,d),[s,d]),{junkMailboxId:I}=Rs(p.accountId),{labels:b}=Us(p.accountId),F=o.useMemo(()=>Array.from(d),[d]),D=o.useMemo(()=>s.filter(x=>d.has(x.id)).map(x=>({id:x.id,sender:x.fromName,email:x.fromEmail,subject:x.subject,date:x.timeLabel})),[s,d]),f=Ms(I,p.mailboxId),v=o.useMemo(()=>m.length>0?{checked:u,indeterminate:l>0&&!u,onChange:S}:void 0,[m.length,u,l,S]),N=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(As,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:g,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:f?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Gs,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:F}):void 0,selectAll:v,notice:N});return a.jsx(ws,{...e,selectionBar:C,paneOverlay:a.jsx(ks,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:D,selectionRestriction:p.restriction,onFinished:g}),children:r})}function pt({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:d,onDeleteMessages:l}){const{searchQuery:g,searchInput:m,resultFolderIndex:u,onSearchChange:S}=E(),p=cs(),I=Vs(),b=_s(),F=ss(),D=oe(),f=o.useMemo(()=>mt(e.filter(t=>!t.muted?.value)),[e]),[v,N]=o.useState("all"),[C,x]=o.useState("all"),[U,P]=o.useState(new Set),[K,j]=o.useState(!1),q=o.useCallback(t=>{P(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),V=o.useCallback(()=>P(new Set),[]),R=m.trim().length>0,T=o.useMemo(()=>ct({query:m,ownFilters:U}),[m,U]),M=o.useMemo(()=>dt({query:m,ownCategory:C}),[m,C]),B=o.useCallback(t=>{if(!R||!Be(t)){q(t);return}const i=rt(m,t);i!==void 0&&S(i)},[R,m,S,q]),z=o.useCallback(t=>{if(!R){x(t);return}S(it(m,t))},[R,m,S]),H=o.useCallback(()=>{x("all"),N("all"),V(),R&&S(lt(m))},[R,m,S,V]),{data:O,isLoading:Q,isError:h,refetch:L}=ae({...ne(),staleTime:6e4}),w=$s({queries:f.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),Y=o.useMemo(()=>{const t=new Map;for(let i=0;i<f.length;i++){const c=f[i].accountId,Ge=(w[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ge)}return t},[f,w]),De=o.useMemo(()=>f.filter((t,i)=>{const c=w[i];return c?.isError?!as(c.error):!1}),[f,w]),{freeText:k,tokens:Z}=ds(g.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ft}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(O?.items??[]).map(ye);return(k?ms(t.filter(c=>fs(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&hs(c,Z))},[O,le,v,k,Z]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(A=>Se(A,u)),{spam:i}=gs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(A=>A.id));return{bodyRows:y.filter(A=>!c.has(A.id)),briefSpamOffer:xs(t)}},[y,k,u]),de=o.useMemo(()=>ps(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(A=>A.id===t)?.threadId;c&&n?.({threadId:c,messageId:t},i)},[y,n]),qe=o.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&n?.({threadId:i,messageId:t.id})},[y,n]),ee=o.useMemo(()=>f.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...f.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:Y.get(t.accountId),active:v===t.accountId}))],[f,Y,v]),_=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(Y.values()).reduce((t,i)=>t+i,0),[Y]),se=o.useMemo(()=>f.map(t=>t.accountId),[f]),{hasNewMail:me}=Ps(),{state:fe,errorMessage:he,refresh:ge}=qs(se,{onSettled:()=>L()}),He=o.useMemo(()=>a.jsx(zs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(M==="all"||t.category===M)&&ns(t,T)).map(t=>Se(t,u)),[y,M,T,u]),{hits:xe,isLoading:Qe}=Ys(),_e=o.useMemo(()=>{const t=new Map;for(const c of O?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return Is(xe,i,u)},[xe,te,O,u]),$e=o.useMemo(()=>{const t=bs(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:_>0?`+${_} muted`:void 0,selectedCategory:M,activeFilters:T,expanded:K,onExpandedChange:j,onSelectCategory:i=>z(i),onSelectSource:N,onToggleFilter:i=>B(i),onClear:H}},[ee,_,M,T,K,B,z,H]),pe=de.length===0&&v==="all"&&k.length===0&&Z.length===0,We=o.useMemo(()=>f.map(t=>t.accountId),[f]),Ue=o.useMemo(()=>f.some(t=>Hs(t.syncPhase)),[f]),G=Qs(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!h&&!pe,Ve=vs({tier:b,hasLiveInput:R,hasCommittedQuery:g.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(ys,{count:X.count,onScopeToSpam:()=>D({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:g||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:M,Row:Ss,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:z,sources:ee,sourcesNote:_>0?`+${_} muted`:void 0,onSelectSource:N,activeFilters:T,onToggleFilter:B,onClearFilters:H})})]}):Q?Ie:h?a.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[a.jsx(Te,{className:"size-8 text-danger"}),a.jsx("p",{children:"Couldn't load your messages"}),a.jsxs("button",{type:"button",onClick:()=>L(),className:"flex items-center gap-1 text-accent underline text-xs",children:[a.jsx(Ws,{className:"size-3.5"}),"Try again"]})]}):G.resolved?a.jsx(st,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Cs,{selectedMessageId:s,onOpen:ue,onDeleteMessages:l,onSelectionVerb:F.start,wizardOpen:F.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(xt,{wizard:F,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(js,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:Qe,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:He},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[De.map(t=>a.jsx(ht,{accountEmail:t.email,accountId:t.accountId},t.accountId)),a.jsx("div",{className:"min-h-0 flex-1",children:Ye})]})})})})}const Le=o.createContext(null);function J(){const e=o.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function It({thread:e,children:s}){const n=oe(),r=Js(),{searchInput:d}=E(),l=e?.threadId,g=e?.messageId,{data:m}=ae({...ne(),staleTime:6e4}),u=o.useMemo(()=>m?.items??[],[m]),S=o.useMemo(()=>{if(l)return u.find(h=>h.messageId===g)??u.find(h=>h.threadId===l)},[u,l,g]),p=Fs(l,g),I=S??p,b=g??I?.messageId,F=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),D=o.useCallback((h,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:h,replace:L?.replace,search:w=>({...w,q:d||void 0}),hash:r})},[n,r,d]),f=o.useCallback(()=>{n({to:"/mail/brief",search:h=>h,hash:r})},[n,r]),v=o.useCallback(h=>{b&&h.includes(b)&&f()},[b,f]),N=Ce({thread:I,onAfterOptimisticRemove:v}),C=Ns(),{deleteMessages:x}=Bs({mailboxId:I?.mailboxId??"",messages:u,onAfterOptimisticRemove:v}),{toggleReadFor:U}=Os({mailboxId:I?.mailboxId??"",messages:u}),P=C.focusedMessageId,j=o.useMemo(()=>u.find(h=>h.messageId===P),[u,P])??I,q=Ce({thread:j}),V=Ks(),R=Zs(),T=Xs(),M=o.useMemo(()=>et(T,l,b),[T,l,b]),B=o.useMemo(()=>{if(j)return h=>T({threadId:j.threadId,messageId:j.messageId,mode:h})},[T,j]),{nextMessageId:z,previousMessageId:H}=Ls({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!V&&!R,onClose:f,handlers:{reply:()=>B?.("reply"),replyAll:()=>B?.("reply-all"),forward:()=>B?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||q.deleteThread()},toggleStar:q.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&U([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),O=o.useCallback(h=>{if(!h)return;const L=u.find(w=>w.messageId===h);return L?{threadId:L.threadId,messageId:h}:void 0},[u]),Q={selectedMessageId:b,selectedThread:I,conversation:F,onOpenThread:D,onCloseThread:f,nextThread:O(z),previousThread:O(H),actions:N,onReply:M,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function Ee(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:d}=E();return a.jsx(pt,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function bt(){const{conversation:e,actions:s,onReply:n}=J(),{intelligenceOpen:r,onToggleIntelligence:d}=E(),l=is()?.showIntelligencePane??!1,g=!!e,m=l&&g;return a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(Ds,{hasThread:g,intelligenceOpen:m&&r,canToggleIntelligence:m,onToggleIntelligence:d,onReply:n?()=>n("reply"):void 0,onReplyAll:n?()=>n("reply-all"):void 0,onForward:n?()=>n("forward"):void 0,onDelete:g?s.deleteThread:void 0,onToggleStar:g?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:g&&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(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity}):a.jsx(us,{})})]})}function vt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=E();return a.jsx(ke,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function yt(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:d,previousThread:l,handleDeselectIfRemoved:g}=J(),{intelligenceOpen:m,onToggleIntelligence:u}=E();return s?a.jsxs(a.Fragment,{children:[a.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:u,onSwipeNext:d?()=>n(d):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:m}),a.jsx(Es,{isOpen:m,onClose:u,ariaLabel:"Message details",side:"right",children:a.jsx(ke,{onClose:u,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:g})})]}):a.jsx("div",{className:"h-full",children:a.jsx(Ee,{})})}const Ft=Object.assign(It,{List:Ee,Reading:bt,Intelligence:vt,Phone:yt});export{Ft as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,e as r}from"./index-
|
|
1
|
+
import{j as t,e as r}from"./index-CruZwy_j.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d4 as X,r,cq as Y,l as P,bb as Z,aF as J,aG as ee,j as n,m as te,i as se}from"./index-
|
|
1
|
+
import{d4 as X,r,cq as Y,l as P,bb as Z,aF as J,aG as ee,j as n,m as te,i as se}from"./index-CruZwy_j.js";import{u as ae,p as ne,R as re}from"./useSearchTokenContext-D18dJFny.js";import{D as oe,a4 as de,E as ie,aq as le,a5 as ce,b as ue,M as ge,ac as he,ar as me,ae as fe,r as Ie,H as pe,L as V,K as xe,I as Te,d as be,W as ye,X as K,Y as ve,Z as W,_ as Re}from"./MailListHeader-D31JcI05.js";import{u as Ce,b as Se,a as je}from"./MailViewChrome-CUDvmwTn.js";import{f as Me}from"./ErrorState-CNRyRb6l.js";import{u as we}from"./useMediaQuery-C5e0Az56.js";import{n as Fe,e as Pe,g as ke,o as Le,r as Oe}from"./useMessageBodyContent-DPqly9Qg.js";const Ae=()=>Y({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:t,isError:s,error:l,refetch:m,fetchNextPage:a,hasNextPage:c,isFetchingNextPage:d}=Ce({queryKey:Ae(),queryFn:async({pageParam:I})=>{const{data:u}=await X({query:{starred:!0,order:"desc",continuationToken:I},throwOnError:!0});return u},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:r.useMemo(()=>(e?.pages??[]).flatMap(I=>I.items??[]),[e]),isLoading:t,isError:s,error:l,refetch:m,fetchNextPage:a,hasNextPage:c,isFetchingNextPage:d}}const Ne=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},Ee={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function De({rows:e,verb:t}){const{selectedIds:s,exitSelection:l}=fe(),m=r.useMemo(()=>e.filter(a=>s.has(a.id)).map(a=>({id:a.id,sender:a.fromName,email:a.fromEmail,subject:a.subject,date:a.timeLabel})),[e,s]);return n.jsx(Ie,{verb:t,selection:m,selectionRestriction:"spansAccounts",onFinished:l})}function Be({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:l,onDeleteMessages:m}){const{searchQuery:a,resultFolderIndex:c}=P(),d=ae(),b=we(),I=Z(),[u,f]=r.useState("all"),[C,k]=r.useState(new Set),v=r.useCallback(o=>{k(h=>{const p=new Set(h);return p.has(o)?p.delete(o):p.add(o),p})},[]),S=r.useCallback(()=>{f("all"),k(new Set)},[]),{threads:L,isLoading:T,isError:O,error:q,refetch:A,fetchNextPage:Q,hasNextPage:x,isFetchingNextPage:j}=_(),{freeText:R,tokens:N}=ne(a.trim().toLowerCase(),d),g=r.useMemo(()=>{const o=Array.from(C).map(h=>Ee[h]).filter(h=>h!=null);return Ne(L).map(oe).filter(h=>(u==="all"||h.category===u)&&o.every(p=>p(h))&&(!R||de(h,R))&&ie(h,N))},[L,u,C,R,N]),M=r.useCallback((o,h)=>{const p=g.find(U=>U.id===o)?.threadId;p&&t?.({threadId:p,messageId:o},h)},[g,t]),w=r.useCallback(o=>{const h=o.threadId??g.find(p=>p.id===o.id)?.threadId;h&&t?.({threadId:h,messageId:o.id})},[g,t]),H=r.useMemo(()=>le(),[]),z=r.useMemo(()=>g.map(o=>ce(o,c)),[g,c]),E=r.useMemo(()=>g.filter(o=>!o.isRead).length,[g]),D=T?"loading":O?"error":g.length===0?"empty":"ready",i=r.useCallback(()=>{const o=J(ee());window.open(o,"_blank","noopener,noreferrer")},[]),y=ue(),F=n.jsx("div",{className:"flex h-full min-h-0 flex-col",children:n.jsxs("div",{className:"flex-1 overflow-y-auto",children:[n.jsx("div",{className:"divide-y divide-line",children:g.map(o=>n.jsx(ge,{thread:o,active:o.id===e,onClick:()=>M(o.id)},o.id))}),x?n.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>Q(),disabled:j,children:j?"Loading…":"Load more"}):null]})});return n.jsx(Se,{title:"Starred",unreadCount:E,preset:H,selectedCategory:u,activeFilters:C,onSelectCategory:f,onToggleFilter:v,onClearFilters:S,searchResults:z,searchLoading:T,onSelectSearchResult:w,searchResultsInBody:!0,children:n.jsxs(he,{selectedMessageId:e,onOpen:M,onDeleteMessages:m,onSelectionVerb:I.start,wizardOpen:I.isOpen,commandsRef:s,onTriageContextChange:l,children:[n.jsx(je,{listTitle:"Starred",sections:[{id:"flagged",threads:g}],flatList:!0,hideHeader:!0,listState:y.searchResults?"ready":D,searchQuery:R?a:void 0,errorMessage:O?Me(q):void 0,onRetry:()=>A(),onReportError:i,selectedThreadId:e,onSelectThread:M,isDesktop:b,selectionBar:n.jsx(me,{title:"Starred"}),listBody:y.searchResults??(D==="ready"?F:void 0)}),n.jsx(De,{rows:g,verb:I.verb})]})})}const G=r.createContext(null);function B(){const e=r.useContext(G);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function qe({thread:e,children:t}){const s=te(),l=Fe(),{searchInput:m}=P(),a=e?.threadId,c=e?.messageId,{threads:d}=_(),b=r.useMemo(()=>{if(a)return d.find(i=>i.messageId===c)??d.find(i=>i.threadId===a)},[d,a,c]),I=pe(a,c),u=b??I,f=c??u?.messageId,C=r.useMemo(()=>{if(a)return{threadId:a,mailboxId:u?.mailboxId??"",subject:u?.subject,messageId:f,authenticity:u?.authenticity}},[a,u,f]),k=r.useCallback((i,y)=>{s({to:"/mail/flagged/$threadId/$messageId",params:i,replace:y?.replace,search:F=>({...F,q:m||void 0}),hash:l})},[s,l,m]),v=r.useCallback(()=>{s({to:"/mail/flagged",search:i=>i,hash:l})},[s,l]),S=r.useCallback(i=>{f&&i.includes(f)&&v()},[f,v]),L=V({thread:u,onAfterOptimisticRemove:S}),T=xe(),{deleteMessages:O}=Te({mailboxId:u?.mailboxId??"",messages:d,onAfterOptimisticRemove:S}),{toggleReadFor:q}=be({mailboxId:u?.mailboxId??"",messages:d}),A=T.focusedMessageId,x=r.useMemo(()=>d.find(i=>i.messageId===A),[d,A])??u,j=V({thread:x}),R=Pe(),N=ke(),g=Le(),M=r.useMemo(()=>Oe(g,a,f),[g,a,f]),w=r.useMemo(()=>{if(x)return i=>g({threadId:x.threadId,messageId:x.messageId,mode:i})},[g,x]),{nextMessageId:H,previousMessageId:z}=ye({context:T,orderedIds:T.orderedIds,selectedMessageId:f,enabled:!R&&!N,onClose:v,handlers:{reply:()=>w?.("reply"),replyAll:()=>w?.("reply-all"),forward:()=>w?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||j.deleteThread()},toggleStar:j.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||x&&q([x.messageId],!x.isRead)},goBrief:()=>s({to:"/mail/brief"}),goSettings:()=>s({to:"/settings"})}}),E=r.useCallback(i=>{if(!i)return;const y=d.find(F=>F.messageId===i);return y?{threadId:y.threadId,messageId:i}:void 0},[d]),D={selectedMessageId:f,selectedThread:u,conversation:C,onOpenThread:k,onCloseThread:v,nextThread:E(H),previousThread:E(z),actions:L,onReply:M,triage:T,onDeleteMessages:O,handleDeselectIfRemoved:S};return n.jsx(G.Provider,{value:D,children:t})}function $(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:l}=B();return n.jsx(Be,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:l})}function He(){const{conversation:e,actions:t,onReply:s}=B(),{intelligenceOpen:l,onToggleIntelligence:m}=P(),a=se()?.showIntelligencePane??!1,c=!!e,d=a&&c;return n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Re,{hasThread:c,intelligenceOpen:d&&l,canToggleIntelligence:d,onToggleIntelligence:m,onReply:s?()=>s("reply"):void 0,onReplyAll:s?()=>s("reply-all"):void 0,onForward:s?()=>s("forward"):void 0,onDelete:c?t.deleteThread:void 0,onToggleStar:c?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:c&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity}):n.jsx(re,{})})]})}function ze(){const{selectedThread:e,handleDeselectIfRemoved:t}=B(),{onToggleIntelligence:s}=P();return n.jsx(W,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Qe(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:l,nextThread:m,previousThread:a,handleDeselectIfRemoved:c}=B(),{intelligenceOpen:d,onToggleIntelligence:b}=P();return t?n.jsxs(n.Fragment,{children:[n.jsx(K,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:b,onSwipeNext:m?()=>l(m):void 0,onSwipePrevious:a?()=>l(a):void 0,mobileIntelligenceOpen:d}),n.jsx(ve,{isOpen:d,onClose:b,ariaLabel:"Message details",side:"right",children:n.jsx(W,{onClose:b,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,hideCloseButton:!0,onAfterOptimisticRemove:c})})]}):n.jsx("div",{className:"h-full",children:n.jsx($,{})})}const Xe=Object.assign(qe,{List:$,Reading:He,Intelligence:ze,Phone:Qe});export{Xe as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,s as f,Q as m,j as e,X as N}from"./index-
|
|
1
|
+
import{r as n,s as f,Q as m,j as e,X as N}from"./index-CruZwy_j.js";import{E as u}from"./ErrorState-CNRyRb6l.js";import{D as r,C as x,u as w}from"./index-BOTjtS9M.js";import{u as E}from"./useMediaQuery-C5e0Az56.js";import{j as p,q as h,s as C}from"./useMessageBodyContent-DPqly9Qg.js";import{C as k}from"./confirm-dialog-D9gyhlPW.js";const b=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},[])},S=()=>{const t=p(),i=h(),s=C(),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 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:b(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(k,{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=C(),a=E(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(w({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(S,{});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:b(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(N,{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};
|