@remit/web-client-dist 0.0.500 → 0.0.501
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-fgglnatY.js → BriefPane-D_FLxN0P.js} +1 -1
- package/assets/{CalendarComposePane-BEhXFRNY.js → CalendarComposePane-Bs_JVBOC.js} +1 -1
- package/assets/{CalendarComposeSeed-1o7cctlZ.js → CalendarComposeSeed-9ZAWPJ3-.js} +1 -1
- package/assets/{CalendarShell-BR_H2gZU.js → CalendarShell-QIwcYJcy.js} +1 -1
- package/assets/{EmptyState-DVYgX544.js → EmptyState-DovDK_Vl.js} +1 -1
- package/assets/{ErrorState-BleXKJHk.js → ErrorState-C55MONp7.js} +1 -1
- package/assets/{FlaggedPane-Bu364oKX.js → FlaggedPane-CKHrkkww.js} +1 -1
- package/assets/{FullCompose-BymaWkcy.js → FullCompose-BVxhh_9G.js} +1 -1
- package/assets/MailListHeader-Xu9j-5x_.js +7 -0
- package/assets/{MailNav-Cbp-4SQL.js → MailNav-DQPGrdg-.js} +1 -1
- package/assets/{MailShell-zsMkXesR.js → MailShell-B7lvh1EP.js} +1 -1
- package/assets/{MailViewChrome-fZj0ArTU.js → MailViewChrome-DqIfb9Ob.js} +1 -1
- package/assets/{MailboxPane-BCpSAQxz.js → MailboxPane-CvZBBbmx.js} +1 -1
- package/assets/{NavMenuButton-Cy3wfV_4.js → NavMenuButton-D1x4V0wW.js} +1 -1
- package/assets/{OnboardingWizard-C0enCuWZ.js → OnboardingWizard-D8BMFUBW.js} +1 -1
- package/assets/{OpenCalendarEvent-C5lxHgzW.js → OpenCalendarEvent-i-Ix2wVd.js} +1 -1
- package/assets/{OutboxPane-CPuri_-t.js → OutboxPane-gZId8HPZ.js} +1 -1
- package/assets/_calendarObjectId-B3INra33.js +1 -0
- package/assets/_mailboxId-BMNtD2dK.js +1 -0
- package/assets/_messageId-0JUYZGYE.js +1 -0
- package/assets/_messageId-BLZePmyN.js +1 -0
- package/assets/_messageId-tszO9Zd9.js +1 -0
- package/assets/_outboxMessageId-CGiSkX_R.js +1 -0
- package/assets/_recurrenceId-D4_yE2UM.js +1 -0
- package/assets/_threadId-CG2S4CoE.js +1 -0
- package/assets/_threadId-D1kKvfjg.js +1 -0
- package/assets/_threadId-DBx89RxC.js +1 -0
- package/assets/{_view._date-Cw4OQJQA.js → _view._date-BFgojkTD.js} +1 -1
- package/assets/{accounts-JPU6qeqr.js → accounts-BPS5RIcY.js} +1 -1
- package/assets/{advanced-CRstRXZC.js → advanced-CikGt7TB.js} +1 -1
- package/assets/{appearance-B3mo-Efk.js → appearance-B4fq2-M0.js} +1 -1
- package/assets/{attachment-file-CpL7m-pT.js → attachment-file-DrC5CGhQ.js} +1 -1
- package/assets/{attendee-row-CoHhwyac.js → attendee-row-gsed4TY0.js} +1 -1
- package/assets/{avatar-Dhuh2LQT.js → avatar-7TzvWwf-.js} +1 -1
- package/assets/{bottom-sheet-BjcZ6YFL.js → bottom-sheet-DKXjxq2G.js} +1 -1
- package/assets/brief-DdReb3EB.js +1 -0
- package/assets/{brief-UpC-QlQw.js → brief-DhjBcaDd.js} +1 -1
- package/assets/{browser-ponyfill-CN2_bARG.js → browser-ponyfill-DILe3wIz.js} +1 -1
- package/assets/{bug-HZTqaNXE.js → bug-DwYPc8AV.js} +1 -1
- package/assets/{calendar-PvhEdckc.js → calendar-B9rbqYIn.js} +1 -1
- package/assets/{calendar-color-Y2I90IzB.js → calendar-color-DnvNhMaY.js} +1 -1
- package/assets/{calendar-days-BMxBKGfl.js → calendar-days-BDxpc8ML.js} +1 -1
- package/assets/{calendar-event-chip-DJvqkldG.js → calendar-event-chip-cwfR8GRV.js} +1 -1
- package/assets/{card-BPmZMUc_.js → card-BCMpUBes.js} +1 -1
- package/assets/chevron-left-GKb8el-4.js +1 -0
- package/assets/{circle-check-9A8XPDHY.js → circle-check-Bv0HueKv.js} +1 -1
- package/assets/{circle-check-big-CynPyNzi.js → circle-check-big-BB_u4ywe.js} +1 -1
- package/assets/{circle-help-DRU9tw8o.js → circle-help-DIIL1mZ_.js} +1 -1
- package/assets/{clock-BcxpC4rD.js → clock-BEe3UUtY.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BYHCj92O.js +1 -0
- package/assets/compose._-_outboxMessageId_-Cpx69eEk.js +1 -0
- package/assets/compose._-_outboxMessageId_-DMTJpVNI.js +1 -0
- package/assets/compose._-_outboxMessageId_-eQ-1Gwj4.js +1 -0
- package/assets/{config-import-DY-fa3Wg.js → config-import-AXXrdrBV.js} +1 -1
- package/assets/{confirm-dialog-CvHdDHI1.js → confirm-dialog-BHRJQgZk.js} +1 -1
- package/assets/{credential-steps-BFAlwe5j.js → credential-steps-pdUtw7J6.js} +1 -1
- package/assets/{download-Cb1Lq4p9.js → download-D8iZ7IRt.js} +1 -1
- package/assets/{filters-BC-I-EMK.js → filters-DFo8Qsik.js} +1 -1
- package/assets/flagged-Cvc9aope.js +1 -0
- package/assets/{flagged-SOzARpj9.js → flagged-D4gHUhDS.js} +1 -1
- package/assets/{folders-CDmAUHJ7.js → folders-D4FY4970.js} +1 -1
- package/assets/{format-ClD_KeSQ.js → format-D0KI22Wa.js} +1 -1
- package/assets/{help-copy-B914q2iU.js → help-copy-BpIClg_l.js} +1 -1
- package/assets/{import-dqy7PmVM.js → import-DUXHFSpd.js} +1 -1
- package/assets/index-1E8f9F0s.js +1 -0
- package/assets/index-BLZePmyN.js +1 -0
- package/assets/{index-BxyGxp9T.js → index-BP-zJpuU.js} +70 -70
- package/assets/index-B_73K-J2.js +1 -0
- package/assets/{index-D9SkFw5L.js → index-BefrNrbi.js} +4 -4
- package/assets/index-ByDJUkoX.js +1 -0
- package/assets/{index-Bi29Egwz.js → index-COEMwdoj.js} +1 -1
- package/assets/index-Ci6JJUrp.js +1 -0
- package/assets/index-D2szzhn9.js +1 -0
- package/assets/index-GXE_CaOq.js +1 -0
- package/assets/index-R2DmJYib.js +1 -0
- package/assets/index-tszO9Zd9.js +1 -0
- package/assets/{kbd-BJjAWQtV.js → kbd-BmjdQ-CL.js} +1 -1
- package/assets/{labels-ByaHqZqE.js → labels-DOCAbk8W.js} +1 -1
- package/assets/{mail-Bw8uQezm.js → mail-OHRa_PCP.js} +1 -1
- package/assets/{mail-BkxCAvSO.js → mail-fIoNWKOC.js} +1 -1
- package/assets/{map-pin-DzWt5q3h.js → map-pin-Oc7qahR5.js} +1 -1
- package/assets/{menu-DAXrok1v.js → menu-YW-Z0CC-.js} +1 -1
- package/assets/{new-CJGlbe3x.js → new-PdTtX322.js} +1 -1
- package/assets/onboarding-By_-UmxW.js +1 -0
- package/assets/{onboarding-completion-B9t7Z_cw.js → onboarding-completion-DRHnvIb-.js} +1 -1
- package/assets/outbox-BXCn7lBR.js +1 -0
- package/assets/{pencil-BJyxAWfp.js → pencil-Bokss13Y.js} +1 -1
- package/assets/{rich-text-BygjcKYc.js → rich-text-epMOViEx.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-CVj6U0hx.js → rich-text-spellcheck-worker-provider-BD5V5UQS.js} +1 -1
- package/assets/{rotate-ccw-iKiYuqVl.js → rotate-ccw-CMMWy5P0.js} +1 -1
- package/assets/{row-actions-BydlpOSA.js → row-actions-DCLZ-DUN.js} +1 -1
- package/assets/{search-mirror-Dzs5PVYg.js → search-mirror-BnepVrow.js} +1 -1
- package/assets/{search-token-index-D6wYFkn5.js → search-token-index-DexkoBSr.js} +1 -1
- package/assets/{sections-cpENMndA.js → sections-CrUbUSAT.js} +1 -1
- package/assets/{senders-CREMrl6w.js → senders-C07mFQAb.js} +1 -1
- package/assets/settings-BirUDraz.js +1 -0
- package/assets/{settings-screen-CcOj8iDi.js → settings-screen-48ysSNJ2.js} +1 -1
- package/assets/{shield-check-9WhoBx4E.js → shield-check-BY4oLwmG.js} +1 -1
- package/assets/{suggested-vips-D4dGaBL3.js → suggested-vips-D__fCszH.js} +1 -1
- package/assets/{useCalendarData-js63-ghZ.js → useCalendarData-CgkO59t_.js} +1 -1
- package/assets/{useCalendars-LjqNzp-x.js → useCalendars-DsY1D6jy.js} +1 -1
- package/assets/{useDebouncedValue-8pq7LTHi.js → useDebouncedValue-DTjaSUbN.js} +1 -1
- package/assets/{useFilters-CMj6eOER.js → useFilters-CwjbLUuz.js} +1 -1
- package/assets/{useLabels-D5B1kGoe.js → useLabels-uPOPzRio.js} +1 -1
- package/assets/{useLayoutTier-OpSw01yi.js → useLayoutTier-DM6nyfMY.js} +1 -1
- package/assets/{useMessageBodyContent-BwehRiRr.js → useMessageBodyContent-YdBc9UrK.js} +1 -1
- package/assets/{useQueries-DPC6qFPY.js → useQueries-WzKUJ4nm.js} +1 -1
- package/assets/{useRefreshControl-6jW6ppBV.js → useRefreshControl-DyUEJeCe.js} +1 -1
- package/assets/{useSearchTokenContext-DFl6G6vt.js → useSearchTokenContext-xarPpzlJ.js} +1 -1
- package/assets/{useSemanticSearch-B5u3vh1m.js → useSemanticSearch-BqaOR1EW.js} +1 -1
- package/assets/{useSignature-F-avuinE.js → useSignature-B4DzLNC1.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/MailListHeader-DNNQqKng.js +0 -7
- package/assets/_calendarObjectId-C9igvssD.js +0 -1
- package/assets/_mailboxId-DhisJD-h.js +0 -1
- package/assets/_messageId-B-3UkoxD.js +0 -1
- package/assets/_messageId-C7xHbVCJ.js +0 -1
- package/assets/_messageId-qEGIcpzX.js +0 -1
- package/assets/_outboxMessageId-vzU_xU-x.js +0 -1
- package/assets/_recurrenceId-C8DQ9zEj.js +0 -1
- package/assets/_threadId-BCwDTsoq.js +0 -1
- package/assets/_threadId-UD63TK5q.js +0 -1
- package/assets/_threadId-cd-01Yw7.js +0 -1
- package/assets/brief-BdF7_3E8.js +0 -1
- package/assets/chevron-left-CvcXjrrZ.js +0 -1
- package/assets/compose._-_outboxMessageId_-BvjQtrB7.js +0 -1
- package/assets/compose._-_outboxMessageId_-CvtIn52r.js +0 -1
- package/assets/compose._-_outboxMessageId_-KeqZ55CW.js +0 -1
- package/assets/compose._-_outboxMessageId_-USx36hWa.js +0 -1
- package/assets/flagged-Ch2hL1E2.js +0 -1
- package/assets/index-B-3UkoxD.js +0 -1
- package/assets/index-BJS9zkur.js +0 -1
- package/assets/index-BrvjAUX8.js +0 -1
- package/assets/index-C7xHbVCJ.js +0 -1
- package/assets/index-Cu6zSgg5.js +0 -1
- package/assets/index-D69bNM2X.js +0 -1
- package/assets/index-DDTXgI5K.js +0 -1
- package/assets/index-WT6HtGiJ.js +0 -1
- package/assets/index-iI-5UHW_.js +0 -1
- package/assets/onboarding-p26Z-pCk.js +0 -1
- package/assets/outbox-BFvm16x5.js +0 -1
- package/assets/settings-Da5iP_0y.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o,L as Ze,V as Xe,e0 as et,C as Y,bc as tt,cH as st,r as a,c as oe,e1 as ne,G as ot,dm as nt,e2 as at,dH as rt,_ as Te,dL as it,aj as ct,cO as lt,cP as dt}from"./index-BxyGxp9T.js";import{g as je,e as ut,f as Re,u as mt,p as ft,R as ht}from"./useSearchTokenContext-DFl6G6vt.js";import{ai as be,F as ve,aj as gt,ak as xt,G as pt,al as ye,am as It,an as bt,ao as vt,a7 as yt,ap as St,aq as Ct,ar as Tt,M as jt,as as Rt,ae as wt,at as Mt,e as kt,v as Ft,af as Ot,q as At,S as Nt,J as Bt,O as Se,N as Lt,K as Dt,d as Et,Y as Pt,Z as qt,$ as we,a0 as Me,a1 as zt,a2 as Ht,a3 as Qt}from"./MailListHeader-DNNQqKng.js";import{u as _t,a as Gt,R as $t,b as Vt,c as Wt}from"./useRefreshControl-6jW6ppBV.js";import{u as Ut}from"./useQueries-DPC6qFPY.js";import{a as Yt}from"./useLabels-D5B1kGoe.js";import{u as Jt,b as Kt}from"./useLayoutTier-OpSw01yi.js";import{u as Zt,r as Xt,L as es}from"./useSemanticSearch-B5u3vh1m.js";import{w as ts}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./sections-cpENMndA.js";import{R as ss,g as os,h as ns}from"./search-token-index-D6wYFkn5.js";import{a as as}from"./useMessageBodyContent-BwehRiRr.js";function rs({sync:e}){return e?o.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:[o.jsx(Ze,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),o.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),o.jsx("p",{className:"text-xs text-fg-subtle",children:is(e)})]}):o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[o.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),o.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),o.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function is({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Oe="category",cs={unclassified:"uncategorized"},G=e=>ut(e).map(t=>t.raw),_=e=>e.join(" "),ae=e=>{const t=Re(e);if(t)return Fe.find(n=>n.name===t.name&&n.value===t.value.toLowerCase())?.id},re=e=>{const t=Re(e);if(!t||t.name!==Oe)return;const n=t.value.toLowerCase(),r=cs[n];if(r)return r;if(!(!et(n)||n==="all"))return n},Ae=e=>Fe.find(t=>t.id===e),Ne=e=>Ae(e)!==void 0,ls=e=>{const t=new Set;for(const n of G(e)){const r=ae(n);r&&t.add(r)}return t},ds=e=>{let t="all";for(const n of G(e)){const r=re(n);r&&(t=r)}return t},us=(e,t)=>{const n=Ae(t);if(!n)return;const r=G(e),l=r.filter(d=>ae(d)!==t);return l.length<r.length?_(l):_([...r,je(n.name,n.value)])},ms=(e,t)=>{const n=G(e).filter(r=>!re(r));return _(t==="all"?n:[...n,je(Oe,t)])},fs=e=>_(G(e).filter(t=>!ae(t)&&!re(t))),Be=e=>e.trim().length>0,hs=e=>{if(!Be(e.query))return e.ownFilters;const t=new Set(ls(e.query));for(const n of e.ownFilters)Ne(n)||t.add(n);return t},gs=e=>Be(e.query)?ds(e.query):e.ownCategory,xs=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),ps=e=>[...e].sort(xs),Is=200,Ce=()=>o.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>o.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[o.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),o.jsxs("div",{className:"flex-1 space-y-1.5",children:[o.jsxs("div",{className:"flex justify-between gap-2",children:[o.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),o.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),o.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),o.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),bs=({accountEmail:e})=>{const t=ke();return o.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:[o.jsx(Te,{className:"size-3.5 shrink-0"}),o.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),o.jsx("button",{type:"button",onClick:()=>t("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vs=(e,t)=>{if(t.size===0)return{};const n=e.filter(d=>t.has(d.id)),r=Xt(n.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of n)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function ys({header:e,rows:t,wizard:n,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Mt(),x=a.useMemo(()=>vs(t,l),[t,l]),{junkMailboxId:L}=kt(x.accountId),{labels:I}=Yt(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),D=a.useMemo(()=>ts(t,l),[t,l]),h=Ft(L,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),F=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=C=>o.jsx(Nt,{title:C.title,navSlot:C.navSlot,titleMeta:C.titleMeta,searchSlot:C.searchSlot,searchField:C.searchField,idleSlot:C.makeFilterSlot,count:d,onCancel:u,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:h?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?o.jsx(es,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:F});return o.jsx(Ot,{...e,selectionBar:S,paneOverlay:o.jsx(At,{verb:n.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:D,selectionRestriction:x.restriction,onFinished:u}),children:r})}function Ss({accounts:e,selectedMessageId:t,onOpenThread:n,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=mt(),L=tt(),I=Jt(),p=st(),D=Kt(),h=a.useMemo(()=>ps(e.filter(s=>!s.muted?.value)),[e]),[v,F]=a.useState("all"),[S,C]=a.useState("all"),[$,E]=a.useState(new Set),[K,T]=a.useState(!1),P=a.useCallback(s=>{E(i=>{const c=new Set(i);return c.has(s)?c.delete(s):c.add(s),c})},[]),V=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>hs({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gs({query:m,ownCategory:S}),[m,S]),O=a.useCallback(s=>{if(!R||!Ne(s)){P(s);return}const i=us(m,s);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(s=>{if(!R){C(s);return}f(ms(m,s))},[R,m,f]),z=a.useCallback(()=>{C("all"),F("all"),V(),R&&f(fs(m))},[R,m,f,V]),{data:A,isLoading:H,isError:g,refetch:N}=oe({...ne(),staleTime:6e4}),B=Ut({queries:h.map(s=>({...ot({path:{accountId:s.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=a.useMemo(()=>{const s=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);s.set(c,Ye)}return s},[h,B]),Ee=a.useMemo(()=>h.filter((s,i)=>{const c=B[i];return c?.isError?!nt(c.error):!1}),[h,B]),{freeText:M,tokens:Z}=ft(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=oe({...ne({query:{query:M,limit:Is}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const s=be(A?.items??[]).map(ve);return(M?gt(s.filter(c=>xt(c,M)),be(ie?.items??[]).map(ve)):s).filter(c=>(v==="all"||c.accountId===v)&&pt(c,Z))},[A,ie,v,M,Z]),{bodyRows:ce,briefSpamOffer:X}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const s=y.map(k=>ye(k,b)),{spam:i}=It(s);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bt(s)}},[y,M,b]),le=a.useMemo(()=>vt(ce),[ce]),de=a.useCallback((s,i)=>{const c=y.find(k=>k.id===s)?.threadId;c&&n?.({threadId:c,messageId:s},i)},[y,n]),qe=a.useCallback(s=>{const i=s.threadId??y.find(c=>c.id===s.id)?.threadId;i&&n?.({threadId:i,messageId:s.id})},[y,n]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(s=>({id:s.accountId,label:s.email.split("@")[0]??s.email,count:W.get(s.accountId),active:v===s.accountId}))],[h,W,v]),Q=a.useMemo(()=>e.filter(s=>s.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(W.values()).reduce((s,i)=>s+i,0),[W]),te=a.useMemo(()=>h.map(s=>s.accountId),[h]),{hasNewMail:ue}=_t(),{state:me,errorMessage:fe,refresh:he}=Gt(te,{onSettled:()=>N()}),He=a.useMemo(()=>o.jsx($t,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(te)}),[me,he,fe,ue,te]),se=a.useMemo(()=>y.filter(s=>(w==="all"||s.category===w)&&at(s,j)).map(s=>ye(s,b)),[y,w,j,b]),{hits:ge,isLoading:Qe}=Zt(),_e=a.useMemo(()=>{const s=new Map;for(const c of A?.items??[])s.set(c.messageId,c.threadId);const i=se.map(c=>s.get(c.id)).filter(c=>c!=null);return yt(ge,i,b)},[ge,se,A,b]),Ge=a.useMemo(()=>{const s=St(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:s.categories,filters:s.filters,sources:s.sources,sourcesNote:Q>0?`+${Q} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:T,onSelectCategory:i=>q(i),onSelectSource:F,onToggleFilter:i=>O(i),onClear:z}},[ee,Q,w,j,K,O,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&Z.length===0,$e=a.useMemo(()=>h.map(s=>s.accountId),[h]),Ve=a.useMemo(()=>h.some(s=>Vt(s.syncPhase)),[h]),U=Wt($e,xe||Ve),pe=o.jsxs("div",{className:"h-full overflow-y-auto",children:[o.jsx(Ce,{}),o.jsx(Ce,{})]}),Ie=!H&&!g&&!xe,We=Ct({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ue=Ie?o.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&o.jsx(Tt,{count:X.count,onScopeToSpam:()=>D(X.mailboxId,u)}),o.jsx("div",{className:"min-h-0 flex-1",children:o.jsx(rt,{sections:le,briefCategory:w,Row:jt,selectedThreadId:t,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:Q>0?`+${Q} muted`:void 0,onSelectSource:F,activeFilters:j,onToggleFilter:O,onClearFilters:z})})]}):H?pe:g?o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[o.jsx(Te,{className:"size-8 text-danger"}),o.jsx("p",{children:"Couldn't load your messages"}),o.jsxs("button",{type:"button",onClick:()=>N(),className:"flex items-center gap-1 text-accent underline text-xs",children:[o.jsx(ss,{className:"size-3.5"}),"Try again"]})]}):U.resolved?o.jsx(rs,{sync:U.syncing?{synced:U.synced,total:U.total}:void 0}):pe;return o.jsx(it,{hasSheet:Ie&&!We,children:o.jsx(Rt,{selectedMessageId:t,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,commandsRef:r,onTriageContextChange:l,children:o.jsx(ys,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:L?o.jsx(wt,{}):void 0,searchFilter:Ge,searchResults:se,searchLoading:H||Pe,relatedResults:_e,relatedLoading:Qe,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:He},rows:y,children:o.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(s=>o.jsx(bs,{accountEmail:s.email,accountId:s.accountId},s.accountId)),o.jsx("div",{className:"min-h-0 flex-1",children:Ue})]})})})})}const Le=a.createContext(null);function J(){const e=a.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Cs({thread:e,children:t}){const n=os(),r=ns(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=oe({...ne(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),L=Bt(u,m),I=x??L,p=m??I?.messageId,D=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,N)=>{n(g,{replace:N?.replace,query:d})},[n,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),F=Se({thread:I,isOpen:!0,onAfterOptimisticRemove:v}),S=Lt(),{deleteMessages:C}=Dt({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Et({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,T=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:T,isOpen:T?.messageId===p}),V=as(),R=ct(),j=lt(),w=a.useMemo(()=>dt(j,u,p),[j,u,p]),O=a.useMemo(()=>{if(T)return g=>j({threadId:T.threadId,messageId:T.messageId,mode:g})},[j,T]),{nextMessageId:q,previousMessageId:z}=Pt({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!V&&!R,hasOpenThread:u!==void 0,onClose:r,handlers:{reply:()=>O?.("reply"),replyAll:()=>O?.("reply-all"),forward:()=>O?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||T&&$([T.messageId],!T.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),A=a.useCallback(g=>{if(!g)return;const N=f.find(B=>B.messageId===g);return N?{threadId:N.threadId,messageId:g}:void 0},[f]),H={selectedMessageId:p,selectedThread:I,conversation:D,onOpenThread:h,onCloseThread:r,nextThread:A(q),previousThread:A(z),actions:F,onReply:w,triage:S,onDeleteMessages:C,handleDeselectIfRemoved:v};return o.jsx(Le.Provider,{value:H,children:t})}function De(){const{selectedMessageId:e,onOpenThread:t,triage:n,onDeleteMessages:r}=J(),{accounts:l}=Y();return o.jsx(Ss,{accounts:l,selectedMessageId:e,onOpenThread:t,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function Ts(){const{conversation:e,selectedThread:t,actions:n,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Ht(e?.threadId);return o.jsxs(o.Fragment,{children:[o.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[o.jsx(Qt,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?n.deleteThread:void 0,onToggleStar:d?n.toggleStar:void 0,isStarred:n.isStarred,moveContext:d&&n.accountId&&n.mailboxId?{accountId:n.accountId,currentMailboxId:n.mailboxId,onMove:n.moveThread}:void 0}),o.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?o.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open,listOnScreen:!0}):o.jsx(ht,{})})]}),o.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:l})]})}function js(){const{selectedThread:e,handleDeselectIfRemoved:t}=J(),{onToggleIntelligence:n}=Y();return o.jsx(zt,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Rs(){const{selectedThread:e,conversation:t,onOpenThread:n,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qt(t?.threadId??null);return t?o.jsxs(o.Fragment,{children:[o.jsx(we,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>n(l):void 0,onSwipePrevious:d?()=>n(d):void 0,mobileIntelligenceOpen:m.isOpen}),o.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):o.jsx("div",{className:"h-full",children:o.jsx(De,{})})}const qs=Object.assign(Cs,{List:De,Reading:Ts,Intelligence:js,Phone:Rs});export{qs as B};
|
|
1
|
+
import{j as o,L as Ze,V as Xe,e3 as et,C as Y,bc as tt,cH as st,r as a,c as oe,e4 as ne,G as ot,dq as nt,e5 as at,dK as rt,_ as Te,dO as it,aj as ct,cO as lt,cP as dt}from"./index-BP-zJpuU.js";import{g as je,e as ut,f as Re,u as mt,p as ft,R as ht}from"./useSearchTokenContext-xarPpzlJ.js";import{ai as be,F as ve,aj as gt,ak as xt,G as pt,al as ye,am as It,an as bt,ao as vt,a7 as yt,ap as St,aq as Ct,ar as Tt,M as jt,as as Rt,ae as wt,at as Mt,e as kt,v as Ot,af as Ft,q as At,S as Nt,J as Bt,O as Se,N as Lt,K as Dt,d as Et,Y as Pt,Z as qt,$ as we,a0 as Me,a1 as zt,a2 as Qt,a3 as Ht}from"./MailListHeader-Xu9j-5x_.js";import{u as _t,a as Gt,R as $t,b as Vt,c as Wt}from"./useRefreshControl-DyUEJeCe.js";import{u as Ut}from"./useQueries-WzKUJ4nm.js";import{a as Yt}from"./useLabels-uPOPzRio.js";import{u as Jt,b as Kt}from"./useLayoutTier-DM6nyfMY.js";import{u as Zt,r as Xt,L as es}from"./useSemanticSearch-BqaOR1EW.js";import{w as ts}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./sections-CrUbUSAT.js";import{R as ss,g as os,h as ns}from"./search-token-index-DexkoBSr.js";import{a as as}from"./useMessageBodyContent-YdBc9UrK.js";function rs({sync:e}){return e?o.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:[o.jsx(Ze,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),o.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),o.jsx("p",{className:"text-xs text-fg-subtle",children:is(e)})]}):o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[o.jsx(Xe,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),o.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),o.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function is({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Oe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Fe="category",cs={unclassified:"uncategorized"},G=e=>ut(e).map(t=>t.raw),_=e=>e.join(" "),ae=e=>{const t=Re(e);if(t)return Oe.find(n=>n.name===t.name&&n.value===t.value.toLowerCase())?.id},re=e=>{const t=Re(e);if(!t||t.name!==Fe)return;const n=t.value.toLowerCase(),r=cs[n];if(r)return r;if(!(!et(n)||n==="all"))return n},Ae=e=>Oe.find(t=>t.id===e),Ne=e=>Ae(e)!==void 0,ls=e=>{const t=new Set;for(const n of G(e)){const r=ae(n);r&&t.add(r)}return t},ds=e=>{let t="all";for(const n of G(e)){const r=re(n);r&&(t=r)}return t},us=(e,t)=>{const n=Ae(t);if(!n)return;const r=G(e),l=r.filter(d=>ae(d)!==t);return l.length<r.length?_(l):_([...r,je(n.name,n.value)])},ms=(e,t)=>{const n=G(e).filter(r=>!re(r));return _(t==="all"?n:[...n,je(Fe,t)])},fs=e=>_(G(e).filter(t=>!ae(t)&&!re(t))),Be=e=>e.trim().length>0,hs=e=>{if(!Be(e.query))return e.ownFilters;const t=new Set(ls(e.query));for(const n of e.ownFilters)Ne(n)||t.add(n);return t},gs=e=>Be(e.query)?ds(e.query):e.ownCategory,xs=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),ps=e=>[...e].sort(xs),Is=200,Ce=()=>o.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>o.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[o.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),o.jsxs("div",{className:"flex-1 space-y-1.5",children:[o.jsxs("div",{className:"flex justify-between gap-2",children:[o.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),o.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),o.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),o.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),bs=({accountEmail:e})=>{const t=ke();return o.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:[o.jsx(Te,{className:"size-3.5 shrink-0"}),o.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),o.jsx("button",{type:"button",onClick:()=>t("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vs=(e,t)=>{if(t.size===0)return{};const n=e.filter(d=>t.has(d.id)),r=Xt(n.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of n)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function ys({header:e,rows:t,wizard:n,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Mt(),x=a.useMemo(()=>vs(t,l),[t,l]),{junkMailboxId:L}=kt(x.accountId),{labels:I}=Yt(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),D=a.useMemo(()=>ts(t,l),[t,l]),h=Ot(L,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),O=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=C=>o.jsx(Nt,{title:C.title,navSlot:C.navSlot,titleMeta:C.titleMeta,searchSlot:C.searchSlot,searchField:C.searchField,idleSlot:C.makeFilterSlot,count:d,onCancel:u,onDelete:()=>n.start("delete"),onMove:()=>n.start("move"),onOrganize:()=>n.start("organize"),onJunk:h?()=>n.start("junk"):void 0,onMarkRead:()=>n.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?o.jsx(es,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:O});return o.jsx(Ft,{...e,selectionBar:S,paneOverlay:o.jsx(At,{verb:n.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:D,selectionRestriction:x.restriction,onFinished:u}),children:r})}function Ss({accounts:e,selectedMessageId:t,onOpenThread:n,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=mt(),L=tt(),I=Jt(),p=st(),D=Kt(),h=a.useMemo(()=>ps(e.filter(s=>!s.muted?.value)),[e]),[v,O]=a.useState("all"),[S,C]=a.useState("all"),[$,E]=a.useState(new Set),[K,T]=a.useState(!1),P=a.useCallback(s=>{E(i=>{const c=new Set(i);return c.has(s)?c.delete(s):c.add(s),c})},[]),V=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>hs({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gs({query:m,ownCategory:S}),[m,S]),F=a.useCallback(s=>{if(!R||!Ne(s)){P(s);return}const i=us(m,s);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(s=>{if(!R){C(s);return}f(ms(m,s))},[R,m,f]),z=a.useCallback(()=>{C("all"),O("all"),V(),R&&f(fs(m))},[R,m,f,V]),{data:A,isLoading:Q,isError:g,refetch:N}=oe({...ne(),staleTime:6e4}),B=Ut({queries:h.map(s=>({...ot({path:{accountId:s.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=a.useMemo(()=>{const s=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);s.set(c,Ye)}return s},[h,B]),Ee=a.useMemo(()=>h.filter((s,i)=>{const c=B[i];return c?.isError?!nt(c.error):!1}),[h,B]),{freeText:M,tokens:Z}=ft(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=oe({...ne({query:{query:M,limit:Is}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const s=be(A?.items??[]).map(ve);return(M?gt(s.filter(c=>xt(c,M)),be(ie?.items??[]).map(ve)):s).filter(c=>(v==="all"||c.accountId===v)&&pt(c,Z))},[A,ie,v,M,Z]),{bodyRows:ce,briefSpamOffer:X}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const s=y.map(k=>ye(k,b)),{spam:i}=It(s);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bt(s)}},[y,M,b]),le=a.useMemo(()=>vt(ce),[ce]),de=a.useCallback((s,i)=>{const c=y.find(k=>k.id===s)?.threadId;c&&n?.({threadId:c,messageId:s},i)},[y,n]),qe=a.useCallback(s=>{const i=s.threadId??y.find(c=>c.id===s.id)?.threadId;i&&n?.({threadId:i,messageId:s.id})},[y,n]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(s=>({id:s.accountId,label:s.email.split("@")[0]??s.email,count:W.get(s.accountId),active:v===s.accountId}))],[h,W,v]),H=a.useMemo(()=>e.filter(s=>s.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(W.values()).reduce((s,i)=>s+i,0),[W]),te=a.useMemo(()=>h.map(s=>s.accountId),[h]),{hasNewMail:ue}=_t(),{state:me,errorMessage:fe,refresh:he}=Gt(te,{onSettled:()=>N()}),Qe=a.useMemo(()=>o.jsx($t,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(te)}),[me,he,fe,ue,te]),se=a.useMemo(()=>y.filter(s=>(w==="all"||s.category===w)&&at(s,j)).map(s=>ye(s,b)),[y,w,j,b]),{hits:ge,isLoading:He}=Zt(),_e=a.useMemo(()=>{const s=new Map;for(const c of A?.items??[])s.set(c.messageId,c.threadId);const i=se.map(c=>s.get(c.id)).filter(c=>c!=null);return yt(ge,i,b)},[ge,se,A,b]),Ge=a.useMemo(()=>{const s=St(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:s.categories,filters:s.filters,sources:s.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:T,onSelectCategory:i=>q(i),onSelectSource:O,onToggleFilter:i=>F(i),onClear:z}},[ee,H,w,j,K,F,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&Z.length===0,$e=a.useMemo(()=>h.map(s=>s.accountId),[h]),Ve=a.useMemo(()=>h.some(s=>Vt(s.syncPhase)),[h]),U=Wt($e,xe||Ve),pe=o.jsxs("div",{className:"h-full overflow-y-auto",children:[o.jsx(Ce,{}),o.jsx(Ce,{})]}),Ie=!Q&&!g&&!xe,We=Ct({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ue=Ie?o.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&o.jsx(Tt,{count:X.count,onScopeToSpam:()=>D(X.mailboxId,u)}),o.jsx("div",{className:"min-h-0 flex-1",children:o.jsx(rt,{sections:le,briefCategory:w,Row:jt,selectedThreadId:t,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:O,activeFilters:j,onToggleFilter:F,onClearFilters:z})})]}):Q?pe:g?o.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[o.jsx(Te,{className:"size-8 text-danger"}),o.jsx("p",{children:"Couldn't load your messages"}),o.jsxs("button",{type:"button",onClick:()=>N(),className:"flex items-center gap-1 text-accent underline text-xs",children:[o.jsx(ss,{className:"size-3.5"}),"Try again"]})]}):U.resolved?o.jsx(rs,{sync:U.syncing?{synced:U.synced,total:U.total}:void 0}):pe;return o.jsx(it,{hasSheet:Ie&&!We,children:o.jsx(Rt,{selectedMessageId:t,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,commandsRef:r,onTriageContextChange:l,children:o.jsx(ys,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:L?o.jsx(wt,{}):void 0,searchFilter:Ge,searchResults:se,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:o.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(s=>o.jsx(bs,{accountEmail:s.email,accountId:s.accountId},s.accountId)),o.jsx("div",{className:"min-h-0 flex-1",children:Ue})]})})})})}const Le=a.createContext(null);function J(){const e=a.useContext(Le);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Cs({thread:e,children:t}){const n=os(),r=ns(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=oe({...ne(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),L=Bt(u,m),I=x??L,p=m??I?.messageId,D=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,N)=>{n(g,{replace:N?.replace,query:d})},[n,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),O=Se({thread:I,isOpen:!0,onAfterOptimisticRemove:v}),S=Lt(),{deleteMessages:C}=Dt({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Et({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,T=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:T,isOpen:T?.messageId===p}),V=as(),R=ct(),j=lt(),w=a.useMemo(()=>dt(j,u,p),[j,u,p]),F=a.useMemo(()=>{if(T)return g=>j({threadId:T.threadId,messageId:T.messageId,mode:g})},[j,T]),{nextMessageId:q,previousMessageId:z}=Pt({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!V&&!R,hasOpenThread:u!==void 0,onClose:r,handlers:{reply:()=>F?.("reply"),replyAll:()=>F?.("reply-all"),forward:()=>F?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||T&&$([T.messageId],!T.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),A=a.useCallback(g=>{if(!g)return;const N=f.find(B=>B.messageId===g);return N?{threadId:N.threadId,messageId:g}:void 0},[f]),Q={selectedMessageId:p,selectedThread:I,conversation:D,onOpenThread:h,onCloseThread:r,nextThread:A(q),previousThread:A(z),actions:O,onReply:w,triage:S,onDeleteMessages:C,handleDeselectIfRemoved:v};return o.jsx(Le.Provider,{value:Q,children:t})}function De(){const{selectedMessageId:e,onOpenThread:t,triage:n,onDeleteMessages:r}=J(),{accounts:l}=Y();return o.jsx(Ss,{accounts:l,selectedMessageId:e,onOpenThread:t,commandsRef:n.listCommandsRef,onTriageContextChange:n.onTriageContextChange,onDeleteMessages:r})}function Ts(){const{conversation:e,selectedThread:t,actions:n,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Qt(e?.threadId);return o.jsxs(o.Fragment,{children:[o.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[o.jsx(Ht,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?n.deleteThread:void 0,onToggleStar:d?n.toggleStar:void 0,isStarred:n.isStarred,moveContext:d&&n.accountId&&n.mailboxId?{accountId:n.accountId,currentMailboxId:n.mailboxId,onMove:n.moveThread}:void 0}),o.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?o.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open,listOnScreen:!0}):o.jsx(ht,{})})]}),o.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:l})]})}function js(){const{selectedThread:e,handleDeselectIfRemoved:t}=J(),{onToggleIntelligence:n}=Y();return o.jsx(zt,{onClose:n,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Rs(){const{selectedThread:e,conversation:t,onOpenThread:n,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qt(t?.threadId??null);return t?o.jsxs(o.Fragment,{children:[o.jsx(we,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>n(l):void 0,onSwipePrevious:d?()=>n(d):void 0,mobileIntelligenceOpen:m.isOpen}),o.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):o.jsx("div",{className:"h-full",children:o.jsx(De,{})})}const qs=Object.assign(Cs,{List:De,Reading:Ts,Intelligence:js,Phone:Rs});export{qs as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ee,j as _}from"./useCalendars-LjqNzp-x.js";import{j as n,f as j,t as d,Y as te,Z as ne,ay as f,r as p,ax as ae,X as se,i as T,e9 as re,ea as ie,eb as le,h as oe,s as ce,b2 as de,_ as ue}from"./index-BxyGxp9T.js";import{f as me}from"./ErrorState-BleXKJHk.js";import{R as z,c as he}from"./calendar-color-Y2I90IzB.js";const xe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],pe=["January","February","March","April","May","June","July","August","September","October","November","December"],fe=["first","second","third","fourth","last"],A="";function ye(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[a,s,i]=e.split("-").map(Number),r=new Date(Date.UTC(a,s-1,i)),l=xe[r.getUTCDay()],o=fe[Math.min(Math.floor((i-1)/7),4)],c=t===""?"":`, ${t}`,y=r.getUTCDay()>=1&&r.getUTCDay()<=5;return[`Every day${c}`,...y?[`Every weekday${c}`]:[],`Every week on ${l}${c}`,`Every month on the ${o} ${l}${c}`,`Every year on ${i} ${pe[s-1]}${c}`]}const ve="w-full rounded-md border border-line bg-surface-sunken px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus-visible:border-line-strong focus-visible:ring-2 focus-visible:ring-ring/30",u=({draft:e,onChange:t},a,s)=>t({...e,[a]:s});function x({label:e,children:t}){return n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),t]})}function ge({draft:e,onChange:t,layout:a="compact",touch:s}){const i=a==="pane";return n.jsx(f,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:r=>u({draft:e,onChange:t},"title",r.target.value),className:d(i?"text-lg font-medium":"text-md font-medium",i?"h-11":s?"min-h-11":"")})}function H(e){return e.allDay||e.startTime===""||e.endTime===""?!1:e.endTime<e.startTime}function be({draft:e,onChange:t,touch:a}){const s=a?"min-h-11":"",i=H(e),r=p.useId();return n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(f,{type:"date",value:e.date,"aria-label":"Date",onChange:l=>u({draft:e,onChange:t},"date",l.target.value),className:d("w-40",s)}),e.allDay?n.jsx("span",{className:"text-sm text-fg-muted",children:"All day"}):n.jsxs(n.Fragment,{children:[n.jsx(f,{type:"time",value:e.startTime,"aria-label":"Start time",max:e.endTime===""?void 0:e.endTime,"aria-invalid":i,"aria-describedby":i?r:void 0,onChange:l=>u({draft:e,onChange:t},"startTime",l.target.value),className:d("w-28",s,i&&"border-danger/60")}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(f,{type:"time",value:e.endTime,"aria-label":"End time",min:e.startTime===""?void 0:e.startTime,"aria-invalid":i,"aria-describedby":i?r:void 0,onChange:l=>u({draft:e,onChange:t},"endTime",l.target.value),className:d("w-28",s,i&&"border-danger/60")})]}),n.jsxs("label",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx("input",{type:"checkbox",checked:e.allDay,onChange:l=>u({draft:e,onChange:t},"allDay",l.target.checked),className:"size-4 accent-current"}),"All day"]})]}),i&&n.jsxs("p",{id:r,className:"text-xs text-danger",role:"alert",children:["Ends before it starts. Move the end past ",e.startTime,", or start earlier."]})]})}function Ee({draft:e,onChange:t,calendars:a,touch:s}){return n.jsx(Ae,{calendars:a,value:e.calendarId,onChange:i=>u({draft:e,onChange:t},"calendarId",i),touch:s})}function Ne({draft:e,onChange:t,touch:a,repeatEditable:s=!0,onCustom:i}){return s?n.jsx(ke,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:r=>u({draft:e,onChange:t},"repeat",r),onCustom:i,className:a?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(z,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===A?"Does not repeat":e.repeat]})}function je({draft:e,onChange:t,touch:a}){return n.jsx(f,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:s=>u({draft:e,onChange:t},"location",s.target.value),className:a?"min-h-11":""})}function Te({draft:e,onChange:t,touch:a}){return n.jsx(f,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:s=>u({draft:e,onChange:t},"guests",s.target.value),className:a?"min-h-11":""})}function Ce({draft:e,onChange:t,layout:a="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:s=>u({draft:e,onChange:t},"notes",s.target.value),rows:a==="pane"?6:3,className:ve})}function De({draft:e,onChange:t,calendars:a,layout:s="compact",expanded:i=!1,onToggleExpanded:r,onSave:l,onCancel:o,onDelete:c,saveLabel:y="Add",header:g,repeatEditable:b=!0,guestsEditable:I=!1,calendarEditable:M=!0,onCustomRepeat:X,touch:m,className:w}){const v=s==="pane",h={draft:e,onChange:t,layout:s,touch:m},S=n.jsx(ge,{...h}),$=n.jsx(be,{...h}),R=n.jsx(Ee,{...h,calendars:a}),F=n.jsx(Ne,{...h,repeatEditable:b,onCustom:X}),Y=n.jsx(je,{...h}),L=n.jsx(Te,{...h}),P=n.jsx(Ce,{...h}),W=n.jsxs("div",{className:d("flex items-center gap-2",v?"pt-2":"pt-1"),children:[n.jsx(j,{variant:"primary",size:m||v?"md":"sm",onClick:l,disabled:H(e),className:m?"min-h-11 flex-1":"",children:y}),n.jsx(j,{variant:"ghost",size:m||v?"md":"sm",onClick:o,className:m?"min-h-11":"",children:"Cancel"}),c&&n.jsx(j,{variant:"ghost",size:m||v?"md":"sm",onClick:c,className:d("ml-auto text-danger",m&&"min-h-11"),children:"Delete"})]});if(v)return n.jsxs("div",{className:d("flex flex-col gap-5",w),children:[g,n.jsx(x,{label:"Title",children:S}),n.jsx(x,{label:"When",children:$}),M&&n.jsx(x,{label:"Calendar",children:R}),n.jsx(x,{label:"Repeat",children:F}),n.jsx(x,{label:"Location",children:Y}),I&&n.jsx(x,{label:"Guests",children:L}),n.jsx(x,{label:"Notes",children:P}),W]});const Z=r!==void 0&&!i;return n.jsxs("div",{className:d("flex flex-col gap-3",w),children:[g,S,$,M&&R,r&&n.jsxs("button",{type:"button",onClick:r,"aria-expanded":i,className:d("flex items-center gap-1 self-start rounded-sm text-xs font-medium text-fg-muted outline-none hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",m&&"min-h-11"),children:[i?n.jsx(te,{className:"size-3.5"}):n.jsx(ne,{className:"size-3.5"}),i?"Fewer details":"More details"]}),!Z&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[Y,I&&L,F,P]}),W]})}const U="__custom__";function ke({value:e,date:t,startTime:a,onChange:s,onCustom:i,className:r}){const l=ye(t,a),o=e===A||l.includes(e)?l:[e,...l];return n.jsxs(ae,{icon:n.jsx(z,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:c=>{if(c.target.value===U){i?.();return}s(c.target.value)},className:r,children:[n.jsx("option",{value:A,children:"Does not repeat"}),o.map(c=>n.jsx("option",{value:c,children:c},c)),i&&n.jsx("option",{value:U,children:"Custom…"})]})}function Ae({calendars:e,value:t,onChange:a,touch:s}){const i=p.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(r=>{const l=he(r.color),o=r.id===t;return n.jsxs("label",{className:d("inline-flex cursor-pointer items-center gap-1.5 rounded-full border px-2.5 text-xs transition-colors","has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring",s?"min-h-11":"h-7",o?d(l.soft,l.text,l.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:i,value:r.id,checked:o,onChange:()=>a(r.id),className:"sr-only"}),n.jsx("span",{className:d("size-2 rounded-full",l.solid)}),r.name]},r.id)})]})}function Oe({title:e,subtitle:t,onClose:a,children:s,className:i}){return n.jsxs("section",{className:d("flex h-full w-full flex-col bg-surface",i),children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx("h2",{className:"shrink-0 text-xs font-medium text-fg",children:e}),t!==void 0&&t!==""&&n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-muted",children:t}),n.jsx("button",{type:"button","aria-label":"Close editor",onClick:a,className:"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-fg-subtle outline-none hover:bg-surface-sunken hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",children:n.jsx(se,{className:"size-4"})})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-row-inset py-5",children:n.jsx("div",{className:"mx-auto w-full max-w-2xl",children:s})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["SU","MO","TU","WE","TH","FR","SA"],Q=["January","February","March","April","May","June","July","August","September","October","November","December"],K=["first","second","third","fourth","last"],G=[1,2,3,4,-1],J="MO,TU,WE,TH,FR",Ie=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function O(e){const t=Ie(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${J}`;const a=t.match(/^Every week on (\w+)$/);if(a){const r=E.indexOf(a[1]);return r===-1?void 0:`FREQ=WEEKLY;BYDAY=${N[r]}`}const s=t.match(/^Every month on the (\w+) (\w+)$/);if(s){const r=K.indexOf(s[1]),l=E.indexOf(s[2]);return r===-1||l===-1?void 0:`FREQ=MONTHLY;BYDAY=${G[r]}${N[l]}`}const i=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(i){const r=Q.indexOf(i[2]);return r===-1?void 0:`FREQ=YEARLY;BYMONTH=${r+1};BYMONTHDAY=${Number(i[1])}`}}const Me=e=>e===""?"":`, ${e}`;function Pe(e,t){const a=new Map(e.split(";").map(l=>l.split("=")).filter(l=>l.length===2).map(([l,o])=>[l.toUpperCase(),o.toUpperCase()])),s=Me(t),i=a.get("FREQ"),r=a.get("BYDAY");if(!(a.has("INTERVAL")&&a.get("INTERVAL")!=="1")&&!(a.has("UNTIL")||a.has("COUNT"))){if(i==="DAILY")return`Every day${s}`;if(i==="WEEKLY"){if(r===void 0)return;if(r===J)return`Every weekday${s}`;const l=N.indexOf(r);return l===-1?void 0:`Every week on ${E[l]}${s}`}if(i==="MONTHLY"){const l=r?.match(/^(-?\d)([A-Z]{2})$/);if(!l)return;const o=G.indexOf(Number(l[1])),c=N.indexOf(l[2]);return o===-1||c===-1?void 0:`Every month on the ${K[o]} ${E[c]}${s}`}if(i==="YEARLY"){const l=Number(a.get("BYMONTH")),o=Number(a.get("BYMONTHDAY"));return!l||!o||l>12?void 0:`Every year on ${o} ${Q[l-1]}${s}`}}}function We(e,t){return{title:"",date:e,startTime:"09:00",endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function _e(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endTime:e.allDay?"":e.end.slice(11,16),allDay:e.allDay,calendarId:e.calendarId,location:t.location,guests:"",notes:t.notes,repeat:t.repeat}}function q(e,t){return e.allDay?{start:e.date,end:ee(e.date,1)}:{start:_(e.date,e.startTime,t),end:_(e.date,e.endTime,t)}}function V(e,t){return e.title.trim()===""?"Give the event a title before saving it.":e.date===""?"Pick the day the event is on.":e.calendarId===""?"Pick the calendar to save the event in.":!e.allDay&&(e.startTime===""||e.endTime==="")?"Set a start and an end time, or mark the event all day.":!e.allDay&&e.endTime<=e.startTime?"The end time is not after the start time. Move one of them.":t&&O(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ue(e,t){const a=V(e,!0);if(a!=="")return{ok:!1,problem:a};const{start:s,end:i}=q(e,t);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:s,end:i,allDay:e.allDay,...t===""?{}:{timeZone:t},recurrenceRule:O(e.repeat)??""}}}function Be(e,t,a){const s=t.repeat!==e.repeat,i=V(t,s);if(i!=="")return{ok:!1,problem:i};const r={};if(t.title.trim()!==e.title.trim()&&(r.summary=t.title.trim()),t.location!==e.location&&(r.location=t.location),t.notes!==e.notes&&(r.description=t.notes),t.date!==e.date||t.startTime!==e.startTime||t.endTime!==e.endTime||t.allDay!==e.allDay){const{start:o,end:c}=q(t,a);r.start=o,r.end=c,r.allDay=t.allDay,a!==""&&(r.timeZone=a)}return s&&(r.recurrenceRule=O(t.repeat)??""),{ok:!0,patch:r}}const C=ce(400,404,412),we=new Set(["calendarEventOperationsListCalendarEvents","calendarEventDetailOperationsGetCalendarEvent","calendarFreeBusyOperationsListCalendarFreeBusy"]),D={kind:"written"},k=e=>de(e)===412?{kind:"conflict"}:{kind:"refused",message:me(e)},Se={this:"This",following:"Following",all:"All"};function $e(){const e=oe();return p.useCallback(()=>{e.invalidateQueries({predicate:t=>{const a=t.queryKey[0];if(typeof a!="object"||a===null)return!1;const s=a._id;return typeof s=="string"&&we.has(s)}})},[e])}const B=({scope:e,recurrenceId:t})=>e===void 0||e==="all"?{}:{scope:Se[e],recurrenceId:t};function ze(){const e=$e(),t=T({...re(),meta:C,onSuccess:e}),a=T({...ie(),meta:C,onSuccess:e}),s=T({...le(),meta:C,onSuccess:e}),i=p.useCallback(o=>t.mutateAsync({body:o}).then(()=>D).catch(k),[t]),r=p.useCallback((o,c)=>a.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...B(o)},headers:{"If-Match":o.etag},body:c}).then(()=>D).catch(k),[a]),l=p.useCallback(o=>s.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...B(o)},headers:{"If-Match":o.etag}}).then(()=>D).catch(k),[s]);return p.useMemo(()=>({createEvent:i,updateEvent:r,deleteEvent:l,isWriting:t.isPending||a.isPending||s.isPending}),[i,r,l,t.isPending,a.isPending,s.isPending])}function He({title:e,subtitle:t,calendars:a,draft:s,onChange:i,problem:r,saveLabel:l,isSaving:o,repeatEditable:c=!0,calendarEditable:y=!0,onSave:g,onCancel:b}){return n.jsx(Oe,{title:e,subtitle:t,onClose:b,children:n.jsx(De,{draft:s,onChange:i,calendars:a,layout:"pane",repeatEditable:c,calendarEditable:y,saveLabel:o?"Saving…":l,onSave:g,onCancel:b,header:r===""?void 0:n.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[n.jsx(ue,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),n.jsx("p",{className:"min-w-0 flex-1 break-words text-fg",children:r})]})})})}export{He as C,Ue as c,_e as d,We as e,Be as p,Pe as t,ze as u};
|
|
1
|
+
import{a as ee,j as _}from"./useCalendars-DsY1D6jy.js";import{j as n,f as j,t as d,Y as te,Z as ne,ay as f,r as p,ax as ae,X as se,i as T,ec as re,ed as ie,ee as le,h as oe,s as ce,b2 as de,_ as ue}from"./index-BP-zJpuU.js";import{f as me}from"./ErrorState-C55MONp7.js";import{R as z,c as he}from"./calendar-color-DnvNhMaY.js";const xe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],pe=["January","February","March","April","May","June","July","August","September","October","November","December"],fe=["first","second","third","fourth","last"],A="";function ye(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[a,s,i]=e.split("-").map(Number),r=new Date(Date.UTC(a,s-1,i)),l=xe[r.getUTCDay()],o=fe[Math.min(Math.floor((i-1)/7),4)],c=t===""?"":`, ${t}`,y=r.getUTCDay()>=1&&r.getUTCDay()<=5;return[`Every day${c}`,...y?[`Every weekday${c}`]:[],`Every week on ${l}${c}`,`Every month on the ${o} ${l}${c}`,`Every year on ${i} ${pe[s-1]}${c}`]}const ve="w-full rounded-md border border-line bg-surface-sunken px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus-visible:border-line-strong focus-visible:ring-2 focus-visible:ring-ring/30",u=({draft:e,onChange:t},a,s)=>t({...e,[a]:s});function x({label:e,children:t}){return n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),t]})}function ge({draft:e,onChange:t,layout:a="compact",touch:s}){const i=a==="pane";return n.jsx(f,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:r=>u({draft:e,onChange:t},"title",r.target.value),className:d(i?"text-lg font-medium":"text-md font-medium",i?"h-11":s?"min-h-11":"")})}function H(e){return e.allDay||e.startTime===""||e.endTime===""?!1:e.endTime<e.startTime}function be({draft:e,onChange:t,touch:a}){const s=a?"min-h-11":"",i=H(e),r=p.useId();return n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(f,{type:"date",value:e.date,"aria-label":"Date",onChange:l=>u({draft:e,onChange:t},"date",l.target.value),className:d("w-40",s)}),e.allDay?n.jsx("span",{className:"text-sm text-fg-muted",children:"All day"}):n.jsxs(n.Fragment,{children:[n.jsx(f,{type:"time",value:e.startTime,"aria-label":"Start time",max:e.endTime===""?void 0:e.endTime,"aria-invalid":i,"aria-describedby":i?r:void 0,onChange:l=>u({draft:e,onChange:t},"startTime",l.target.value),className:d("w-28",s,i&&"border-danger/60")}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(f,{type:"time",value:e.endTime,"aria-label":"End time",min:e.startTime===""?void 0:e.startTime,"aria-invalid":i,"aria-describedby":i?r:void 0,onChange:l=>u({draft:e,onChange:t},"endTime",l.target.value),className:d("w-28",s,i&&"border-danger/60")})]}),n.jsxs("label",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx("input",{type:"checkbox",checked:e.allDay,onChange:l=>u({draft:e,onChange:t},"allDay",l.target.checked),className:"size-4 accent-current"}),"All day"]})]}),i&&n.jsxs("p",{id:r,className:"text-xs text-danger",role:"alert",children:["Ends before it starts. Move the end past ",e.startTime,", or start earlier."]})]})}function Ee({draft:e,onChange:t,calendars:a,touch:s}){return n.jsx(Ae,{calendars:a,value:e.calendarId,onChange:i=>u({draft:e,onChange:t},"calendarId",i),touch:s})}function Ne({draft:e,onChange:t,touch:a,repeatEditable:s=!0,onCustom:i}){return s?n.jsx(ke,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:r=>u({draft:e,onChange:t},"repeat",r),onCustom:i,className:a?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(z,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===A?"Does not repeat":e.repeat]})}function je({draft:e,onChange:t,touch:a}){return n.jsx(f,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:s=>u({draft:e,onChange:t},"location",s.target.value),className:a?"min-h-11":""})}function Te({draft:e,onChange:t,touch:a}){return n.jsx(f,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:s=>u({draft:e,onChange:t},"guests",s.target.value),className:a?"min-h-11":""})}function Ce({draft:e,onChange:t,layout:a="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:s=>u({draft:e,onChange:t},"notes",s.target.value),rows:a==="pane"?6:3,className:ve})}function De({draft:e,onChange:t,calendars:a,layout:s="compact",expanded:i=!1,onToggleExpanded:r,onSave:l,onCancel:o,onDelete:c,saveLabel:y="Add",header:g,repeatEditable:b=!0,guestsEditable:I=!1,calendarEditable:M=!0,onCustomRepeat:X,touch:m,className:w}){const v=s==="pane",h={draft:e,onChange:t,layout:s,touch:m},S=n.jsx(ge,{...h}),$=n.jsx(be,{...h}),R=n.jsx(Ee,{...h,calendars:a}),F=n.jsx(Ne,{...h,repeatEditable:b,onCustom:X}),Y=n.jsx(je,{...h}),L=n.jsx(Te,{...h}),P=n.jsx(Ce,{...h}),W=n.jsxs("div",{className:d("flex items-center gap-2",v?"pt-2":"pt-1"),children:[n.jsx(j,{variant:"primary",size:m||v?"md":"sm",onClick:l,disabled:H(e),className:m?"min-h-11 flex-1":"",children:y}),n.jsx(j,{variant:"ghost",size:m||v?"md":"sm",onClick:o,className:m?"min-h-11":"",children:"Cancel"}),c&&n.jsx(j,{variant:"ghost",size:m||v?"md":"sm",onClick:c,className:d("ml-auto text-danger",m&&"min-h-11"),children:"Delete"})]});if(v)return n.jsxs("div",{className:d("flex flex-col gap-5",w),children:[g,n.jsx(x,{label:"Title",children:S}),n.jsx(x,{label:"When",children:$}),M&&n.jsx(x,{label:"Calendar",children:R}),n.jsx(x,{label:"Repeat",children:F}),n.jsx(x,{label:"Location",children:Y}),I&&n.jsx(x,{label:"Guests",children:L}),n.jsx(x,{label:"Notes",children:P}),W]});const Z=r!==void 0&&!i;return n.jsxs("div",{className:d("flex flex-col gap-3",w),children:[g,S,$,M&&R,r&&n.jsxs("button",{type:"button",onClick:r,"aria-expanded":i,className:d("flex items-center gap-1 self-start rounded-sm text-xs font-medium text-fg-muted outline-none hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",m&&"min-h-11"),children:[i?n.jsx(te,{className:"size-3.5"}):n.jsx(ne,{className:"size-3.5"}),i?"Fewer details":"More details"]}),!Z&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[Y,I&&L,F,P]}),W]})}const U="__custom__";function ke({value:e,date:t,startTime:a,onChange:s,onCustom:i,className:r}){const l=ye(t,a),o=e===A||l.includes(e)?l:[e,...l];return n.jsxs(ae,{icon:n.jsx(z,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:c=>{if(c.target.value===U){i?.();return}s(c.target.value)},className:r,children:[n.jsx("option",{value:A,children:"Does not repeat"}),o.map(c=>n.jsx("option",{value:c,children:c},c)),i&&n.jsx("option",{value:U,children:"Custom…"})]})}function Ae({calendars:e,value:t,onChange:a,touch:s}){const i=p.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(r=>{const l=he(r.color),o=r.id===t;return n.jsxs("label",{className:d("inline-flex cursor-pointer items-center gap-1.5 rounded-full border px-2.5 text-xs transition-colors","has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring",s?"min-h-11":"h-7",o?d(l.soft,l.text,l.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:i,value:r.id,checked:o,onChange:()=>a(r.id),className:"sr-only"}),n.jsx("span",{className:d("size-2 rounded-full",l.solid)}),r.name]},r.id)})]})}function Oe({title:e,subtitle:t,onClose:a,children:s,className:i}){return n.jsxs("section",{className:d("flex h-full w-full flex-col bg-surface",i),children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx("h2",{className:"shrink-0 text-xs font-medium text-fg",children:e}),t!==void 0&&t!==""&&n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-muted",children:t}),n.jsx("button",{type:"button","aria-label":"Close editor",onClick:a,className:"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-fg-subtle outline-none hover:bg-surface-sunken hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",children:n.jsx(se,{className:"size-4"})})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-row-inset py-5",children:n.jsx("div",{className:"mx-auto w-full max-w-2xl",children:s})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["SU","MO","TU","WE","TH","FR","SA"],Q=["January","February","March","April","May","June","July","August","September","October","November","December"],K=["first","second","third","fourth","last"],G=[1,2,3,4,-1],J="MO,TU,WE,TH,FR",Ie=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function O(e){const t=Ie(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${J}`;const a=t.match(/^Every week on (\w+)$/);if(a){const r=E.indexOf(a[1]);return r===-1?void 0:`FREQ=WEEKLY;BYDAY=${N[r]}`}const s=t.match(/^Every month on the (\w+) (\w+)$/);if(s){const r=K.indexOf(s[1]),l=E.indexOf(s[2]);return r===-1||l===-1?void 0:`FREQ=MONTHLY;BYDAY=${G[r]}${N[l]}`}const i=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(i){const r=Q.indexOf(i[2]);return r===-1?void 0:`FREQ=YEARLY;BYMONTH=${r+1};BYMONTHDAY=${Number(i[1])}`}}const Me=e=>e===""?"":`, ${e}`;function Pe(e,t){const a=new Map(e.split(";").map(l=>l.split("=")).filter(l=>l.length===2).map(([l,o])=>[l.toUpperCase(),o.toUpperCase()])),s=Me(t),i=a.get("FREQ"),r=a.get("BYDAY");if(!(a.has("INTERVAL")&&a.get("INTERVAL")!=="1")&&!(a.has("UNTIL")||a.has("COUNT"))){if(i==="DAILY")return`Every day${s}`;if(i==="WEEKLY"){if(r===void 0)return;if(r===J)return`Every weekday${s}`;const l=N.indexOf(r);return l===-1?void 0:`Every week on ${E[l]}${s}`}if(i==="MONTHLY"){const l=r?.match(/^(-?\d)([A-Z]{2})$/);if(!l)return;const o=G.indexOf(Number(l[1])),c=N.indexOf(l[2]);return o===-1||c===-1?void 0:`Every month on the ${K[o]} ${E[c]}${s}`}if(i==="YEARLY"){const l=Number(a.get("BYMONTH")),o=Number(a.get("BYMONTHDAY"));return!l||!o||l>12?void 0:`Every year on ${o} ${Q[l-1]}${s}`}}}function We(e,t){return{title:"",date:e,startTime:"09:00",endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function _e(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endTime:e.allDay?"":e.end.slice(11,16),allDay:e.allDay,calendarId:e.calendarId,location:t.location,guests:"",notes:t.notes,repeat:t.repeat}}function q(e,t){return e.allDay?{start:e.date,end:ee(e.date,1)}:{start:_(e.date,e.startTime,t),end:_(e.date,e.endTime,t)}}function V(e,t){return e.title.trim()===""?"Give the event a title before saving it.":e.date===""?"Pick the day the event is on.":e.calendarId===""?"Pick the calendar to save the event in.":!e.allDay&&(e.startTime===""||e.endTime==="")?"Set a start and an end time, or mark the event all day.":!e.allDay&&e.endTime<=e.startTime?"The end time is not after the start time. Move one of them.":t&&O(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ue(e,t){const a=V(e,!0);if(a!=="")return{ok:!1,problem:a};const{start:s,end:i}=q(e,t);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:s,end:i,allDay:e.allDay,...t===""?{}:{timeZone:t},recurrenceRule:O(e.repeat)??""}}}function Be(e,t,a){const s=t.repeat!==e.repeat,i=V(t,s);if(i!=="")return{ok:!1,problem:i};const r={};if(t.title.trim()!==e.title.trim()&&(r.summary=t.title.trim()),t.location!==e.location&&(r.location=t.location),t.notes!==e.notes&&(r.description=t.notes),t.date!==e.date||t.startTime!==e.startTime||t.endTime!==e.endTime||t.allDay!==e.allDay){const{start:o,end:c}=q(t,a);r.start=o,r.end=c,r.allDay=t.allDay,a!==""&&(r.timeZone=a)}return s&&(r.recurrenceRule=O(t.repeat)??""),{ok:!0,patch:r}}const C=ce(400,404,412),we=new Set(["calendarEventOperationsListCalendarEvents","calendarEventDetailOperationsGetCalendarEvent","calendarFreeBusyOperationsListCalendarFreeBusy"]),D={kind:"written"},k=e=>de(e)===412?{kind:"conflict"}:{kind:"refused",message:me(e)},Se={this:"This",following:"Following",all:"All"};function $e(){const e=oe();return p.useCallback(()=>{e.invalidateQueries({predicate:t=>{const a=t.queryKey[0];if(typeof a!="object"||a===null)return!1;const s=a._id;return typeof s=="string"&&we.has(s)}})},[e])}const B=({scope:e,recurrenceId:t})=>e===void 0||e==="all"?{}:{scope:Se[e],recurrenceId:t};function ze(){const e=$e(),t=T({...re(),meta:C,onSuccess:e}),a=T({...ie(),meta:C,onSuccess:e}),s=T({...le(),meta:C,onSuccess:e}),i=p.useCallback(o=>t.mutateAsync({body:o}).then(()=>D).catch(k),[t]),r=p.useCallback((o,c)=>a.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...B(o)},headers:{"If-Match":o.etag},body:c}).then(()=>D).catch(k),[a]),l=p.useCallback(o=>s.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...B(o)},headers:{"If-Match":o.etag}}).then(()=>D).catch(k),[s]);return p.useMemo(()=>({createEvent:i,updateEvent:r,deleteEvent:l,isWriting:t.isPending||a.isPending||s.isPending}),[i,r,l,t.isPending,a.isPending,s.isPending])}function He({title:e,subtitle:t,calendars:a,draft:s,onChange:i,problem:r,saveLabel:l,isSaving:o,repeatEditable:c=!0,calendarEditable:y=!0,onSave:g,onCancel:b}){return n.jsx(Oe,{title:e,subtitle:t,onClose:b,children:n.jsx(De,{draft:s,onChange:i,calendars:a,layout:"pane",repeatEditable:c,calendarEditable:y,saveLabel:o?"Saving…":l,onSave:g,onCancel:b,header:r===""?void 0:n.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[n.jsx(ue,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),n.jsx("p",{className:"min-w-0 flex-1 break-words text-fg",children:r})]})})})}export{He as C,Ue as c,_e as d,We as e,Be as p,Pe as t,ze as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,r as e}from"./index-
|
|
1
|
+
import{j as t,r as e}from"./index-BP-zJpuU.js";const o=e.createContext(void 0),C=({pick:s,children:r})=>t.jsx(o.Provider,{value:s,children:r}),d=()=>e.useContext(o);export{C,d as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,j as n,ak as l,al as o}from"./index-
|
|
1
|
+
import{r,j as n,ak as l,al as o}from"./index-BP-zJpuU.js";const i=r.createContext(null),v=({chrome:s,children:a})=>n.jsx(i.Provider,{value:s,children:a});function C({workspace:s,reading:a,hasOpenEvent:x}){const e=r.useContext(i);if(!e)return n.jsx(l,{});const t={nav:e.nav,skeleton:n.jsx(l,{}),isLoading:e.isLoading,navOpen:e.navOpen,onOpenNav:e.onOpenNav,onCloseNav:e.onCloseNav,listBias:"list"};return e.isSinglePane?n.jsx(o,{...t,list:x?a:s}):n.jsx(o,{...t,list:s,reading:a})}export{v as C,C as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-BP-zJpuU.js";const x=({message:s,icon:t})=>e.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[t&&e.jsx("div",{className:"mb-4 text-fg-muted",children:t}),e.jsx("p",{className:"text-fg-muted",children:s})]});export{x as E};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,_ as r}from"./index-
|
|
1
|
+
import{j as t,_ as r}from"./index-BP-zJpuU.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{e6 as J,r as n,cb as U,C as z,bc as $,cH as X,aY as ee,aZ as te,j as a,aj as se,cO as ae,cP as re}from"./index-BP-zJpuU.js";import{u as oe,p as ne,R as de}from"./useSearchTokenContext-xarPpzlJ.js";import{F as ie,ak as le,G as ce,au as ue,al as ge,b as he,M as me,as as fe,av as Ie,at as pe,q as xe,J as Te,O as V,N as ye,K as ve,d as be,Y as Re,Z as Ce,$ as K,a0 as G,a1 as Se,a2 as we,a3 as je}from"./MailListHeader-Xu9j-5x_.js";import{u as Fe,b as Me,a as Oe}from"./MailViewChrome-DqIfb9Ob.js";import{f as Pe}from"./ErrorState-C55MONp7.js";import{w as ke}from"./wizard-selection-B1bng5Jq.js";import{a as Le}from"./useMessageBodyContent-YdBc9UrK.js";import{g as Ae,h as Ne}from"./search-token-index-DexkoBSr.js";import{u as De}from"./sections-CrUbUSAT.js";const Ee=()=>U({query:{starred:!0,order:"desc"}});function W(){const{data:e,isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:r,isFetchingNextPage:m}=Fe({queryKey:Ee(),queryFn:async({pageParam:T})=>{const{data:v}=await J({query:{starred:!0,order:"desc",continuationToken:T},throwOnError:!0});return v},initialPageParam:void 0,getNextPageParam:T=>T.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(T=>T.items??[]),[e]),isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:r,isFetchingNextPage:m}}const Be=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},qe={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function He({rows:e,verb:t}){const{selectedIds:s,exitSelection:d}=pe(),h=n.useMemo(()=>ke(e,s),[e,s]);return a.jsx(xe,{verb:t,selection:h,selectionRestriction:"spansAccounts",onFinished:d})}function ze({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:d,onDeleteMessages:h}){const{searchQuery:c,resultFolderIndex:r}=z(),m=oe(),I=$(),T=X(),[v,f]=n.useState("all"),[g,F]=n.useState(new Set),D=n.useCallback(o=>{F(u=>{const x=new Set(u);return x.has(o)?x.delete(o):x.add(o),x})},[]),C=n.useCallback(()=>{f("all"),F(new Set)},[]),{threads:M,isLoading:y,isError:O,error:E,refetch:P,fetchNextPage:Q,hasNextPage:p,isFetchingNextPage:S}=W(),{freeText:R,tokens:k}=ne(c.trim().toLowerCase(),m),i=n.useMemo(()=>{const o=Array.from(g).map(u=>qe[u]).filter(u=>u!=null);return Be(M).map(ie).filter(u=>(v==="all"||u.category===v)&&o.every(x=>x(u))&&(!R||le(u,R))&&ce(u,k))},[M,v,g,R,k]),w=n.useCallback((o,u)=>{const x=i.find(_=>_.id===o)?.threadId;x&&t?.({threadId:x,messageId:o},u)},[i,t]),j=n.useCallback(o=>{const u=o.threadId??i.find(x=>x.id===o.id)?.threadId;u&&t?.({threadId:u,messageId:o.id})},[i,t]),B=n.useMemo(()=>ue(),[]),q=n.useMemo(()=>i.map(o=>ge(o,r)),[i,r]),L=n.useMemo(()=>i.filter(o=>!o.isRead).length,[i]),A=y?"loading":O?"error":i.length===0?"empty":"ready",l=n.useCallback(()=>{const o=ee(te());window.open(o,"_blank","noopener,noreferrer")},[]),b=he(),H=a.jsx("div",{className:"flex h-full min-h-0 flex-col",children:a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsx("div",{className:"divide-y divide-line",children:i.map(o=>a.jsx(me,{thread:o,active:o.id===e,onClick:()=>w(o.id)},o.id))}),p?a.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 a.jsx(Me,{title:"Starred",unreadCount:L,preset:B,selectedCategory:v,activeFilters:g,onSelectCategory:f,onToggleFilter:D,onClearFilters:C,searchResults:q,searchLoading:y,onSelectSearchResult:j,searchResultsInBody:!0,children:a.jsxs(fe,{selectedMessageId:e,rows:i,onOpen:w,onDeleteMessages:h,onSelectionVerb:T.start,commandsRef:s,onTriageContextChange:d,children:[a.jsx(Oe,{listTitle:"Starred",sections:[{id:"flagged",threads:i}],flatList:!0,hideHeader:!0,listState:b.searchResults?"ready":A,searchQuery:R?c:void 0,errorMessage:O?Pe(E):void 0,onRetry:()=>P(),onReportError:l,selectedThreadId:e,onSelectThread:w,isDesktop:I,selectionBar:a.jsx(Ie,{title:"Starred"}),listBody:b.searchResults??(A==="ready"?H:void 0)}),a.jsx(He,{rows:i,verb:T.verb})]})})}const Y=n.createContext(null);function N(){const e=n.useContext(Y);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function Qe({thread:e,children:t}){const s=Ae(),d=Ne(),h=De(),{searchInput:c}=z(),r=e?.threadId,m=e?.messageId,{threads:I}=W(),T=n.useMemo(()=>{if(r)return I.find(l=>l.messageId===m)??I.find(l=>l.threadId===r)},[I,r,m]),v=Te(r,m),f=T??v,g=m??f?.messageId,F=n.useMemo(()=>{if(r)return{threadId:r,mailboxId:f?.mailboxId??"",subject:f?.subject,messageId:g,authenticity:f?.authenticity}},[r,f,g]),D=n.useCallback((l,b)=>{s(l,{replace:b?.replace,query:c})},[s,c]),C=n.useCallback(l=>{g&&l.includes(g)&&d()},[g,d]),M=V({thread:f,isOpen:!0,onAfterOptimisticRemove:C}),y=ye(),{deleteMessages:O}=ve({mailboxId:f?.mailboxId??"",messages:I,onAfterOptimisticRemove:C}),{toggleReadFor:E}=be({mailboxId:f?.mailboxId??"",messages:I}),P=y.focusedMessageId,p=n.useMemo(()=>I.find(l=>l.messageId===P),[I,P])??f,S=V({thread:p,isOpen:p?.messageId===g}),R=Le(),k=se(),i=ae(),w=n.useMemo(()=>re(i,r,g),[i,r,g]),j=n.useMemo(()=>{if(p)return l=>i({threadId:p.threadId,messageId:p.messageId,mode:l})},[i,p]),{nextMessageId:B,previousMessageId:q}=Re({context:y,orderedIds:y.orderedIds,selectedMessageId:g,enabled:!R&&!k,hasOpenThread:r!==void 0,onClose:d,handlers:{reply:()=>j?.("reply"),replyAll:()=>j?.("reply-all"),forward:()=>j?.("forward"),delete:()=>{y.listCommandsRef.current?.requestVerb("delete")||S.deleteThread()},toggleStar:S.toggleStar,toggleRead:()=>{y.listCommandsRef.current?.requestVerb("markRead")||p&&E([p.messageId],!p.isRead)},goBrief:()=>h("brief"),goSettings:()=>h("settings")}}),L=n.useCallback(l=>{if(!l)return;const b=I.find(H=>H.messageId===l);return b?{threadId:b.threadId,messageId:l}:void 0},[I]),A={selectedMessageId:g,selectedThread:f,conversation:F,onOpenThread:D,onCloseThread:d,nextThread:L(B),previousThread:L(q),actions:M,onReply:w,triage:y,onDeleteMessages:O,handleDeselectIfRemoved:C};return a.jsx(Y.Provider,{value:A,children:t})}function Z(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:d}=N();return a.jsx(ze,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:d})}function Ve(){const{conversation:e,selectedThread:t,actions:s,onReply:d,handleDeselectIfRemoved:h}=N(),c=!!e,r=we(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(je,{hasThread:c,intelligenceOpen:r.isShowing,canToggleIntelligence:r.canToggle,onToggleIntelligence:r.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("forward"):void 0,onDelete:c?s.deleteThread:void 0,onToggleStar:c?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:c&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:r.open,listOnScreen:!0}):a.jsx(de,{})})]}),a.jsx(G,{isOpen:r.drawerOpen,onClose:r.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:h})]})}function Ke(){const{selectedThread:e,handleDeselectIfRemoved:t}=N(),{onToggleIntelligence:s}=z();return a.jsx(Se,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function Ge(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:d,nextThread:h,previousThread:c,handleDeselectIfRemoved:r}=N(),m=Ce(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(K,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:m.toggle,onSwipeNext:h?()=>d(h):void 0,onSwipePrevious:c?()=>d(c):void 0,mobileIntelligenceOpen:m.isOpen}),a.jsx(G,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:r})]}):a.jsx("div",{className:"h-full",children:a.jsx(Z,{})})}const tt=Object.assign(Qe,{List:Z,Reading:Ve,Intelligence:Ke,Phone:Ge});export{tt as F};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,c as f,d as m,E as N,j as e,bc as E,X as w}from"./index-
|
|
1
|
+
import{r as n,c as f,d as m,E as N,j as e,bc as E,X as w}from"./index-BP-zJpuU.js";import{E as u}from"./ErrorState-C55MONp7.js";import{D as r,C as x,u as k}from"./index-BefrNrbi.js";import{c as p,d as h,e as b}from"./useMessageBodyContent-YdBc9UrK.js";import{C as S}from"./confirm-dialog-BHRJQgZk.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},O=()=>{const t=p(),i=h(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(D=>{D||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),v=n.useCallback(()=>{o(!1)},[]);return N({id:"mobile-compose",open:!0}),e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(S,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:v})]})},q=()=>{const t=p(),i=h(),s=b(),a=E(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(k({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(O,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(w,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{q as F};
|