@remit/web-client-dist 0.0.449 → 0.0.450
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-CBphHp8H.js → BriefPane-dKCi6-E_.js} +1 -1
- package/assets/{ErrorState-DnmVZGrE.js → ErrorState-B5TOm3KZ.js} +1 -1
- package/assets/FlaggedPane-6HAeoMgd.js +1 -0
- package/assets/{FullCompose-D5y3MC_6.js → FullCompose-DsqyCnSL.js} +1 -1
- package/assets/MailListHeader-C5zKQU_o.js +7 -0
- package/assets/{MailShell-DdbTX--Z.js → MailShell-Nd8_djMF.js} +1 -1
- package/assets/{MailViewChrome-dHYj7gnA.js → MailViewChrome-B3QlslFv.js} +1 -1
- package/assets/{MailboxPane-DrLjv2-2.js → MailboxPane-WWLcBFbU.js} +1 -1
- package/assets/{NavMenuButton-Bsep-XCk.js → NavMenuButton-BKtTJ3tv.js} +1 -1
- package/assets/{OnboardingWizard-CY2OjyT-.js → OnboardingWizard-DnJm_w_0.js} +1 -1
- package/assets/{OutboxPane-LJhVkgq1.js → OutboxPane-DTrz4GM2.js} +1 -1
- package/assets/_mailboxId-Uuw-dejK.js +1 -0
- package/assets/_messageId-CiAz-I57.js +1 -0
- package/assets/_messageId-DAm0G-cH.js +1 -0
- package/assets/_messageId-GeVh69vq.js +1 -0
- package/assets/_outboxMessageId-CzD5itu9.js +1 -0
- package/assets/_threadId-BZz3SRGw.js +1 -0
- package/assets/_threadId-CCQ1qyCY.js +1 -0
- package/assets/_threadId-ddO4i2o3.js +1 -0
- package/assets/{accounts-BqukQyrE.js → accounts-BEtgS8sl.js} +1 -1
- package/assets/{advanced-DfjEQXCd.js → advanced-B4f4yhHR.js} +1 -1
- package/assets/{appearance-BzYf_J2h.js → appearance-E7OkH1gn.js} +1 -1
- package/assets/{attachment-file-D7V2j4e_.js → attachment-file-Ct9wXIh3.js} +1 -1
- package/assets/{avatar-Da6_Uwed.js → avatar-DemwoTLw.js} +1 -1
- package/assets/{bottom-sheet-DvUGSg5t.js → bottom-sheet-91Jhbi2L.js} +1 -1
- package/assets/{brief-DLKfbuJr.js → brief-BR7IpHd7.js} +1 -1
- package/assets/brief-CRP4R_1a.js +1 -0
- package/assets/{browser-ponyfill-D3jYV_Au.js → browser-ponyfill-DevOh_Ff.js} +1 -1
- package/assets/{bug-DCAgJDqy.js → bug-CqJ_ptlG.js} +1 -1
- package/assets/{circle-check-D4AA5SIt.js → circle-check-DNwFaT-9.js} +1 -1
- package/assets/{circle-check-big-BQSqUIjP.js → circle-check-big-B091lXse.js} +1 -1
- package/assets/{circle-help-ByLFqlei.js → circle-help-D_kDH1n0.js} +1 -1
- package/assets/{clock-7kG0HkT5.js → clock-c9Hw4Pnh.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BOB1Y_kx.js +1 -0
- package/assets/compose._-_outboxMessageId_-CXKaW9ok.js +1 -0
- package/assets/compose._-_outboxMessageId_-Ca5ECD8Z.js +1 -0
- package/assets/compose._-_outboxMessageId_-DqML8pwf.js +1 -0
- package/assets/{confirm-dialog-C55xgdUo.js → confirm-dialog-FCURkX56.js} +1 -1
- package/assets/{download-DT2pIhWG.js → download-Bp4d1z1G.js} +1 -1
- package/assets/{filters-ByQP8NG1.js → filters-DF9dyxhA.js} +1 -1
- package/assets/flagged-CMZLNVjj.js +1 -0
- package/assets/{flagged-CsM26ROt.js → flagged-D3Sjm81v.js} +1 -1
- package/assets/{folders-DTGk7_Kq.js → folders-BWHJibRX.js} +1 -1
- package/assets/{help-copy-DjwzVpoZ.js → help-copy-CO7fR1xI.js} +1 -1
- package/assets/{index-DEW7ElX8.js → index-BABocYUA.js} +4 -4
- package/assets/index-BzTJ7SoP.js +1 -0
- package/assets/index-CBH1baUZ.js +1 -0
- package/assets/index-CNGJaz2o.js +1 -0
- package/assets/{index-XjsfRyOs.js → index-CSlQeR7K.js} +3 -3
- package/assets/index-Ca9ECobC.js +1 -0
- package/assets/index-Cd4XaGYN.js +1 -0
- package/assets/index-CiAz-I57.js +1 -0
- package/assets/index-DF91xfmT.js +1 -0
- package/assets/index-GeVh69vq.js +1 -0
- package/assets/{kbd-ciww1rUy.js → kbd-DSNCR5_d.js} +1 -1
- package/assets/{labels-DlKT0ewq.js → labels-CTqnlxDL.js} +1 -1
- package/assets/{mail-zoES1dAf.js → mail-CcdXOMwF.js} +1 -1
- package/assets/{mail-CGDY4m-f.js → mail-DwPYrIRu.js} +1 -1
- package/assets/{menu-DRQxnA4S.js → menu-AacW4NBj.js} +1 -1
- package/assets/{onboarding-D8V1PxFl.js → onboarding-DVP56vFk.js} +1 -1
- package/assets/outbox-DzFVbvF2.js +1 -0
- package/assets/{pencil-v-qeDt4f.js → pencil-DAs1SGTt.js} +1 -1
- package/assets/{rich-text-_SAPpY1g.js → rich-text-obKSk5_J.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-CswlUWhy.js → rich-text-spellcheck-worker-provider-Dr1X3Zbw.js} +1 -1
- package/assets/{rotate-ccw-BrSgNJoS.js → rotate-ccw-CEofI5OJ.js} +1 -1
- package/assets/{row-actions-CJHgoyKs.js → row-actions-boCs6FqX.js} +1 -1
- package/assets/{search-mirror-aDPzS3IR.js → search-mirror-DYAZcFJ6.js} +1 -1
- package/assets/{search-token-index-DhsLTs4S.js → search-token-index-BUo4HNZ4.js} +1 -1
- package/assets/{senders-DT0z8BKs.js → senders-CVTeGnv1.js} +1 -1
- package/assets/settings-B2ljoyvv.js +1 -0
- package/assets/{settings-screen-DwGUO07C.js → settings-screen-B5erjy_j.js} +1 -1
- package/assets/{shield-check-C1cXhkeB.js → shield-check-CXNCPcAW.js} +1 -1
- package/assets/{suggested-vips-CAjqQzP9.js → suggested-vips-DOiBgtFf.js} +1 -1
- package/assets/{useDebouncedValue-D98HBXW0.js → useDebouncedValue-C20Bi7o5.js} +1 -1
- package/assets/{useFilters-wgnWd9fS.js → useFilters-D5SeRB7E.js} +1 -1
- package/assets/{useLabels-C7yhyLI4.js → useLabels-D-DDvu3d.js} +1 -1
- package/assets/{useMessageBodyContent-38kl_c53.js → useMessageBodyContent-Cc1URKWS.js} +1 -1
- package/assets/{useRefreshControl-BDoIdJ7o.js → useRefreshControl-ByLiMQUK.js} +1 -1
- package/assets/{useSearchTokenContext-T8ECNgoL.js → useSearchTokenContext-2jIzOIvy.js} +1 -1
- package/assets/{useSemanticSearch-Br0zvARf.js → useSemanticSearch-BDK19goH.js} +1 -1
- package/assets/{useSignature-G-m6lMvz.js → useSignature-DQRD3NoL.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/FlaggedPane-DDLfE9tp.js +0 -1
- package/assets/MailListHeader-CVhTaaQa.js +0 -7
- package/assets/_mailboxId-CoCtYvtL.js +0 -1
- package/assets/_messageId-BlFg96bz.js +0 -1
- package/assets/_messageId-CLD_Z01s.js +0 -1
- package/assets/_messageId-Df1F7Xg7.js +0 -1
- package/assets/_outboxMessageId-TRYPIYsK.js +0 -1
- package/assets/_threadId-BE9kt4d-.js +0 -1
- package/assets/_threadId-C6w1_A9u.js +0 -1
- package/assets/_threadId-C7EuYHgH.js +0 -1
- package/assets/brief-BIwNEv2W.js +0 -1
- package/assets/compose._-_outboxMessageId_-ACBbiDoH.js +0 -1
- package/assets/compose._-_outboxMessageId_-B8m7F8Gv.js +0 -1
- package/assets/compose._-_outboxMessageId_-BP72fc3K.js +0 -1
- package/assets/compose._-_outboxMessageId_-ZsiLgO7z.js +0 -1
- package/assets/flagged-Bx1QrJg4.js +0 -1
- package/assets/index-3gRQqof1.js +0 -1
- package/assets/index-BlFg96bz.js +0 -1
- package/assets/index-BwP7EoEo.js +0 -1
- package/assets/index-CLD_Z01s.js +0 -1
- package/assets/index-CS5v_150.js +0 -1
- package/assets/index-DWoR_4Eu.js +0 -1
- package/assets/index-DZtGYKoL.js +0 -1
- package/assets/index-DuuvrtmM.js +0 -1
- package/assets/outbox-BjY9rM5T.js +0 -1
- package/assets/settings-6kZ5WSq5.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as n,ar as Xe,S as Ze,bS as es,v as Y,b3 as ss,bF as ts,r as a,D as ne,bT as oe,z as ns,bU as os,bV as as,bW as rs,e as Te,bX as is,a8 as cs,bP as ls,bQ as ds}from"./index-DEW7ElX8.js";import{s as je,a as us,b as Re,u as ms,p as fs,R as hs}from"./useSearchTokenContext-T8ECNgoL.js";import{aa as be,H as ve,ab as gs,ac as xs,I as ps,ad as ye,ae as Is,af as bs,ag as vs,a9 as ys,ah as Ss,ai as Cs,aj as Ts,M as js,ak as Rs,al as ws,am as Ms,e as ks,v as Fs,an as As,q as Os,S as Ns,L as Bs,Q as Se,P as Ds,N as Ls,d as Es,_ as Ps,$ as qs,a1 as we,a2 as Me,a3 as zs,a4 as Qs,a5 as Hs}from"./MailListHeader-CVhTaaQa.js";import{u as _s,a as Ws,R as $s,i as Us,b as Vs}from"./useRefreshControl-BDoIdJ7o.js";import{f as Gs,p as Ys,d as Js,R as Ks,k as Xs,l as Zs}from"./search-token-index-DhsLTs4S.js";import{a as et}from"./useLabels-C7yhyLI4.js";import{u as st,r as tt,L as nt}from"./useSemanticSearch-Br0zvARf.js";import{w as ot}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./index-XjsfRyOs.js";import{a as at}from"./useMessageBodyContent-38kl_c53.js";function rt({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(Xe,{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:it(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(Ze,{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 it({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 Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ae="category",ct={unclassified:"uncategorized"},W=e=>us(e).map(s=>s.raw),_=e=>e.join(" "),ae=e=>{const s=Re(e);if(s)return Fe.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},re=e=>{const s=Re(e);if(!s||s.name!==Ae)return;const o=s.value.toLowerCase(),r=ct[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Oe=e=>Fe.find(s=>s.id===e),Ne=e=>Oe(e)!==void 0,lt=e=>{const s=new Set;for(const o of W(e)){const r=ae(o);r&&s.add(r)}return s},dt=e=>{let s="all";for(const o of W(e)){const r=re(o);r&&(s=r)}return s},ut=(e,s)=>{const o=Oe(s);if(!o)return;const r=W(e),l=r.filter(d=>ae(d)!==s);return l.length<r.length?_(l):_([...r,je(o.name,o.value)])},mt=(e,s)=>{const o=W(e).filter(r=>!re(r));return _(s==="all"?o:[...o,je(Ae,s)])},ft=e=>_(W(e).filter(s=>!ae(s)&&!re(s))),Be=e=>e.trim().length>0,ht=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(lt(e.query));for(const o of e.ownFilters)Ne(o)||s.add(o);return s},gt=e=>Be(e.query)?dt(e.query):e.ownCategory,xt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),pt=e=>[...e].sort(xt),It=200,Ce=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>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"})]})]},s))}),bt=({accountEmail:e})=>{const s=ke();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(Te,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>s("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vt=(e,s)=>{if(s.size===0)return{};const o=e.filter(d=>s.has(d.id)),r=tt(o.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of o)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function yt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Ms(),x=a.useMemo(()=>vt(s,l),[s,l]),{junkMailboxId:D}=ks(x.accountId),{labels:I}=et(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),L=a.useMemo(()=>ot(s,l),[s,l]),h=Fs(D,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),F=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=C=>n.jsx(Ns,{title:C.title,navSlot:C.navSlot,titleMeta:C.titleMeta,searchSlot:C.searchSlot,searchField:C.searchField,idleSlot:C.makeFilterSlot,count:d,onCancel:u,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?n.jsx(nt,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:F});return n.jsx(As,{...e,selectionBar:S,paneOverlay:n.jsx(Os,{verb:o.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:L,selectionRestriction:x.restriction,onFinished:u}),children:r})}function St({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=ms(),D=ss(),I=Gs(),p=ts(),L=Ys(),h=a.useMemo(()=>pt(e.filter(t=>!t.muted?.value)),[e]),[v,F]=a.useState("all"),[S,C]=a.useState("all"),[$,E]=a.useState(new Set),[K,T]=a.useState(!1),P=a.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>ht({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gt({query:m,ownCategory:S}),[m,S]),A=a.useCallback(t=>{if(!R||!Ne(t)){P(t);return}const i=ut(m,t);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(t=>{if(!R){C(t);return}f(mt(m,t))},[R,m,f]),z=a.useCallback(()=>{C("all"),F("all"),U(),R&&f(ft(m))},[R,m,f,U]),{data:O,isLoading:Q,isError:g,refetch:N}=ne({...oe(),staleTime:6e4}),B=Js({queries:h.map(t=>({...ns({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=a.useMemo(()=>{const t=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[h,B]),Ee=a.useMemo(()=>h.filter((t,i)=>{const c=B[i];return c?.isError?!os(c.error):!1}),[h,B]),{freeText:M,tokens:X}=fs(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=ne({...oe({query:{query:M,limit:It}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const t=be(O?.items??[]).map(ve);return(M?gs(t.filter(c=>xs(c,M)),be(ie?.items??[]).map(ve)):t).filter(c=>(v==="all"||c.accountId===v)&&ps(c,X))},[O,ie,v,M,X]),{bodyRows:ce,briefSpamOffer:Z}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(k=>ye(k,b)),{spam:i}=Is(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bs(t)}},[y,M,b]),le=a.useMemo(()=>vs(ce),[ce]),de=a.useCallback((t,i)=>{const c=y.find(k=>k.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},i)},[y,o]),qe=a.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&o?.({threadId:i,messageId:t.id})},[y,o]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[h,V,v]),H=a.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=a.useMemo(()=>h.map(t=>t.accountId),[h]),{hasNewMail:ue}=_s(),{state:me,errorMessage:fe,refresh:he}=Ws(se,{onSettled:()=>N()}),Qe=a.useMemo(()=>n.jsx($s,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(se)}),[me,he,fe,ue,se]),te=a.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&as(t,j)).map(t=>ye(t,b)),[y,w,j,b]),{hits:ge,isLoading:He}=st(),_e=a.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 ys(ge,i,b)},[ge,te,O,b]),We=a.useMemo(()=>{const t=Ss(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:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:T,onSelectCategory:i=>q(i),onSelectSource:F,onToggleFilter:i=>A(i),onClear:z}},[ee,H,w,j,K,A,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&X.length===0,$e=a.useMemo(()=>h.map(t=>t.accountId),[h]),Ue=a.useMemo(()=>h.some(t=>Us(t.syncPhase)),[h]),G=Vs($e,xe||Ue),pe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ce,{}),n.jsx(Ce,{})]}),Ie=!Q&&!g&&!xe,Ve=Cs({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ge=Ie?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[Z&&n.jsx(Ts,{count:Z.count,onScopeToSpam:()=>L(Z.mailboxId,u)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(rs,{sections:le,briefCategory:w,Row:js,selectedThreadId:s,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:F,activeFilters:j,onToggleFilter:A,onClearFilters:z})})]}):Q?pe:g?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(Te,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>N(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ks,{className:"size-3.5"}),"Try again"]})]}):G.resolved?n.jsx(rt,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):pe;return n.jsx(is,{hasSheet:Ie&&!Ve,children:n.jsx(Rs,{selectedMessageId:s,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:r,onTriageContextChange:l,children:n.jsx(yt,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:D?n.jsx(ws,{}):void 0,searchFilter:We,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:n.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>n.jsx(bt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Ge})]})})})})}const De=a.createContext(null);function J(){const e=a.useContext(De);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Ct({thread:e,children:s}){const o=Xs(),r=Zs(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=ne({...oe(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),D=Bs(u,m),I=x??D,p=m??I?.messageId,L=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,N)=>{o(g,{replace:N?.replace,query:d})},[o,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),F=Se({thread:I,isOpen:!0,onAfterOptimisticRemove:v}),S=Ds(),{deleteMessages:C}=Ls({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Es({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,T=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:T,isOpen:T?.messageId===p}),U=at(),R=cs(),j=ls(),w=a.useMemo(()=>ds(j,u,p),[j,u,p]),A=a.useMemo(()=>{if(T)return g=>j({threadId:T.threadId,messageId:T.messageId,mode:g})},[j,T]),{nextMessageId:q,previousMessageId:z}=Ps({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!U&&!R,onClose:r,handlers:{reply:()=>A?.("reply"),replyAll:()=>A?.("reply-all"),forward:()=>A?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||T&&$([T.messageId],!T.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),O=a.useCallback(g=>{if(!g)return;const N=f.find(B=>B.messageId===g);return N?{threadId:N.threadId,messageId:g}:void 0},[f]),Q={selectedMessageId:p,selectedThread:I,conversation:L,onOpenThread:h,onCloseThread:r,nextThread:O(q),previousThread:O(z),actions:F,onReply:w,triage:S,onDeleteMessages:C,handleDeselectIfRemoved:v};return n.jsx(De.Provider,{value:Q,children:s})}function Le(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=J(),{accounts:l}=Y();return n.jsx(St,{accounts:l,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function Tt(){const{conversation:e,selectedThread:s,actions:o,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Qs(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(Hs,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?o.deleteThread:void 0,onToggleStar:d?o.toggleStar:void 0,isStarred:o.isStarred,moveContext:d&&o.accountId&&o.mailboxId?{accountId:o.accountId,currentMailboxId:o.mailboxId,onMove:o.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open}):n.jsx(hs,{})})]}),n.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:l})]})}function jt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:o}=Y();return n.jsx(zs,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function Rt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qs(s?.threadId??null);return s?n.jsxs(n.Fragment,{children:[n.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:d?()=>o(d):void 0,mobileIntelligenceOpen:m.isOpen}),n.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):n.jsx("div",{className:"h-full",children:n.jsx(Le,{})})}const Et=Object.assign(Ct,{List:Le,Reading:Tt,Intelligence:jt,Phone:Rt});export{Et as B};
|
|
1
|
+
import{j as n,ar as Xe,S as Ze,bS as es,v as Y,b3 as ss,bF as ts,r as a,D as ne,bT as oe,z as ns,bU as os,bV as as,bW as rs,e as Ce,bX as is,a8 as cs,bP as ls,bQ as ds}from"./index-BABocYUA.js";import{s as je,a as us,b as Re,u as ms,p as fs,R as hs}from"./useSearchTokenContext-2jIzOIvy.js";import{aa as be,H as ve,ab as gs,ac as xs,I as ps,ad as ye,ae as Is,af as bs,ag as vs,a9 as ys,ah as Ss,ai as Ts,aj as Cs,M as js,ak as Rs,al as ws,am as Ms,e as ks,v as Fs,an as Os,q as As,S as Ns,L as Bs,Q as Se,P as Ds,N as Ls,d as Es,_ as Ps,$ as qs,a1 as we,a2 as Me,a3 as zs,a4 as Qs,a5 as Hs}from"./MailListHeader-C5zKQU_o.js";import{u as _s,a as Ws,R as $s,i as Us,b as Vs}from"./useRefreshControl-ByLiMQUK.js";import{f as Gs,p as Ys,d as Js,R as Ks,k as Xs,l as Zs}from"./search-token-index-BUo4HNZ4.js";import{a as et}from"./useLabels-D-DDvu3d.js";import{u as st,r as tt,L as nt}from"./useSemanticSearch-BDK19goH.js";import{w as ot}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./index-CSlQeR7K.js";import{a as at}from"./useMessageBodyContent-Cc1URKWS.js";function rt({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(Xe,{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:it(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(Ze,{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 it({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 Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Oe="category",ct={unclassified:"uncategorized"},W=e=>us(e).map(s=>s.raw),_=e=>e.join(" "),ae=e=>{const s=Re(e);if(s)return Fe.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},re=e=>{const s=Re(e);if(!s||s.name!==Oe)return;const o=s.value.toLowerCase(),r=ct[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Ae=e=>Fe.find(s=>s.id===e),Ne=e=>Ae(e)!==void 0,lt=e=>{const s=new Set;for(const o of W(e)){const r=ae(o);r&&s.add(r)}return s},dt=e=>{let s="all";for(const o of W(e)){const r=re(o);r&&(s=r)}return s},ut=(e,s)=>{const o=Ae(s);if(!o)return;const r=W(e),l=r.filter(d=>ae(d)!==s);return l.length<r.length?_(l):_([...r,je(o.name,o.value)])},mt=(e,s)=>{const o=W(e).filter(r=>!re(r));return _(s==="all"?o:[...o,je(Oe,s)])},ft=e=>_(W(e).filter(s=>!ae(s)&&!re(s))),Be=e=>e.trim().length>0,ht=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(lt(e.query));for(const o of e.ownFilters)Ne(o)||s.add(o);return s},gt=e=>Be(e.query)?dt(e.query):e.ownCategory,xt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),pt=e=>[...e].sort(xt),It=200,Te=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>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"})]})]},s))}),bt=({accountEmail:e})=>{const s=ke();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(Ce,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>s("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vt=(e,s)=>{if(s.size===0)return{};const o=e.filter(d=>s.has(d.id)),r=tt(o.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of o)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function yt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Ms(),x=a.useMemo(()=>vt(s,l),[s,l]),{junkMailboxId:D}=ks(x.accountId),{labels:I}=et(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),L=a.useMemo(()=>ot(s,l),[s,l]),h=Fs(D,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),F=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=T=>n.jsx(Ns,{title:T.title,navSlot:T.navSlot,titleMeta:T.titleMeta,searchSlot:T.searchSlot,searchField:T.searchField,idleSlot:T.makeFilterSlot,count:d,onCancel:u,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?n.jsx(nt,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:F});return n.jsx(Os,{...e,selectionBar:S,paneOverlay:n.jsx(As,{verb:o.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:L,selectionRestriction:x.restriction,onFinished:u}),children:r})}function St({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=ms(),D=ss(),I=Gs(),p=ts(),L=Ys(),h=a.useMemo(()=>pt(e.filter(t=>!t.muted?.value)),[e]),[v,F]=a.useState("all"),[S,T]=a.useState("all"),[$,E]=a.useState(new Set),[K,C]=a.useState(!1),P=a.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>ht({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gt({query:m,ownCategory:S}),[m,S]),O=a.useCallback(t=>{if(!R||!Ne(t)){P(t);return}const i=ut(m,t);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(t=>{if(!R){T(t);return}f(mt(m,t))},[R,m,f]),z=a.useCallback(()=>{T("all"),F("all"),U(),R&&f(ft(m))},[R,m,f,U]),{data:A,isLoading:Q,isError:g,refetch:N}=ne({...oe(),staleTime:6e4}),B=Js({queries:h.map(t=>({...ns({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=a.useMemo(()=>{const t=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[h,B]),Ee=a.useMemo(()=>h.filter((t,i)=>{const c=B[i];return c?.isError?!os(c.error):!1}),[h,B]),{freeText:M,tokens:X}=fs(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=ne({...oe({query:{query:M,limit:It}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const t=be(A?.items??[]).map(ve);return(M?gs(t.filter(c=>xs(c,M)),be(ie?.items??[]).map(ve)):t).filter(c=>(v==="all"||c.accountId===v)&&ps(c,X))},[A,ie,v,M,X]),{bodyRows:ce,briefSpamOffer:Z}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(k=>ye(k,b)),{spam:i}=Is(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bs(t)}},[y,M,b]),le=a.useMemo(()=>vs(ce),[ce]),de=a.useCallback((t,i)=>{const c=y.find(k=>k.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},i)},[y,o]),qe=a.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&o?.({threadId:i,messageId:t.id})},[y,o]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[h,V,v]),H=a.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=a.useMemo(()=>h.map(t=>t.accountId),[h]),{hasNewMail:ue}=_s(),{state:me,errorMessage:fe,refresh:he}=Ws(se,{onSettled:()=>N()}),Qe=a.useMemo(()=>n.jsx($s,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(se)}),[me,he,fe,ue,se]),te=a.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&as(t,j)).map(t=>ye(t,b)),[y,w,j,b]),{hits:ge,isLoading:He}=st(),_e=a.useMemo(()=>{const t=new Map;for(const c of A?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ys(ge,i,b)},[ge,te,A,b]),We=a.useMemo(()=>{const t=Ss(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:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:C,onSelectCategory:i=>q(i),onSelectSource:F,onToggleFilter:i=>O(i),onClear:z}},[ee,H,w,j,K,O,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&X.length===0,$e=a.useMemo(()=>h.map(t=>t.accountId),[h]),Ue=a.useMemo(()=>h.some(t=>Us(t.syncPhase)),[h]),G=Vs($e,xe||Ue),pe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Te,{}),n.jsx(Te,{})]}),Ie=!Q&&!g&&!xe,Ve=Ts({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ge=Ie?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[Z&&n.jsx(Cs,{count:Z.count,onScopeToSpam:()=>L(Z.mailboxId,u)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(rs,{sections:le,briefCategory:w,Row:js,selectedThreadId:s,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:F,activeFilters:j,onToggleFilter:O,onClearFilters:z})})]}):Q?pe:g?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(Ce,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>N(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ks,{className:"size-3.5"}),"Try again"]})]}):G.resolved?n.jsx(rt,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):pe;return n.jsx(is,{hasSheet:Ie&&!Ve,children:n.jsx(Rs,{selectedMessageId:s,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:r,onTriageContextChange:l,children:n.jsx(yt,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:D?n.jsx(ws,{}):void 0,searchFilter:We,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:n.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>n.jsx(bt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Ge})]})})})})}const De=a.createContext(null);function J(){const e=a.useContext(De);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Tt({thread:e,children:s}){const o=Xs(),r=Zs(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=ne({...oe(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),D=Bs(u,m),I=x??D,p=m??I?.messageId,L=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,N)=>{o(g,{replace:N?.replace,query:d})},[o,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),F=Se({thread:I,isOpen:!0,onAfterOptimisticRemove:v}),S=Ds(),{deleteMessages:T}=Ls({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Es({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,C=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:C,isOpen:C?.messageId===p}),U=at(),R=cs(),j=ls(),w=a.useMemo(()=>ds(j,u,p),[j,u,p]),O=a.useMemo(()=>{if(C)return g=>j({threadId:C.threadId,messageId:C.messageId,mode:g})},[j,C]),{nextMessageId:q,previousMessageId:z}=Ps({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!U&&!R,hasOpenThread:u!==void 0,onClose:r,handlers:{reply:()=>O?.("reply"),replyAll:()=>O?.("reply-all"),forward:()=>O?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||C&&$([C.messageId],!C.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),A=a.useCallback(g=>{if(!g)return;const N=f.find(B=>B.messageId===g);return N?{threadId:N.threadId,messageId:g}:void 0},[f]),Q={selectedMessageId:p,selectedThread:I,conversation:L,onOpenThread:h,onCloseThread:r,nextThread:A(q),previousThread:A(z),actions:F,onReply:w,triage:S,onDeleteMessages:T,handleDeselectIfRemoved:v};return n.jsx(De.Provider,{value:Q,children:s})}function Le(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=J(),{accounts:l}=Y();return n.jsx(St,{accounts:l,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function Ct(){const{conversation:e,selectedThread:s,actions:o,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Qs(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(Hs,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?o.deleteThread:void 0,onToggleStar:d?o.toggleStar:void 0,isStarred:o.isStarred,moveContext:d&&o.accountId&&o.mailboxId?{accountId:o.accountId,currentMailboxId:o.mailboxId,onMove:o.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open,listOnScreen:!0}):n.jsx(hs,{})})]}),n.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:l})]})}function jt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:o}=Y();return n.jsx(zs,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function Rt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qs(s?.threadId??null);return s?n.jsxs(n.Fragment,{children:[n.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:d?()=>o(d):void 0,mobileIntelligenceOpen:m.isOpen}),n.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):n.jsx("div",{className:"h-full",children:n.jsx(Le,{})})}const Et=Object.assign(Tt,{List:Le,Reading:Ct,Intelligence:jt,Phone:Rt});export{Et as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,e as r}from"./index-
|
|
1
|
+
import{j as t,e as r}from"./index-BABocYUA.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dJ as $,r as n,d0 as X,v as z,b3 as Y,bF as Z,aR as ee,aS as te,j as a,a8 as se,bP as ae,bQ as re}from"./index-BABocYUA.js";import{u as oe,p as ne,R as de}from"./useSearchTokenContext-2jIzOIvy.js";import{H as ie,ac as le,I as ce,aw as ue,ad as ge,b as he,M as me,ak as fe,ax as Ie,am as pe,q as xe,L as Te,Q as V,P as ye,N as be,d as ve,_ as Re,$ as Se,a1 as K,a2 as W,a3 as Ce,a4 as we,a5 as je}from"./MailListHeader-C5zKQU_o.js";import{u as Fe,b as Me,a as Oe}from"./MailViewChrome-B3QlslFv.js";import{f as Pe}from"./ErrorState-B5TOm3KZ.js";import{w as ke}from"./wizard-selection-B1bng5Jq.js";import{a as Le}from"./useMessageBodyContent-Cc1URKWS.js";import{k as Ae,l as Ne}from"./search-token-index-BUo4HNZ4.js";import{u as De}from"./index-CSlQeR7K.js";const Ee=()=>X({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:r,isFetchingNextPage:m}=Fe({queryKey:Ee(),queryFn:async({pageParam:p})=>{const{data:b}=await $({query:{starred:!0,order:"desc",continuationToken:p},throwOnError:!0});return b},initialPageParam:void 0,getNextPageParam:p=>p.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(p=>p.items??[]),[e]),isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:r,isFetchingNextPage:m}}const Be=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},qe={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Qe({rows:e,verb:t}){const{selectedIds:s,exitSelection:d}=pe(),h=n.useMemo(()=>ke(e,s),[e,s]);return a.jsx(xe,{verb:t,selection:h,selectionRestriction:"spansAccounts",onFinished:d})}function ze({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:d,onDeleteMessages:h}){const{searchQuery:c,resultFolderIndex:r}=z(),m=oe(),I=Y(),p=Z(),[b,f]=n.useState("all"),[g,F]=n.useState(new Set),D=n.useCallback(o=>{F(u=>{const T=new Set(u);return T.has(o)?T.delete(o):T.add(o),T})},[]),S=n.useCallback(()=>{f("all"),F(new Set)},[]),{threads:M,isLoading:y,isError:O,error:E,refetch:P,fetchNextPage:H,hasNextPage:x,isFetchingNextPage:C}=_(),{freeText:R,tokens:k}=ne(c.trim().toLowerCase(),m),i=n.useMemo(()=>{const o=Array.from(g).map(u=>qe[u]).filter(u=>u!=null);return Be(M).map(ie).filter(u=>(b==="all"||u.category===b)&&o.every(T=>T(u))&&(!R||le(u,R))&&ce(u,k))},[M,b,g,R,k]),w=n.useCallback((o,u)=>{const T=i.find(U=>U.id===o)?.threadId;T&&t?.({threadId:T,messageId:o},u)},[i,t]),j=n.useCallback(o=>{const u=o.threadId??i.find(T=>T.id===o.id)?.threadId;u&&t?.({threadId:u,messageId:o.id})},[i,t]),B=n.useMemo(()=>ue(),[]),q=n.useMemo(()=>i.map(o=>ge(o,r)),[i,r]),L=n.useMemo(()=>i.filter(o=>!o.isRead).length,[i]),A=y?"loading":O?"error":i.length===0?"empty":"ready",l=n.useCallback(()=>{const o=ee(te());window.open(o,"_blank","noopener,noreferrer")},[]),v=he(),Q=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:i.map(o=>a.jsx(me,{thread:o,active:o.id===e,onClick:()=>w(o.id)},o.id))}),x?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>H(),disabled:C,children:C?"Loading…":"Load more"}):null]})});return a.jsx(Me,{title:"Starred",unreadCount:L,preset:B,selectedCategory:b,activeFilters:g,onSelectCategory:f,onToggleFilter:D,onClearFilters:S,searchResults:q,searchLoading:y,onSelectSearchResult:j,searchResultsInBody:!0,children:a.jsxs(fe,{selectedMessageId:e,rows:i,onOpen:w,onDeleteMessages:h,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:s,onTriageContextChange:d,children:[a.jsx(Oe,{listTitle:"Starred",sections:[{id:"flagged",threads:i}],flatList:!0,hideHeader:!0,listState:v.searchResults?"ready":A,searchQuery:R?c:void 0,errorMessage:O?Pe(E):void 0,onRetry:()=>P(),onReportError:l,selectedThreadId:e,onSelectThread:w,isDesktop:I,selectionBar:a.jsx(Ie,{title:"Starred"}),listBody:v.searchResults??(A==="ready"?Q:void 0)}),a.jsx(Qe,{rows:i,verb:p.verb})]})})}const G=n.createContext(null);function N(){const e=n.useContext(G);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function He({thread:e,children:t}){const s=Ae(),d=Ne(),h=De(),{searchInput:c}=z(),r=e?.threadId,m=e?.messageId,{threads:I}=_(),p=n.useMemo(()=>{if(r)return I.find(l=>l.messageId===m)??I.find(l=>l.threadId===r)},[I,r,m]),b=Te(r,m),f=p??b,g=m??f?.messageId,F=n.useMemo(()=>{if(r)return{threadId:r,mailboxId:f?.mailboxId??"",subject:f?.subject,messageId:g,authenticity:f?.authenticity}},[r,f,g]),D=n.useCallback((l,v)=>{s(l,{replace:v?.replace,query:c})},[s,c]),S=n.useCallback(l=>{g&&l.includes(g)&&d()},[g,d]),M=V({thread:f,isOpen:!0,onAfterOptimisticRemove:S}),y=ye(),{deleteMessages:O}=be({mailboxId:f?.mailboxId??"",messages:I,onAfterOptimisticRemove:S}),{toggleReadFor:E}=ve({mailboxId:f?.mailboxId??"",messages:I}),P=y.focusedMessageId,x=n.useMemo(()=>I.find(l=>l.messageId===P),[I,P])??f,C=V({thread:x,isOpen:x?.messageId===g}),R=Le(),k=se(),i=ae(),w=n.useMemo(()=>re(i,r,g),[i,r,g]),j=n.useMemo(()=>{if(x)return l=>i({threadId:x.threadId,messageId:x.messageId,mode:l})},[i,x]),{nextMessageId:B,previousMessageId:q}=Re({context:y,orderedIds:y.orderedIds,selectedMessageId:g,enabled:!R&&!k,hasOpenThread:r!==void 0,onClose:d,handlers:{reply:()=>j?.("reply"),replyAll:()=>j?.("reply-all"),forward:()=>j?.("forward"),delete:()=>{y.listCommandsRef.current?.requestVerb("delete")||C.deleteThread()},toggleStar:C.toggleStar,toggleRead:()=>{y.listCommandsRef.current?.requestVerb("markRead")||x&&E([x.messageId],!x.isRead)},goBrief:()=>h("brief"),goSettings:()=>h("settings")}}),L=n.useCallback(l=>{if(!l)return;const v=I.find(Q=>Q.messageId===l);return v?{threadId:v.threadId,messageId:l}:void 0},[I]),A={selectedMessageId:g,selectedThread:f,conversation:F,onOpenThread:D,onCloseThread:d,nextThread:L(B),previousThread:L(q),actions:M,onReply:w,triage:y,onDeleteMessages:O,handleDeselectIfRemoved:S};return a.jsx(G.Provider,{value:A,children:t})}function J(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:d}=N();return a.jsx(ze,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:d})}function Ve(){const{conversation:e,selectedThread:t,actions:s,onReply:d,handleDeselectIfRemoved:h}=N(),c=!!e,r=we(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(je,{hasThread:c,intelligenceOpen:r.isShowing,canToggleIntelligence:r.canToggle,onToggleIntelligence:r.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("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}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:r.open,listOnScreen:!0}):a.jsx(de,{})})]}),a.jsx(W,{isOpen:r.drawerOpen,onClose:r.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:h})]})}function Ke(){const{selectedThread:e,handleDeselectIfRemoved:t}=N(),{onToggleIntelligence:s}=z();return a.jsx(Ce,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function We(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:d,nextThread:h,previousThread:c,handleDeselectIfRemoved:r}=N(),m=Se(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(K,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:m.toggle,onSwipeNext:h?()=>d(h):void 0,onSwipePrevious:c?()=>d(c):void 0,mobileIntelligenceOpen:m.isOpen}),a.jsx(W,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:r})]}):a.jsx("div",{className:"h-full",children:a.jsx(J,{})})}const tt=Object.assign(He,{List:J,Reading:Ve,Intelligence:Ke,Phone:We});export{tt as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,D as f,a1 as m,j as e,b3 as N,X as w}from"./index-
|
|
1
|
+
import{r as n,D as f,a1 as m,j as e,b3 as N,X as w}from"./index-BABocYUA.js";import{E as u}from"./ErrorState-B5TOm3KZ.js";import{D as r,C as x,a as E}from"./index-CSlQeR7K.js";import{b as h,e as p,f as b}from"./useMessageBodyContent-Cc1URKWS.js";import{C as k}from"./confirm-dialog-FCURkX56.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},S=()=>{const t=h(),i=p(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(v=>{v||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),D=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:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(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:D})]})},F=()=>{const t=h(),i=p(),s=b(),a=N(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(E({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:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(w,{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};
|