@remit/web-client-dist 0.0.637 → 0.0.639
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-i-1XzvAd.js → BriefPane-CdiCvSuF.js} +1 -1
- package/assets/{CalendarComposePane-C9LVQJgz.js → CalendarComposePane-C5loQEEz.js} +1 -1
- package/assets/{CalendarComposeSeed-BcquqWwH.js → CalendarComposeSeed-B602bh7Z.js} +1 -1
- package/assets/{CalendarShell-BrNxa6Nn.js → CalendarShell-BP7ONGRL.js} +1 -1
- package/assets/{EmptyState-haDMp8Ar.js → EmptyState-ClLPPGI1.js} +1 -1
- package/assets/{ErrorState-CmLGalXf.js → ErrorState-CX8jPS64.js} +1 -1
- package/assets/{FlaggedPane-B5Ht6vwP.js → FlaggedPane-CD2pUbFg.js} +1 -1
- package/assets/{FullCompose-BDr9-FPu.js → FullCompose-CgTCPbiG.js} +1 -1
- package/assets/MailListHeader-C8fUfLdY.js +7 -0
- package/assets/{MailNav-BQXjAtKO.js → MailNav-CFYn6k9r.js} +1 -1
- package/assets/{MailShell-CBX109fx.js → MailShell-BnAscFqh.js} +1 -1
- package/assets/{MailViewChrome-K588o61G.js → MailViewChrome-BgP0RFzV.js} +1 -1
- package/assets/{MailboxPane-D9zqi3Rr.js → MailboxPane-CG-dcZ55.js} +1 -1
- package/assets/{NavMenuButton-BpGFPcon.js → NavMenuButton-ggAVFYnQ.js} +1 -1
- package/assets/{OnboardingWizard-ThfV-x2z.js → OnboardingWizard-CrpfDnhV.js} +1 -1
- package/assets/{OpenCalendarEvent-BwmHUJaw.js → OpenCalendarEvent-C-aoRB9f.js} +1 -1
- package/assets/{OutboxPane-Bk9nNby0.js → OutboxPane-CM3kwG8i.js} +1 -1
- package/assets/_calendarObjectId-UmX8K95N.js +1 -0
- package/assets/_mailboxId-DRa01xOQ.js +1 -0
- package/assets/_messageId-BMOloRC2.js +1 -0
- package/assets/_messageId-UrdBJAzT.js +1 -0
- package/assets/_messageId-s6b1mjWq.js +1 -0
- package/assets/_outboxMessageId-C8DuFjhs.js +1 -0
- package/assets/_recurrenceId-qf3rXRrq.js +1 -0
- package/assets/_threadId-CkqELJtN.js +1 -0
- package/assets/_threadId-DdjdPPV9.js +1 -0
- package/assets/_threadId-Dehzj5sp.js +1 -0
- package/assets/{_view._date-B1Vb2h-D.js → _view._date-8_v9V7g9.js} +1 -1
- package/assets/{accounts-ChoqdfMH.js → accounts-ezV4xN2p.js} +1 -1
- package/assets/{advanced-BQgtDSX_.js → advanced-CHdzXVPf.js} +1 -1
- package/assets/{appearance-CiLCRkQD.js → appearance-Dzm_Xcwd.js} +1 -1
- package/assets/{attendee-row-DMe42k7H.js → attendee-row-DaC0cWu0.js} +1 -1
- package/assets/{avatar-OJww5F3k.js → avatar-CMrR_WCW.js} +1 -1
- package/assets/{bell-off-JyhxJiJh.js → bell-off-CjFQsmU0.js} +1 -1
- package/assets/{bottom-sheet-BXHtkHEQ.js → bottom-sheet-lVnXVWKS.js} +1 -1
- package/assets/{brief-Ct3P0mmd.js → brief-B2hZLxBG.js} +1 -1
- package/assets/brief-CbnxY4As.js +1 -0
- package/assets/{browser-ponyfill-BZhAFCLP.js → browser-ponyfill-_Ty7DcLK.js} +1 -1
- package/assets/{bug-BXAS92HM.js → bug-ysY2Lcys.js} +1 -1
- package/assets/{calendar-CIrHuuJU.js → calendar-CozJzlZZ.js} +1 -1
- package/assets/{calendar-clash-strip-Do_J9SgJ.js → calendar-clash-strip-DH-rkJMi.js} +1 -1
- package/assets/{calendar-format-CwRw4RDu.js → calendar-format-CHntutZg.js} +1 -1
- package/assets/{calendar-report-DMvb9Sqg.js → calendar-report-DAUzkHX3.js} +1 -1
- package/assets/calendar-suggestion-CaACTNVX.js +1 -0
- package/assets/{calendars-FdgmByI_.js → calendars-CYKvOlYj.js} +1 -1
- package/assets/{card-Cj-QGmCF.js → card-ChUQkNyW.js} +1 -1
- package/assets/{checkbox-SlSTA73y.js → checkbox-lv4ht1p0.js} +1 -1
- package/assets/chevron-left-BnXYRBLM.js +1 -0
- package/assets/{circle-check-Bp2lyV0E.js → circle-check-CmZH70G9.js} +1 -1
- package/assets/{circle-check-big-Vq2QoGgP.js → circle-check-big-DsPxeo1f.js} +1 -1
- package/assets/{circle-help-gen-dtEL.js → circle-help-CxlWBIxf.js} +1 -1
- package/assets/{clock-BBpIdhnS.js → clock-BQFlXobK.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BFJxAVoN.js +1 -0
- package/assets/compose._-_outboxMessageId_-Bth4jzBG.js +1 -0
- package/assets/compose._-_outboxMessageId_-C8FGmbP_.js +1 -0
- package/assets/compose._-_outboxMessageId_-Kpi3RLY9.js +1 -0
- package/assets/{config-import-DwGVp5nY.js → config-import-CO5AR73r.js} +1 -1
- package/assets/{confirm-dialog-DqUyGPYb.js → confirm-dialog-DM1V3tLO.js} +1 -1
- package/assets/{copy-BFnJYo3G.js → copy-D9w0yOJZ.js} +1 -1
- package/assets/{credential-steps-BYrGAoU5.js → credential-steps-8oD-bgsd.js} +1 -1
- package/assets/{download-CExFNT5m.js → download-D3c-jAvE.js} +1 -1
- package/assets/{file-json-ChcZbyWI.js → file-json-DgAW6fCg.js} +1 -1
- package/assets/{filters-DSI3RcDp.js → filters-COsyZM0t.js} +1 -1
- package/assets/flagged-DKGPYmqT.js +1 -0
- package/assets/{flagged-BTuHoVag.js → flagged-PvSBYoZf.js} +1 -1
- package/assets/{folders-B3UvbiMG.js → folders-9bvPOa--.js} +1 -1
- package/assets/{help-copy-BpnCsJKm.js → help-copy-Bfcrl0wG.js} +1 -1
- package/assets/{import-BtjgDhbI.js → import-CZn1xOPk.js} +1 -1
- package/assets/index-BMOloRC2.js +1 -0
- package/assets/{index-CEJMvVKP.js → index-BNf6kiaX.js} +7 -7
- package/assets/index-BT8lpC7o.js +1 -0
- package/assets/index-B_EiAJWG.js +1 -0
- package/assets/index-C3ge01DK.js +1 -0
- package/assets/{index-C44gqDSI.js → index-COLU2y0-.js} +1 -1
- package/assets/index-Ca6ZI10M.js +1 -0
- package/assets/index-CpzmW4H6.js +1 -0
- package/assets/index-DLln0xg-.js +1 -0
- package/assets/{index-BgsHJXrW.js → index-J89guRVU.js} +4 -4
- package/assets/index-Ncy8w6TK.js +1 -0
- package/assets/index-UrdBJAzT.js +1 -0
- package/assets/{kbd-o1nflZRu.js → kbd-CKw25IK5.js} +1 -1
- package/assets/{labels-DHP_zjK4.js → labels-CfHv29D2.js} +1 -1
- package/assets/{mail-Szc-p5g3.js → mail-5fD0jufv.js} +1 -1
- package/assets/{mail-xjJzF7Ec.js → mail-Daw23XZE.js} +1 -1
- package/assets/{menu-B7ZT3hES.js → menu-lOydIsUw.js} +1 -1
- package/assets/minus-oqpCotLr.js +1 -0
- package/assets/{new-DHxq4krb.js → new-Bx8aW3eQ.js} +1 -1
- package/assets/onboarding-CeRgXqq1.js +1 -0
- package/assets/{onboarding-completion-DIPuDK0D.js → onboarding-completion-Dyuup5X9.js} +1 -1
- package/assets/outbox-ughpF9_W.js +1 -0
- package/assets/{pane-header-BCtLNcGD.js → pane-header-CKSUzAfS.js} +1 -1
- package/assets/{pencil-BDdwSTNF.js → pencil-mpUWk0sq.js} +1 -1
- package/assets/{popover-menu-DH1B01dU.js → popover-menu-Cl-N1YPe.js} +1 -1
- package/assets/{refresh-cw-DmMLGyvw.js → refresh-cw-D2y2CKsF.js} +1 -1
- package/assets/{rich-text-DEvS7fTK.js → rich-text-D3O6tZw_.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-BKBVX-2v.js → rich-text-spellcheck-worker-provider-DrY6X3cn.js} +1 -1
- package/assets/{rotate-ccw-BzTXXy6H.js → rotate-ccw-86rVy6Oh.js} +1 -1
- package/assets/{roving-focus-D8ieiood.js → roving-focus-CzTCkI7v.js} +1 -1
- package/assets/{row-actions-d4_6b5VY.js → row-actions-C0iitOlE.js} +1 -1
- package/assets/{search-mirror-wk9khC5m.js → search-mirror-BlS_Ifso.js} +1 -1
- package/assets/{search-token-index-CrVbBlms.js → search-token-index-BXCXhECA.js} +1 -1
- package/assets/{sections-CgVZgQC0.js → sections-CmVNNIn5.js} +1 -1
- package/assets/{senders-mxAKZ_FE.js → senders-D9KOa6tO.js} +1 -1
- package/assets/settings-CGcDDxqi.js +1 -0
- package/assets/{settings-screen-Bsl0UC9v.js → settings-screen-CPKUaFTz.js} +1 -1
- package/assets/{shield-check-CUjnaEJM.js → shield-check-Bz65Alvp.js} +1 -1
- package/assets/{suggested-vips-BENsVw__.js → suggested-vips-jAg1lHBx.js} +1 -1
- package/assets/{undo-2-QAbYZsVP.js → undo-2-C5A6ikAQ.js} +1 -1
- package/assets/{useCalendarData-J9M1uPwl.js → useCalendarData-Di1HMX87.js} +1 -1
- package/assets/{useCalendarWrites-CMxbq1Ns.js → useCalendarWrites-B_iDGi_d.js} +1 -1
- package/assets/{useCalendars-DEAe0d5P.js → useCalendars-Du8oLBQy.js} +1 -1
- package/assets/{useDebouncedValue-CypIbLxd.js → useDebouncedValue-Cyjl5fcM.js} +1 -1
- package/assets/{useFilters-Cv87jtMp.js → useFilters-Dn74lJWT.js} +1 -1
- package/assets/{useLabels-B74FIyrh.js → useLabels-Bhad46sq.js} +1 -1
- package/assets/{useLayoutTier-BnLQZtW5.js → useLayoutTier-I-ZeE96x.js} +1 -1
- package/assets/{useMessageBodyContent-QMy924K4.js → useMessageBodyContent-Bl5Y6AAH.js} +1 -1
- package/assets/{useQueries-DBc1JIwH.js → useQueries-Ch9XYsKm.js} +1 -1
- package/assets/{useRefreshControl-DNtJwW7i.js → useRefreshControl-sKR2_udi.js} +1 -1
- package/assets/{useResultFolderIndex-BeXuylki.js → useResultFolderIndex-CizpN02R.js} +1 -1
- package/assets/{useSearchTokenContext-_mPqHIqE.js → useSearchTokenContext-Dl9jDzQw.js} +1 -1
- package/assets/{useSemanticSearch-JUvleuzy.js → useSemanticSearch-NkagUfNs.js} +1 -1
- package/assets/{useSignature-_lI__r_z.js → useSignature-z9_OAiTD.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/MailListHeader-D8dncvLk.js +0 -7
- package/assets/_calendarObjectId-D9_7PYZI.js +0 -1
- package/assets/_mailboxId-BuhgZ4EU.js +0 -1
- package/assets/_messageId-BoJ0kGms.js +0 -1
- package/assets/_messageId-BtCpeBln.js +0 -1
- package/assets/_messageId-sDYnK_ny.js +0 -1
- package/assets/_outboxMessageId-DnZaclF5.js +0 -1
- package/assets/_recurrenceId-75JuQikX.js +0 -1
- package/assets/_threadId-DQ7XFMjK.js +0 -1
- package/assets/_threadId-Dj_Z5hNe.js +0 -1
- package/assets/_threadId-E1Ji1VBb.js +0 -1
- package/assets/brief-3daIc_U_.js +0 -1
- package/assets/calendar-suggestion-f9IkXHda.js +0 -1
- package/assets/chevron-left-CyT8rYCK.js +0 -1
- package/assets/compose._-_outboxMessageId_-Bx07nXWx.js +0 -1
- package/assets/compose._-_outboxMessageId_-BxSDuFqr.js +0 -1
- package/assets/compose._-_outboxMessageId_-Dskdpi6-.js +0 -1
- package/assets/compose._-_outboxMessageId_-f_gWZERZ.js +0 -1
- package/assets/flagged-BZt2fsuR.js +0 -1
- package/assets/index-BS7Corg7.js +0 -1
- package/assets/index-BbW12rrk.js +0 -1
- package/assets/index-BtCpeBln.js +0 -1
- package/assets/index-C1YxhEeX.js +0 -1
- package/assets/index-CB6Q9Qtt.js +0 -1
- package/assets/index-CTeWdcpn.js +0 -1
- package/assets/index-CWfcTzfZ.js +0 -1
- package/assets/index-Dt3c3MCO.js +0 -1
- package/assets/index-sDYnK_ny.js +0 -1
- package/assets/minus-BD2hQqDO.js +0 -1
- package/assets/onboarding-CdkmnzTh.js +0 -1
- package/assets/outbox-BeQ7n9ml.js +0 -1
- package/assets/settings-Gkdms0mB.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as m}from"./index-
|
|
1
|
+
import{r as m}from"./index-J89guRVU.js";import{u as C,d as g,i as v,t as I,U as p,e as D,r as E}from"./useCalendars-Du8oLBQy.js";import{v as y,H as L}from"./calendar-format-CHntutZg.js";function Z(a,n){const t=a.map(e=>e.id);if(n.length===0)return t;const s=new Set(n),o=t.filter(e=>s.has(e));return o.length===0?t:o}function A(a){const{calendars:n,colorByCalendarId:t,timeZoneByCalendarId:s,isLoading:o}=C(),e=Z(n,a),r=e.length===n.length?[]:e,c=a.length===0||n.length>0;return{calendars:n,colorByCalendarId:t,timeZoneByCalendarId:s,shown:e,narrowed:r,resolved:c,isLoading:o}}function B(a,n,t){const s=t.join(",");return m.useMemo(()=>{const o=g(),e=new Set(s===""?[]:s.split(","));return a.filter(r=>v(r)&&e.has(r.calendarId)).map(r=>I(r,n[r.calendarId]??p,o))},[a,n,s])}function b({view:a,date:n,calendarIds:t,enabled:s=!0}){const{calendars:o,colorByCalendarId:e,timeZoneByCalendarId:r,shown:c,narrowed:l,resolved:u,isLoading:w}=A(t),h=D(a,n),i=s&&u,d=y({...h,calendarIds:l,enabled:i});L(a,n,l,i);const f=B(d.instances,r,c);return{calendars:o,events:f,colorByCalendarId:e,timeZoneByCalendarId:r,isLoading:w||d.isLoading,error:d.error,retry:d.refetch,instanceOf:E}}export{B as a,b,A as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as C,r,i as c,eR as h,eS as f,eT as y,s as g,b5 as m}from"./index-
|
|
1
|
+
import{h as C,r,i as c,eR as h,eS as f,eT as y,s as g,b5 as m}from"./index-J89guRVU.js";import{f as I}from"./ErrorState-CX8jPS64.js";const o=g(400,404,412),b=new Set(["calendarEventOperationsListCalendarEvents","calendarEventDetailOperationsGetCalendarEvent","calendarFreeBusyOperationsListCalendarFreeBusy"]),d={kind:"written"},i=e=>m(e)===412?{kind:"conflict"}:{kind:"refused",message:I(e)},O={this:"This",following:"Following",all:"All"};function S(){const e=C();return r.useCallback(()=>{e.invalidateQueries({predicate:t=>{const n=t.queryKey[0];if(typeof n!="object"||n===null)return!1;const s=n._id;return typeof s=="string"&&b.has(s)}})},[e])}const p=({scope:e,recurrenceId:t})=>e===void 0?{}:{scope:O[e],recurrenceId:t};function k(){const e=S(),t=c({...h(),meta:o,onSuccess:e}),n=c({...f(),meta:o,onSuccess:e}),s=c({...y(),meta:o,onSuccess:e}),l=r.useCallback(a=>t.mutateAsync({body:a}).then(()=>d).catch(i),[t]),u=r.useCallback((a,v)=>n.mutateAsync({path:{calendarObjectId:a.calendarObjectId},query:{calendarId:a.calendarId,...p(a)},headers:{"If-Match":a.etag},body:v}).then(()=>d).catch(i),[n]),E=r.useCallback(a=>s.mutateAsync({path:{calendarObjectId:a.calendarObjectId},query:{calendarId:a.calendarId,...p(a)},headers:{"If-Match":a.etag}}).then(()=>d).catch(i),[s]);return r.useMemo(()=>({createEvent:l,updateEvent:u,deleteEvent:E,isWriting:t.isPending||n.isPending||s.isPending}),[l,u,E,t.isPending,n.isPending,s.isPending])}export{k as a,S as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as g,ez as T,r as h}from"./index-
|
|
1
|
+
import{c as g,ez as T,r as h}from"./index-J89guRVU.js";const o=e=>String(e).padStart(2,"0"),y=e=>`${e.getUTCFullYear()}-${o(e.getUTCMonth()+1)}-${o(e.getUTCDate())}`,f=e=>{const t=e<0?"-":"+",r=Math.abs(e);return`${t}${o(Math.floor(r/60))}:${o(r%60)}`};function $(e,t){const r=new Date(`${e}T${t}:00`);return`${e}T${t}:00${f(-r.getTimezoneOffset())}`}const i=new Map;function N(e){if(i.has(e))return i.get(e);let t;try{t=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{t=void 0}return i.set(e,t),t}function d(e,t){const r=N(e);if(!r)return Number.NaN;const n=r.formatToParts(new Date(t)),a=O=>Number(n.find(b=>b.type===O)?.value),s=a("hour")%24;return(Date.UTC(a("year"),a("month")-1,a("day"),s,a("minute"),a("second"))-t)/6e4}function L(e,t,r){if(r==="")return`${e}T${t}:00+00:00`;const n=Date.parse(`${e}T${t}:00Z`),a=d(r,n);if(Number.isNaN(a))return $(e,t);const s=d(r,n-a*6e4);return`${e}T${t}:00${f(Number.isNaN(s)?a:s)}`}function p(e,t){const r=Date.parse(e),n=d(t,r),a=Number.isNaN(n)?-new Date(r).getTimezoneOffset():n,s=new Date(r+a*6e4);return`${y(s)}T${o(s.getUTCHours())}:${o(s.getUTCMinutes())}:${o(s.getUTCSeconds())}${f(a)}`}const c=e=>$(e,"00:00");function u(e,t){const[r,n,a]=e.split("-").map(Number);return y(new Date(Date.UTC(r,n-1,a+t)))}function U(e){const[t,r,n]=e.split("-").map(Number),a=new Date(Date.UTC(t,r-1,n));return u(e,-((a.getUTCDay()+6)%7))}function E(e,t){const[r,n]=t.split("-").map(Number);if(e==="year")return[`${r}-01-01`,`${r+1}-01-01`];if(e==="month"){const s=`${r}-${o(n)}-01`,m=n===12?`${r+1}-01-01`:`${r}-${o(n+1)}-01`;return[s,m]}if(e==="day")return[t,u(t,1)];const a=U(t);return[a,u(a,7)]}function M(e,t){const[r,n]=E(e,t);return{from:c(r),to:c(n)}}function F(e,t){return{from:c(e),to:c(u(e,t))}}const R=()=>Intl.DateTimeFormat().resolvedOptions().timeZone,C="";function k(e){if(e!==C)return e;const t=R();return Intl.supportedValuesOf("timeZone").includes(t)?t:C}const v={Cal1:"cal-1",Cal2:"cal-2",Cal3:"cal-3",Cal4:"cal-4",Cal5:"cal-5",Cal6:"cal-6"},w={Local:"local",Explicit:"explicit",Ambiguous:"ambiguous"},D="#";function z(e,t){return t===""?e:`${e}${D}${t}`}function l(e){const t=e.indexOf(D);return t===-1?{calendarObjectId:e,recurrenceId:""}:{calendarObjectId:e.slice(0,t),recurrenceId:e.slice(t+1)}}const I=(e,t)=>{const r=[...e].sort((n,a)=>Date.parse(n.start)-Date.parse(a.start));return r.find(n=>Date.parse(n.end)>Date.parse(t))??r[0]};function B(e,t,r){const n=I(e.filter(a=>{const s=l(a.id);return s.calendarObjectId===t&&s.recurrenceId!==""}),r);return n?l(n.id):void 0}function P(e,t,r,n){const a=I(e.filter(s=>s.calendarObjectId===t&&j(s)).map(s=>x(s,"",n)),r);if(a)return{...l(a.id),calendarId:a.calendarId,date:a.start.slice(0,10)}}function S(e){return{id:e.calendarId,accountId:e.accountConfigId,accountLabel:"",name:e.displayName,color:v[e.color]??"cal-1",...e.source==="Subscribed"?{readOnly:!0,sync:e.subscriptionEnabled?"live":"paused",syncError:e.subscriptionError}:{}}}function x(e,t,r){return{id:z(e.calendarObjectId,e.recurrenceId),calendarId:e.calendarId,title:e.summary,start:e.allDay?e.start.slice(0,10):p(e.start,r),end:e.allDay?e.end.slice(0,10):p(e.end,r),allDay:e.allDay,location:"",notes:"",attendees:[],myRsvp:"accepted",threadId:"",threadSubject:"",timeZone:t,zoneCertainty:w[e.zoneCertainty]??"explicit",recurrenceRule:e.hasRecurrence?"Repeats":"",seriesId:e.hasRecurrence?e.icalUid:"",seriesException:!1,status:e.status==="Tentative"?"tentative":"confirmed"}}const j=e=>e.status!=="Cancelled";function W(){const{data:e,isLoading:t,error:r}=g(T());return h.useMemo(()=>{const n=e?.items??[],a=n.map(S);return{calendars:a,collections:n,colorByCalendarId:Object.fromEntries(a.map(s=>[s.id,s.color])),timeZoneByCalendarId:Object.fromEntries(n.map(s=>[s.calendarId,s.timezone])),defaultCalendarId:(n.find(s=>s.source==="Default")??n[0])?.calendarId??"",isLoading:t,error:r??null}},[e,t,r])}export{C as U,F as a,u as b,z as c,R as d,M as e,k as f,L as g,p as h,j as i,P as j,l as r,B as s,x as t,W as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o}from"./index-
|
|
1
|
+
import{r as o}from"./index-J89guRVU.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,i as b,eE as x,c as M,eF as D,d$ as I,eG as P,h as v,eH as N,eI as L,eJ as T,eK as w,bm as z}from"./index-
|
|
1
|
+
import{r as m,i as b,eE as x,c as M,eF as D,d$ as I,eG as P,h as v,eH as N,eI as L,eJ as T,eK as w,bm as z}from"./index-J89guRVU.js";const G=(e,t)=>{if(e.state==="Expired")return"Expired";const r=e.state==="Disabled"?"Disabled":"Active";if(e.scope!=="Temporary"||!e.expiresAt)return r;const s=Date.parse(e.expiresAt);return Number.isNaN(s)?r:s<=t?"Expired":r},y={UserDisabled:"Turned off. Turn it on to run it on new mail again.",AwaitingFolder:"Off until its folder exists on the mail server. It turns on by itself once the folder is created.",FolderCreateFailed:"Off: the mail server refused to create its folder. Pick another folder in the rule, then turn it on.",FolderMissing:"Off: the folder it moves mail into no longer exists. Pick another folder in the rule, then turn it on."},V=e=>e.disabledReason==="None"?void 0:(e.disabledReason==="AwaitingFolder"||e.disabledReason==="FolderCreateFailed")&&e.actionMailboxId!=="None"?y.UserDisabled:y[e.disabledReason],Y=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"})},E=(e,t=new Date)=>{if(!e)return;const r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!r)return;const[,s,n,i]=r,a=new Date(Number(s),Number(n)-1,Number(i),23,59,59,0);if(Number.isNaN(a.getTime()))return;const o=-t.getTimezoneOffset(),d=o>=0?"+":"-",u=Math.abs(o),c=String(Math.floor(u/60)).padStart(2,"0"),f=String(u%60).padStart(2,"0"),l=p=>String(p).padStart(2,"0");return`${a.getFullYear()}-${l(a.getMonth()+1)}-${l(a.getDate())}T${l(a.getHours())}:${l(a.getMinutes())}:${l(a.getSeconds())}${d}${c}:${f}`},h="None",X=e=>!e.literalClauses.some(t=>t.field==="HasWords"),F=e=>({...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h}),Z=({mode:e,ruleScope:t})=>t==="standing"?"standing":t==="until"?"temporary":e==="selected"?"just-these":"all-like-these",ee=({mode:e,ruleScope:t,anchorMessageId:r,clauses:s,matchOperator:n,moveMailboxId:i,until:a})=>({...e==="similar"&&r?{anchorMessageId:r}:{},matchOperator:n==="all"?"And":"Or",literalClauses:s.map(o=>({field:o.field,value:o.value})),moveMailboxId:i,expiresAt:t==="until"?E(a??""):void 0}),C=(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}:{}}),R=new Set(["Complete","Failed"]),O=e=>e!==void 0&&R.has(e),k=1e3,_=15e3,J=e=>{const t=Math.max(0,e),r=k*2**t;return Math.min(r,_)},$=(e,t,r)=>{if(e)return{kind:r?"restartFailed":"startFailed",error:e};if(t)return{kind:"statusUnreadable",error:t}},te=e=>{const[t,r]=m.useState(),s=b({...x(),onSuccess:g=>r(g.organizeJobId)}),{mutate:n}=s,i=M({...D({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:g=>{const A=g.state.data?.state;return O(A)?!1:J(g.state.dataUpdateCount)}}),a=m.useCallback(g=>{e&&n({path:{accountId:e},body:F(g)})},[e,n]),{refetch:o}=i,d=m.useCallback(()=>{o()},[o]),u=i.data,c=s.isPending?void 0:u,f=c?.state??s.data?.state,l=O(c?.state),p={state:f,matchedCount:c?.matchedCount??0,appliedCount:c?.appliedCount??0,failedCount:c?.failedCount??0,errorMessage:c?.errorMessage??""};return{start:a,refreshStatus:d,progress:p,isStarting:s.isPending,isRunning:!!t&&!l,isDone:l,failure:$(s.error,i.error,!!u)}},re=["From","Subject","HasWords","ListId","FromDomain"],U=e=>{const t=e.trim(),r=t.match(/<([^>]+)>/);return(r?r[1]:t).trim().toLowerCase()},se=(e,t)=>e==="ListId"?U(t):t.trim(),q=e=>e==="all"?"And":"Or",Q=(e,t)=>{const r=e.widen!==void 0&&!e.widen.inactive,s=e.clauses.map(n=>({field:n.field,value:n.value}));return{...r&&t?{anchorMessageId:t}:{},matchOperator:q(e.matchOperator),literalClauses:s}},H=e=>e.anchorMessageId!==void 0||!e.literalClauses.some(t=>t.field==="HasWords"),K=e=>JSON.stringify({anchor:e.anchorMessageId??null,operator:e.matchOperator,clauses:e.literalClauses.map(t=>`${t.field} ${t.value}`)}),ae=(e,t)=>{const r=Q(e,t);return{...r.anchorMessageId?{anchorMessageId:r.anchorMessageId}:{},matchOperator:r.matchOperator,literalClauses:r.literalClauses,moveMailboxId:e.moveMailboxId,labelId:e.labelId,expiresAt:e.scope==="until"?E(e.until??""):void 0}},j=(e,t)=>{if(e.error!==void 0&&e.errorSignature===t)return{status:"error",reason:e.error};if(e.count===void 0)return{status:"loading"};const r=e.indexEmpty===!0?{indexEmpty:!0}:{};return e.previewedSignature===t?{status:"ready",count:e.count,...r}:{status:"ready",count:e.count,stale:!0,...r}},B=350,ne=(e,t,r)=>{const s=b(I()),{mutateAsync:n}=s,i=K(t),[a,o]=m.useState(()=>({})),d=m.useRef(t);d.current=t;const u=m.useRef(i),c=H(t);return m.useEffect(()=>{if(!e||!c||i===a.previewedSignature||i===a.errorSignature)return;const f=setTimeout(()=>{const l=i;u.current=l,n({path:{accountId:e},body:F({...d.current})}).then(p=>{u.current===l&&o({count:p.matchedCount,matchedIds:p.messageIds,indexEmpty:p.semanticIndexEmpty===!0,previewedSignature:l})}).catch(p=>{u.current===l&&o(g=>({...g,error:p instanceof Error?p.message:"Couldn't count matches.",errorSignature:l}))})},B);return()=>clearTimeout(f)},[e,c,i,a.previewedSignature,a.errorSignature,n]),c?{count:j(a,i),matchedIds:a.previewedSignature===i?a.matchedIds??[]:[]}:{count:{status:"error",reason:P},matchedIds:[]}},S=e=>L({path:{accountId:e}}),ie=e=>{const t=M({...T({path:{accountId:e??""}}),enabled:!!e});return{filters:t.data?.items??[],isPending:t.isPending,isError:t.isError,error:t.error,refetch:t.refetch}},oe=e=>{const t=v(),r=b({...N(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s,mutateAsync:n}=r,i=m.useCallback((o,d,u)=>{e&&s({path:{accountId:e},body:C(o,d,u)})},[e,s]),a=m.useCallback(async(o,d,u)=>e?n({path:{accountId:e},body:C(o,d,u)}).then(()=>!0,()=>!1):!1,[e,n]);return{createFilter:i,createFilterAsync:a,isPending:r.isPending,isSuccess:r.isSuccess,isError:r.isError,error:r.error,reset:r.reset}},le=e=>{const t=v(),r=b({...w(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s}=r;return{deleteFilter:m.useCallback(i=>{e&&s({path:{accountId:e,filterId:i}})},[e,s]),isPending:r.isPending,deletingFilterId:r.isPending?r.variables?.path.filterId:void 0}},ue=e=>{const t=v(),r=b({...z(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s,variables:n}=r,i=m.useCallback((o,d)=>{e&&s({path:{accountId:e,filterId:o},body:{state:d?"Active":"Disabled"}})},[e,s]),a=m.useCallback(()=>{n&&s(n)},[s,n]);return{toggleFilter:i,retry:a,togglingFilterId:r.isPending?n?.path.filterId:void 0,isError:r.isError,error:r.error,enabling:n?.body?.state==="Active"}};export{h as N,re as S,te as a,S as b,ae as c,V as d,Y as e,G as f,ie as g,le as h,ue as i,F as j,oe as k,ee as l,X as m,se as n,Z as o,E as p,Q as r,ne as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as p,eo as L,h as n,i as l,ep as d,r as o,eq as y,er as c,es as g}from"./index-
|
|
1
|
+
import{c as p,eo as L,h as n,i as l,ep as d,r as o,eq as y,er as c,es as g}from"./index-J89guRVU.js";const u=e=>y({path:{accountId:e}}),f=e=>{const r=p({...L({path:{accountId:e??""}}),enabled:!!e});return{labels:r.data?.items??[],isPending:r.isPending,isError:r.isError,error:r.error,refetch:r.refetch}},h=e=>{const r=n(),t=l({...d(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutateAsync:s}=t;return{createLabel:o.useCallback((a,i="Default")=>e?s({path:{accountId:e},body:{name:a,color:i}}):Promise.reject(new Error("No account")),[e,s]),isPending:t.isPending,isError:t.isError,error:t.error,reset:t.reset}},m=e=>{const r=n(),t=l({...c(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutate:s}=t;return{updateLabel:o.useCallback((a,i)=>{e&&s({path:{accountId:e,labelId:a},body:i})},[e,s]),isPending:t.isPending,updatingLabelId:t.isPending?t.variables?.path.labelId:void 0}},C=e=>{const r=n(),t=l({...g(),onSuccess:()=>{e&&r.invalidateQueries({queryKey:u(e)})}}),{mutate:s}=t;return{deleteLabel:o.useCallback(a=>{e&&s({path:{accountId:e,labelId:a}})},[e,s]),isPending:t.isPending,deletingLabelId:t.isPending?t.variables?.path.labelId:void 0}};export{f as a,m as b,C as c,h as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c0 as s,c1 as e}from"./index-
|
|
1
|
+
import{c0 as s,c1 as e}from"./index-J89guRVU.js";const i=768,r=t=>t!=="desktop",a=()=>{const t=s(`(min-width: ${i}px)`);return s(e)?"desktop":t?"tablet":"phone"};export{r as i,a as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as c,u as S,cm as O,cn as N,a9 as h,co as B,q as P,ab as U,h as $,c as D,cM as F,cN as v}from"./index-
|
|
1
|
+
import{r as c,u as S,cm as O,cn as N,a9 as h,co as B,q as P,ab as U,h as $,c as D,cM as F,cN as v}from"./index-J89guRVU.js";const R="/mail/brief/compose/{-$outboxMessageId}",w="/mail/flagged/compose/{-$outboxMessageId}",E="/mail/outbox/compose/{-$outboxMessageId}",k="/mail/$mailboxId/compose/{-$outboxMessageId}";function T(){const e=h({from:R,shouldThrow:!1}),t=h({from:w,shouldThrow:!1}),r=h({from:E,shouldThrow:!1}),s=h({from:k,shouldThrow:!1});return e??t??r??s}function Y(){return T()!==void 0}function j(){return T()?.outboxMessageId}function L(e,t,r){return e==="flagged"?{to:w,params:{outboxMessageId:r}}:e==="outbox"?{to:E,params:{outboxMessageId:r}}:e==="mailbox"&&t?{to:k,params:{mailboxId:t,outboxMessageId:r}}:{to:R,params:{outboxMessageId:r}}}function g(){const e=S(),t=O(),{list:r,mailboxId:s}=N();return c.useCallback((n,o)=>{e({...L(r,s,n),search:a=>a,hash:o?.keepPanels?!0:t,replace:o?.replace??!1})},[e,t,r,s])}function J(){const e=g();return c.useCallback(()=>e(void 0),[e])}function V(){const e=g();return c.useCallback(t=>e(t),[e])}function Z(){const e=g();return c.useCallback(t=>e(t,{replace:!0,keepPanels:!0}),[e])}function ee(){return B()}const _=e=>{const t=e.filter(n=>!n.isMultipart&&n.disposition!=="attachment"&&n.mediaType==="TEXT"&&n.contentUrl.length>0),r=t.find(n=>n.mediaSubtype.toUpperCase()==="HTML");if(r)return{kind:"html",contentUrl:r.contentUrl};const s=t.find(n=>n.mediaSubtype.toUpperCase()==="PLAIN");return s?{kind:"text",contentUrl:s.contentUrl}:null},b={all:["messages"],detail:e=>[...b.all,"detail",e],body:e=>[...b.detail(e),"body"]};class f extends Error{reason;status;retryAfterSeconds;constructor(t,r,s,n){super(r),this.name="BodyFetchError",this.reason=t,this.status=s,this.retryAfterSeconds=n}}const q=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},K=8,Q="x-remit-403-reason",I=(e,t)=>{const r=t?.trim()??"";return e===401?"auth":e===403?r.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},X=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,G=(e,t)=>{const r=(t??"").toLowerCase();return!!(e==="text"&&r.startsWith("text/html"))},H=async(e,t,r=async()=>null)=>{const s={},n=await r();n&&(s.Authorization=`Bearer ${n}`);const o=await v(e,{headers:s});if(o.status===202)throw new f("not-ready","Message body is still syncing",202,q(o.headers.get("Retry-After")));if(!o.ok){const l=o.headers.get(Q),y=I(o.status,l);throw new f(y,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const a=o.headers.get("content-type");if(G(t,a))throw new f("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${a}`);const m=await o.text();if(X(m,a))throw new f("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return m},W=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),te=({messageId:e,bodyParts:t,enabled:r=!0})=>{const s=t?_(t):null,n=P(),{getToken:o}=U(),a=c.useRef(null),m=$(),l=c.useRef(!1),y=c.useRef(null),C=e&&s?`${e}:${s.contentUrl}`:null;y.current!==C&&(y.current=C,l.current=!1);const i=D({queryKey:e?[...b.body(e),s?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!s)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const d=l.current;return l.current=!1,W({fetchContent:(u,M)=>H(u,M,o),refetchDescribeMessage:()=>m.refetchQueries({queryKey:F({path:{messageId:e}})})},{contentUrl:s.contentUrl,kind:s.kind,isRetryAfterNotReady:d})},enabled:r&&!!e&&!!s,staleTime:300*1e3,gcTime:1800*1e3,retry:(d,u)=>u instanceof f&&u.reason==="not-ready"?d<K:d<1,retryDelay:(d,u)=>u instanceof f&&u.reason==="not-ready"?(l.current=!0,(u.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),p=i.isLoading&&!!s,x=t!==void 0&&s===null;c.useEffect(()=>{p&&(a.current=performance.now())},[p]),c.useEffect(()=>{i.isSuccess&&a.current!==null&&(n.recordTiming("message.body.load",Math.round(performance.now()-a.current)),a.current=null)},[i.isSuccess,n]);const A=i.data&&s?{kind:s.kind,body:i.data}:void 0;return{picked:s,data:A,isLoading:p,hasNoRenderablePart:x,isError:i.isError,error:i.error,refetch:i.refetch}};export{f as B,Y as a,te as b,j as c,Z as d,ee as e,V as f,I as g,J as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c2 as Q,c3 as y,c4 as S,c5 as w,c6 as C,h as k,c7 as q,c8 as x,r as p,c9 as M,ca as H,cb as L,cc as P,cd as O,ce as B,cf as A}from"./index-
|
|
1
|
+
import{c2 as Q,c3 as y,c4 as S,c5 as w,c6 as C,h as k,c7 as q,c8 as x,r as p,c9 as M,ca as H,cb as L,cc as P,cd as O,ce as B,cf as A}from"./index-J89guRVU.js";function R(r,e){const s=new Set(e);return r.filter(t=>!s.has(t))}function T(r,e,s){const t=r.slice(0);return t[e]=s,t}var z=class extends Q{#i;#e;#n;#r;#s;#t;#o;#u;#h;#c=[];constructor(r,e,s){super(),this.#i=r,this.#r=s,this.#n=[],this.#s=[],this.#e=[],this.setQueries(e)}onSubscribe(){this.listeners.size===1&&this.#s.forEach(r=>{r.subscribe(e=>{this.#d(r,e)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#s.forEach(r=>{r.destroy()})}setQueries(r,e){this.#n=r,this.#r=e,y.batch(()=>{const s=this.#s,t=this.#f(this.#n);t.forEach(o=>o.observer.setOptions(o.defaultedQueryOptions));const i=t.map(o=>o.observer),n=i.map(o=>o.getCurrentResult()),u=s.length!==i.length,a=i.some((o,d)=>o!==s[d]),f=u||a,b=f?!0:n.some((o,d)=>{const g=this.#e[d];return!g||!S(o,g)});!f&&!b||(f&&(this.#c=t,this.#s=i),this.#e=n,this.hasListeners()&&(f&&(R(s,i).forEach(o=>{o.destroy()}),R(i,s).forEach(o=>{o.subscribe(d=>{this.#d(o,d)})})),this.#p()))})}getCurrentResult(){return this.#e}getQueries(){return this.#s.map(r=>r.getCurrentQuery())}getObservers(){return this.#s}getOptimisticResult(r,e){const s=this.#f(r),t=s.map(n=>n.observer.getOptimisticResult(n.defaultedQueryOptions)),i=s.map(n=>n.defaultedQueryOptions.queryHash);return[t,n=>this.#l(n??t,e,i),()=>this.#a(t,s)]}#a(r,e){return e.map((s,t)=>{const i=r[t];return s.defaultedQueryOptions.notifyOnChangeProps?i:s.observer.trackResult(i,n=>{e.forEach(u=>{u.observer.trackProp(n)})})})}#l(r,e,s){if(e){const t=this.#h,i=s!==void 0&&t!==void 0&&(t.length!==s.length||s.some((n,u)=>n!==t[u]));return(!this.#t||this.#e!==this.#u||i||e!==this.#o)&&(this.#o=e,this.#u=this.#e,s!==void 0&&(this.#h=s),this.#t=w(this.#t,e(r))),this.#t}return r}#b(){return this.#r?.combine!==void 0&&this.#s.some((r,e)=>r.options.suspense&&this.#e[e]?.data===void 0)}#f(r){const e=new Map;this.#s.forEach(t=>{const i=t.options.queryHash;if(!i)return;const n=e.get(i);n?n.push(t):e.set(i,[t])});const s=[];return r.forEach(t=>{const i=this.#i.defaultQueryOptions(t),u=e.get(i.queryHash)?.shift()??new C(this.#i,i);s.push({defaultedQueryOptions:i,observer:u})}),s}#d(r,e){const s=this.#s.indexOf(r);s!==-1&&(this.#e=T(this.#e,s,e),this.#p())}#p(){if(this.hasListeners()){const r=this.#a(this.#e,this.#c),e=this.#b(),s=this.#t,t=e?s:this.#l(r,this.#r?.combine);(e||s!==t)&&y.batch(()=>{this.listeners.forEach(i=>{i(this.#e)})})}}};function U({queries:r,...e},s){const t=k(),i=q(),n=x(),u=p.useMemo(()=>r.map(h=>{const c=t.defaultQueryOptions(h);return c._optimisticResults=i?"isRestoring":"optimistic",c}),[r,t,i]);u.forEach(h=>{M(h);const c=t.getQueryCache().get(h.queryHash);H(h,n,c)}),L(n);const[a]=p.useState(()=>new z(t,u,e)),[f,b,o]=a.getOptimisticResult(u,e.combine),d=!i&&e.subscribed!==!1;p.useSyncExternalStore(p.useCallback(h=>d?a.subscribe(y.batchCalls(h)):P,[a,d]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),p.useEffect(()=>{a.setQueries(u,e)},[u,e,a]);const m=f.some((h,c)=>O(u[c],h))?f.flatMap((h,c)=>{const l=u[c];if(l&&O(l,h)){const E=new C(t,l);return B(l,E,n)}return[]}):[];if(m.length>0)throw Promise.all(m);const v=f.find((h,c)=>{const l=u[c];return l&&A({result:h,errorResetBoundary:n,throwOnError:l.throwOnError,query:t.getQueryCache().get(l.queryHash),suspense:l.suspense})});if(v?.error)throw v.error;return b(o())}export{U as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as E,a0 as K,t as Q,f as U,r as o,aT as R,h as N,C as $,E as z,F as B,q as G,P as I,Q as X,R as V,S as J}from"./index-
|
|
1
|
+
import{j as E,a0 as K,t as Q,f as U,r as o,aT as R,h as N,C as $,E as z,F as B,q as G,P as I,Q as X,R as V,S as J}from"./index-J89guRVU.js";import{C as Y}from"./circle-check-big-DsPxeo1f.js";import{R as Z}from"./refresh-cw-D2y2CKsF.js";import{u as P}from"./useQueries-Ch9XYsKm.js";function ye({state:e,onRefresh:s,label:t,errorMessage:n,hasUpdate:a,size:u="sm",className:c}){const i=e==="refreshing",r=e==="error",h=e==="success",S=r?E.jsx(K,{className:"size-4 text-danger"}):h?E.jsx(Y,{className:"size-4 text-positive"}):E.jsx(Z,{className:Q("size-4",i&&"animate-spin")}),w=r?`${t} — failed: ${n??"try again"}`:i?`${t} — refreshing`:h?`${t} — up to date`:a?`${t} — new mail`:t;return E.jsxs("div",{className:"relative inline-flex",children:[E.jsx(U,{variant:"ghost",size:u,icon:S,onClick:s,disabled:i,"aria-label":w,"aria-busy":i||void 0,title:r?n:t,className:c}),e==="idle"&&a&&E.jsx("span",{"aria-hidden":"true",className:"absolute right-1 top-1 size-1.5 rounded-full bg-accent-2"})]})}const ee=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function L(e){return!!e&&ee.has(e)}const F=3e3,te=F*2,C={syncing:!1,resolved:!1,synced:0,total:0};function we(e,s){const t=e.join(","),[n,a]=o.useState(!1),[u,c]=o.useState(!1);o.useEffect(()=>{a(!1),c(!1)},[t,s]),o.useEffect(()=>{if(!s)return;const m=setTimeout(()=>c(!0),te);return()=>clearTimeout(m)},[t,s]);const i=P({queries:e.map(m=>({...R({path:{accountId:m}}),enabled:s&&!n,refetchInterval:F,meta:{softError:!0}}))}),r=i.every(m=>m.isSuccess||m.isError),h=i.length===0||r||u;let S=!1,w=0,y=0;for(const m of i)if(L(m.data?.syncPhase)){S=!0;for(const l of m.data?.mailboxes??[])w+=l.messagesSynced,y+=l.messagesTotal}const x=s&&h&&!S;return o.useEffect(()=>{x&&a(!0)},[x]),!s||!h?C:{syncing:S,resolved:!0,synced:w,total:y}}const se=180*1e3,xe=30*1e3;let q=0;const M=new Set,re=(e=Date.now())=>{q=e+se;for(const s of M)s()},pe=(e=Date.now())=>e<q,Ee=e=>(M.add(e),()=>{M.delete(e)}),T=6e4,ne=new Set(["sent","drafts","trash","archive"]),_=(e,s)=>{const t=new Map;for(const n of e){const a=s.get(n.mailboxId)?.role;a&&ne.has(a)||t.set(n.mailboxId,n.highWaterMarkUid)}return t},j=(e,s)=>{const t=[];for(const[n,a]of s)a>(e.get(n)??0)&&t.push(n);return t},oe=(e,s)=>j(e,s).length>0,D=o.createContext(null),ae=()=>{const e=o.useContext(D);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function be({accountIds:e,children:s}){const t=N(),{resultFolderIndex:n}=$(),a=o.useRef(new Map),u=o.useRef(new Set),c=o.useRef(new Map),[i,r]=o.useState(new Set),h=P({queries:e.map(l=>({...R({path:{accountId:l}}),refetchInterval:T,staleTime:T,meta:{softError:!0}}))}),S=h.map(l=>l.dataUpdatedAt).join(","),w=e.join(",");o.useEffect(()=>{let l=!1;const f=new Set(i);e.forEach((d,p)=>{const b=h[p]?.data;if(!b)return;const g=_(b.mailboxes??[],n),v=c.current.get(d);if(c.current.set(d,g),v){const A=j(v,g);A.length>0&&z(t,B(A))}if(!u.current.has(d)){u.current.add(d),a.current.set(d,g);return}if(f.has(d))return;const W=a.current.get(d)??new Map;oe(W,g)&&(f.add(d),l=!0)}),l&&r(f)},[w,S]);const y=o.useCallback(l=>l.some(f=>i.has(f)),[i]),x=o.useCallback(l=>{r(f=>{if(l.every(p=>!f.has(p)))return f;const d=new Set(f);for(const p of l)d.delete(p);return d});for(const f of l){const d=t.getQueryData(R({path:{accountId:f}}).queryKey);a.current.set(f,_(d?.mailboxes??[],n)),u.current.add(f)}},[t,n]),m=o.useMemo(()=>({hasNewMail:y,acknowledge:x}),[y,x]);return E.jsx(D.Provider,{value:m,children:s})}const ie=2e3,ce=45e3,ue=e=>new Promise(s=>setTimeout(s,e)),k=e=>e instanceof Error&&e.message?e.message:"Something went wrong",le=e=>{V(e,{softError:!0},"user")&&J(e)},O=(e,s)=>e.fetchQuery({...R({path:{accountId:s}}),staleTime:0}),H=e=>e.mailboxes?.find(s=>s.fullPath?.toUpperCase()==="INBOX")?.lastSyncedAt??0,fe=async({accountId:e,readStatus:s,baselineLastSyncAt:t,baselineInboxSyncedAt:n=0,onInboxSynced:a,deadline:u,pollMs:c=ie})=>{let i=!1;for(;;){const r=await s().then(y=>({ok:!0,data:y})).catch(y=>({ok:!1,error:y}));if(!r.ok)return{accountId:e,message:k(r.error)};const{syncPhase:h,lastSyncAt:S}=r.data;if((S??0)>t&&!L(h))return h==="error"?{accountId:e,message:"Sync failed for this account"}:void 0;if(!i&&H(r.data)>n&&(i=!0,a?.()),Date.now()>=u)return{accountId:e,message:"Refresh is taking longer than usual"};await ue(c)}},de=async(e,s,t,n,a)=>{const u=await O(e,t).then(r=>({ok:!0,lastSyncAt:r.lastSyncAt??0,inboxSyncedAt:H(r)})).catch(r=>({ok:!1,error:r}));if(!u.ok)return{accountId:t,enqueued:!1,ok:!1,message:k(u.error)};const c=await I({path:{accountId:t},throwOnError:!0}).then(()=>({ok:!0})).catch(r=>({ok:!1,error:r}));if(!c.ok)return le(c.error),{accountId:t,enqueued:!1,ok:!1,message:k(c.error)};s.recordEvent("sync.triggered");const i=await fe({accountId:t,readStatus:()=>O(e,t),baselineLastSyncAt:u.lastSyncAt,baselineInboxSyncedAt:u.inboxSyncedAt,onInboxSynced:()=>a(t),deadline:n});return i?{accountId:t,enqueued:!0,ok:!1,message:i.message}:{accountId:t,enqueued:!0,ok:!0}},Re=(e,s={})=>{const t=N(),n=G(),{acknowledge:a}=ae(),[u,c]=o.useState("idle"),[i,r]=o.useState(),h=o.useRef(0),S=o.useRef(e);S.current=e;const w=o.useRef(s);w.current=s,o.useEffect(()=>{if(u!=="success")return;const x=setTimeout(()=>c("idle"),2e3);return()=>clearTimeout(x)},[u]);const y=o.useCallback(()=>{const x=S.current;if(x.length===0){c("error"),r("Nothing to refresh yet");return}const m=++h.current;c("refreshing"),r(void 0),re();const l=f=>{h.current===m&&(t.invalidateQueries({queryKey:X({path:{accountId:f}})}),w.current.onSettled?.())};(async()=>{const f=Date.now()+ce,d=await Promise.all(x.map(g=>de(t,n,g,f,l)));if(h.current!==m)return;const p=d.filter(g=>g.enqueued).map(g=>g.accountId);for(const g of p)l(g);p.length>0&&a(p);const b=d.filter(g=>!g.ok);b.length===0?c("success"):(c("error"),r(b[0]?.message))})()},[a,t,n]);return{state:u,errorMessage:i,refresh:y}};export{xe as H,be as M,ye as R,Re as a,L as b,we as c,pe as i,Ee as s,ae as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as r,r as s,b7 as t}from"./index-
|
|
1
|
+
import{K as r,r as s,b7 as t}from"./index-J89guRVU.js";import{u as m}from"./useQueries-Ch9XYsKm.js";const a=i=>({items:i.map(e=>e.data?.items??[]),isPending:i.some(e=>e.isPending),error:i.find(e=>e.error)?.error??null});function u(i){const e=m({queries:i.map(o=>({...r({path:{accountId:o.accountId}}),staleTime:1/0})),combine:a});return{index:s.useMemo(()=>t(i.map((o,n)=>({folderAppointments:o.folderAppointments,mailboxes:e.items[n]??[]}))),[i,e]),isPending:e.isPending,error:e.error}}export{u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as h,j as a,ct as Y,t as b,I as X,h as Z,at as J,i as ee,av as te,cM as se,bS as re,ab as ne,a0 as ae,X as oe,d5 as _,d6 as I,C as ie,cn as ce}from"./index-
|
|
1
|
+
import{r as h,j as a,ct as Y,t as b,I as X,h as Z,at as J,i as ee,av as te,cM as se,bS as re,ab as ne,a0 as ae,X as oe,d5 as _,d6 as I,C as ie,cn as ce}from"./index-J89guRVU.js";import{K as A}from"./kbd-CKw25IK5.js";import{B as le,b as de}from"./useMessageBodyContent-Bl5Y6AAH.js";import{i as ue}from"./search-scope-B5-OK3Cq.js";const me='"Geist Variable", "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',k={light:{fg:"oklch(0.3 0.025 235)",canvas:"oklch(0.96 0.015 90)",accent:"oklch(0.55 0.14 150)"},dark:{fg:"oklch(0.88 0.02 90)",canvas:"oklch(0.22 0.025 220)",accent:"oklch(0.78 0.16 150)"}},fe={background:!1,spacing:!1},he="16px",ge=()=>`html{padding:0}body{padding:${he};box-sizing:border-box}`,pe=()=>"html{overflow:hidden}body{overflow-x:auto}",be=/prefers-color-scheme\s*:\s*dark|color-scheme\s*:\s*[^;}"']*\bdark\b/i,ye='<meta name="viewport" content="width=device-width, initial-scale=1">',xe=e=>{const t=e?k.dark:k.light;return`
|
|
2
2
|
/* Plain-email base: UI font-stack + theme-aware colors (#424) */
|
|
3
3
|
html, body {
|
|
4
4
|
font-family: ${me};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as L,at as M,i as k,E as I,F as E,cy as A,ek as R,r as v,dx as w,j as p,el as h,em as D,en as _,C as j,cn as N,c as Q,dR as z,d5 as O}from"./index-
|
|
1
|
+
import{h as L,at as M,i as k,E as I,F as E,cy as A,ek as R,r as v,dx as w,j as p,el as h,em as D,en as _,C as j,cn as N,c as Q,dR as z,d5 as O}from"./index-J89guRVU.js";import{c as U}from"./popover-menu-Cl-N1YPe.js";import{ai as q}from"./MailListHeader-C8fUfLdY.js";import{a as P}from"./useLabels-Bhad46sq.js";import{n as B}from"./search-query-Cr_ZXBCp.js";import{b as F}from"./search-scope-B5-OK3Cq.js";import{u as G,p as H}from"./useSearchTokenContext-Dl9jDzQw.js";const ne=e=>{const t=new Set;for(const s of e)s&&t.add(s);return t.size>1?{accountId:void 0,restriction:"spansAccounts",moveDisabledHint:"Move only works within one account — clear selection or pick messages from a single account"}:{accountId:t.size===1?[...t][0]:void 0,restriction:void 0,moveDisabledHint:void 0}},K=e=>{const{mailboxId:t,messages:s}=e,n=L(),{pushError:l}=M(),{mutateAsync:c,isPending:a}=k({...R(),onError:(r,u)=>{l({title:u.body.action==="Remove"?"Couldn't remove label":"Couldn't apply label",detail:A(r),error:r})},onSettled:(r,u,d)=>{I(n,E(q(d.body.messageIds??[],s??[],t)))}});return{applyLabel:v.useCallback((r,u,d)=>{r.length!==0&&w(r,m=>c({body:{messageIds:m,labelId:u,action:d}}))},[c]),isPending:a}};function re({accountId:e,mailboxId:t,messageIds:s}){const{labels:n}=P(e),{applyLabel:l}=K({mailboxId:t}),c=v.useMemo(()=>n.map(a=>({key:a.labelId,label:a.name,icon:p.jsx("span",{className:`size-2.5 rounded-full ${D(a.color)?h[a.color]:h.Default}`}),onSelect:()=>l(s,a.labelId,"Apply")})),[n,s,l]);return c.length===0?null:p.jsx(U,{triggerLabel:"Apply label to selected messages",triggerIcon:p.jsx(_,{className:"size-4 text-fg-subtle"}),triggerText:"Apply label",items:c,align:"start",nested:!0,touch:!1,triggerClassName:"min-h-11 w-full justify-start gap-3 px-4 py-2.5 text-sm font-normal text-fg"})}const V=3,ie=({hasSearchQuery:e,freeText:t,residualTokenCount:s})=>{if(!e||s>0)return!1;const n=t.trim();return n.length===0||n.length>=V},ce=e=>e===void 0?{kind:"unknown"}:{kind:"exact",value:e},Y=20,$=new Set(Object.values(O)),J=e=>e!==void 0&&$.has(e)?e:void 0,W=e=>{if(e.some(t=>t.type==="isUnread"))return!1;if(e.some(t=>t.type==="isRead"))return!0};function le({mailboxId:e,filterCategory:t}={}){const{searchQuery:s}=j(),n=G(),l=N(),c=B(s),{freeText:a,tokens:i}=H(c,n),r=a.length>0,u=i.find(o=>o.type==="category"),d=J(t)??u?.category,m=i.some(o=>o.type==="hasAttachment")?!0:void 0,f=i.some(o=>o.type==="isStarred")?!0:void 0,y=W(i),b=i.find(o=>o.type==="after"),g=i.find(o=>o.type==="before"),x=i.find(o=>o.type==="in"),S=F({browsed:l,callerMailboxId:e,inTokenMailboxId:x?.mailboxId}),{data:T,isLoading:C}=Q({...z({query:{query:a,mailboxId:S,limit:Y,...d!==void 0?{category:d}:{},...m!==void 0?{hasAttachment:m}:{},...f!==void 0?{hasStars:f}:{},...y!==void 0?{isRead:y}:{},...b?{sentDateFrom:b.epochSeconds}:{},...g?{sentDateTo:g.epochSeconds}:{}}}),enabled:r,staleTime:6e4});return{hits:T?.items??[],isLoading:r&&C}}export{re as L,ne as r,ie as s,ce as t,le as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as g,at as p,c as f,d as m,r,i as y,av as T,o as E,l as d}from"./index-
|
|
1
|
+
import{h as g,at as p,c as f,d as m,r,i as y,av as T,o as E,l as d}from"./index-J89guRVU.js";const i={html:"",plainText:""},x=e=>{const u=g(),{pushError:o}=p(),{data:n}=f({...m(),staleTime:1/0}),l=r.useMemo(()=>{if(!e||!n)return i;const t=n.accounts.find(a=>a.accountId===e);return t?{html:t.signatureHtml??"",plainText:t.signaturePlainText??""}:i},[e,n]),s=y({...d(),onSuccess:()=>{u.invalidateQueries({queryKey:E()})},onError:t=>{o(T("Couldn't save signature","The signature wasn't saved.",t))}}),c=r.useCallback((t,a)=>{e&&s.mutate({path:{accountId:e},body:{signatureHtml:t,signaturePlainText:a}})},[e,s]);return{signature:l,setSignature:c,isSaving:s.isPending}};export{x as u};
|
package/index.html
CHANGED
|
@@ -38,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-J89guRVU.js"></script>
|
|
42
42
|
<link rel="stylesheet" crossorigin href="/assets/index-BOf0CjTQ.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|