@remit/web-client-dist 0.0.396 → 0.0.397
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-BYzE7SQz.js → BriefPane-SxhE_3va.js} +1 -1
- package/assets/{ErrorState-C9LAoeuU.js → ErrorState-CcpsTpZA.js} +1 -1
- package/assets/{FlaggedPane-Puolf1yW.js → FlaggedPane-BUcKm6Q9.js} +1 -1
- package/assets/{FullCompose-I6txbMnr.js → FullCompose-fNHynN0g.js} +1 -1
- package/assets/{MailListHeader-D1TPzbWl.js → MailListHeader-BZ15rR9w.js} +1 -1
- package/assets/{MailViewChrome-DhEVKHFF.js → MailViewChrome-BL8QOjiW.js} +1 -1
- package/assets/{MailboxPane-CvRNBvmW.js → MailboxPane-Cug4MhJ4.js} +1 -1
- package/assets/{NavMenuButton-D3dPDuI8.js → NavMenuButton-BYPOjfVN.js} +1 -1
- package/assets/{OnboardingWizard-C-BZw-WN.js → OnboardingWizard-Dv32xAWf.js} +1 -1
- package/assets/{OutboxPane-Cy-j4Onk.js → OutboxPane-EosxgjWC.js} +1 -1
- package/assets/_mailboxId-BDYPb2IC.js +1 -0
- package/assets/_messageId-B93vfhtz.js +1 -0
- package/assets/_messageId-BK-2UlJ4.js +1 -0
- package/assets/_messageId-Ba550FVw.js +1 -0
- package/assets/_outboxMessageId-AY8LrP0T.js +1 -0
- package/assets/_threadId-bs4iBQD3.js +1 -0
- package/assets/_threadId-ogX10W2j.js +1 -0
- package/assets/_threadId-tWALuIit.js +1 -0
- package/assets/{accounts-DFBW1Jht.js → accounts-m-wAclt2.js} +1 -1
- package/assets/{advanced-Cw6BtMpm.js → advanced-C7MdSPgX.js} +1 -1
- package/assets/{appearance-Bwrt2pqW.js → appearance-GVqDXnNL.js} +1 -1
- package/assets/{attachment-file-Cr2ktghK.js → attachment-file-D53Dk99j.js} +1 -1
- package/assets/{avatar-R7-krPv1.js → avatar-BaTjjbv5.js} +1 -1
- package/assets/{bottom-sheet-B2urJ3G6.js → bottom-sheet-CeqiyGT_.js} +1 -1
- package/assets/{brief-C9LaXGv8.js → brief-BWH_NRUS.js} +1 -1
- package/assets/brief-BZrkBnEP.js +1 -0
- package/assets/{browser-ponyfill-DfshBY5w.js → browser-ponyfill-b18kDZEb.js} +1 -1
- package/assets/{bug-wYL_eFTx.js → bug-CcfGVPQC.js} +1 -1
- package/assets/{circle-check-BVOqp5tA.js → circle-check-CHWuqox6.js} +1 -1
- package/assets/{circle-check-big-CC8hYmP1.js → circle-check-big-Bat79NJC.js} +1 -1
- package/assets/{circle-help-DQyDtdln.js → circle-help-B_C4ueZj.js} +1 -1
- package/assets/{clock-C_7HRgVu.js → clock-CyzBwXAZ.js} +1 -1
- package/assets/compose._-_outboxMessageId_-BYaT-cw5.js +1 -0
- package/assets/compose._-_outboxMessageId_-C_WmCI1L.js +1 -0
- package/assets/compose._-_outboxMessageId_-CejGv2Xy.js +1 -0
- package/assets/compose._-_outboxMessageId_-jWIcq_AO.js +1 -0
- package/assets/{confirm-dialog-C2DcmYlc.js → confirm-dialog-BBgNPSWF.js} +1 -1
- package/assets/{download-BQJQMlAu.js → download-xYbt-qwY.js} +1 -1
- package/assets/{filters-BuVg6l1J.js → filters-DF0ypVxx.js} +1 -1
- package/assets/flagged-BiFxZ3Xz.js +1 -0
- package/assets/{flagged-Cucxls5g.js → flagged-DFF123Ez.js} +1 -1
- package/assets/{folders-BxSaJuJU.js → folders-DG7Nn1DQ.js} +1 -1
- package/assets/{help-copy-BsWj3GWP.js → help-copy-DsmZ2GtC.js} +1 -1
- package/assets/index-B-Gqxs_I.js +1 -0
- package/assets/index-B93vfhtz.js +1 -0
- package/assets/index-Ba550FVw.js +1 -0
- package/assets/{index-D5pbxDcC.js → index-BkI9e3vC.js} +4 -4
- package/assets/index-BqDzjdkj.js +1 -0
- package/assets/index-Cy3dPHOW.js +1 -0
- package/assets/index-D32-yNgO.js +1 -0
- package/assets/{index-xDeuo85T.js → index-DZJeVVlS.js} +3 -3
- package/assets/index-iKxb5ADd.js +1 -0
- package/assets/index-oYHoeD2x.js +1 -0
- package/assets/{kbd-BHiQtyd7.js → kbd-NyMHCJhU.js} +1 -1
- package/assets/{labels-CK3DDXrC.js → labels-zFlClkP8.js} +1 -1
- package/assets/{mail-CYBYlziq.js → mail-D1sr7IHE.js} +1 -1
- package/assets/{mail-JrgTiZq-.js → mail-l6m0vhbl.js} +1 -1
- package/assets/{menu-B0PhsBZP.js → menu-C4YTErYs.js} +1 -1
- package/assets/{move-options-7S8XVnNW.js → move-options-BdK203up.js} +1 -1
- package/assets/{onboarding-M7wk3ADh.js → onboarding-D-1cRI58.js} +1 -1
- package/assets/outbox-DmIhmdha.js +1 -0
- package/assets/{pencil-1gmQLonP.js → pencil-GwFCPjeu.js} +1 -1
- package/assets/{rich-text-DY6quMPv.js → rich-text-NcFIx6xE.js} +1 -1
- package/assets/{rich-text-spellcheck-worker-provider-yVMT3d_z.js → rich-text-spellcheck-worker-provider-BGwkiVuq.js} +1 -1
- package/assets/{rotate-ccw-BOF0K0xu.js → rotate-ccw-C3nY3c4i.js} +1 -1
- package/assets/{row-actions-D2dobd75.js → row-actions-CPzqKYFm.js} +1 -1
- package/assets/{search-scope-D_198Zfr.js → search-scope-CjUz4XDB.js} +1 -1
- package/assets/{search-token-index-Dt3xszJN.js → search-token-index-Du18usjZ.js} +1 -1
- package/assets/{search-view-TtEJrhw1.js → search-view-de6HpxOE.js} +1 -1
- package/assets/{senders-C-oFsT1p.js → senders-y3S7CsD8.js} +1 -1
- package/assets/settings-YyWcp2r9.js +1 -0
- package/assets/{settings-screen-DQg6DRqK.js → settings-screen-Btu6ilW8.js} +1 -1
- package/assets/{shield-check-BaOZv9CT.js → shield-check-BaWzHVzb.js} +1 -1
- package/assets/{suggested-vips-D2B_0-Fi.js → suggested-vips-vilvj7kG.js} +1 -1
- package/assets/{useDebouncedValue-0dMvGRpI.js → useDebouncedValue-M2Ae9QQB.js} +1 -1
- package/assets/{useFilters-DTlwj45L.js → useFilters-D73Ov9vo.js} +1 -1
- package/assets/{useLabels-xNEXhXDO.js → useLabels-B1c9r5ky.js} +1 -1
- package/assets/{useMediaQuery-Cvp7nog9.js → useMediaQuery-bIUEJ5Pl.js} +1 -1
- package/assets/{useMessageBodyContent-CHwJHNJ1.js → useMessageBodyContent-D3WGssaj.js} +1 -1
- package/assets/{useRefreshControl-DxR0yck-.js → useRefreshControl-DVnro4XQ.js} +1 -1
- package/assets/{useSearchMirror-Bgq8S9Xs.js → useSearchMirror-BG6efGBY.js} +1 -1
- package/assets/{useSearchTokenContext-DeLJcEGM.js → useSearchTokenContext-BbemXlBA.js} +1 -1
- package/assets/{useSemanticSearch-CXEXEijP.js → useSemanticSearch-B7Hc694H.js} +1 -1
- package/assets/{useSignature-BUdVflVx.js → useSignature-CPUzAYyq.js} +1 -1
- package/index.html +1 -1
- package/package.json +1 -1
- package/assets/_mailboxId-aFBV0twk.js +0 -1
- package/assets/_messageId-994sqBA7.js +0 -1
- package/assets/_messageId-BXA1F-4i.js +0 -1
- package/assets/_messageId-DkZthtHk.js +0 -1
- package/assets/_outboxMessageId-dyICb7ki.js +0 -1
- package/assets/_threadId-DTHvtwET.js +0 -1
- package/assets/_threadId-DhBnxcpJ.js +0 -1
- package/assets/_threadId-DitF62YB.js +0 -1
- package/assets/brief-CugkmyK8.js +0 -1
- package/assets/compose._-_outboxMessageId_-BtlAL344.js +0 -1
- package/assets/compose._-_outboxMessageId_-CyOYw-yz.js +0 -1
- package/assets/compose._-_outboxMessageId_-DWr95lgF.js +0 -1
- package/assets/compose._-_outboxMessageId_-Dgksxmbd.js +0 -1
- package/assets/flagged-DpRvdW6d.js +0 -1
- package/assets/index-994sqBA7.js +0 -1
- package/assets/index-B5WzT_9n.js +0 -1
- package/assets/index-BCpCgZJW.js +0 -1
- package/assets/index-BhO5OtX7.js +0 -1
- package/assets/index-BkPjwnhD.js +0 -1
- package/assets/index-BlsU6L8_.js +0 -1
- package/assets/index-Djl3z6hZ.js +0 -1
- package/assets/index-DkZthtHk.js +0 -1
- package/assets/outbox-mVBmuwcg.js +0 -1
- package/assets/settings-DYdcwub9.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-BkI9e3vC.js";import{M as i}from"./MailboxPane-Cug4MhJ4.js";import"./useSearchTokenContext-BbemXlBA.js";import"./kbd-NyMHCJhU.js";import"./useMessageBodyContent-D3WGssaj.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./enums-B_igRgfI.js";import"./search-scope-CjUz4XDB.js";import"./useRefreshControl-DVnro4XQ.js";import"./circle-check-big-Bat79NJC.js";import"./search-token-index-Du18usjZ.js";import"./MailListHeader-BZ15rR9w.js";import"./attachment-file-D53Dk99j.js";import"./mail-l6m0vhbl.js";import"./avatar-BaTjjbv5.js";import"./index-DZJeVVlS.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-M2Ae9QQB.js";import"./ErrorState-CcpsTpZA.js";import"./format-D7umvejg.js";import"./download-xYbt-qwY.js";import"./shield-check-BaWzHVzb.js";import"./move-options-BdK203up.js";import"./useFilters-D73Ov9vo.js";import"./confirm-dialog-BBgNPSWF.js";import"./clock-CyzBwXAZ.js";import"./menu-C4YTErYs.js";import"./MailViewChrome-BL8QOjiW.js";import"./NavMenuButton-BYPOjfVN.js";import"./useLabels-B1c9r5ky.js";import"./useSemanticSearch-B7Hc694H.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-CeqiyGT_.js";import"./circle-help-B_C4ueZj.js";import"./circle-check-CHWuqox6.js";function J(){return o.jsx(i.Reading,{})}export{J as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t,$ as o}from"./index-BkI9e3vC.js";const n=()=>t.jsx(o,{to:"/settings/accounts"});export{n as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-BkI9e3vC.js";import{F as r}from"./FlaggedPane-BUcKm6Q9.js";import"./useSearchTokenContext-BbemXlBA.js";import"./kbd-NyMHCJhU.js";import"./useMessageBodyContent-D3WGssaj.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./enums-B_igRgfI.js";import"./search-scope-CjUz4XDB.js";import"./MailListHeader-BZ15rR9w.js";import"./search-token-index-Du18usjZ.js";import"./attachment-file-D53Dk99j.js";import"./mail-l6m0vhbl.js";import"./avatar-BaTjjbv5.js";import"./index-DZJeVVlS.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-M2Ae9QQB.js";import"./ErrorState-CcpsTpZA.js";import"./format-D7umvejg.js";import"./download-xYbt-qwY.js";import"./shield-check-BaWzHVzb.js";import"./move-options-BdK203up.js";import"./useFilters-D73Ov9vo.js";import"./confirm-dialog-BBgNPSWF.js";import"./clock-CyzBwXAZ.js";import"./menu-C4YTErYs.js";import"./MailViewChrome-BL8QOjiW.js";import"./wizard-selection-B1bng5Jq.js";function A(){return o.jsx(r.Reading,{})}export{A as component};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/rich-text-spellcheck-worker-provider-
|
|
2
|
-
import{j as p,X as fr,b as mr,B as Yt,af as pr,f as hr,T as vr,r as s,bV as gr,bW as wr,C as Sn,a3 as yr,bX as br,d as Er,bY as Sr,bZ as Wt,ba as xn,b_ as he,b$ as Cn,c0 as xr,n as Cr,a7 as ut,c1 as lt,c2 as Rr,c3 as Dr,t as Tr,s as dt,b6 as Ar,m as Or,c4 as Rn,aF as Nr,aG as kr,Q as Dn,c5 as Pr,a5 as Ir,c6 as Lr,c7 as Mr,bn as St,c8 as _r,a8 as jr,b9 as Fr,a6 as $r,c9 as Br,a4 as S}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/rich-text-spellcheck-worker-provider-BGwkiVuq.js","assets/index-BkI9e3vC.js","assets/index-Bn4mOVkF.css","assets/rich-text-spellcheck-provider-J8m9wz6A.js","assets/rich-text-NcFIx6xE.js","assets/confirm-dialog-BBgNPSWF.js","assets/useMediaQuery-bIUEJ5Pl.js","assets/bottom-sheet-CeqiyGT_.js","assets/attachment-file-D53Dk99j.js","assets/useMessageBodyContent-D3WGssaj.js","assets/useSignature-CPUzAYyq.js","assets/account-form-helpers-DhckT_PN.js","assets/useDebouncedValue-M2Ae9QQB.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{j as p,X as fr,b as mr,B as Yt,af as pr,f as hr,T as vr,r as s,bV as gr,bW as wr,C as Sn,a3 as yr,bX as br,d as Er,bY as Sr,bZ as Wt,ba as xn,b_ as he,b$ as Cn,c0 as xr,n as Cr,a7 as ut,c1 as lt,c2 as Rr,c3 as Dr,t as Tr,s as dt,b6 as Ar,m as Or,c4 as Rn,aF as Nr,aG as kr,Q as Dn,c5 as Pr,a5 as Ir,c6 as Lr,c7 as Mr,bn as St,c8 as _r,a8 as jr,b9 as Fr,a6 as $r,c9 as Br,a4 as S}from"./index-BkI9e3vC.js";import{q as Hr}from"./useMessageBodyContent-D3WGssaj.js";import{u as Wr}from"./useSignature-CPUzAYyq.js";import{b as Ur}from"./account-form-helpers-DhckT_PN.js";import{u as Vr}from"./useDebouncedValue-M2Ae9QQB.js";import{u as zr}from"./useMediaQuery-bIUEJ5Pl.js";const qr=({email:e,displayName:t,onRemove:n,className:r})=>p.jsxs("span",{className:mr("inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-accent-2-soft text-sm max-w-[200px]",r),children:[p.jsx("span",{className:"truncate",children:t||e}),p.jsx("button",{type:"button",onClick:n,className:"shrink-0 p-0.5 rounded-full hover:bg-fg-muted/20 transition-colors","aria-label":`Remove ${e}`,children:p.jsx(fr,{className:"size-3"})})]}),Kr=({save:e})=>e.status==="saving"?p.jsx("output",{className:"animate-pulse text-xs text-fg-muted",children:"Saving..."}):e.status==="saved"?p.jsx("output",{className:"text-xs text-fg-muted",children:"Draft saved"}):e.status==="error"?p.jsx("output",{className:"text-xs text-danger",children:"Save failed"}):e.status==="unsaved"?p.jsx("output",{className:"truncate text-xs text-warning",children:e.reason}):null;function Yr({send:e,onSend:t,onBlocked:n,onDiscard:r,save:o={status:"idle"}}){const a=e.status==="sending",i=e.status==="blocked"?e.reason:void 0;return p.jsxs("div",{className:"flex items-center justify-between border-t border-line px-3 py-2",children:[p.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[p.jsx(Yt,{variant:"primary",size:"md","aria-busy":a,title:i,className:"min-h-11 shrink-0 rounded-full px-4","data-testid":"compose-send",icon:a?p.jsx(pr,{className:"size-4 animate-spin"}):p.jsx(hr,{className:"size-4"}),onClick:()=>{if(!a){if(i!==void 0){n(i);return}t()}},children:"Send"}),p.jsx(Kr,{save:o})]}),p.jsx(Yt,{variant:"ghost",size:"md","aria-busy":a,"aria-label":"Discard",className:"min-h-11 min-w-11 px-2 hover:text-danger",icon:p.jsx(vr,{className:"size-4"}),onClick:()=>{a||r()}})]})}const Xr=["Tab",","],Xt=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()),Gr=e=>{const t=e.trim();if(!t)return;const n=t.match(/^(.+?)\s*<([^>]+)>$/);if(n){const r=n[1].trim(),o=n[2].trim();if(Xt(o))return{email:o,displayName:r}}if(Xt(t))return{email:t}},Qr=({label:e,addresses:t,onChange:n,placeholder:r,suggestions:o=[],onQueryChange:a})=>{const[i,c]=s.useState(""),h=s.useRef(null),m=new Set(t.map(d=>d.email.toLowerCase())),l=i.length>=2?o.filter(d=>!m.has(d.email.toLowerCase())):[],u=s.useCallback(d=>{m.has(d.email.toLowerCase())||(n([...t,d]),c(""),a?.(""))},[t,m,n,a]),v=s.useCallback(d=>{n(t.filter((g,A)=>A!==d))},[t,n]),y=s.useCallback(d=>{u(d),h.current?.focus()},[u]),E=s.useCallback(()=>{const d=Gr(i);d&&u(d)},[i,u]),f=gr({count:l.length,acceptKeys:Xr,onAccept:d=>y(l[d])}),b=s.useMemo(()=>l.map(d=>({value:d.email,label:d.displayName??d.email,...d.displayName?{hint:d.email}:{}})),[l]),w=s.useCallback(d=>{if(d.key==="Backspace"&&i===""&&t.length>0){v(t.length-1);return}f.handleKeyDown(d)||(d.key==="Enter"||d.key==="Tab"||d.key===",")&&i.trim()&&(d.preventDefault(),E())},[i,t.length,v,f.handleKeyDown,E]),T=s.useCallback(()=>{setTimeout(()=>{E(),f.dismiss()},150)},[E,f.dismiss]);return p.jsxs("div",{className:"relative","data-address-field":e,children:[p.jsxs("div",{className:"flex items-start gap-2",children:[p.jsxs("label",{htmlFor:`address-field-${e}`,className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:[e,":"]}),p.jsxs("div",{className:"flex-1 flex flex-wrap items-center gap-1 min-h-[36px] px-2 py-1 border rounded-md bg-canvas cursor-text",onClick:()=>h.current?.focus(),onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&h.current?.focus()},children:[t.map((d,g)=>p.jsx(qr,{email:d.email,displayName:d.displayName,onRemove:()=>v(g)},d.email)),p.jsx("input",{ref:h,id:`address-field-${e}`,type:"text",value:i,onChange:d=>{f.reopen(),c(d.target.value),a?.(d.target.value)},onKeyDown:w,onBlur:T,placeholder:t.length===0?r:"",className:"flex-1 min-w-[120px] bg-transparent outline-none text-sm py-0.5",autoComplete:"off",...f.comboboxProps})]})]}),f.open&&p.jsx(wr,{id:f.listId,suggestions:b,activeIndex:f.activeIndex,optionId:f.optionId,onPick:d=>{const g=l.find(A=>A.email===d.value);g&&y(g)},onHighlight:f.setActiveIndex,label:`${e} suggestions`,className:"absolute left-12 right-0 z-50 mt-1 max-h-[200px] shadow-lg"})]})},Zr=()=>p.jsxs("div",{"aria-hidden":"true","data-testid":"compose-body-skeleton",className:"min-h-[120px] px-3 py-2",children:[p.jsx("div",{className:"mb-2 h-8 animate-pulse rounded bg-surface-sunken"}),p.jsx("div",{className:"min-h-[80px] animate-pulse rounded bg-surface-sunken/50"})]});function Jr({banner:e,header:t,children:n,quoted:r,actionBar:o,layout:a="fill"}){const i=a==="fill";return p.jsxs("div",{className:i?"flex h-full min-h-0 flex-col":"flex flex-col",children:[e,t,p.jsxs("div",{className:i?"flex min-h-0 flex-1 flex-col overflow-auto":"flex flex-col","data-testid":"compose-body-area",children:[n,r&&p.jsx("div",{className:"shrink-0 px-3 pb-2",children:r})]}),i?o:p.jsx("div",{className:"sticky bottom-0 z-10 bg-canvas",children:o})]})}const xt=({label:e,onClick:t})=>p.jsx("button",{type:"button",onClick:t,className:"text-xs text-fg-muted hover:text-fg transition-colors",children:e}),eo=({to:e,cc:t,bcc:n,subject:r})=>{const o=[];return e.length>0&&o.push(`To: ${e.map(a=>a.displayName??a.email).join(", ")}`),t.length>0&&o.push(`Cc: ${t.length}`),n.length>0&&o.push(`Bcc: ${n.length}`),r&&o.push(r),o.join(" · ")},to=({collapsed:e=!1,summary:t="",onExpand:n,from:r,to:o,cc:a,bcc:i,subject:c,onShowCc:h,onShowBcc:m})=>e?p.jsxs("button",{type:"button",onClick:n,"aria-label":"Show recipients and subject",className:"flex min-h-11 w-full items-center gap-2 overflow-hidden border-b border-line px-3 py-1.5 text-left transition-colors hover:bg-surface-sunken","data-testid":"compose-header-collapsed",children:[p.jsx("span",{className:"truncate text-xs text-fg-muted",children:t||"…"}),p.jsx(Sn,{className:"ml-auto size-4 shrink-0 text-fg-muted","aria-hidden":"true"})]}):p.jsxs("div",{className:"space-y-1 px-3 py-2 border-b border-line",children:[r,o,a??p.jsxs("div",{className:"flex gap-2 pl-14",children:[p.jsx(xt,{label:"Cc",onClick:h}),p.jsx(xt,{label:"Bcc",onClick:m})]}),a&&!i&&p.jsx("div",{className:"pl-14",children:p.jsx(xt,{label:"Bcc",onClick:m})}),i,c]}),jt="This account can't send mail until SMTP is configured.",no=({onConfigure:e,configureRef:t})=>p.jsxs("div",{role:"alert","data-testid":"compose-smtp-missing-banner",className:"flex items-start gap-3 border-b border-warning/50 bg-warning/10 px-3 py-2",children:[p.jsx(yr,{className:"size-5 shrink-0 mt-0.5 text-warning","aria-hidden":"true"}),p.jsxs("div",{className:"flex-1 min-w-0",children:[p.jsx("p",{className:"text-sm font-medium text-warning",children:jt}),p.jsxs("button",{ref:t,type:"button",onClick:e,"data-testid":"compose-smtp-configure",className:"mt-1 inline-flex items-center gap-1 text-xs font-medium text-warning hover:underline",children:["Configure SMTP",p.jsx(br,{className:"size-3","aria-hidden":"true"})]})]})]}),ro=({value:e,onChange:t})=>p.jsxs("div",{className:"flex items-start gap-2",children:[p.jsx("label",{className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"Subj:"}),p.jsx("input",{type:"text",value:e,onChange:n=>t(n.target.value),className:"flex-1 px-2 py-1.5 border rounded-md bg-canvas text-sm",placeholder:"Subject","data-subject-field":!0})]}),oo=({text:e,html:t,senderName:n,date:r})=>{const[o,a]=s.useState(!1);if(!e&&!t)return null;const i=[n,r].filter(Boolean).join(" on ");return p.jsxs("div",{className:"mt-2 px-3 pb-2",children:[p.jsxs("button",{type:"button",onClick:()=>a(!o),"aria-expanded":o,className:"flex items-center gap-1 text-xs text-fg-muted hover:text-fg transition-colors",children:[o?p.jsx(Sn,{className:"size-3"}):p.jsx(Er,{className:"size-3"}),i?`${i} wrote:`:"Show quoted text"]}),o&&p.jsx("blockquote",{className:"mt-2 pl-3 border-l-2 border-fg-subtle/30 text-sm text-fg-muted [&_a]:text-accent [&_a]:underline [&_blockquote]:pl-3 [&_blockquote]:border-l-2 [&_blockquote]:border-fg-subtle/30",children:t?p.jsx("div",{dangerouslySetInnerHTML:{__html:t}}):e.split(`
|
|
3
3
|
`).map((c,h)=>p.jsx("p",{className:"min-h-[1.2em]",children:c},h))})]})},ao=["p","br","div","h1","h2","h3","h4","h5","h6","strong","b","em","i","u","s","ul","ol","li","blockquote","pre","code","hr","table","thead","tbody","tr","th","td","a","img"],so=["href","src","alt","colspan","rowspan","lang","dir"],io=/^(?:https?:|mailto:)/i,co=/^(?:https:|data:image\/)/i,uo="max-width:100%;height:auto",lo=e=>{const t=Sr();if(!t.isSupported)throw new Error("adopted HTML cannot be sanitized: no DOM is available");return t.addHook("afterSanitizeAttributes",n=>{if(n.tagName==="A"){io.test(n.getAttribute("href")??"")||n.removeAttribute("href"),e==="quoted"&&(n.setAttribute("target","_blank"),n.setAttribute("rel","noopener noreferrer nofollow"));return}if(n.tagName==="IMG"){if(e==="quoted"){n.remove();return}if(!co.test(n.getAttribute("src")??"")){n.remove();return}n.setAttribute("style",uo)}}),t},Gt=new Map,fo=e=>{const t=Gt.get(e);if(t)return t;const n=lo(e);return Gt.set(e,n),n},Tn=(e,t)=>fo(t).sanitize(e,{ALLOWED_TAGS:ao,ALLOWED_ATTR:so,ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1}),ti=e=>Tn(e,"outgoing"),mo=e=>Tn(e,"quoted"),po=e=>typeof e=="string"&&e.length>0?"rich":"plain",ni=(e,t)=>t.length>0,ho={plain:"Couldn't switch to plain text",rich:"Couldn't switch to rich text"},ri=(e,t,n)=>t.trim()===""||n.trim()!==""?{outcome:"switch"}:{outcome:"blocked",title:ho[e],detail:"The conversion came back empty, so your message is unchanged."};function ve(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o||!o.defaultPrevented)return t?.(o)}}function Qt(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function vo(...e){return t=>{let n=!1;const r=e.map(o=>{const a=Qt(o,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let o=0;o<r.length;o++){const a=r[o];typeof a=="function"?a():Qt(e[o],null)}}}}function xe(...e){return s.useCallback(vo(...e),e)}function go(e,t=[]){let n=[];function r(a,i){const c=s.createContext(i);c.displayName=a+"Context";const h=n.length;n=[...n,i];const m=u=>{const{scope:v,children:y,...E}=u,f=v?.[e]?.[h]||c,b=s.useMemo(()=>E,Object.values(E));return p.jsx(f.Provider,{value:b,children:y})};m.displayName=a+"Provider";function l(u,v,y={}){const{optional:E=!1}=y,f=v?.[e]?.[h]||c,b=s.useContext(f);if(b)return b;if(i!==void 0)return i;if(!E)throw new Error(`\`${u}\` must be used within \`${a}\``)}return[m,l]}const o=()=>{const a=n.map(i=>s.createContext(i));return function(c){const h=c?.[e]||a;return s.useMemo(()=>({[`__scope${e}`]:{...c,[e]:h}}),[c,h])}};return o.scopeName=e,[r,wo(o,...t)]}function wo(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(a){const i=r.reduce((c,{useScope:h,scopeName:m})=>{const u=h(a)[`__scope${m}`];return{...c,...u}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var He=globalThis?.document?s.useLayoutEffect:()=>{},yo=Wt[" useInsertionEffect ".trim().toString()]||He;function bo({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,a,i]=Eo({defaultProp:t,onChange:n}),c=e!==void 0,h=c?e:o;{const l=s.useRef(e!==void 0);s.useEffect(()=>{const u=l.current;u!==c&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),l.current=c},[c,r])}const m=s.useCallback(l=>{if(c){const u=So(l)?l(e):l;u!==e&&i.current?.(u)}else a(l)},[c,e,a,i]);return[h,m]}function Eo({defaultProp:e,onChange:t}){const[n,r]=s.useState(e),o=s.useRef(n),a=s.useRef(t);return yo(()=>{a.current=t},[t]),s.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}function So(e){return typeof e=="function"}function An(e){const t=s.forwardRef((n,r)=>{let{children:o,...a}=n,i=null,c=!1;const h=[];Zt(o)&&typeof Je=="function"&&(o=Je(o._payload)),s.Children.forEach(o,v=>{if(To(v)){c=!0;const y=v;let E="child"in y.props?y.props.child:y.props.children;Zt(E)&&typeof Je=="function"&&(E=Je(E._payload)),i=Co(y,E),h.push(i?.props?.children)}else h.push(v)}),i?i=s.cloneElement(i,void 0,h):!c&&s.Children.count(o)===1&&s.isValidElement(o)&&(i=o);const m=i?Do(i):void 0,l=xe(r,m);if(!i){if(o||o===0)throw new Error(c?ko(e):No(e));return o}const u=Ro(a,i.props??{});return i.type!==s.Fragment&&(u.ref=r?l:m),s.cloneElement(i,u)});return t.displayName=`${e}.Slot`,t}var xo=Symbol.for("radix.slottable"),Co=(e,t)=>{if("child"in e.props){const n=e.props.child;return s.isValidElement(n)?s.cloneElement(n,void 0,e.props.children(n.props.children)):null}return s.isValidElement(t)?t:null};function Ro(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const h=a(...c);return o(...c),h}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function Do(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function To(e){return s.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===xo}var Ao=Symbol.for("react.lazy");function Zt(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Ao&&"_payload"in e&&Oo(e._payload)}function Oo(e){return typeof e=="object"&&e!==null&&"then"in e}var No=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,ko=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Je=Wt[" use ".trim().toString()],Po=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],le=Po.reduce((e,t)=>{const n=An(`Primitive.${t}`),r=s.forwardRef((o,a)=>{const{asChild:i,...c}=o,h=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(h,{...c,ref:a})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Io(e,t){e&&xn.flushSync(()=>e.dispatchEvent(t))}function We(e){const t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>((...n)=>t.current?.(...n)),[])}var Lo="DismissableLayer",Ft="dismissableLayer.update",Mo="dismissableLayer.pointerDownOutside",_o="dismissableLayer.focusOutside",Jt,Ut=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),On=s.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:o,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:c,onDismiss:h,...m}=e,l=s.useContext(Ut),[u,v]=s.useState(null),y=u?.ownerDocument??globalThis?.document,[,E]=s.useState({}),f=xe(t,v),b=Array.from(l.layers),[w]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),T=w?b.indexOf(w):-1,d=u?b.indexOf(u):-1,g=l.layersWithOutsidePointerEventsDisabled.size>0,A=d>=T,I=s.useRef(!1),C=Ho(N=>{a?.(N),c?.(N),N.defaultPrevented||h?.()},{ownerDocument:y,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:I,dismissableSurfaces:l.dismissableSurfaces,shouldHandlePointerDownOutside:s.useCallback(N=>{if(!(N instanceof Node))return!1;const H=[...l.branches].some(R=>R.contains(N));return A&&!H},[l.branches,A])}),P=Wo(N=>{if(r&&I.current)return;const H=N.target;[...l.branches].some(U=>U.contains(H))||(i?.(N),c?.(N),N.defaultPrevented||h?.())},y),k=u?d===b.length-1:!1,F=We(N=>{N.key==="Escape"&&(o?.(N),!N.defaultPrevented&&h&&(N.preventDefault(),h()))});return s.useEffect(()=>{if(k)return y.addEventListener("keydown",F,{capture:!0}),()=>y.removeEventListener("keydown",F,{capture:!0})},[y,k,F]),s.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(Jt=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),en(),()=>{n&&(l.layersWithOutsidePointerEventsDisabled.delete(u),l.layersWithOutsidePointerEventsDisabled.size===0&&(y.body.style.pointerEvents=Jt))}},[u,y,n,l]),s.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),en())},[u,l]),s.useEffect(()=>{const N=()=>E({});return document.addEventListener(Ft,N),()=>document.removeEventListener(Ft,N)},[]),p.jsx(le.div,{...m,ref:f,style:{pointerEvents:g?A?"auto":"none":void 0,...e.style},onFocusCapture:ve(e.onFocusCapture,P.onFocusCapture),onBlurCapture:ve(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:ve(e.onPointerDownCapture,C.onPointerDownCapture)})});On.displayName=Lo;var jo="DismissableLayerBranch",Fo=s.forwardRef((e,t)=>{const n=s.useContext(Ut),r=s.useRef(null),o=xe(t,r);return s.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),p.jsx(le.div,{...e,ref:o})});Fo.displayName=jo;function $o(){const e=s.useContext(Ut),[t,n]=s.useState(null);return s.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}var Bo=()=>!0;function Ho(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:a,shouldHandlePointerDownOutside:i=Bo}=t,c=We(e),h=s.useRef(!1),m=s.useRef(!1),l=s.useRef(new Map),u=s.useRef(()=>{});return s.useEffect(()=>{function v(){m.current=!1,o.current=!1,l.current.clear()}function y(){return Array.from(l.current.values()).some(Boolean)}function E(d){if(!m.current)return;const g=d.target;g instanceof Node&&[...a].some(I=>I.contains(g))||l.current.set(d.type,!0),d.type==="click"&&window.setTimeout(()=>{m.current&&u.current()},0)}function f(d){m.current&&l.current.set(d.type,!1)}const b=d=>{if(d.target&&!h.current){let g=function(){n.removeEventListener("click",u.current);const I=y();v(),I||Nn(Mo,c,A,{discrete:!0})};if(!i(d.target)){n.removeEventListener("click",u.current),v(),h.current=!1;return}const A={originalEvent:d};m.current=!0,o.current=r&&d.button===0,l.current.clear(),!r||d.button!==0?g():(n.removeEventListener("click",u.current),u.current=g,n.addEventListener("click",u.current,{once:!0}))}else n.removeEventListener("click",u.current),v();h.current=!1},w=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const d of w)n.addEventListener(d,E,!0),n.addEventListener(d,f);const T=window.setTimeout(()=>{n.addEventListener("pointerdown",b)},0);return()=>{window.clearTimeout(T),n.removeEventListener("pointerdown",b),n.removeEventListener("click",u.current);for(const d of w)n.removeEventListener(d,E,!0),n.removeEventListener(d,f)}},[n,c,r,o,a,i]),{onPointerDownCapture:()=>h.current=!0}}function Wo(e,t=globalThis?.document){const n=We(e),r=s.useRef(!1);return s.useEffect(()=>{const o=a=>{a.target&&!r.current&&Nn(_o,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function en(){const e=new CustomEvent(Ft);document.dispatchEvent(e)}function Nn(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Io(o,a):o.dispatchEvent(a)}var et=0,De=null;function Uo(){s.useEffect(()=>{De||(De={start:tn(),end:tn()});const{start:e,end:t}=De;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),et++,()=>{et===1&&(De?.start.remove(),De?.end.remove(),De=null),et=Math.max(0,et-1)}},[])}function tn(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ct="focusScope.autoFocusOnMount",Rt="focusScope.autoFocusOnUnmount",nn={bubbles:!1,cancelable:!0},Vo="FocusScope",kn=s.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[c,h]=s.useState(null),m=We(o),l=We(a),u=s.useRef(null),v=xe(t,h),y=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(r){let f=function(d){if(y.paused||!c)return;const g=d.target;c.contains(g)?u.current=g:pe(u.current,{select:!0})},b=function(d){if(y.paused||!c)return;const g=d.relatedTarget;g!==null&&(c.contains(g)||pe(u.current,{select:!0}))},w=function(d){if(document.activeElement===document.body)for(const A of d)A.removedNodes.length>0&&pe(c)};document.addEventListener("focusin",f),document.addEventListener("focusout",b);const T=new MutationObserver(w);return c&&T.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",f),document.removeEventListener("focusout",b),T.disconnect()}}},[r,c,y.paused]),s.useEffect(()=>{if(c){on.add(y);const f=document.activeElement;if(!c.contains(f)){const w=new CustomEvent(Ct,nn);c.addEventListener(Ct,m),c.dispatchEvent(w),w.defaultPrevented||(zo(Go(Pn(c)),{select:!0}),document.activeElement===f&&pe(c))}return()=>{c.removeEventListener(Ct,m),setTimeout(()=>{const w=new CustomEvent(Rt,nn);c.addEventListener(Rt,l),c.dispatchEvent(w),w.defaultPrevented||pe(f??document.body,{select:!0}),c.removeEventListener(Rt,l),on.remove(y)},0)}}},[c,m,l,y]);const E=s.useCallback(f=>{if(!n&&!r||y.paused)return;const b=f.key==="Tab"&&!f.altKey&&!f.ctrlKey&&!f.metaKey,w=document.activeElement;if(b&&w){const T=f.currentTarget,[d,g]=qo(T);d&&g?!f.shiftKey&&w===g?(f.preventDefault(),n&&pe(d,{select:!0})):f.shiftKey&&w===d&&(f.preventDefault(),n&&pe(g,{select:!0})):w===T&&f.preventDefault()}},[n,r,y.paused]);return p.jsx(le.div,{tabIndex:-1,...i,ref:v,onKeyDown:E})});kn.displayName=Vo;function zo(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(pe(r,{select:t}),document.activeElement!==n)return}function qo(e){const t=Pn(e),n=rn(t,e),r=rn(t.reverse(),e);return[n,r]}function Pn(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function rn(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):Ko(r,{upTo:t})))return r}function Ko(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Yo(e){return e instanceof HTMLInputElement&&"select"in e}function pe(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Yo(e)&&t&&e.select()}}var on=Xo();function Xo(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=an(e,t),e.unshift(t)},remove(t){e=an(e,t),e[0]?.resume()}}}function an(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Go(e){return e.filter(t=>t.tagName!=="A")}var Qo=Wt[" useId ".trim().toString()]||(()=>{}),Zo=0;function Dt(e){const[t,n]=s.useState(Qo());return He(()=>{n(r=>r??String(Zo++))},[e]),e||(t?`radix-${t}`:"")}var Jo="Portal",In=s.forwardRef((e,t)=>{const{container:n,...r}=e,[o,a]=s.useState(!1);He(()=>a(!0),[]);const i=n||o&&globalThis?.document?.body;return i?xn.createPortal(p.jsx(le.div,{...r,ref:t}),i):null});In.displayName=Jo;function ea(e,t){return s.useReducer((n,r)=>t[n][r]??n,e)}var mt=e=>{const{present:t,children:n}=e,r=ta(t),o=typeof n=="function"?n({present:r.isPresent}):s.Children.only(n),a=na(r.ref,ra(o));return typeof n=="function"||r.isPresent?s.cloneElement(o,{ref:a}):null};mt.displayName="Presence";function ta(e){const[t,n]=s.useState(),r=s.useRef(null),o=s.useRef(e),a=s.useRef("none"),i=s.useRef(void 0),c=e?"mounted":"unmounted",[h,m]=ea(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return s.useEffect(()=>{h==="mounted"?(a.current=i.current??Fe(r.current),i.current=void 0):a.current="none"},[h]),He(()=>{const l=r.current,u=o.current;if(u!==e){const y=a.current,E=Fe(l);e?(i.current=E,m("MOUNT")):E==="none"||l?.display==="none"?m("UNMOUNT"):m(u&&y!==E?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,m]),He(()=>{if(t){let l;const u=t.ownerDocument.defaultView??window,v=E=>{const b=Fe(r.current).includes(CSS.escape(E.animationName));if(E.target===t&&b&&(m("ANIMATION_END"),!o.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",l=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},y=E=>{E.target===t&&(a.current=Fe(r.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",v),t.addEventListener("animationend",v),()=>{u.clearTimeout(l),t.removeEventListener("animationstart",y),t.removeEventListener("animationcancel",v),t.removeEventListener("animationend",v)}}else m("ANIMATION_END")},[t,m]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:s.useCallback(l=>{if(l){const u=getComputedStyle(l);r.current=u,i.current=Fe(u)}else r.current=null;n(l)},[])}}function sn(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function na(...e){const t=s.useRef(e);return t.current=e,s.useCallback(n=>{const r=t.current;let o=!1;const a=r.map(i=>{const c=sn(i,n);return!o&&typeof c=="function"&&(o=!0),c});if(o)return()=>{for(let i=0;i<a.length;i++){const c=a[i];typeof c=="function"?c():sn(r[i],null)}}},[])}function Fe(e){return e?.animationName||"none"}function ra(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var oa=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Te=new WeakMap,tt=new WeakMap,nt={},Tt=0,Ln=function(e){return e&&(e.host||Ln(e.parentNode))},aa=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=Ln(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},sa=function(e,t,n,r){var o=aa(t,Array.isArray(e)?e:[e]);nt[n]||(nt[n]=new WeakMap);var a=nt[n],i=[],c=new Set,h=new Set(o),m=function(u){!u||c.has(u)||(c.add(u),m(u.parentNode))};o.forEach(m);var l=function(u){!u||h.has(u)||Array.prototype.forEach.call(u.children,function(v){if(c.has(v))l(v);else try{var y=v.getAttribute(r),E=y!==null&&y!=="false",f=(Te.get(v)||0)+1,b=(a.get(v)||0)+1;Te.set(v,f),a.set(v,b),i.push(v),f===1&&E&&tt.set(v,!0),b===1&&v.setAttribute(n,"true"),E||v.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",v,w)}})};return l(t),c.clear(),Tt++,function(){i.forEach(function(u){var v=Te.get(u)-1,y=a.get(u)-1;Te.set(u,v),a.set(u,y),v||(tt.has(u)||u.removeAttribute(r),tt.delete(u)),y||u.removeAttribute(n)}),Tt--,Tt||(Te=new WeakMap,Te=new WeakMap,tt=new WeakMap,nt={})}},ia=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=oa(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),sa(r,o,n,"aria-hidden")):function(){return null}},it="right-scroll-bar-position",ct="width-before-scroll-bar",ca="with-scroll-bars-hidden",ua="--removed-body-scroll-bar-size";function At(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function la(e,t){var n=s.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var da=typeof window<"u"?s.useLayoutEffect:s.useEffect,cn=new WeakMap;function fa(e,t){var n=la(null,function(r){return e.forEach(function(o){return At(o,r)})});return da(function(){var r=cn.get(n);if(r){var o=new Set(r),a=new Set(e),i=n.current;o.forEach(function(c){a.has(c)||At(c,null)}),a.forEach(function(c){o.has(c)||At(c,i)})}cn.set(n,e)},[e]),n}function ma(e){return e}function pa(e,t){t===void 0&&(t=ma);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(a){var i=t(a,r);return n.push(i),function(){n=n.filter(function(c){return c!==i})}},assignSyncMedium:function(a){for(r=!0;n.length;){var i=n;n=[],i.forEach(a)}n={push:function(c){return a(c)},filter:function(){return n}}},assignMedium:function(a){r=!0;var i=[];if(n.length){var c=n;n=[],c.forEach(a),i=n}var h=function(){var l=i;i=[],l.forEach(a)},m=function(){return Promise.resolve().then(h)};m(),n={push:function(l){i.push(l),m()},filter:function(l){return i=i.filter(l),n}}}};return o}function ha(e){e===void 0&&(e={});var t=pa(null);return t.options=he({async:!0,ssr:!1},e),t}var Mn=function(e){var t=e.sideCar,n=Cn(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return s.createElement(r,he({},n))};Mn.isSideCarExport=!0;function va(e,t){return e.useMedium(t),Mn}var _n=ha(),Ot=function(){},pt=s.forwardRef(function(e,t){var n=s.useRef(null),r=s.useState({onScrollCapture:Ot,onWheelCapture:Ot,onTouchMoveCapture:Ot}),o=r[0],a=r[1],i=e.forwardProps,c=e.children,h=e.className,m=e.removeScrollBar,l=e.enabled,u=e.shards,v=e.sideCar,y=e.noRelative,E=e.noIsolation,f=e.inert,b=e.allowPinchZoom,w=e.as,T=w===void 0?"div":w,d=e.gapMode,g=Cn(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),A=v,I=fa([n,t]),C=he(he({},g),o);return s.createElement(s.Fragment,null,l&&s.createElement(A,{sideCar:_n,removeScrollBar:m,shards:u,noRelative:y,noIsolation:E,inert:f,setCallbacks:a,allowPinchZoom:!!b,lockRef:n,gapMode:d}),i?s.cloneElement(s.Children.only(c),he(he({},C),{ref:I})):s.createElement(T,he({},C,{className:h,ref:I}),c))});pt.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};pt.classNames={fullWidth:ct,zeroRight:it};var ga=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function wa(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=ga();return t&&e.setAttribute("nonce",t),e}function ya(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function ba(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Ea=function(){var e=0,t=null;return{add:function(n){e==0&&(t=wa())&&(ya(t,n),ba(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Sa=function(){var e=Ea();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},jn=function(){var e=Sa(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},xa={left:0,top:0,right:0,gap:0},Nt=function(e){return parseInt(e||"",10)||0},Ca=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Nt(n),Nt(r),Nt(o)]},Ra=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return xa;var t=Ca(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Da=jn(),Ne="data-scroll-locked",Ta=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,c=e.gap;return n===void 0&&(n="margin"),`
|
|
4
4
|
.`.concat(ca,` {
|
|
5
5
|
overflow: hidden `).concat(r,`;
|
|
@@ -40,7 +40,7 @@ import{j as p,X as fr,b as mr,B as Yt,af as pr,f as hr,T as vr,r as s,bV as gr,b
|
|
|
40
40
|
`)},un=function(){var e=parseInt(document.body.getAttribute(Ne)||"0",10);return isFinite(e)?e:0},Aa=function(){s.useEffect(function(){return document.body.setAttribute(Ne,(un()+1).toString()),function(){var e=un()-1;e<=0?document.body.removeAttribute(Ne):document.body.setAttribute(Ne,e.toString())}},[])},Oa=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Aa();var a=s.useMemo(function(){return Ra(o)},[o]);return s.createElement(Da,{styles:Ta(a,!t,o,n?"":"!important")})},$t=!1;if(typeof window<"u")try{var rt=Object.defineProperty({},"passive",{get:function(){return $t=!0,!0}});window.addEventListener("test",rt,rt),window.removeEventListener("test",rt,rt)}catch{$t=!1}var Ae=$t?{passive:!1}:!1,Na=function(e){return e.tagName==="TEXTAREA"},Fn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Na(e)&&n[t]==="visible")},ka=function(e){return Fn(e,"overflowY")},Pa=function(e){return Fn(e,"overflowX")},ln=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=$n(e,r);if(o){var a=Bn(e,r),i=a[1],c=a[2];if(i>c)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Ia=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},La=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},$n=function(e,t){return e==="v"?ka(t):Pa(t)},Bn=function(e,t){return e==="v"?Ia(t):La(t)},Ma=function(e,t){return e==="h"&&t==="rtl"?-1:1},_a=function(e,t,n,r,o){var a=Ma(e,window.getComputedStyle(t).direction),i=a*r,c=n.target,h=t.contains(c),m=!1,l=i>0,u=0,v=0;do{if(!c)break;var y=Bn(e,c),E=y[0],f=y[1],b=y[2],w=f-b-a*E;(E||w)&&$n(e,c)&&(u+=w,v+=E);var T=c.parentNode;c=T&&T.nodeType===Node.DOCUMENT_FRAGMENT_NODE?T.host:T}while(!h&&c!==document.body||h&&(t.contains(c)||t===c));return(l&&Math.abs(u)<1||!l&&Math.abs(v)<1)&&(m=!0),m},ot=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},dn=function(e){return[e.deltaX,e.deltaY]},fn=function(e){return e&&"current"in e?e.current:e},ja=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Fa=function(e){return`
|
|
41
41
|
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
42
42
|
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
43
|
-
`)},$a=0,Oe=[];function Ba(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),o=s.useState($a++)[0],a=s.useState(jn)[0],i=s.useRef(e);s.useEffect(function(){i.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var f=xr([e.lockRef.current],(e.shards||[]).map(fn),!0).filter(Boolean);return f.forEach(function(b){return b.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),f.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(f,b){if("touches"in f&&f.touches.length===2||f.type==="wheel"&&f.ctrlKey)return!i.current.allowPinchZoom;var w=ot(f),T=n.current,d="deltaX"in f?f.deltaX:T[0]-w[0],g="deltaY"in f?f.deltaY:T[1]-w[1],A,I=f.target,C=Math.abs(d)>Math.abs(g)?"h":"v";if("touches"in f&&C==="h"&&I.type==="range")return!1;var P=window.getSelection(),k=P&&P.anchorNode,F=k?k===I||k.contains(I):!1;if(F)return!1;var N=ln(C,I);if(!N)return!0;if(N?A=C:(A=C==="v"?"h":"v",N=ln(C,I)),!N)return!1;if(!r.current&&"changedTouches"in f&&(d||g)&&(r.current=A),!A)return!0;var H=r.current||A;return _a(H,b,f,H==="h"?d:g)},[]),h=s.useCallback(function(f){var b=f;if(!(!Oe.length||Oe[Oe.length-1]!==a)){var w="deltaY"in b?dn(b):ot(b),T=t.current.filter(function(A){return A.name===b.type&&(A.target===b.target||b.target===A.shadowParent)&&ja(A.delta,w)})[0];if(T&&T.should){b.cancelable&&b.preventDefault();return}if(!T){var d=(i.current.shards||[]).map(fn).filter(Boolean).filter(function(A){return A.contains(b.target)}),g=d.length>0?c(b,d[0]):!i.current.noIsolation;g&&b.cancelable&&b.preventDefault()}}},[]),m=s.useCallback(function(f,b,w,T){var d={name:f,delta:b,target:w,should:T,shadowParent:Ha(w)};t.current.push(d),setTimeout(function(){t.current=t.current.filter(function(g){return g!==d})},1)},[]),l=s.useCallback(function(f){n.current=ot(f),r.current=void 0},[]),u=s.useCallback(function(f){m(f.type,dn(f),f.target,c(f,e.lockRef.current))},[]),v=s.useCallback(function(f){m(f.type,ot(f),f.target,c(f,e.lockRef.current))},[]);s.useEffect(function(){return Oe.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:v}),document.addEventListener("wheel",h,Ae),document.addEventListener("touchmove",h,Ae),document.addEventListener("touchstart",l,Ae),function(){Oe=Oe.filter(function(f){return f!==a}),document.removeEventListener("wheel",h,Ae),document.removeEventListener("touchmove",h,Ae),document.removeEventListener("touchstart",l,Ae)}},[]);var y=e.removeScrollBar,E=e.inert;return s.createElement(s.Fragment,null,E?s.createElement(a,{styles:Fa(o)}):null,y?s.createElement(Oa,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ha(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Wa=va(_n,Ba);var Hn=s.forwardRef(function(e,t){return s.createElement(pt,he({},e,{ref:t,sideCar:Wa}))});Hn.classNames=pt.classNames;const oi=({enabled:e=!0,bindings:t,capture:n=!1})=>{const r=s.useCallback(o=>{const a=o.target;if(!(a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable))for(const i of t){if(!(o.key.toLowerCase()===i.key.toLowerCase())||i.requireShift!==void 0&&i.requireShift!==o.shiftKey)continue;const h=o.ctrlKey||o.metaKey;if(i.requireMeta!==void 0){if(i.requireMeta!==h)continue}else{const m=i.noModifiers??!0,l=h||o.altKey||i.requireShift===void 0&&o.shiftKey;if(m&&l)continue}i.preventDefault&&o.preventDefault(),i.stopPropagation&&(o.stopPropagation(),o.stopImmediatePropagation()),i.handler(o);return}},[t]);s.useEffect(()=>{if(e)return window.addEventListener("keydown",r,n),()=>window.removeEventListener("keydown",r,n)},[e,r,n])},Ua=(e,t)=>e===void 0&&t.toAddresses.length===0,Va={status:"unsaved",reason:"Not saved — add a To address to keep this draft."},mn={status:"idle"},za={status:"saving"},pn={status:"saved"},hn={status:"error"},qa=e=>e.then(()=>{},()=>{}),Ka=({outboxMessageId:e,onDraftCreated:t})=>{const[n,r]=s.useState(mn),[o,a]=s.useState(null),i=s.useRef(void 0),c=s.useRef(new Set),h=Cr(),m=s.useRef(e),l=s.useRef(e);if(m.current!==e){const d=m.current!==void 0;m.current=e,l.current=e,d&&i.current&&clearTimeout(i.current)}const u=ut({...Rr(),meta:lt}),v=ut({...Dr(),meta:lt}),y=s.useCallback(async d=>{r(za),a(null);const g=l.current;if(g){const I=await v.mutateAsync({path:{outboxMessageId:g},body:{toAddresses:d.toAddresses,ccAddresses:d.ccAddresses,bccAddresses:d.bccAddresses,subject:d.subject,textBody:d.textBody,htmlBody:d.htmlBody,inReplyTo:d.inReplyTo,references:d.references}});return r(pn),I}const A=await u.mutateAsync({body:{...d,sendImmediately:!1}});return l.current=A.outboxMessageId,t(A.outboxMessageId),r(pn),h.invalidateQueries({queryKey:Tr().queryKey}),A},[u.mutateAsync,v.mutateAsync,t,h]),E=s.useRef(Promise.resolve()),f=s.useCallback(d=>{const g=E.current.then(()=>y(d));return E.current=qa(g),g},[y]),b=s.useCallback(d=>{if(i.current&&clearTimeout(i.current),Ua(l.current,d)){r(Va);return}r(g=>g.status==="unsaved"?mn:g),i.current=setTimeout(()=>{const g=l.current;g&&c.current.has(g)||f(d).catch(A=>{a(A),r(hn)})},2e3)},[f]),w=s.useCallback(d=>(i.current&&clearTimeout(i.current),f(d).then(g=>({outcome:"saved",outboxMessageId:g.outboxMessageId})).catch(g=>(r(hn),{outcome:"failed",error:g}))),[f]),T=s.useCallback(d=>{i.current&&clearTimeout(i.current),d&&c.current.add(d)},[]);return{saveState:n,saveError:o,saveDraft:b,saveImmediately:w,stopAutoSave:T}},Ya=e=>e.outboundCount>0||e.replyCount>0||e.flags?.vip?.value===!0||e.flags?.trusted?.value===!0,Xa=e=>e.flags?.blocked?.value===!0?!1:e.flags?.junkOnly?.value!==!0?!0:Ya(e),kt=({label:e,addresses:t,onChange:n,placeholder:r})=>{const[o,a]=s.useState(""),i=Vr(o,200),{data:c}=dt({...Ar({query:{q:i,limit:8}}),enabled:i.length>=2}),h=s.useMemo(()=>(c?.items??[]).filter(Xa).map(m=>({email:m.normalizedEmail,displayName:m.displayName})),[c]);return p.jsx(Qr,{label:e,addresses:t,onChange:n,placeholder:r,suggestions:h,onQueryChange:a})},Ga=({accountId:e,configureRef:t})=>{const n=Or();return p.jsx(no,{configureRef:t,onConfigure:()=>{n({to:"/settings/accounts",search:{editAccountId:e,focusSmtp:!0}})}})},Qa={download:"its dictionary could not be downloaded",engine:"the checker could not start",worker:"the checker stopped running"},Za=e=>{const t=`Spellcheck for ${e.language} is off: ${Qa[e.reason]}.`;return{severity:"warning",title:"Spellcheck stopped",detail:`${t} Your browser is checking this message instead. ${e.detail}`,action:{label:"Report this",href:Nr(kr({title:`Spellcheck stopped: ${e.reason} (${e.language})`,errorMessage:`${t} ${e.detail}`}))}}},Ja=e=>({provider:async t=>{const{openSpellcheckWorker:n}=await Rn(async()=>{const{openSpellcheckWorker:r}=await import("./rich-text-spellcheck-worker-provider-
|
|
43
|
+
`)},$a=0,Oe=[];function Ba(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),o=s.useState($a++)[0],a=s.useState(jn)[0],i=s.useRef(e);s.useEffect(function(){i.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var f=xr([e.lockRef.current],(e.shards||[]).map(fn),!0).filter(Boolean);return f.forEach(function(b){return b.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),f.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(f,b){if("touches"in f&&f.touches.length===2||f.type==="wheel"&&f.ctrlKey)return!i.current.allowPinchZoom;var w=ot(f),T=n.current,d="deltaX"in f?f.deltaX:T[0]-w[0],g="deltaY"in f?f.deltaY:T[1]-w[1],A,I=f.target,C=Math.abs(d)>Math.abs(g)?"h":"v";if("touches"in f&&C==="h"&&I.type==="range")return!1;var P=window.getSelection(),k=P&&P.anchorNode,F=k?k===I||k.contains(I):!1;if(F)return!1;var N=ln(C,I);if(!N)return!0;if(N?A=C:(A=C==="v"?"h":"v",N=ln(C,I)),!N)return!1;if(!r.current&&"changedTouches"in f&&(d||g)&&(r.current=A),!A)return!0;var H=r.current||A;return _a(H,b,f,H==="h"?d:g)},[]),h=s.useCallback(function(f){var b=f;if(!(!Oe.length||Oe[Oe.length-1]!==a)){var w="deltaY"in b?dn(b):ot(b),T=t.current.filter(function(A){return A.name===b.type&&(A.target===b.target||b.target===A.shadowParent)&&ja(A.delta,w)})[0];if(T&&T.should){b.cancelable&&b.preventDefault();return}if(!T){var d=(i.current.shards||[]).map(fn).filter(Boolean).filter(function(A){return A.contains(b.target)}),g=d.length>0?c(b,d[0]):!i.current.noIsolation;g&&b.cancelable&&b.preventDefault()}}},[]),m=s.useCallback(function(f,b,w,T){var d={name:f,delta:b,target:w,should:T,shadowParent:Ha(w)};t.current.push(d),setTimeout(function(){t.current=t.current.filter(function(g){return g!==d})},1)},[]),l=s.useCallback(function(f){n.current=ot(f),r.current=void 0},[]),u=s.useCallback(function(f){m(f.type,dn(f),f.target,c(f,e.lockRef.current))},[]),v=s.useCallback(function(f){m(f.type,ot(f),f.target,c(f,e.lockRef.current))},[]);s.useEffect(function(){return Oe.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:v}),document.addEventListener("wheel",h,Ae),document.addEventListener("touchmove",h,Ae),document.addEventListener("touchstart",l,Ae),function(){Oe=Oe.filter(function(f){return f!==a}),document.removeEventListener("wheel",h,Ae),document.removeEventListener("touchmove",h,Ae),document.removeEventListener("touchstart",l,Ae)}},[]);var y=e.removeScrollBar,E=e.inert;return s.createElement(s.Fragment,null,E?s.createElement(a,{styles:Fa(o)}):null,y?s.createElement(Oa,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ha(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Wa=va(_n,Ba);var Hn=s.forwardRef(function(e,t){return s.createElement(pt,he({},e,{ref:t,sideCar:Wa}))});Hn.classNames=pt.classNames;const oi=({enabled:e=!0,bindings:t,capture:n=!1})=>{const r=s.useCallback(o=>{const a=o.target;if(!(a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable))for(const i of t){if(!(o.key.toLowerCase()===i.key.toLowerCase())||i.requireShift!==void 0&&i.requireShift!==o.shiftKey)continue;const h=o.ctrlKey||o.metaKey;if(i.requireMeta!==void 0){if(i.requireMeta!==h)continue}else{const m=i.noModifiers??!0,l=h||o.altKey||i.requireShift===void 0&&o.shiftKey;if(m&&l)continue}i.preventDefault&&o.preventDefault(),i.stopPropagation&&(o.stopPropagation(),o.stopImmediatePropagation()),i.handler(o);return}},[t]);s.useEffect(()=>{if(e)return window.addEventListener("keydown",r,n),()=>window.removeEventListener("keydown",r,n)},[e,r,n])},Ua=(e,t)=>e===void 0&&t.toAddresses.length===0,Va={status:"unsaved",reason:"Not saved — add a To address to keep this draft."},mn={status:"idle"},za={status:"saving"},pn={status:"saved"},hn={status:"error"},qa=e=>e.then(()=>{},()=>{}),Ka=({outboxMessageId:e,onDraftCreated:t})=>{const[n,r]=s.useState(mn),[o,a]=s.useState(null),i=s.useRef(void 0),c=s.useRef(new Set),h=Cr(),m=s.useRef(e),l=s.useRef(e);if(m.current!==e){const d=m.current!==void 0;m.current=e,l.current=e,d&&i.current&&clearTimeout(i.current)}const u=ut({...Rr(),meta:lt}),v=ut({...Dr(),meta:lt}),y=s.useCallback(async d=>{r(za),a(null);const g=l.current;if(g){const I=await v.mutateAsync({path:{outboxMessageId:g},body:{toAddresses:d.toAddresses,ccAddresses:d.ccAddresses,bccAddresses:d.bccAddresses,subject:d.subject,textBody:d.textBody,htmlBody:d.htmlBody,inReplyTo:d.inReplyTo,references:d.references}});return r(pn),I}const A=await u.mutateAsync({body:{...d,sendImmediately:!1}});return l.current=A.outboxMessageId,t(A.outboxMessageId),r(pn),h.invalidateQueries({queryKey:Tr().queryKey}),A},[u.mutateAsync,v.mutateAsync,t,h]),E=s.useRef(Promise.resolve()),f=s.useCallback(d=>{const g=E.current.then(()=>y(d));return E.current=qa(g),g},[y]),b=s.useCallback(d=>{if(i.current&&clearTimeout(i.current),Ua(l.current,d)){r(Va);return}r(g=>g.status==="unsaved"?mn:g),i.current=setTimeout(()=>{const g=l.current;g&&c.current.has(g)||f(d).catch(A=>{a(A),r(hn)})},2e3)},[f]),w=s.useCallback(d=>(i.current&&clearTimeout(i.current),f(d).then(g=>({outcome:"saved",outboxMessageId:g.outboxMessageId})).catch(g=>(r(hn),{outcome:"failed",error:g}))),[f]),T=s.useCallback(d=>{i.current&&clearTimeout(i.current),d&&c.current.add(d)},[]);return{saveState:n,saveError:o,saveDraft:b,saveImmediately:w,stopAutoSave:T}},Ya=e=>e.outboundCount>0||e.replyCount>0||e.flags?.vip?.value===!0||e.flags?.trusted?.value===!0,Xa=e=>e.flags?.blocked?.value===!0?!1:e.flags?.junkOnly?.value!==!0?!0:Ya(e),kt=({label:e,addresses:t,onChange:n,placeholder:r})=>{const[o,a]=s.useState(""),i=Vr(o,200),{data:c}=dt({...Ar({query:{q:i,limit:8}}),enabled:i.length>=2}),h=s.useMemo(()=>(c?.items??[]).filter(Xa).map(m=>({email:m.normalizedEmail,displayName:m.displayName})),[c]);return p.jsx(Qr,{label:e,addresses:t,onChange:n,placeholder:r,suggestions:h,onQueryChange:a})},Ga=({accountId:e,configureRef:t})=>{const n=Or();return p.jsx(no,{configureRef:t,onConfigure:()=>{n({to:"/settings/accounts",search:{editAccountId:e,focusSmtp:!0}})}})},Qa={download:"its dictionary could not be downloaded",engine:"the checker could not start",worker:"the checker stopped running"},Za=e=>{const t=`Spellcheck for ${e.language} is off: ${Qa[e.reason]}.`;return{severity:"warning",title:"Spellcheck stopped",detail:`${t} Your browser is checking this message instead. ${e.detail}`,action:{label:"Report this",href:Nr(kr({title:`Spellcheck stopped: ${e.reason} (${e.language})`,errorMessage:`${t} ${e.detail}`}))}}},Ja=e=>({provider:async t=>{const{openSpellcheckWorker:n}=await Rn(async()=>{const{openSpellcheckWorker:r}=await import("./rich-text-spellcheck-worker-provider-BGwkiVuq.js");return{openSpellcheckWorker:r}},__vite__mapDeps([0,1,2,3]));return n(t)},onStatus:t=>{t.state==="failed"&&e(Za(t))}}),vn=150,es=()=>{const[e,t]=s.useState(()=>{if(typeof window>"u"||!window.visualViewport)return{viewportHeight:0,isKeyboardOpen:!1};const n=window.visualViewport.height;return{viewportHeight:n,isKeyboardOpen:window.innerHeight-n>vn}});return s.useEffect(()=>{if(typeof window>"u"||!window.visualViewport)return;const n=window.visualViewport,r=()=>{const o=n.height;t({viewportHeight:o,isKeyboardOpen:window.innerHeight-o>vn})};return r(),n.addEventListener("resize",r),()=>n.removeEventListener("resize",r)},[]),e},ts=({selectedAccountId:e,onSelect:t})=>{const{data:n}=dt({...Dn(),staleTime:1/0}),r=n?.accounts??[];if(s.useEffect(()=>{!e&&r.length===1&&r[0]&&t(r[0])},[e,r,t]),r.length<=1){const o=r[0];return o?p.jsxs("div",{className:"flex items-start gap-2",children:[p.jsx("label",{className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"From:"}),p.jsx("div",{className:"text-sm py-1.5",children:o.email})]}):null}return p.jsxs("div",{className:"flex items-start gap-2",children:[p.jsx("label",{htmlFor:"from-account-selector",className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"From:"}),p.jsx("select",{id:"from-account-selector",value:e??"",onChange:o=>{const a=r.find(i=>i.accountId===o.target.value);a&&t(a)},className:"flex-1 px-2 py-1.5 border rounded-md bg-canvas text-sm",children:r.map(o=>p.jsx("option",{value:o.accountId,children:o.email},o.accountId))})]})},ns=s.lazy(()=>Rn(()=>import("./rich-text-NcFIx6xE.js"),__vite__mapDeps([4,1,2,5,6,7,8,3,9,10,11,12])).then(e=>({default:e.ComposeBody}))),rs=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),os=e=>e.split(`
|
|
44
44
|
`).map(t=>`<p>${rs(t)}</p>`).join(""),as=e=>e?`<p></p><p>-- </p>${os(e)}`:"",Pt=e=>({html:as(e),text:e}),ss=e=>e?/^re:\s/i.test(e)?e:`Re: ${e}`:"Re: ",is=e=>e?/^fwd?:\s/i.test(e)?e:`Fwd: ${e}`:"Fwd: ",cs=(e,t,n)=>{const{envelope:r}=e,a=(r.replyTo.length>0?r.replyTo:r.from).map(m=>({email:m.normalizedEmail,displayName:m.displayName}));if(t!=="reply-all")return{to:a,cc:[]};const i=n?.toLowerCase(),c=new Set(a.map(m=>m.email.toLowerCase())),h=[...r.to,...r.cc].filter(m=>m.normalizedEmail.toLowerCase()!==i&&!c.has(m.normalizedEmail.toLowerCase())).map(m=>({email:m.normalizedEmail,displayName:m.displayName}));return{to:a,cc:h}},us=e=>{const t=e.envelope.messageIdValue,r=[...e.references.filter(o=>o.referenceType==="references").sort((o,a)=>o.referenceOrder-a.referenceOrder).map(o=>o.messageIdValue)];return t&&!r.includes(t)&&r.push(t),{inReplyTo:t,references:r}},gn=(e,t,n)=>({textBody:t.text||void 0,htmlBody:e==="plain"?"":t.html?Br(t.html,n):void 0}),ls="Add a To address before sending.",ds=(e,t,n,r,o)=>e.length===0&&t.length===0&&n.length===0&&r.trim()===""&&o.text.trim()==="",fs=({documentGeneration:e,selectedAccountId:t,onAccountChange:n,toAddresses:r,setToAddresses:o,ccAddresses:a,setCcAddresses:i,bccAddresses:c,setBccAddresses:h,showCc:m,setShowCc:l,showBcc:u,setShowBcc:v,subject:y,setSubject:E})=>{const f=zr(),{isKeyboardOpen:b}=es(),[w,T]=s.useState(void 0),d=w===e;return p.jsx(to,{collapsed:!f&&b&&!d,onExpand:()=>T(e),summary:eo({to:r,cc:a,bcc:c,subject:y}),from:p.jsx(ts,{selectedAccountId:t,onSelect:n}),to:p.jsx(kt,{label:"To",addresses:r,onChange:o,placeholder:"Recipients"}),cc:m?p.jsx(kt,{label:"Cc",addresses:a,onChange:i}):void 0,bcc:u?p.jsx(kt,{label:"Bcc",addresses:c,onChange:h}):void 0,subject:p.jsx(ro,{value:y,onChange:E}),onShowCc:()=>l(!0),onShowBcc:()=>v(!0)})},ai=({mode:e,account:t,sourceMessage:n,outboxMessageId:r,onDraftCreated:o,onClose:a,onAccountChange:i,layout:c="fill"})=>{const{startSendPolling:h}=Pr(),{pushError:m}=Ir(),[l,u]=s.useState([]),[v,y]=s.useState([]),[E,f]=s.useState([]),[b,w]=s.useState(""),[T,d]=s.useState(!1),[g,A]=s.useState(!1),[I,C]=s.useState(t?.accountId),[P,k]=s.useState(!1),[F,N]=s.useState(r),H=s.useRef(null),R=s.useRef(r),U=s.useRef(r!==void 0),K=s.useRef(t?.accountId);s.useEffect(()=>{const x=t?.accountId;!x||K.current===x||(K.current=x,!U.current&&C(x))},[t?.accountId]),s.useEffect(()=>{const x=R.current;if(x===r||(R.current=r,x===void 0))return;U.current=r!==void 0;const L=r?{html:"",text:""}:Pt(V.current);u([]),y([]),f([]),w(""),d(!1),A(!1),Ve(L.html),se(L.text),we("rich"),Ce(void 0),oe({...L,formatting:[]}),Z(j=>j+1),k(!1),N(r)},[r]);const{signature:Y}=Wr(I),V=s.useRef(Y.plainText);V.current=Y.plainText;const[Q,Z]=s.useState(0),[ge,Ve]=s.useState(()=>Pt(Y.plainText).html),[ze,se]=s.useState(Y.plainText),[re,we]=s.useState("rich"),[de,ye]=s.useState("en"),[be,Ce]=s.useState(),[ie,oe]=s.useState(()=>({...Pt(Y.plainText),formatting:[]})),{data:X}=dt({...Lr({path:{outboxMessageId:r??""}}),enabled:!!r&&!P});s.useEffect(()=>{if(!X||P)return;u(X.toAddresses.map($=>({email:$,displayName:void 0}))),X.ccAddresses&&X.ccAddresses.length>0&&(y(X.ccAddresses.map($=>({email:$,displayName:void 0}))),d(!0)),X.bccAddresses&&X.bccAddresses.length>0&&(f(X.bccAddresses.map($=>({email:$,displayName:void 0}))),A(!0)),X.subject&&w(X.subject);const x=Mr(X.htmlBody??""),L=x.html,j=X.textBody??"";we(po(X.htmlBody)),Ce(x.language??void 0),Ve(L),se(j),oe({html:L,text:j,formatting:[]}),Z($=>$+1),C(X.accountId),k(!0)},[X,P]),s.useEffect(()=>{if(!U.current&&n){if(e==="reply"||e==="reply-all"){const{to:x,cc:L}=cs(n,e,t?.email);u(x),y(L),L.length>0&&d(!0),w(ss(n.envelope.subject))}e==="forward"&&(u([]),y([]),f([]),w(is(n.envelope.subject)))}},[e,n,t?.email]);const qe=e==="reply"||e==="reply-all"||e==="forward",{data:O}=Hr({messageId:n?.message.messageId,bodyParts:n?.bodyParts,enabled:qe&&!!n}),Pe=O?.kind==="text"?O.body:"",Ie=O?.kind==="html"?mo(O.body):void 0,Le=n?.envelope.from[0]?.displayName??n?.envelope.from[0]?.normalizedEmail,vt=s.useCallback(x=>{k(!0),N(x),o(x)},[o]),{saveState:gt,saveError:J,saveDraft:Me,saveImmediately:Ke,stopAutoSave:ee}=Ka({outboxMessageId:r,onDraftCreated:vt});s.useEffect(()=>{J&&m({title:"Couldn't save draft",detail:St(J)??"Saving the draft failed.",error:J})},[J,m]);const Ye=ut({..._r(),meta:lt}),_e=ut({...Fr(),meta:lt,onError:x=>{m(jr("Couldn't discard draft","The draft wasn't discarded.",x))}}),{data:wt}=dt({...Dn(),staleTime:1/0}),Ee=wt?.accounts.find(x=>x.accountId===I),fe=Ee?Ur(Ee):!1,Re=Ee?.composeLanguages,Xe=s.useMemo(()=>Re&&Re.length>0?Re:$r(navigator.languages),[Re]),yt=s.useMemo(()=>Ja(m),[m]),ce=s.useRef(!1),[je,Ge]=s.useState(!1),me=s.useMemo(()=>je?{status:"sending"}:I?fe?{status:"blocked",reason:jt}:l.length===0?{status:"blocked",reason:ls}:{status:"ready",accountId:I}:{status:"blocked",reason:"Choose an account to send from."},[je,I,fe,l.length]),bt=me;s.useEffect(()=>{if(!I||F!==void 0&&F!==r||r&&!P||ds(l,v,E,b,ie))return;const{htmlBody:x,textBody:L}=gn(re,ie,de);Me({accountId:I,toAddresses:l.map(j=>j.email),ccAddresses:v.length>0?v.map(j=>j.email):void 0,bccAddresses:E.length>0?E.map(j=>j.email):void 0,subject:b||void 0,textBody:L,htmlBody:x})},[I,r,F,P,l,v,E,b,ie,re,de,Me]);const Qe=s.useCallback(async x=>{if(!ce.current){ce.current=!0,Ge(!0);try{ee();const L=n&&(e==="reply"||e==="reply-all")?us(n):{},{htmlBody:j,textBody:$}=gn(re,ie,de),ae=!r,G=await Ke({accountId:x,toAddresses:l.map(z=>z.email),ccAddresses:v.length>0?v.map(z=>z.email):void 0,bccAddresses:E.length>0?E.map(z=>z.email):void 0,subject:b||void 0,textBody:$,htmlBody:j,...L});if(G.outcome==="failed"){m({title:"Couldn't send message",detail:St(G.error)??"Saving the message failed, so nothing was sent. Try again.",error:G.error});return}const te=G.outboxMessageId;if(await Ye.mutateAsync({path:{outboxMessageId:te}}).catch(z=>(m({title:"Couldn't send message",detail:St(z)??(ae?"The draft was saved but the send request failed. Try again from the Outbox.":"The send request failed. Try again."),error:z}),null))===null)return;ee(te),h(te),a()}finally{ce.current=!1,Ge(!1)}}},[l,v,E,b,ie,re,de,e,n,r,Ke,Ye,ee,h,m,a]),Et=s.useCallback(()=>{ee(r),r&&_e.mutate({path:{outboxMessageId:r}}),a()},[ee,r,_e,a]),D=s.useCallback(x=>{m({title:"Can't send yet",detail:x}),x===jt&&H.current?.focus()},[m]),M=s.useCallback(()=>{if(me.status!=="sending"){if(me.status==="blocked"){D(me.reason);return}Qe(me.accountId)}},[me,D,Qe]),_=s.useCallback(x=>{C(x.accountId),i?.(x)},[i]);return p.jsx(Jr,{layout:c,banner:Ee&&fe?p.jsx(Ga,{accountId:Ee.accountId,configureRef:H}):void 0,header:p.jsx(fs,{documentGeneration:Q,selectedAccountId:I,onAccountChange:_,toAddresses:l,setToAddresses:u,ccAddresses:v,setCcAddresses:y,bccAddresses:E,setBccAddresses:f,showCc:T,setShowCc:d,showBcc:g,setShowBcc:A,subject:b,setSubject:w}),quoted:Pe||Ie?p.jsx(oo,{text:Pe,html:Ie,senderName:Le}):void 0,actionBar:p.jsx(Yr,{send:bt,onSend:M,onBlocked:D,onDiscard:Et,save:gt}),children:p.jsx(s.Suspense,{fallback:p.jsx(Zr,{}),children:p.jsx(ns,{mode:re,onModeChange:we,initialHtml:ge,initialText:ze,onChange:oe,onSubmit:M,initialCaret:e==="new"?"start":void 0,onConversionError:m,languages:Xe,initialLanguage:be,onLanguageChange:ye,spellcheck:yt},Q)})})};var ht="Dialog",[Wn]=go(ht),[ms,ne]=Wn(ht),Un=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,c=s.useRef(null),h=s.useRef(null),[m,l]=bo({prop:r,defaultProp:o??!1,onChange:a,caller:ht});return p.jsx(ms,{scope:t,triggerRef:c,contentRef:h,contentId:Dt(),titleId:Dt(),descriptionId:Dt(),open:m,onOpenChange:l,onOpenToggle:s.useCallback(()=>l(u=>!u),[l]),modal:i,children:n})};Un.displayName=ht;var Vn="DialogTrigger",ps=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ne(Vn,n),a=xe(t,o.triggerRef);return p.jsx(le.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":zt(o.open),...r,ref:a,onClick:ve(e.onClick,o.onOpenToggle)})});ps.displayName=Vn;var Vt="DialogPortal",[hs,zn]=Wn(Vt,{forceMount:void 0}),qn=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=ne(Vt,t);return p.jsx(hs,{scope:t,forceMount:n,children:s.Children.map(r,i=>p.jsx(mt,{present:n||a.open,children:p.jsx(In,{asChild:!0,container:o,children:i})}))})};qn.displayName=Vt;var ft="DialogOverlay",Kn=s.forwardRef((e,t)=>{const n=zn(ft,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=ne(ft,e.__scopeDialog);return a.modal?p.jsx(mt,{present:r||a.open,children:p.jsx(gs,{...o,ref:t})}):null});Kn.displayName=ft;var vs=An("DialogOverlay.RemoveScroll"),gs=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ne(ft,n),a=$o(),i=xe(t,a);return p.jsx(Hn,{as:vs,allowPinchZoom:!0,shards:[o.contentRef],children:p.jsx(le.div,{"data-state":zt(o.open),...r,ref:i,style:{pointerEvents:"auto",...r.style}})})}),ke="DialogContent",Yn=s.forwardRef((e,t)=>{const n=zn(ke,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=ne(ke,e.__scopeDialog);return p.jsx(mt,{present:r||a.open,children:a.modal?p.jsx(ws,{...o,ref:t}):p.jsx(ys,{...o,ref:t})})});Yn.displayName=ke;var ws=s.forwardRef((e,t)=>{const n=ne(ke,e.__scopeDialog),r=s.useRef(null),o=xe(t,n.contentRef,r);return s.useEffect(()=>{const a=r.current;if(a)return ia(a)},[]),p.jsx(Xn,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:ve(e.onCloseAutoFocus,a=>{a.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:ve(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,c=i.button===0&&i.ctrlKey===!0;(i.button===2||c)&&a.preventDefault()}),onFocusOutside:ve(e.onFocusOutside,a=>a.preventDefault())})}),ys=s.forwardRef((e,t)=>{const n=ne(ke,e.__scopeDialog),r=s.useRef(!1),o=s.useRef(!1);return p.jsx(Xn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),a.defaultPrevented||(r.current||n.triggerRef.current?.focus(),a.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),a.defaultPrevented||(r.current=!0,a.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=a.target;n.triggerRef.current?.contains(i)&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&o.current&&a.preventDefault()}})}),Xn=s.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,c=ne(ke,n);return Uo(),p.jsx(p.Fragment,{children:p.jsx(kn,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:p.jsx(On,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":zt(c.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})}),Gn="DialogTitle",Qn=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ne(Gn,n);return p.jsx(le.h2,{id:o.titleId,...r,ref:t})});Qn.displayName=Gn;var Zn="DialogDescription",bs=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ne(Zn,n);return p.jsx(le.p,{id:o.descriptionId,...r,ref:t})});bs.displayName=Zn;var Jn="DialogClose",Es=s.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ne(Jn,n);return p.jsx(le.button,{type:"button",...r,ref:t,onClick:ve(e.onClick,()=>o.onOpenChange(!1))})});Es.displayName=Jn;function zt(e){return e?"open":"closed"}function Ss(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const er=S.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),Ue=()=>{const e=S.useContext(er);if(!e)throw new Error("useDrawerContext must be used within a Drawer.Root");return e};Ss(`[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(
|
|
45
45
|
[data-state=closed]
|
|
46
46
|
){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}`);function xs(){const e=navigator.userAgent;return typeof window<"u"&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))}function Cs(){return qt(/^Mac/)}function Rs(){return qt(/^iPhone/)}function wn(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function Ds(){return qt(/^iPad/)||Cs()&&navigator.maxTouchPoints>1}function tr(){return Rs()||Ds()}function qt(e){return typeof window<"u"&&window.navigator!=null?e.test(window.navigator.platform):void 0}const Ts=24,As=typeof window<"u"?s.useLayoutEffect:s.useEffect;function yn(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const It=typeof document<"u"&&window.visualViewport;function bn(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function nr(e){for(bn(e)&&(e=e.parentElement);e&&!bn(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}const Os=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let at=0,Lt;function Ns(e={}){let{isDisabled:t}=e;As(()=>{if(!t)return at++,at===1&&tr()&&(Lt=ks()),()=>{at--,at===0&&Lt?.()}},[t])}function ks(){let e,t=0,n=u=>{e=nr(u.target),!(e===document.documentElement&&e===document.body)&&(t=u.changedTouches[0].pageY)},r=u=>{if(!e||e===document.documentElement||e===document.body){u.preventDefault();return}let v=u.changedTouches[0].pageY,y=e.scrollTop,E=e.scrollHeight-e.clientHeight;E!==0&&((y<=0&&v>t||y>=E&&v<t)&&u.preventDefault(),t=v)},o=u=>{let v=u.target;Bt(v)&&v!==document.activeElement&&(u.preventDefault(),v.style.transform="translateY(-2000px)",v.focus(),requestAnimationFrame(()=>{v.style.transform=""}))},a=u=>{let v=u.target;Bt(v)&&(v.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{v.style.transform="",It&&(It.height<window.innerHeight?requestAnimationFrame(()=>{En(v)}):It.addEventListener("resize",()=>En(v),{once:!0}))}))},i=()=>{window.scrollTo(0,0)},c=window.pageXOffset,h=window.pageYOffset,m=yn(Ps(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`));window.scrollTo(0,0);let l=yn($e(document,"touchstart",n,{passive:!1,capture:!0}),$e(document,"touchmove",r,{passive:!1,capture:!0}),$e(document,"touchend",o,{passive:!1,capture:!0}),$e(document,"focus",a,!0),$e(window,"scroll",i));return()=>{m(),l(),window.scrollTo(c,h)}}function Ps(e,t,n){let r=e.style[t];return e.style[t]=n,()=>{e.style[t]=r}}function $e(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}function En(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let n=nr(e);if(n!==document.documentElement&&n!==document.body&&n!==e){let r=n.getBoundingClientRect().top,o=e.getBoundingClientRect().top,a=e.getBoundingClientRect().bottom;const i=n.getBoundingClientRect().bottom+Ts;a>i&&(n.scrollTop+=o-r)}e=n.parentElement}}function Bt(e){return e instanceof HTMLInputElement&&!Os.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function Is(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Ls(...e){return t=>e.forEach(n=>Is(n,t))}function rr(...e){return s.useCallback(Ls(...e),e)}const or=new WeakMap;function q(e,t,n=!1){if(!e||!(e instanceof HTMLElement))return;let r={};Object.entries(t).forEach(([o,a])=>{if(o.startsWith("--")){e.style.setProperty(o,a);return}r[o]=e.style[o],e.style[o]=a}),!n&&or.set(e,r)}function Ms(e,t){if(!e||!(e instanceof HTMLElement))return;let n=or.get(e);n&&(e.style[t]=n[t])}const W=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function st(e,t){if(!e)return null;const n=window.getComputedStyle(e),r=n.transform||n.webkitTransform||n.mozTransform;let o=r.match(/^matrix3d\((.+)\)$/);return o?parseFloat(o[1].split(", ")[W(t)?13:12]):(o=r.match(/^matrix\((.+)\)$/),o?parseFloat(o[1].split(", ")[W(t)?5:4]):null)}function _s(e){return 8*(Math.log(e+1)-2)}function Mt(e,t){if(!e)return()=>{};const n=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=n}}function js(...e){return(...t)=>{for(const n of e)typeof n=="function"&&n(...t)}}const B={DURATION:.5,EASE:[.32,.72,0,1]},ar=.4,Fs=.25,$s=100,sr=8,Se=16,Ht=26,_t="vaul-dragging";function ir(e){const t=S.useRef(e);return S.useEffect(()=>{t.current=e}),S.useMemo(()=>(...n)=>t.current==null?void 0:t.current.call(t,...n),[])}function Bs({defaultProp:e,onChange:t}){const n=S.useState(e),[r]=n,o=S.useRef(r),a=ir(t);return S.useEffect(()=>{o.current!==r&&(a(r),o.current=r)},[r,o,a]),n}function cr({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=Bs({defaultProp:t,onChange:n}),a=e!==void 0,i=a?e:r,c=ir(n),h=S.useCallback(m=>{if(a){const u=typeof m=="function"?m(e):m;u!==e&&c(u)}else o(m)},[a,e,o,c]);return[i,h]}function Hs({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:n,drawerRef:r,overlayRef:o,fadeFromIndex:a,onSnapPointChange:i,direction:c="bottom",container:h,snapToSequentialPoint:m}){const[l,u]=cr({prop:e,defaultProp:n?.[0],onChange:t}),[v,y]=S.useState(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);S.useEffect(()=>{function C(){y({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",C),()=>window.removeEventListener("resize",C)},[]);const E=S.useMemo(()=>l===n?.[n.length-1]||null,[n,l]),f=S.useMemo(()=>{var C;return(C=n?.findIndex(P=>P===l))!=null?C:null},[n,l]),b=n&&n.length>0&&(a||a===0)&&!Number.isNaN(a)&&n[a]===l||!n,w=S.useMemo(()=>{const C=h?{width:h.getBoundingClientRect().width,height:h.getBoundingClientRect().height}:typeof window<"u"?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};var P;return(P=n?.map(k=>{const F=typeof k=="string";let N=0;if(F&&(N=parseInt(k,10)),W(c)){const R=F?N:v?k*C.height:0;return v?c==="bottom"?C.height-R:-C.height+R:R}const H=F?N:v?k*C.width:0;return v?c==="right"?C.width-H:-C.width+H:H}))!=null?P:[]},[n,v,h]),T=S.useMemo(()=>f!==null?w?.[f]:null,[w,f]),d=S.useCallback(C=>{var P;const k=(P=w?.findIndex(F=>F===C))!=null?P:null;i(k),q(r.current,{transition:`transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,transform:W(c)?`translate3d(0, ${C}px, 0)`:`translate3d(${C}px, 0, 0)`}),w&&k!==w.length-1&&a!==void 0&&k!==a&&k<a?q(o.current,{transition:`opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,opacity:"0"}):q(o.current,{transition:`opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,opacity:"1"}),u(n?.[Math.max(k,0)])},[r.current,n,w,a,o,u]);S.useEffect(()=>{if(l||e){var C;const P=(C=n?.findIndex(k=>k===e||k===l))!=null?C:-1;w&&P!==-1&&typeof w[P]=="number"&&d(w[P])}},[l,e,n,w,d]);function g({draggedDistance:C,closeDrawer:P,velocity:k,dismissible:F}){if(a===void 0)return;const N=c==="bottom"||c==="right"?(T??0)-C:(T??0)+C,H=f===a-1,R=f===0,U=C>0;if(H&&q(o.current,{transition:`opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`}),!m&&k>2&&!U){F?P():d(w[0]);return}if(!m&&k>2&&U&&w&&n){d(w[n.length-1]);return}const K=w?.reduce((V,Q)=>typeof V!="number"||typeof Q!="number"?V:Math.abs(Q-N)<Math.abs(V-N)?Q:V),Y=W(c)?window.innerHeight:window.innerWidth;if(k>ar&&Math.abs(C)<Y*.4){const V=U?1:-1;if(V>0&&E&&n){d(w[n.length-1]);return}if(R&&V<0&&F&&P(),f===null)return;d(w[f+V]);return}d(K)}function A({draggedDistance:C}){if(T===null)return;const P=c==="bottom"||c==="right"?T-C:T+C;(c==="bottom"||c==="right")&&P<w[w.length-1]||(c==="top"||c==="left")&&P>w[w.length-1]||q(r.current,{transform:W(c)?`translate3d(0, ${P}px, 0)`:`translate3d(${P}px, 0, 0)`})}function I(C,P){if(!n||typeof f!="number"||!w||a===void 0)return null;const k=f===a-1;if(f>=a&&P)return 0;if(k&&!P)return 1;if(!b&&!k)return null;const N=k?f+1:f-1,H=k?w[N]-w[N-1]:w[N+1]-w[N],R=C/Math.abs(H);return k?1-R:R}return{isLastSnapPoint:E,activeSnapPoint:l,shouldFade:b,getPercentageDragged:I,setActiveSnapPoint:u,activeSnapPointIndex:f,onRelease:g,onDrag:A,snapPointsOffset:w}}const Ws=()=>()=>{};function Us(){const{direction:e,isOpen:t,shouldScaleBackground:n,setBackgroundColorOnScale:r,noBodyStyles:o}=Ue(),a=S.useRef(null),i=s.useMemo(()=>document.body.style.backgroundColor,[]);function c(){return(window.innerWidth-Ht)/window.innerWidth}S.useEffect(()=>{if(t&&n){a.current&&clearTimeout(a.current);const h=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!h)return;js(r&&!o?Mt(document.body,{background:"black"}):Ws,Mt(h,{transformOrigin:W(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${B.DURATION}s`,transitionTimingFunction:`cubic-bezier(${B.EASE.join(",")})`}));const m=Mt(h,{borderRadius:`${sr}px`,overflow:"hidden",...W(e)?{transform:`scale(${c()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${c()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{m(),a.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},B.DURATION*1e3)}}},[t,n,i])}let Be=null;function Vs({isOpen:e,modal:t,nested:n,hasBeenOpened:r,preventScrollRestoration:o,noBodyStyles:a}){const[i,c]=S.useState(()=>typeof window<"u"?window.location.href:""),h=S.useRef(0),m=S.useCallback(()=>{if(wn()&&Be===null&&e&&!a){Be={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};const{scrollX:u,innerHeight:v}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-h.current}px`,left:`${-u}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{const y=v-window.innerHeight;y&&h.current>=v&&(document.body.style.top=`${-(h.current+y)}px`)}),300)}},[e]),l=S.useCallback(()=>{if(wn()&&Be!==null&&!a){const u=-parseInt(document.body.style.top,10),v=-parseInt(document.body.style.left,10);Object.assign(document.body.style,Be),window.requestAnimationFrame(()=>{if(o&&i!==window.location.href){c(window.location.href);return}window.scrollTo(v,u)}),Be=null}},[i]);return S.useEffect(()=>{function u(){h.current=window.scrollY}return u(),window.addEventListener("scroll",u),()=>{window.removeEventListener("scroll",u)}},[]),S.useEffect(()=>{if(t)return()=>{typeof document>"u"||document.querySelector("[data-vaul-drawer]")||l()}},[t,l]),S.useEffect(()=>{n||!r||(e?(!window.matchMedia("(display-mode: standalone)").matches&&m(),t||window.setTimeout(()=>{l()},500)):l())},[e,r,i,t,n,m,l]),{restorePositionSetting:l}}function zs({open:e,onOpenChange:t,children:n,onDrag:r,onRelease:o,snapPoints:a,shouldScaleBackground:i=!1,setBackgroundColorOnScale:c=!0,closeThreshold:h=Fs,scrollLockTimeout:m=$s,dismissible:l=!0,handleOnly:u=!1,fadeFromIndex:v=a&&a.length-1,activeSnapPoint:y,setActiveSnapPoint:E,fixed:f,modal:b=!0,onClose:w,nested:T,noBodyStyles:d=!1,direction:g="bottom",defaultOpen:A=!1,disablePreventScroll:I=!0,snapToSequentialPoint:C=!1,preventScrollRestoration:P=!1,repositionInputs:k=!0,onAnimationEnd:F,container:N,autoFocus:H=!1}){var R,U;const[K=!1,Y]=cr({defaultProp:A,prop:e,onChange:D=>{t?.(D),!D&&!T&&Ee(),setTimeout(()=>{F?.(D)},B.DURATION*1e3),D&&!b&&typeof window<"u"&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),D||(document.body.style.pointerEvents="auto")}}),[V,Q]=S.useState(!1),[Z,ge]=S.useState(!1),[Ve,ze]=S.useState(!1),se=S.useRef(null),re=S.useRef(null),we=S.useRef(null),de=S.useRef(null),ye=S.useRef(null),be=S.useRef(!1),Ce=S.useRef(null),ie=S.useRef(0),oe=S.useRef(!1),X=S.useRef(!A),qe=S.useRef(0),O=S.useRef(null),Pe=S.useRef(((R=O.current)==null?void 0:R.getBoundingClientRect().height)||0),Ie=S.useRef(((U=O.current)==null?void 0:U.getBoundingClientRect().width)||0),Le=S.useRef(0),vt=S.useCallback(D=>{a&&D===ee.length-1&&(re.current=new Date)},[]),{activeSnapPoint:gt,activeSnapPointIndex:J,setActiveSnapPoint:Me,onRelease:Ke,snapPointsOffset:ee,onDrag:Ye,shouldFade:_e,getPercentageDragged:wt}=Hs({snapPoints:a,activeSnapPointProp:y,setActiveSnapPointProp:E,drawerRef:O,fadeFromIndex:v,overlayRef:se,onSnapPointChange:vt,direction:g,container:N,snapToSequentialPoint:C});Ns({isDisabled:!K||Z||!b||Ve||!V||!k||!I});const{restorePositionSetting:Ee}=Vs({isOpen:K,modal:b,nested:T??!1,hasBeenOpened:V,preventScrollRestoration:P,noBodyStyles:d});function fe(){return(window.innerWidth-Ht)/window.innerWidth}function Re(D){var M,_;!l&&!a||O.current&&!O.current.contains(D.target)||(Pe.current=((M=O.current)==null?void 0:M.getBoundingClientRect().height)||0,Ie.current=((_=O.current)==null?void 0:_.getBoundingClientRect().width)||0,ge(!0),we.current=new Date,tr()&&window.addEventListener("touchend",()=>be.current=!1,{once:!0}),D.target.setPointerCapture(D.pointerId),ie.current=W(g)?D.pageY:D.pageX)}function Xe(D,M){var _;let x=D;const L=(_=window.getSelection())==null?void 0:_.toString(),j=O.current?st(O.current,g):null,$=new Date;if(x.tagName==="SELECT"||x.hasAttribute("data-vaul-no-drag")||x.closest("[data-vaul-no-drag]"))return!1;if(g==="right"||g==="left")return!0;if(re.current&&$.getTime()-re.current.getTime()<500)return!1;if(j!==null&&(g==="bottom"?j>0:j<0))return!0;if(L&&L.length>0)return!1;if(ye.current&&$.getTime()-ye.current.getTime()<m&&j===0||M)return ye.current=$,!1;for(;x;){if(x.scrollHeight>x.clientHeight){if(x.scrollTop!==0)return ye.current=new Date,!1;if(x.getAttribute("role")==="dialog")return!0}x=x.parentNode}return!0}function yt(D){if(O.current&&Z){const M=g==="bottom"||g==="right"?1:-1,_=(ie.current-(W(g)?D.pageY:D.pageX))*M,x=_>0,L=a&&!l&&!x;if(L&&J===0)return;const j=Math.abs(_),$=document.querySelector("[data-vaul-drawer-wrapper]"),ae=g==="bottom"||g==="top"?Pe.current:Ie.current;let G=j/ae;const te=wt(j,x);if(te!==null&&(G=te),L&&G>=1||!be.current&&!Xe(D.target,x))return;if(O.current.classList.add(_t),be.current=!0,q(O.current,{transition:"none"}),q(se.current,{transition:"none"}),a&&Ye({draggedDistance:_}),x&&!a){const z=_s(_),Ze=Math.min(z*-1,0)*M;q(O.current,{transform:W(g)?`translate3d(0, ${Ze}px, 0)`:`translate3d(${Ze}px, 0, 0)`});return}const ue=1-G;if((_e||v&&J===v-1)&&(r?.(D,G),q(se.current,{opacity:`${ue}`,transition:"none"},!0)),$&&se.current&&i){const z=Math.min(fe()+G*(1-fe()),1),Ze=8-G*8,Kt=Math.max(0,14-G*14);q($,{borderRadius:`${Ze}px`,transform:W(g)?`scale(${z}) translate3d(0, ${Kt}px, 0)`:`scale(${z}) translate3d(${Kt}px, 0, 0)`,transition:"none"},!0)}if(!a){const z=j*M;q(O.current,{transform:W(g)?`translate3d(0, ${z}px, 0)`:`translate3d(${z}px, 0, 0)`})}}}S.useEffect(()=>{window.requestAnimationFrame(()=>{X.current=!0})},[]),S.useEffect(()=>{var D;function M(){if(!O.current||!k)return;const _=document.activeElement;if(Bt(_)||oe.current){var x;const L=((x=window.visualViewport)==null?void 0:x.height)||0,j=window.innerHeight;let $=j-L;const ae=O.current.getBoundingClientRect().height||0,G=ae>j*.8;Le.current||(Le.current=ae);const te=O.current.getBoundingClientRect().top;if(Math.abs(qe.current-$)>60&&(oe.current=!oe.current),a&&a.length>0&&ee&&J){const ue=ee[J]||0;$+=ue}if(qe.current=$,ae>L||oe.current){const ue=O.current.getBoundingClientRect().height;let z=ue;ue>L&&(z=L-(G?te:Ht)),f?O.current.style.height=`${ue-Math.max($,0)}px`:O.current.style.height=`${Math.max(z,L-te)}px`}else xs()||(O.current.style.height=`${Le.current}px`);a&&a.length>0&&!oe.current?O.current.style.bottom="0px":O.current.style.bottom=`${Math.max($,0)}px`}}return(D=window.visualViewport)==null||D.addEventListener("resize",M),()=>{var _;return(_=window.visualViewport)==null?void 0:_.removeEventListener("resize",M)}},[J,a,ee]);function ce(D){Ge(),w?.(),D||Y(!1),setTimeout(()=>{a&&Me(a[0])},B.DURATION*1e3)}function je(){if(!O.current)return;const D=document.querySelector("[data-vaul-drawer-wrapper]"),M=st(O.current,g);q(O.current,{transform:"translate3d(0, 0, 0)",transition:`transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`}),q(se.current,{transition:`opacity ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,opacity:"1"}),i&&M&&M>0&&K&&q(D,{borderRadius:`${sr}px`,overflow:"hidden",...W(g)?{transform:`scale(${fe()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${fe()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${B.DURATION}s`,transitionTimingFunction:`cubic-bezier(${B.EASE.join(",")})`},!0)}function Ge(){!Z||!O.current||(O.current.classList.remove(_t),be.current=!1,ge(!1),de.current=new Date)}function me(D){if(!Z||!O.current)return;O.current.classList.remove(_t),be.current=!1,ge(!1),de.current=new Date;const M=st(O.current,g);if(!D||!Xe(D.target,!1)||!M||Number.isNaN(M)||we.current===null)return;const _=de.current.getTime()-we.current.getTime(),x=ie.current-(W(g)?D.pageY:D.pageX),L=Math.abs(x)/_;if(L>.05&&(ze(!0),setTimeout(()=>{ze(!1)},200)),a){Ke({draggedDistance:x*(g==="bottom"||g==="right"?1:-1),closeDrawer:ce,velocity:L,dismissible:l}),o?.(D,!0);return}if(g==="bottom"||g==="right"?x>0:x<0){je(),o?.(D,!0);return}if(L>ar){ce(),o?.(D,!1);return}var j;const $=Math.min((j=O.current.getBoundingClientRect().height)!=null?j:0,window.innerHeight);var ae;const G=Math.min((ae=O.current.getBoundingClientRect().width)!=null?ae:0,window.innerWidth),te=g==="left"||g==="right";if(Math.abs(M)>=(te?G:$)*h){ce(),o?.(D,!1);return}o?.(D,!0),je()}S.useEffect(()=>(K&&(q(document.documentElement,{scrollBehavior:"auto"}),re.current=new Date),()=>{Ms(document.documentElement,"scrollBehavior")}),[K]);function bt(D){const M=D?(window.innerWidth-Se)/window.innerWidth:1,_=D?-Se:0;Ce.current&&window.clearTimeout(Ce.current),q(O.current,{transition:`transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,transform:W(g)?`scale(${M}) translate3d(0, ${_}px, 0)`:`scale(${M}) translate3d(${_}px, 0, 0)`}),!D&&O.current&&(Ce.current=setTimeout(()=>{const x=st(O.current,g);q(O.current,{transition:"none",transform:W(g)?`translate3d(0, ${x}px, 0)`:`translate3d(${x}px, 0, 0)`})},500))}function Qe(D,M){if(M<0)return;const _=(window.innerWidth-Se)/window.innerWidth,x=_+M*(1-_),L=-Se+M*Se;q(O.current,{transform:W(g)?`scale(${x}) translate3d(0, ${L}px, 0)`:`scale(${x}) translate3d(${L}px, 0, 0)`,transition:"none"})}function Et(D,M){const _=W(g)?window.innerHeight:window.innerWidth,x=M?(_-Se)/_:1,L=M?-Se:0;M&&q(O.current,{transition:`transform ${B.DURATION}s cubic-bezier(${B.EASE.join(",")})`,transform:W(g)?`scale(${x}) translate3d(0, ${L}px, 0)`:`scale(${x}) translate3d(${L}px, 0, 0)`})}return S.useEffect(()=>{b||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[b]),S.createElement(Un,{defaultOpen:A,onOpenChange:D=>{!l&&!D||(D?Q(!0):ce(!0),Y(D))},open:K},S.createElement(er.Provider,{value:{activeSnapPoint:gt,snapPoints:a,setActiveSnapPoint:Me,drawerRef:O,overlayRef:se,onOpenChange:t,onPress:Re,onRelease:me,onDrag:yt,dismissible:l,shouldAnimate:X,handleOnly:u,isOpen:K,isDragging:Z,shouldFade:_e,closeDrawer:ce,onNestedDrag:Qe,onNestedOpenChange:bt,onNestedRelease:Et,keyboardIsOpen:oe,modal:b,snapPointsOffset:ee,activeSnapPointIndex:J,direction:g,shouldScaleBackground:i,setBackgroundColorOnScale:c,noBodyStyles:d,container:N,autoFocus:H}},n))}const ur=S.forwardRef(function({...e},t){const{overlayRef:n,snapPoints:r,onRelease:o,shouldFade:a,isOpen:i,modal:c,shouldAnimate:h}=Ue(),m=rr(t,n),l=r&&r.length>0;if(!c)return null;const u=S.useCallback(v=>o(v),[o]);return S.createElement(Kn,{onMouseUp:u,ref:m,"data-vaul-overlay":"","data-vaul-snap-points":i&&l?"true":"false","data-vaul-snap-points-overlay":i&&a?"true":"false","data-vaul-animate":h?.current?"true":"false",...e})});ur.displayName="Drawer.Overlay";const lr=S.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:n,...r},o){const{drawerRef:a,onPress:i,onRelease:c,onDrag:h,keyboardIsOpen:m,snapPointsOffset:l,activeSnapPointIndex:u,modal:v,isOpen:y,direction:E,snapPoints:f,container:b,handleOnly:w,shouldAnimate:T,autoFocus:d}=Ue(),[g,A]=S.useState(!1),I=rr(o,a),C=S.useRef(null),P=S.useRef(null),k=S.useRef(!1),F=f&&f.length>0;Us();const N=(R,U,K=0)=>{if(k.current)return!0;const Y=Math.abs(R.y),V=Math.abs(R.x),Q=V>Y,Z=["bottom","right"].includes(U)?1:-1;if(U==="left"||U==="right"){if(!(R.x*Z<0)&&V>=0&&V<=K)return Q}else if(!(R.y*Z<0)&&Y>=0&&Y<=K)return!Q;return k.current=!0,!0};S.useEffect(()=>{F&&window.requestAnimationFrame(()=>{A(!0)})},[]);function H(R){C.current=null,k.current=!1,c(R)}return S.createElement(Yn,{"data-vaul-drawer-direction":E,"data-vaul-drawer":"","data-vaul-delayed-snap-points":g?"true":"false","data-vaul-snap-points":y&&F?"true":"false","data-vaul-custom-container":b?"true":"false","data-vaul-animate":T?.current?"true":"false",...r,ref:I,style:l&&l.length>0?{"--snap-point-height":`${l[u??0]}px`,...t}:t,onPointerDown:R=>{w||(r.onPointerDown==null||r.onPointerDown.call(r,R),C.current={x:R.pageX,y:R.pageY},i(R))},onOpenAutoFocus:R=>{n?.(R),d||R.preventDefault()},onPointerDownOutside:R=>{if(e?.(R),!v||R.defaultPrevented){R.preventDefault();return}m.current&&(m.current=!1)},onFocusOutside:R=>{if(!v){R.preventDefault();return}},onPointerMove:R=>{if(P.current=R,w||(r.onPointerMove==null||r.onPointerMove.call(r,R),!C.current))return;const U=R.pageY-C.current.y,K=R.pageX-C.current.x,Y=R.pointerType==="touch"?10:2;N({x:K,y:U},E,Y)?h(R):(Math.abs(K)>Y||Math.abs(U)>Y)&&(C.current=null)},onPointerUp:R=>{r.onPointerUp==null||r.onPointerUp.call(r,R),C.current=null,k.current=!1,c(R)},onPointerOut:R=>{r.onPointerOut==null||r.onPointerOut.call(r,R),H(P.current)},onContextMenu:R=>{r.onContextMenu==null||r.onContextMenu.call(r,R),P.current&&H(P.current)}})});lr.displayName="Drawer.Content";const qs=250,Ks=120,dr=S.forwardRef(function({preventCycle:e=!1,children:t,...n},r){const{closeDrawer:o,isDragging:a,snapPoints:i,activeSnapPoint:c,setActiveSnapPoint:h,dismissible:m,handleOnly:l,isOpen:u,onPress:v,onDrag:y}=Ue(),E=S.useRef(null),f=S.useRef(!1);function b(){if(f.current){d();return}window.setTimeout(()=>{w()},Ks)}function w(){if(a||e||f.current){d();return}if(d(),!i||i.length===0){m||o();return}if(c===i[i.length-1]&&m){o();return}const A=i.findIndex(C=>C===c);if(A===-1)return;const I=i[A+1];h(I)}function T(){E.current=window.setTimeout(()=>{f.current=!0},qs)}function d(){E.current&&window.clearTimeout(E.current),f.current=!1}return S.createElement("div",{onClick:b,onPointerCancel:d,onPointerDown:g=>{l&&v(g),T()},onPointerMove:g=>{l&&y(g)},ref:r,"data-vaul-drawer-visible":u?"true":"false","data-vaul-handle":"","aria-hidden":"true",...n},S.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});dr.displayName="Drawer.Handle";function Ys(e){const t=Ue(),{container:n=t.container,...r}=e;return S.createElement(qn,{container:n,...r})}const si={Root:zs,Content:lr,Overlay:ur,Portal:Ys,Handle:dr,Title:Qn};export{ai as C,si as D,ni as a,ri as c,ti as s,oi as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r}from"./index-BkI9e3vC.js";import{B as o}from"./BriefPane-SxhE_3va.js";import"./useSearchTokenContext-BbemXlBA.js";import"./kbd-NyMHCJhU.js";import"./useMessageBodyContent-D3WGssaj.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./enums-B_igRgfI.js";import"./search-scope-CjUz4XDB.js";import"./MailListHeader-BZ15rR9w.js";import"./search-token-index-Du18usjZ.js";import"./attachment-file-D53Dk99j.js";import"./mail-l6m0vhbl.js";import"./avatar-BaTjjbv5.js";import"./index-DZJeVVlS.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-M2Ae9QQB.js";import"./ErrorState-CcpsTpZA.js";import"./format-D7umvejg.js";import"./download-xYbt-qwY.js";import"./shield-check-BaWzHVzb.js";import"./move-options-BdK203up.js";import"./useFilters-D73Ov9vo.js";import"./confirm-dialog-BBgNPSWF.js";import"./clock-CyzBwXAZ.js";import"./menu-C4YTErYs.js";import"./useRefreshControl-DVnro4XQ.js";import"./circle-check-big-Bat79NJC.js";import"./useLabels-B1c9r5ky.js";import"./useSemanticSearch-B7Hc694H.js";import"./search-query-Cr_ZXBCp.js";import"./wizard-selection-B1bng5Jq.js";function G(){return r.jsx(o.Reading,{})}export{G as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as o}from"./index-BkI9e3vC.js";import{M as r}from"./MailboxPane-Cug4MhJ4.js";import"./useSearchTokenContext-BbemXlBA.js";import"./kbd-NyMHCJhU.js";import"./useMessageBodyContent-D3WGssaj.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./enums-B_igRgfI.js";import"./search-scope-CjUz4XDB.js";import"./useRefreshControl-DVnro4XQ.js";import"./circle-check-big-Bat79NJC.js";import"./search-token-index-Du18usjZ.js";import"./MailListHeader-BZ15rR9w.js";import"./attachment-file-D53Dk99j.js";import"./mail-l6m0vhbl.js";import"./avatar-BaTjjbv5.js";import"./index-DZJeVVlS.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-M2Ae9QQB.js";import"./ErrorState-CcpsTpZA.js";import"./format-D7umvejg.js";import"./download-xYbt-qwY.js";import"./shield-check-BaWzHVzb.js";import"./move-options-BdK203up.js";import"./useFilters-D73Ov9vo.js";import"./confirm-dialog-BBgNPSWF.js";import"./clock-CyzBwXAZ.js";import"./menu-C4YTErYs.js";import"./MailViewChrome-BL8QOjiW.js";import"./NavMenuButton-BYPOjfVN.js";import"./useLabels-B1c9r5ky.js";import"./useSemanticSearch-B7Hc694H.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-CeqiyGT_.js";import"./circle-help-B_C4ueZj.js";import"./circle-check-CHWuqox6.js";function I(){return o.jsx(r.Reading,{})}export{I as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s,b as t}from"./index-
|
|
1
|
+
import{j as s,b as t}from"./index-BkI9e3vC.js";function x({className:e,...n}){return s.jsx("kbd",{className:t("inline-flex h-4 min-w-4 items-center justify-center rounded-xs border border-line bg-surface-sunken px-1 font-sans text-2xs text-fg-muted",e),...n})}export{x as K};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as f,j as e,ad as h,aT as y,ac as b,b2 as g,B as v,T as N,m as C,s as L,Q as I,ar as D,av as S,as as w}from"./index-
|
|
1
|
+
import{r as f,j as e,ad as h,aT as y,ac as b,b2 as g,B as v,T as N,m as C,s as L,Q as I,ar as D,av as S,as as w}from"./index-BkI9e3vC.js";import{C as E}from"./confirm-dialog-BBgNPSWF.js";import{S as T}from"./settings-screen-Btu6ilW8.js";import{E as j}from"./ErrorState-CcpsTpZA.js";import{a as $,b as k,c as R,u as O}from"./useLabels-B1c9r5ky.js";import"./avatar-BaTjjbv5.js";import"./menu-C4YTErYs.js";import"./circle-help-B_C4ueZj.js";function B({labels:l,onRename:i,onRecolor:n,onDelete:m,deletingLabelId:c}){const[u,r]=f.useState(),[o,d]=f.useState("");if(l.length===0)return e.jsx("p",{className:"py-6 text-sm text-fg-muted",children:"No labels yet. Create one below, then use it in a filter or apply it to mail directly."});const t=a=>{const s=o.trim();s!==""&&i(a,s),r(void 0)};return e.jsx("ul",{className:"divide-y divide-line rounded-md border border-line",children:l.map(a=>e.jsxs("li",{className:"flex items-center gap-3 px-3 py-2.5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[u===a.labelId?e.jsx(h,{autoFocus:!0,value:o,onChange:s=>d(s.target.value),onBlur:()=>t(a.labelId),onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),t(a.labelId)),s.key==="Escape"&&(s.preventDefault(),r(void 0))},"aria-label":`Rename label ${a.name}`}):e.jsx("button",{type:"button",onClick:()=>{r(a.labelId),d(a.name)},"aria-label":`Rename label ${a.name}`,className:"flex items-center gap-2 rounded-sm text-left hover:opacity-80",children:e.jsx(y,{label:a})}),e.jsx("p",{className:"mt-0.5 text-xs text-fg-subtle",children:a.filterCount===0?"Not used in any filter":`Used in ${a.filterCount} ${a.filterCount===1?"filter":"filters"}`})]}),e.jsx(b,{"aria-label":`Color for ${a.name}`,value:a.color,onChange:s=>n(a.labelId,s.target.value),className:"w-28 shrink-0",children:g.map(s=>e.jsx("option",{value:s,children:s},s))}),e.jsx(v,{variant:"ghost",size:"sm",icon:e.jsx(N,{className:"size-4 text-danger"}),onClick:()=>m(a),disabled:c===a.labelId,"aria-label":`Delete label ${a.name}`})]},a.labelId))})}const P=(l,i)=>{if(i===0)return{title:`Delete the "${l}" label?`};const n=i===1?"filter":"filters";return{title:`Delete the "${l}" label?`,description:`This also deletes ${i} ${n} that ${i===1?"applies":"apply"} it — they can't be recovered.`}},_=e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:"Labels mark mail without moving it — a message can carry any number of them alongside whichever folder it lives in."}),e.jsx("p",{children:"Use a label in a filter's action to have new (and existing) mail label itself automatically, or apply one to a selection directly from the mailbox."}),e.jsx("p",{children:"Deleting a label removes it from every message, and deletes every filter that applies it — the confirmation names how many."})]});function H({accountId:l}){const{createLabel:i,isPending:n,isError:m}=O(l),[c,u]=f.useState(""),[r,o]=f.useState("Default"),d=()=>{const t=c.trim();t!==""&&i(t,r).then(()=>{u(""),o("Default")})};return e.jsxs("div",{className:"space-y-2 rounded-sm border border-line bg-surface p-3",children:[e.jsx("p",{className:"text-sm font-medium text-fg",children:"New label"}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[e.jsxs("div",{className:"flex-1 space-y-1",children:[e.jsx("span",{className:"text-xs text-fg-muted",children:"Name"}),e.jsx(h,{value:c,onChange:t=>u(t.target.value),placeholder:"e.g. Receipts","aria-label":"Label name",onKeyDown:t=>{t.key==="Enter"&&(t.preventDefault(),d())}})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-xs text-fg-muted",children:"Color"}),e.jsx(b,{value:r,onChange:t=>o(t.target.value),"aria-label":"Label color",className:"w-28",children:g.map(t=>e.jsx("option",{value:t,children:t},t))})]}),e.jsx(v,{variant:"primary",onClick:d,disabled:n||c.trim()==="",children:n?"Creating…":"Create label"})]}),m&&e.jsx(w,{tone:"danger",variant:"soft",children:"Couldn't create that label. Please try again."})]})}function A({account:l}){const i=l.accountId,{labels:n,isPending:m,isError:c,error:u,refetch:r}=$(i),{updateLabel:o}=k(i),{deleteLabel:d,deletingLabelId:t}=R(i),[a,s]=f.useState();return e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:l.email}),m?e.jsx("div",{className:"h-16 animate-pulse rounded-md border border-line bg-surface","aria-busy":"true","aria-label":`Loading labels for ${l.email}`}):c?e.jsx(j,{variant:"inline",title:`Couldn't load labels for ${l.email}`,error:u,onRetry:()=>{r()}}):e.jsx(B,{labels:n,onRename:(p,x)=>o(p,{name:x}),onRecolor:(p,x)=>o(p,{color:x}),onDelete:s,deletingLabelId:t}),e.jsx(H,{accountId:i}),a&&(()=>{const p=P(a.name,a.filterCount);return e.jsx(E,{isOpen:!0,title:p.title,description:p.description,confirmLabel:"Delete label",destructive:!0,isBusy:t===a.labelId,onConfirm:()=>{d(a.labelId),s(void 0)},onCancel:()=>s(void 0)})})()]})}function q(){const l=C(),[i,n]=f.useState(!0),{data:m,isPending:c,isError:u,error:r,refetch:o}=L(I()),d=t=>{const a=S[t];a&&l({to:a})};return e.jsx(T,{items:D,activeId:"labels",title:"Labels",description:"Mark mail without moving it, per account.",help:_,helpOpen:i,onToggleHelp:()=>n(t=>!t),onSelect:d,onBackToMail:()=>{l({to:"/mail"})},children:c?e.jsx("div",{className:"h-24 animate-pulse rounded-sm border border-line bg-surface","aria-busy":"true","aria-label":"Loading accounts"}):u?e.jsx(j,{title:"Couldn't load accounts",error:r,onRetry:()=>{o()}}):m.accounts.length===0?e.jsx("p",{className:"py-12 text-sm text-fg-muted",children:"No accounts configured."}):e.jsx("div",{className:"space-y-8",children:m.accounts.map(t=>e.jsx(A,{account:t},t.accountId))})})}export{q as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as z,r as c,u as Fe,j as e,S as De,a as pe,b as w,C as te,d as se,e as _e,f as ge,F as Be,g as Ke,X as be,T as Qe,O as Ve,M as qe,A as He,h as $e,I as Ue,i as ve,B as F,k as We,l as ye,m as G,o as je,n as Se,p as Ge,q as Y,s as Ne,t as Ye,v as Je,w as Xe,x as $,y as Ze,z as et,D as tt,E as st,G as at,H as nt,J as rt,K as ot,L as it,N as lt,P as ct,Q as ut,R as dt,U as mt}from"./index-D5pbxDcC.js";import{B as xt,S as ht,D as ft,a as pt,b as gt,u as bt,s as vt,c as J,K as yt,d as jt,e as St,f as Nt,g as Ct,h as kt,i as wt}from"./search-token-index-Dt3xszJN.js";import{u as X,a as Ce,l as It,N as P,b as U,m as ae,c as Mt,d as Ot,e as Et,i as Rt,f as Pt,g as Lt}from"./useMessageBodyContent-CHwJHNJ1.js";import{P as At}from"./pencil-1gmQLonP.js";import{c as zt,s as Tt,M as Ft}from"./search-view-TtEJrhw1.js";import{u as Dt,a as _t,R as Bt,M as Kt}from"./useRefreshControl-DxR0yck-.js";import{M as Qt}from"./menu-B0PhsBZP.js";import{B as ke}from"./bug-wYL_eFTx.js";import{A as Vt}from"./avatar-R7-krPv1.js";import{i as qt}from"./outbox-status-BlKn6P0x.js";import{E as Ht}from"./ErrorState-C9LAoeuU.js";import{K as ne}from"./kbd-BHiQtyd7.js";import{u as $t}from"./index-xDeuo85T.js";import{u as Ut}from"./useDebouncedValue-0dMvGRpI.js";import"./search-scope-D_198Zfr.js";import"./useMediaQuery-Cvp7nog9.js";import"./FullCompose-I6txbMnr.js";import"./confirm-dialog-C2DcmYlc.js";import"./circle-check-big-CC8hYmP1.js";import"./useSignature-BUdVflVx.js";import"./account-form-helpers-DhckT_PN.js";const Wt=z("BookmarkPlus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"12",x2:"12",y1:"7",y2:"13",key:"1cppfj"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]);const Gt=z("CalendarDays",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);const we=z("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);const Ie=z("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Yt=z("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),Jt="button:not([disabled]), a[href]",E="outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface-sunken";function Xt({active:t,dimmed:s,indent:a}){return w("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm transition-colors",E,a&&"pl-7",t?"bg-accent-2-soft font-medium text-accent-2":"text-fg-muted hover:bg-surface hover:text-fg",s&&"opacity-55")}function Zt({icon:t,label:s,count:a,active:n}){return e.jsxs(e.Fragment,{children:[t&&e.jsx("span",{className:w("shrink-0",n?"text-accent-2":"text-fg-subtle"),children:t}),e.jsx("span",{className:"flex-1 truncate",children:s}),a!=null&&a>0&&e.jsx("span",{className:w("text-2xs tabular-nums",n?"text-accent-2":"text-fg-subtle"),children:a})]})}function L({icon:t,label:s,count:a,active:n,dimmed:r,indent:o,navId:l,linkComponent:u,ariaLabel:h,title:x,onClick:b}){const d=Xt({active:n,dimmed:r,indent:o}),f=e.jsx(Zt,{icon:t,label:s,count:a,active:n});return l&&u?u({navId:l,className:d,ariaLabel:h??s,title:x,onClick:b,children:f}):e.jsx("button",{type:"button",onClick:b,className:d,"aria-label":h,title:x,children:f})}const re={inbox:0,flagged:1,drafts:2,sent:3,archive:4,all:5,junk:6,trash:7};function es(t){switch(t){case"inbox":return e.jsx(Ue,{className:"size-4"});case"flagged":return e.jsx(pe,{className:"size-4"});case"drafts":return e.jsx($e,{className:"size-4"});case"sent":return e.jsx(ge,{className:"size-4"});case"archive":return e.jsx(He,{className:"size-4"});case"all":return e.jsx(qe,{className:"size-4"});case"junk":return e.jsx(Ve,{className:"size-4"});case"trash":return e.jsx(Qe,{className:"size-4"})}}const oe=t=>t.role!=null,H=8,ie="remit.nav.folders.open.",le="remit.nav.account.open.";function ce(t,s,a){if(typeof localStorage>"u")return a;const n=localStorage.getItem(t+s);return n===null?a:n!=="0"}function ue(t,s,a){typeof localStorage>"u"||localStorage.setItem(t+s,a?"1":"0")}function ts({query:t,onSelect:s,onRemove:a}){return e.jsxs("div",{className:"group flex w-full items-center gap-1 rounded-md pr-1 hover:bg-surface",children:[e.jsxs("button",{type:"button",onClick:s,className:w("flex min-w-0 flex-1 items-center gap-2 px-2 py-1 text-left text-sm text-fg-muted transition-colors hover:text-fg",E),children:[e.jsx(Ke,{className:"size-4 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"min-w-0 flex-1 truncate",children:t})]}),a&&e.jsx("button",{type:"button",onClick:a,"aria-label":`Remove saved search: ${t}`,className:w("shrink-0 rounded-full p-1 text-fg-subtle opacity-0 transition-opacity hover:bg-surface-sunken hover:text-fg group-hover:opacity-100 focus-visible:opacity-100",E),children:e.jsx(be,{className:"size-3.5"})})]})}function ss({savedSearches:t,saveableQuery:s,onSelectSavedSearch:a,onRemoveSavedSearch:n,onSaveCurrentSearch:r}){return t.length===0&&!s?null:e.jsxs("div",{className:"mt-3",children:[e.jsx("div",{className:"px-2 pb-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Saved searches"}),s&&e.jsxs("button",{type:"button",onClick:r,className:w("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm text-accent transition-colors hover:bg-surface",E),children:[e.jsx(Wt,{className:"size-4 shrink-0"}),e.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["Save “",s,"”"]})]}),t.map(o=>e.jsx(ts,{query:o,onSelect:()=>a?.(o),onRemove:n?()=>n(o):void 0},o))]})}function as({account:t,selectedNavId:s,onSelectNav:a,linkComponent:n}){const[r,o]=c.useState(()=>ce(le,t.id,!0)),[l,u]=c.useState(()=>ce(ie,t.id,!0)),[h,x]=c.useState(!1),b=()=>{o(i=>{const v=!i;return ue(le,t.id,v),v})},d=()=>{u(i=>{const v=!i;return ue(ie,t.id,v),v})},f=t.mailboxes.filter(oe).sort((i,v)=>re[i.role]-re[v.role]),p=t.mailboxes.filter(i=>!oe(i)),g=h||p.length<=H?p:p.slice(0,H),j=p.length-g.length,y=t.status??"ready",A=y==="ready"&&f.length===0&&p.length===0;return e.jsxs("div",{className:"mt-3",children:[e.jsxs("button",{type:"button",onClick:b,"aria-expanded":r,className:w("flex w-full items-center gap-1.5 px-2 pb-1 text-left transition-colors hover:text-fg",E,t.muted&&"opacity-55"),children:[r?e.jsx(te,{className:"size-3 shrink-0 text-fg-subtle"}):e.jsx(se,{className:"size-3 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"truncate text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:t.label}),t.muted&&e.jsxs(e.Fragment,{children:[e.jsx(xt,{className:"size-3 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"text-2xs text-fg-subtle",children:"muted"})]})]}),r&&e.jsxs(e.Fragment,{children:[y==="loading"&&e.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"Loading…"}),y==="error"&&e.jsxs("div",{role:"alert",className:"mx-2 my-1 flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-2 py-1.5 text-sm",children:[e.jsx(_e,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsx("p",{className:"font-medium text-danger",children:"Couldn't load mailboxes"})}),t.onRetry&&e.jsx("button",{type:"button",onClick:t.onRetry,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}),A&&e.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"No mailboxes"}),y==="ready"&&e.jsxs(e.Fragment,{children:[f.map(i=>e.jsx(L,{navId:i.id,linkComponent:n,icon:es(i.role),label:i.name,ariaLabel:i.name,title:i.fullPath??i.name,count:i.unseen,active:s===i.id,dimmed:t.muted,onClick:()=>a?.(i.id)},i.id)),t.outboxPending!==void 0&&e.jsx(L,{navId:"outbox",linkComponent:n,icon:e.jsx(ge,{className:"size-4"}),label:"Outbox",ariaLabel:"Outbox",count:t.outboxPending>0?t.outboxPending:void 0,active:s==="outbox",dimmed:t.muted,onClick:()=>a?.("outbox")}),p.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:d,"aria-expanded":l,className:w("mt-1 flex w-full items-center gap-1 px-2 py-1 text-left text-2xs font-semibold uppercase tracking-wider text-fg-subtle transition-colors hover:text-fg",E),children:[l?e.jsx(te,{className:"size-3 shrink-0"}):e.jsx(se,{className:"size-3 shrink-0"}),e.jsx("span",{className:"flex-1",children:"Folders"}),e.jsx("span",{className:"tabular-nums opacity-70",children:p.length})]}),l&&e.jsxs(e.Fragment,{children:[g.map(i=>e.jsx(L,{navId:i.id,linkComponent:n,icon:e.jsx(Be,{className:"size-4"}),label:i.name,ariaLabel:i.name,title:i.fullPath??i.name,count:i.unseen,active:s===i.id,dimmed:t.muted,onClick:()=>a?.(i.id)},i.id)),(j>0||h)&&p.length>H&&e.jsx("button",{type:"button",onClick:()=>x(i=>!i),className:w("ml-7 flex items-center px-2 py-1 text-2xs font-medium text-accent transition-colors hover:underline",E),children:h?"Show less":`Show all (${p.length})`})]})]})]})]})]})}function ns({accounts:t,selectedNavId:s,briefUnseen:a,onSelectNav:n,variant:r="desktop",linkComponent:o,calendarNav:l="hidden",savedSearches:u=[],saveableQuery:h,onSelectSavedSearch:x,onRemoveSavedSearch:b,onSaveCurrentSearch:d}){const f=c.useRef(null);Fe({containerRef:f,itemSelector:Jt});const p=r==="drawer",g=e.jsxs("nav",{ref:p?f:void 0,className:p?"px-2 py-2":"flex-1 overflow-y-auto px-2 py-2","aria-label":"Mailboxes",children:[e.jsx(L,{navId:"brief",linkComponent:o,icon:e.jsx(De,{className:"size-4"}),label:"Daily brief",ariaLabel:"Daily brief",count:a,active:s==="brief",onClick:()=>n?.("brief")}),l==="shown"&&e.jsx(L,{navId:"calendar",linkComponent:o,icon:e.jsx(Gt,{className:"size-4"}),label:"Calendar",ariaLabel:"Calendar",active:s==="calendar",onClick:()=>n?.("calendar")}),e.jsx(L,{navId:"flagged",linkComponent:o,icon:e.jsx(pe,{className:"size-4"}),label:"Starred",ariaLabel:"Starred",active:s==="flagged",onClick:()=>n?.("flagged")}),e.jsx(ss,{savedSearches:u,saveableQuery:h,onSelectSavedSearch:x,onRemoveSavedSearch:b,onSaveCurrentSearch:d}),t.length===0?e.jsx("div",{className:"px-2 py-4 text-center text-sm text-fg-muted",children:"No accounts configured"}):t.map(j=>e.jsx(as,{account:j,selectedNavId:s,onSelectNav:n,linkComponent:o},j.id))]});return p?g:e.jsx("aside",{ref:f,className:"flex h-full w-full flex-col bg-surface-sunken",children:g})}function rs({leading:t,search:s,actions:a,className:n}){return e.jsxs("header",{className:w("flex min-h-pane-header w-full shrink-0 items-center gap-2 border-b border-line bg-canvas px-row-inset py-1",n),children:[t&&e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t}),e.jsx("div",{className:"flex min-w-0 flex-1 justify-start",children:e.jsx("div",{className:"w-full max-w-xs transition-[max-width] duration-150 ease-out focus-within:max-w-lg",children:s})}),a&&e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:a})]})}function os(){const t=ve();if(!t)return null;const s=t.showNavPane?!t.navCollapsed:!1;return e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Qt,{className:"size-4"}),onClick:t.toggleNav,"aria-label":s?"Hide folders":"Show folders","aria-expanded":s,title:"Folders",className:"shrink-0"})}const is={global:"Search all mail",pending:"Search mail",scoped:"Search this folder"};function ls({search:t,onCompose:s,onReportBug:a,onOpenSettings:n,composeShortcut:r,refreshControl:o,account:l}){return e.jsx(rs,{leading:e.jsx(os,{}),search:e.jsx(ht,{value:t.value,onChange:t.onChange,onClear:t.onClear,onClearQuery:t.onClearQuery,chips:t.chips,onRemoveChip:t.onRemoveChip,placeholder:is[t.scope]}),actions:e.jsxs(e.Fragment,{children:[e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Yt,{className:"size-4"}),title:r?`Compose (${r})`:"Compose","aria-label":"Compose",onClick:s}),e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(ke,{className:"size-4"}),title:"Report a bug","aria-label":"Report a bug",onClick:a}),e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Ie,{className:"size-4"}),title:"Settings","aria-label":"Settings",onClick:n}),o,l]})})}const cs=()=>{const t=X(),s=Ce();return It(s.pathname)?null:e.jsx("button",{type:"button",onClick:t,"aria-label":"Compose new message",className:"lg:hidden fixed right-4 z-30 h-14 w-14 rounded-full bg-accent text-accent-fg shadow-lg flex items-center justify-center hover:opacity-90 active:scale-95 transition-all",style:{bottom:"calc(env(safe-area-inset-bottom, 0) + 1rem)"},children:e.jsx(At,{className:"size-6"})})},Me=({children:t})=>{const{Account:s}=We();return e.jsx(s,{children:t})},us=({email:t,onSignOut:s})=>{const a=t??"Account";return e.jsxs(ft,{trigger:e.jsx(Vt,{name:a,email:t??void 0,size:"sm"}),align:"right",children:[t&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"px-3 py-2 text-xs text-fg-muted truncate",title:t,"data-testid":"account-menu-email",children:t}),e.jsx(pt,{})]}),e.jsxs(gt,{onClick:s,children:[e.jsx(we,{className:"size-4"}),"Sign out"]})]})},ds=()=>e.jsx(Me,{children:({email:t,signOut:s})=>e.jsx(us,{email:t,onSignOut:s})});function ms({accounts:t}){const{searchInput:s,onSearchChange:a,onSearchClear:n,onSearchClearQuery:r}=ye(),o=G(),l=X(),{scope:u,clearScope:h}=bt(t),x=u.kind==="scoped"?[{id:u.chip.id,label:u.chip.label,tone:"scope"}]:void 0,b=c.useMemo(()=>t.map(j=>j.accountId),[t]),{hasNewMail:d}=Dt(),{state:f,errorMessage:p,refresh:g}=_t(b);return e.jsx(ls,{search:{value:s,scope:u.kind,chips:x,onChange:a,onClear:n,onClearQuery:r,onRemoveChip:h},onCompose:l,onReportBug:je,onOpenSettings:()=>o({to:"/settings/accounts"}),composeShortcut:vt("compose"),refreshControl:e.jsx(Bt,{state:f,onRefresh:g,label:"Refresh all accounts",errorMessage:p,hasUpdate:d(b)}),account:e.jsx(ds,{})})}const Z="remit.savedSearches",xs=25;function _(){try{const t=localStorage.getItem(Z);if(!t)return[];const s=JSON.parse(t);return Array.isArray(s)?s.filter(a=>typeof a=="string"):[]}catch{return[]}}function hs(t){const s=t.trim();if(!s)return _();const a=[s,..._().filter(n=>n!==s)].slice(0,xs);try{localStorage.setItem(Z,JSON.stringify(a))}catch{return a}return a}function fs(t){const s=_().filter(a=>a!==t);try{localStorage.setItem(Z,JSON.stringify(s))}catch{return s}return s}const de=t=>/^\d/.test(t),ps=(t,s)=>{const a=de(t),n=de(s);return a&&!n?-1:!a&&n?1:t.localeCompare(s,void 0,{sensitivity:"base",numeric:!0})};function gs(t,s,a){const n=[],r=[];for(const o of t)s.has(o.mailboxId)?n.push(o):r.push(o);return r.sort((o,l)=>ps($(o,void 0,a),$(l,void 0,a))),{system:n,labels:r}}function bs(t,s,a){const n=Ze(s)&&t.unseenCount>0;return{id:t.mailboxId,name:$(t,s,a),unseen:n?t.unseenCount:void 0,role:s,fullPath:t.fullPath}}function vs(){const t=Ce(),s=Xe({strict:!1});return t.pathname.startsWith("/settings")?"settings":t.pathname.startsWith("/mail/outbox")?"outbox":t.pathname.startsWith("/mail/flagged")?"flagged":t.pathname.startsWith("/mail/brief")?"brief":s.mailboxId?s.mailboxId:""}function me({accounts:t,onMailboxSelect:s,variant:a="desktop"}){const n=Se(),r=G(),o=vs(),{searchInput:l,onSearchChange:u}=ye(),[h,x]=c.useState(_),{t:b}=Ge("mail",{useSuspense:!1}),d=c.useCallback((m,N)=>b(m,{defaultValue:N}),[b]),f=J({queries:t.map(m=>({...Y({path:{accountId:m.accountId}}),staleTime:1/0}))}),{data:p}=Ne(Ye()),g=c.useMemo(()=>(p?.items??[]).filter(m=>qt(m.status)).length,[p?.items]),j=c.useMemo(()=>t.map((m,N)=>{const C=f[N],M=C?.data?.items??[],I=Je(m.folderAppointments),{system:O,labels:V}=gs(M,I,d),q=C?.isError?"error":C?.isLoading?"loading":"ready";return{id:m.accountId,label:m.email,email:m.email,muted:!!m.muted,outboxPending:g,status:q,onRetry:()=>C?.refetch(),mailboxes:[...O,...V].map(S=>bs(S,I.get(S.mailboxId),d))}}),[t,f,g,d]),y=m=>{n.invalidateQueries({queryKey:et({path:{mailboxId:m},query:{order:"desc"}})})},A=({navId:m,className:N,ariaLabel:C,title:M,children:I,onClick:O})=>m==="brief"?e.jsx(P,{to:"/mail/brief",search:{q:void 0},activeOptions:{includeSearch:!1},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="outbox"?e.jsx(P,{to:"/mail/outbox",search:{q:void 0},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="flagged"?e.jsx(P,{to:"/mail/flagged",search:{q:void 0},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="settings"?e.jsx(P,{to:"/settings/accounts",onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):e.jsx(P,{to:"/mail/$mailboxId",params:{mailboxId:m},search:{q:void 0},onClick:()=>{y(m),O?.()},className:N,"aria-label":C,title:M,children:I}),i=()=>{u(""),s?.()},v=l.trim(),R=v.length>0&&!h.includes(v)?v:void 0,B=c.useCallback(()=>{R&&x(hs(R))},[R]),K=c.useCallback(m=>{x(fs(m))},[]),Q=c.useCallback(m=>{u(m),r({to:"/mail/brief",search:{q:m}}),s?.()},[u,r,s]);return e.jsx(ns,{accounts:j,selectedNavId:o,onSelectNav:i,linkComponent:A,variant:a,savedSearches:h,saveableQuery:R,onSaveCurrentSearch:B,onSelectSavedSearch:Q,onRemoveSavedSearch:K})}function ys(){return e.jsxs("button",{type:"button",onClick:je,className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-muted transition-colors hover:bg-surface hover:text-fg",children:[e.jsx(ke,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Report a bug"})]})}function js({accounts:t,onMailboxSelect:s}){return ve()?.showNavPane??!0?e.jsx(me,{accounts:t}):e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(me,{accounts:t,onMailboxSelect:s,variant:"drawer"})}),e.jsxs("div",{className:"border-t border-line px-2 py-2",children:[e.jsxs(P,{to:"/settings/accounts",onClick:s,children:[e.jsx(Ie,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Settings"})]}),e.jsx(ys,{}),e.jsx(Me,{children:({signOut:r})=>e.jsxs("button",{type:"button",onClick:()=>{s?.(),r()},className:"flex min-h-11 w-full items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-muted transition-colors hover:bg-surface hover:text-fg","data-testid":"sign-out-button",children:[e.jsx(we,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Sign out"})]})})]})]})}const Ss=({isOpen:t,onClose:s})=>{const a=c.useCallback(n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation(),s())},[s]);return c.useEffect(()=>{if(t)return window.addEventListener("keydown",a,!0),()=>window.removeEventListener("keydown",a,!0)},[t,a]),t?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx(tt,{label:"Dismiss keyboard shortcuts",onDismiss:s,className:"backdrop-blur-sm"}),e.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",className:w("relative z-10 max-h-[85vh] w-full max-w-2xl overflow-y-auto","rounded-lg border border-line bg-surface shadow-lg","p-6"),children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Keyboard shortcuts"}),e.jsx("button",{type:"button",onClick:s,className:"p-1 text-fg-muted transition-colors hover:text-fg","aria-label":"Close",children:e.jsx(be,{className:"size-5"})})]}),e.jsx("div",{className:"grid gap-x-8 gap-y-6 sm:grid-cols-2",children:yt.map(n=>e.jsxs("div",{children:[e.jsx("h3",{className:"mb-3 text-sm font-medium text-fg-muted",children:n.title}),e.jsx("div",{className:"space-y-2",children:n.hints.map(r=>e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("span",{className:"text-sm",children:r.description}),e.jsx("span",{className:"flex shrink-0 items-center gap-1",children:r.keys.map((o,l)=>e.jsxs(c.Fragment,{children:[l>0&&r.keys[0]==="g"&&e.jsx("span",{className:"text-2xs text-fg-subtle",children:"then"}),e.jsx(ne,{children:o})]},o))})]},`${r.action}-${r.keys.join("+")}`))})]},n.title))}),e.jsx("div",{className:"mt-6 border-t border-line pt-4",children:e.jsxs("p",{className:"text-center text-xs text-fg-muted",children:["Press ",e.jsx(ne,{children:"Esc"})," to close"]})})]})]}):null};function Ns(t){const s=J({queries:t.map(a=>({...Y({path:{accountId:a.accountId}}),staleTime:1/0}))});return c.useMemo(()=>jt(s.map(a=>a.data?.items??[])),[s])}const Cs=t=>t.map(s=>s.data?.items??[]);function ks(t){const s=J({queries:t.map(a=>({...Y({path:{accountId:a.accountId}}),staleTime:1/0})),combine:Cs});return c.useMemo(()=>st(t.map((a,n)=>({folderAppointments:a.folderAppointments,mailboxes:s[n]??[]}))),[t,s])}function ws(){const t=at(),s=U({select:x=>ae(x.location.pathname)}),a=U({select:x=>Mt(x.location.search)}),[n,r]=c.useState(a),o=Ut(n,200),[l,u]=c.useState(s);if(l!==s){const x=Tt(l,s,a);u(s),x!==void 0&&r(x)}const h=c.useCallback(x=>{u(ae(t.state.location.pathname)),r(x)},[t]);return{searchInput:n,committedQuery:zt(n,o),viewKey:s,setSearchInput:h}}var T={exports:{}},xe;function Is(){if(xe)return T.exports;xe=1;const t=(s,a,n)=>new Promise((r,o)=>{if(n=Object.assign({concurrency:1/0},n),typeof a!="function")throw new TypeError("Mapper function is required");const{concurrency:l}=n;if(!(typeof l=="number"&&l>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${l}\` (${typeof l})`);const u=[],h=s[Symbol.iterator]();let x=!1,b=!1,d=0,f=0;const p=()=>{if(x)return;const g=h.next(),j=f;if(f++,g.done){b=!0,d===0&&r(u);return}d++,Promise.resolve(g.value).then(y=>a(y,j)).then(y=>{u[j]=y,d--,p()},y=>{x=!0,o(y)})};for(let g=0;g<l&&(p(),!b);g++);});return T.exports=t,T.exports.default=t,T.exports}var Ms=Is();const Os=nt(Ms),Es=900*1e3,Rs=300,Ps=(t,s)=>{if(!t)return s;const a=Number.parseInt(t,10);return Number.isFinite(a)&&a>0?a:s},Ls=60*1e3,As=t=>Math.max(Ps(t,Rs)*1e3,Ls),D=As(ct().mailboxPollIntervalSeconds),zs=5,W=new Set,Ts=(t,s,a=Es)=>t.filter(n=>{const r=n.lastSyncAt;return r==null?!0:s-r>a}).map(n=>n.accountId),Fs=(t,s,a=D)=>t-s>=a,Ds=(t,s)=>t.filter(a=>!s.has(a)),he=(t,s)=>{if(W.delete(t),it(s,{softError:!0},"nobody")){lt(s);return}console.warn("[remit] background mailbox sync failed",{accountId:t,error:s})},fe=(t,s)=>rt({path:{accountId:t},throwOnError:!0}).then(()=>{s.invalidateQueries({queryKey:ot({path:{accountId:t}})})}),_s=t=>{const s=Se(),a=c.useRef(t);a.current=t;const n=t.map(r=>r.accountId).join(",");c.useEffect(()=>{const r=Date.now(),l=Ts(a.current,r).filter(u=>!W.has(u));if(l.length!==0)for(const u of l)W.add(u),fe(u,s).catch(h=>{he(u,h)})},[n,s]),c.useEffect(()=>{let r=Date.now(),o;const l=new Set,u=()=>{r=Date.now();const b=Ds(a.current.map(d=>d.accountId),l);for(const d of b)l.add(d);Os(b,d=>fe(d,s).catch(f=>{he(d,f)}).finally(()=>{l.delete(d)}),{concurrency:zs})},h=()=>{if(document.visibilityState==="visible"){u(),o=setTimeout(h,D);return}},x=()=>{document.visibilityState==="visible"&&Fs(Date.now(),r)&&(o!==void 0&&clearTimeout(o),u(),o=setTimeout(h,D))};return o=setTimeout(h,D),document.addEventListener("visibilitychange",x),()=>{o!==void 0&&clearTimeout(o),document.removeEventListener("visibilitychange",x)}},[n,s])},Oe="remit:intelligence-open";function Bs(){try{return localStorage.getItem(Oe)!=="closed"}catch{return!0}}function Ks(t){try{localStorage.setItem(Oe,t?"open":"closed")}catch{}}function Qs({panels:t,prefersOpen:s,isDesktop:a,hasThread:n}){return t.length>0?t.includes("intelligence"):a&&n&&s}function ua(){const t=G(),s=St(),a=wt(s),n=Ot(),r=Et(),o=n.find(Rt),l=o==="shortcuts",u=o==="nav",h=Nt(),[x,b]=c.useState(Bs),d=Qs({panels:n,prefersOpen:x,isDesktop:s==="desktop",hasThread:h!==void 0}),f=c.useCallback((k,ee)=>{r([...k?["intelligence"]:[],...ee?[ee]:[]])},[r]),p=c.useCallback(k=>{Ks(k),b(k),f(k,o)},[o,f]),g=c.useCallback(k=>{f(d,k)},[d,f]),{searchInput:j,committedQuery:y,viewKey:A,setSearchInput:i}=ws(),{data:v,isLoading:R,isError:B,error:K,refetch:Q}=Ne({...ut(),staleTime:1/0}),m=!!(v&&(v.accounts?.length??0)===0);c.useEffect(()=>{m&&t({to:"/onboarding",replace:!0})},[m,t]),$t({enabled:!l,bindings:[{key:"?",handler:()=>g("shortcuts"),noModifiers:!1,preventDefault:!0}]});const N=X(),C=Pt(),M=U({select:k=>Lt(k.matches)?.list==="mailbox"}),I=c.useMemo(()=>({compose:N}),[N]);Ct({enabled:!M&&!C,handlers:I});const O=c.useCallback(()=>{i("")},[i]),V=c.useCallback(()=>{i("")},[i]),q=c.useCallback(()=>{p(!d)},[p,d]),S=v?.accounts??[],Ee=c.useMemo(()=>S.map(k=>k.accountId),[S]),Re=Ns(S),Pe=ks(S),Le=c.useMemo(()=>kt(S),[S]);_s(S);const Ae=c.useCallback(()=>{o==="nav"&&g(void 0)},[o,g]),ze={accounts:S,mailboxNameIndex:Re,accountNameIndex:Le,resultFolderIndex:Pe,searchQuery:y,searchInput:j,searchViewKey:A,onSearchChange:i,onSearchClear:O,onSearchClearQuery:V,intelligenceOpen:d,onToggleIntelligence:q},Te={isSinglePane:a,isLoading:R||m,intelligenceOpen:d,nav:e.jsx(js,{accounts:S,onMailboxSelect:Ae}),topBar:a?void 0:e.jsx(ms,{accounts:S}),overlay:a?e.jsx(cs,{}):void 0,navOpen:u,onOpenNav:()=>g("nav"),onCloseNav:()=>g(void 0)};return e.jsx(dt.Provider,{value:ze,children:e.jsxs(Kt,{accountIds:Ee,children:[B?e.jsx("div",{className:"flex h-full items-center justify-center bg-canvas p-4",children:e.jsx(Ht,{title:"Couldn't load your account",error:K,onRetry:()=>{Q()}})}):e.jsx(Ft,{chrome:Te,children:e.jsx(mt,{})}),e.jsx(Ss,{isOpen:l,onClose:()=>g(void 0)})]})})}export{ua as component,ye as useMailContext};
|
|
1
|
+
import{c as z,r as c,u as Fe,j as e,S as De,a as pe,b as w,C as te,d as se,e as _e,f as ge,F as Be,g as Ke,X as be,T as Qe,O as Ve,M as qe,A as He,h as $e,I as Ue,i as ve,B as F,k as We,l as ye,m as G,o as je,n as Se,p as Ge,q as Y,s as Ne,t as Ye,v as Je,w as Xe,x as $,y as Ze,z as et,D as tt,E as st,G as at,H as nt,J as rt,K as ot,L as it,N as lt,P as ct,Q as ut,R as dt,U as mt}from"./index-BkI9e3vC.js";import{B as xt,S as ht,D as ft,a as pt,b as gt,u as bt,s as vt,c as J,K as yt,d as jt,e as St,f as Nt,g as Ct,h as kt,i as wt}from"./search-token-index-Du18usjZ.js";import{u as X,a as Ce,l as It,N as P,b as U,m as ae,c as Mt,d as Ot,e as Et,i as Rt,f as Pt,g as Lt}from"./useMessageBodyContent-D3WGssaj.js";import{P as At}from"./pencil-GwFCPjeu.js";import{c as zt,s as Tt,M as Ft}from"./search-view-de6HpxOE.js";import{u as Dt,a as _t,R as Bt,M as Kt}from"./useRefreshControl-DVnro4XQ.js";import{M as Qt}from"./menu-C4YTErYs.js";import{B as ke}from"./bug-CcfGVPQC.js";import{A as Vt}from"./avatar-BaTjjbv5.js";import{i as qt}from"./outbox-status-BlKn6P0x.js";import{E as Ht}from"./ErrorState-CcpsTpZA.js";import{K as ne}from"./kbd-NyMHCJhU.js";import{u as $t}from"./index-DZJeVVlS.js";import{u as Ut}from"./useDebouncedValue-M2Ae9QQB.js";import"./search-scope-CjUz4XDB.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./FullCompose-fNHynN0g.js";import"./confirm-dialog-BBgNPSWF.js";import"./circle-check-big-Bat79NJC.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";const Wt=z("BookmarkPlus",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}],["line",{x1:"12",x2:"12",y1:"7",y2:"13",key:"1cppfj"}],["line",{x1:"15",x2:"9",y1:"10",y2:"10",key:"1gty7f"}]]);const Gt=z("CalendarDays",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);const we=z("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);const Ie=z("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Yt=z("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]),Jt="button:not([disabled]), a[href]",E="outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface-sunken";function Xt({active:t,dimmed:s,indent:a}){return w("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm transition-colors",E,a&&"pl-7",t?"bg-accent-2-soft font-medium text-accent-2":"text-fg-muted hover:bg-surface hover:text-fg",s&&"opacity-55")}function Zt({icon:t,label:s,count:a,active:n}){return e.jsxs(e.Fragment,{children:[t&&e.jsx("span",{className:w("shrink-0",n?"text-accent-2":"text-fg-subtle"),children:t}),e.jsx("span",{className:"flex-1 truncate",children:s}),a!=null&&a>0&&e.jsx("span",{className:w("text-2xs tabular-nums",n?"text-accent-2":"text-fg-subtle"),children:a})]})}function L({icon:t,label:s,count:a,active:n,dimmed:r,indent:o,navId:l,linkComponent:u,ariaLabel:h,title:x,onClick:b}){const d=Xt({active:n,dimmed:r,indent:o}),f=e.jsx(Zt,{icon:t,label:s,count:a,active:n});return l&&u?u({navId:l,className:d,ariaLabel:h??s,title:x,onClick:b,children:f}):e.jsx("button",{type:"button",onClick:b,className:d,"aria-label":h,title:x,children:f})}const re={inbox:0,flagged:1,drafts:2,sent:3,archive:4,all:5,junk:6,trash:7};function es(t){switch(t){case"inbox":return e.jsx(Ue,{className:"size-4"});case"flagged":return e.jsx(pe,{className:"size-4"});case"drafts":return e.jsx($e,{className:"size-4"});case"sent":return e.jsx(ge,{className:"size-4"});case"archive":return e.jsx(He,{className:"size-4"});case"all":return e.jsx(qe,{className:"size-4"});case"junk":return e.jsx(Ve,{className:"size-4"});case"trash":return e.jsx(Qe,{className:"size-4"})}}const oe=t=>t.role!=null,H=8,ie="remit.nav.folders.open.",le="remit.nav.account.open.";function ce(t,s,a){if(typeof localStorage>"u")return a;const n=localStorage.getItem(t+s);return n===null?a:n!=="0"}function ue(t,s,a){typeof localStorage>"u"||localStorage.setItem(t+s,a?"1":"0")}function ts({query:t,onSelect:s,onRemove:a}){return e.jsxs("div",{className:"group flex w-full items-center gap-1 rounded-md pr-1 hover:bg-surface",children:[e.jsxs("button",{type:"button",onClick:s,className:w("flex min-w-0 flex-1 items-center gap-2 px-2 py-1 text-left text-sm text-fg-muted transition-colors hover:text-fg",E),children:[e.jsx(Ke,{className:"size-4 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"min-w-0 flex-1 truncate",children:t})]}),a&&e.jsx("button",{type:"button",onClick:a,"aria-label":`Remove saved search: ${t}`,className:w("shrink-0 rounded-full p-1 text-fg-subtle opacity-0 transition-opacity hover:bg-surface-sunken hover:text-fg group-hover:opacity-100 focus-visible:opacity-100",E),children:e.jsx(be,{className:"size-3.5"})})]})}function ss({savedSearches:t,saveableQuery:s,onSelectSavedSearch:a,onRemoveSavedSearch:n,onSaveCurrentSearch:r}){return t.length===0&&!s?null:e.jsxs("div",{className:"mt-3",children:[e.jsx("div",{className:"px-2 pb-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Saved searches"}),s&&e.jsxs("button",{type:"button",onClick:r,className:w("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm text-accent transition-colors hover:bg-surface",E),children:[e.jsx(Wt,{className:"size-4 shrink-0"}),e.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["Save “",s,"”"]})]}),t.map(o=>e.jsx(ts,{query:o,onSelect:()=>a?.(o),onRemove:n?()=>n(o):void 0},o))]})}function as({account:t,selectedNavId:s,onSelectNav:a,linkComponent:n}){const[r,o]=c.useState(()=>ce(le,t.id,!0)),[l,u]=c.useState(()=>ce(ie,t.id,!0)),[h,x]=c.useState(!1),b=()=>{o(i=>{const v=!i;return ue(le,t.id,v),v})},d=()=>{u(i=>{const v=!i;return ue(ie,t.id,v),v})},f=t.mailboxes.filter(oe).sort((i,v)=>re[i.role]-re[v.role]),p=t.mailboxes.filter(i=>!oe(i)),g=h||p.length<=H?p:p.slice(0,H),j=p.length-g.length,y=t.status??"ready",A=y==="ready"&&f.length===0&&p.length===0;return e.jsxs("div",{className:"mt-3",children:[e.jsxs("button",{type:"button",onClick:b,"aria-expanded":r,className:w("flex w-full items-center gap-1.5 px-2 pb-1 text-left transition-colors hover:text-fg",E,t.muted&&"opacity-55"),children:[r?e.jsx(te,{className:"size-3 shrink-0 text-fg-subtle"}):e.jsx(se,{className:"size-3 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"truncate text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:t.label}),t.muted&&e.jsxs(e.Fragment,{children:[e.jsx(xt,{className:"size-3 shrink-0 text-fg-subtle"}),e.jsx("span",{className:"text-2xs text-fg-subtle",children:"muted"})]})]}),r&&e.jsxs(e.Fragment,{children:[y==="loading"&&e.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"Loading…"}),y==="error"&&e.jsxs("div",{role:"alert",className:"mx-2 my-1 flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-2 py-1.5 text-sm",children:[e.jsx(_e,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),e.jsx("div",{className:"min-w-0 flex-1",children:e.jsx("p",{className:"font-medium text-danger",children:"Couldn't load mailboxes"})}),t.onRetry&&e.jsx("button",{type:"button",onClick:t.onRetry,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}),A&&e.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"No mailboxes"}),y==="ready"&&e.jsxs(e.Fragment,{children:[f.map(i=>e.jsx(L,{navId:i.id,linkComponent:n,icon:es(i.role),label:i.name,ariaLabel:i.name,title:i.fullPath??i.name,count:i.unseen,active:s===i.id,dimmed:t.muted,onClick:()=>a?.(i.id)},i.id)),t.outboxPending!==void 0&&e.jsx(L,{navId:"outbox",linkComponent:n,icon:e.jsx(ge,{className:"size-4"}),label:"Outbox",ariaLabel:"Outbox",count:t.outboxPending>0?t.outboxPending:void 0,active:s==="outbox",dimmed:t.muted,onClick:()=>a?.("outbox")}),p.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:d,"aria-expanded":l,className:w("mt-1 flex w-full items-center gap-1 px-2 py-1 text-left text-2xs font-semibold uppercase tracking-wider text-fg-subtle transition-colors hover:text-fg",E),children:[l?e.jsx(te,{className:"size-3 shrink-0"}):e.jsx(se,{className:"size-3 shrink-0"}),e.jsx("span",{className:"flex-1",children:"Folders"}),e.jsx("span",{className:"tabular-nums opacity-70",children:p.length})]}),l&&e.jsxs(e.Fragment,{children:[g.map(i=>e.jsx(L,{navId:i.id,linkComponent:n,icon:e.jsx(Be,{className:"size-4"}),label:i.name,ariaLabel:i.name,title:i.fullPath??i.name,count:i.unseen,active:s===i.id,dimmed:t.muted,onClick:()=>a?.(i.id)},i.id)),(j>0||h)&&p.length>H&&e.jsx("button",{type:"button",onClick:()=>x(i=>!i),className:w("ml-7 flex items-center px-2 py-1 text-2xs font-medium text-accent transition-colors hover:underline",E),children:h?"Show less":`Show all (${p.length})`})]})]})]})]})]})}function ns({accounts:t,selectedNavId:s,briefUnseen:a,onSelectNav:n,variant:r="desktop",linkComponent:o,calendarNav:l="hidden",savedSearches:u=[],saveableQuery:h,onSelectSavedSearch:x,onRemoveSavedSearch:b,onSaveCurrentSearch:d}){const f=c.useRef(null);Fe({containerRef:f,itemSelector:Jt});const p=r==="drawer",g=e.jsxs("nav",{ref:p?f:void 0,className:p?"px-2 py-2":"flex-1 overflow-y-auto px-2 py-2","aria-label":"Mailboxes",children:[e.jsx(L,{navId:"brief",linkComponent:o,icon:e.jsx(De,{className:"size-4"}),label:"Daily brief",ariaLabel:"Daily brief",count:a,active:s==="brief",onClick:()=>n?.("brief")}),l==="shown"&&e.jsx(L,{navId:"calendar",linkComponent:o,icon:e.jsx(Gt,{className:"size-4"}),label:"Calendar",ariaLabel:"Calendar",active:s==="calendar",onClick:()=>n?.("calendar")}),e.jsx(L,{navId:"flagged",linkComponent:o,icon:e.jsx(pe,{className:"size-4"}),label:"Starred",ariaLabel:"Starred",active:s==="flagged",onClick:()=>n?.("flagged")}),e.jsx(ss,{savedSearches:u,saveableQuery:h,onSelectSavedSearch:x,onRemoveSavedSearch:b,onSaveCurrentSearch:d}),t.length===0?e.jsx("div",{className:"px-2 py-4 text-center text-sm text-fg-muted",children:"No accounts configured"}):t.map(j=>e.jsx(as,{account:j,selectedNavId:s,onSelectNav:n,linkComponent:o},j.id))]});return p?g:e.jsx("aside",{ref:f,className:"flex h-full w-full flex-col bg-surface-sunken",children:g})}function rs({leading:t,search:s,actions:a,className:n}){return e.jsxs("header",{className:w("flex min-h-pane-header w-full shrink-0 items-center gap-2 border-b border-line bg-canvas px-row-inset py-1",n),children:[t&&e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t}),e.jsx("div",{className:"flex min-w-0 flex-1 justify-start",children:e.jsx("div",{className:"w-full max-w-xs transition-[max-width] duration-150 ease-out focus-within:max-w-lg",children:s})}),a&&e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:a})]})}function os(){const t=ve();if(!t)return null;const s=t.showNavPane?!t.navCollapsed:!1;return e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Qt,{className:"size-4"}),onClick:t.toggleNav,"aria-label":s?"Hide folders":"Show folders","aria-expanded":s,title:"Folders",className:"shrink-0"})}const is={global:"Search all mail",pending:"Search mail",scoped:"Search this folder"};function ls({search:t,onCompose:s,onReportBug:a,onOpenSettings:n,composeShortcut:r,refreshControl:o,account:l}){return e.jsx(rs,{leading:e.jsx(os,{}),search:e.jsx(ht,{value:t.value,onChange:t.onChange,onClear:t.onClear,onClearQuery:t.onClearQuery,chips:t.chips,onRemoveChip:t.onRemoveChip,placeholder:is[t.scope]}),actions:e.jsxs(e.Fragment,{children:[e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Yt,{className:"size-4"}),title:r?`Compose (${r})`:"Compose","aria-label":"Compose",onClick:s}),e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(ke,{className:"size-4"}),title:"Report a bug","aria-label":"Report a bug",onClick:a}),e.jsx(F,{variant:"ghost",size:"sm",icon:e.jsx(Ie,{className:"size-4"}),title:"Settings","aria-label":"Settings",onClick:n}),o,l]})})}const cs=()=>{const t=X(),s=Ce();return It(s.pathname)?null:e.jsx("button",{type:"button",onClick:t,"aria-label":"Compose new message",className:"lg:hidden fixed right-4 z-30 h-14 w-14 rounded-full bg-accent text-accent-fg shadow-lg flex items-center justify-center hover:opacity-90 active:scale-95 transition-all",style:{bottom:"calc(env(safe-area-inset-bottom, 0) + 1rem)"},children:e.jsx(At,{className:"size-6"})})},Me=({children:t})=>{const{Account:s}=We();return e.jsx(s,{children:t})},us=({email:t,onSignOut:s})=>{const a=t??"Account";return e.jsxs(ft,{trigger:e.jsx(Vt,{name:a,email:t??void 0,size:"sm"}),align:"right",children:[t&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"px-3 py-2 text-xs text-fg-muted truncate",title:t,"data-testid":"account-menu-email",children:t}),e.jsx(pt,{})]}),e.jsxs(gt,{onClick:s,children:[e.jsx(we,{className:"size-4"}),"Sign out"]})]})},ds=()=>e.jsx(Me,{children:({email:t,signOut:s})=>e.jsx(us,{email:t,onSignOut:s})});function ms({accounts:t}){const{searchInput:s,onSearchChange:a,onSearchClear:n,onSearchClearQuery:r}=ye(),o=G(),l=X(),{scope:u,clearScope:h}=bt(t),x=u.kind==="scoped"?[{id:u.chip.id,label:u.chip.label,tone:"scope"}]:void 0,b=c.useMemo(()=>t.map(j=>j.accountId),[t]),{hasNewMail:d}=Dt(),{state:f,errorMessage:p,refresh:g}=_t(b);return e.jsx(ls,{search:{value:s,scope:u.kind,chips:x,onChange:a,onClear:n,onClearQuery:r,onRemoveChip:h},onCompose:l,onReportBug:je,onOpenSettings:()=>o({to:"/settings/accounts"}),composeShortcut:vt("compose"),refreshControl:e.jsx(Bt,{state:f,onRefresh:g,label:"Refresh all accounts",errorMessage:p,hasUpdate:d(b)}),account:e.jsx(ds,{})})}const Z="remit.savedSearches",xs=25;function _(){try{const t=localStorage.getItem(Z);if(!t)return[];const s=JSON.parse(t);return Array.isArray(s)?s.filter(a=>typeof a=="string"):[]}catch{return[]}}function hs(t){const s=t.trim();if(!s)return _();const a=[s,..._().filter(n=>n!==s)].slice(0,xs);try{localStorage.setItem(Z,JSON.stringify(a))}catch{return a}return a}function fs(t){const s=_().filter(a=>a!==t);try{localStorage.setItem(Z,JSON.stringify(s))}catch{return s}return s}const de=t=>/^\d/.test(t),ps=(t,s)=>{const a=de(t),n=de(s);return a&&!n?-1:!a&&n?1:t.localeCompare(s,void 0,{sensitivity:"base",numeric:!0})};function gs(t,s,a){const n=[],r=[];for(const o of t)s.has(o.mailboxId)?n.push(o):r.push(o);return r.sort((o,l)=>ps($(o,void 0,a),$(l,void 0,a))),{system:n,labels:r}}function bs(t,s,a){const n=Ze(s)&&t.unseenCount>0;return{id:t.mailboxId,name:$(t,s,a),unseen:n?t.unseenCount:void 0,role:s,fullPath:t.fullPath}}function vs(){const t=Ce(),s=Xe({strict:!1});return t.pathname.startsWith("/settings")?"settings":t.pathname.startsWith("/mail/outbox")?"outbox":t.pathname.startsWith("/mail/flagged")?"flagged":t.pathname.startsWith("/mail/brief")?"brief":s.mailboxId?s.mailboxId:""}function me({accounts:t,onMailboxSelect:s,variant:a="desktop"}){const n=Se(),r=G(),o=vs(),{searchInput:l,onSearchChange:u}=ye(),[h,x]=c.useState(_),{t:b}=Ge("mail",{useSuspense:!1}),d=c.useCallback((m,N)=>b(m,{defaultValue:N}),[b]),f=J({queries:t.map(m=>({...Y({path:{accountId:m.accountId}}),staleTime:1/0}))}),{data:p}=Ne(Ye()),g=c.useMemo(()=>(p?.items??[]).filter(m=>qt(m.status)).length,[p?.items]),j=c.useMemo(()=>t.map((m,N)=>{const C=f[N],M=C?.data?.items??[],I=Je(m.folderAppointments),{system:O,labels:V}=gs(M,I,d),q=C?.isError?"error":C?.isLoading?"loading":"ready";return{id:m.accountId,label:m.email,email:m.email,muted:!!m.muted,outboxPending:g,status:q,onRetry:()=>C?.refetch(),mailboxes:[...O,...V].map(S=>bs(S,I.get(S.mailboxId),d))}}),[t,f,g,d]),y=m=>{n.invalidateQueries({queryKey:et({path:{mailboxId:m},query:{order:"desc"}})})},A=({navId:m,className:N,ariaLabel:C,title:M,children:I,onClick:O})=>m==="brief"?e.jsx(P,{to:"/mail/brief",search:{q:void 0},activeOptions:{includeSearch:!1},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="outbox"?e.jsx(P,{to:"/mail/outbox",search:{q:void 0},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="flagged"?e.jsx(P,{to:"/mail/flagged",search:{q:void 0},onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):m==="settings"?e.jsx(P,{to:"/settings/accounts",onClick:()=>O?.(),className:N,"aria-label":C,title:M,children:I}):e.jsx(P,{to:"/mail/$mailboxId",params:{mailboxId:m},search:{q:void 0},onClick:()=>{y(m),O?.()},className:N,"aria-label":C,title:M,children:I}),i=()=>{u(""),s?.()},v=l.trim(),R=v.length>0&&!h.includes(v)?v:void 0,B=c.useCallback(()=>{R&&x(hs(R))},[R]),K=c.useCallback(m=>{x(fs(m))},[]),Q=c.useCallback(m=>{u(m),r({to:"/mail/brief",search:{q:m}}),s?.()},[u,r,s]);return e.jsx(ns,{accounts:j,selectedNavId:o,onSelectNav:i,linkComponent:A,variant:a,savedSearches:h,saveableQuery:R,onSaveCurrentSearch:B,onSelectSavedSearch:Q,onRemoveSavedSearch:K})}function ys(){return e.jsxs("button",{type:"button",onClick:je,className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-muted transition-colors hover:bg-surface hover:text-fg",children:[e.jsx(ke,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Report a bug"})]})}function js({accounts:t,onMailboxSelect:s}){return ve()?.showNavPane??!0?e.jsx(me,{accounts:t}):e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(me,{accounts:t,onMailboxSelect:s,variant:"drawer"})}),e.jsxs("div",{className:"border-t border-line px-2 py-2",children:[e.jsxs(P,{to:"/settings/accounts",onClick:s,children:[e.jsx(Ie,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Settings"})]}),e.jsx(ys,{}),e.jsx(Me,{children:({signOut:r})=>e.jsxs("button",{type:"button",onClick:()=>{s?.(),r()},className:"flex min-h-11 w-full items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-muted transition-colors hover:bg-surface hover:text-fg","data-testid":"sign-out-button",children:[e.jsx(we,{className:"size-4 shrink-0"}),e.jsx("span",{className:"flex-1 truncate text-left",children:"Sign out"})]})})]})]})}const Ss=({isOpen:t,onClose:s})=>{const a=c.useCallback(n=>{n.key==="Escape"&&(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation(),s())},[s]);return c.useEffect(()=>{if(t)return window.addEventListener("keydown",a,!0),()=>window.removeEventListener("keydown",a,!0)},[t,a]),t?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx(tt,{label:"Dismiss keyboard shortcuts",onDismiss:s,className:"backdrop-blur-sm"}),e.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",className:w("relative z-10 max-h-[85vh] w-full max-w-2xl overflow-y-auto","rounded-lg border border-line bg-surface shadow-lg","p-6"),children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-semibold",children:"Keyboard shortcuts"}),e.jsx("button",{type:"button",onClick:s,className:"p-1 text-fg-muted transition-colors hover:text-fg","aria-label":"Close",children:e.jsx(be,{className:"size-5"})})]}),e.jsx("div",{className:"grid gap-x-8 gap-y-6 sm:grid-cols-2",children:yt.map(n=>e.jsxs("div",{children:[e.jsx("h3",{className:"mb-3 text-sm font-medium text-fg-muted",children:n.title}),e.jsx("div",{className:"space-y-2",children:n.hints.map(r=>e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("span",{className:"text-sm",children:r.description}),e.jsx("span",{className:"flex shrink-0 items-center gap-1",children:r.keys.map((o,l)=>e.jsxs(c.Fragment,{children:[l>0&&r.keys[0]==="g"&&e.jsx("span",{className:"text-2xs text-fg-subtle",children:"then"}),e.jsx(ne,{children:o})]},o))})]},`${r.action}-${r.keys.join("+")}`))})]},n.title))}),e.jsx("div",{className:"mt-6 border-t border-line pt-4",children:e.jsxs("p",{className:"text-center text-xs text-fg-muted",children:["Press ",e.jsx(ne,{children:"Esc"})," to close"]})})]})]}):null};function Ns(t){const s=J({queries:t.map(a=>({...Y({path:{accountId:a.accountId}}),staleTime:1/0}))});return c.useMemo(()=>jt(s.map(a=>a.data?.items??[])),[s])}const Cs=t=>t.map(s=>s.data?.items??[]);function ks(t){const s=J({queries:t.map(a=>({...Y({path:{accountId:a.accountId}}),staleTime:1/0})),combine:Cs});return c.useMemo(()=>st(t.map((a,n)=>({folderAppointments:a.folderAppointments,mailboxes:s[n]??[]}))),[t,s])}function ws(){const t=at(),s=U({select:x=>ae(x.location.pathname)}),a=U({select:x=>Mt(x.location.search)}),[n,r]=c.useState(a),o=Ut(n,200),[l,u]=c.useState(s);if(l!==s){const x=Tt(l,s,a);u(s),x!==void 0&&r(x)}const h=c.useCallback(x=>{u(ae(t.state.location.pathname)),r(x)},[t]);return{searchInput:n,committedQuery:zt(n,o),viewKey:s,setSearchInput:h}}var T={exports:{}},xe;function Is(){if(xe)return T.exports;xe=1;const t=(s,a,n)=>new Promise((r,o)=>{if(n=Object.assign({concurrency:1/0},n),typeof a!="function")throw new TypeError("Mapper function is required");const{concurrency:l}=n;if(!(typeof l=="number"&&l>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${l}\` (${typeof l})`);const u=[],h=s[Symbol.iterator]();let x=!1,b=!1,d=0,f=0;const p=()=>{if(x)return;const g=h.next(),j=f;if(f++,g.done){b=!0,d===0&&r(u);return}d++,Promise.resolve(g.value).then(y=>a(y,j)).then(y=>{u[j]=y,d--,p()},y=>{x=!0,o(y)})};for(let g=0;g<l&&(p(),!b);g++);});return T.exports=t,T.exports.default=t,T.exports}var Ms=Is();const Os=nt(Ms),Es=900*1e3,Rs=300,Ps=(t,s)=>{if(!t)return s;const a=Number.parseInt(t,10);return Number.isFinite(a)&&a>0?a:s},Ls=60*1e3,As=t=>Math.max(Ps(t,Rs)*1e3,Ls),D=As(ct().mailboxPollIntervalSeconds),zs=5,W=new Set,Ts=(t,s,a=Es)=>t.filter(n=>{const r=n.lastSyncAt;return r==null?!0:s-r>a}).map(n=>n.accountId),Fs=(t,s,a=D)=>t-s>=a,Ds=(t,s)=>t.filter(a=>!s.has(a)),he=(t,s)=>{if(W.delete(t),it(s,{softError:!0},"nobody")){lt(s);return}console.warn("[remit] background mailbox sync failed",{accountId:t,error:s})},fe=(t,s)=>rt({path:{accountId:t},throwOnError:!0}).then(()=>{s.invalidateQueries({queryKey:ot({path:{accountId:t}})})}),_s=t=>{const s=Se(),a=c.useRef(t);a.current=t;const n=t.map(r=>r.accountId).join(",");c.useEffect(()=>{const r=Date.now(),l=Ts(a.current,r).filter(u=>!W.has(u));if(l.length!==0)for(const u of l)W.add(u),fe(u,s).catch(h=>{he(u,h)})},[n,s]),c.useEffect(()=>{let r=Date.now(),o;const l=new Set,u=()=>{r=Date.now();const b=Ds(a.current.map(d=>d.accountId),l);for(const d of b)l.add(d);Os(b,d=>fe(d,s).catch(f=>{he(d,f)}).finally(()=>{l.delete(d)}),{concurrency:zs})},h=()=>{if(document.visibilityState==="visible"){u(),o=setTimeout(h,D);return}},x=()=>{document.visibilityState==="visible"&&Fs(Date.now(),r)&&(o!==void 0&&clearTimeout(o),u(),o=setTimeout(h,D))};return o=setTimeout(h,D),document.addEventListener("visibilitychange",x),()=>{o!==void 0&&clearTimeout(o),document.removeEventListener("visibilitychange",x)}},[n,s])},Oe="remit:intelligence-open";function Bs(){try{return localStorage.getItem(Oe)!=="closed"}catch{return!0}}function Ks(t){try{localStorage.setItem(Oe,t?"open":"closed")}catch{}}function Qs({panels:t,prefersOpen:s,isDesktop:a,hasThread:n}){return t.length>0?t.includes("intelligence"):a&&n&&s}function ua(){const t=G(),s=St(),a=wt(s),n=Ot(),r=Et(),o=n.find(Rt),l=o==="shortcuts",u=o==="nav",h=Nt(),[x,b]=c.useState(Bs),d=Qs({panels:n,prefersOpen:x,isDesktop:s==="desktop",hasThread:h!==void 0}),f=c.useCallback((k,ee)=>{r([...k?["intelligence"]:[],...ee?[ee]:[]])},[r]),p=c.useCallback(k=>{Ks(k),b(k),f(k,o)},[o,f]),g=c.useCallback(k=>{f(d,k)},[d,f]),{searchInput:j,committedQuery:y,viewKey:A,setSearchInput:i}=ws(),{data:v,isLoading:R,isError:B,error:K,refetch:Q}=Ne({...ut(),staleTime:1/0}),m=!!(v&&(v.accounts?.length??0)===0);c.useEffect(()=>{m&&t({to:"/onboarding",replace:!0})},[m,t]),$t({enabled:!l,bindings:[{key:"?",handler:()=>g("shortcuts"),noModifiers:!1,preventDefault:!0}]});const N=X(),C=Pt(),M=U({select:k=>Lt(k.matches)?.list==="mailbox"}),I=c.useMemo(()=>({compose:N}),[N]);Ct({enabled:!M&&!C,handlers:I});const O=c.useCallback(()=>{i("")},[i]),V=c.useCallback(()=>{i("")},[i]),q=c.useCallback(()=>{p(!d)},[p,d]),S=v?.accounts??[],Ee=c.useMemo(()=>S.map(k=>k.accountId),[S]),Re=Ns(S),Pe=ks(S),Le=c.useMemo(()=>kt(S),[S]);_s(S);const Ae=c.useCallback(()=>{o==="nav"&&g(void 0)},[o,g]),ze={accounts:S,mailboxNameIndex:Re,accountNameIndex:Le,resultFolderIndex:Pe,searchQuery:y,searchInput:j,searchViewKey:A,onSearchChange:i,onSearchClear:O,onSearchClearQuery:V,intelligenceOpen:d,onToggleIntelligence:q},Te={isSinglePane:a,isLoading:R||m,intelligenceOpen:d,nav:e.jsx(js,{accounts:S,onMailboxSelect:Ae}),topBar:a?void 0:e.jsx(ms,{accounts:S}),overlay:a?e.jsx(cs,{}):void 0,navOpen:u,onOpenNav:()=>g("nav"),onCloseNav:()=>g(void 0)};return e.jsx(dt.Provider,{value:ze,children:e.jsxs(Kt,{accountIds:Ee,children:[B?e.jsx("div",{className:"flex h-full items-center justify-center bg-canvas p-4",children:e.jsx(Ht,{title:"Couldn't load your account",error:K,onRetry:()=>{Q()}})}):e.jsx(Ft,{chrome:Te,children:e.jsx(mt,{})}),e.jsx(Ss,{isOpen:l,onClose:()=>g(void 0)})]})})}export{ua as component,ye as useMailContext};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./index-
|
|
1
|
+
import{c as e}from"./index-BkI9e3vC.js";const a=e("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);export{a as M};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e}from"./index-
|
|
1
|
+
import{c as e}from"./index-BkI9e3vC.js";const n=e("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);export{n as M};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as g,s as C,q as I,a7 as L,K as _,cX as A,r as b,bN as x,p as D,v as E,cY as p,x as N}from"./index-
|
|
1
|
+
import{n as g,s as C,q as I,a7 as L,K as _,cX as A,r as b,bN as x,p as D,v as E,cY as p,x as N}from"./index-BkI9e3vC.js";import{a as w}from"./enums-B_igRgfI.js";const F=3e4,R=1e3,$="The folder couldn't be created on the mail server. Please try again.",B="The folder was created but the mail server hasn't confirmed it yet, so nothing was attached to it. It's in your folder list — try again in a moment.",Y=(e,t)=>new Promise((a,o)=>{if(t?.aborted){o(t.reason);return}const n=setTimeout(()=>{t?.removeEventListener("abort",r),a()},e),r=()=>{clearTimeout(n),o(t?.reason)};t?.addEventListener("abort",r,{once:!0})});async function k({fetchMailboxes:e,mailboxId:t,signal:a,timeoutMs:o=F,pollIntervalMs:n=R,delay:r=Y,now:l=Date.now}){const s=l()+o;for(;;){a?.throwIfAborted();const c=(await e()).find(u=>u.mailboxId===t);if(c?.syncStatus===w.synced)return c;if(c?.syncStatus===w.failed)throw new Error($);if(l()>=s)throw new Error(B);await r(n,a)}}function S(e,t){const a=e.trim();return t?`${t.fullPath}${t.hierarchyDelimiter}${a}`:a}const P=(e,t)=>{const a=e.split(t);return a[0]?.toLowerCase()==="inbox"&&(a[0]="INBOX"),a.join(t)};function X({name:e,delimiter:t,parent:a,existingPaths:o}){const n=e.trim();if(n==="")return"Enter a folder name.";if(n.includes(t))return`A folder name can't contain "${t}".`;const r=P(S(n,a),t);if(o.some(s=>P(s,t)===r))return"A folder with that name already exists."}function j(e){const t=g(),{data:a}=C({...I({path:{accountId:e??""}}),enabled:!!e}),o=L({...A(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:_({path:{accountId:e}})})}}),n=b.useRef(new Map),r=b.useCallback(async(s,i,c)=>{if(!e)throw new Error("No account to create the folder in. Pick messages from a single account first.");const u=a?.items??[],d=i?u.find(h=>h.fullPath===i):void 0;if(i&&!d)throw new Error(`Couldn't find the folder "${i}" to create this one inside.`);const y=d?{fullPath:d.fullPath,hierarchyDelimiter:d.hierarchyDelimiter}:void 0,f=S(s,y);let m=n.current.get(f);if(!m){const h=y?.hierarchyDelimiter??u[0]?.hierarchyDelimiter??"/",v=X({name:s,delimiter:h,parent:y,existingPaths:u.map(T=>T.fullPath)});if(v)throw new Error(v);m=(await o.mutateAsync({path:{accountId:e},body:{fullPath:f,namespaceType:"personal"}})).mailboxId,n.current.set(f,m)}const M=await k({mailboxId:m,signal:c,fetchMailboxes:async()=>(await t.fetchQuery({...I({path:{accountId:e}}),staleTime:0})).items??[]});return n.current.delete(f),{id:M.mailboxId,label:x(M.fullPath),path:M.fullPath}},[o,e,a,t]);return{createFolder:b.useCallback((s,i)=>r(s,"",i),[r]),createFolderIn:r,mutation:o}}const J=()=>{const{t:e}=D("mail",{useSuspense:!1});return b.useCallback((t,a)=>e(t,{defaultValue:a}),[e])},ee=100,Q=e=>e.trim().toLowerCase()==="inbox",z=(e,t)=>{const a=`${e.fullPath}${e.hierarchyDelimiter}`;return t.some(o=>o.mailboxId!==e.mailboxId&&o.fullPath.startsWith(a))},q=(e,t)=>t.find(a=>a.mailboxId!=null&&a.mailboxId===e)?.role;function te(e,t,a){if(Q(e.fullPath))return{deletable:!1,reason:"inbox",message:"The inbox can't be deleted."};const o=q(e.mailboxId,a);return o?{deletable:!1,reason:"role",message:`This folder is your ${o} folder. Reassign that role before deleting it.`}:z(e,t)?{deletable:!1,reason:"children",message:"This folder has subfolders. Delete them first."}:{deletable:!0}}function K(e,t){return e.filter(a=>a.mailboxId!==t)}function ae(e){return{total:e,moved:0,phase:e===0?"moved":"moving"}}function oe(e,t){if(e.phase!=="moving")return e;const a=Math.min(e.total,e.moved+Math.max(0,t));return{...e,moved:a,phase:a>=e.total?"moved":"moving"}}function ne(e,t){return{...e,phase:"failed",error:t}}function re(e){return`Moved ${e.moved} of ${e.total}`}function ie(e){return e>0?"choose-fate":"confirm-empty"}const U=new Set(["outbox","postvak uit","boîte d'envoi","postausgang","buzón de salida","posta in uscita","送信トレイ","送件匣","发件箱","skrzynka nadawcza"]),V=e=>{const t=x(e.fullPath).trim().toLowerCase();return U.has(t)},O=p.length,G=(e,t)=>{const a=E(t);return[...e.filter(n=>{const r=a.get(n.mailboxId);return r==="drafts"||r==="sent"?!1:!V(n)})].sort((n,r)=>{const l=a.has(n.mailboxId)?p.indexOf(a.get(n.mailboxId)??"inbox"):O,s=a.has(r.mailboxId)?p.indexOf(a.get(r.mailboxId)??"inbox"):O;return l!==s?l-s:x(n.fullPath).localeCompare(x(r.fullPath),void 0,{sensitivity:"base",numeric:!0})})},se=e=>e[0]?.hierarchyDelimiter??"/",le=({mailboxes:e,folderAppointments:t,currentMailboxId:a,excludeMailboxId:o,translator:n})=>{const r=G(e,t),l=E(t);return(o?K(r,o):r).map(i=>({id:i.mailboxId,label:N(i,l.get(i.mailboxId),n),path:i.fullPath,isCurrent:i.mailboxId===a}))};export{ee as M,J as a,le as b,ae as c,ne as d,oe as e,se as f,te as g,ie as i,re as m,j as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{V as t,W as r,n as a,r as i,j as s}from"./index-
|
|
1
|
+
import{V as t,W as r,n as a,r as i,j as s}from"./index-BkI9e3vC.js";import{O as c}from"./OnboardingWizard-Dv32xAWf.js";import"./kbd-NyMHCJhU.js";import"./account-form-helpers-DhckT_PN.js";import"./mail-l6m0vhbl.js";async function m(e){e.recordCompleted(),await e.queryClient.refetchQueries({queryKey:t()}),e.navigateToInbox()}function C(){const e=r(),o=a(),n=i.useCallback(l=>{m({queryClient:o,recordCompleted:()=>e.recordEvent("onboarding.completed"),navigateToInbox:()=>{window.location.assign("/mail")}})},[e,o]);return s.jsx(c,{skipWelcome:!1,onComplete:n})}export{C as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as i,j as o,U as m}from"./index-BkI9e3vC.js";import{a as p}from"./search-view-de6HpxOE.js";import{O as t}from"./OutboxPane-EosxgjWC.js";import{u as s}from"./useSearchMirror-BG6efGBY.js";import"./useMessageBodyContent-D3WGssaj.js";import"./FullCompose-fNHynN0g.js";import"./ErrorState-CcpsTpZA.js";import"./index-DZJeVVlS.js";import"./useSignature-CPUzAYyq.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-M2Ae9QQB.js";import"./useMediaQuery-bIUEJ5Pl.js";import"./confirm-dialog-BBgNPSWF.js";import"./useSearchTokenContext-BbemXlBA.js";import"./kbd-NyMHCJhU.js";import"./enums-B_igRgfI.js";import"./search-scope-CjUz4XDB.js";import"./circle-check-big-Bat79NJC.js";import"./clock-CyzBwXAZ.js";import"./row-actions-CPzqKYFm.js";import"./rotate-ccw-C3nY3c4i.js";import"./NavMenuButton-BYPOjfVN.js";import"./menu-C4YTErYs.js";import"./format-D7umvejg.js";import"./outbox-status-BlKn6P0x.js";import"./search-query-Cr_ZXBCp.js";function a(){return i({from:"/mail/outbox/draft/$outboxMessageId",shouldThrow:!1})?.outboxMessageId}function k(){const r=a();return s({to:"/mail/outbox"}),o.jsx(t,{outboxMessageId:r,children:o.jsx(p,{phone:o.jsx(t.Phone,{}),list:o.jsx(t.List,{}),reading:o.jsx(m,{})})})}export{k as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./index-
|
|
1
|
+
import{c as a}from"./index-BkI9e3vC.js";const c=a("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);export{c as P};
|