@remit/web-client-dist 0.0.391 → 0.0.393
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-Du-kVCF_.js +1 -0
- package/assets/{ErrorState-Bn1oQw8C.js → ErrorState-MKUYbZLc.js} +1 -1
- package/assets/FlaggedPane-D9iG9zfK.js +1 -0
- package/assets/{FullCompose-Cv3MK_3g.js → FullCompose-CO8TIg_R.js} +1 -1
- package/assets/{MailListHeader-DznCndIp.js → MailListHeader-DKicxUdY.js} +2 -2
- package/assets/{MailViewChrome-BEuukQ7E.js → MailViewChrome-Cvg9724x.js} +1 -1
- package/assets/MailboxPane-CuWAzodg.js +1 -0
- package/assets/{NavMenuButton-C65lZ8kj.js → NavMenuButton-DJBj1Efv.js} +1 -1
- package/assets/{OnboardingWizard-DsaHOR6q.js → OnboardingWizard-JzUsInFc.js} +1 -1
- package/assets/{OutboxPane-Dyude9Tx.js → OutboxPane-v7FsxN5S.js} +1 -1
- package/assets/_mailboxId-Cc3QATFK.js +1 -0
- package/assets/_messageId--HiL8fSR.js +1 -0
- package/assets/_messageId-B5PnPIfO.js +1 -0
- package/assets/_messageId-DNHDvo-h.js +1 -0
- package/assets/_outboxMessageId-Dao32ka3.js +1 -0
- package/assets/_threadId-BTz7qkqh.js +1 -0
- package/assets/_threadId-CGpArx8F.js +1 -0
- package/assets/_threadId-D6B3b9tq.js +1 -0
- package/assets/{accounts-DhyjISyA.js → accounts-6ajMxTzP.js} +1 -1
- package/assets/{advanced-BbgHlWGx.js → advanced-KSzQ3ZCI.js} +1 -1
- package/assets/{appearance-R-T_LOKS.js → appearance-BUCvmTe4.js} +1 -1
- package/assets/{attachment-file-BLDkIwOJ.js → attachment-file-wkQrVlOT.js} +1 -1
- package/assets/{avatar-DN2GOVwx.js → avatar-PPBQFxLr.js} +1 -1
- package/assets/{bottom-sheet-BOV1XlmK.js → bottom-sheet-BI7FHxIU.js} +1 -1
- package/assets/brief-D99Lg4Nk.js +1 -0
- package/assets/{brief-CVhL20Be.js → brief-KQQ9rzoQ.js} +1 -1
- package/assets/{browser-ponyfill-D32B93-O.js → browser-ponyfill-qY-OPByy.js} +1 -1
- package/assets/{bug-CFJvh78a.js → bug-YT6_7lDa.js} +1 -1
- package/assets/{circle-check-B1axZLsr.js → circle-check-Bisq8Fbo.js} +1 -1
- package/assets/{circle-check-big-vqvQydJO.js → circle-check-big-CtpJLp3m.js} +1 -1
- package/assets/{circle-help-BJY9-zHE.js → circle-help-Dv4TBrzP.js} +1 -1
- package/assets/{clock-aSLlxPRI.js → clock-BPsIp_-J.js} +1 -1
- package/assets/compose._-_outboxMessageId_-CkTi-jPm.js +1 -0
- package/assets/compose._-_outboxMessageId_-Csemi33d.js +1 -0
- package/assets/compose._-_outboxMessageId_-DHOLpufI.js +1 -0
- package/assets/compose._-_outboxMessageId_-zHISExH0.js +1 -0
- package/assets/{confirm-dialog-BZchyNni.js → confirm-dialog-BsSjk5j6.js} +1 -1
- package/assets/{download-DmAkhhMn.js → download-uXp4xOAG.js} +1 -1
- package/assets/{filters-zSfon7Fz.js → filters-CMvl_YPA.js} +1 -1
- package/assets/flagged-D6hnVT7S.js +1 -0
- package/assets/{flagged-TX_K_SDH.js → flagged-brk3a2ta.js} +1 -1
- package/assets/{folders-xljDMDdm.js → folders-lahViKhH.js} +1 -1
- package/assets/{help-copy-9gZWDIuu.js → help-copy-Q7yo-5Vf.js} +1 -1
- package/assets/index--HiL8fSR.js +1 -0
- package/assets/index-Cehgmi4j.js +1 -0
- package/assets/{index-DGOEldLQ.js → index-CjXLLlAc.js} +3 -3
- package/assets/index-ClPQtjjm.js +1 -0
- package/assets/index-DNHDvo-h.js +1 -0
- package/assets/{index-BKi_1Qmh.js → index-DQhVJOzH.js} +4 -4
- package/assets/index-DWOszQc3.js +1 -0
- package/assets/index-DXGzuegL.js +1 -0
- package/assets/index-DY01h7ug.js +1 -0
- package/assets/index-JxXpEYU_.js +1 -0
- package/assets/{kbd-CaLtMuEp.js → kbd-UotWPXL7.js} +1 -1
- package/assets/{labels-BIvrEn-w.js → labels-Bj778Lgx.js} +1 -1
- package/assets/{mail-DV0uERxL.js → mail-CN1JpS5v.js} +1 -1
- package/assets/{mail-BhxrrdBx.js → mail-D8NvdRnL.js} +1 -1
- package/assets/{menu-3dLcSCcM.js → menu-DB3GT_o3.js} +1 -1
- package/assets/{move-options-yXxXVQoL.js → move-options-oqkUJMJt.js} +1 -1
- package/assets/{onboarding-C6hRcHAf.js → onboarding-CKT6_rgV.js} +1 -1
- package/assets/outbox-CIQBFnfv.js +1 -0
- package/assets/{pencil-C-ZGjBY2.js → pencil-g8msG1CL.js} +1 -1
- package/assets/{rich-text-DoN_jZV_.js → rich-text-CAecbj2R.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-CA4LOlq5.js → rich-text-spellcheck-worker-provider-ChQTpLfr.js} +1 -1
- package/assets/{rotate-ccw-ChFcYBoM.js → rotate-ccw-LRJNhm6t.js} +1 -1
- package/assets/{row-actions-B1y94-E_.js → row-actions-CfpgsfZ1.js} +1 -1
- package/assets/{search-scope-Ci5AdKCU.js → search-scope-DXacVdZ7.js} +1 -1
- package/assets/{search-token-index-CBTVc3D8.js → search-token-index-BslByHGI.js} +1 -1
- package/assets/{search-view-B0zvV-Pg.js → search-view-BumXkcIk.js} +1 -1
- package/assets/{senders-CQIXGOVn.js → senders-CpYsrfwv.js} +1 -1
- package/assets/settings-CJqBovLA.js +1 -0
- package/assets/{settings-screen-BQgI79gc.js → settings-screen-DEa6NCuk.js} +1 -1
- package/assets/{shield-check-bHOnFfMN.js → shield-check-ZzuHuyKI.js} +1 -1
- package/assets/{suggested-vips-mSU92pmk.js → suggested-vips-DSquVNMw.js} +1 -1
- package/assets/{useDebouncedValue-DVdVjbNi.js → useDebouncedValue-BU51rOqb.js} +1 -1
- package/assets/{useFilters-CX8meUa-.js → useFilters-C4Z2CHar.js} +1 -1
- package/assets/{useLabels-kXlhZvsf.js → useLabels-BHOTQoij.js} +1 -1
- package/assets/{useMediaQuery-BS2MwPdz.js → useMediaQuery-K25gPs7i.js} +1 -1
- package/assets/{useMessageBodyContent-_8vqUkeq.js → useMessageBodyContent-BhFrGoTp.js} +1 -1
- package/assets/{useRefreshControl-DH6HghkG.js → useRefreshControl-JuUsFhLl.js} +1 -1
- package/assets/{useSearchMirror-C__UTrT9.js → useSearchMirror-Bl0Ip0Vj.js} +1 -1
- package/assets/{useSearchTokenContext-SHA9xnEZ.js → useSearchTokenContext-CQTd2xND.js} +1 -1
- package/assets/{useSemanticSearch-DvBxUHMv.js → useSemanticSearch-DmJHAOEe.js} +1 -1
- package/assets/{useSignature-C2iDHQnY.js → useSignature-OdW8zooE.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/BriefPane-gQae7FXu.js +0 -1
- package/assets/FlaggedPane-BAR4Ky6a.js +0 -1
- package/assets/MailboxPane-B7nqvLl3.js +0 -1
- package/assets/_mailboxId-Bcy-ZIMZ.js +0 -1
- package/assets/_messageId-BjtpUAiY.js +0 -1
- package/assets/_messageId-BrvrVTJO.js +0 -1
- package/assets/_messageId-DJUXd-ym.js +0 -1
- package/assets/_outboxMessageId-DLssBq50.js +0 -1
- package/assets/_threadId-CFGu0I1L.js +0 -1
- package/assets/_threadId-CG2yKDxi.js +0 -1
- package/assets/_threadId-DSvp6fr6.js +0 -1
- package/assets/brief-NWAyMRhx.js +0 -1
- package/assets/compose._-_outboxMessageId_-B-I9TQKF.js +0 -1
- package/assets/compose._-_outboxMessageId_-C371nzzR.js +0 -1
- package/assets/compose._-_outboxMessageId_-DLU-kxsZ.js +0 -1
- package/assets/compose._-_outboxMessageId_-u4OuMRxE.js +0 -1
- package/assets/flagged-DbwD456Q.js +0 -1
- package/assets/index-BEQek0iA.js +0 -1
- package/assets/index-BrvrVTJO.js +0 -1
- package/assets/index-BtjFK1Tg.js +0 -1
- package/assets/index-CFu6hexv.js +0 -1
- package/assets/index-CHI5ffeH.js +0 -1
- package/assets/index-CHkPTaHx.js +0 -1
- package/assets/index-CJB0i5Fm.js +0 -1
- package/assets/index-DJUXd-ym.js +0 -1
- package/assets/outbox-BYoYn006.js +0 -1
- package/assets/settings-DRp3tzum.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,b as S,m as L,r as c,ar as O,ad as T,g as $,av as A,s as I,b3 as q,n as C,a7 as k,b4 as M,b5 as P,B as N,a as R,b6 as G,X as Q}from"./index-
|
|
1
|
+
import{j as e,b as S,m as L,r as c,ar as O,ad as T,g as $,av as A,s as I,b3 as q,n as C,a7 as k,b4 as M,b5 as P,B as N,a as R,b6 as G,X as Q}from"./index-DQhVJOzH.js";import{K as f}from"./kbd-UotWPXL7.js";import{S as B,a as E}from"./settings-screen-DEa6NCuk.js";import{E as V}from"./ErrorState-MKUYbZLc.js";import{u as K}from"./useDebouncedValue-BU51rOqb.js";import{a as _}from"./format-D7umvejg.js";import{s as D}from"./help-copy-Q7yo-5Vf.js";import"./avatar-PPBQFxLr.js";import"./menu-DB3GT_o3.js";import"./circle-help-Dv4TBrzP.js";function F({options:t,active:r,onSelect:m}){return e.jsx("div",{role:"tablist",className:S("flex shrink-0 gap-1 overflow-x-auto border-b border-line p-2","lg:w-44 lg:flex-col lg:gap-0 lg:overflow-visible lg:border-r lg:border-b-0 lg:py-2 lg:pr-2 lg:pl-3"),children:t.map(a=>{const d=a.id===r;return e.jsxs("button",{type:"button",role:"tab","aria-selected":d,onClick:()=>m(a.id),className:S("flex min-h-11 shrink-0 items-center gap-2 rounded-md px-3 text-left text-sm transition-colors lg:min-h-0 lg:px-2 lg:py-1",d?"bg-accent-2-soft font-medium text-accent-2":"text-fg-muted hover:bg-surface-sunken hover:text-fg"),children:[e.jsx("span",{className:"flex-1 truncate",children:a.label}),e.jsx("span",{className:S("text-2xs tabular-nums",d?"text-accent-2":"text-fg-subtle"),children:a.count??"—"})]},a.id)})})}const v={vip:"VIPs",muted:"Muted",blocked:"Blocked"};function H({query:t,onCount:r}){const{data:m,isPending:a,isError:d,error:b}=I(q()),g=C(),i=k({...P(),onSettled:()=>{g.invalidateQueries({queryKey:M()})}}),l=m?.suggestions??[],p=t.trim().toLowerCase(),u=p?l.filter(n=>(n.displayName??"").toLowerCase().includes(p)||n.normalizedEmail.toLowerCase().includes(p)):l;return c.useEffect(()=>{r?.(u.length,l.length)},[r,u.length,l.length]),a?e.jsx("div",{className:"px-row-inset py-3 text-sm text-fg-subtle animate-pulse",children:"Loading VIP suggestions…"}):d?e.jsx("div",{className:"px-row-inset py-3",children:e.jsx(V,{variant:"inline",title:"Couldn't load VIP suggestions",error:b})}):l.length===0?e.jsxs("div",{className:"px-row-inset py-5 text-sm text-fg-subtle",children:["No VIP suggestions yet. As you reply to senders, they'll appear here. Press ",e.jsx(f,{children:"v"})," on any message to promote a sender to VIP."]}):u.length===0?e.jsxs("p",{className:"px-row-inset py-5 text-sm text-fg-subtle",children:["No VIPs match “",t,"”."]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"px-row-inset py-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Suggested — promote to VIP"}),u.map(n=>e.jsx(E,{name:n.displayName??n.normalizedEmail,email:n.normalizedEmail,meta:n.replyCount>0?`${n.inboundCount} received · you replied ${n.replyCount}×`:`${n.inboundCount} received · you've never replied`,trailing:e.jsx(N,{variant:"ghost",size:"sm",icon:e.jsx(R,{className:"size-3.5"}),"aria-busy":i.isPending,onClick:()=>{i.isPending||i.mutate({path:{addressId:n.addressId},body:{flags:{vip:{value:!0,setAt:Date.now(),setBy:"user"}}}})},children:"Add VIP"})},n.addressId))]})}function U({group:t,query:r,onCount:m}){const a=K(r.trim(),300),d=C(),[b,g]=c.useState(null),i=a.length>=2,l=G({query:{q:a,limit:50}}),{data:p,isPending:u,isError:n,error:j}=I({...l,enabled:i}),x=k({...P(),onSuccess:()=>{d.invalidateQueries({queryKey:l.queryKey})}}),h=(p?.items??[]).filter(s=>t==="muted"?s.flags?.muted?.value??!1:s.flags?.blocked?.value??!1);return c.useEffect(()=>{m?.(i?h.length:0,null)},[m,i,h.length]),i?u?e.jsx("div",{className:"px-row-inset py-3 text-sm text-fg-subtle animate-pulse",children:"Searching…"}):n?e.jsx("div",{className:"px-row-inset py-3",children:e.jsx(V,{variant:"inline",title:"Search failed",error:j})}):h.length===0?e.jsxs("p",{className:"px-row-inset py-5 text-sm text-fg-subtle",children:["No ",v[t].toLowerCase()," senders matching “",a,"”."]}):e.jsx(e.Fragment,{children:h.map(s=>{const o=t==="muted"?s.flags?.muted:s.flags?.blocked,y=o?[`${t}`,o.setAt&&_(o.setAt,{month:"short",year:"numeric"})||null,o.reason?`— ${o.reason}`:null].filter(Boolean).join(" "):t,w=x.isPending&&x.variables?.path.addressId===s.addressId,z=x.isError&&b===s.addressId;return e.jsx(E,{name:s.displayName??s.normalizedEmail,email:s.normalizedEmail,danger:t==="blocked",meta:y,trailing:z?e.jsx(N,{variant:"secondary",size:"sm",onClick:()=>{g(s.addressId),x.mutate({path:{addressId:s.addressId},body:{flags:{[t]:null}}})},children:"Retry"}):e.jsx(N,{variant:"ghost",size:"sm",icon:e.jsx(Q,{className:"size-3.5"}),"aria-busy":w,"aria-label":`Remove ${t} flag`,onClick:()=>{w||(g(s.addressId),x.mutate({path:{addressId:s.addressId},body:{flags:{[t]:null}}}))}})},s.addressId)})}):e.jsxs("div",{className:"px-row-inset py-5 text-sm text-fg-subtle space-y-2",children:[e.jsxs("p",{children:["Type 2+ characters to search ",v[t].toLowerCase()," ","senders by name or address."]}),e.jsxs("p",{className:"text-2xs text-fg-subtle",children:["Note: a dedicated flagged-address list endpoint is in the backlog. Press ",e.jsx(f,{children:"m"})," on any message to mute its sender; ",e.jsx(f,{children:"b"})," to block."]})]})}function re(){const t=L(),[r,m]=c.useState("vip"),[a,d]=c.useState(""),[b,g]=c.useState(!0),[i,l]=c.useState(0),[p,u]=c.useState({vip:0,muted:null,blocked:null}),n=c.useCallback((s,o)=>{l(s),u(y=>({...y,vip:o}))},[]),j=c.useCallback((s,o)=>{l(s),u(y=>({...y,[r]:s}))},[r]),x=p[r],h=s=>{const o=A[s];o&&t({to:o})};return e.jsx(B,{items:O,activeId:"senders",title:"Senders & Rules",description:"Per-sender preferences — set with one key from any message, managed here.",flush:!0,help:D,helpOpen:b,onToggleHelp:()=>g(s=>!s),onSelect:h,onBackToMail:()=>{t({to:"/mail"})},children:e.jsxs("div",{className:"flex min-h-0 flex-1 flex-col lg:flex-row",children:[e.jsx(F,{active:r,onSelect:s=>{m(s),d("")},options:["vip","muted","blocked"].map(s=>({id:s,label:v[s],count:p[s]}))}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[e.jsx("div",{className:"border-b border-line px-row-inset py-2",children:e.jsx(T,{icon:e.jsx($,{className:"size-4"}),placeholder:`Filter ${v[r].toLowerCase()} by name or address`,className:"h-8 max-w-sm",value:a,onChange:s=>d(s.target.value)})}),e.jsx("div",{className:"min-h-0 flex-1 divide-y divide-line overflow-y-auto",children:r==="vip"?e.jsx(H,{query:a,onCount:n}):e.jsx(U,{group:r,query:a,onCount:j})}),e.jsxs("footer",{className:"flex items-center justify-between border-t border-line px-row-inset py-1 text-2xs text-fg-subtle",children:[e.jsx("span",{children:x!=null?`${i} of ${x} flagged senders`:`${i} flagged senders`}),e.jsxs("span",{children:[e.jsx(f,{children:"j"})," ",e.jsx(f,{children:"k"})," navigate · ",e.jsx(f,{children:"⌫"})," remove flag"]})]})]})]})})}export{re as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t,U as o}from"./index-DQhVJOzH.js";const n=()=>t.jsx(o,{});export{n as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as z,r as j,j as e,b as f,B as i,X as N,at as S}from"./index-
|
|
1
|
+
import{c as z,r as j,j as e,b as f,B as i,X as N,at as S}from"./index-DQhVJOzH.js";import{A as w}from"./avatar-PPBQFxLr.js";import{M as B}from"./menu-DB3GT_o3.js";import{C as v}from"./circle-help-Dv4TBrzP.js";const h=z("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);function F({items:l,activeId:t,title:c,description:n,children:r,help:s,helpOpen:d=!0,flush:o,onSelect:k,onToggleHelp:u,onBackToMail:m}){const[y,x]=j.useState(!1),[b,C]=j.useState(!1),p=!!s&&d,g=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"px-3 pt-3 pb-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Settings"}),e.jsx("nav",{className:"flex-1 overflow-y-auto px-2 py-1",children:l.map(a=>e.jsxs("button",{type:"button",onClick:()=>{k?.(a.id),x(!1)},className:f("flex min-h-11 w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm transition-colors lg:min-h-0",a.id===t?"bg-accent-2-soft font-medium text-accent-2":"text-fg-muted hover:bg-surface hover:text-fg"),children:[a.icon&&e.jsx("span",{className:f("shrink-0",a.id===t?"text-accent-2":"text-fg-subtle"),children:a.icon}),a.label]},a.id))})]});return e.jsxs("div",{className:"safe-area-frame flex h-dvh w-full overflow-hidden bg-canvas font-sans text-fg",children:[e.jsxs("aside",{className:"hidden w-60 shrink-0 flex-col border-r border-line bg-surface-sunken lg:flex",children:[e.jsx("div",{className:"flex h-pane-header shrink-0 items-center border-b border-line px-2",children:e.jsxs("button",{type:"button",onClick:m,className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm text-fg-muted hover:bg-surface hover:text-fg",children:[e.jsx(h,{className:"size-4 text-fg-subtle"}),"Back to mail"]})}),g]}),y&&e.jsxs("div",{className:"fixed inset-0 z-50 flex lg:hidden",children:[e.jsx("button",{type:"button","aria-label":"Close menu",className:"absolute inset-0 bg-canvas/60",onClick:()=>x(!1)}),e.jsxs("aside",{className:"safe-area-frame relative flex w-72 max-w-[85%] flex-col border-r border-line bg-surface-sunken",children:[e.jsxs("div",{className:"flex h-pane-header shrink-0 items-center justify-between border-b border-line px-2",children:[e.jsxs("button",{type:"button",onClick:()=>{m?.(),x(!1)},className:"flex items-center gap-2 rounded-md px-2 py-1 text-left text-sm text-fg-muted hover:bg-surface hover:text-fg",children:[e.jsx(h,{className:"size-4 text-fg-subtle"}),"Back to mail"]}),e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(N,{className:"size-4"}),onClick:()=>x(!1),"aria-label":"Close menu"})]}),g]})]}),e.jsxs("main",{className:"flex min-w-0 flex-1 flex-col",children:[e.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-3 border-b border-line px-3 lg:px-5",children:[m&&e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(h,{className:"size-4"}),className:"-ml-1 lg:hidden",onClick:m,"aria-label":"Back to mail"}),e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(B,{className:"size-4"}),className:"lg:hidden",onClick:()=>x(!0),"aria-label":"Open settings menu"}),e.jsx("h1",{className:"text-md font-semibold text-fg",children:c}),n&&e.jsx("p",{className:"hidden min-w-0 truncate text-xs text-fg-subtle lg:block",children:n}),s&&e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(v,{className:"size-4"}),className:"ml-auto lg:hidden",onClick:()=>C(a=>!a),"aria-label":"Tips","aria-expanded":b}),s&&!p&&e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(v,{className:"size-4"}),className:"hidden ml-auto lg:inline-flex",onClick:u,"aria-label":"Show tips"})]}),s&&b&&e.jsx("div",{className:"border-b border-line bg-surface-sunken px-row-inset py-3 text-xs leading-relaxed text-fg-muted lg:hidden",children:s}),o?e.jsx("div",{className:"flex min-h-0 flex-1 flex-col",children:r}):e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:e.jsx("div",{className:"max-w-2xl px-3 py-5 lg:px-5",children:e.jsx("div",{className:"space-y-5",children:r})})})]}),p&&e.jsxs("aside",{className:"hidden w-64 shrink-0 flex-col border-l border-line bg-surface-sunken lg:flex",children:[e.jsxs("header",{className:"flex h-pane-header shrink-0 items-center justify-between border-b border-line px-row-inset",children:[e.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Tips & tricks"}),e.jsx(i,{variant:"ghost",size:"sm",icon:e.jsx(N,{className:"size-3.5"}),onClick:u,"aria-label":"Collapse tips"})]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-row-inset py-3 text-xs leading-relaxed text-fg-muted",children:s})]})]})}function R({name:l,email:t,meta:c,caption:n,danger:r,trailing:s}){return e.jsxs("div",{className:"flex items-center gap-3 px-row-inset py-2 hover:bg-surface-sunken",children:[e.jsx("span",{className:f(r&&"rounded-full ring-2 ring-danger/40"),children:e.jsx(w,{name:l,email:t,size:"sm"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-col gap-0 sm:flex-row sm:items-baseline sm:gap-2",children:[e.jsx("span",{className:"truncate text-sm font-medium text-fg",children:l}),e.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:t})]}),e.jsxs("div",{className:"text-xs text-fg-subtle",children:[c,n&&e.jsxs("span",{className:"text-fg-muted",children:[" · ",n]})]})]}),s&&e.jsx("div",{className:"shrink-0",children:s})]})}const O={healthy:{tone:"positive",label:"healthy"},error:{tone:"danger",label:"error"},muted:{tone:"neutral",label:"muted"}};function X({label:l,email:t,connector:c,syncLabel:n,state:r,errorDetail:s,trailing:d}){const o=O[r];return e.jsxs("div",{className:f("rounded-sm border border-line bg-surface",r==="muted"&&"opacity-65"),children:[e.jsxs("div",{className:"flex flex-col gap-3 px-row-inset py-3 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx(w,{name:l,email:t,size:"md"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate text-sm font-semibold text-fg",children:l}),e.jsx(S,{tone:o.tone,dot:!0,children:o.label})]}),e.jsxs("div",{className:"truncate text-xs text-fg-subtle",children:[t," · ",c," · ",n]})]})]}),d&&e.jsx("div",{className:"shrink-0",children:d})]}),s&&e.jsx("div",{className:"border-t border-line px-row-inset py-2",children:e.jsx("code",{className:"block rounded-xs bg-danger-soft px-2 py-1 text-2xs text-danger",children:s})})]})}export{X as A,F as S,R as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./index-
|
|
1
|
+
import{c as e}from"./index-DQhVJOzH.js";const c=e("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);export{c as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,$ as e}from"./index-
|
|
1
|
+
import{j as t,$ as e}from"./index-DQhVJOzH.js";const o=()=>t.jsx(e,{to:"/settings/senders",replace:!0});export{o as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./index-
|
|
1
|
+
import{r as o}from"./index-DQhVJOzH.js";const n=(e,t)=>{const[r,u]=o.useState(e);return o.useEffect(()=>{const s=setTimeout(()=>u(e),t);return()=>clearTimeout(s)},[e,t]),r};export{n as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as m,a7 as b,cZ as E,s as C,c_ as x,cG as F,c$ as D,n as M,d0 as N,d1 as P,d2 as L,d3 as z}from"./index-
|
|
1
|
+
import{r as m,a7 as b,cZ as E,s as C,c_ as x,cG as F,c$ as D,n as M,d0 as N,d1 as P,d2 as L,d3 as z}from"./index-DQhVJOzH.js";const B=(e,t)=>{if(e.state==="Expired")return"Expired";if(e.scope!=="Temporary"||!e.expiresAt)return"Active";const r=Date.parse(e.expiresAt);return Number.isNaN(r)?"Active":r<=t?"Expired":"Active"},K=e=>{if(!e)return;const t=Date.parse(e);if(!Number.isNaN(t))return new Date(t).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},O=(e,t=new Date)=>{if(!e)return;const r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!r)return;const[,a,i,n]=r,s=new Date(Number(a),Number(i)-1,Number(n),23,59,59,0);if(Number.isNaN(s.getTime()))return;const o=-t.getTimezoneOffset(),d=o>=0?"+":"-",l=Math.abs(o),c=String(Math.floor(l/60)).padStart(2,"0"),f=String(l%60).padStart(2,"0"),u=p=>String(p).padStart(2,"0");return`${s.getFullYear()}-${u(s.getMonth()+1)}-${u(s.getDate())}T${u(s.getHours())}:${u(s.getMinutes())}:${u(s.getSeconds())}${d}${c}:${f}`},h="None",G=e=>!e.literalClauses.some(t=>t.field==="HasWords"),y=e=>({...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h}),V=({mode:e,ruleScope:t})=>t==="standing"?"standing":t==="until"?"temporary":e==="selected"?"just-these":"all-like-these",X=({mode:e,ruleScope:t,anchorMessageId:r,clauses:a,matchOperator:i,moveMailboxId:n,until:s})=>({...e==="similar"&&r?{anchorMessageId:r}:{},matchOperator:i==="all"?"And":"Or",literalClauses:a.map(o=>({field:o.field,value:o.value})),moveMailboxId:n,expiresAt:t==="until"?O(s??""):void 0}),S=(e,t,r)=>({name:r,scope:t==="standing"?"Standing":"Temporary",...t==="temporary"&&e.expiresAt?{expiresAt:e.expiresAt}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h,...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{}}),T=new Set(["Complete","Failed"]),v=e=>e!==void 0&&T.has(e),w=1e3,_=15e3,$=e=>{const t=Math.max(0,e),r=w*2**t;return Math.min(r,_)},J=(e,t,r)=>{if(e)return{kind:r?"restartFailed":"startFailed",error:e};if(t)return{kind:"statusUnreadable",error:t}},Y=e=>{const[t,r]=m.useState(),a=b({...E(),onSuccess:g=>r(g.organizeJobId)}),{mutate:i}=a,n=C({...x({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:g=>{const I=g.state.data?.state;return v(I)?!1:$(g.state.dataUpdateCount)}}),s=m.useCallback(g=>{e&&i({path:{accountId:e},body:y(g)})},[e,i]),{refetch:o}=n,d=m.useCallback(()=>{o()},[o]),l=n.data,c=a.isPending?void 0:l,f=c?.state??a.data?.state,u=v(c?.state),p={state:f,matchedCount:c?.matchedCount??0,appliedCount:c?.appliedCount??0,failedCount:c?.failedCount??0,errorMessage:c?.errorMessage??""};return{start:s,refreshStatus:d,progress:p,isStarting:a.isPending,isRunning:!!t&&!u,isDone:u,failure:J(a.error,n.error,!!l)}},Z=["From","Subject","HasWords","ListId","FromDomain"],k=e=>{const t=e.trim(),r=t.match(/<([^>]+)>/);return(r?r[1]:t).trim().toLowerCase()},ee=(e,t)=>e==="ListId"?k(t):t.trim(),R=e=>e==="all"?"And":"Or",U=(e,t)=>{const r=e.widen!==void 0&&!e.widen.inactive,a=e.clauses.map(i=>({field:i.field,value:i.value}));return{...r&&t?{anchorMessageId:t}:{},matchOperator:R(e.matchOperator),literalClauses:a}},Q=e=>e.anchorMessageId!==void 0||!e.literalClauses.some(t=>t.field==="HasWords"),j=e=>JSON.stringify({anchor:e.anchorMessageId??null,operator:e.matchOperator,clauses:e.literalClauses.map(t=>`${t.field} ${t.value}`)}),te=(e,t)=>{const r=U(e,t);return{...r.anchorMessageId?{anchorMessageId:r.anchorMessageId}:{},matchOperator:r.matchOperator,literalClauses:r.literalClauses,moveMailboxId:e.moveMailboxId,labelId:e.labelId,expiresAt:e.scope==="until"?O(e.until??""):void 0}},q=(e,t)=>e.error!==void 0&&e.errorSignature===t?{status:"error",reason:e.error}:e.count===void 0?{status:"loading"}:e.previewedSignature===t?{status:"ready",count:e.count}:{status:"ready",count:e.count,stale:!0},H=350,re=(e,t,r)=>{const a=b(F()),{mutateAsync:i}=a,n=j(t),[s,o]=m.useState(()=>({})),d=m.useRef(t);d.current=t;const l=m.useRef(n),c=Q(t);return m.useEffect(()=>{if(!e||!c||n===s.previewedSignature||n===s.errorSignature)return;const f=setTimeout(()=>{const u=n;l.current=u,i({path:{accountId:e},body:y({...d.current})}).then(p=>{l.current===u&&o({count:p.matchedCount,matchedIds:p.messageIds,previewedSignature:u})}).catch(p=>{l.current===u&&o(g=>({...g,error:p instanceof Error?p.message:"Couldn't count matches.",errorSignature:u}))})},H);return()=>clearTimeout(f)},[e,c,n,s.previewedSignature,s.errorSignature,i]),c?{count:q(s,n),matchedIds:s.previewedSignature===n?s.matchedIds??[]:[]}:{count:{status:"error",reason:D},matchedIds:[]}},A=e=>P({path:{accountId:e}}),se=e=>{const t=C({...L({path:{accountId:e??""}}),enabled:!!e});return{filters:t.data?.items??[],isPending:t.isPending,isError:t.isError,error:t.error,refetch:t.refetch}},ae=e=>{const t=M(),r=b({...N(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a,mutateAsync:i}=r,n=m.useCallback((o,d,l)=>{e&&a({path:{accountId:e},body:S(o,d,l)})},[e,a]),s=m.useCallback(async(o,d,l)=>e?i({path:{accountId:e},body:S(o,d,l)}).then(()=>!0,()=>!1):!1,[e,i]);return{createFilter:n,createFilterAsync:s,isPending:r.isPending,isSuccess:r.isSuccess,isError:r.isError,error:r.error,reset:r.reset}},ne=e=>{const t=M(),r=b({...z(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:A(e)})}}),{mutate:a}=r;return{deleteFilter:m.useCallback(n=>{e&&a({path:{accountId:e,filterId:n}})},[e,a]),isPending:r.isPending,deletingFilterId:r.isPending?r.variables?.path.filterId:void 0}};export{h as N,Z as S,Y as a,A as b,te as c,K as d,se as e,B as f,ne as g,y as h,ae as i,X as j,G as k,ee as n,V as o,O as p,U as r,re as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as L,bt as p,n,a7 as l,bu as d,r as u,bv as y,bw as c,bx as g}from"./index-
|
|
1
|
+
import{s as L,bt as p,n,a7 as l,bu as d,r as u,bv as y,bw as c,bx as g}from"./index-DQhVJOzH.js";const o=e=>y({path:{accountId:e}}),f=e=>{const s=L({...p({path:{accountId:e??""}}),enabled:!!e});return{labels:s.data?.items??[],isPending:s.isPending,isError:s.isError,error:s.error,refetch:s.refetch}},m=e=>{const s=n(),t=l({...d(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutateAsync:r}=t;return{createLabel:u.useCallback((a,i="Default")=>e?r({path:{accountId:e},body:{name:a,color:i}}):Promise.reject(new Error("No account")),[e,r]),isPending:t.isPending,isError:t.isError,error:t.error,reset:t.reset}},h=e=>{const s=n(),t=l({...c(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutate:r}=t;return{updateLabel:u.useCallback((a,i)=>{e&&r({path:{accountId:e,labelId:a},body:i})},[e,r]),isPending:t.isPending,updatingLabelId:t.isPending?t.variables?.path.labelId:void 0}},C=e=>{const s=n(),t=l({...g(),onSuccess:()=>{e&&s.invalidateQueries({queryKey:o(e)})}}),{mutate:r}=t;return{deleteLabel:u.useCallback(a=>{e&&r({path:{accountId:e,labelId:a}})},[e,r]),isPending:t.isPending,deletingLabelId:t.isPending?t.variables?.path.labelId:void 0}};export{f as a,h as b,C as c,m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s}from"./index-
|
|
1
|
+
import{r as s}from"./index-DQhVJOzH.js";const r=1024,c=`(min-width: ${r}px) and (not ((orientation: portrait) and (pointer: coarse)))`,d=e=>{const[o,n]=s.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches);return s.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const t=window.matchMedia(e);n(t.matches);const a=i=>n(i.matches);return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e]),o},m=()=>d(c);export{c as D,d as a,m as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as M,bO as T,bP as O,w as f,r as i,bQ as P,m as h,j as W,bR as Y,bS as V,W as H,k as z,n as J,s as Z,bT as ee,bU as te}from"./index-
|
|
1
|
+
import{G as M,bO as T,bP as O,w as f,r as i,bQ as P,m as h,j as W,bR as Y,bS as V,W as H,k as z,n as J,s as Z,bT as ee,bU as te}from"./index-DQhVJOzH.js";import{u as se}from"./useMediaQuery-K25gPs7i.js";function re(e){const t=M({warn:e?.router===void 0}),s=e?.router||t;return T(s.stores.__store,O(e,s))}function ne(e){const t=M();return T(t.stores.location,O(e,t))}const S="/mail/brief",A="/mail/$mailboxId",v="/mail/outbox",L="/mail/flagged";function oe(e){for(const t of e){if(t.routeId===S)return{list:"brief"};if(t.routeId===L)return{list:"flagged"};if(t.routeId===v)return{list:"outbox"};if(t.routeId===A)return{list:"mailbox",mailboxId:t.params?.mailboxId}}}function Te(e){const t=e.split(/[?#]/)[0].split("/").filter(Boolean);if(t[0]!=="mail")return"";const s=t[1];return s?s==="brief"?S:s==="flagged"?L:s==="outbox"?v:ae(s):""}function Oe(e){if(typeof e!="object"||e===null)return"";const{q:t}=e;return typeof t=="string"?t:""}function ae(e){return`${A}:${e}`}function Pe(e,t){return e===t?!0:e.startsWith(`${t}/`)}function Se(e){const t=e.split(/[?#]/)[0].split("/").filter(Boolean);return t[0]==="mail"&&t.length>2}function g(){const e=re({select:s=>oe(s.matches)?.list}),t=f({from:"/mail/$mailboxId",shouldThrow:!1});return{list:e,mailboxId:t?.mailboxId}}const k=["intelligence","nav","shortcuts"],ie=["nav","shortcuts"],ue=e=>ie.includes(e),ce=P(k);function x(e){const t=new Set(e.split(",").map(s=>ce.safeParse(s)).filter(s=>s.success).map(s=>s.data));return k.filter(s=>t.has(s))}function w(e){return k.filter(t=>e.includes(t)).join(",")}function Ae(){const e=ne({select:t=>w(x(t.hash))});return i.useMemo(()=>x(e),[e])}const le=(e,t)=>!ue(e)&&t;function de(e){return(t="")=>w(x(t).filter(s=>le(s,e)))}function y(){const e=se();return i.useMemo(()=>de(e),[e])}function ve(){const e=h();return i.useCallback(t=>{e({search:!0,hash:w(t),replace:!0,hashScrollIntoView:!1})},[e])}const _="/mail/brief/compose/{-$outboxMessageId}",D="/mail/flagged/compose/{-$outboxMessageId}",B="/mail/outbox/compose/{-$outboxMessageId}",U="/mail/$mailboxId/compose/{-$outboxMessageId}";function F(){const e=f({from:_,shouldThrow:!1}),t=f({from:D,shouldThrow:!1}),s=f({from:B,shouldThrow:!1}),r=f({from:U,shouldThrow:!1});return e??t??s??r}function Le(){return F()!==void 0}function _e(){return F()?.outboxMessageId}function fe(e,t,s){return e==="flagged"?{to:D,params:{outboxMessageId:s}}:e==="outbox"?{to:B,params:{outboxMessageId:s}}:e==="mailbox"&&t?{to:U,params:{mailboxId:t,outboxMessageId:s}}:{to:_,params:{outboxMessageId:s}}}function C(){const e=h(),t=y(),{list:s,mailboxId:r}=g();return i.useCallback((n,o)=>{e({...fe(s,r,n),search:a=>a,hash:o?.keepPanels?!0:t,replace:o?.replace??!1})},[e,t,s,r])}function De(){const e=C();return i.useCallback(()=>e(void 0),[e])}function Be(){const e=C();return i.useCallback(t=>e(t),[e])}function Ue(){const e=C();return i.useCallback(t=>e(t,{replace:!0,keepPanels:!0}),[e])}function Fe(){const e=h(),t=y(),{list:s,mailboxId:r}=g();return i.useCallback(()=>{const n=a=>a,o=t;if(s==="flagged"){e({to:"/mail/flagged",search:n,hash:o});return}if(s==="outbox"){e({to:"/mail/outbox",search:n,hash:o});return}if(s==="mailbox"&&r){e({to:"/mail/$mailboxId",params:{mailboxId:r},search:n,hash:o});return}e({to:"/mail/brief",search:n,hash:o})},[e,t,s,r])}const me=Y(V);function Ne({fragment:e,...t}){const s=y();return W.jsx(me,{...t,hash:e??s})}const he=["reply","reply-all","forward"],pe=P(he),N="/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}",K="/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}",Q="/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}";function q(){const e=f({from:N,shouldThrow:!1}),t=f({from:K,shouldThrow:!1}),s=f({from:Q,shouldThrow:!1});return e??t??s}function $(){const e=q();return i.useMemo(()=>{if(!e)return;const t=pe.safeParse(e.mode);return t.success?{kind:"reply",mode:t.data,threadId:e.threadId,sourceMessageId:e.messageId,outboxMessageId:e.outboxMessageId}:{kind:"unknown",segment:e.mode}},[e])}function Ke(){return $()?.kind==="reply"}function G(e,t,s,r){return e==="flagged"?{to:K,params:{...s,outboxMessageId:r}}:e==="mailbox"&&t?{to:Q,params:{...s,mailboxId:t,outboxMessageId:r}}:{to:N,params:{...s,outboxMessageId:r}}}function ge(e,t){if(e?.kind==="reply"&&e.threadId===t.threadId&&e.sourceMessageId===t.messageId)return e.outboxMessageId}function Qe(){const e=h(),t=y(),{list:s,mailboxId:r}=g(),n=$();return i.useCallback(o=>{e({...G(s,r,o,ge(n,o)),search:a=>a,hash:t})},[e,t,s,r,n])}function qe(e,t,s){if(!(!t||!s))return r=>e({threadId:t,messageId:s,mode:r})}function Ge(){const e=h(),{list:t,mailboxId:s}=g(),r=$();return i.useCallback(n=>{r?.kind==="reply"&&e({...G(t,s,{threadId:r.threadId,messageId:r.sourceMessageId,mode:r.mode},n),search:o=>o,hash:!0,replace:!0})},[e,t,s,r])}function Xe(){const e=h(),t=y(),{list:s,mailboxId:r}=g(),n=q();return i.useCallback(()=>{if(!n)return;const o=c=>c,a=t,u={threadId:n.threadId,messageId:n.messageId};if(s==="flagged"){e({to:"/mail/flagged/$threadId/$messageId",params:u,search:o,hash:a});return}if(s==="mailbox"&&r){e({to:"/mail/$mailboxId/$threadId/$messageId",params:{...u,mailboxId:r},search:o,hash:a});return}e({to:"/mail/brief/$threadId/$messageId",params:u,search:o,hash:a})},[e,t,s,r,n])}const ye=e=>{const t=e.filter(n=>!n.isMultipart&&n.disposition!=="attachment"&&n.mediaType==="TEXT"&&n.contentUrl.length>0),s=t.find(n=>n.mediaSubtype.toUpperCase()==="HTML");if(s)return{kind:"html",contentUrl:s.contentUrl};const r=t.find(n=>n.mediaSubtype.toUpperCase()==="PLAIN");return r?{kind:"text",contentUrl:r.contentUrl}:null},R={all:["messages"],detail:e=>[...R.all,"detail",e],body:e=>[...R.detail(e),"body"]};class m extends Error{reason;status;retryAfterSeconds;constructor(t,s,r,n){super(s),this.name="BodyFetchError",this.reason=t,this.status=r,this.retryAfterSeconds=n}}const be=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},Ie=8,xe="x-remit-403-reason",Re=(e,t)=>{const s=t?.trim()??"";return e===401?"auth":e===403?s.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},ke=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,we=(e,t)=>{const s=(t??"").toLowerCase();return!!(e==="text"&&s.startsWith("text/html"))},Ce=async(e,t,s=async()=>null)=>{const r={},n=await s();n&&(r.Authorization=`Bearer ${n}`);const o=await te(e,{headers:r});if(o.status===202)throw new m("not-ready","Message body is still syncing",202,be(o.headers.get("Retry-After")));if(!o.ok){const c=o.headers.get(xe),b=Re(o.status,c);throw new m(b,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const a=o.headers.get("content-type");if(we(t,a))throw new m("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${a}`);const u=await o.text();if(ke(u,a))throw new m("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return u},$e=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),je=({messageId:e,bodyParts:t,enabled:s=!0})=>{const r=t?ye(t):null,n=H(),{getToken:o}=z(),a=i.useRef(null),u=J(),c=i.useRef(!1),b=i.useRef(null),E=e&&r?`${e}:${r.contentUrl}`:null;b.current!==E&&(b.current=E,c.current=!1);const l=Z({queryKey:e?[...R.body(e),r?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!r)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const p=c.current;return c.current=!1,$e({fetchContent:(d,j)=>Ce(d,j,o),refetchDescribeMessage:()=>u.refetchQueries({queryKey:ee({path:{messageId:e}})})},{contentUrl:r.contentUrl,kind:r.kind,isRetryAfterNotReady:p})},enabled:s&&!!e&&!!r,staleTime:300*1e3,gcTime:1800*1e3,retry:(p,d)=>d instanceof m&&d.reason==="not-ready"?p<Ie:p<1,retryDelay:(p,d)=>d instanceof m&&d.reason==="not-ready"?(c.current=!0,(d.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),I=l.isLoading&&!!r;i.useEffect(()=>{I&&(a.current=performance.now())},[I]),i.useEffect(()=>{l.isSuccess&&a.current!==null&&(n.recordTiming("message.body.load",Math.round(performance.now()-a.current)),a.current=null)},[l.isSuccess,n]);const X=l.data&&r?{kind:r.kind,body:l.data}:void 0;return{picked:r,data:X,isLoading:I,isError:l.isError,error:l.error,refetch:l.refetch}};export{m as B,Ne as N,ne as a,re as b,Oe as c,Ae as d,ve as e,Le as f,oe as g,Ke as h,ue as i,Pe as j,_e as k,Se as l,Te as m,Be as n,y as o,Qe as p,je as q,qe as r,Ue as s,Fe as t,De as u,Ge as v,Xe as w,Re as x,$ as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as E,e as q,b as j,B as D,r as i,ax as R,n as C,l as K,W as A,K as Q,J as $,L as z,N as B}from"./index-
|
|
1
|
+
import{j as E,e as q,b as j,B as D,r as i,ax as R,n as C,l as K,W as A,K as Q,J as $,L as z,N as B}from"./index-DQhVJOzH.js";import{C as G}from"./circle-check-big-CtpJLp3m.js";import{R as H,c as N}from"./search-token-index-BslByHGI.js";function oe({state:e,onRefresh:t,label:s,errorMessage:a,hasUpdate:n,size:u="sm",className:c}){const o=e==="refreshing",f=e==="error",h=e==="success",g=f?E.jsx(q,{className:"size-4 text-danger"}):h?E.jsx(G,{className:"size-4 text-positive"}):E.jsx(H,{className:j("size-4",o&&"animate-spin")}),y=f?`${s} — failed: ${a??"try again"}`:o?`${s} — refreshing`:h?`${s} — up to date`:n?`${s} — new mail`:s;return E.jsxs("div",{className:"relative inline-flex",children:[E.jsx(D,{variant:"ghost",size:u,icon:g,onClick:t,disabled:o,"aria-label":y,"aria-busy":o||void 0,title:f?a:s,className:c}),e==="idle"&&n&&E.jsx("span",{"aria-hidden":"true",className:"absolute right-1 top-1 size-1.5 rounded-full bg-accent-2"})]})}const W=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function P(e){return!!e&&W.has(e)}const L=3e3,U=L*2,M={syncing:!1,resolved:!1,synced:0,total:0};function ie(e,t){const s=e.join(","),[a,n]=i.useState(!1),[u,c]=i.useState(!1);i.useEffect(()=>{n(!1),c(!1)},[s,t]),i.useEffect(()=>{if(!t)return;const r=setTimeout(()=>c(!0),U);return()=>clearTimeout(r)},[s,t]);const o=N({queries:e.map(r=>({...R({path:{accountId:r}}),enabled:t&&!a,refetchInterval:L,meta:{softError:!0}}))}),f=o.every(r=>r.isSuccess||r.isError),h=o.length===0||f||u;let g=!1,y=0,w=0;for(const r of o)if(P(r.data?.syncPhase)){g=!0;for(const l of r.data?.mailboxes??[])y+=l.messagesSynced,w+=l.messagesTotal}const S=t&&h&&!g;return i.useEffect(()=>{S&&n(!0)},[S]),!t||!h?M:{syncing:g,resolved:!0,synced:y,total:w}}const k=6e4,I=new Set(["sent","drafts","trash","archive"]),v=(e,t)=>{const s=new Map;for(const a of e){const n=t.get(a.mailboxId)?.role;n&&I.has(n)||s.set(a.mailboxId,a.messagesTotal)}return s},J=(e,t)=>{for(const[s,a]of t)if(a>(e.get(s)??0))return!0;return!1},_=i.createContext(null),X=()=>{const e=i.useContext(_);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function ce({accountIds:e,children:t}){const s=C(),{resultFolderIndex:a}=K(),n=i.useRef(new Map),u=i.useRef(new Set),[c,o]=i.useState(new Set),f=N({queries:e.map(r=>({...R({path:{accountId:r}}),refetchInterval:k,staleTime:k,meta:{softError:!0}}))}),h=f.map(r=>r.dataUpdatedAt).join(","),g=e.join(",");i.useEffect(()=>{let r=!1;const l=new Set(c);e.forEach((d,x)=>{const p=f[x]?.data;if(!p)return;const m=v(p.mailboxes??[],a);if(!u.current.has(d)){u.current.add(d),n.current.set(d,m);return}if(l.has(d))return;const T=n.current.get(d)??new Map;J(T,m)&&(l.add(d),r=!0)}),r&&o(l)},[g,h]);const y=i.useCallback(r=>r.some(l=>c.has(l)),[c]),w=i.useCallback(r=>{o(l=>{if(r.every(x=>!l.has(x)))return l;const d=new Set(l);for(const x of r)d.delete(x);return d});for(const l of r){const d=s.getQueryData(R({path:{accountId:l}}).queryKey);n.current.set(l,v(d?.mailboxes??[],a)),u.current.add(l)}},[s,a]),S=i.useMemo(()=>({hasNewMail:y,acknowledge:w}),[y,w]);return E.jsx(_.Provider,{value:S,children:t})}const V=2e3,Y=45e3,Z=e=>new Promise(t=>setTimeout(t,e)),b=e=>e instanceof Error&&e.message?e.message:"Something went wrong",ee=e=>{z(e,{softError:!0},"user")&&B(e)},F=e=>e.reduce((t,s)=>Math.max(t,s.lastSyncedAt??0),0),O=(e,t)=>e.fetchQuery({...R({path:{accountId:t}}),staleTime:0}),se=async(e,t,s,a)=>{let n=!1;for(;;){const u=await O(e,t).then(f=>({ok:!0,data:f})).catch(f=>({ok:!1,error:f}));if(!u.ok)return{accountId:t,message:b(u.error)};const{syncPhase:c,mailboxes:o}=u.data;if(P(c))n=!0;else if(n||F(o??[])>s)return c==="error"?{accountId:t,message:"Sync failed for this account"}:void 0;if(Date.now()>=a)return{accountId:t,message:"Refresh is taking longer than usual"};await Z(V)}},te=async(e,t,s,a)=>{const n=await O(e,s).then(o=>({ok:!0,maxLastSynced:F(o.mailboxes??[])})).catch(o=>({ok:!1,error:o}));if(!n.ok)return{accountId:s,enqueued:!1,ok:!1,message:b(n.error)};const u=await $({path:{accountId:s},throwOnError:!0}).then(()=>({ok:!0})).catch(o=>({ok:!1,error:o}));if(!u.ok)return ee(u.error),{accountId:s,enqueued:!1,ok:!1,message:b(u.error)};t.recordEvent("sync.triggered");const c=await se(e,s,n.maxLastSynced,a);return c?{accountId:s,enqueued:!0,ok:!1,message:c.message}:{accountId:s,enqueued:!0,ok:!0}},ue=(e,t={})=>{const s=C(),a=A(),{acknowledge:n}=X(),[u,c]=i.useState("idle"),[o,f]=i.useState(),h=i.useRef(0),g=i.useRef(e);g.current=e;const y=i.useRef(t);y.current=t,i.useEffect(()=>{if(u!=="success")return;const S=setTimeout(()=>c("idle"),2e3);return()=>clearTimeout(S)},[u]);const w=i.useCallback(()=>{const S=g.current;if(S.length===0){c("error"),f("Nothing to refresh yet");return}const r=++h.current;c("refreshing"),f(void 0),(async()=>{const l=Date.now()+Y,d=await Promise.all(S.map(m=>te(s,a,m,l)));if(h.current!==r)return;const x=d.filter(m=>m.enqueued).map(m=>m.accountId);for(const m of x)s.invalidateQueries({queryKey:Q({path:{accountId:m}})});x.length>0&&(y.current.onSettled?.(),n(x));const p=d.filter(m=>!m.ok);p.length===0?c("success"):(c("error"),f(p[0]?.message))})()},[n,s,a]);return{state:u,errorMessage:o,refresh:w}};export{ce as M,oe as R,ue as a,ie as b,P as i,X as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as v,l as x,r as I}from"./index-
|
|
1
|
+
import{m as v,l as x,r as I}from"./index-DQhVJOzH.js";import{b as p,f as b,h as g,c as Q}from"./useMessageBodyContent-BhFrGoTp.js";import{b as q}from"./search-view-BumXkcIk.js";function W(a){const t=v(),{searchInput:n,searchQuery:e}=x(),i=p({select:o=>Q(o.location.search)}),u=p({select:o=>o.location.pathname}),h=b(),f=g(),m=h||f,{to:s}=a,r="params"in a?a.params.mailboxId:void 0,l=r?`/mail/${r}`:s;I.useEffect(()=>{if(!q({searchInput:n,committedQuery:e,urlQuery:i,pathname:u,listPath:l}))return;const y=!!e&&i!==e&&!m,c=d=>({...d,q:e||void 0});if(!y){t({to:".",search:c,hash:!0,replace:!0});return}if(s==="/mail/$mailboxId"){if(!r)return;t({to:s,params:{mailboxId:r},search:c,hash:!0,replace:!0});return}t({to:s,search:c,hash:!0,replace:!0})},[n,e,i,t,s,r,l,u,m])}export{W as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{bY as V,r as g,j as a,b,I as Q,n as Y,a5 as q,a7 as X,a8 as Z,bT as J,b5 as ee,k as te,e as se,X as re,l as ne}from"./index-
|
|
1
|
+
import{bY as V,r as g,j as a,b,I as Q,n as Y,a5 as q,a7 as X,a8 as Z,bT as J,b5 as ee,k as te,e as se,X as re,l as ne}from"./index-DQhVJOzH.js";import{K as k}from"./kbd-UotWPXL7.js";import{B as ae,q as oe,b as ie}from"./useMessageBodyContent-BhFrGoTp.js";import{M as L}from"./enums-B_igRgfI.js";import{i as ce}from"./search-scope-DXacVdZ7.js";const le=(e,t)=>{const r=e==="newsletter"||e==="marketing"||t;return{framed:r,isPlain:!r}},de=()=>`
|
|
2
2
|
/* Zero the UA default body margin and clamp the document to the iframe width so
|
|
3
3
|
wide author markup can't push the body (and the page) past the viewport. */
|
|
4
4
|
html, body {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as L,a5 as C,a7 as k,bn as I,bo as E,r as x,j as d,bp as h,bq as A,br as j,l as R,s as Q,bs as D}from"./index-
|
|
1
|
+
import{n as L,a5 as C,a7 as k,bn as I,bo as E,r as x,j as d,bp as h,bq as A,br as j,l as R,s as Q,bs as D}from"./index-DQhVJOzH.js";import{P as O}from"./attachment-file-wkQrVlOT.js";import{ak as P,al as _,am as q,an as z}from"./MailListHeader-DKicxUdY.js";import{a as N}from"./useLabels-BHOTQoij.js";import{M as U}from"./enums-B_igRgfI.js";import{b as w}from"./useMessageBodyContent-BhFrGoTp.js";import{n as B}from"./search-query-Cr_ZXBCp.js";import{s as F}from"./search-scope-DXacVdZ7.js";import{u as G,p as K}from"./useSearchTokenContext-CQTd2xND.js";const V=t=>{const{mailboxId:a,messages:i}=t,l=L(),{pushError:c}=C(),{mutateAsync:n,isPending:s}=k({...E(),onError:(o,m)=>{c({title:m.body.action==="Remove"?"Couldn't remove label":"Couldn't apply label",detail:I(o),error:o})},onSettled:(o,m,u)=>{P(l,_(q(u.body.messageIds??[],i??[],a)))}});return{applyLabel:x.useCallback((o,m,u)=>{o.length!==0&&z(o,p=>n({body:{messageIds:p,labelId:m,action:u}}))},[n]),isPending:s}};function ne({accountId:t,mailboxId:a,messageIds:i}){const{labels:l}=N(t),{applyLabel:c}=V({mailboxId:a}),n=x.useMemo(()=>l.map(s=>({key:s.labelId,label:s.name,icon:d.jsx("span",{className:`size-2.5 rounded-full ${A(s.color)?h[s.color]:h.Default}`}),onSelect:()=>c(i,s.labelId,"Apply")})),[l,i,c]);return n.length===0?null:d.jsx(O,{triggerLabel:"Apply label to selected messages",triggerIcon:d.jsx(j,{className:"size-4 text-fg-subtle"}),triggerText:"Apply label",items:n,align:"start",nested:!0,touch:!1,triggerClassName:"min-h-11 w-full justify-start gap-3 px-4 py-2.5 text-sm font-normal text-fg"})}const $=20,H=new Set(Object.values(U)),J=t=>t!==void 0&&H.has(t)?t:void 0,W=t=>{if(t.some(a=>a.type==="isUnread"))return!1;if(t.some(a=>a.type==="isRead"))return!0};function ie({mailboxId:t,filterCategory:a}={}){const{searchQuery:i}=R(),l=G(),c=w({select:e=>e.matches}),n=B(i),{freeText:s,tokens:r}=K(n,l),o=s.length>0,m=r.find(e=>e.type==="category"),u=J(a)??m?.category,p=r.some(e=>e.type==="hasAttachment")?!0:void 0,b=r.some(e=>e.type==="isStarred")?!0:void 0,y=W(r),f=r.find(e=>e.type==="after"),g=r.find(e=>e.type==="before"),S=r.find(e=>e.type==="in"),M=F({matches:c,callerMailboxId:t,inTokenMailboxId:S?.mailboxId}),{data:T,isLoading:v}=Q({...D({query:{query:s,mailboxId:M,limit:$,...u!==void 0?{category:u}:{},...p!==void 0?{hasAttachment:p}:{},...b!==void 0?{hasStars:b}:{},...y!==void 0?{isRead:y}:{},...f?{sentDateFrom:f.epochSeconds}:{},...g?{sentDateTo:g.epochSeconds}:{}}}),enabled:o,staleTime:6e4});return{hits:T?.items??[],isLoading:o&&v}}export{ne as L,ie as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as g,a5 as p,s as f,Q as m,r,a7 as y,a8 as T,V as E,a9 as x}from"./index-
|
|
1
|
+
import{n as g,a5 as p,s as f,Q as m,r,a7 as y,a8 as T,V as E,a9 as x}from"./index-DQhVJOzH.js";const i={html:"",plainText:""},d=e=>{const u=g(),{pushError:o}=p(),{data:n}=f({...m(),staleTime:1/0}),l=r.useMemo(()=>{if(!e||!n)return i;const t=n.accounts.find(a=>a.accountId===e);return t?{html:t.signatureHtml??"",plainText:t.signaturePlainText??""}:i},[e,n]),s=y({...x(),onSuccess:()=>{u.invalidateQueries({queryKey:E()})},onError:t=>{o(T("Couldn't save signature","The signature wasn't saved.",t))}}),c=r.useCallback((t,a)=>{e&&s.mutate({path:{accountId:e},body:{signatureHtml:t,signaturePlainText:a}})},[e,s]);return{signature:l,setSignature:c,isSaving:s.isPending}};export{d as u};
|
package/index.html
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
} catch (_) {}
|
|
39
39
|
})();
|
|
40
40
|
</script>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-DQhVJOzH.js"></script>
|
|
42
42
|
<link rel="stylesheet" crossorigin href="/assets/index-Bn4mOVkF.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,af as Ke,S as Xe,bh as es,l as G,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 Re,bm as rs}from"./index-BKi_1Qmh.js";import{s as Te,a as is,b as we,u as ls,p as cs,R as ds}from"./useSearchTokenContext-SHA9xnEZ.js";import{a5 as ve,E as ye,a6 as us,a7 as ms,F as fs,a8 as Se,a9 as hs,aa as gs,ab as xs,a4 as ps,ac as Is,ad as bs,ae as vs,M as ys,af as Ss,ag as Cs,ah as js,e as Rs,v as Ts,ai as ws,q as Ms,S as ks,I as Fs,N as Ce,L as Ns,J as As,d as Os,X as Bs,Y as Ls,Z as Me,_ as ke,$ as Ds,a0 as Es,a1 as Ps}from"./MailListHeader-DznCndIp.js";import{u as qs,a as zs,R as Qs,i as Hs,b as _s}from"./useRefreshControl-DH6HghkG.js";import{e as $s,c as Ws,R as Us}from"./search-token-index-CBTVc3D8.js";import{a as Vs}from"./useLabels-kXlhZvsf.js";import{u as Ys}from"./useMediaQuery-BS2MwPdz.js";import{u as Gs,L as Js}from"./useSemanticSearch-DvBxUHMv.js";import{o as Zs,f as Ks,h as Xs,p as et,r as st}from"./useMessageBodyContent-_8vqUkeq.js";function tt({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(Ke,{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:at(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 at({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"}],Ne="category",nt={unclassified:"uncategorized"},$=e=>is(e).map(s=>s.raw),_=e=>e.join(" "),re=e=>{const s=we(e);if(s)return Fe.find(n=>n.name===s.name&&n.value===s.value.toLowerCase())?.id},ie=e=>{const s=we(e);if(!s||s.name!==Ne)return;const n=s.value.toLowerCase(),r=nt[n];if(r)return r;if(!(!es(n)||n==="all"))return n},Ae=e=>Fe.find(s=>s.id===e),Oe=e=>Ae(e)!==void 0,ot=e=>{const s=new Set;for(const n of $(e)){const r=re(n);r&&s.add(r)}return s},rt=e=>{let s="all";for(const n of $(e)){const r=ie(n);r&&(s=r)}return s},it=(e,s)=>{const n=Ae(s);if(!n)return;const r=$(e),d=r.filter(l=>re(l)!==s);return d.length<r.length?_(d):_([...r,Te(n.name,n.value)])},lt=(e,s)=>{const n=$(e).filter(r=>!ie(r));return _(s==="all"?n:[...n,Te(Ne,s)])},ct=e=>_($(e).filter(s=>!re(s)&&!ie(s))),Be=e=>e.trim().length>0,dt=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(ot(e.query));for(const n of e.ownFilters)Oe(n)||s.add(n);return s},ut=e=>Be(e.query)?rt(e.query):e.ownCategory,mt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),ft=e=>[...e].sort(mt),ht=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))}),gt=({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(Re,{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"})]})},xt=(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 pt({header:e,rows:s,wizard:n,children:r}){const{selectedIds:d,selectedCount:l,exitSelection:f,orderedIds:u,allSelected:h,toggleAllLoaded:S}=js(),p=o.useMemo(()=>xt(s,d),[s,d]),{junkMailboxId:I}=Rs(p.accountId),{labels:b}=Vs(p.accountId),N=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]),m=Ts(I,p.mailboxId),v=o.useMemo(()=>u.length>0?{checked:h,indeterminate:l>0&&!h,onChange:S}:void 0,[u.length,h,l,S]),A=p.moveDisabledHint?{tone:"warning",text:p.moveDisabledHint}:void 0,C=x=>a.jsx(ks,{title:x.title,navSlot:x.navSlot,titleMeta:x.titleMeta,searchSlot:x.searchSlot,searchField:x.searchField,idleSlot:x.makeFilterSlot,count:l,onCancel:f,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:m?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:p.accountId&&p.mailboxId&&l>0&&b.length>0?a.jsx(Js,{accountId:p.accountId,mailboxId:p.mailboxId,messageIds:N}):void 0,selectAll:v,notice:A});return a.jsx(ws,{...e,selectionBar:C,paneOverlay:a.jsx(Ms,{verb:n.verb,accountId:p.accountId,mailboxId:p.mailboxId,selection:D,selectionRestriction:p.restriction,onFinished:f}),children:r})}function It({accounts:e,selectedMessageId:s,onOpenThread:n,commandsRef:r,onTriageContextChange:d,onDeleteMessages:l}){const{searchQuery:f,searchInput:u,resultFolderIndex:h,onSearchChange:S}=G(),p=ls(),I=Ys(),b=$s(),N=ss(),D=oe(),m=o.useMemo(()=>ft(e.filter(t=>!t.muted?.value)),[e]),[v,A]=o.useState("all"),[C,x]=o.useState("all"),[W,E]=o.useState(new Set),[Z,j]=o.useState(!1),P=o.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=o.useCallback(()=>E(new Set),[]),T=u.trim().length>0,R=o.useMemo(()=>dt({query:u,ownFilters:W}),[u,W]),w=o.useMemo(()=>ut({query:u,ownCategory:C}),[u,C]),O=o.useCallback(t=>{if(!T||!Oe(t)){P(t);return}const i=it(u,t);i!==void 0&&S(i)},[T,u,S,P]),q=o.useCallback(t=>{if(!T){x(t);return}S(lt(u,t))},[T,u,S]),z=o.useCallback(()=>{x("all"),A("all"),U(),T&&S(ct(u))},[T,u,S,U]),{data:B,isLoading:Q,isError:g,refetch:L}=ae({...ne(),staleTime:6e4}),M=Ws({queries:m.map(t=>({...ts({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=o.useMemo(()=>{const t=new Map;for(let i=0;i<m.length;i++){const c=m[i].accountId,Ge=(M[i]?.data?.items??[]).reduce((Je,Ze)=>Je+(Ze.unseenCount??0),0);t.set(c,Ge)}return t},[m,M]),Ee=o.useMemo(()=>m.filter((t,i)=>{const c=M[i];return c?.isError?!as(c.error):!1}),[m,M]),{freeText:k,tokens:K}=cs(f.trim().toLowerCase(),p),{data:le,isFetching:Pe}=ae({...ne({query:{query:k,limit:ht}}),enabled:k.length>0,staleTime:3e4}),y=o.useMemo(()=>{const t=ve(B?.items??[]).map(ye);return(k?us(t.filter(c=>ms(c,k)),ve(le?.items??[]).map(ye)):t).filter(c=>(v==="all"||c.accountId===v)&&fs(c,K))},[B,le,v,k,K]),{bodyRows:ce,briefSpamOffer:X}=o.useMemo(()=>{if(!k)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(F=>Se(F,h)),{spam:i}=hs(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(F=>F.id));return{bodyRows:y.filter(F=>!c.has(F.id)),briefSpamOffer:gs(t)}},[y,k,h]),de=o.useMemo(()=>xs(ce),[ce]),ue=o.useCallback((t,i)=>{const c=y.find(F=>F.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(()=>m.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...m.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[m,V,v]),H=o.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=o.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=o.useMemo(()=>m.map(t=>t.accountId),[m]),{hasNewMail:me}=qs(),{state:fe,errorMessage:he,refresh:ge}=zs(se,{onSettled:()=>L()}),Qe=o.useMemo(()=>a.jsx(Qs,{state:fe,onRefresh:ge,label:"Refresh daily brief",errorMessage:he,hasUpdate:me(se)}),[fe,ge,he,me,se]),te=o.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&ns(t,R)).map(t=>Se(t,h)),[y,w,R,h]),{hits:xe,isLoading:He}=Gs(),_e=o.useMemo(()=>{const t=new Map;for(const c of B?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ps(xe,i,h)},[xe,te,B,h]),$e=o.useMemo(()=>{const t=Is(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:R,expanded:Z,onExpandedChange:j,onSelectCategory:i=>q(i),onSelectSource:A,onToggleFilter:i=>O(i),onClear:z}},[ee,H,w,R,Z,O,q,z]),pe=de.length===0&&v==="all"&&k.length===0&&K.length===0,We=o.useMemo(()=>m.map(t=>t.accountId),[m]),Ue=o.useMemo(()=>m.some(t=>Hs(t.syncPhase)),[m]),Y=_s(We,pe||Ue),Ie=a.jsxs("div",{className:"h-full overflow-y-auto",children:[a.jsx(je,{}),a.jsx(je,{})]}),be=!Q&&!g&&!pe,Ve=bs({tier:b,hasLiveInput:T,hasCommittedQuery:f.trim().length>0,bodyRendersCommittedResults:!0}),Ye=be?a.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&a.jsx(vs,{count:X.count,onScopeToSpam:()=>D({to:"/mail/$mailboxId",params:{mailboxId:X.mailboxId},search:{q:f||void 0}})}),a.jsx("div",{className:"min-h-0 flex-1",children:a.jsx(os,{sections:de,briefCategory:w,Row:ys,selectedThreadId:s,onSelectThread:ue,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:A,activeFilters:R,onToggleFilter:O,onClearFilters:z})})]}):Q?Ie:g?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(Re,{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(Us,{className:"size-3.5"}),"Try again"]})]}):Y.resolved?a.jsx(tt,{sync:Y.syncing?{synced:Y.synced,total:Y.total}:void 0}):Ie;return a.jsx(rs,{hasSheet:be&&!Ve,children:a.jsx(Ss,{selectedMessageId:s,rows:y,onOpen:ue,onDeleteMessages:l,onSelectionVerb:N.start,wizardOpen:N.isOpen,commandsRef:r,onTriageContextChange:d,children:a.jsx(pt,{wizard:N,header:{title:"Daily brief",unreadCount:ze,footer:I?a.jsx(Cs,{}):void 0,searchFilter:$e,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:a.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>a.jsx(gt,{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 bt({thread:e,children:s}){const n=oe(),r=Zs(),{searchInput:d}=G(),l=e?.threadId,f=e?.messageId,{data:u}=ae({...ne(),staleTime:6e4}),h=o.useMemo(()=>u?.items??[],[u]),S=o.useMemo(()=>{if(l)return h.find(g=>g.messageId===f)??h.find(g=>g.threadId===l)},[h,l,f]),p=Fs(l,f),I=S??p,b=f??I?.messageId,N=o.useMemo(()=>{if(l)return{threadId:l,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:b,authenticity:I?.authenticity}},[l,I,b]),D=o.useCallback((g,L)=>{n({to:"/mail/brief/$threadId/$messageId",params:g,replace:L?.replace,search:M=>({...M,q:d||void 0}),hash:r})},[n,r,d]),m=o.useCallback(()=>{n({to:"/mail/brief",search:g=>g,hash:r})},[n,r]),v=o.useCallback(g=>{b&&g.includes(b)&&m()},[b,m]),A=Ce({thread:I,onAfterOptimisticRemove:v}),C=Ns(),{deleteMessages:x}=As({mailboxId:I?.mailboxId??"",messages:h,onAfterOptimisticRemove:v}),{toggleReadFor:W}=Os({mailboxId:I?.mailboxId??"",messages:h}),E=C.focusedMessageId,j=o.useMemo(()=>h.find(g=>g.messageId===E),[h,E])??I,P=Ce({thread:j}),U=Ks(),T=Xs(),R=et(),w=o.useMemo(()=>st(R,l,b),[R,l,b]),O=o.useMemo(()=>{if(j)return g=>R({threadId:j.threadId,messageId:j.messageId,mode:g})},[R,j]),{nextMessageId:q,previousMessageId:z}=Bs({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!U&&!T,onClose:m,handlers:{reply:()=>O?.("reply"),replyAll:()=>O?.("reply-all"),forward:()=>O?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&W([j.messageId],!j.isRead)},goFlagged:()=>n({to:"/mail/flagged"}),goSettings:()=>n({to:"/settings"})}}),B=o.useCallback(g=>{if(!g)return;const L=h.find(M=>M.messageId===g);return L?{threadId:L.threadId,messageId:g}:void 0},[h]),Q={selectedMessageId:b,selectedThread:I,conversation:N,onOpenThread:D,onCloseThread:m,nextThread:B(q),previousThread:B(z),actions:A,onReply:w,triage:C,onDeleteMessages:x,handleDeselectIfRemoved:v};return a.jsx(Le.Provider,{value:Q,children:s})}function De(){const{selectedMessageId:e,onOpenThread:s,triage:n,onDeleteMessages:r}=J(),{accounts:d}=G();return a.jsx(It,{accounts:d,selectedMessageId:e,onOpenThread:s,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function vt(){const{conversation:e,selectedThread:s,actions:n,onReply:r,handleDeselectIfRemoved:d}=J(),l=!!e,f=Es(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(Ps,{hasThread:l,intelligenceOpen:f.isShowing,canToggleIntelligence:f.canToggle,onToggleIntelligence:f.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:l?n.deleteThread:void 0,onToggleStar:l?n.toggleStar:void 0,isStarred:n.isStarred,moveContext:l&&n.accountId&&n.mailboxId?{accountId:n.accountId,currentMailboxId:n.mailboxId,onMove:n.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(Me,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:f.open}):a.jsx(ds,{})})]}),a.jsx(ke,{isOpen:f.drawerOpen,onClose:f.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:d})]})}function yt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:n}=G();return a.jsx(Ds,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function St(){const{selectedThread:e,conversation:s,onOpenThread:n,onCloseThread:r,nextThread:d,previousThread:l,handleDeselectIfRemoved:f}=J(),u=Ls(s?.threadId??null);return s?a.jsxs(a.Fragment,{children:[a.jsx(Me,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:u.toggle,onSwipeNext:d?()=>n(d):void 0,onSwipePrevious:l?()=>n(l):void 0,mobileIntelligenceOpen:u.isOpen}),a.jsx(ke,{isOpen:u.isOpen,onClose:u.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:f})]}):a.jsx("div",{className:"h-full",children:a.jsx(De,{})})}const At=Object.assign(bt,{List:De,Reading:vt,Intelligence:yt,Phone:St});export{At as B};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d4 as U,r,cq as X,l as H,bb as Y,aF as Z,aG as ee,j as n,m as te}from"./index-BKi_1Qmh.js";import{u as se,p as ae,R as ne}from"./useSearchTokenContext-SHA9xnEZ.js";import{E as re,a7 as oe,F as de,at as ie,a8 as le,b as ce,M as ue,af as ge,au as he,ah as me,q as fe,I as Ie,N as V,L as pe,J as xe,d as Te,X as be,Y as ve,Z as K,_ as W,$ as ye,a0 as Re,a1 as Ce}from"./MailListHeader-DznCndIp.js";import{u as Se,b as je,a as we}from"./MailViewChrome-BEuukQ7E.js";import{f as Fe}from"./ErrorState-Bn1oQw8C.js";import{u as Me}from"./useMediaQuery-BS2MwPdz.js";import{o as Pe,f as Oe,h as ke,p as Le,r as Ne}from"./useMessageBodyContent-_8vqUkeq.js";const Ae=()=>X({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:a,isError:t,error:d,refetch:m,fetchNextPage:s,hasNextPage:l,isFetchingNextPage:c}=Se({queryKey:Ae(),queryFn:async({pageParam:I})=>{const{data:g}=await U({query:{starred:!0,order:"desc",continuationToken:I},throwOnError:!0});return g},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:r.useMemo(()=>(e?.pages??[]).flatMap(I=>I.items??[]),[e]),isLoading:a,isError:t,error:d,refetch:m,fetchNextPage:s,hasNextPage:l,isFetchingNextPage:c}}const De=e=>{const a=new Set;return e.filter(t=>a.has(t.threadId)?!1:(a.add(t.threadId),!0))},Ee={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function qe({rows:e,verb:a}){const{selectedIds:t,exitSelection:d}=me(),m=r.useMemo(()=>e.filter(s=>t.has(s.id)).map(s=>({id:s.id,sender:s.fromName,email:s.fromEmail,subject:s.subject,date:s.timeLabel})),[e,t]);return n.jsx(fe,{verb:a,selection:m,selectionRestriction:"spansAccounts",onFinished:d})}function Be({selectedMessageId:e,onOpenThread:a,commandsRef:t,onTriageContextChange:d,onDeleteMessages:m}){const{searchQuery:s,resultFolderIndex:l}=H(),c=se(),M=Me(),I=Y(),[g,f]=r.useState("all"),[R,P]=r.useState(new Set),v=r.useCallback(o=>{P(h=>{const p=new Set(h);return p.has(o)?p.delete(o):p.add(o),p})},[]),C=r.useCallback(()=>{f("all"),P(new Set)},[]),{threads:O,isLoading:T,isError:k,error:q,refetch:L,fetchNextPage:Q,hasNextPage:x,isFetchingNextPage:S}=_(),{freeText:y,tokens:N}=ae(s.trim().toLowerCase(),c),u=r.useMemo(()=>{const o=Array.from(R).map(h=>Ee[h]).filter(h=>h!=null);return De(O).map(re).filter(h=>(g==="all"||h.category===g)&&o.every(p=>p(h))&&(!y||oe(h,y))&&de(h,N))},[O,g,R,y,N]),j=r.useCallback((o,h)=>{const p=u.find(J=>J.id===o)?.threadId;p&&a?.({threadId:p,messageId:o},h)},[u,a]),w=r.useCallback(o=>{const h=o.threadId??u.find(p=>p.id===o.id)?.threadId;h&&a?.({threadId:h,messageId:o.id})},[u,a]),B=r.useMemo(()=>ie(),[]),z=r.useMemo(()=>u.map(o=>le(o,l)),[u,l]),A=r.useMemo(()=>u.filter(o=>!o.isRead).length,[u]),D=T?"loading":k?"error":u.length===0?"empty":"ready",i=r.useCallback(()=>{const o=Z(ee());window.open(o,"_blank","noopener,noreferrer")},[]),b=ce(),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:u.map(o=>n.jsx(ue,{thread:o,active:o.id===e,onClick:()=>j(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:S,children:S?"Loading…":"Load more"}):null]})});return n.jsx(je,{title:"Starred",unreadCount:A,preset:B,selectedCategory:g,activeFilters:R,onSelectCategory:f,onToggleFilter:v,onClearFilters:C,searchResults:z,searchLoading:T,onSelectSearchResult:w,searchResultsInBody:!0,children:n.jsxs(ge,{selectedMessageId:e,rows:u,onOpen:j,onDeleteMessages:m,onSelectionVerb:I.start,wizardOpen:I.isOpen,commandsRef:t,onTriageContextChange:d,children:[n.jsx(we,{listTitle:"Starred",sections:[{id:"flagged",threads:u}],flatList:!0,hideHeader:!0,listState:b.searchResults?"ready":D,searchQuery:y?s:void 0,errorMessage:k?Fe(q):void 0,onRetry:()=>L(),onReportError:i,selectedThreadId:e,onSelectThread:j,isDesktop:M,selectionBar:n.jsx(he,{title:"Starred"}),listBody:b.searchResults??(D==="ready"?F:void 0)}),n.jsx(qe,{rows:u,verb:I.verb})]})})}const $=r.createContext(null);function E(){const e=r.useContext($);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function ze({thread:e,children:a}){const t=te(),d=Pe(),{searchInput:m}=H(),s=e?.threadId,l=e?.messageId,{threads:c}=_(),M=r.useMemo(()=>{if(s)return c.find(i=>i.messageId===l)??c.find(i=>i.threadId===s)},[c,s,l]),I=Ie(s,l),g=M??I,f=l??g?.messageId,R=r.useMemo(()=>{if(s)return{threadId:s,mailboxId:g?.mailboxId??"",subject:g?.subject,messageId:f,authenticity:g?.authenticity}},[s,g,f]),P=r.useCallback((i,b)=>{t({to:"/mail/flagged/$threadId/$messageId",params:i,replace:b?.replace,search:F=>({...F,q:m||void 0}),hash:d})},[t,d,m]),v=r.useCallback(()=>{t({to:"/mail/flagged",search:i=>i,hash:d})},[t,d]),C=r.useCallback(i=>{f&&i.includes(f)&&v()},[f,v]),O=V({thread:g,onAfterOptimisticRemove:C}),T=pe(),{deleteMessages:k}=xe({mailboxId:g?.mailboxId??"",messages:c,onAfterOptimisticRemove:C}),{toggleReadFor:q}=Te({mailboxId:g?.mailboxId??"",messages:c}),L=T.focusedMessageId,x=r.useMemo(()=>c.find(i=>i.messageId===L),[c,L])??g,S=V({thread:x}),y=Oe(),N=ke(),u=Le(),j=r.useMemo(()=>Ne(u,s,f),[u,s,f]),w=r.useMemo(()=>{if(x)return i=>u({threadId:x.threadId,messageId:x.messageId,mode:i})},[u,x]),{nextMessageId:B,previousMessageId:z}=be({context:T,orderedIds:T.orderedIds,selectedMessageId:f,enabled:!y&&!N,onClose:v,handlers:{reply:()=>w?.("reply"),replyAll:()=>w?.("reply-all"),forward:()=>w?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||S.deleteThread()},toggleStar:S.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||x&&q([x.messageId],!x.isRead)},goBrief:()=>t({to:"/mail/brief"}),goSettings:()=>t({to:"/settings"})}}),A=r.useCallback(i=>{if(!i)return;const b=c.find(F=>F.messageId===i);return b?{threadId:b.threadId,messageId:i}:void 0},[c]),D={selectedMessageId:f,selectedThread:g,conversation:R,onOpenThread:P,onCloseThread:v,nextThread:A(B),previousThread:A(z),actions:O,onReply:j,triage:T,onDeleteMessages:k,handleDeselectIfRemoved:C};return n.jsx($.Provider,{value:D,children:a})}function G(){const{selectedMessageId:e,onOpenThread:a,triage:t,onDeleteMessages:d}=E();return n.jsx(Be,{selectedMessageId:e,onOpenThread:a,commandsRef:t.listCommandsRef,onTriageContextChange:t.onTriageContextChange,onDeleteMessages:d})}function He(){const{conversation:e,selectedThread:a,actions:t,onReply:d,handleDeselectIfRemoved:m}=E(),s=!!e,l=Re(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(Ce,{hasThread:s,intelligenceOpen:l.isShowing,canToggleIntelligence:l.canToggle,onToggleIntelligence:l.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("forward"):void 0,onDelete:s?t.deleteThread:void 0,onToggleStar:s?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:s&&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,onOpenIntelligence:l.open}):n.jsx(ne,{})})]}),n.jsx(W,{isOpen:l.drawerOpen,onClose:l.closeDrawer,thread:a,mailboxId:a?.mailboxId,accountId:a?.accountId,onAfterOptimisticRemove:m})]})}function Qe(){const{selectedThread:e,handleDeselectIfRemoved:a}=E(),{onToggleIntelligence:t}=H();return n.jsx(ye,{onClose:t,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:a})}function Ve(){const{selectedThread:e,conversation:a,onCloseThread:t,onOpenThread:d,nextThread:m,previousThread:s,handleDeselectIfRemoved:l}=E(),c=ve(a?.threadId??null);return a?n.jsxs(n.Fragment,{children:[n.jsx(K,{threadId:a.threadId,mailboxId:a.mailboxId,subject:a.subject,selectedMessageId:a.messageId,authenticity:a.authenticity,onBack:t,onOpenIntelligence:c.toggle,onSwipeNext:m?()=>d(m):void 0,onSwipePrevious:s?()=>d(s):void 0,mobileIntelligenceOpen:c.isOpen}),n.jsx(W,{isOpen:c.isOpen,onClose:c.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:l})]}):n.jsx("div",{className:"h-full",children:n.jsx(G,{})})}const Xe=Object.assign(ze,{List:G,Reading:He,Intelligence:Qe,Phone:Ve});export{Xe as F};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r,b7 as bs,as as kt,B as ne,S as vs,b as je,at as Pt,r as c,C as Ss,d as ys,aU as Is,m as He,n as $t,s as jt,t as Cs,a7 as Bt,b8 as ws,b9 as ks,I as js,h as Ms,T as Ts,ba as Rs,bb as Es,bc as As,a5 as Os,aF as Ns,aG as zs,g as Fs,W as Mt,bd as Ds,K as _s,q as Ls,be as Ps,l as Wt,bf as $s,z as Bs,bg as Ws,aZ as Ks}from"./index-BKi_1Qmh.js";import{u as Vs,p as Hs,R as Us}from"./useSearchTokenContext-SHA9xnEZ.js";import{u as qs,a as Qs,R as Js}from"./useRefreshControl-DH6HghkG.js";import{C as Kt,a as Vt,c as Ht,j as Gs,M as Ys,t as Ut,u as Xs,b as Zs,d as qt,e as Qt,f as en,g as tn,h as sn,r as nn,n as on,i as rn,k as an,l as ln,m as cn,o as un,S as dn,p as hn,D as fn,q as mn,s as gn,v as Jt,w as pn,x as xn,y as bn,z as vn,A as Sn,B as yn,E as In,F as Cn,G as wn,H as kn,I as jn,J as Nt,K as zt,L as Mn,N as Tn,O as Rn,P as En,Q as An,R as On,T as Nn,U as zn,V as Fn,W as Dn,X as _n,Y as Ln,Z as Gt,_ as Yt,$ as Pn,a0 as $n,a1 as Bn,a2 as Xt,a3 as Wn,a4 as Kn}from"./MailListHeader-DznCndIp.js";import{S as Vn,M as Hn,a as Un,u as qn,b as Qn}from"./MailViewChrome-BEuukQ7E.js";import{A as Tt}from"./avatar-DN2GOVwx.js";import{b as Ue,c as Jn}from"./format-D7umvejg.js";import{k as Gn,n as Yn,o as qe,p as Xn,r as Zn,f as eo,h as to,u as so}from"./useMessageBodyContent-_8vqUkeq.js";import{N as no}from"./NavMenuButton-C65lZ8kj.js";import{f as oo}from"./ErrorState-Bn1oQw8C.js";import{a as io}from"./useLabels-kXlhZvsf.js";import{a as ro,D as ao,u as lo}from"./useMediaQuery-BS2MwPdz.js";import{L as co,u as uo}from"./useSemanticSearch-DvBxUHMv.js";import{S as ht}from"./shield-check-bHOnFfMN.js";import{B as ho}from"./bottom-sheet-BOV1XlmK.js";import{C as fo}from"./circle-help-BJY9-zHE.js";import{C as mo}from"./circle-check-B1axZLsr.js";import{a as go,b as po,f as xo}from"./move-options-yXxXVQoL.js";import{j as bo,k as vo,e as So}from"./search-token-index-CBTVc3D8.js";import{M as yo}from"./enums-B_igRgfI.js";import{n as Io}from"./search-query-Cr_ZXBCp.js";const Co=({children:e,onRefresh:n,isRefreshing:t})=>ro(ao)?e:r.jsx(bs,{onRefresh:n,isPullable:!t,children:e}),wo=e=>e===1?"message":"messages";function ko({count:e,onReview:n,onDismiss:t,actionLabel:s="Review & rescue"}){return r.jsx(kt,{tone:"info",variant:"soft",onDismiss:t,children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsxs("p",{className:"flex items-start gap-2 text-sm text-fg",children:[r.jsx(ht,{className:"mt-0.5 size-4 shrink-0 text-positive","aria-hidden":!0}),r.jsxs("span",{children:[r.jsx("span",{className:"font-semibold text-fg",children:`${e} ${wo(e)} here`})," ","may not be spam — they're from senders we can verify."]})]}),r.jsx(ne,{variant:"primary",size:"sm",onClick:n,className:"self-start",children:s})]})})}const jo=(e,n)=>e==="vip"?"vip":e==="unknown"&&n==="md"?"unknown-pill":"hidden",Zt=({senderTrust:e,size:n="sm",className:t})=>{const s=jo(e,n);return s==="vip"?r.jsx(vs,{className:je("text-warning shrink-0",n==="sm"&&"size-3.5",n==="md"&&"size-4",t),"aria-label":"VIP sender","data-testid":"sender-trust-vip"}):s==="unknown-pill"?r.jsx("span",{className:je("inline-flex items-center rounded border border-dashed border-fg-subtle/40 font-medium uppercase tracking-wide text-fg-muted/80 shrink-0","px-2 py-0.5 text-xs",t),title:"First message from this sender","aria-label":"First message from this sender","data-testid":"sender-trust-unknown",children:"new"}):null};function Mo({candidate:e,selected:n,onToggle:t,hideSender:s=!1}){const{senderName:o,senderAddress:i,subject:l,snippet:a,trustReason:d,trustSubReason:u,senderTrust:f}=e;return r.jsxs("label",{className:je("flex w-full cursor-pointer items-start gap-3 px-3 py-2.5 text-left transition-colors",s&&"pl-11",n?"bg-positive/10":"bg-surface hover:bg-surface-sunken"),children:[r.jsx(Kt,{className:"mt-0.5",checked:n,onChange:t,"aria-label":`${n?"Deselect":"Select"} ${s?l:`message from ${o}`}`}),!s&&r.jsx(Tt,{name:o,email:i,size:"sm"}),r.jsxs("span",{className:"min-w-0 flex-1",children:[!s&&r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"truncate text-sm font-medium text-fg",children:o}),f&&r.jsx(Zt,{senderTrust:f,size:"sm"}),r.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:i})]}),r.jsx("span",{className:"block truncate text-sm text-fg-muted",children:l}),r.jsx("span",{className:"block line-clamp-1 text-xs text-fg-subtle",children:a}),!s&&r.jsxs("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[r.jsxs(Pt,{tone:"positive",children:[r.jsx(ht,{className:"size-3","aria-hidden":!0}),d]}),r.jsx("span",{className:"text-2xs text-fg-subtle",children:u})]})]})]})}const To=e=>{const n=new Map,t=[];for(const s of e){const o=(s.senderAddress||s.senderName).toLowerCase(),i=n.get(o);if(i){i.messages.push(s);continue}n.set(o,{key:o,senderName:s.senderName,senderAddress:s.senderAddress,trustReason:s.trustReason,trustSubReason:s.trustSubReason,senderTrust:s.senderTrust,messages:[s]}),t.push(o)}return t.map(s=>n.get(s)).sort((s,o)=>o.messages.length-s.messages.length)},Ro=(e,n)=>{const t=e.messages.filter(s=>n.has(s.id)).length;return t===0?"none":t===e.messages.length?"all":"some"},Ft=e=>e===1?"message":"messages";function Eo({group:e,selected:n,onToggleGroup:t,onToggleMessage:s}){const[o,i]=c.useState(!1),l=Ro(e,n),a=e.messages.length,d=o?Ss:ys;return r.jsxs("div",{className:je(l!=="none"?"bg-positive/10":"bg-surface"),children:[r.jsxs("div",{className:"flex w-full items-start gap-3 px-3 py-2.5",children:[r.jsx(Kt,{className:"mt-0.5",checked:l==="all",indeterminate:l==="some",onChange:()=>t(e,l!=="all"),"aria-label":`${l==="all"?"Deselect":"Select"} all ${a} ${Ft(a)} from ${e.senderName}`}),r.jsx(Tt,{name:e.senderName,email:e.senderAddress,size:"sm"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"truncate text-sm font-medium text-fg",children:e.senderName}),e.senderTrust&&r.jsx(Zt,{senderTrust:e.senderTrust,size:"sm"}),r.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:e.senderAddress})]}),r.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[r.jsxs(Pt,{tone:"positive",children:[r.jsx(ht,{className:"size-3","aria-hidden":!0}),e.trustReason]}),r.jsx("span",{className:"text-2xs text-fg-subtle",children:e.trustSubReason})]})]}),r.jsxs("button",{type:"button",onClick:()=>i(u=>!u),"aria-expanded":o,className:"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-2xs text-fg-muted transition-colors hover:bg-surface-sunken hover:text-fg",children:[`${a} ${Ft(a)}`,r.jsx(d,{className:"size-3.5","aria-hidden":!0})]})]}),o&&r.jsx("div",{className:"divide-y divide-line border-t border-line",children:e.messages.map(u=>r.jsx(Mo,{candidate:u,selected:n.has(u.id),onToggle:()=>s(u.id),hideSender:!0},u.id))})]})}const Rt=e=>e===1?"message":"messages",Ao=(e,n)=>`Moves ${e===1?"this message":`these ${e} ${Rt(e)}`} out of Spam to ${n} now. Nothing later.`,wt=(e,n)=>e.find(t=>t.id===n)?.label??"Inbox";function Oo(){return r.jsx(kt,{tone:"info",variant:"soft",children:r.jsx("p",{className:"text-2xs text-fg-muted",children:"We list a message here only when we can confirm the sender is who they say — usually someone you've emailed before, write to often, or a service that consistently checks out. We never guess from words in the subject. Anything we can't confirm stays in Spam."})})}function No({candidates:e,selected:n,onToggle:t,onToggleGroup:s,onSelectAll:o,onSelectNone:i,onContinue:l,onCancel:a}){const[d,u]=c.useState(!1),f=n.size,m=c.useMemo(()=>To(e),[e]);return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsxs("h2",{className:"flex items-center gap-2 text-sm font-semibold text-fg",children:[r.jsx(ht,{className:"size-4 text-positive","aria-hidden":!0}),"Rescue from Spam"]}),r.jsx(ne,{variant:"ghost",size:"sm",icon:r.jsx(fo,{className:"size-3.5"}),onClick:()=>u(g=>!g),className:"-mr-1.5 -mt-0.5",children:"Why these?"})]}),r.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"These look safe — from senders we can verify. Uncheck any sender that belongs in Spam, or open a sender to pick individual messages."}),d&&r.jsx("div",{className:"mt-2",children:r.jsx(Oo,{})})]}),r.jsxs("div",{className:"flex items-center justify-between px-row-inset pb-1.5",children:[r.jsx("span",{className:"text-2xs font-medium text-fg-muted",children:`${f} of ${e.length} selected · ${m.length} ${m.length===1?"sender":"senders"}`}),r.jsxs("span",{className:"flex gap-1",children:[r.jsx(ne,{variant:"ghost",size:"sm",onClick:o,children:"Select all"}),r.jsx(ne,{variant:"ghost",size:"sm",onClick:i,children:"Select none"})]})]}),r.jsx("div",{className:"min-h-0 flex-1 divide-y divide-line overflow-y-auto border-y border-line",children:m.map(g=>r.jsx(Eo,{group:g,selected:n,onToggleGroup:s,onToggleMessage:t},g.key))}),r.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[r.jsx(ne,{variant:"primary",onClick:l,className:"h-11 w-full font-semibold",children:`Continue with ${f} ${Rt(f)}`}),r.jsx(ne,{variant:"ghost",onClick:a,className:"h-11 w-full",children:"Cancel"})]})]})}function zo({count:e,folders:n,delimiter:t,destination:s,onPick:o,onMove:i,onBack:l}){const[a,d]=c.useState(!1);return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[r.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Where should they go?"}),r.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"Pick a folder, then we move them out of Spam."})]}),r.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto px-row-inset py-2",children:a?r.jsx("div",{className:"flex min-h-0 flex-1 overflow-hidden rounded-xl border border-line bg-surface",children:r.jsx(Is,{folders:n,selectedId:s,delimiter:t,onSelect:o,onCancel:()=>d(!1)})}):r.jsxs("div",{className:"rounded-xl border border-line bg-surface-sunken p-3",children:[r.jsx("p",{className:"text-2xs text-fg-subtle",children:"Destination"}),r.jsx("p",{className:"mt-0.5 text-sm font-medium text-fg",children:wt(n,s)}),r.jsx(ne,{variant:"ghost",size:"sm",onClick:()=>d(!0),className:"mt-2 px-0",children:"Move to a different folder"})]})}),r.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[r.jsx("p",{className:"text-2xs text-fg-subtle",children:Ao(e,wt(n,s))}),r.jsx(ne,{variant:"primary",onClick:i,className:"h-11 w-full font-semibold",children:`Move ${e} out of Spam`}),r.jsx(ne,{variant:"ghost",onClick:l,className:"h-11 w-full",children:"Back"})]})]})}function Fo({count:e,destinationLabel:n,onClose:t}){return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-row-inset py-10 text-center",children:[r.jsx(mo,{className:"size-10 text-positive","aria-hidden":!0}),r.jsx("p",{className:"text-base font-semibold text-fg",children:`Moved ${e} ${Rt(e)} out of Spam.`}),r.jsx("p",{className:"text-2xs text-fg-subtle",children:`You'll find them in ${n}.`})]}),r.jsx("div",{className:"border-t border-line bg-surface px-row-inset py-3",children:r.jsx(ne,{variant:"primary",onClick:t,className:"h-11 w-full font-semibold",children:"Done"})})]})}function Do({open:e,candidates:n,defaultDestinationId:t,availableFolders:s,delimiter:o,onConfirmMove:i,onCancel:l}){const[a,d]=c.useState("review"),[u,f]=c.useState(()=>e?new Set(n.map(C=>C.id)):new Set),[m,g]=c.useState(t),[b,y]=c.useState(0),w=c.useRef(!1);c.useEffect(()=>{e&&!w.current&&(d("review"),f(new Set(n.map(C=>C.id))),g(t),y(0)),w.current=e},[e,n,t]);const M=u.size,p=C=>{f(j=>{const z=new Set(j);return z.has(C)?z.delete(C):z.add(C),z})},x=(C,j)=>{f(z=>{const A=new Set(z);for(const D of C.messages)j?A.add(D.id):A.delete(D.id);return A})},k=()=>{const C=Array.from(u);y(C.length),i(C,m),d("done")};return r.jsxs(ho,{open:e,onClose:l,dismissLabel:"Close rescue",children:[a==="review"&&r.jsx(No,{candidates:n,selected:u,onToggle:p,onToggleGroup:x,onSelectAll:()=>f(new Set(n.map(C=>C.id))),onSelectNone:()=>f(new Set),onContinue:()=>d("destination"),onCancel:l}),a==="destination"&&r.jsx(zo,{count:M,folders:s,delimiter:o,destination:m,onPick:g,onMove:k,onBack:()=>d("review")}),a==="done"&&r.jsx(Fo,{count:b,destinationLabel:wt(s,m),onClose:l})]})}function _o(e){const n=e.toAddresses.join(", ");return{id:e.outboxMessageId,accountId:e.accountId,fromName:e.fromName??e.fromAddress??"Me",fromEmail:e.fromAddress??"",subject:e.subject??"(No subject)",snippet:n?`To: ${n}`:"(No recipients)",timeLabel:Ue(e.updatedAt),isRead:!0}}function Lo(e){return{id:e.messageId,accountId:e.accountId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ue(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0}}function Po({outboxMessages:e,accountId:n,imapThreads:t}){const s=e.filter(l=>l.status==="draft"&&l.accountId===n).map(_o),o=t.map(Lo),i=[];return s.length>0&&i.push({id:"remit-drafts",label:"Not yet sent (Remit)",threads:s}),o.length>0&&i.push({id:"imap-drafts",label:"On the server",threads:o}),i}const $o=({label:e,count:n})=>r.jsxs("div",{className:"sticky top-0 z-10 flex items-baseline justify-between border-b border-line bg-surface-sunken px-row-inset py-1",children:[r.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),r.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:n})]}),Bo=({row:e,isSelected:n,onOpen:t,onDelete:s,isDeleting:o})=>r.jsxs("button",{type:"button",onClick:()=>t(e.id),className:je("group",Ht({active:n})),children:[r.jsx(Ms,{className:"size-7 shrink-0 text-fg-muted mt-0.5"}),r.jsx(Vt,{thread:e}),r.jsx("div",{className:"flex items-center gap-1 shrink-0",children:r.jsx("button",{type:"button",onClick:i=>{i.stopPropagation(),s(e.id)},disabled:o,className:"p-1.5 rounded-md text-fg-muted hover:text-danger hover:bg-surface-raised transition-colors opacity-0 group-hover:opacity-100 focus:opacity-100",title:"Delete draft",children:r.jsx(Ts,{className:"size-3.5"})})})]}),Wo=({row:e,isSelected:n,onOpen:t})=>{const s=!e.isRead;return r.jsxs("button",{type:"button",onClick:()=>t(e.id),className:je("group",Ht({active:n})),children:[s&&r.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),r.jsx(Tt,{name:e.fromName,email:e.fromEmail,size:"sm"}),r.jsx(Vt,{thread:e})]})};function Ko({mailboxId:e,accountId:n,selectedMessageId:t,imapThreads:s,title:o,unreadCount:i}){const l=Gn(),a=Yn(),d=He(),u=qe(),f=$t(),{data:m}=jt(Cs()),g=c.useMemo(()=>Po({outboxMessages:m?.items??[],accountId:n,imapThreads:s}),[m?.items,n,s]),b=Bt({...ks(),onSuccess:()=>{f.invalidateQueries({queryKey:ws()})}}),y=p=>{b.mutate({path:{outboxMessageId:p}})},w=p=>{const x=s.find(k=>k.messageId===p)?.threadId;x&&d({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:e,threadId:x,messageId:p},search:k=>k,hash:u})},M=g.length===0;return r.jsxs("section",{className:"flex h-full w-full flex-col bg-surface",children:[r.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[r.jsx(no,{}),r.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:o}),(i??0)>0&&r.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:[i," unread"]})]}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:M?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-2 text-center px-4",children:[r.jsx(js,{className:"size-8 text-fg-subtle"}),r.jsx("p",{className:"text-sm font-medium text-fg",children:"No drafts"}),r.jsx("p",{className:"text-xs text-fg-subtle",children:"Messages you start composing will appear here."})]}):g.map(p=>r.jsxs("div",{children:[p.label&&r.jsx($o,{label:p.label,count:p.threads.length}),r.jsx("div",{className:"divide-y divide-line",children:p.threads.map(x=>p.id==="remit-drafts"?r.jsx(Bo,{row:x,isSelected:x.id===l,onOpen:a,onDelete:y,isDeleting:b.isPending},x.id):r.jsx(Wo,{row:x,isSelected:x.id===t,onOpen:w},x.id))})]},p.id))})]})}function Vo(e,n,t){const s=new Array(e);return new Proxy(s,{get(o,i,l){if(typeof i=="string"){const a=i.charCodeAt(0);if(a>=48&&a<=57){const d=+i;if(Number.isInteger(d)&&d>=0&&d<e){let u=o[d];if(!u){const f=n[d*2];u=o[d]={index:d,key:t(d),start:f,size:n[d*2+1],end:f+n[d*2+1],lane:0}}return u}}if(i==="length")return e}return Reflect.get(o,i,l)}})}function Ne(e,n,t){let s=t.initialDeps??[],o,i=!0;function l(){const a=e();return(a.length!==s.length||a.some((u,f)=>s[f]!==u))&&(s=a,o=n(...a),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(o),i=!1),o}return l.updateDeps=a=>{s=a},l}function Dt(e,n){if(e===void 0)throw new Error("Unexpected undefined");return e}const Ho=(e,n)=>Math.abs(e-n)<1.01,Uo=(e,n,t)=>{let s;return function(...o){e.clearTimeout(s),s=e.setTimeout(()=>n.apply(this,o),t)}};let Ve;const It=()=>{if(Ve!==void 0)return Ve;if(typeof navigator>"u")return Ve=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Ve=!0;const e=navigator.maxTouchPoints;return Ve=navigator.platform==="MacIntel"&&e!==void 0&&e>0},_t=e=>{const{offsetWidth:n,offsetHeight:t}=e;return{width:n,height:t}},qo=e=>e,Qo=e=>{const n=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1)-n+1,o=new Array(s);for(let i=0;i<s;i++)o[i]=n+i;return o},Jo=(e,n)=>{const t=e.scrollElement;if(!t)return;const s=e.targetWindow;if(!s)return;const o=l=>{const{width:a,height:d}=l;n({width:Math.round(a),height:Math.round(d)})};if(o(_t(t)),!s.ResizeObserver)return()=>{};const i=new s.ResizeObserver(l=>{const a=()=>{const d=l[0];if(d?.borderBoxSize){const u=d.borderBoxSize[0];if(u){o({width:u.inlineSize,height:u.blockSize});return}}o(_t(t))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},dt={passive:!0},Go=typeof window>"u"?!0:"onscrollend"in window,Yo=(e,n,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;const i=e.options.useScrollendEvent&&Go;let l=0;const a=i?null:Uo(o,()=>n(l,!1),e.options.isScrollingResetDelay),d=m=>()=>{l=t(s),a?.(),n(l,m)},u=d(!0),f=d(!1);return s.addEventListener("scroll",u,dt),i&&s.addEventListener("scrollend",f,dt),()=>{s.removeEventListener("scroll",u),i&&s.removeEventListener("scrollend",f)}},Xo=(e,n)=>Yo(e,n,t=>{const{horizontal:s,isRtl:o}=e.options;return s?t.scrollLeft*(o&&-1||1):t.scrollTop}),Zo=(e,n,t)=>{if(t.options.useCachedMeasurements){const s=t.indexFromElement(e),o=t.options.getItemKey(s);return t.itemSizeCache.get(o)??t.options.estimateSize(s)}if(n?.borderBoxSize){const s=n.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!n){const s=t.indexFromElement(e),o=t.options.getItemKey(s),i=t.itemSizeCache.get(o);if(i!==void 0)return i}return e[t.options.horizontal?"offsetWidth":"offsetHeight"]},ei=(e,{adjustments:n=0,behavior:t},s)=>{var o,i;(i=(o=s.scrollElement)==null?void 0:o.scrollTo)==null||i.call(o,{[s.options.horizontal?"left":"top"]:e+n,behavior:t})},ti=ei;class si{constructor(n){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,s,o;return((o=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:o.call(s))??Date.now()},this.observer=(()=>{let t=null;const s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(o=>{o.forEach(i=>{const l=()=>{const a=i.target,d=this.indexFromElement(a);if(!a.isConnected){this.observer.unobserve(a);for(const[u,f]of this.elementsCache)if(f===a){this.elementsCache.delete(u);break}return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(a,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()})}));return{disconnect:()=>{var o;(o=s())==null||o.disconnect(),t=null},observe:o=>{var i;return(i=s())==null?void 0:i.observe(o,{box:"border-box"})},unobserve:o=>{var i;return(i=s())==null?void 0:i.unobserve(o)}}})(),this.range=null,this.setOptions=t=>{var s,o;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:qo,rangeExtractor:Qo,onChange:()=>{},measureElement:Zo,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const g in t){const b=t[g];b!==void 0&&(i[g]=b)}const l=this.options;let a=null,d=null,u=!1;if(l!==void 0&&l.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const g=l.count,b=i.count,y=this.getMeasurements(),w=g>0?((s=y[0])==null?void 0:s.key)??l.getItemKey(0):null,M=g>0?((o=y[g-1])==null?void 0:o.key)??l.getItemKey(g-1):null;if(b!==g||g>0&&b>0&&(i.getItemKey(0)!==w||i.getItemKey(b-1)!==M)){u=!0;const k=g>0?this.getVirtualItemForOffset(this.getScrollOffset())??y[0]:null;k&&(a=[k.key,this.getScrollOffset()-k.start]);const C=i.followOnAppend===!0?"auto":i.followOnAppend||null;C&&b>g&&this.isAtEnd(l.scrollEndThreshold)&&(g===0||i.getItemKey(b-1)!==M)&&(d=C)}}this.options=i,u&&(this.pendingMin=0,this.itemSizeCacheVersion++);let f=!1,m=0;if(a&&this.scrollOffset!==null){const[g,b]=a,y=this.getMeasurements(),{count:w,getItemKey:M}=this.options;let p=0;for(;p<w&&M(p)!==g;)p++;if(p<w){const x=y[p];if(x){const k=x.start+b;k!==this.scrollOffset&&(m=k-this.scrollOffset,this.scrollOffset=k,f=!0)}}}(f||d)&&(this.pendingScrollAnchor=[f?a[0]:null,f?a[1]:0,d,m])},this.notify=t=>{var s,o;(o=(s=this.options).onChange)==null||o.call(s,this,t)},this.maybeNotify=Ne(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}if(this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,l)=>{if(l&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const a=this.getScrollOffset();this.scrollDirection=l?a===i?this.scrollDirection:a<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=l,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,l=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},a=()=>{this._iosTouching=!1,!(!It()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",l,dt),i.addEventListener("touchend",a,dt),this.unsubs.push(()=>{i.removeEventListener("touchstart",l),i.removeEventListener("touchend",a),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const o=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,o&&this.scrollElement&&this.options.enabled){const[i,l,a,d]=o;i!==null&&!a&&(It()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?d!==0&&(this._iosDeferredAdjustment+=d):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),a&&this.scrollToEnd({behavior:a})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;const o=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=o,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=Ne(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,s,o,i,l,a,d,u)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:l,lanes:a,laneAssignmentMode:d,gap:u}),{key:!1}),this.getMeasurements=Ne(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:l,lanes:a,laneAssignmentMode:d,gap:u},f)=>{const m=this.itemSizeCache;if(!l)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const p of this.laneAssignments.keys())p>=t&&this.laneAssignments.delete(p);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(p=>{this.itemSizeCache.set(p.key,p.size)}));const g=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),a===1){const p=t*2;let x=this._flatMeasurements;if(!x||x.length<p){const j=new Float64Array(p);x&&g>0&&j.set(x.subarray(0,g*2)),x=j,this._flatMeasurements=x}let k;if(g===0)k=s+o;else{const j=g-1;k=x[j*2]+x[j*2+1]+u}for(let j=g;j<t;j++){const z=i(j),A=m.get(z),D=typeof A=="number"?A:this.options.estimateSize(j);x[j*2]=k,x[j*2+1]=D,k+=D+u}const C=Vo(t,x,i);return this.measurementsCache=C,C}const b=this.measurementsCache.slice(0,g),y=new Array(a).fill(void 0),w=new Float64Array(a);let M=0;for(let p=0;p<g;p++){const x=b[p];x&&(y[x.lane]===void 0&&M++,y[x.lane]=p,w[x.lane]=x.end)}for(let p=g;p<t;p++){const x=i(p),k=this.laneAssignments.get(p);let C,j;const z=d==="estimate"||m.has(x);if(k!==void 0&&this.options.lanes>1){C=k;const R=y[C],V=R!==void 0?b[R]:void 0;j=V?V.end+u:s+o}else if(M===a){let R=0,V=w[0],de=y[0];for(let _=1;_<a;_++){const ee=w[_];(ee<V||ee===V&&y[_]<de)&&(R=_,V=ee,de=y[_])}C=R,j=V+u,z&&this.laneAssignments.set(p,C)}else C=p%this.options.lanes,j=s+o,z&&this.laneAssignments.set(p,C);const A=m.get(x),D=typeof A=="number"?A:this.options.estimateSize(p),Z=j+D;b[p]={index:p,start:j,size:D,end:Z,key:x,lane:C},y[C]===void 0&&M++,y[C]=p,w[C]=Z}return this.measurementsCache=b,b},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Ne(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,o,i)=>t.length===0||s===0?(this.range=null,null):(this.range=oi(t,s,o,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ne(()=>{let t=null,s=null;const o=this.calculateRange();return o&&(t=o.startIndex,s=o.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,o,i,l)=>i===null||l===null?[]:t({startIndex:i,endIndex:l,overscan:s,count:o}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,o=t.getAttribute(s);return o?parseInt(o,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const o=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(o!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),l=Math.max(0,o-i),a=Math.min(this.options.count-1,o+i);return t>=l&&t<=a}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((l,a)=>{l.isConnected||(this.observer.unobserve(l),this.elementsCache.delete(a))});return}const s=this.indexFromElement(t),o=this.options.getItemKey(s),i=this.elementsCache.get(o);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(o,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var o,i;if(t<0||t>=this.options.count)return;let l,a,d;const u=this._flatMeasurements;if(this.options.lanes===1&&u!==null)d=this.options.getItemKey(t),a=u[t*2],l=u[t*2+1];else{const g=this.measurementsCache[t];if(!g)return;d=g.key,a=g.start,l=g.size}const f=this.itemSizeCache.get(d)??l,m=s-f;if(m!==0){const g=this.options.anchorTo==="end"&&((o=this.scrollState)==null?void 0:o.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,b=g?this.getTotalSize():0,y=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:d,start:a,size:l,end:a+l,lane:0},m,this):a<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(d)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(d,s),this.itemSizeCacheVersion++,g?this.applyScrollAdjustment(this.getTotalSize()-b):y&&this.applyScrollAdjustment(m),this.notify(!1)}},this.getVirtualItems=Ne(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{const o=[];for(let i=0,l=t.length;i<l;i++){const a=t[i],d=s[a];o.push(d)}return o},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const s=this.getMeasurements();if(s.length===0)return;const o=this._flatMeasurements,i=this.options.lanes===1&&o!=null,l=es(0,s.length-1,i?a=>o[a*2]:a=>Dt(s[a]).start,t);return Dt(s[l])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,o=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),l=this.getScrollOffset();s==="auto"&&(s=t>=l+i?"end":"start"),s==="center"?t+=(o-i)/2:s==="end"&&(t-=i);const a=this.getMaxScrollOffset();return Math.max(Math.min(a,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const o=this.getSize(),i=this.getScrollOffset(),l=this.measurementsCache[t];if(!l)return;if(s==="auto")if(l.end>=i+o-this.options.scrollPaddingEnd)s="end";else if(l.start<=i+this.options.scrollPaddingStart)s="start";else return[i,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];const a=s==="end"?l.end+this.options.scrollPaddingEnd:l.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,s,l.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:o="auto"}={})=>{const i=this.getOffsetForAlignment(t,s),l=this.now();this.scrollState={index:null,align:s,behavior:o,startedAt:l,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:o="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,s);if(!i)return;const[l,a]=i,d=this.now();this.scrollState={index:t,align:a,behavior:o,startedAt:d,lastTargetOffset:l,stableFrames:0},this._scrollToOffset(l,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{const o=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:i,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const s=this.getMeasurements();let o;if(s.length===0)o=this.options.paddingStart;else if(this.options.lanes===1){const i=s.length-1,l=this._flatMeasurements;l!=null?o=l[i*2]+l[i*2+1]:o=((t=s[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let l=s.length-1;for(;l>=0&&i.some(a=>a===null);){const a=s[l];i[a.lane]===null&&(i[a.lane]=a.end),l--}o=Math.max(...i.filter(a=>a!==null))}return Math.max(o-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const s=this.getMeasurements();for(const o of s)o&&this.itemSizeCache.has(o.key)&&t.push({index:o.index,key:o.key,start:o.start,size:o.size,end:o.end,lane:o.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:o})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:o,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(n)}applyScrollAdjustment(n,t){n!==0&&(It()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=n:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,o=s?s[0]:this.scrollState.lastTargetOffset,i=1,l=o!==this.scrollState.lastTargetOffset;if(!l&&Ho(o,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==o&&this._scrollToOffset(o,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,l){const a=this.getSize()||600,d=Math.abs(o-this.getScrollOffset()),u=this.scrollState.behavior==="smooth"&&d>a;this.scrollState.lastTargetOffset=o,u||(this.scrollState.behavior="auto"),this._scrollToOffset(o,{adjustments:void 0,behavior:u?"smooth":"auto"})}this.scheduleScrollReconcile()}}const es=(e,n,t,s)=>{for(;e<=n;){const o=(e+n)/2|0,i=t(o);if(i<s)e=o+1;else if(i>s)n=o-1;else return o}return e>0?e-1:0};function ni(e,n,t){let s=0;for(;s<=n;){const o=(s+n)/2|0,i=e[o*2];if(i<t)s=o+1;else if(i>t)n=o-1;else return o}return s>0?s-1:0}function oi(e,n,t,s,o){const i=e.length-1;if(e.length<=s)return{startIndex:0,endIndex:i};if(s===1&&o!==null){const u=ni(o,i,t);let f=u;const m=t+n;for(;f<i&&o[f*2]+o[f*2+1]<m;)f++;return{startIndex:u,endIndex:f}}let a=es(0,i,u=>e[u].start,t),d=a;if(s===1)for(;d<i&&e[d].end<t+n;)d++;else if(s>1){const u=Array(s).fill(0);for(;d<i&&u.some(m=>m<t+n);){const m=e[d];u[m.lane]=m.end,d++}const f=Array(s).fill(t+n);for(;a>=0&&f.some(m=>m>=t);){const m=e[a];f[m.lane]=m.start,a--}a=Math.max(0,a-a%s),d=Math.min(i,d+(s-1-d%s))}return{startIndex:a,endIndex:d}}const Ct=typeof document<"u"?c.useLayoutEffect:c.useEffect;function ii({useFlushSync:e=!0,directDomUpdates:n=!1,directDomUpdatesMode:t="transform",...s}){const o=c.useReducer(u=>u+1,0)[1],i=c.useRef({enabled:n,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});i.current.enabled=n,i.current.mode=t;const l=u=>{const f=i.current;if(!f.enabled||!f.container)return;const m=u.getTotalSize();if(m!==f.lastSize){f.lastSize=m;const p=u.options.horizontal?"width":"height";f.container.style[p]=`${m}px`}const g=!!u.options.horizontal,b=f.mode==="transform",y=g?"left":"top",w=u.options.scrollMargin,M=u.getVirtualItems();for(const p of M){const x=p.start-w,k=u.elementsCache.get(p.key);k&&f.lastPositions.get(k)!==x&&(f.lastPositions.set(k,x),b?k.style.transform=g?`translate3d(${x}px, 0, 0)`:`translate3d(0, ${x}px, 0)`:k.style[y]=`${x}px`)}},a={...s,onChange:(u,f)=>{var m;const g=i.current;let b=!0;if(g.enabled){l(u);const y=u.range,w=g.prevRange;b=!w||w.isScrolling!==u.isScrolling||w.startIndex!==y?.startIndex||w.endIndex!==y?.endIndex,b&&(g.prevRange=y?{startIndex:y.startIndex,endIndex:y.endIndex,isScrolling:u.isScrolling}:null)}b&&(e&&f?Rs.flushSync(o):o()),(m=s.onChange)==null||m.call(s,u,f)}},[d]=c.useState(()=>{const u=new si(a);return Object.assign(u,{containerRef:f=>{const m=i.current;if(m.container=f,m.lastSize=null,f&&m.enabled){const g=u.getTotalSize();m.lastSize=g;const b=u.options.horizontal?"width":"height";f.style[b]=`${g}px`}}})});return d.setOptions(a),Ct(()=>d._didMount(),[]),Ct(()=>d._willUpdate()),Ct(()=>{l(d)}),d}function ri(e){return ii({observeElementRect:Jo,observeElementOffset:Xo,scrollToFn:ti,...e})}const Et=e=>e.query?`matching "${e.query}"`:e.from?`from "${e.from}"`:"matching your search",ai=e=>`Select all ${Et(e)}`,li=(e,n)=>`All ${Jn(n)} ${Et(e)} selected`,ci=({verb:e,confirmingDelete:n,hasSelection:t,junkMailboxId:s,currentMailboxId:o,deletableMessageId:i})=>{if(n)return{kind:"withheld"};if(e==="junk"){const l=Gs(s,o);if(l!==void 0)return{kind:"unavailable",reason:l}}return t?{kind:"openWizard"}:e!=="delete"||i===void 0?{kind:"declined"}:{kind:"confirmDelete",messageId:i}},ui=(e,n,t)=>e==="BACK"&&n&&t===void 0,di=(e,n)=>({id:e.messageId,accountId:e.accountId,mailboxId:e.mailboxId,threadId:e.threadId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ue(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:Ut(e.category),messageCount:n,suspicious:e.authenticity?.dkimMismatch===!0,labels:e.labels}),hi=({thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,messageCount:u,isMultiSelectMode:f,onLongPress:m,isDesktop:g,density:b})=>r.jsx(Ys,{thread:di(e,u),link:{mailboxId:n,threadId:e.threadId},inListbox:!0,active:t,focused:s,isTabStop:o,density:b,isDesktop:g,onFocusRow:i,selection:{isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:f,onLongPress:m}}),fi=c.memo(hi),mi=e=>{const n=e.authenticity?.dkimMismatch===!0;return{id:e.messageId,accountId:e.accountId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ue(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:Ut(e.category),suspicious:n}},gi=({thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:u,onLongPress:f,isDesktop:m,onDelete:g,onToggleRead:b,density:y})=>{const[w,M]=c.useState("none"),p=He(),x=qe(),k=c.useCallback(D=>{navigator.vibrate?.(10),D==="trailing"?g(e.messageId):b(e.messageId,e.isRead),M("none")},[g,b,e.messageId,e.isRead]),C=c.useCallback(()=>{f(e.messageId)},[f,e.messageId]),j=c.useCallback(()=>{a(e.messageId)},[a,e.messageId]),z=c.useCallback(()=>{p({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:n,threadId:e.threadId,messageId:e.messageId},search:D=>D,hash:x})},[p,x,n,e.threadId,e.messageId]),A=Xs(e.messageId,d);return m||u?r.jsx(fi,{thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:u,onLongPress:f,isDesktop:m,density:y}):r.jsx("div",{role:"presentation",onPointerDownCapture:A.onMouseDown,onClickCapture:A.claimClick,onContextMenu:A.onContextMenu,children:r.jsx(Vn,{thread:mi(e),selectionMode:!1,checked:!1,active:t,peek:w,onPeek:M,onToggleCheck:j,onLongPress:C,onOpen:z,onAct:k})})},pi=72,xi=32,bi=5,ts="remit:list-density",vi=()=>{try{const e=localStorage.getItem(ts);if(e==="compact"||e==="comfortable")return e}catch{}return"comfortable"},Si=({query:e})=>r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-line bg-surface-sunken/30",children:[r.jsx(Fs,{className:"size-4 text-fg-muted"}),r.jsxs("span",{className:"text-sm text-fg-muted",children:["Results for “",e,"”"]})]}),yi=({mailboxId:e,threads:n,selectedMessageId:t,isLoading:s,isError:o=!1,error:i,onRetry:l,searchQuery:a,searchPredicate:d,onDeleteMessages:u,isDeleting:f=!1,isMoving:m=!1,onLoadMore:g,hasMore:b=!1,isLoadingMore:y=!1,accountId:w,listTitle:M,listMeta:p,listFilter:x,listScopeLabel:k,onTriageContextChange:C,commandsRef:j,hideHeader:z=!1})=>{const A=c.useRef(null),D=He(),Z=qe(),R=lo(),V=Es(),{verb:de,start:_,startFromSearch:ee}=V,Me=As(),se=!!a?.trim(),Q=Zs(),{labels:Te}=io(w),{pushError:oe}=Os(),[T,H]=c.useState(t),[Se,he]=c.useState(),N=c.useCallback(h=>{he(v=>v===h?v:void 0),H(h)},[]),[fe,Re]=c.useState(vi),ye=c.useCallback(()=>{Re(h=>{const v=h==="comfortable"?"compact":"comfortable";try{localStorage.setItem(ts,v)}catch{}return v})},[]),{toggleReadFor:Ie}=qt({mailboxId:e}),{junkMailboxId:me}=Qt(w),ze=Jt(me,e),Fe=c.useMemo(()=>[{accountId:w,mailboxId:e}],[w,e]),P=en(Fe),{selectedIds:F,selectedCount:J,hasSelection:U,isSelected:De,toggle:O,select:Ce,clearSelection:ge,selectRange:Ee,setAnchor:Qe,selectAll:_e,toggleAll:ie,intersectWith:Je}=tn(),Le=gn(J,R),[G,E]=c.useState(null),Ge=se&&!!d,Pe=`${e}|${JSON.stringify(d??{})}`,I=sn({mailboxId:e,accountId:w,enabled:Ge,predicateKey:Pe,searchQuery:d??{}}),Ye=c.useCallback((h,v,ue)=>{const K=nn(h,v,ue,P);K&&oe(K)},[oe,P]),Xe=I.phase.kind,$e=I.clear,$=c.useCallback(()=>{Xe==="escalated"&&$e(),ge()},[ge,$e,Xe]),[Ze,re]=c.useState(null),pe=c.useRef(null),ae=c.useRef(!1),Ae=c.useRef(null),we=!s&&n.length>0,Oe=G!==null,xe=ri({count:n.length,getScrollElement:()=>A.current,estimateSize:()=>fe==="compact"?xi:pi,overscan:bi}),be=t?n.findIndex(h=>h.messageId===t):-1,Y=T?n.findIndex(h=>h.messageId===T):-1,X=c.useCallback(h=>{if(h<0||h>=n.length)return;const v=n[h];if(Le){O(v.messageId);return}pe.current=v.messageId,ae.current=!1,he(v.messageId),H(v.messageId)},[n,Le,O]),et=c.useCallback(()=>{if(n.length===0)return;const h=Y<0?0:Math.min(Y+1,n.length-1);X(h)},[n.length,Y,X]),Be=c.useCallback(()=>{if(n.length===0)return;const h=Y<=0?0:Y-1;X(h)},[n.length,Y,X]),We=c.useCallback(()=>X(0),[X]),ve=c.useCallback(()=>X(n.length-1),[X,n.length]),ke=c.useCallback(()=>{T&&O(T)},[T,O]),L=c.useMemo(()=>n.map(h=>h.messageId),[n]),mt=c.useMemo(()=>{const h=[];for(const v of n)F.has(v.messageId)&&h.push({id:v.messageId,sender:v.fromName??v.fromEmail??"Unknown",email:v.fromEmail??"",subject:v.subject??"(No subject)",date:Ue(v.sentDate)});return h},[n,F]),gt=c.useCallback((h,v)=>v.shiftKey?(Ee(L,h,T),!0):v.metaKey||v.ctrlKey?(O(h),!0):($(),Qe(h),!1),[L,T,Ee,O,$,Qe]),tt=c.useCallback(h=>{!u||h.length===0||(Ae.current=T??null,E(h))},[u,T]),te=c.useCallback(h=>{const v=on(L,T,h);v!==void 0&&(Ee(L,v),pe.current=v,ae.current=!1,he(void 0),H(v))},[L,T,Ee]),st=c.useCallback(()=>te(-1),[te]),nt=c.useCallback(()=>te(1),[te]),ot=c.useCallback(()=>{L.length>0&&_e(L)},[L,_e]),it=c.useCallback(h=>{const v=ci({verb:h,confirmingDelete:G!==null,hasSelection:U,junkMailboxId:me,currentMailboxId:e,deletableMessageId:u?T:void 0});return v.kind==="openWizard"?(_(h),!0):v.kind==="confirmDelete"?(tt([v.messageId]),!0):v.kind==="unavailable"?(oe({severity:"warning",title:v.reason}),!0):v.kind==="withheld"},[G,u,U,me,e,_,T,tt,oe]),le=c.useCallback((h,v)=>{const ue=n.find(K=>K.messageId===h)?.threadId;ue&&D({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:e,threadId:ue,messageId:h},search:K=>K,hash:Z,replace:v?.replace})},[D,Z,e,n]),rt=c.useCallback(()=>{T&&le(T)},[T,le]),pt=c.useCallback(h=>le(h,{replace:!0}),[le]);rn({keyboardFocusedMessageId:Se,openMessageId:t,enabled:R&&J===0,open:pt});const ce=I.phase.kind==="escalated"?{scope:Et(d??{}),total:I.phase.total,searchQuery:d??{},run:h=>I.runAction(h),stop:I.stop}:void 0,at=c.useCallback(()=>{if(!G)return;const h=G;if(h.length===0){E(null);return}const v=new Set(h),ue=n.findIndex(q=>v.has(q.messageId));let K;for(let q=ue+1;q<n.length;q++)if(!v.has(n[q].messageId)){K=n[q].messageId;break}if(K===void 0){for(let q=ue-1;q>=0;q--)if(!v.has(n[q].messageId)){K=n[q].messageId;break}}u?.(h),$(),Ae.current=null,E(null),K!==void 0&&(pe.current=K,ae.current=!1,N(K),R&&le(K,{replace:!0})),R||re(an("delete",h.length,P))},[G,n,u,$,le,R,N,P]),lt=c.useCallback(()=>{const h=Ae.current;Ae.current=null,E(null),h!==null&&(pe.current=h,ae.current=!1,N(h))},[N]),Ke=c.useMemo(()=>{if(J===0)return;const h=new Set;for(const v of n)F.has(v.messageId)&&h.add(v.accountConfigId);if(h.size>1)return"Move only works within one account — clear selection or pick messages from a single account"},[J,F,n]),xt=c.useCallback(()=>{if(ce){ee();return}_("organize")},[ce,ee,_]),bt=c.useCallback(h=>{u?.([h])},[u]),ct=c.useCallback((h,v)=>{Ie([h],!v)},[Ie]),vt=c.useCallback(h=>{R||Ce(h)},[R,Ce]),S=c.useCallback(()=>{if(I.isRunning||I.phase.kind==="counting"){I.stop();return}$()},[I,$]),B=c.useCallback(()=>{I.clear()},[I]);c.useEffect(()=>{if(ae.current||!R&&t)return;const h=Y>=0?Y:be;h>=0&&xe.scrollToIndex(h,{align:"auto"})},[Y,be,xe,R,t]),c.useEffect(()=>{t&&(ae.current=!1,N(t))},[t,N]),c.useEffect(()=>{T&&(n.some(h=>h.messageId===T)||N(n[0]?.messageId))},[n,T,N]),c.useEffect(()=>{C?.({focusedMessageId:T,selectedIds:Array.from(F),hasList:we,blocksKeyboard:Oe||V.isOpen})},[T,F,we,Oe,V.isOpen,C]);const W=c.useRef(C);W.current=C,c.useEffect(()=>()=>W.current?.({focusedMessageId:void 0,selectedIds:[],hasList:!1,blocksKeyboard:!1}),[]),c.useEffect(()=>{I.phase.kind!=="idle"||I.isRunning||Je(n.map(h=>h.messageId))},[n,Je,I.phase,I.isRunning]);const At=c.useRef(e);c.useEffect(()=>{At.current!==e&&(At.current=e,$())},[e,$]),ln({shouldBlockFn:({action:h})=>ui(h,U,Me)?($(),!0):!1,enableBeforeUnload:!1,disabled:!U||Me!==void 0}),c.useEffect(()=>{const h=A.current;if(!h||!b||!g)return;const v=()=>{if(y)return;const{scrollTop:ue,scrollHeight:K,clientHeight:q}=h;ue+q>=K-200&&g()};return h.addEventListener("scroll",v,{passive:!0}),v(),()=>h.removeEventListener("scroll",v)},[b,y,g]),c.useEffect(()=>{const h=pe.current;if(!h)return;const v=A.current?.querySelector(`[data-message-id="${h}"]`);v&&(pe.current=null,v.focus({preventScroll:!0}))}),c.useEffect(()=>{if(j){if(!we){j.current=null;return}return j.current={focusNext:et,focusPrevious:Be,focusFirst:We,focusLast:ve,openFocused:rt,toggleSelect:ke,extendSelectDown:nt,extendSelectUp:st,selectAll:ot,clearSelection:()=>U?($(),!0):!1,requestVerb:it,toggleDensity:ye},()=>{j.current=null}}},[j,we,et,Be,We,ve,rt,ke,nt,st,ot,U,$,it,ye]);const Ot=s?"loading":o?"error":n.length===0?"empty":"ready",is=o?oo(i):void 0,rs=c.useCallback(()=>{const h=Ns(zs());window.open(h,"_blank","noopener,noreferrer")},[]),as=[{id:"inbox",threads:[]}],St=L.length>0&&L.every(h=>F.has(h)),ls=Ge&&b&&St&&!f&&!m&&I.phase.kind==="idle"&&!I.isRunning,cs=f||m||I.isRunning,yt=I.phase.kind==="escalated"?I.phase.total:J,us=I.runningAction?cn(I.runningAction.kind,I.progress?.done??0,I.progress?.total??yt):I.phase.kind==="counting"?"Counting matches…":I.phase.kind==="escalated"?li(d??{},I.phase.total):void 0,ds=I.phase.kind!=="escalated"&&L.length>0?{checked:St,indeterminate:J>0&&!St,onChange:()=>ie(L)}:void 0,hs=I.runningAction?{value:I.progress?.done??0,max:I.progress?.total??yt,tone:un(I.runningAction.kind)}:void 0,fs=(I.phase.kind==="counting"?{tone:"info",text:"",action:{label:"Stop",onClick:I.stop}}:I.phase.kind==="escalated"&&!I.isRunning?{tone:"info",text:"",action:{label:"Clear selection",onClick:B}}:ls?{tone:"info",text:"",action:{label:ai(d??{}),onClick:I.escalate}}:void 0)??(Ke?{tone:"warning",text:Ke}:void 0),ms=r.jsx(dn,{title:Q.title||M,navSlot:Q.navSlot,titleMeta:Q.titleMeta,searchSlot:Q.searchSlot,searchField:Q.searchField,idleSlot:Q.makeFilterSlot,count:yt,onCancel:S,onDelete:()=>_("delete"),onMove:()=>_("move"),onOrganize:xt,onJunk:ze?()=>_("junk"):void 0,onMarkRead:()=>_("markRead"),overflowSlot:w&&e&&J>0&&Te.length>0?r.jsx(co,{accountId:w,mailboxId:e,messageIds:Array.from(F)}):void 0,isBusy:cs,isCounting:I.phase.kind==="counting",selectAll:ds,statusLabel:us,progress:hs,notice:fs}),gs=hn(L,T),ps=c.useCallback(h=>{ae.current=!0,N(h)},[N]),xs=r.jsxs(r.Fragment,{children:[se&&a&&r.jsx(Si,{query:a}),r.jsxs("div",{ref:A,role:"listbox","aria-multiselectable":!0,"aria-label":M,className:"flex-1 overflow-y-auto",children:[r.jsx("div",{role:"presentation",className:"relative w-full",style:{height:`${xe.getTotalSize()}px`},children:xe.getVirtualItems().map(h=>{const v=n[h.index];return r.jsx("div",{role:"presentation","data-index":h.index,ref:xe.measureElement,className:je("absolute left-0 top-0 w-full border-b border-line",I.isRunning&&"pointer-events-none opacity-50"),style:{transform:`translateY(${h.start}px)`},children:r.jsx(gi,{thread:v,mailboxId:e,isSelected:t===v.messageId,isFocused:T===v.messageId,isTabStop:gs===v.messageId,onFocusRow:ps,isChecked:De(v.messageId),onToggleCheck:O,onRowSelect:gt,isMultiSelectMode:Le,onLongPress:vt,isDesktop:R,onDelete:bt,onToggleRead:ct,density:fe})},h.key)})}),y&&r.jsx(Hn,{})]})]});return r.jsxs(r.Fragment,{children:[Ze&&!R&&r.jsx(kt,{tone:"success",variant:"soft",className:"m-2 rounded-md",onDismiss:()=>re(null),children:Ze}),r.jsx(Un,{listTitle:M,listMeta:p,sections:as,flatList:!0,listState:Q.searchResults?"ready":Ot,searchQuery:se?a:void 0,listFilter:x,listScopeLabel:k,errorMessage:is,onRetry:l,onReportError:rs,density:fe,selectedThreadId:t,onSelectThread:h=>le(h),isDesktop:R,hideHeader:z,selectionBar:ms,listBody:Q.searchResults??(Ot==="ready"?xs:void 0)}),r.jsx(fn,{isOpen:G!==null,count:G?.length??0,outcome:P,isDeleting:f,onConfirm:at,onCancel:lt}),r.jsx(mn,{verb:de,accountId:w,mailboxId:e,selection:mt,selectionRestriction:Ke?"spansAccounts":void 0,escalated:ce,escalatedProgress:I.progress,onFinished:$,onRunEnded:Ye})]})},Ii=e=>_s({path:{accountId:e}}),Ci=e=>{const n=$t(),t=Mt(),s=Bt({...Ds(),onSuccess:()=>{t.recordEvent("sync.triggered"),n.invalidateQueries({queryKey:Ii(e)})}});return{trigger:()=>{s.mutate({path:{accountId:e}})},triggerAsync:()=>s.mutateAsync({path:{accountId:e}}),isPending:s.isPending,error:s.error,reset:s.reset}},wi=({accountId:e,children:n})=>{const{triggerAsync:t,isPending:s}=Ci(e);return r.jsx(Co,{onRefresh:t,isRefreshing:s,children:n})};function ki({accountId:e,currentMailboxId:n,candidates:t,onMove:s,children:o}){const[i,l]=c.useState(!1),a=Mt(),d=go(),{inboxMailboxId:u}=pn(e),f=xn(e),{data:m}=jt({...Ls({path:{accountId:e}}),staleTime:1/0}),g=c.useMemo(()=>po({mailboxes:m?.items??[],folderAppointments:f,currentMailboxId:n,translator:d}),[m?.items,f,n,d]),b=c.useMemo(()=>u||(g.find(x=>x.label.toLowerCase()==="inbox")?.id??g.find(x=>!x.isCurrent)?.id??""),[u,g]),y=c.useRef(!1);c.useEffect(()=>{y.current||(y.current=!0,bn(a,t.length))},[a,t.length]);const w=c.useCallback(()=>{vn(a,t.length),l(!0)},[a,t.length]),M=c.useCallback((p,x)=>{Sn(a,{selected:p.length,total:t.length,toInbox:x===u}),s(p,x)},[a,t.length,u,s]);return r.jsxs("div",{className:"relative flex h-full min-h-0 flex-col",children:[r.jsx("div",{className:"shrink-0 px-row-inset pt-2",children:r.jsx(ko,{count:t.length,onReview:w})}),r.jsx("div",{className:"min-h-0 flex-1",children:o}),r.jsx(Do,{open:i,candidates:t,defaultDestinationId:b,availableFolders:g,delimiter:xo(m?.items??[]),onConfirmMove:M,onCancel:()=>l(!1)})]})}const ji="We can verify this sender";function Mi(e){const{data:n}=jt({...Ps({path:{mailboxId:e??""},query:{senderTrust:["vip","wellknown"],dkimMismatch:!1,results:!0,limit:500}}),enabled:!!e,staleTime:6e4});return{candidates:(n?.items??[]).map(s=>({id:s.messageId,senderName:s.fromName||s.fromEmail||"Unknown sender",senderAddress:s.fromEmail??"",subject:s.subject||"(no subject)",snippet:s.snippet??"",trustReason:ji,trustSubReason:yn(s.senderTrust),senderTrust:s.senderTrust}))}}const Ti=e=>{const n=new Set,t=[];for(const s of e)n.has(s.threadMessageId)||(n.add(s.threadMessageId),t.push(s));return t},Ri={unread:"unread",flagged:"starred",attachment:"attachments"},Ei=new Set(Object.values(yo)),ss=e=>Ei.has(e),Ai=e=>ss(e.category)||e.attributes.size>0,Oi=e=>{const n={};ss(e.category)&&(n.category=[e.category]);for(const t of e.attributes){const s=Ri[t];s&&(n[s]=!0)}return n},Ni=e=>(e.senderTrust?.length??0)>0||e.dkimMismatch!==void 0?"loaded-pages":"whole-folder",zi=["category","unread","starred","attachments"],Lt=e=>JSON.stringify(zi.map(n=>e?.[n]??null)),Fi=e=>{if(!Array.isArray(e))return;const[n]=e;if(typeof n!="object"||n===null)return;const t=n.query;if(!(typeof t!="object"||t===null))return t},Di=(e,n)=>{const t=Fi(e);return t?Lt(t)===Lt(n):!1},ut=e=>e[0],_i=e=>{const n=ut(e.filter(a=>a.type==="from").map(a=>a.value)),t=ut(e.filter(a=>a.type==="subject").map(a=>a.value)),s=ut(e.filter(a=>a.type==="category").map(a=>a.category)),o=ut(e.filter(a=>a.type==="isUnread"||a.type==="isRead").map(a=>a.type==="isUnread")),i=e.some(a=>a.type==="isStarred")?!0:void 0,l=e.some(a=>a.type==="hasAttachment")?!0:void 0;return{...n!==void 0?{from:n}:{},...t!==void 0?{subject:t}:{},...s!==void 0?{category:[s]}:{},...o!==void 0?{unread:o}:{},...i!==void 0?{starred:i}:{},...l!==void 0?{attachments:l}:{}}},Li=(e,n)=>{switch(n.type){case"from":return e.from?.toLowerCase()===n.value.toLowerCase();case"subject":return e.subject?.toLowerCase()===n.value.toLowerCase();case"category":return e.category?.length===1&&e.category[0]===n.category;case"isUnread":return e.unread===!0;case"isRead":return e.unread===!1;case"isStarred":return e.starred===!0;case"hasAttachment":return e.attachments===!0;case"before":case"after":case"in":case"account":return!1}};function Pi(e,n={}){const t=_i(e),s={...t,...n};return{params:t,residual:e.filter(o=>!Li(s,o))}}function $i(e,n,t){if(n.length===0)return e;const s=[...n];return e.filter(o=>{const i=In(o);return Cn({...i,accountId:i.accountId??t},s)})}const Bi=50,Wi=new Map(Xt().categories.filter(e=>e.id!=="all").map(e=>[e.id,e.label])),ns=c.createContext(null);function ft(){const e=c.useContext(ns);if(!e)throw new Error("MailboxPane.* must be used inside <MailboxPane>");return e}function Ki({mailboxId:e,thread:n,children:t}){const s=He(),o=qe(),i=n?.threadId,l=n?.messageId,a=Mt(),{accounts:d,searchQuery:u,intelligenceOpen:f,onToggleIntelligence:m}=Wt(),g=Vs(),b=Io(u),y=b.length>0,{freeText:w,tokens:M}=Hs(b,g),[p,x]=c.useState("all"),[k,C]=c.useState(new Set),j=c.useMemo(()=>({category:p,attributes:k}),[p,k]),z=c.useMemo(()=>Oi(j),[j]),A=y||Ai(j),{params:D,residual:Z}=Pi(M,z),R={order:"desc",limit:Bi,...w?{query:w}:{},...D,...z},V={category:R.category,unread:R.unread,starred:R.starred,attachments:R.attachments},de=A?$s({path:{mailboxId:e},query:R}):Bs({path:{mailboxId:e},query:{order:"desc"}}),{data:_,isLoading:ee,isError:Me,error:se,refetch:Q,fetchNextPage:Te,hasNextPage:oe,isFetchingNextPage:T}=qn({queryKey:de,queryFn:async({pageParam:S})=>{if(A){const{data:W}=await Ws({path:{mailboxId:e},query:{...R,continuationToken:S},throwOnError:!0});return W}const{data:B}=await Ks({path:{mailboxId:e},query:{order:"desc",continuationToken:S},throwOnError:!0});return B},initialPageParam:void 0,getNextPageParam:S=>S.continuationToken,placeholderData:(S,B)=>Di(B?.queryKey,V)?S:void 0}),{accountId:H,isLoading:Se}=wn(e),he=bo({accounts:d}),N=$i(kn(Ti(_?.pages.flatMap(S=>S.items??[])??[])),Z,H),fe=c.useCallback(S=>{x(S)},[]),Re=c.useCallback(S=>{C(B=>{const W=new Set(B);return W.has(S)?W.delete(S):W.add(S),W})},[]),ye=c.useCallback(()=>{x("all"),C(new Set)},[]),Ie=Wi.get(p),me=Ie?{label:Ie,reach:Z.length>0?"loaded-pages":Ni(R),onClear:ye}:void 0,ze=i?N.find(S=>S.messageId===l)??N.find(S=>S.threadId===i):void 0,Fe=jn(i,l),P=ze??Fe,F=l??P?.messageId,J=c.useMemo(()=>{if(i)return{threadId:i,mailboxId:P?.mailboxId??e,subject:P?.subject,messageId:F,authenticity:P?.authenticity}},[i,P,F,e]),U=c.useCallback(()=>{s({to:"/mail/$mailboxId",params:{mailboxId:e},search:S=>S,hash:o})},[e,s,o]),De=c.useCallback(S=>{s({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:e,...S},search:B=>B,hash:o})},[e,s,o]),O=c.useCallback(S=>{F&&S.includes(F)&&U()},[F,U]),{deleteMessages:Ce,isPending:ge}=Nt({mailboxId:e,onAfterOptimisticRemove:O}),{moveMessages:Ee,isPending:Qe}=zt({mailboxId:e,accountId:H,onAfterOptimisticRemove:O}),_e=Mn(),{listCommandsRef:ie,onTriageContextChange:Je,focusedMessageId:Le,selectedIds:G}=_e,E=N.find(S=>S.messageId===Le)??P,Ge=vo({accounts:d})??0,Pe=Tn({thread:P,mailboxId:e,accountId:H,onAfterOptimisticRemove:O}),{draftsMailboxId:I}=Rn(H),Ye=I!==void 0&&I===e,{archiveMailboxId:Xe}=En(H),$e=An(),$=Xn(),Ze=c.useMemo(()=>Zn($,i,F),[$,i,F]),re=c.useMemo(()=>{if(E)return S=>$({threadId:E.threadId,messageId:E.messageId,mode:S})},[$,E]),pe=eo(),ae=to(),Ae=so(),we=c.useCallback(S=>S?$e(S):[],[$e]),{toggleStar:Oe}=On({threadId:E?.threadId??"",mailboxId:e}),{toggleReadFor:xe}=qt({mailboxId:e,accountId:H}),{junkMailboxId:be}=Qt(H),Y=be!=null&&be===e,X=Jt(be,e),{candidates:et}=Mi(Y?be:void 0),{moveMessages:Be}=zt({mailboxId:e,threadId:E?.threadId,accountId:H,onAfterOptimisticRemove:O}),{deleteMessages:We}=Nt({mailboxId:e,threadId:E?.threadId,onAfterOptimisticRemove:O}),{addressId:ve,address:ke}=Nn(E),{updateFlags:L}=zn({addressId:ve,senderEmail:E?.fromEmail??void 0}),mt=c.useCallback(()=>re?.("reply"),[re]),gt=c.useCallback(()=>re?.("reply-all"),[re]),tt=c.useCallback(()=>re?.("forward"),[re]),te=c.useCallback(()=>we(E),[we,E]),st=c.useCallback(()=>{if(ie.current?.requestVerb("delete"))return;const S=te();S.length>0&&We(S)},[ie,te,We]),nt=c.useCallback(()=>{if(ie.current?.requestVerb("junk")||!X)return;const S=te();S.length!==0&&(Fn(a,{count:S.length,senderTrust:E?.senderTrust??"unknown",wasRescuable:E?Dn(E):!1}),Be(S,X))},[ie,X,te,Be,a,E]),ot=c.useCallback(()=>{if(G.length>0){const S=!(E?.hasStars??!1),B=new Set(G);for(const W of N)B.has(W.messageId)&&W.hasStars!==S&&Oe(W.messageId,W.hasStars);return}E&&Oe(E.messageId,E.hasStars)},[G,N,E,Oe]),it=c.useCallback(()=>{if(ie.current?.requestVerb("markRead"))return;const S=te();if(S.length===0)return;const B=!(E?.isRead??!1);xe(S,B)},[ie,te,E,xe]),le=c.useCallback(()=>{if(!ve)return;const S=ke?.flags?.muted?.value!==!0;L({muted:{value:S}})},[ve,ke,L]),rt=c.useCallback(()=>{if(!ve)return;const S=ke?.flags?.vip?.value!==!0;L({vip:{value:S}})},[ve,ke,L]),pt=c.useCallback(()=>{f||m()},[f,m]),ce=c.useCallback(S=>{s({to:S})},[s]),at=Ye?"drafts":Xe===e?"archive":be===e?"junk":"inbox",lt=c.useRef("");c.useEffect(()=>{const S=lt.current;lt.current=b,b.length>0&&S.length===0&&a.recordEvent("search.submitted",{mailboxType:at})},[b,at,a]);const{goBack:Ke,nextMessageId:xt,previousMessageId:bt}=_n({context:_e,orderedIds:N.map(S=>S.messageId),selectedMessageId:F,enabled:!pe&&!ae,onClose:U,handlers:{reply:mt,replyAll:gt,forward:tt,delete:st,toggleStar:ot,toggleRead:it,muteSender:le,blockSender:pt,vipSender:rt,markJunk:nt,toggleIntelligence:P?m:void 0,compose:Ae,goBrief:()=>ce("/mail/brief"),goInbox:()=>ce("/mail/brief"),goSent:()=>ce("/mail/brief"),goFlagged:()=>ce("/mail/flagged"),goSettings:()=>ce("/settings")}}),ct=S=>{if(!S)return;const B=N.find(W=>W.messageId===S);return B?{threadId:B.threadId,messageId:S}:void 0},vt={mailboxId:e,selectedMessageId:F,selectedThread:P,conversation:J,onOpenThread:De,threads:N,isLoading:ee,isError:Me,error:se,mailboxAccountId:H,mailboxAccountLoading:Se,mailboxName:he,unreadCount:Ge,isDraftsMailbox:Ye,isSpamFolder:Y,rescueCandidates:et,filterCategory:p,filterAttributes:k,onSelectFilterCategory:fe,onToggleFilterAttribute:Re,onClearFilters:ye,listFilter:me,intelligenceOpen:f,onToggleIntelligence:m,handleDeselectIfRemoved:O,searchPredicate:y&&Z.length===0?R:void 0,onDeleteMessages:Ce,onMoveMessages:Ee,isDeleting:ge,isMoving:Qe,onLoadMore:Te,hasMore:oe,isLoadingMore:T,onTriageContextChange:Je,listCommandsRef:ie,onRetry:()=>Q(),onReply:Ze,onToolbarDelete:Pe.deleteThread,onToolbarStar:Pe.toggleStar,onToolbarMove:Pe.moveThread,onBack:Ke,nextThread:ct(xt),previousThread:ct(bt)};return r.jsx(ns.Provider,{value:vt,children:t})}function os(){const{mailboxId:e,selectedMessageId:n,threads:t,isLoading:s,isError:o,error:i,onDeleteMessages:l,onMoveMessages:a,isDeleting:d,isMoving:u,onLoadMore:f,hasMore:m,isLoadingMore:g,mailboxAccountId:b,mailboxName:y,unreadCount:w,isDraftsMailbox:M,isSpamFolder:p,rescueCandidates:x,onTriageContextChange:k,listCommandsRef:C,onRetry:j,filterCategory:z,filterAttributes:A,onSelectFilterCategory:D,onToggleFilterAttribute:Z,onClearFilters:R,listFilter:V,searchPredicate:de}=ft(),{searchQuery:_,searchInput:ee,accounts:Me,resultFolderIndex:se}=Wt(),Q=So(),Te=He(),oe=qe(),T=y??"Inbox",H=c.useMemo(()=>Xt(),[]),Se=c.useMemo(()=>b?[b]:[],[b]),{hasNewMail:he}=qs(),{state:N,errorMessage:fe,refresh:Re}=Qs(Se,{onSettled:j}),ye=c.useMemo(()=>r.jsx(Js,{state:N,onRefresh:Re,label:`Refresh ${T}`,errorMessage:fe,hasUpdate:he(Se)}),[N,Re,T,fe,he,Se]),Ie=c.useMemo(()=>t.map(O=>Wn(O,se)),[t,se]),{hits:me,isLoading:ze}=uo({mailboxId:e,filterCategory:z}),Fe=c.useMemo(()=>Kn(me,t.map(O=>O.threadId),se),[me,t,se]),P=c.useCallback(O=>{const Ce=O.threadId??t.find(ge=>ge.messageId===O.id)?.threadId;Ce&&Te({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:O.mailboxId??e,threadId:Ce,messageId:O.id},search:ge=>({...ge,q:ee||void 0}),hash:oe})},[e,Te,oe,ee,t]);if(M&&b)return r.jsx(Ko,{mailboxId:e,accountId:b,selectedMessageId:n,imapThreads:t,title:y??"Drafts",unreadCount:w??void 0});const F=r.jsx(yi,{mailboxId:e,threads:t,selectedMessageId:n,isLoading:s,isError:o,error:i,onRetry:j,searchQuery:_,searchPredicate:de,onDeleteMessages:l,isDeleting:d,isMoving:u,onLoadMore:f,hasMore:m,isLoadingMore:g,accountId:b,listTitle:T,listFilter:V,listScopeLabel:T,hideHeader:!0,onTriageContextChange:k,commandsRef:C}),J=Me[0]?.accountId,U=Q==="phone"&&J?r.jsx(wi,{accountId:J,children:F}):F,De=p&&x.length>0&&b?r.jsx(ki,{accountId:b,currentMailboxId:e,candidates:x,onMove:a,children:U}):U;return r.jsx(Qn,{title:T,unreadCount:w,preset:H,selectedCategory:z,activeFilters:A,onSelectCategory:D,onToggleFilter:Z,onClearFilters:R,searchResults:Ie,searchLoading:s,relatedResults:Fe,relatedLoading:ze,onSelectSearchResult:P,searchResultsInBody:!0,refreshControl:ye,children:De})}function Vi(){const{mailboxId:e,mailboxAccountId:n,mailboxAccountLoading:t,selectedThread:s,conversation:o,onReply:i,onToolbarDelete:l,onToolbarStar:a,onToolbarMove:d,handleDeselectIfRemoved:u}=ft(),f=!!o,m=$n(o?.threadId),g=c.useRef(null),{railFits:b,openRail:y}=m;c.useEffect(()=>{if(!b)return;const M=s?.messageId??null;M&&g.current!==M&&s?.authenticity?.dkimMismatch&&(g.current=M,y())},[b,y,s?.messageId,s?.authenticity?.dkimMismatch]);const w=o?r.jsx(Gt,{threadId:o.threadId,mailboxId:o.mailboxId,subject:o.subject,selectedMessageId:o.messageId,authenticity:o.authenticity,onOpenIntelligence:m.open}):r.jsx(Us,{});return r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[r.jsx(Bn,{hasThread:f,messageId:o?.messageId,intelligenceOpen:m.isShowing,canToggleIntelligence:m.canToggle,onToggleIntelligence:m.toggle,onReply:i?()=>i("reply"):void 0,onReplyAll:i?()=>i("reply-all"):void 0,onForward:i?()=>i("forward"):void 0,onDelete:f?l:void 0,onToggleStar:f?a:void 0,isStarred:s?.hasStars,moveContext:f&&n?{accountId:n,currentMailboxId:e,onMove:d}:void 0,moveContextLoading:t}),r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:w})]}),r.jsx(Yt,{isOpen:m.drawerOpen,onClose:m.closeDrawer,thread:s,mailboxId:e,accountId:n,onAfterOptimisticRemove:u})]})}function Hi(){const{mailboxId:e,mailboxAccountId:n,selectedThread:t,onToggleIntelligence:s,handleDeselectIfRemoved:o}=ft();return r.jsx(Pn,{onClose:s,thread:t,mailboxId:e,accountId:n,onAfterOptimisticRemove:o})}function Ui(){const{mailboxId:e,mailboxAccountId:n,selectedThread:t,conversation:s,onOpenThread:o,onBack:i,nextThread:l,previousThread:a,handleDeselectIfRemoved:d}=ft(),u=Ln(s?.threadId??null);return s?r.jsxs(r.Fragment,{children:[r.jsx(Gt,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:i,onOpenIntelligence:u.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:a?()=>o(a):void 0,mobileIntelligenceOpen:u.isOpen}),r.jsx(Yt,{isOpen:u.isOpen,onClose:u.close,thread:t,mailboxId:e,accountId:n,onAfterOptimisticRemove:d})]}):r.jsx(os,{})}const pr=Object.assign(Ki,{List:os,Reading:Vi,Intelligence:Hi,Phone:Ui});export{pr as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Y as m,j as o,U as p}from"./index-BKi_1Qmh.js";import{a}from"./search-view-B0zvV-Pg.js";import{M as r}from"./MailboxPane-B7nqvLl3.js";import{u as e}from"./useSearchMirror-C__UTrT9.js";import"./useMessageBodyContent-_8vqUkeq.js";import{f as s}from"./search-token-index-CBTVc3D8.js";import"./FullCompose-Cv3MK_3g.js";import"./ErrorState-Bn1oQw8C.js";import"./index-DGOEldLQ.js";import"./useSignature-C2iDHQnY.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DVdVjbNi.js";import"./useMediaQuery-BS2MwPdz.js";import"./confirm-dialog-BZchyNni.js";import"./useSearchTokenContext-SHA9xnEZ.js";import"./kbd-CaLtMuEp.js";import"./enums-B_igRgfI.js";import"./search-scope-Ci5AdKCU.js";import"./useRefreshControl-DH6HghkG.js";import"./circle-check-big-vqvQydJO.js";import"./MailListHeader-DznCndIp.js";import"./attachment-file-BLDkIwOJ.js";import"./mail-BhxrrdBx.js";import"./avatar-DN2GOVwx.js";import"./format-D7umvejg.js";import"./download-DmAkhhMn.js";import"./shield-check-bHOnFfMN.js";import"./move-options-yXxXVQoL.js";import"./useFilters-CX8meUa-.js";import"./clock-aSLlxPRI.js";import"./menu-3dLcSCcM.js";import"./MailViewChrome-BEuukQ7E.js";import"./NavMenuButton-C65lZ8kj.js";import"./useLabels-kXlhZvsf.js";import"./useSemanticSearch-DvBxUHMv.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-BOV1XlmK.js";import"./circle-help-BJY9-zHE.js";import"./circle-check-B1axZLsr.js";function Q(){const{mailboxId:t}=m.useParams(),i=s();return e({to:"/mail/$mailboxId",params:{mailboxId:t}}),o.jsx(r,{mailboxId:t,thread:i,children:o.jsx(a,{phone:o.jsx(r.Phone,{}),list:o.jsx(r.List,{}),reading:o.jsx(p,{}),intelligence:o.jsx(r.Intelligence,{}),hasThread:!!i})})}export{Q as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-BKi_1Qmh.js";import{M as r}from"./MailboxPane-B7nqvLl3.js";import"./useSearchTokenContext-SHA9xnEZ.js";import"./kbd-CaLtMuEp.js";import"./useMessageBodyContent-_8vqUkeq.js";import"./useMediaQuery-BS2MwPdz.js";import"./enums-B_igRgfI.js";import"./search-scope-Ci5AdKCU.js";import"./useRefreshControl-DH6HghkG.js";import"./circle-check-big-vqvQydJO.js";import"./search-token-index-CBTVc3D8.js";import"./MailListHeader-DznCndIp.js";import"./attachment-file-BLDkIwOJ.js";import"./mail-BhxrrdBx.js";import"./avatar-DN2GOVwx.js";import"./index-DGOEldLQ.js";import"./useSignature-C2iDHQnY.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DVdVjbNi.js";import"./ErrorState-Bn1oQw8C.js";import"./format-D7umvejg.js";import"./download-DmAkhhMn.js";import"./shield-check-bHOnFfMN.js";import"./move-options-yXxXVQoL.js";import"./useFilters-CX8meUa-.js";import"./confirm-dialog-BZchyNni.js";import"./clock-aSLlxPRI.js";import"./menu-3dLcSCcM.js";import"./MailViewChrome-BEuukQ7E.js";import"./NavMenuButton-C65lZ8kj.js";import"./useLabels-kXlhZvsf.js";import"./useSemanticSearch-DvBxUHMv.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-BOV1XlmK.js";import"./circle-help-BJY9-zHE.js";import"./circle-check-B1axZLsr.js";function J(){return o.jsx(r.Reading,{})}export{J as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-BKi_1Qmh.js";import{F as r}from"./FlaggedPane-BAR4Ky6a.js";import"./useSearchTokenContext-SHA9xnEZ.js";import"./kbd-CaLtMuEp.js";import"./useMessageBodyContent-_8vqUkeq.js";import"./useMediaQuery-BS2MwPdz.js";import"./enums-B_igRgfI.js";import"./search-scope-Ci5AdKCU.js";import"./MailListHeader-DznCndIp.js";import"./search-token-index-CBTVc3D8.js";import"./attachment-file-BLDkIwOJ.js";import"./mail-BhxrrdBx.js";import"./avatar-DN2GOVwx.js";import"./index-DGOEldLQ.js";import"./useSignature-C2iDHQnY.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DVdVjbNi.js";import"./ErrorState-Bn1oQw8C.js";import"./format-D7umvejg.js";import"./download-DmAkhhMn.js";import"./shield-check-bHOnFfMN.js";import"./move-options-yXxXVQoL.js";import"./useFilters-CX8meUa-.js";import"./confirm-dialog-BZchyNni.js";import"./clock-aSLlxPRI.js";import"./menu-3dLcSCcM.js";import"./MailViewChrome-BEuukQ7E.js";function y(){return o.jsx(r.Reading,{})}export{y as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./index-BKi_1Qmh.js";import{B as o}from"./BriefPane-gQae7FXu.js";import"./useSearchTokenContext-SHA9xnEZ.js";import"./kbd-CaLtMuEp.js";import"./useMessageBodyContent-_8vqUkeq.js";import"./useMediaQuery-BS2MwPdz.js";import"./enums-B_igRgfI.js";import"./search-scope-Ci5AdKCU.js";import"./MailListHeader-DznCndIp.js";import"./search-token-index-CBTVc3D8.js";import"./attachment-file-BLDkIwOJ.js";import"./mail-BhxrrdBx.js";import"./avatar-DN2GOVwx.js";import"./index-DGOEldLQ.js";import"./useSignature-C2iDHQnY.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DVdVjbNi.js";import"./ErrorState-Bn1oQw8C.js";import"./format-D7umvejg.js";import"./download-DmAkhhMn.js";import"./shield-check-bHOnFfMN.js";import"./move-options-yXxXVQoL.js";import"./useFilters-CX8meUa-.js";import"./confirm-dialog-BZchyNni.js";import"./clock-aSLlxPRI.js";import"./menu-3dLcSCcM.js";import"./useRefreshControl-DH6HghkG.js";import"./circle-check-big-vqvQydJO.js";import"./useLabels-kXlhZvsf.js";import"./useSemanticSearch-DvBxUHMv.js";import"./search-query-Cr_ZXBCp.js";function D(){return r.jsx(o.Reading,{})}export{D as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./index-BKi_1Qmh.js";import{O as t}from"./OutboxPane-Dyude9Tx.js";import"./useSearchTokenContext-SHA9xnEZ.js";import"./kbd-CaLtMuEp.js";import"./useMessageBodyContent-_8vqUkeq.js";import"./useMediaQuery-BS2MwPdz.js";import"./enums-B_igRgfI.js";import"./search-scope-Ci5AdKCU.js";import"./circle-check-big-vqvQydJO.js";import"./clock-aSLlxPRI.js";import"./row-actions-B1y94-E_.js";import"./rotate-ccw-ChFcYBoM.js";import"./NavMenuButton-C65lZ8kj.js";import"./menu-3dLcSCcM.js";import"./format-D7umvejg.js";import"./outbox-status-BlKn6P0x.js";import"./search-query-Cr_ZXBCp.js";function d(){return o.jsx(t.Reading,{})}export{d as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as o}from"./index-BKi_1Qmh.js";const n=o;export{n as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as o}from"./index-BKi_1Qmh.js";const n=o;export{n as component};
|