@remit/web-client-dist 0.0.127 → 0.0.128

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.
Files changed (34) hide show
  1. package/assets/{ComposeBody-h2C6k222.js → ComposeBody-BmDqP2br.js} +1 -1
  2. package/assets/{ErrorState-B7jWTPIf.js → ErrorState-D_8uppAK.js} +1 -1
  3. package/assets/{OnboardingWizard-k84Sdw86.js → OnboardingWizard-BcyrLnMy.js} +1 -1
  4. package/assets/{account-form-helpers-xI92Dwmc.js → account-form-helpers-D7EMABCp.js} +1 -1
  5. package/assets/{accounts-DKfAXZjO.js → accounts-DqILuy2V.js} +1 -1
  6. package/assets/{advanced-CkqcfzJJ.js → advanced-e4evDSNK.js} +1 -1
  7. package/assets/{appearance-Dytafdds.js → appearance-BwiZN-Rf.js} +1 -1
  8. package/assets/{avatar-0qIqgsXP.js → avatar-CVAYDnpj.js} +1 -1
  9. package/assets/{browser-ponyfill-BwVTtQXO.js → browser-ponyfill-D2EtxrZ2.js} +1 -1
  10. package/assets/{download-BwUpxXRu.js → download-DRSLizxj.js} +1 -1
  11. package/assets/{filter-status-CSIQ5QUR.js → filter-status-ZlgR_CjI.js} +1 -1
  12. package/assets/{filters-CJq3f7fG.js → filters-Bf2CSGtM.js} +1 -1
  13. package/assets/{flagged-BoZpfueM.js → flagged-oUNx6RRA.js} +1 -1
  14. package/assets/{folder--nZa3AWC.js → folder-RZgUjcE_.js} +1 -1
  15. package/assets/{folders-Bd3b1tcw.js → folders-DIOTNG5-.js} +1 -1
  16. package/assets/{index-DmAjS0RP.js → index-BMNF091M.js} +4 -4
  17. package/assets/{index-Db6DEVIe.js → index-BfZ-RfPW.js} +1 -1
  18. package/assets/index-Bnxs3LrV.js +1 -0
  19. package/assets/{kbd-7BCcqn6e.js → kbd-CTm4HXP-.js} +1 -1
  20. package/assets/mail-UHzkrnk0.js +118 -0
  21. package/assets/{onboarding-w8oC_k77.js → onboarding-DD3xjYdh.js} +1 -1
  22. package/assets/{rotate-ccw-DMt3woFX.js → rotate-ccw-un1uH_12.js} +1 -1
  23. package/assets/{select-BjP4w3Or.js → select-DfJvmiX9.js} +1 -1
  24. package/assets/{senders-C6xMNaU5.js → senders-DnmzQeCG.js} +1 -1
  25. package/assets/settings-ovBR_9gX.js +1 -0
  26. package/assets/{settings-screen-BCJFYn9T.js → settings-screen-eWBlxlso.js} +1 -1
  27. package/assets/{suggested-vips-P2LJ2gFj.js → suggested-vips-CP6Nt7du.js} +1 -1
  28. package/assets/{useDebouncedValue-C1Om-LCu.js → useDebouncedValue-BGzzncLs.js} +1 -1
  29. package/assets/{useSignature-C_KrJpXy.js → useSignature-CYWujB_O.js} +1 -1
  30. package/index.html +1 -1
  31. package/package.json +1 -1
  32. package/assets/index-DhjmWYCG.js +0 -1
  33. package/assets/mail-BhCnC0zo.js +0 -118
  34. package/assets/settings-CAQOtl8y.js +0 -1
@@ -0,0 +1,118 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ComposeBody-BmDqP2br.js","assets/index-BMNF091M.js","assets/index-Bma3cv5T.css","assets/useDebouncedValue-BGzzncLs.js","assets/avatar-CVAYDnpj.js","assets/kbd-CTm4HXP-.js","assets/account-form-helpers-D7EMABCp.js","assets/useSignature-CYWujB_O.js","assets/ErrorState-D_8uppAK.js","assets/format-B6Elex-n.js","assets/filter-status-ZlgR_CjI.js","assets/select-DfJvmiX9.js","assets/rotate-ccw-un1uH_12.js","assets/folder-RZgUjcE_.js"])))=>i.map(i=>d[i]);
2
+ import{R as W,c as Vd,r as c,a as ie,j as n,C as Tt,X as Ue,b as H,B as G,d as st,S as zt,e as Jt,L as xr,f as Qd,g as Zs,h as bt,T as nt,i as Zt,u as Qn,k as vr,l as pl,I as bl,p as xl,m as yr,n as Yd,D as vl,o as en,O as Gd,M as Xd,A as Jd,F as yl,q as Zd,s as e0,t as t0,v as kr,w as wr,x as jr,P as s0,y as n0,z as Sr,E as Cr,_ as Ct,G as kl,H as a0,Q as Nr,J as r0,K as o0,N as i0,U as Va,V as l0,W as c0,Y as ye,Z as u0,$ as d0,a0 as m0,a1 as f0,a2 as h0,a3 as g0,a4 as Ro,a5 as p0,a6 as b0,a7 as x0,a8 as Er,a9 as wl,aa as jl,ab as At,ac as ze,ad as He,ae as Ns,af as ge,ag as Ir,ah as Tr,ai as Rr,aj as Mr,ak as Yn,al as ys,am as je,an as tn,ao as ce,ap as Sl,aq as v0,ar as ve,as as Cl,at as y0,au as Gn,av as Nl,aw as xt,ax as Je,ay as k0,az as it,aA as El,aB as Gt,aC as Xn,aD as w0,aE as zr,aF as Il,aG as Tl,aH as es,aI as Jn,aJ as ts,aK as j0,aL as S0,aM as ks,aN as C0,aO as Rl,aP as Qa,aQ as ws,aR as N0,aS as Ar,aT as E0,aU as I0,aV as Ml,aW as Dr,aX as Es,aY as ft,aZ as Ya,a_ as Ga,a$ as T0,b0 as zl,b1 as R0,b2 as Or,b3 as Al,b4 as M0,b5 as z0,b6 as A0,b7 as D0,b8 as O0,b9 as P0,ba as L0,bb as $0,bc as F0,bd as _0,be as q0,bf as B0,bg as K0,bh as U0,bi as H0,bj as W0,bk as V0,bl as jt,bm as mt,bn as Q0}from"./index-BMNF091M.js";import{S as sn,u as Dl}from"./useDebouncedValue-BGzzncLs.js";import{A as ct,M as Pr,C as Y0}from"./avatar-CVAYDnpj.js";import{K as bs}from"./kbd-CTm4HXP-.js";import{M as Ol,a as G0}from"./account-form-helpers-D7EMABCp.js";import{R as X0,u as J0}from"./useSignature-CYWujB_O.js";import{E as Dt,f as Pl}from"./ErrorState-D_8uppAK.js";import{f as Ll,a as Ot,b as $l,c as Fn,d as lt,t as Z0}from"./format-B6Elex-n.js";import{b as Xa,h as em,p as tm,u as sm}from"./filter-status-ZlgR_CjI.js";import{S as nm}from"./select-DfJvmiX9.js";import{R as am,C as Lr}from"./rotate-ccw-un1uH_12.js";import{F as rm}from"./folder-RZgUjcE_.js";function Vs(e){if(om())e.focus({preventScroll:!0});else{let t=im(e);e.focus(),lm(t)}}let yn=null;function om(){if(yn==null){yn=!1;try{document.createElement("div").focus({get preventScroll(){return yn=!0,!0}})}catch{}}return yn}function im(e){let t=e.parentNode,s=[],a=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==a;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&s.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return a instanceof HTMLElement&&s.push({element:a,scrollTop:a.scrollTop,scrollLeft:a.scrollLeft}),s}function lm(e){for(let{element:t,scrollTop:s,scrollLeft:a}of e)t.scrollTop=s,t.scrollLeft=a}const Et=e=>e?.ownerDocument??document,Rt=e=>e&&"window"in e&&e.window===e?e:Et(e).defaultView||window;function cm(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function um(e){return cm(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let dm=!1;function Fl(){return dm}function rt(e,t){if(!Fl())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let s=t;for(;s!==null;){if(s===e)return!0;s.tagName==="SLOT"&&s.assignedSlot?s=s.assignedSlot.parentNode:um(s)?s=s.host:s=s.parentNode}return!1}function Ie(e){if(Fl()&&e.target instanceof Element&&e.target.shadowRoot){if("composedPath"in e)return e.composedPath()[0]??null;if("composedPath"in e.nativeEvent)return e.nativeEvent.composedPath()[0]??null}return e.target}const mm=typeof Element<"u"&&"checkVisibility"in Element.prototype;function fm(e){const t=Rt(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:s,visibility:a}=e.style,r=s!=="none"&&a!=="hidden"&&a!=="collapse";if(r){const{getComputedStyle:o}=Rt(e);let{display:i,visibility:l}=o(e);r=i!=="none"&&l!=="hidden"&&l!=="collapse"}return r}function hm(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&(e.nodeName==="DETAILS"&&t&&t.nodeName!=="SUMMARY"?e.hasAttribute("open"):!0)}function _l(e,t){return mm?e.checkVisibility({visibilityProperty:!0})&&!e.closest("[data-react-aria-prevent-focus]"):e.nodeName!=="#comment"&&fm(e)&&hm(e,t)&&(!e.parentElement||_l(e.parentElement,e))}const ql=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])',"permission"],gm=ql.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";ql.push('[tabindex]:not([tabindex="-1"]):not([disabled])');function pm(e,t){return e.matches(gm)&&!bm(e)&&(t?.skipVisibilityCheck||_l(e))}function bm(e){let t=e;for(;t!=null;){if(t instanceof Rt(t).HTMLElement&&t.inert)return!0;t=t.parentElement}return!1}const $r=typeof document<"u"?W.useLayoutEffect:()=>{};function xm(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function vm(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function ym(e){for(;e&&!pm(e,{skipVisibilityCheck:!0});)e=e.parentElement;let t=Rt(e),s=t.document.activeElement;if(!s||s===e)return;let a=!1,r=m=>{(Ie(m)===s||a)&&m.stopImmediatePropagation()},o=m=>{(Ie(m)===s||a)&&(m.stopImmediatePropagation(),!e&&!a&&(a=!0,Vs(s),u()))},i=m=>{(Ie(m)===e||a)&&m.stopImmediatePropagation()},l=m=>{(Ie(m)===e||a)&&(m.stopImmediatePropagation(),a||(a=!0,Vs(s),u()))};t.addEventListener("blur",r,!0),t.addEventListener("focusout",o,!0),t.addEventListener("focusin",l,!0),t.addEventListener("focus",i,!0);let u=()=>{cancelAnimationFrame(d),t.removeEventListener("blur",r,!0),t.removeEventListener("focusout",o,!0),t.removeEventListener("focusin",l,!0),t.removeEventListener("focus",i,!0),a=!1},d=requestAnimationFrame(u);return u}function Zn(e){if(typeof window>"u"||window.navigator==null)return!1;let t=window.navigator.userAgentData?.brands;return Array.isArray(t)&&t.some(s=>e.test(s.brand))||e.test(window.navigator.userAgent)}function Fr(e){return typeof window<"u"&&window.navigator!=null?e.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}function Pt(e){let t=null;return()=>(t==null&&(t=e()),t)}const _n=Pt(function(){return Fr(/^Mac/i)}),km=Pt(function(){return Fr(/^iPhone/i)}),Bl=Pt(function(){return Fr(/^iPad/i)||_n()&&navigator.maxTouchPoints>1}),Kl=Pt(function(){return km()||Bl()}),wm=Pt(function(){return Zn(/AppleWebKit/i)&&!jm()}),jm=Pt(function(){return Zn(/Chrome/i)}),Ul=Pt(function(){return Zn(/Android/i)}),Sm=Pt(function(){return Zn(/Firefox/i)});function Cm(e){return e.pointerType===""&&e.isTrusted?!0:Ul()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Nm(e){return!Ul()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function Qs(e,t,s=!0){let{metaKey:a,ctrlKey:r,altKey:o,shiftKey:i}=t;Sm()&&window.event?.type?.startsWith("key")&&e.target==="_blank"&&(_n()?a=!0:r=!0);let l=wm()&&_n()&&!Bl()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:a,ctrlKey:r,altKey:o,shiftKey:i}):new MouseEvent("click",{metaKey:a,ctrlKey:r,altKey:o,shiftKey:i,detail:1,bubbles:!0,cancelable:!0});Qs.isOpening=s,Vs(e),e.dispatchEvent(l),Qs.isOpening=!1}Qs.isOpening=!1;let Nt=new Map,Ja=new Set;function Mo(){if(typeof window>"u")return;function e(a){return"propertyName"in a}let t=a=>{let r=Ie(a);if(!e(a)||!r)return;let o=Nt.get(r);o||(o=new Set,Nt.set(r,o),r.addEventListener("transitioncancel",s,{once:!0})),o.add(a.propertyName)},s=a=>{let r=Ie(a);if(!e(a)||!r)return;let o=Nt.get(r);if(o&&(o.delete(a.propertyName),o.size===0&&(r.removeEventListener("transitioncancel",s),Nt.delete(r)),Nt.size===0)){for(let i of Ja)i();Ja.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",s)}typeof document<"u"&&(document.readyState!=="loading"?Mo():document.addEventListener("DOMContentLoaded",Mo));function Em(){for(const[e]of Nt)"isConnected"in e&&!e.isConnected&&Nt.delete(e)}function Im(e){requestAnimationFrame(()=>{Em(),Nt.size===0?e():Ja.add(e)})}function Hl(...e){return(...t)=>{for(let s of e)typeof s=="function"&&s(...t)}}let Za=new Map;typeof FinalizationRegistry<"u"&&new FinalizationRegistry(e=>{Za.delete(e)});function Tm(e,t){if(e===t)return e;let s=Za.get(e);if(s)return s.forEach(r=>r.current=t),t;let a=Za.get(t);return a?(a.forEach(r=>r.current=e),e):t}function Rm(...e){return e.length===1&&e[0]?e[0]:t=>{let s=!1;const a=e.map(r=>{const o=zo(r,t);return s||=typeof o=="function",o});if(s)return()=>{a.forEach((r,o)=>{typeof r=="function"?r():zo(e[o],null)})}}}function zo(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function nn(...e){let t={...e[0]};for(let s=1;s<e.length;s++){let a=e[s];for(let r in a){let o=t[r],i=a[r];typeof o=="function"&&typeof i=="function"&&r[0]==="o"&&r[1]==="n"&&r.charCodeAt(2)>=65&&r.charCodeAt(2)<=90?t[r]=Hl(o,i):(r==="className"||r==="UNSAFE_className")&&typeof o=="string"&&typeof i=="string"?t[r]=Vd(o,i):r==="id"&&o&&i?t.id=Tm(o,i):r==="ref"&&o&&i?t.ref=Rm(o,i):t[r]=i!==void 0?i:o}}return t}function Mm(e,t){$r(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}const zm=W.useInsertionEffect??$r;function Sa(e){const t=c.useRef(null);return zm(()=>{t.current=e},[e]),c.useCallback((...s)=>{const a=t.current;return a?.(...s)},[])}let gs="default",er="",An=new WeakMap;function Am(e){if(Kl()){if(gs==="default"){const t=Et(e);er=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}gs="disabled"}else if(e instanceof HTMLElement||e instanceof SVGElement){let t="userSelect"in e.style?"userSelect":"webkitUserSelect";An.set(e,e.style[t]),e.style[t]="none"}}function Ao(e){if(Kl()){if(gs!=="disabled")return;gs="restoring",setTimeout(()=>{Im(()=>{if(gs==="restoring"){const t=Et(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=er||""),er="",gs="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&An.has(e)){let t=An.get(e),s="userSelect"in e.style?"userSelect":"webkitUserSelect";e.style[s]==="none"&&(e.style[s]=t),e.getAttribute("style")===""&&e.removeAttribute("style"),An.delete(e)}}function Do(e){return e?.defaultView?.__webpack_nonce__||globalThis.__webpack_nonce__||void 0}let Ca=new WeakMap;function Dm(e){let t=e??(typeof document<"u"?document:void 0);if(!t)return Do(t);if(Ca.has(t))return Ca.get(t);let s=t.querySelector('meta[property="csp-nonce"]'),a=s&&s instanceof Rt(s).HTMLMetaElement&&(s.nonce||s.content)||Do(t)||void 0;return a!==void 0&&Ca.set(t,a),a}const Wl=W.createContext({register:()=>{}});Wl.displayName="PressResponderContext";function Vl(){let e=c.useRef(new Map),t=c.useCallback((r,o,i,l)=>{let u=l?.once?(...d)=>{e.current.delete(i),i(...d)}:i;e.current.set(i,{type:o,eventTarget:r,fn:u,options:l}),r.addEventListener(o,u,l)},[]),s=c.useCallback((r,o,i,l)=>{let u=e.current.get(i)?.fn||i;r.removeEventListener(o,u,l),e.current.delete(i)},[]),a=c.useCallback(()=>{e.current.forEach((r,o)=>{s(r.eventTarget,r.type,o,r.options)})},[s]);return c.useEffect(()=>a,[a]),{addGlobalListener:t,removeGlobalListener:s,removeAllGlobalListeners:a}}function Om(e){let t=c.useContext(Wl);if(t){let{register:s,ref:a,...r}=t;e=nn(r,e),s()}return Mm(t,e.ref),e}class kn{#s;constructor(t,s,a,r){this.#s=!0;const i=(r?.target??a.currentTarget)?.getBoundingClientRect();let l,u=0,d,m=null;a.clientX!=null&&a.clientY!=null&&(d=a.clientX,m=a.clientY),i&&(d!=null&&m!=null?(l=d-i.left,u=m-i.top):(l=i.width/2,u=i.height/2)),this.type=t,this.pointerType=s,this.target=a.currentTarget,this.shiftKey=a.shiftKey,this.metaKey=a.metaKey,this.ctrlKey=a.ctrlKey,this.altKey=a.altKey,this.x=l,this.y=u,this.key=a.key}continuePropagation(){this.#s=!1}get shouldStopPropagation(){return this.#s}}const Oo=Symbol("linkClicked"),Po="react-aria-pressable-style",Lo="data-react-aria-pressable";function Pm(e){let{onPress:t,onPressChange:s,onPressStart:a,onPressEnd:r,onPressUp:o,onClick:i,isDisabled:l,isPressed:u,preventFocusOnPress:d,shouldCancelOnPointerExit:m,allowTextSelectionOnPress:f,ref:h,...b}=Om(e),[v,p]=c.useState(!1),x=c.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:g,removeAllGlobalListeners:y}=Vl(),k=c.useCallback((j,z)=>{let O=x.current;if(l||O.didFirePressStart)return!1;let I=!0;if(O.isTriggeringEvent=!0,a){let F=new kn("pressstart",z,j);a(F),I=F.shouldStopPropagation}return s&&s(!0),O.isTriggeringEvent=!1,O.didFirePressStart=!0,p(!0),I},[l,a,s]),w=c.useCallback((j,z,O=!0)=>{let I=x.current;if(!I.didFirePressStart)return!1;I.didFirePressStart=!1,I.isTriggeringEvent=!0;let F=!0;if(r){let R=new kn("pressend",z,j);r(R),F=R.shouldStopPropagation}if(s&&s(!1),p(!1),t&&O&&!l){let R=new kn("press",z,j);t(R),F&&=R.shouldStopPropagation}return I.isTriggeringEvent=!1,F},[l,r,s,t]),N=Sa(w),T=c.useCallback((j,z)=>{let O=x.current;if(l)return!1;if(o){O.isTriggeringEvent=!0;let I=new kn("pressup",z,j);return o(I),O.isTriggeringEvent=!1,I.shouldStopPropagation}return!0},[l,o]),C=Sa(T),S=c.useCallback(j=>{let z=x.current;if(z.isPressed&&z.target){z.didFirePressStart&&z.pointerType!=null&&w(Ht(z.target,j),z.pointerType,!1),z.isPressed=!1,z.isOverTarget=!1,z.activePointerId=null,z.pointerType=null,y(),f||Ao(z.target);for(let O of z.disposables)O();z.disposables=[]}},[f,y,w]),D=Sa(S);c.useEffect(()=>{l&&x.current.isPressed&&D({currentTarget:x.current.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})},[l]);let M=c.useCallback(j=>{m&&S(j)},[m,S]),A=c.useCallback(j=>{l||i?.(j)},[l,i]),P=c.useCallback((j,z)=>{if(!l&&i){let O=new MouseEvent("click",j);vm(O,z),i(xm(O))}},[l,i]),E=c.useMemo(()=>{let j=x.current,z={onKeyDown(I){if(Na(I.nativeEvent,I.currentTarget)&&rt(I.currentTarget,Ie(I))){$o(Ie(I),I.key)&&I.preventDefault();let F=!0;!j.isPressed&&!I.repeat&&(j.target=I.currentTarget,j.isPressed=!0,j.pointerType="keyboard",F=k(I,"keyboard"));let R=I.currentTarget,L=B=>{Na(B,R)&&!B.repeat&&rt(R,Ie(B))&&j.target&&C(Ht(j.target,B),"keyboard")};g(Et(I.currentTarget),"keyup",Hl(L,O),!0),F&&I.stopPropagation(),I.metaKey&&_n()&&j.metaKeyEvents?.set(I.key,I.nativeEvent)}else I.key==="Meta"&&(j.metaKeyEvents=new Map)},onClick(I){if(!(I&&!rt(I.currentTarget,Ie(I)))&&I&&I.button===0&&!j.isTriggeringEvent&&!Qs.isOpening){let F=!0;if(l&&I.preventDefault(),!j.ignoreEmulatedMouseEvents&&!j.isPressed&&(j.pointerType==="virtual"||Cm(I.nativeEvent))){let R=k(I,"virtual"),L=C(I,"virtual"),B=N(I,"virtual");A(I),F=R&&L&&B}else if(j.isPressed&&j.pointerType!=="keyboard"){let R=j.pointerType||I.nativeEvent.pointerType||"virtual",L=C(Ht(I.currentTarget,I),R),B=N(Ht(I.currentTarget,I),R,!0);F=L&&B,j.isOverTarget=!1,A(I),D(I)}j.ignoreEmulatedMouseEvents=!1,F&&I.stopPropagation()}}},O=I=>{if(j.isPressed&&j.target&&Na(I,j.target)){$o(Ie(I),I.key)&&I.preventDefault();let F=Ie(I),R=rt(j.target,F);N(Ht(j.target,I),"keyboard",R),R&&P(I,j.target),y(),I.key!=="Enter"&&_r(j.target)&&rt(j.target,F)&&!I[Oo]&&(I[Oo]=!0,Qs(j.target,I,!1)),j.isPressed=!1,j.metaKeyEvents?.delete(I.key)}else if(I.key==="Meta"&&j.metaKeyEvents?.size){let F=j.metaKeyEvents;j.metaKeyEvents=void 0;for(let R of F.values())j.target?.dispatchEvent(new KeyboardEvent("keyup",R))}};if(typeof PointerEvent<"u"){z.onPointerDown=R=>{if(R.button!==0||!rt(R.currentTarget,Ie(R)))return;if(Nm(R.nativeEvent)){j.pointerType="virtual";return}j.pointerType=R.pointerType;let L=!0;if(!j.isPressed){j.isPressed=!0,j.isOverTarget=!0,j.activePointerId=R.pointerId,j.target=R.currentTarget,f||Am(j.target),L=k(R,j.pointerType);let B=Ie(R);"releasePointerCapture"in B&&("hasPointerCapture"in B?B.hasPointerCapture(R.pointerId)&&B.releasePointerCapture(R.pointerId):B.releasePointerCapture(R.pointerId)),g(Et(R.currentTarget),"pointerup",I,!1),g(Et(R.currentTarget),"pointercancel",F,!1)}L&&R.stopPropagation()},z.onMouseDown=R=>{if(rt(R.currentTarget,Ie(R))&&R.button===0){if(d){let L=ym(R.target);L&&j.disposables.push(L)}R.stopPropagation()}},z.onPointerUp=R=>{!rt(R.currentTarget,Ie(R))||j.pointerType==="virtual"||R.button===0&&!j.isPressed&&C(R,j.pointerType||R.pointerType)},z.onPointerEnter=R=>{R.pointerId===j.activePointerId&&j.target&&!j.isOverTarget&&j.pointerType!=null&&(j.isOverTarget=!0,k(Ht(j.target,R),j.pointerType))},z.onPointerLeave=R=>{R.pointerId===j.activePointerId&&j.target&&j.isOverTarget&&j.pointerType!=null&&(j.isOverTarget=!1,N(Ht(j.target,R),j.pointerType,!1),M(R))};let I=R=>{if(R.pointerId===j.activePointerId&&j.isPressed&&R.button===0&&j.target){if(rt(j.target,Ie(R))&&j.pointerType!=null){let L=!1,B=setTimeout(()=>{j.isPressed&&j.target instanceof HTMLElement&&(L?D(R):(Vs(j.target),j.target.click()))},80);g(R.currentTarget,"click",()=>L=!0,!0),j.disposables.push(()=>clearTimeout(B))}else D(R);j.isOverTarget=!1}},F=R=>{D(R)};z.onDragStart=R=>{rt(R.currentTarget,Ie(R))&&D(R)}}return z},[g,l,d,y,f,M,k,A,P]);return c.useEffect(()=>{if(!h)return;const j=Et(h.current);if(!j||!j.head||j.getElementById(Po))return;const z=j.createElement("style");z.id=Po;let O=Dm(j);O&&(z.nonce=O),z.textContent=`
3
+ @layer {
4
+ [${Lo}] {
5
+ touch-action: pan-x pan-y pinch-zoom;
6
+ }
7
+ }
8
+ `.trim(),j.head.prepend(z)},[h]),c.useEffect(()=>{let j=x.current;return()=>{f||Ao(j.target??void 0);for(let z of j.disposables)z();j.disposables=[]}},[f]),{isPressed:u||v,pressProps:nn(b,E,{[Lo]:!0})}}function _r(e){return e.tagName==="A"&&e.hasAttribute("href")}function Na(e,t){const{key:s,code:a}=e,r=t,o=r.getAttribute("role");return(s==="Enter"||s===" "||s==="Spacebar"||a==="Space")&&!(r instanceof Rt(r).HTMLInputElement&&!Ql(r,s)||r instanceof Rt(r).HTMLTextAreaElement||r.isContentEditable)&&!((o==="link"||!o&&_r(r))&&s!=="Enter")}function Ht(e,t){let s=t.clientX,a=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:s,clientY:a,key:t.key}}function Lm(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!_r(e)}function $o(e,t){return e instanceof HTMLInputElement?!Ql(e,t):Lm(e)}const $m=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Ql(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":$m.has(e.type)}let Fm=0;const Ea=new Map;function _m(e){let[t,s]=c.useState();return $r(()=>{if(!e)return;let a=Ea.get(e);if(a)s(a.element.id);else{let r=`react-aria-description-${Fm++}`;s(r);let o=document.createElement("div");o.id=r,o.style.display="none",o.textContent=e,document.body.appendChild(o),a={refCount:0,element:o},Ea.set(e,a)}return a.refCount++,()=>{a&&--a.refCount===0&&(a.element.remove(),Ea.delete(e))}},[e]),{"aria-describedby":e?t:void 0}}const qm=500;function Bm(e){let{isDisabled:t,onLongPressStart:s,onLongPressEnd:a,onLongPress:r,threshold:o=qm,accessibilityDescription:i}=e;const l=c.useRef(void 0);let{addGlobalListener:u,removeGlobalListener:d}=Vl(),{pressProps:m}=Pm({isDisabled:t,onPressStart(h){if(h.continuePropagation(),(h.pointerType==="mouse"||h.pointerType==="touch")&&(s&&s({...h,type:"longpressstart"}),l.current=setTimeout(()=>{h.target.dispatchEvent(new PointerEvent("pointercancel",{bubbles:!0})),Et(h.target).activeElement!==h.target&&Vs(h.target),r&&r({...h,type:"longpress"}),l.current=void 0},o),h.pointerType==="touch")){let b=p=>{p.preventDefault()},v=Rt(h.target);u(h.target,"contextmenu",b,{once:!0}),u(v,"pointerup",()=>{setTimeout(()=>{d(h.target,"contextmenu",b)},30)},{once:!0})}},onPressEnd(h){l.current&&clearTimeout(l.current),a&&(h.pointerType==="mouse"||h.pointerType==="touch")&&a({...h,type:"longpressend"})}}),f=_m(r&&!t?i:void 0);return{longPressProps:nn(m,f)}}const Yl=ie("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const Km=ie("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const Um=ie("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);const ea=ie("BadgeCheck",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Hm=ie("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);const Gl=ie("BellOff",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]]);const Wm=ie("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 Fo=ie("Bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]);const js=ie("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);const Vm=ie("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);const Xl=ie("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const qr=ie("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const Jl=ie("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const Zl=ie("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);const Qm=ie("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);const ec=ie("FolderInput",[["path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1",key:"fm4g5t"}],["path",{d:"M2 13h10",key:"pgb2dq"}],["path",{d:"m9 16 3-3-3-3",key:"6m91ic"}]]);const tc=ie("Forward",[["polyline",{points:"15 17 20 12 15 7",key:"1w3sku"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]]);const sc=ie("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 Ym=ie("MailCheck",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]);const Is=ie("MailOpen",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]);const Gm=ie("MailX",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9",key:"1j9vog"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m17 17 4 4",key:"1b3523"}],["path",{d:"m21 17-4 4",key:"uinynz"}]]);const Xm=ie("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const ta=ie("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);const Jm=ie("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"}]]);const nc=ie("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const ac=ie("ReplyAll",[["polyline",{points:"7 17 2 12 7 7",key:"t83bqg"}],["polyline",{points:"12 17 7 12 12 7",key:"1g4ajm"}],["path",{d:"M22 18v-2a4 4 0 0 0-4-4H7",key:"1fcyog"}]]);const rc=ie("Reply",[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]]);const Br=ie("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 Ts=ie("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);const an=ie("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const Zm=ie("ShieldQuestion",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const ef=ie("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);const pt=ie("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);const tf=ie("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"}]]);const sf=ie("Undo2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),nf=({address:e,showTrustedBadge:t=!1})=>{const s=t?n.jsx(ea,{className:"inline-block size-4 ml-1 -mt-0.5 text-positive","aria-label":"Trusted sender","data-testid":"trusted-sender-badge"}):null;return e.displayName?n.jsxs("span",{children:[n.jsx("span",{className:"text-fg",children:e.displayName}),n.jsxs("span",{className:"text-fg-muted",children:[" ","<",e.normalizedEmail,">"]}),s]}):n.jsxs("span",{className:"text-fg",children:[e.normalizedEmail,s]})},af=({label:e,addresses:t,showTrustedBadge:s=!1})=>{const[a,r]=c.useState(!1);if(t.length===0)return null;const o=t.length>3,i=l=>{const u=s&&l.flags?.trusted?.value===!0;return n.jsx(nf,{address:l,showTrustedBadge:u})};return n.jsxs("div",{className:"flex gap-2 text-sm",children:[n.jsxs("span",{className:"text-fg-muted shrink-0 w-12",children:[e,":"]}),n.jsx("div",{className:"flex-1 min-w-0",children:a?n.jsx("div",{className:"flex flex-wrap gap-1",children:t.map((l,u)=>n.jsxs("span",{children:[i(l),u<t.length-1&&", "]},u))}):n.jsx("div",{className:"truncate",children:t.map((l,u)=>n.jsxs("span",{children:[i(l),u<t.length-1&&", "]},u))})}),o&&n.jsx("button",{type:"button",onClick:l=>{l.stopPropagation(),r(!a)},className:"shrink-0 text-fg-muted hover:text-fg transition-colors","aria-label":a?"Collapse":"Expand",children:a?n.jsx(Tt,{className:"h-4 w-4"}):n.jsx(js,{className:"h-4 w-4"})})]})},rf=({email:e,displayName:t,onRemove:s,className:a})=>n.jsxs("span",{className:H("inline-flex items-center gap-1 px-2 py-0.5 rounded-full bg-accent-2-soft text-sm max-w-[200px]",a),children:[n.jsx("span",{className:"truncate",children:t||e}),n.jsx("button",{type:"button",onClick:s,className:"shrink-0 p-0.5 rounded-full hover:bg-fg-muted/20 transition-colors","aria-label":`Remove ${e}`,children:n.jsx(Ue,{className:"size-3"})})]}),of={unknown:{label:"Unknown sender",tone:"neutral"},wellknown:{label:"Known sender",tone:"positive"},vip:{label:"VIP",tone:"accent"}};function is({label:e,children:t,className:s}){return n.jsxs("section",{className:H("border-b border-line px-row-inset py-3",s),children:[n.jsx("h3",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),n.jsx("div",{className:"mt-2",children:t})]})}function lf({sender:e}){const t=of[e.trust],s=e.inboundCount==null?null:(e.replyCount??0)>0?`${e.inboundCount} received · you replied ${e.replyCount}×`:`${e.inboundCount} received · you've never replied`;return n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(ct,{name:e.name,email:e.email,size:"md"}),n.jsxs("div",{className:"min-w-0",children:[n.jsx("div",{className:"truncate text-sm font-semibold text-fg",children:e.name}),n.jsx("div",{className:"truncate text-2xs text-fg-subtle",children:e.email})]})]}),n.jsx("div",{className:"mt-2 flex items-center gap-2",children:e.addressUnverified?n.jsx(st,{tone:"danger",dot:!0,children:"Address couldn't be verified"}):n.jsx(st,{tone:t.tone,dot:!0,children:t.label})}),n.jsxs("p",{className:"mt-2 text-xs text-fg-muted",children:["First seen ",e.firstSeenLabel,s?` · ${s}`:""]})]})}function cf({auth:e,onShowSimilar:t}){if(e.verdict==="aligned")return n.jsxs("div",{className:"flex items-start gap-2 text-xs text-fg-muted",children:[n.jsx(an,{className:"mt-0.5 size-3.5 shrink-0 text-positive"}),n.jsx("span",{children:e.summary})]});if(e.verdict==="caution")return n.jsxs("div",{className:"flex items-start gap-2 rounded-md bg-warning/10 p-3 text-warning",children:[n.jsx(Zm,{className:"mt-0.5 size-4 shrink-0"}),n.jsx("p",{className:"text-xs leading-relaxed",children:e.summary})]});const s=e.addressUnreadable?"This sender can't be verified":"This message may be impersonating someone";return n.jsxs("div",{className:"rounded-md bg-danger-soft p-3",children:[n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx(Ts,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n.jsxs("div",{className:"min-w-0",children:[n.jsx("p",{className:"text-sm font-semibold text-danger",children:s}),n.jsx("p",{className:"mt-1 text-xs leading-relaxed text-fg",children:e.summary}),!e.addressUnreadable&&e.dkimDomain&&n.jsxs("p",{className:"mt-1 text-2xs text-fg-muted",children:["Sent from"," ",n.jsx("code",{className:"rounded bg-surface px-1 py-0.5",children:e.dkimDomain}),", claims to be"," ",n.jsx("code",{className:"rounded bg-surface px-1 py-0.5",children:e.fromDomain})]})]})]}),e.similarCount!=null&&e.similarCount>0&&n.jsxs(G,{variant:"secondary",size:"sm",className:"mt-2 w-full border-danger/30 text-danger hover:bg-danger-soft",onClick:t,children:[e.similarCount," similar messages"]})]})}function ls({icon:e,label:t,active:s,danger:a,onClick:r}){const o=r===void 0;return n.jsxs("button",{type:"button",onClick:r,disabled:o,className:H("flex items-center gap-2 rounded-md border px-2 py-1 text-xs transition-colors",s?"border-accent-2 bg-accent-2-soft text-accent-2":"border-line text-fg-muted hover:border-line-strong hover:text-fg",a&&!s&&"text-danger hover:bg-danger-soft",o&&"cursor-not-allowed opacity-50 hover:border-line"),children:[e,t]})}const uf={sender:"matched: sender",recipient:"matched: recipient",subject:"matched: subject",attachment:"matched: attachment",body:"matched: body",entities:"matched: entities"};function oc({data:e,onClose:t,onShowSimilar:s,actions:a,similarState:r="ready",similarLinkComponent:o,className:i,hideCloseButton:l=!1}){const{sender:u,authenticity:d,category:m,flags:f={},similar:h}=e,b=d.verdict==="mismatch";return n.jsxs("aside",{className:H("flex w-76 shrink-0 flex-col overflow-y-auto border-l border-line bg-surface",i),children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center justify-between border-b border-line px-row-inset",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"}),!l&&n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Ue,{className:"size-3.5"}),onClick:t,"aria-label":"Collapse intelligence sidebar"})]}),n.jsx(is,{label:"Sender",children:n.jsx(lf,{sender:u})}),n.jsx(is,{label:"Authenticity",children:n.jsx(cf,{auth:d,onShowSimilar:s})}),n.jsx(is,{label:"Category",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(st,{tone:b?"danger":"neutral",children:m.value}),m.overridden&&n.jsx("span",{className:"text-2xs text-fg-subtle",children:"your override"}),n.jsx("button",{type:"button",className:H("ml-auto text-2xs text-accent hover:underline",!a?.onReclassify&&"cursor-not-allowed opacity-50 hover:no-underline"),disabled:!a?.onReclassify,onClick:a?.onReclassify,children:"reclassify"})]})}),n.jsx(is,{label:"Quick actions",children:n.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[n.jsx(ls,{icon:n.jsx(zt,{className:"size-3.5"}),label:"VIP",active:f.vip,onClick:a?.onToggleVip}),n.jsx(ls,{icon:n.jsx(Gl,{className:"size-3.5"}),label:"Mute",active:f.muted,onClick:a?.onToggleMute}),n.jsx(ls,{icon:n.jsx(Hm,{className:"size-3.5"}),label:"Block",active:f.blocked,danger:!0,onClick:a?.onToggleBlock}),n.jsx(ls,{icon:n.jsx(Gm,{className:"size-3.5"}),label:"Unsubscribe",active:f.unsubscribed,onClick:a?.onToggleUnsubscribe}),a?.onNotSpam&&n.jsx(ls,{icon:n.jsx(Ym,{className:"size-3.5"}),label:"Not spam",onClick:a.onNotSpam}),a?.onMarkSpam&&n.jsx(ls,{icon:n.jsx(ef,{className:"size-3.5"}),label:"Mark spam",danger:!0,onClick:a.onMarkSpam})]})}),(r!=="ready"||h.length>0)&&n.jsx(is,{label:"Similar messages",children:r==="loading"?n.jsx("div",{className:"animate-pulse space-y-2",children:Array.from({length:3}).map((v,p)=>n.jsxs("div",{className:"space-y-1",children:[n.jsx("div",{className:"h-3 w-3/4 rounded bg-surface-sunken"}),n.jsx("div",{className:"h-2.5 w-1/2 rounded bg-surface-sunken"})]},p))}):r==="error"?n.jsx("p",{className:"text-xs text-fg-subtle",children:"Similarity search unavailable"}):n.jsx("ul",{className:"-mx-1 space-y-1",children:h.map(v=>{const p="block w-full rounded-md px-1 py-1 text-left hover:bg-surface-sunken",x=`Open message from ${v.fromName||"unknown sender"}: ${v.subject}`,g=n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[n.jsx("span",{className:"truncate text-xs font-medium text-fg",children:v.fromName}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:v.timeLabel})]}),n.jsx("div",{className:"truncate text-xs text-fg-muted",children:v.subject}),n.jsx("span",{className:"mt-1 inline-block rounded-full bg-surface-sunken px-1.5 py-px text-2xs text-fg-subtle",children:uf[v.matched]})]});return n.jsx("li",{children:o?o({mailboxId:v.mailboxId,messageId:v.id,className:p,ariaLabel:x,children:g}):n.jsx("div",{className:p,children:g})},v.id)})})}),n.jsx(is,{label:"Coming soon",className:"border-b-0 opacity-70",children:n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-line p-2",children:[n.jsx(pt,{className:"mt-0.5 size-3.5 shrink-0 text-fg-subtle"}),n.jsxs("div",{children:[n.jsx("div",{className:"text-xs font-medium text-fg-muted",children:"Suggested actions"}),n.jsx("div",{className:"text-2xs text-fg-subtle",children:'"Create a filter for messages like this" — on-device model'})]})]}),n.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-line p-2",children:[n.jsx(pt,{className:"mt-0.5 size-3.5 shrink-0 text-fg-subtle"}),n.jsxs("div",{children:[n.jsx("div",{className:"text-xs font-medium text-fg-muted",children:"Thread summary"}),n.jsx("div",{className:"text-2xs text-fg-subtle",children:"One-paragraph digest — Bedrock"})]})]})]})})]})}const df=[{keys:["j","k"],label:"navigate"},{keys:["m"],label:"mute"},{keys:["?"],label:"all shortcuts"}];function ic({hints:e=df,className:t}){return n.jsx("footer",{className:H("flex items-center gap-2 border-t border-line px-row-inset py-1 text-2xs text-fg-subtle",t),children:e.map(s=>n.jsx(mf,{hint:s},s.label))})}function mf({hint:e}){return n.jsxs("span",{className:"flex items-center gap-1",children:[e.keys.map(t=>n.jsx(bs,{children:t},t)),n.jsx("span",{children:e.label})]})}function ff(){return n.jsx("div",{className:"space-y-0",role:"status","aria-busy":"true","aria-label":"Loading messages",children:Array.from({length:8}).map((e,t)=>n.jsxs("div",{className:"animate-pulse border-b border-line px-3 py-2",children:[n.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[n.jsx("div",{className:"h-4 w-32 rounded bg-surface-sunken"}),n.jsx("div",{className:"h-3 w-16 rounded bg-surface-sunken"})]}),n.jsx("div",{className:"mb-2 h-4 w-48 rounded bg-surface-sunken"}),n.jsx("div",{className:"h-3 w-full rounded bg-surface-sunken"})]},t))})}function hf({searchQuery:e}){const t=!!e?.trim();return n.jsx("div",{className:"flex h-full flex-1 items-center justify-center",children:n.jsx("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:n.jsx("p",{className:"text-fg-muted",children:t?"No messages match your search":"No messages in this mailbox"})})})}function gf({message:e="Something went wrong loading this mailbox.",onRetry:t,onReport:s}){return n.jsx("div",{className:"flex h-full flex-1 items-center justify-center p-4",children:n.jsxs("div",{role:"alert",className:"flex max-w-sm flex-col items-center justify-center gap-3 text-center",children:[n.jsx(Jt,{className:"size-8 text-danger","aria-hidden":"true"}),n.jsxs("div",{children:[n.jsx("p",{className:"font-medium text-danger",children:"Couldn't load messages"}),n.jsx("p",{className:"mt-1 break-words text-sm text-fg-muted",children:e})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[t&&n.jsx(G,{variant:"secondary",size:"sm",onClick:t,children:"Retry"}),s&&n.jsx(G,{variant:"ghost",size:"sm",onClick:s,children:"Report a problem"})]})]})})}const lc="outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",cc=({active:e,focused:t})=>H("relative flex h-8 w-full items-center gap-2 px-row-inset text-left",lc,e?"bg-accent-2-soft":t?"bg-surface-sunken":"hover:bg-surface-sunken",t&&!e&&"before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:bg-accent-2"),rn=({active:e,focused:t})=>H("relative flex w-full items-start gap-3 py-2 pl-5 pr-row-inset text-left transition-colors",lc,e?"bg-accent-2-soft":t?"bg-surface-sunken":"hover:bg-surface-sunken",t&&!e&&"before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:bg-accent-2");function uc({thread:e}){const t=!e.isRead;return n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"flex w-4 shrink-0 items-center justify-center",children:e.suspicious?n.jsx(Ts,{className:"size-3.5 text-danger"}):e.starred?n.jsx(zt,{className:"size-3 fill-warning text-warning"}):t?n.jsx("span",{className:"size-1.5 rounded-full bg-accent"}):null}),n.jsx("span",{className:H("w-36 shrink-0 truncate text-xs",t?"font-semibold text-fg":"text-fg-muted"),children:e.fromName}),n.jsxs("span",{className:"min-w-0 flex-1 truncate text-xs",children:[n.jsx("span",{className:H(t?"font-medium text-fg":"text-fg-muted"),children:e.subject}),n.jsxs("span",{className:"text-fg-subtle",children:[" — ",e.snippet]})]}),e.hasAttachment&&n.jsx(ta,{className:"size-3 shrink-0 text-fg-subtle"}),n.jsx("span",{className:"w-11 shrink-0 text-right text-2xs text-fg-subtle tabular-nums",children:e.timeLabel})]})}function Ys({thread:e,badge:t}){const s=!e.isRead;return n.jsxs("span",{className:"min-w-0 flex-1",children:[n.jsxs("span",{className:"flex items-baseline justify-between gap-2",children:[n.jsxs("span",{className:H("flex min-w-0 items-center gap-1.5 truncate text-sm",s?"font-semibold text-fg":"font-medium text-fg-muted"),children:[e.trust==="vip"&&n.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-accent-2"}),n.jsx("span",{className:"truncate",children:e.fromName}),e.messageCount!=null&&e.messageCount>1&&n.jsx("span",{className:"shrink-0 text-2xs font-normal text-fg-subtle",children:e.messageCount})]}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.timeLabel})]}),n.jsxs("span",{className:"flex items-center gap-1.5",children:[n.jsx("span",{className:H("truncate text-sm",s?"text-fg":"text-fg-muted"),children:e.subject}),e.suspicious&&n.jsx(Ts,{className:"size-3.5 shrink-0 text-danger"}),e.starred&&n.jsx(zt,{className:"size-3 shrink-0 fill-warning text-warning"}),e.hasAttachment&&n.jsx(ta,{className:"size-3 shrink-0 text-fg-subtle"})]}),n.jsxs("span",{className:"flex items-center gap-1.5",children:[n.jsx("span",{className:"line-clamp-1 min-w-0 flex-1 text-xs text-fg-subtle",children:e.snippet}),e.category&&e.category!=="personal"&&n.jsx(st,{tone:Qd[e.category],className:"shrink-0",children:e.category}),t]})]})}function pf({thread:e,selection:t}){if(!t)return n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"sm"});const{checked:s,alwaysVisible:a}=t;return n.jsxs("span",{className:"relative size-7 shrink-0",children:[n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"sm",className:H("absolute inset-0 transition-opacity sm:group-hover:opacity-0",(s||a)&&"opacity-0")}),n.jsx("span",{role:"button",tabIndex:-1,onClick:t.onToggle,onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(r.preventDefault(),r.stopPropagation(),t.onToggle(r))},className:H("absolute inset-0 size-7 items-center justify-center rounded-full border transition-opacity",a?"flex":"hidden sm:flex",s?"bg-accent border-accent text-accent-fg opacity-100":a?"border-fg-subtle/40 bg-canvas opacity-100":"border-fg-subtle/40 bg-canvas opacity-0 group-hover:opacity-100"),"aria-label":s?"Deselect message":"Select message",children:s&&n.jsx(Zs,{className:"size-3"})})]})}function dc({thread:e,selection:t,badge:s}){const a=!e.isRead;return n.jsxs(n.Fragment,{children:[a&&n.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),n.jsx(pf,{thread:e,selection:t}),n.jsx(Ys,{thread:e,badge:s})]})}function bf({thread:e,active:t,focused:s,onClick:a}){return n.jsx("button",{type:"button",...xr,onClick:a,className:cc({active:t,focused:s}),children:n.jsx(uc,{thread:e})})}function xf({thread:e,active:t,focused:s,selection:a,onClick:r}){return n.jsx("button",{type:"button",...xr,onClick:r,className:H("group",rn({active:t,focused:s})),children:n.jsx(dc,{thread:e,selection:a})})}const vf="peer relative size-5 shrink-0 cursor-pointer appearance-none rounded-md border border-line-strong bg-surface outline-none transition-colors checked:border-positive checked:bg-positive indeterminate:border-positive indeterminate:bg-positive focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface",_o="pointer-events-none absolute inset-0 m-auto size-3.5 text-accent-fg";function on({label:e,description:t,indeterminate:s=!1,checked:a,onChange:r,className:o,...i}){const l=c.useRef(null);c.useEffect(()=>{l.current&&(l.current.indeterminate=s)},[s]);const u=n.jsxs("span",{className:"relative inline-flex",children:[n.jsx("input",{ref:l,type:"checkbox",checked:a,onChange:r,className:vf,...i}),n.jsx(Zs,{className:H(_o,"hidden peer-checked:block"),"aria-hidden":!0}),n.jsx(Xm,{className:H(_o,"hidden peer-indeterminate:block"),"aria-hidden":!0})]});return e===void 0&&t===void 0?n.jsx("span",{className:o,children:u}):n.jsxs("label",{className:H("flex min-h-11 cursor-pointer items-center gap-3 text-left",o),children:[u,n.jsxs("span",{className:"flex min-w-0 flex-col",children:[e!==void 0&&n.jsx("span",{className:"text-sm text-fg",children:e}),t!==void 0&&n.jsx("span",{className:"text-xs text-fg-subtle",children:t})]})]})}const yf={info:"bg-accent-2",success:"bg-positive",warning:"bg-warning",danger:"bg-danger"};function Kr({value:e,max:t,tone:s="info",indeterminate:a=!1,className:r}){const o=a?100:t<=0?0:Math.min(100,Math.max(0,e/t*100));return n.jsx("div",{role:"progressbar","aria-valuenow":a?void 0:e,"aria-valuemin":a?void 0:0,"aria-valuemax":a?void 0:t,className:H("h-1.5 w-full overflow-hidden rounded-full bg-surface-sunken",r),children:n.jsx("div",{className:H("h-full rounded-full transition-[width] duration-300 ease-out",yf[s],a&&"w-1/3 animate-pulse"),style:a?void 0:{width:`${o}%`}})})}const qo=e=>e.toLocaleString();function kf({count:e,onCancel:t,onMarkRead:s,onDelete:a,moveSlot:r,isBusy:o=!1,isCounting:i=!1,selectAll:l,statusLabel:u,progress:d,notice:m}){const f=l?.checked?`All ${qo(e)} loaded selected`:`${qo(e)} ${e===1?"message":"messages"} selected`;return n.jsxs("header",{className:"flex shrink-0 flex-col border-b border-line bg-surface-sunken",children:[n.jsxs("div",{className:"flex h-pane-header items-center gap-2 px-row-inset",children:[n.jsx(G,{variant:"ghost",size:"touch",icon:n.jsx(Ue,{className:"size-4"}),onClick:t,"aria-label":"Cancel selection",className:"-ml-2 shrink-0"}),l&&n.jsx("label",{className:"-ml-1.5 flex size-11 shrink-0 cursor-pointer items-center justify-center",children:n.jsx(on,{"aria-label":"Select all",checked:l.checked,indeterminate:l.indeterminate,onChange:l.onChange})}),n.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium text-fg",role:"status","aria-live":"polite",children:u??f}),s&&!o&&n.jsx(G,{variant:"ghost",size:"touch",icon:n.jsx(Is,{className:"size-4"}),onClick:s,"aria-label":"Mark as read",className:"shrink-0"}),r,!i&&n.jsx(G,{variant:"ghost",size:"touch",icon:o?n.jsx(bt,{className:"size-4 animate-spin"}):n.jsx(nt,{className:"size-4 text-danger"}),onClick:o?void 0:a,"aria-label":"Move selected messages to Trash","aria-busy":o||void 0,className:"ml-4 shrink-0"})]}),d&&n.jsx("div",{className:"px-row-inset pb-2",children:n.jsx(Kr,{value:d.value,max:d.max,tone:d.tone})}),m&&n.jsx(Zt,{tone:m.tone,variant:"soft",role:"status","aria-live":"polite",className:"mx-row-inset mb-2",children:n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[m.text&&n.jsx("span",{children:m.text}),m.action&&n.jsx(G,{variant:"ghost",size:"md",onClick:m.action.onClick,className:"-my-1 min-h-11 shrink-0",children:m.action.label})]})})]})}function mc({onLongPress:e,isDisabled:t,delayMs:s=500,accessibilityDescription:a}){return Bm({isDisabled:t,threshold:s,accessibilityDescription:a,onLongPress:e})}const Ss=72,Bo=10,Ko="__swipeableRowAxisCancel";function Uo(e){return e==="leading"?Ss:e==="trailing"?-Ss:0}function wf(e){return e>=Ss/2?"leading":e<=-Ss/2?"trailing":"none"}function fc({thread:e,selectionMode:t,checked:s,active:a,peek:r,onPeek:o,onToggleCheck:i,onLongPress:l,onOpen:u,onAct:d,linkComponent:m}){const f=c.useRef(null),[h,b]=c.useState(null),{longPressProps:v}=mc({onLongPress:l,isDisabled:t,accessibilityDescription:"Select message"}),p=E=>{const j=new PointerEvent("pointercancel",{bubbles:!0});j[Ko]=!0,E.currentTarget.dispatchEvent(j)},w=nn(v,{onPointerDown:E=>{f.current={startX:E.clientX,startY:E.clientY,axis:"none",moved:!1}},onPointerMove:E=>{if(t)return;const j=f.current;if(!j)return;const z=E.clientX-j.startX,O=E.clientY-j.startY;if(j.axis==="none"){if(Math.abs(O)>Bo&&Math.abs(O)>Math.abs(z)){j.axis="vertical",p(E),f.current=null;return}Math.abs(z)>Bo&&(j.axis="horizontal",j.moved=!0,p(E),E.currentTarget.setPointerCapture(E.pointerId))}if(j.axis!=="horizontal")return;const I=Uo(r),F=Math.max(-Ss,Math.min(Ss,I+z));b(F)},onPointerUp:()=>{const E=f.current;f.current=null;const j=h;if(b(null),!!E){if(E.axis==="horizontal"&&j!==null){o(wf(j));return}if(t){i();return}if(r!=="none"){o("none");return}m||u()}},onPointerCancel:E=>{E.nativeEvent[Ko]||(f.current=null,b(null))}}),N=E=>{r!=="none"&&E.preventDefault()},T=h??Uo(r),C=T>0?"leading":T<0?"trailing":"none",S=H("relative touch-pan-y bg-surface","select-none [-webkit-touch-callout:none]",rn({active:s||a})),D={transform:T!==0?`translateX(${T}px)`:void 0,transition:h===null?"transform 150ms ease":"none",minHeight:44},M=!e.isRead,A=E=>E.stopPropagation(),P=t?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:H("inline-flex size-7 shrink-0 items-center justify-center rounded-full border",s?"border-accent bg-accent text-accent-fg":"border-line-strong bg-canvas"),children:s&&n.jsx(Zs,{className:"size-3.5"})}),n.jsx(Ys,{thread:e})]}):n.jsxs(n.Fragment,{children:[M&&n.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),n.jsx("button",{type:"button",role:"checkbox","aria-checked":s,"aria-label":`Select message from ${e.fromName}`,onPointerDown:A,onPointerMove:A,onPointerUp:A,onClick:E=>{E.preventDefault(),E.stopPropagation(),l()},className:"-m-2 inline-flex size-11 shrink-0 items-center justify-center rounded-full",children:n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"sm"})}),n.jsx(Ys,{thread:e})]});return n.jsxs("div",{className:"relative overflow-hidden",children:[C==="leading"&&n.jsx("button",{type:"button",onClick:()=>d("leading"),"aria-label":e.isRead?"Mark as unread":"Mark as read",className:"absolute inset-y-0 left-0 flex items-center justify-start bg-accent-2 px-6 text-accent-fg",children:e.isRead?n.jsx(Ol,{className:"size-6"}):n.jsx(Is,{className:"size-6"})}),C==="trailing"&&n.jsx("button",{type:"button",onClick:()=>d("trailing"),"aria-label":"Delete message",className:"absolute inset-y-0 right-0 flex items-center justify-end bg-danger px-6 text-canvas",children:n.jsx(nt,{className:"size-6"})}),m&&!t?m({...w,className:S,style:D,onOpenClick:N,children:P}):n.jsx("button",{type:"button",role:t?"checkbox":void 0,"aria-checked":t?s:void 0,...w,className:S,style:D,children:P})]})}function jf({sections:e,selectedThreadId:t,selectionMode:s,checkedIds:a,initialPeek:r,onToggleCheck:o,onEnterSelection:i,onOpenThread:l,onRefresh:u,refreshing:d,busy:m=!1}){const[f,h]=c.useState(()=>e.flatMap(x=>x.threads)),[b,v]=c.useState(r&&r!=="none"&&f[1]?{id:f[1].id,side:r}:null),p=(x,g)=>{h(g==="trailing"?y=>y.filter(k=>k.id!==x):y=>y.map(k=>k.id===x?{...k,isRead:!k.isRead}:k)),v(null)};return n.jsxs("div",{className:"flex-1 overflow-y-auto",children:[d&&n.jsxs("div",{className:"flex items-center justify-center gap-2 border-b border-line py-3 text-fg-muted",children:[n.jsx(nc,{className:"size-4 animate-spin"}),n.jsx("span",{className:"text-xs",children:"Checking for new mail…"})]}),n.jsx("div",{className:"divide-y divide-line",children:f.map(x=>n.jsx("div",{className:m?"pointer-events-none opacity-50":void 0,children:n.jsx(fc,{thread:x,selectionMode:s,checked:a.has(x.id),active:x.id===t,peek:b?.id===x.id?b.side:"none",onPeek:g=>v(g==="none"?null:{id:x.id,side:g}),onToggleCheck:()=>o(x.id),onLongPress:()=>i(x.id),onOpen:()=>l(x.id),onAct:g=>p(x.id,g)})},x.id))}),!s&&!d&&!m&&n.jsx("button",{type:"button",onClick:u,className:"w-full border-t border-line py-2 text-center text-2xs text-fg-subtle transition-colors hover:bg-surface-sunken",children:"Pull to refresh"})]})}function hc({listTitle:e,listMeta:t,sections:s,briefFilters:a,flatList:r,listState:o="ready",searchQuery:i,errorMessage:l,onRetry:u,onReportError:d,briefCategory:m,selectedThreadId:f,density:h="comfortable",onSelectThread:b,onSelectBriefCategory:v,onOpenNav:p,isDesktop:x,initialTouchState:g,selectionBar:y,selectionSheet:k,listBody:w,hideHeader:N=!1}){const T=h==="compact"?bf:xf,C=c.useRef(null);Qn({containerRef:C,itemSelector:vr});const S=!x&&!a&&o==="ready",D=s.flatMap(_=>_.threads),[M,A]=c.useState(g==="selection"),[P,E]=c.useState(()=>g==="selection"?new Set(D.slice(0,2).map(_=>_.id)):new Set),[j,z]=c.useState(!1),O=g==="peek-trailing"?"trailing":g==="peek-leading"?"leading":void 0,I=_=>{E(X=>{const ee=new Set(X);return ee.has(_)?ee.delete(_):ee.add(_),ee.size===0&&A(!1),ee})},F=_=>{A(!0),E(new Set([_]))},R=()=>{A(!1),E(new Set)},L=()=>{z(!0),setTimeout(()=>z(!1),1400)},B=!y&&S&&M&&P.size>0;return n.jsxs("section",{className:"relative flex h-full w-full flex-col bg-surface",children:[y??(B?n.jsx(kf,{count:P.size,onCancel:R,onMarkRead:R,onDelete:R}):N?null:n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[p&&n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Pr,{className:"size-4"}),onClick:p,"aria-label":"Open folders",className:"-ml-1 shrink-0"}),n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e}),t&&n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle",children:t})]})),o==="loading"?n.jsx("div",{className:"flex-1 overflow-y-auto",children:n.jsx(ff,{})}):o==="empty"?n.jsx(hf,{searchQuery:i}):o==="error"?n.jsx(gf,{message:l,onRetry:u,onReport:d}):a?n.jsx(pl,{sections:s,briefCategory:m,selectedThreadId:f,Row:T,onSelectThread:b,onSelectBriefCategory:v}):w??(S?n.jsx(jf,{sections:s,selectedThreadId:f,selectionMode:M,checkedIds:P,initialPeek:O,onToggleCheck:I,onEnterSelection:F,onOpenThread:_=>b?.(_),onRefresh:L,refreshing:j}):n.jsx("div",{ref:C,className:"flex-1 overflow-y-auto",children:s.map(_=>n.jsxs("div",{children:[!r&&_.label&&n.jsxs("div",{className:"sticky top-0 flex h-section-row items-center justify-between border-b border-line bg-surface-sunken px-row-inset",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:_.label}),n.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:_.threads.length})]}),n.jsx("div",{className:"divide-y divide-line",children:_.threads.map(X=>n.jsx(T,{thread:X,active:X.id===f,onClick:()=>b?.(X.id)},X.id))})]},_.id))})),x&&n.jsx(ic,{}),k]})}function Sf({triggerLabel:e,triggerIcon:t,items:s,align:a="end",touch:r=!0,className:o}){const[i,l]=c.useState(!1),u=c.useRef(null);return c.useEffect(()=>{if(!i)return;const d=f=>{u.current&&!u.current.contains(f.target)&&l(!1)},m=f=>{f.key==="Escape"&&l(!1)};return document.addEventListener("mousedown",d),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",d),document.removeEventListener("keydown",m)}},[i]),s.length===0?null:n.jsxs("div",{ref:u,className:H("relative",o),children:[n.jsx(G,{variant:"ghost",size:"sm",icon:t??n.jsx(Zl,{className:"size-5"}),onClick:()=>l(d=>!d),"aria-label":e,"aria-haspopup":"menu","aria-expanded":i,className:H(r&&"min-h-11 min-w-11 px-0")}),i&&n.jsx("div",{role:"menu",className:H("absolute top-full z-50 mt-1 flex min-w-44 flex-col rounded-md border border-line bg-surface py-1 shadow-lg",a==="end"?"right-0":"left-0"),children:s.map(d=>n.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{l(!1),d.onSelect()},className:"flex min-h-11 items-center gap-3 px-4 py-2.5 text-left text-sm text-fg transition-colors hover:bg-surface-sunken",children:[d.icon&&n.jsx("span",{className:"shrink-0 text-fg-subtle",children:d.icon}),d.label]},d.key))})]})}const Ps="min-h-11 min-w-11 px-0";function gc({hasThread:e,onReply:t,onReplyAll:s,onForward:a,isStarred:r,onToggleStar:o,onDelete:i,isRead:l,onToggleRead:u,moveSlot:d,overflowItems:m=[],onUnavailable:f,unavailableHint:h,className:b}){const v=(x,g)=>()=>{if(!e){f?.(x);return}g?.()},p=u?[{key:"toggle-read",label:l?"Mark as unread":"Mark as read",icon:l?n.jsx(Ol,{className:"size-4"}):n.jsx(Is,{className:"size-4"}),onSelect:v("toggleRead",u)}]:[];return n.jsxs("div",{className:H("relative",b),children:[n.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-0.5 bg-canvas px-1",children:[n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(rc,{className:"size-5"}),onClick:v("reply",t),"aria-label":"Reply",title:"Reply",className:Ps}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(ac,{className:"size-5"}),onClick:v("replyAll",s),"aria-label":"Reply all",title:"Reply all",className:Ps}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(tc,{className:"size-5"}),onClick:v("forward",a),"aria-label":"Forward",title:"Forward",className:Ps}),n.jsx("div",{className:"flex-1"}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(zt,{className:H("size-5",r&&"fill-warning text-warning")}),onClick:v("star",o),"aria-label":r?"Unstar":"Star","aria-pressed":r,title:r?"Unstar":"Star",className:Ps}),d,n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(nt,{className:"size-5"}),onClick:v("delete",i),"aria-label":"Move to Trash",title:"Move to Trash",className:Ps}),n.jsx(Sf,{triggerLabel:"More actions",items:[...p,...m]})]}),!e&&h&&n.jsx("p",{role:"status",className:"bg-surface-sunken px-3 py-1 text-2xs text-fg-subtle",children:h})]})}function Cf({open:e=!1,enabled:t=!0,onToggle:s,className:a}){return n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(bl,{className:"size-4"}),title:"Intelligence","aria-label":e?"Hide intelligence sidebar":"Show intelligence sidebar","aria-pressed":e,disabled:!t,onClick:s,className:H(e&&"bg-accent-2-soft text-accent-2",a)})}function Nf({hasThread:e,onUnavailable:t,unavailableHint:s,isStarred:a,showTriage:r=!0,onReply:o,onReplyAll:i,onForward:l,onDelete:u,onToggleStar:d,moveSlot:m,onMove:f,replyTitle:h="Reply (r)",replyAllTitle:b="Reply all (a)",forwardTitle:v="Forward (f)",deleteTitle:p="Move to Trash (#)",flagTitle:x="Star (s)",children:g,className:y}){const k=(w,N)=>()=>{if(!e){t?.(w);return}N?.()};return n.jsxs("div",{className:"relative",children:[n.jsxs("header",{className:H("flex h-pane-header shrink-0 items-center gap-1 border-b border-line bg-surface px-3",y),children:[n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(rc,{className:"size-4"}),title:h,"aria-label":"Reply",onClick:k("reply",o)}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(ac,{className:"size-4"}),title:b,"aria-label":"Reply all",onClick:k("replyAll",i)}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(tc,{className:"size-4"}),title:v,"aria-label":"Forward",onClick:k("forward",l)}),r&&n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"mx-1 h-4 w-px bg-line","aria-hidden":!0}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(nt,{className:"size-4"}),title:p,"aria-label":"Move to Trash",onClick:k("delete",u)}),m??n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(ec,{className:"size-4"}),title:"Move to mailbox","aria-label":"Move to mailbox",onClick:k("move",f)}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(zt,{className:H("size-4",a&&"fill-warning text-warning")}),title:x,"aria-label":"Star",onClick:k("flag",d)})]}),n.jsx("div",{className:"flex-1"}),g]}),!e&&s&&n.jsx("p",{role:"status",className:"border-b border-line bg-surface-sunken px-3 py-1 text-2xs text-fg-subtle",children:s})]})}const Ef=(e,t)=>{const a=e==="newsletter"||e==="marketing"||t;return{framed:a,isPlain:!a}},If=()=>`
9
+ /* Zero the UA default body margin and clamp the document to the iframe width so
10
+ wide author markup can't push the body (and the page) past the viewport. */
11
+ html, body {
12
+ margin: 0;
13
+ padding: 0;
14
+ max-width: 100%;
15
+ }
16
+ body {
17
+ overflow-wrap: anywhere;
18
+ word-break: break-word;
19
+ }
20
+ /* Media never wider than the frame; keep aspect ratio when width is capped. */
21
+ img, video, iframe, svg, canvas {
22
+ max-width: 100% !important;
23
+ height: auto;
24
+ }
25
+ /* Fixed-width author tables (\`<table width="600">\`) collapse to fit. */
26
+ table {
27
+ max-width: 100% !important;
28
+ table-layout: auto;
29
+ }
30
+ /* Cells carry the fixed widths in real newsletters (\`<td width="600">\`);
31
+ cap them too or the table can't actually shrink. */
32
+ td, th {
33
+ max-width: 100% !important;
34
+ }
35
+ /* \`max-width\` alone can't beat an inline \`min-width\`; zeroing the min lets
36
+ flex / grid / table children actually collapse to the clamped width. */
37
+ * {
38
+ min-width: 0;
39
+ }
40
+ /* Long unbroken strings (URLs, tokens) wrap instead of forcing a wide line. */
41
+ pre, code {
42
+ white-space: pre-wrap;
43
+ overflow-wrap: anywhere;
44
+ word-break: break-word;
45
+ }
46
+ `,Tf=e=>{const t=new Map;for(const s of e){if(!s.contentId||s.contentUrl.length===0)continue;const a=s.contentId.replace(/^<|>$/g,"");t.set(a,s.contentUrl)}return s=>t.get(s.replace(/^<|>$/g,""))},Rf=/^(none|transparent|inherit|initial|unset)\s*$/i,Mf=e=>{const t=[],s=/<style[^>]*>([\s\S]*?)<\/style>/gi;let a;for(a=s.exec(e);a!==null;)t.push(a[1]),a=s.exec(e);return t},zf=e=>{const t=/background(?:-color)?\s*:\s*([^;}\n]+)/gi;let s;for(s=t.exec(e);s!==null;){const a=s[1].trim();if(!Rf.test(a))return!0;s=t.exec(e)}return!1},Af=e=>{if(/\bstyle\s*=\s*["'][^"']*background/i.test(e)||/\bbgcolor\s*=/i.test(e))return!0;for(const t of Mf(e))if(zf(t))return!0;return!1},Df=["script","iframe","object","embed","form","input","button","textarea","select","meta","link","base"],Of=["onerror","onload","onclick","onmouseover","onmouseout","onfocus","onblur","onsubmit","onkeydown","onkeyup","formaction","xlink:href","data-bind"],Pf="data:image/svg+xml,"+encodeURIComponent(`
47
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
48
+ <rect fill="#f0f0f0" width="100" height="100"/>
49
+ <text x="50" y="50" text-anchor="middle" dy=".3em" fill="#999" font-size="12">
50
+ Image blocked
51
+ </text>
52
+ </svg>
53
+ `),Lf=e=>e.replace(/url\s*\([^)]*\)/gi,"none").replace(/expression\s*\([^)]*\)/gi,"").replace(/-moz-binding\s*:[^;]*/gi,""),$f=e=>e.replace(/@import[^;]*;/gi,"/* @import blocked */").replace(/url\s*\([^)]*\)/gi,"none").replace(/expression\s*\([^)]*\)/gi,"").replace(/-moz-binding\s*:[^;]*/gi,""),Ff=(e={})=>{const t=xl(),s={FORBID_TAGS:Df,FORBID_ATTR:Of,ALLOW_DATA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1};return t.addHook("afterSanitizeAttributes",a=>{if(a.tagName==="IMG"){const r=a.getAttribute("src")||"";if(r.startsWith("data:"))return;if(r.startsWith("cid:")){const i=r.slice(4).replace(/^<|>$/g,""),l=e.resolveCid?.(i);l&&(a.setAttribute("src",l),a.classList.add("inline-content"));return}e.allowExternalImages||(a.setAttribute("data-blocked-src",r),a.setAttribute("src",Pf),a.setAttribute("alt","[Blocked image]"),a.classList.add("blocked-image"))}if(a.tagName==="A"){const r=a.getAttribute("href")||"";if(/^(javascript|data):/i.test(r)){a.removeAttribute("href");return}a.setAttribute("target","_blank"),a.setAttribute("rel","noopener noreferrer nofollow"),a.classList.add("external-link")}if(a.hasAttribute("style")){const r=a.getAttribute("style")||"";a.setAttribute("style",Lf(r))}}),t.addHook("uponSanitizeElement",(a,r)=>{if(r.tagName==="style"){const o=a.textContent||"";a.textContent=$f(o)}}),a=>{const r=Af(a),o=t.sanitize(a,s);return{html:`<style>${If()}</style>${o}`,hasAuthorBackground:r}}},_f='"Geist Variable", "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',Ho={light:{fg:"oklch(0.3 0.025 235)",surface:"oklch(0.975 0.012 90)",accent:"oklch(0.55 0.14 150)"},dark:{fg:"oklch(0.88 0.02 90)",surface:"oklch(0.25 0.025 220)",accent:"oklch(0.78 0.16 150)"}},qf=/prefers-color-scheme\s*:\s*dark|color-scheme\s*:\s*[^;}"']*\bdark\b/i,Wo='<meta name="viewport" content="width=device-width, initial-scale=1">',Bf=e=>{const t=e?Ho.dark:Ho.light;return`
54
+ /* Plain-email base: UI font-stack + theme-aware colors (#424) */
55
+ html, body {
56
+ font-family: ${_f};
57
+ font-size: 14px;
58
+ line-height: 1.6;
59
+ color: ${t.fg};
60
+ background-color: ${t.surface};
61
+ margin: 0;
62
+ padding: 0;
63
+ }
64
+ /* Strip author unreadable text colors and element backgrounds, scoped to body
65
+ descendants so the themed html/body surface above survives this reset. */
66
+ body * {
67
+ color: inherit !important;
68
+ background-color: transparent !important;
69
+ }
70
+ a, a:visited {
71
+ color: ${t.accent} !important;
72
+ text-decoration: underline;
73
+ }
74
+ `},Kf=(e,t)=>e?t?"html,body{margin:0;color-scheme:dark light}":"html{margin:0;background-color:#ffffff;filter:invert(0.92) hue-rotate(180deg)}body{margin:0}img,picture,video,svg,canvas,[style*='background-image'],[background]{filter:invert(0.92) hue-rotate(180deg)}":"html,body{margin:0;background-color:#ffffff;color-scheme:light}",Uf=(e,t,s)=>{if(t==="plain")return`${Wo}<style>${Bf(s)}</style>${e}`;const a=qf.test(e);return`${Wo}<style>${Kf(s,a)}</style>${e}`},Hf=5e4,Wf=1e4,Vf="(max-width: 640px)",Qf=.4,Yf="allow-same-origin allow-popups allow-popups-to-escape-sandbox",Vo=(e,t,s)=>Math.min(Math.ceil(Math.max(e,t)),s),Gf=(e,t)=>e<=0||t<=0||e<=t?1:Math.max(Qf,t/e),Xf=e=>{const[t,s]=c.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches);return c.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const a=window.matchMedia(e);s(a.matches);const r=o=>s(o.matches);return a.addEventListener("change",r),()=>a.removeEventListener("change",r)},[e]),t},Jf=new Set(["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"]),Zf=e=>e===" "?!1:e.length===1?!0:Jf.has(e),Qo=e=>{if(e.metaKey||e.ctrlKey||e.altKey||!Zf(e.key))return;const t=e.currentTarget??e.target,s=t?.defaultView?.parent;!s||s===t?.defaultView||s.dispatchEvent(new KeyboardEvent("keydown",{key:e.key,code:e.code,shiftKey:e.shiftKey,bubbles:!0,cancelable:!0}))},Yo=({html:e,variant:t="framed",isDark:s=!1,className:a})=>{const r=c.useRef(null),o=c.useRef(null),[i,l]=c.useState(0),[u,d]=c.useState(0),[m,f]=c.useState(0),h=Xf(Vf),b=c.useMemo(()=>Uf(e,t,s),[e,t,s]);c.useEffect(()=>{const k=r.current;if(!k)return;const w=()=>f(T=>T===k.clientWidth?T:k.clientWidth);w();const N=new ResizeObserver(w);return N.observe(k),()=>N.disconnect()},[]),c.useEffect(()=>{const k=o.current;if(!k)return;const w=()=>{const S=k.contentDocument;if(!S?.body)return;const D=S.documentElement,M=Vo(S.body.scrollHeight,D?.scrollHeight??0,Hf);l(P=>P===M?P:M);const A=Vo(S.body.scrollWidth,D?.scrollWidth??0,Wf);d(P=>P===A?P:A)};let N,T;const C=()=>{w();const S=k.contentDocument;S?.body&&(N=new ResizeObserver(w),N.observe(S.body),S.documentElement&&N.observe(S.documentElement),S.addEventListener("keydown",Qo),T=S)};return k.addEventListener("load",C),()=>{k.removeEventListener("load",C),T?.removeEventListener("keydown",Qo),N?.disconnect()}},[]);const v=h?Gf(u,m):1,p=v<1,x=p?`${u}px`:h?"100%":t==="framed"&&u>0?`max(100%, ${u}px)`:u===0?"100%":`${u}px`,g=i===0?"1px":`${i}px`,y=n.jsx("iframe",{ref:o,title:"Email content",sandbox:Yf,srcDoc:b,className:p?void 0:a,scrolling:"no",style:{width:x,maxWidth:p?"none":void 0,border:"none",display:"block",height:g,overflow:"hidden",transform:p?`scale(${v})`:void 0,transformOrigin:p?"top left":void 0,colorScheme:"normal"}});return n.jsx("div",{ref:r,className:p?a:void 0,children:p?n.jsx("div",{style:{width:"100%",height:`${Math.ceil(i*v)}px`,overflow:"hidden"},children:y}):y})},Go=()=>n.jsx("p",{className:"text-fg-muted text-sm italic",children:"This message has no body content."}),pc=({html:e,text:t,isDark:s=!1,category:a,allowImages:r=!1,resolveCid:o,className:i,renderBlockedNotice:l})=>{const u=c.useMemo(()=>!e||typeof document>"u"?null:Ff({allowExternalImages:r,resolveCid:o})(e),[e,r,o]),d=u?.html??null,{framed:m,isPlain:f}=Ef(a,u?.hasAuthorBackground??!1),h=c.useMemo(()=>!d||r?0:(d.match(/data-blocked-src/g)||[]).length,[d,r]);return!d&&!t?n.jsx("div",{className:H("message-body",i),children:n.jsx(Go,{})}):n.jsxs("div",{className:H("message-body",i),children:[h>0&&n.jsx("div",{className:"message-body-notice",children:l?.(h)}),d?m?n.jsx("div",{className:"w-full max-w-full overflow-x-auto",children:n.jsx(Yo,{html:d,variant:"framed",isDark:s})}):n.jsx("div",{className:"max-w-full overflow-x-auto lg:max-w-2xl",children:n.jsx(Yo,{html:d,variant:f?"plain":"framed",isDark:s})}):t?n.jsx("pre",{className:"email-text whitespace-pre-wrap text-sm leading-relaxed",children:t}):n.jsx(Go,{})]})};function Rs({message:e="Select a thread to read",icon:t,showHints:s=!0,className:a}){return n.jsxs("div",{className:H("flex flex-1 flex-col items-center justify-center text-center",a),children:[t??n.jsx(yr,{className:"size-10 text-fg-subtle"}),n.jsx("p",{className:"mt-3 text-sm text-fg-muted",children:e}),s&&n.jsxs("p",{className:"text-2xs text-fg-subtle",children:[n.jsx(bs,{children:"j"})," / ",n.jsx(bs,{children:"k"})," to move, ",n.jsx(bs,{children:"Enter"})," to open"]})]})}function bc({message:e,onClick:t,isFocused:s,isUnread:a,trailing:r}){const o=n.jsxs(n.Fragment,{children:[n.jsx(js,{className:"size-3.5 shrink-0 text-fg-subtle"}),n.jsxs("div",{className:"relative shrink-0",children:[n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"md"}),a&&n.jsx("span",{className:"absolute -top-0.5 -right-0.5 size-2 rounded-full border border-canvas bg-accent"})]}),n.jsx("span",{className:H("w-36 shrink-0 truncate text-sm",a?"font-semibold text-fg":"font-medium text-fg-muted"),children:e.fromName}),n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-subtle",children:e.snippet}),r??n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.dateLabel})]}),i=H("group flex h-section-row w-full items-center gap-3 border-b border-line px-2 text-left transition-colors hover:bg-surface-sunken lg:px-4",s&&"bg-surface-sunken ring-1 ring-inset ring-accent/30");return t?n.jsx("div",{role:"button",tabIndex:0,"aria-expanded":!1,onClick:t,onKeyDown:l=>{Yd(l)&&(l.preventDefault(),t())},className:H(i,"cursor-pointer"),children:o}):n.jsx("div",{className:i,children:o})}function xc({message:e,warning:t,onHeaderClick:s,isFocused:a,senderBadge:r,trailing:o,to:i,indicators:l,actionMenu:u,actionBar:d,body:m}){const f=n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[n.jsxs("span",{className:"text-sm font-semibold text-fg",children:[e.fromName,r]}),o??n.jsx("span",{className:"text-2xs text-fg-subtle",children:e.dateLabel})]}),n.jsx("div",{className:"text-xs text-fg-subtle",children:e.fromEmail}),i!==null&&n.jsx("div",{className:"text-xs text-fg-subtle",children:i??n.jsxs(n.Fragment,{children:["to ",e.toLabel]})})]});return n.jsxs("div",{className:H("px-2 py-3 lg:px-4",a&&"ring-1 ring-inset ring-accent/30"),children:[n.jsxs("div",{className:"flex items-start gap-3",children:[n.jsx(Tt,{className:"mt-1 size-3.5 shrink-0 text-fg-subtle"}),n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"md"}),n.jsxs("div",{className:"min-w-0 flex-1",children:[s?n.jsx("button",{type:"button",onClick:s,className:"w-full text-left",children:f}):f,l]}),u&&n.jsx("div",{className:"shrink-0",children:u})]}),t&&n.jsxs("div",{className:"mt-3 flex items-start gap-3 rounded-md bg-danger-soft p-3",children:[n.jsx(Ts,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n.jsxs("div",{className:"text-sm text-fg",children:[n.jsx("span",{className:"font-semibold text-danger",children:"Caution: "}),t," ",n.jsx("button",{type:"button",className:"text-accent underline",children:"Why?"})]})]}),d&&n.jsx("div",{className:"mt-3 -mx-2 lg:-mx-4",children:d}),n.jsx("div",{className:"-mx-2 [&_.message-body-notice]:px-2 lg:mx-0 lg:[&_.message-body-notice]:px-0",children:m??n.jsx(pc,{className:"mt-3",html:e.bodyHtml,category:e.framed?"newsletter":"personal",allowImages:!0})})]})}function e1({thread:e,onBack:t,intelligence:s,intelligenceOpen:a,onToggleIntelligence:r,actions:o,children:i,touchHandlers:l}){const[u,d]=c.useState(!1),m=r!==void 0,f=m?a??!1:u,h=!!s||m,b=()=>{if(m){r?.();return}d(p=>!p)},v=()=>{if(m){f&&r?.();return}d(!1)};return n.jsxs("article",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line bg-surface px-row-inset",children:[n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Yl,{className:"size-4"}),onClick:t,"aria-label":"Back to messages",className:"-ml-1 shrink-0"}),n.jsx("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e.subject}),h&&n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(bl,{className:"size-4"}),onClick:b,"aria-label":f?"Hide intelligence panel":"Show intelligence panel","aria-pressed":f,title:"Intelligence",className:H("shrink-0",f&&"bg-accent-2-soft text-accent-2")})]}),n.jsx("div",{className:"flex-1 overflow-y-auto",style:l?{touchAction:"pan-y"}:void 0,...l,children:i??e.messages.map(p=>{const x=g=>g?()=>g(p.id):void 0;return p.expanded?n.jsx(xc,{message:p,warning:e.warning,onHeaderClick:x(o?.onToggleExpand),actionBar:n.jsx(gc,{hasThread:!0,onReply:x(o?.onReply),onReplyAll:x(o?.onReplyAll),onForward:x(o?.onForward),onToggleStar:x(o?.onToggleStar),onDelete:x(o?.onDelete),onToggleRead:x(o?.onToggleRead),moveSlot:o?.moveSlot?.(p.id)})},p.id):n.jsx(bc,{message:p,onClick:x(o?.onToggleExpand)},p.id)})}),s&&!m&&n.jsx(vl,{open:f,onClose:v,title:"Intelligence",anchor:"right",className:"p-0",children:n.jsx(oc,{data:s,onClose:v,className:"h-full w-full border-l-0"})})]})}const t1="button:not([disabled]), a[href]",Yt="outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface-sunken";function s1({active:e,dimmed:t,indent:s}){return H("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm transition-colors",Yt,s&&"pl-7",e?"bg-accent-2-soft font-medium text-accent-2":"text-fg-muted hover:bg-surface hover:text-fg",t&&"opacity-55")}function n1({icon:e,label:t,count:s,active:a}){return n.jsxs(n.Fragment,{children:[e&&n.jsx("span",{className:H("shrink-0",a?"text-accent-2":"text-fg-subtle"),children:e}),n.jsx("span",{className:"flex-1 truncate",children:t}),s!=null&&s>0&&n.jsx("span",{className:H("text-2xs tabular-nums",a?"text-accent-2":"text-fg-subtle"),children:s})]})}function xs({icon:e,label:t,count:s,active:a,dimmed:r,indent:o,navId:i,linkComponent:l,ariaLabel:u,title:d,onClick:m}){const f=s1({active:a,dimmed:r,indent:o}),h=n.jsx(n1,{icon:e,label:t,count:s,active:a});return i&&l?l({navId:i,className:f,ariaLabel:u??t,title:d,onClick:m,children:h}):n.jsx("button",{type:"button",onClick:m,className:f,"aria-label":u,title:d,children:h})}const Xo={inbox:0,flagged:1,drafts:2,sent:3,archive:4,all:5,junk:6,trash:7};function a1(e){switch(e){case"inbox":return n.jsx(yr,{className:"size-4"});case"flagged":return n.jsx(zt,{className:"size-4"});case"drafts":return n.jsx(yl,{className:"size-4"});case"sent":return n.jsx(en,{className:"size-4"});case"archive":return n.jsx(Jd,{className:"size-4"});case"all":return n.jsx(Xd,{className:"size-4"});case"junk":return n.jsx(Gd,{className:"size-4"});case"trash":return n.jsx(nt,{className:"size-4"})}}const Jo=e=>e.role!=null,Ia=8,Zo="remit.nav.folders.open.",ei="remit.nav.account.open.";function ti(e,t,s){if(typeof localStorage>"u")return s;const a=localStorage.getItem(e+t);return a===null?s:a!=="0"}function si(e,t,s){typeof localStorage>"u"||localStorage.setItem(e+t,s?"1":"0")}function r1({query:e,onSelect:t,onRemove:s}){return n.jsxs("div",{className:"group flex w-full items-center gap-1 rounded-md pr-1 hover:bg-surface",children:[n.jsxs("button",{type:"button",onClick:t,className:H("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",Yt),children:[n.jsx(sn,{className:"size-4 shrink-0 text-fg-subtle"}),n.jsx("span",{className:"min-w-0 flex-1 truncate",children:e})]}),s&&n.jsx("button",{type:"button",onClick:s,"aria-label":`Remove saved search: ${e}`,className:H("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",Yt),children:n.jsx(Ue,{className:"size-3.5"})})]})}function o1({savedSearches:e,saveableQuery:t,onSelectSavedSearch:s,onRemoveSavedSearch:a,onSaveCurrentSearch:r}){return e.length===0&&!t?null:n.jsxs("div",{className:"mt-3",children:[n.jsx("div",{className:"px-2 pb-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Saved searches"}),t&&n.jsxs("button",{type:"button",onClick:r,className:H("flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm text-accent transition-colors hover:bg-surface",Yt),children:[n.jsx(Wm,{className:"size-4 shrink-0"}),n.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["Save “",t,"”"]})]}),e.map(o=>n.jsx(r1,{query:o,onSelect:()=>s?.(o),onRemove:a?()=>a(o):void 0},o))]})}function i1({account:e,selectedNavId:t,onSelectNav:s,linkComponent:a}){const[r,o]=c.useState(()=>ti(ei,e.id,!0)),[i,l]=c.useState(()=>ti(Zo,e.id,!0)),[u,d]=c.useState(!1),m=()=>{o(y=>{const k=!y;return si(ei,e.id,k),k})},f=()=>{l(y=>{const k=!y;return si(Zo,e.id,k),k})},h=e.mailboxes.filter(Jo).sort((y,k)=>Xo[y.role]-Xo[k.role]),b=e.mailboxes.filter(y=>!Jo(y)),v=u||b.length<=Ia?b:b.slice(0,Ia),p=b.length-v.length,x=e.status??"ready",g=x==="ready"&&h.length===0&&b.length===0;return n.jsxs("div",{className:"mt-3",children:[n.jsxs("button",{type:"button",onClick:m,"aria-expanded":r,className:H("flex w-full items-center gap-1.5 px-2 pb-1 text-left transition-colors hover:text-fg",Yt,e.muted&&"opacity-55"),children:[r?n.jsx(Tt,{className:"size-3 shrink-0 text-fg-subtle"}):n.jsx(js,{className:"size-3 shrink-0 text-fg-subtle"}),n.jsx("span",{className:"truncate text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e.label}),e.muted&&n.jsxs(n.Fragment,{children:[n.jsx(Gl,{className:"size-3 shrink-0 text-fg-subtle"}),n.jsx("span",{className:"text-2xs text-fg-subtle",children:"muted"})]})]}),r&&n.jsxs(n.Fragment,{children:[x==="loading"&&n.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"Loading…"}),x==="error"&&n.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:[n.jsx(Jt,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),n.jsx("div",{className:"min-w-0 flex-1",children:n.jsx("p",{className:"font-medium text-danger",children:"Couldn't load mailboxes"})}),e.onRetry&&n.jsx("button",{type:"button",onClick:e.onRetry,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}),g&&n.jsx("div",{className:"px-2 py-1 text-sm text-fg-muted",children:"No mailboxes"}),x==="ready"&&n.jsxs(n.Fragment,{children:[h.map(y=>n.jsx(xs,{navId:y.id,linkComponent:a,icon:a1(y.role),label:y.name,ariaLabel:y.name,title:y.fullPath??y.name,count:y.unseen,active:t===y.id,dimmed:e.muted,onClick:()=>s?.(y.id)},y.id)),e.outboxPending!==void 0&&n.jsx(xs,{navId:"outbox",linkComponent:a,icon:n.jsx(en,{className:"size-4"}),label:"Outbox",ariaLabel:"Outbox",count:e.outboxPending>0?e.outboxPending:void 0,active:t==="outbox",dimmed:e.muted,onClick:()=>s?.("outbox")}),b.length>0&&n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",onClick:f,"aria-expanded":i,className:H("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",Yt),children:[i?n.jsx(Tt,{className:"size-3 shrink-0"}):n.jsx(js,{className:"size-3 shrink-0"}),n.jsx("span",{className:"flex-1",children:"Folders"}),n.jsx("span",{className:"tabular-nums opacity-70",children:b.length})]}),i&&n.jsxs(n.Fragment,{children:[v.map(y=>n.jsx(xs,{navId:y.id,linkComponent:a,icon:n.jsx(rm,{className:"size-4"}),label:y.name,ariaLabel:y.name,title:y.fullPath??y.name,count:y.unseen,active:t===y.id,dimmed:e.muted,onClick:()=>s?.(y.id)},y.id)),(p>0||u)&&b.length>Ia&&n.jsx("button",{type:"button",onClick:()=>d(y=>!y),className:H("ml-7 flex items-center px-2 py-1 text-2xs font-medium text-accent transition-colors hover:underline",Yt),children:u?"Show less":`Show all (${b.length})`})]})]})]})]})]})}function l1({accounts:e,selectedNavId:t,briefUnseen:s,onSelectNav:a,variant:r="desktop",linkComponent:o,savedSearches:i=[],saveableQuery:l,onSelectSavedSearch:u,onRemoveSavedSearch:d,onSaveCurrentSearch:m}){const f=c.useRef(null);Qn({containerRef:f,itemSelector:t1});const h=r==="drawer",b=n.jsxs("nav",{ref:h?f:void 0,className:h?"px-2 py-2":"flex-1 overflow-y-auto px-2 py-2","aria-label":"Mailboxes",children:[n.jsx(xs,{navId:"brief",linkComponent:o,icon:n.jsx(pt,{className:"size-4"}),label:"Daily brief",ariaLabel:"Daily brief",count:s,active:t==="brief",onClick:()=>a?.("brief")}),n.jsx(xs,{navId:"flagged",linkComponent:o,icon:n.jsx(zt,{className:"size-4"}),label:"Starred",ariaLabel:"Starred",active:t==="flagged",onClick:()=>a?.("flagged")}),n.jsx(o1,{savedSearches:i,saveableQuery:l,onSelectSavedSearch:u,onRemoveSavedSearch:d,onSaveCurrentSearch:m}),e.length===0?n.jsx("div",{className:"px-2 py-4 text-center text-sm text-fg-muted",children:"No accounts configured"}):e.map(v=>n.jsx(i1,{account:v,selectedNavId:t,onSelectNav:a,linkComponent:o},v.id))]});return h?b:n.jsxs("aside",{ref:f,className:"flex h-full w-full flex-col bg-surface-sunken",children:[b,n.jsx("div",{className:"border-t border-line px-2 py-2",children:n.jsx(xs,{navId:"settings",linkComponent:o,icon:n.jsx(Br,{className:"size-4"}),label:"Settings",ariaLabel:"Settings",active:t==="settings",onClick:()=>a?.("settings")})})]})}function c1({search:e,actions:t,className:s}){return n.jsxs("header",{className:H("flex min-h-16 w-full shrink-0 items-center gap-3 border-b border-line bg-canvas px-3 py-2",s),children:[n.jsx("div",{className:"flex min-w-0 flex-1 justify-start",children:n.jsx("div",{className:"w-full max-w-2xl",children:e})}),t&&n.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t})]})}function u1({label:e,size:t="sm",onUndo:s,undoLabel:a="Undo",filtersHref:r,manageLabel:o="Manage filter",className:i}){return n.jsxs(st,{tone:"accent",className:H(t==="md"&&"py-1 text-xs",i),children:[n.jsx(sf,{className:H(t==="sm"?"size-3":"size-3.5","shrink-0"),"aria-hidden":!0}),n.jsx("span",{children:e}),s&&n.jsx("button",{type:"button",onClick:l=>{l.stopPropagation(),s()},className:"font-semibold underline decoration-dotted underline-offset-2 hover:decoration-solid",children:a}),r&&n.jsx("a",{href:r,onClick:l=>{l.stopPropagation()},className:"font-semibold underline decoration-dotted underline-offset-2 hover:decoration-solid",children:o})]})}const d1=320,m1="cubic-bezier(0.32, 0.9, 0.3, 1)",f1=.5,h1=.4,g1=360;function p1(e){return Math.sign(e)*Math.sqrt(Math.abs(e))*4}function vc({open:e,onClose:t,children:s,dismissLabel:a="Dismiss"}){const r=c.useRef(null),[o,i]=c.useState(g1),[l,u]=c.useState(null);c.useLayoutEffect(()=>{const g=r.current;if(!g)return;const y=()=>i(g.offsetHeight);y();const k=new ResizeObserver(y);return k.observe(g),()=>k.disconnect()},[]);const d=c.useRef(null),m=c.useCallback(g=>{g.currentTarget.setPointerCapture(g.pointerId),d.current={startY:g.clientY,lastY:g.clientY,lastT:g.timeStamp,velocity:0,moved:!1},u(0)},[]),f=c.useCallback(g=>{const y=d.current;if(!y)return;const k=g.timeStamp-y.lastT;k>0&&(y.velocity=(g.clientY-y.lastY)/k),y.lastY=g.clientY,y.lastT=g.timeStamp;const w=g.clientY-y.startY;Math.abs(w)>4&&(y.moved=!0);const N=w<0?p1(w):w;u(N)},[]),h=c.useCallback(()=>{const g=d.current;if(d.current=null,!g)return;const y=g.lastY-g.startY,w=g.velocity>f1||y>o*h1;u(null),w&&t()},[o,t]),b=l!==null,v=e?l??0:o,p=Math.min(Math.max(1-v/o,0),1),x=b?"none":`transform ${d1}ms ${m1}`;return n.jsxs("div",{className:H("absolute inset-0 z-40 select-none overflow-hidden",e||b?"":"pointer-events-none"),children:[n.jsx("button",{type:"button","aria-label":a,tabIndex:-1,onClick:t,className:H("absolute inset-0 bg-black/40",p>0?"pointer-events-auto":"pointer-events-none"),style:{opacity:p*.6,transition:x.replace("transform","opacity")}}),n.jsxs("div",{ref:r,className:"absolute inset-x-0 bottom-0 flex max-h-[92%] flex-col rounded-t-3xl border-t border-line bg-surface shadow-2xl shadow-black/30",style:{transform:`translateY(${v}px)`,transition:x},children:[n.jsx("div",{role:"slider","aria-label":"Drag down to dismiss","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(p*100),tabIndex:0,onPointerDown:m,onPointerMove:f,onPointerUp:h,onPointerCancel:h,className:"flex cursor-grab touch-none justify-center pb-1 pt-2.5 active:cursor-grabbing",children:n.jsx("div",{className:"h-1 w-10 rounded-full bg-fg-subtle/40"})}),n.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:s})]})]})}const b1=({status:e})=>e==="saving"?n.jsx("span",{className:"animate-pulse text-xs text-fg-muted",children:"Saving..."}):e==="saved"?n.jsx("span",{className:"text-xs text-fg-muted",children:"Draft saved"}):e==="error"?n.jsx("span",{className:"text-xs text-danger",children:"Save failed"}):null;function x1({onSend:e,onDiscard:t,sending:s,canSend:a,saveStatus:r="idle",unavailableReason:o,onUnavailable:i}){return n.jsxs("div",{className:"flex items-center justify-between border-t border-line px-3 py-2",children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(G,{variant:"primary",size:"md","aria-busy":s,title:a?void 0:o,className:"min-h-11 rounded-full px-4",icon:s?n.jsx(bt,{className:"size-4 animate-spin"}):n.jsx(en,{className:"size-4"}),onClick:()=>{if(!s){if(!a){o&&i?.(o);return}e()}},children:"Send"}),n.jsx(b1,{status:r})]}),n.jsx(G,{variant:"ghost",size:"md","aria-busy":s,"aria-label":"Discard",className:"min-h-11 min-w-11 px-2 hover:text-danger",icon:n.jsx(nt,{className:"size-4"}),onClick:()=>{s||t()}})]})}function v1({banner:e,header:t,children:s,quoted:a,actionBar:r}){return n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[e,t,n.jsxs("div",{className:"min-h-0 flex-1 overflow-auto",children:[s,a&&n.jsx("div",{className:"px-3 pb-2",children:a})]}),r]})}function y1({key:e,shiftKey:t=!1,repeat:s=!1,caretAtStart:a,hasValue:r,chipCount:o}){const i=o-1;return e==="Escape"?r?{type:"clearQuery"}:{type:"blur"}:e==="Tab"&&t?o===0?{type:"none"}:{type:"focusChip",index:i}:e==="Backspace"||e==="ArrowLeft"?!a||o===0?{type:"none"}:s?{type:"none"}:{type:"focusChip",index:i}:{type:"none"}}function k1({key:e,repeat:t=!1,index:s,chipCount:a}){return e==="Backspace"||e==="Delete"?t?{type:"none"}:{type:"removeChip",index:s}:e==="ArrowLeft"?s===0?{type:"none"}:{type:"focusChip",index:s-1}:e==="ArrowRight"?s>=a-1?{type:"focusInput"}:{type:"focusChip",index:s+1}:e==="Enter"||e===" "?{type:"activateChip",index:s}:e==="Escape"?{type:"focusInput"}:{type:"none"}}function w1(e,t){const s=t-1;return s<=0?null:e<s?e:s-1}const j1=e=>e instanceof HTMLElement?e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable:!1,S1=({chips:e=[],onRemoveChip:t,onActivateChip:s,value:a,onChange:r,onClear:o,onClearQuery:i,placeholder:l="Search mail...",globalFocusKey:u=!0,showClearButton:d=!0,size:m="sm",inputId:f,chipsLabel:h="Search filters",className:b})=>{const v=c.useId(),p=f??v,x=c.useRef(null),g=c.useRef([]),y=i??o,[k,w]=c.useState(null),N=c.useRef(void 0),[T,C]=c.useState(""),S=e.length>0;c.useEffect(()=>{w(j=>j!==null&&j>=e.length?null:j)},[e.length]),c.useEffect(()=>{const j=N.current;if(j!==void 0){if(N.current=void 0,j===null){x.current?.focus();return}g.current[j]?.focus()}});const D=c.useCallback(j=>{w(j),N.current=j},[]),M=c.useCallback(j=>{const z=e[j];z&&t&&(D(w1(j,e.length)),C(`${z.label} removed`),t(z.id))},[e,t,D]),A=c.useCallback(()=>{D(null),o()},[o,D]),P=c.useCallback(j=>{const z=j.currentTarget,O=y1({key:j.key,shiftKey:j.shiftKey,repeat:j.repeat,caretAtStart:z.selectionStart===0&&z.selectionEnd===0,hasValue:a.length>0,chipCount:e.length});switch(O.type){case"focusChip":j.preventDefault(),D(O.index);return;case"clearQuery":y();return;case"blur":z.blur();return;case"none":return}},[e.length,a,y,D]),E=c.useCallback(j=>z=>{const O=k1({key:z.key,repeat:z.repeat,index:j,chipCount:e.length});switch(O.type!=="none"&&z.preventDefault(),O.type){case"removeChip":M(O.index);return;case"focusChip":D(O.index);return;case"focusInput":D(null);return;case"activateChip":{const I=e[O.index];I&&s&&s(I.id);return}case"none":return}},[e,M,D,s]);return c.useEffect(()=>{if(!u)return;const j=z=>{z.key!=="/"||z.metaKey||z.ctrlKey||z.altKey||j1(z.target)||(z.preventDefault(),x.current?.focus())};return window.addEventListener("keydown",j),()=>window.removeEventListener("keydown",j)},[u]),n.jsxs("label",{htmlFor:p,className:H("flex w-full items-center gap-1.5 text-sm","bg-surface-sunken/50 border border-transparent","focus-within:bg-canvas focus-within:border-line focus-within:ring-2 focus-within:ring-ring","transition-colors",m==="lg"?"rounded-xl px-4 py-2":"rounded-md px-2.5 py-1",b),children:[n.jsx(sn,{className:H("shrink-0 text-fg-muted pointer-events-none",m==="lg"?"size-5":"size-4")}),n.jsxs("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1",children:[S&&n.jsx("div",{role:"grid","aria-label":h,className:"flex min-w-0 flex-wrap items-center gap-1",children:e.map((j,z)=>n.jsx(Zd,{ref:O=>{g.current[z]=O},label:j.label,tone:j.tone,focused:k===z,onFocusLabel:()=>w(z),onKeyDown:E(z),onRemove:()=>M(z),onActivate:s?()=>s(j.id):void 0},j.id))}),n.jsx("input",{ref:x,id:p,name:"q",type:"text","aria-label":"Search mail",autoComplete:"off",value:a,tabIndex:k===null?0:-1,onChange:j=>r(j.target.value),onKeyDown:P,onFocus:()=>w(null),placeholder:S?void 0:l,className:"min-w-24 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-muted"})]}),(a||S)&&d&&n.jsx("button",{type:"button",onClick:A,className:"shrink-0 rounded p-0.5 hover:bg-surface-raised transition-colors","aria-label":"Clear search",children:n.jsx(Ue,{className:H("text-fg-muted",m==="lg"?"size-5":"size-4")})}),n.jsx("span",{role:"status","aria-live":"polite",className:"sr-only",children:T})]})},Ur=({value:e,onChange:t,onClear:s,onClearQuery:a,chips:r,onRemoveChip:o,placeholder:i="Search mail...",globalFocusKey:l=!0,showClearButton:u=!0,size:d,inputId:m,className:f})=>n.jsx(S1,{value:e,onChange:t,onClear:s,onClearQuery:a,chips:r,onRemoveChip:o,placeholder:i,globalFocusKey:l,showClearButton:u,size:d,inputId:m,className:f});function C1({title:e,unreadCount:t,isDesktop:s,onMenuClick:a,searchValue:r,onSearchChange:o,onSearchClear:i,searchOpen:l,onSearchOpenChange:u,showSearch:d=!0}){const m=`${t.toLocaleString()} unread`,f=i??(()=>o("")),h=()=>{f(),u(!1)},b=p=>n.jsx(Ur,{value:r,onChange:o,onClear:f,globalFocusKey:!1,showClearButton:p}),v=n.jsx(G,{variant:"ghost",icon:n.jsx(Pr,{className:"size-5"}),onClick:a,"aria-label":"Menu",className:"min-h-11 min-w-11 shrink-0 px-0"});return n.jsx("header",{className:"flex shrink-0 flex-col bg-canvas",children:n.jsx("div",{className:"flex h-12 items-center gap-2 px-row-inset",children:d?s?n.jsxs(n.Fragment,{children:[v,n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle",children:m}),n.jsx("div",{className:"w-64 max-w-[40%] shrink-0",children:b(!0)})]}):l||r.trim().length>0?n.jsxs("div",{className:"flex flex-1 items-center gap-1",children:[n.jsx("div",{className:"flex-1",children:b(!1)}),n.jsx(G,{variant:"ghost",icon:n.jsx(Ue,{className:"size-5"}),onClick:h,"aria-label":"Close search",className:"min-h-11 min-w-11 shrink-0 px-0"})]}):n.jsxs(n.Fragment,{children:[v,n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle",children:m}),n.jsx(G,{variant:"ghost",icon:n.jsx(sn,{className:"size-5"}),onClick:()=>u(!0),"aria-label":"Search",className:"min-h-11 min-w-11 shrink-0 px-0"})]}):n.jsxs(n.Fragment,{children:[v,n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle",children:m})]})})})}const N1=(e,t)=>e==="vip"?"vip":e==="unknown"&&t==="md"?"unknown-pill":"hidden",yc=({senderTrust:e,size:t="sm",className:s})=>{const a=N1(e,t);return a==="vip"?n.jsx(pt,{className:H("text-warning shrink-0",t==="sm"&&"size-3.5",t==="md"&&"size-4",s),"aria-label":"VIP sender","data-testid":"sender-trust-vip"}):a==="unknown-pill"?n.jsx("span",{className:H("inline-flex items-center rounded border border-dashed border-fg-subtle/40 font-medium uppercase tracking-wide text-fg-muted/80 shrink-0","px-2 py-0.5 text-xs",s),title:"First message from this sender","aria-label":"First message from this sender","data-testid":"sender-trust-unknown",children:"new"}):null};function ni(e,t){const s=t?.trim();if(!s)return e;const a=e.toLowerCase(),r=s.toLowerCase(),o=[];let i=0,l=a.indexOf(r,i),u=0;for(;l!==-1;)l>i&&o.push(e.slice(i,l)),o.push(n.jsx("mark",{className:"bg-transparent font-semibold text-fg",children:e.slice(l,l+r.length)},u++)),i=l+r.length,l=a.indexOf(r,i);return i<e.length&&o.push(e.slice(i)),o}function E1({result:e,onClick:t,query:s,showFolder:a=!0}){const r=a&&e.folder?e0(e.folder):void 0;return n.jsxs("button",{type:"button",onClick:t,className:"flex w-full flex-col gap-0.5 border-b border-line px-row-inset py-2.5 text-left transition-colors hover:bg-surface-sunken",children:[n.jsxs("div",{className:"flex items-baseline gap-2",children:[n.jsx("span",{className:H("min-w-0 flex-1 truncate text-sm",e.unread?"font-semibold text-fg":"font-medium text-fg-muted"),children:e.sender}),n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.date})]}),n.jsxs("div",{className:"flex items-center gap-1.5",children:[n.jsx("span",{className:H("min-w-0 flex-1 truncate text-sm",e.unread?"text-fg":"text-fg-muted"),children:ni(e.subject,s)}),e.flagged&&n.jsx(Qm,{className:"size-3.5 shrink-0 fill-warning text-warning"})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-subtle",children:ni(e.snippet,s)}),r&&n.jsx(st,{tone:"neutral",className:"shrink-0",children:r}),e.category&&n.jsx(st,{tone:e.category.tone??"neutral",className:"shrink-0",children:e.category.label}),e.matchedChunkLabel&&n.jsx(st,{tone:"neutral",className:"shrink-0",children:`matched: ${e.matchedChunkLabel}`}),e.score!=null&&n.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.score.toFixed(2)})]})]})}const I1=e=>e===1?"result":"results";function T1({count:e,onScopeToSpam:t}){return n.jsx(Zt,{tone:"info",variant:"soft",className:"items-center justify-between gap-3 rounded-none border-b border-line",children:n.jsxs("div",{className:"flex items-center justify-between gap-3",children:[n.jsxs("p",{className:"min-w-0 text-xs text-fg-muted",children:[n.jsx("span",{className:"font-semibold text-fg tabular-nums",children:e})," ",`${I1(e)} from Spam`]}),n.jsx(G,{variant:"ghost",size:"sm",onClick:t,className:"shrink-0 text-accent",children:"Go to Spam"})]})})}const ai=6,R1={kind:"global"},M1=e=>e.kind==="folder"&&e.role==="junk",z1=e=>e.folder?.role==="junk";function kc(e){const t=[],s=[];for(const a of e)z1(a)?s.push(a):t.push(a);return{kept:t,spam:s}}function A1({section:e,query:t,onSelectResult:s,showFolder:a}){const[r,o]=c.useState(e.initialCollapsed??!1),[i,l]=c.useState(!1),u=e.results.length>ai,m=!i&&u?e.results.slice(0,ai):e.results,f=e.results.length-m.length;return n.jsxs("div",{children:[n.jsxs("button",{type:"button","aria-expanded":!r,onClick:()=>o(h=>!h),className:"sticky top-0 z-10 flex h-section-row w-full items-center gap-1.5 border-b border-line bg-surface-sunken px-row-inset text-left transition-colors hover:bg-surface",children:[n.jsx("span",{className:"flex-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e.label}),n.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:e.results.length}),n.jsx(Tt,{className:H("size-3 shrink-0 text-fg-subtle transition-transform duration-200",r?"rotate-0":"rotate-180")})]}),!r&&n.jsxs(n.Fragment,{children:[m.map(h=>n.jsx(E1,{result:h,query:t,showFolder:a,onClick:s?()=>s(h):void 0},h.id)),u&&n.jsxs("button",{type:"button",onClick:()=>l(h=>!h),className:"flex w-full items-center justify-center border-b border-line px-row-inset py-1.5 text-2xs font-medium text-accent transition-colors hover:bg-surface",children:[i?"Show less":`Show ${f} more`,!i&&n.jsx(Tt,{className:"ml-1 size-3"})]})]})]})}function wc({value:e,recentSearches:t,onPickRecent:s,sections:a,loading:r,onSelectResult:o,tokens:i,scope:l=R1}){if(!(e.trim().length>0))return t&&t.length>0?n.jsxs("div",{className:"flex flex-col",children:[n.jsx("h3",{className:"px-row-inset pb-1 pt-3 text-2xs font-semibold uppercase tracking-wide text-fg-subtle",children:"Recent searches"}),t.map(y=>n.jsxs("button",{type:"button",onClick:()=>s?.(y),className:"flex w-full items-center gap-2.5 border-b border-line px-row-inset py-2.5 text-left transition-colors hover:bg-surface-sunken",children:[n.jsx(qr,{className:"size-4 shrink-0 text-fg-subtle"}),n.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-fg-muted",children:y})]},y))]}):n.jsx("p",{className:"px-row-inset py-6 text-center text-sm text-fg-subtle",children:"Search across your mail by sender, subject or words in the message."});const d=i&&i.length>0&&n.jsx(t0,{tokens:i});if(r)return n.jsxs("div",{className:"flex flex-col",children:[d,n.jsx("div",{className:"flex flex-col gap-3 px-row-inset py-4",children:[0,1,2,3].map(y=>n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsx("div",{className:"h-3 w-1/3 animate-pulse rounded bg-surface-sunken"}),n.jsx("div",{className:"h-3 w-2/3 animate-pulse rounded bg-surface-sunken"}),n.jsx("div",{className:"h-2.5 w-1/2 animate-pulse rounded bg-surface-sunken"})]},y))})]});const m=l.kind==="global",f=M1(l)||l.kind==="collection",h=m||l.kind==="collection",b=(a??[]).map(y=>{if(f)return{section:y,spam:[]};const{kept:k,spam:w}=kc(y.results);return{section:{...y,results:k},spam:w}}),v=b.map(y=>y.section),p=b.reduce((y,k)=>y+k.spam.length,0),x=l.kind==="global"&&p>0&&l.onScopeToSpam!==void 0?n.jsx(T1,{count:p,onScopeToSpam:l.onScopeToSpam}):void 0;return v.some(y=>y.results.length>0)?n.jsxs("div",{className:"flex flex-col",children:[d,x,v.filter(y=>y.results.length>0).map(y=>n.jsx(A1,{section:y,query:e,showFolder:h,onSelectResult:o},y.id))]}):n.jsxs("div",{className:"flex flex-col",children:[d,x,n.jsxs("div",{className:"px-row-inset py-10 text-center",children:[n.jsxs("p",{className:"text-sm font-medium text-fg",children:["No matches for “",e,"”"]}),n.jsx("p",{className:"mt-1 text-xs text-fg-subtle",children:"Try a different word, or adjust the filters above."})]})]})}function D1({value:e,onChange:t,onClear:s,onCancel:a,filter:r,recentSearches:o,onPickRecent:i,sections:l,loading:u,onSelectResult:d,tokens:m,chips:f,onRemoveChip:h,scope:b}){const v=n.jsx(wc,{value:e,recentSearches:o,onPickRecent:i,sections:l,loading:u,onSelectResult:d,tokens:m,scope:b});return n.jsxs("article",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line bg-surface px-row-inset",children:[n.jsx("div",{className:"min-w-0 flex-1",children:n.jsx(Ur,{value:e,onChange:t,onClear:s,chips:f,onRemoveChip:h,globalFocusKey:!1,showClearButton:!1})}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Ue,{className:"size-4"}),onClick:a,"aria-label":"Clear and close search",className:"-mr-1 shrink-0"})]}),r?n.jsx(kr,{...r,children:v}):n.jsx("div",{className:"flex-1 overflow-y-auto",children:v})]})}const ri="w-full text-left px-3 py-2.5 min-h-11 flex items-center gap-2 transition-colors text-sm rounded-md focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-canvas",O1={searchPlaceholder:"Move to…",searchAriaLabel:"Filter folders",listAriaLabel:"Destination folders",currentSuffix:"(current folder)",currentTag:"current",emptyMessage:e=>`No folders match "${e}"`,optionLabel:e=>`Move to ${e}`},Ta=e=>{for(let t=0;t<e.length;t+=1)if(!e[t]?.isCurrent)return t;return-1},P1=e=>{for(let t=e.length-1;t>=0;t-=1)if(!e[t]?.isCurrent)return t;return-1},oi=(e,t,s)=>{const a=e.length;if(a<=0)return-1;const r=t<0?s===1?-1:a:t;for(let o=1;o<=a;o+=1){const i=((r+s*o)%a+a)%a;if(!e[i]?.isCurrent)return i}return-1},L1=(e,t)=>e.label.toLowerCase().includes(t)?!0:e.searchValue?.toLowerCase().includes(t)??!1,jc=({mailboxes:e,onSelect:t,onCancel:s,autoFocus:a=!1,labels:r})=>{const o={...O1,...r},[i,l]=c.useState(""),[u,d]=c.useState(()=>Ta(e)),m=c.useRef(null),f=c.useRef([]);c.useEffect(()=>{a&&m.current?.focus()},[a]);const h=i.trim().toLowerCase(),b=c.useMemo(()=>h?e.filter(g=>L1(g,h)):[...e],[e,h]);c.useEffect(()=>{d(g=>g>=0&&g<b.length&&!b[g]?.isCurrent?g:Ta(b))},[b]),c.useEffect(()=>{if(u<0)return;const g=f.current[u];g&&document.activeElement!==m.current&&g.focus()},[u]);const v=c.useCallback(()=>{if(u<0)return;const g=b[u];!g||g.isCurrent||t(g.id)},[u,b,t]),p=c.useCallback(g=>{switch(g.key){case"ArrowDown":g.preventDefault(),d(y=>oi(b,y,1));return;case"ArrowUp":g.preventDefault(),d(y=>oi(b,y,-1));return;case"Home":g.preventDefault(),d(Ta(b));return;case"End":g.preventDefault(),d(P1(b));return;case"Enter":case" ":g.preventDefault(),v();return;case"Escape":g.preventDefault(),s?.();return;default:return}},[b,v,s]),x=c.useCallback(g=>{if(g.key==="ArrowDown"){if(g.preventDefault(),b.length===0)return;f.current[u>=0?u:0]?.focus();return}g.key==="Escape"&&(g.preventDefault(),s?.())},[b.length,u,s]);return n.jsxs("div",{className:"flex flex-col",children:[n.jsx(wr,{variant:"inline",className:"border-b border-line px-3 py-2",icon:n.jsx(sn,{className:"size-4","aria-hidden":"true"}),ref:m,type:"search",value:i,onChange:g=>l(g.target.value),onKeyDown:x,placeholder:o.searchPlaceholder,"aria-label":o.searchAriaLabel}),n.jsx("div",{className:"flex-1 overflow-y-auto py-1",role:"listbox","aria-label":o.listAriaLabel,onKeyDown:p,children:b.length===0?n.jsx("div",{className:"px-3 py-3 text-sm text-fg-muted","aria-live":"polite",children:o.emptyMessage(i)}):b.map((g,y)=>{const k=g.isCurrent??!1,w=y===u;return k?n.jsx("div",{children:n.jsxs("div",{role:"option","aria-selected":!1,"aria-current":"true","aria-label":`${g.label} ${o.currentSuffix}`,className:H(ri,"opacity-60 bg-surface-sunken/40"),children:[n.jsx("span",{className:"truncate flex-1",children:g.label}),n.jsx("span",{className:"text-xs text-fg-muted shrink-0",children:o.currentTag})]})},g.id):n.jsx("div",{children:n.jsx("button",{ref:N=>{f.current[y]=N},type:"button",role:"option","aria-selected":!1,tabIndex:w?0:-1,onClick:()=>t(g.id),onFocus:()=>d(y),"aria-label":o.optionLabel(g.label),className:H(ri,"hover:bg-surface-raised"),children:n.jsx("span",{className:"truncate flex-1",children:g.label})})},g.id)})})]})},$1={queued:{icon:qr,label:"Queued",className:"text-warning"},sending:{icon:bt,label:"Sending…",className:"text-accent-2",spin:!0},sent:{icon:Xl,label:"Sent",className:"text-positive"},failed:{icon:Jt,label:"Failed",className:"text-danger"},blocked:{icon:jr,label:"Blocked",className:"text-warning"}};function ii({status:e,iconOnly:t,className:s}){const a=$1[e],r=a.icon;return n.jsxs("span",{className:H("inline-flex items-center gap-1.5 text-xs font-medium",a.className,s),children:[n.jsx(r,{className:H("size-4",a.spin&&"animate-spin")}),!t&&a.label]})}const F1=(e,t)=>t?"bg-accent-2-soft":e==="failed"?"bg-danger-soft":e==="blocked"?"bg-warning/10":"";function _1({recipients:e,subject:t,time:s,status:a,error:r,selected:o,onSelect:i,onRetry:l,retrying:u,onEdit:d,onDelete:m,deleting:f}){const h=a==="failed"||a==="blocked";return n.jsxs("div",{className:H("flex items-start gap-3 border-b border-line px-4 py-3 transition-colors hover:bg-surface-raised",F1(a,o)),children:[n.jsxs("button",{type:"button",...xr,onClick:i,className:"flex flex-1 min-w-0 items-start gap-3 text-left",children:[n.jsx("div",{className:"mt-0.5 shrink-0",children:n.jsx(ii,{status:a,iconOnly:!0})}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[n.jsx("span",{className:"truncate text-sm font-medium",children:e}),n.jsx("span",{className:"shrink-0 text-xs text-fg-muted",children:s})]}),n.jsx("div",{className:"truncate text-sm",children:t||"No subject"}),n.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[n.jsx(ii,{status:a}),r&&n.jsxs("span",{className:"truncate text-xs text-fg-muted",children:["— ",r]})]})]})]}),h&&n.jsx("div",{className:"shrink-0",children:n.jsx(X0,{actions:[...a==="failed"&&l?[{label:"Retry sending",iconOnly:!0,icon:n.jsx(am,{className:"size-3.5"}),busy:u,onClick:l}]:[],{label:"Edit as draft",iconOnly:!0,icon:n.jsx(en,{className:"size-3.5"}),onClick:d}],destructive:{label:"Delete message",iconOnly:!0,icon:n.jsx(nt,{className:"size-3.5"}),busy:f,confirm:{prompt:"Delete this message?",confirmLabel:"Delete"},onClick:m}})})]})}const q1=e=>{const[t,s]=c.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches);return c.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const a=window.matchMedia(e);s(a.matches);const r=o=>s(o.matches);return a.addEventListener("change",r),()=>a.removeEventListener("change",r)},[e]),t},B1=({children:e,onRefresh:t,isRefreshing:s})=>q1("(min-width: 1024px)")?e:n.jsx(s0,{onRefresh:t,isPullable:!s,children:e}),K1=({text:e,html:t,senderName:s,date:a})=>{const[r,o]=c.useState(!1);if(!e&&!t)return null;const i=[s,a].filter(Boolean).join(" on ");return n.jsxs("div",{className:"mt-2 px-3 pb-2",children:[n.jsxs("button",{type:"button",onClick:()=>o(!r),"aria-expanded":r,className:"flex items-center gap-1 text-xs text-fg-muted hover:text-fg transition-colors",children:[r?n.jsx(Tt,{className:"size-3"}):n.jsx(js,{className:"size-3"}),i?`${i} wrote:`:"Show quoted text"]}),r&&n.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?n.jsx("div",{dangerouslySetInnerHTML:{__html:t}}):e.split(`
75
+ `).map((l,u)=>n.jsx("p",{className:"min-h-[1.2em]",children:l},u))})]})},U1=e=>e===1?"message":"messages";function H1({count:e,onReview:t,onDismiss:s,actionLabel:a="Review & rescue"}){return n.jsx(Zt,{tone:"info",variant:"soft",onDismiss:s,children:n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsxs("p",{className:"flex items-start gap-2 text-sm text-fg",children:[n.jsx(an,{className:"mt-0.5 size-4 shrink-0 text-positive","aria-hidden":!0}),n.jsxs("span",{children:[n.jsx("span",{className:"font-semibold text-fg",children:`${e} ${U1(e)} here`})," ","may not be spam — they're from senders we can verify."]})]}),n.jsx(G,{variant:"primary",size:"sm",onClick:t,className:"self-start",children:a})]})})}function W1({candidate:e,selected:t,onToggle:s,hideSender:a=!1}){const{senderName:r,senderAddress:o,subject:i,snippet:l,trustReason:u,trustSubReason:d,senderTrust:m}=e;return n.jsxs("label",{className:H("flex w-full cursor-pointer items-start gap-3 px-3 py-2.5 text-left transition-colors",a&&"pl-11",t?"bg-positive/10":"bg-surface hover:bg-surface-sunken"),children:[n.jsx(on,{className:"mt-0.5",checked:t,onChange:s,"aria-label":`${t?"Deselect":"Select"} ${a?i:`message from ${r}`}`}),!a&&n.jsx(ct,{name:r,email:o,size:"sm"}),n.jsxs("span",{className:"min-w-0 flex-1",children:[!a&&n.jsxs("span",{className:"flex items-center gap-1.5",children:[n.jsx("span",{className:"truncate text-sm font-medium text-fg",children:r}),m&&n.jsx(yc,{senderTrust:m,size:"sm"}),n.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:o})]}),n.jsx("span",{className:"block truncate text-sm text-fg-muted",children:i}),n.jsx("span",{className:"block line-clamp-1 text-xs text-fg-subtle",children:l}),!a&&n.jsxs("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[n.jsxs(st,{tone:"positive",children:[n.jsx(an,{className:"size-3","aria-hidden":!0}),u]}),n.jsx("span",{className:"text-2xs text-fg-subtle",children:d})]})]})]})}const V1=e=>{const t=new Map,s=[];for(const a of e){const r=(a.senderAddress||a.senderName).toLowerCase(),o=t.get(r);if(o){o.messages.push(a);continue}t.set(r,{key:r,senderName:a.senderName,senderAddress:a.senderAddress,trustReason:a.trustReason,trustSubReason:a.trustSubReason,senderTrust:a.senderTrust,messages:[a]}),s.push(r)}return s.map(a=>t.get(a)).sort((a,r)=>r.messages.length-a.messages.length)},Q1=(e,t)=>{const s=e.messages.filter(a=>t.has(a.id)).length;return s===0?"none":s===e.messages.length?"all":"some"},li=e=>e===1?"message":"messages";function Y1({group:e,selected:t,onToggleGroup:s,onToggleMessage:a}){const[r,o]=c.useState(!1),i=Q1(e,t),l=e.messages.length,u=r?Tt:js;return n.jsxs("div",{className:H(i!=="none"?"bg-positive/10":"bg-surface"),children:[n.jsxs("div",{className:"flex w-full items-start gap-3 px-3 py-2.5",children:[n.jsx(on,{className:"mt-0.5",checked:i==="all",indeterminate:i==="some",onChange:()=>s(e,i!=="all"),"aria-label":`${i==="all"?"Deselect":"Select"} all ${l} ${li(l)} from ${e.senderName}`}),n.jsx(ct,{name:e.senderName,email:e.senderAddress,size:"sm"}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsxs("div",{className:"flex items-center gap-1.5",children:[n.jsx("span",{className:"truncate text-sm font-medium text-fg",children:e.senderName}),e.senderTrust&&n.jsx(yc,{senderTrust:e.senderTrust,size:"sm"}),n.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:e.senderAddress})]}),n.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[n.jsxs(st,{tone:"positive",children:[n.jsx(an,{className:"size-3","aria-hidden":!0}),e.trustReason]}),n.jsx("span",{className:"text-2xs text-fg-subtle",children:e.trustSubReason})]})]}),n.jsxs("button",{type:"button",onClick:()=>o(d=>!d),"aria-expanded":r,className:"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-2xs text-fg-muted transition-colors hover:bg-surface-sunken hover:text-fg",children:[`${l} ${li(l)}`,n.jsx(u,{className:"size-3.5","aria-hidden":!0})]})]}),r&&n.jsx("div",{className:"divide-y divide-line border-t border-line",children:e.messages.map(d=>n.jsx(W1,{candidate:d,selected:t.has(d.id),onToggle:()=>a(d.id),hideSender:!0},d.id))})]})}const Hr=e=>e===1?"message":"messages",G1=(e,t)=>`Moves ${e===1?"this message":`these ${e} ${Hr(e)}`} out of Spam to ${t} now. Nothing later.`,tr=(e,t)=>e.find(s=>s.id===t)?.label??"Inbox";function X1(){return n.jsx(Zt,{tone:"info",variant:"soft",children:n.jsx("p",{className:"text-2xs text-fg-muted",children:"We list a message here only when we can confirm the sender is who they say — usually someone you've emailed before, write to often, or a service that consistently checks out. We never guess from words in the subject. Anything we can't confirm stays in Spam."})})}function J1({candidates:e,selected:t,onToggle:s,onToggleGroup:a,onSelectAll:r,onSelectNone:o,onContinue:i,onCancel:l}){const[u,d]=c.useState(!1),m=t.size,f=c.useMemo(()=>V1(e),[e]);return n.jsxs("div",{className:"flex min-h-0 flex-col",children:[n.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[n.jsxs("div",{className:"flex items-start justify-between gap-2",children:[n.jsxs("h2",{className:"flex items-center gap-2 text-sm font-semibold text-fg",children:[n.jsx(an,{className:"size-4 text-positive","aria-hidden":!0}),"Rescue from Spam"]}),n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Y0,{className:"size-3.5"}),onClick:()=>d(h=>!h),className:"-mr-1.5 -mt-0.5",children:"Why these?"})]}),n.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"These look safe — from senders we can verify. Uncheck any sender that belongs in Spam, or open a sender to pick individual messages."}),u&&n.jsx("div",{className:"mt-2",children:n.jsx(X1,{})})]}),n.jsxs("div",{className:"flex items-center justify-between px-row-inset pb-1.5",children:[n.jsx("span",{className:"text-2xs font-medium text-fg-muted",children:`${m} of ${e.length} selected · ${f.length} ${f.length===1?"sender":"senders"}`}),n.jsxs("span",{className:"flex gap-1",children:[n.jsx(G,{variant:"ghost",size:"sm",onClick:r,children:"Select all"}),n.jsx(G,{variant:"ghost",size:"sm",onClick:o,children:"Select none"})]})]}),n.jsx("div",{className:"min-h-0 flex-1 divide-y divide-line overflow-y-auto border-y border-line",children:f.map(h=>n.jsx(Y1,{group:h,selected:t,onToggleGroup:a,onToggleMessage:s},h.key))}),n.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[n.jsx(G,{variant:"primary",onClick:i,className:"h-11 w-full font-semibold",children:`Continue with ${m} ${Hr(m)}`}),n.jsx(G,{variant:"ghost",onClick:l,className:"h-11 w-full",children:"Cancel"})]})]})}function Z1({count:e,folders:t,destination:s,onPick:a,onMove:r,onBack:o}){const[i,l]=c.useState(!1);return n.jsxs("div",{className:"flex min-h-0 flex-col",children:[n.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[n.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Where should they go?"}),n.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"Pick a folder, then we move them out of Spam."})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-row-inset py-2",children:i?n.jsx("div",{className:"overflow-hidden rounded-xl border border-line bg-surface",children:n.jsx(jc,{mailboxes:t,autoFocus:!0,onSelect:u=>{a(u),l(!1)},onCancel:()=>l(!1)})}):n.jsxs("div",{className:"rounded-xl border border-line bg-surface-sunken p-3",children:[n.jsx("p",{className:"text-2xs text-fg-subtle",children:"Destination"}),n.jsx("p",{className:"mt-0.5 text-sm font-medium text-fg",children:tr(t,s)}),n.jsx(G,{variant:"ghost",size:"sm",onClick:()=>l(!0),className:"mt-2 px-0",children:"Move to a different folder"})]})}),n.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[n.jsx("p",{className:"text-2xs text-fg-subtle",children:G1(e,tr(t,s))}),n.jsx(G,{variant:"primary",onClick:r,className:"h-11 w-full font-semibold",children:`Move ${e} out of Spam`}),n.jsx(G,{variant:"ghost",onClick:o,className:"h-11 w-full",children:"Back"})]})]})}function eh({count:e,destinationLabel:t,onClose:s}){return n.jsxs("div",{className:"flex min-h-0 flex-col",children:[n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-row-inset py-10 text-center",children:[n.jsx(Lr,{className:"size-10 text-positive","aria-hidden":!0}),n.jsx("p",{className:"text-base font-semibold text-fg",children:`Moved ${e} ${Hr(e)} out of Spam.`}),n.jsx("p",{className:"text-2xs text-fg-subtle",children:`You'll find them in ${t}.`})]}),n.jsx("div",{className:"border-t border-line bg-surface px-row-inset py-3",children:n.jsx(G,{variant:"primary",onClick:s,className:"h-11 w-full font-semibold",children:"Done"})})]})}function th({open:e,candidates:t,defaultDestinationId:s,availableFolders:a,onConfirmMove:r,onCancel:o}){const[i,l]=c.useState("review"),[u,d]=c.useState(()=>e?new Set(t.map(k=>k.id)):new Set),[m,f]=c.useState(s),[h,b]=c.useState(0),v=c.useRef(!1);c.useEffect(()=>{e&&!v.current&&(l("review"),d(new Set(t.map(k=>k.id))),f(s),b(0)),v.current=e},[e,t,s]);const p=u.size,x=k=>{d(w=>{const N=new Set(w);return N.has(k)?N.delete(k):N.add(k),N})},g=(k,w)=>{d(N=>{const T=new Set(N);for(const C of k.messages)w?T.add(C.id):T.delete(C.id);return T})},y=()=>{const k=Array.from(u);b(k.length),r(k,m),l("done")};return n.jsxs(vc,{open:e,onClose:o,dismissLabel:"Close rescue",children:[i==="review"&&n.jsx(J1,{candidates:t,selected:u,onToggle:x,onToggleGroup:g,onSelectAll:()=>d(new Set(t.map(k=>k.id))),onSelectNone:()=>d(new Set),onContinue:()=>l("destination"),onCancel:o}),i==="destination"&&n.jsx(Z1,{count:p,folders:a,destination:m,onPick:f,onMove:y,onBack:()=>l("review")}),i==="done"&&n.jsx(eh,{count:h,destinationLabel:tr(a,m),onClose:o})]})}const ci=e=>e.toLocaleString(),Hs=56,ui=320,sh=320,nh="cubic-bezier(0.32, 0.9, 0.3, 1)",ah=.5;function wn(e){return Math.sign(e)*Math.sqrt(Math.abs(e))*4}function rh({expanded:e,delta:t,velocity:s,expandedHeight:a,teaserHeight:r,flickVelocity:o=ah}){if(Math.abs(s)>o)return s<0;const i=(a-r)/2;return e?t<i:t<-i}function oh({count:e,mode:t="idle",onCancel:s,onDelete:a,onJunk:r,onMarkRead:o,onSelectSimilar:i,onSomethingElse:l,moveSlot:u,isBusy:d=!1,selectAll:m,statusLabel:f,progress:h,notice:b,startExpanded:v=!1}){const[p,x]=c.useState(v),g=c.useRef(null),[y,k]=c.useState(ui),w=t==="counting"||t==="running";c.useEffect(()=>{w&&x(!0)},[w]),c.useLayoutEffect(()=>{const L=g.current;if(!L)return;const B=()=>k(L.offsetHeight);B();const _=new ResizeObserver(B);return _.observe(L),()=>_.disconnect()},[]);const[N,T]=c.useState(null),C=c.useRef(null),S=c.useRef(!1),D=c.useCallback(L=>{w||(L.currentTarget.setPointerCapture(L.pointerId),C.current={startY:L.clientY,lastY:L.clientY,lastT:L.timeStamp,velocity:0},S.current=!1,T(0))},[w]),M=c.useCallback(L=>{const B=C.current;if(!B)return;const _=L.timeStamp-B.lastT;_>0&&(B.velocity=(L.clientY-B.lastY)/_),B.lastY=L.clientY,B.lastT=L.timeStamp;const X=L.clientY-B.startY;Math.abs(X)>4&&(S.current=!0);const ee=y-Hs,Y=p?X<0?wn(X):Math.min(X,ee+wn(Math.max(0,X-ee))):X>0?wn(X):Math.max(X,-ee+wn(Math.min(0,X+ee)));T(Y)},[p,y]),A=c.useCallback(()=>{const L=C.current;C.current=null,L&&(T(null),x(rh({expanded:p,delta:L.lastY-L.startY,velocity:L.velocity,expandedHeight:y,teaserHeight:Hs})))},[p,y]),P=y-Hs,E=p?0:P,j=N!==null,z=E+(N??0),O=j?"none":`transform ${sh}ms ${nh}`,I=m?.checked?`All ${ci(e)} loaded selected`:`${ci(e)} ${e===1?"message":"messages"} selected`,F=t==="idle"||t==="escalated",R=t==="idle";return n.jsxs("div",{ref:g,"data-selection-sheet":"",className:"absolute inset-x-0 bottom-0 z-30 flex select-none flex-col rounded-t-2xl border-t border-line bg-surface shadow-2xl shadow-black/40",style:{maxHeight:`min(${ui}px, 38dvh)`,minHeight:`${Hs}px`,transform:`translateY(${z}px)`,transition:O},children:[n.jsxs("div",{role:"slider","aria-label":p?"Collapse selection actions":"Expand selection actions","aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":p?1:0,tabIndex:0,onPointerDown:D,onPointerMove:M,onPointerUp:A,onPointerCancel:A,onClick:()=>{if(S.current){S.current=!1;return}!j&&!w&&x(L=>!L)},className:H("flex touch-none flex-col items-center pt-2",w?"":"cursor-grab active:cursor-grabbing"),children:[n.jsx("div",{className:"mb-1.5 h-1 w-10 rounded-full bg-fg-subtle/40"}),n.jsxs("div",{className:"flex w-full items-center gap-2 px-4 pb-3",children:[n.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",role:"status","aria-live":"polite",children:f??I}),p?n.jsxs(n.Fragment,{children:[o&&!d&&t!=="counting"&&n.jsx(G,{variant:"ghost",size:"touch",icon:n.jsx(Is,{className:"size-4"}),onPointerDown:L=>L.stopPropagation(),onClick:L=>{L.stopPropagation(),o()},"aria-label":"Mark as read",className:"-my-2 shrink-0"}),n.jsx(G,{variant:"ghost",size:"touch",icon:n.jsx(Ue,{className:"size-4"}),onPointerDown:L=>L.stopPropagation(),onClick:L=>{L.stopPropagation(),s()},"aria-label":"Cancel selection",className:"-my-2 -mr-2 shrink-0"})]}):n.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-fg-subtle",children:[n.jsx("span",{children:"Swipe up for actions"}),n.jsx(Vm,{className:"size-4"})]})]})]}),n.jsxs("div",{inert:p?void 0:!0,className:"flex min-h-0 flex-1 flex-col overflow-hidden px-4 pb-4",children:[h&&n.jsx("div",{className:"mb-3",children:n.jsx(Kr,{value:h.value,max:h.max,tone:h.tone})}),m&&t!=="running"&&n.jsxs("label",{className:"mb-3 flex min-h-11 cursor-pointer items-center gap-3 text-sm font-medium text-fg-muted",children:[n.jsx(on,{"aria-label":"Select all",checked:m.checked,indeterminate:m.indeterminate,onChange:m.onChange}),"Select all loaded"]}),F&&n.jsxs("div",{className:"mb-3 flex items-stretch justify-around gap-1 border-b border-line pb-3",children:[n.jsx(G,{variant:"ghost",onClick:a,icon:d?n.jsx(bt,{className:"size-5 animate-spin"}):n.jsx(nt,{className:"size-5 text-danger"}),"aria-label":"Move selected messages to Trash","aria-busy":d||void 0,className:"h-auto flex-1 flex-col gap-1 px-0 py-1.5 text-[11px]",children:"Delete"}),u&&n.jsxs("div",{className:"flex flex-1 flex-col items-center gap-1",children:[u,n.jsx("span",{"aria-hidden":"true",className:"text-[11px] text-fg-muted",children:"Move"})]}),r&&n.jsx(G,{variant:"ghost",onClick:r,icon:n.jsx(Ts,{className:"size-5"}),"aria-label":"Move selected messages to Junk",className:"h-auto flex-1 flex-col gap-1 px-0 py-1.5 text-[11px]",children:"Junk"})]}),R&&(i||l)&&n.jsxs("div",{className:"flex flex-col gap-2",children:[i&&n.jsxs(G,{variant:"primary",onClick:i,className:"h-auto flex-col items-start gap-0 px-4 py-2.5 text-left",children:[n.jsx("span",{className:"text-sm font-semibold leading-tight",children:"Select similar messages"}),n.jsx("span",{className:"text-xs opacity-80",children:"find more like these"})]}),l&&n.jsxs(G,{variant:"secondary",onClick:l,className:"h-auto flex-col items-start gap-0 px-4 py-2.5 text-left",children:[n.jsx("span",{className:"text-sm font-medium leading-tight",children:"Something else"}),n.jsx("span",{className:"text-xs text-fg-subtle",children:"just deal with these"})]})]}),b&&n.jsx(Zt,{tone:b.tone,variant:"soft",role:"status","aria-live":"polite",className:H(F||h?"mt-1":"mt-0"),children:n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[b.text&&n.jsx("span",{children:b.text}),b.action&&n.jsx(G,{variant:"ghost",size:"md",onClick:b.action.onClick,className:"-my-1 min-h-11 shrink-0",children:b.action.label})]})})]})]})}const Wr=[{id:"all",label:"All",tone:"neutral"},{id:"personal",label:"Personal",tone:"accent"},{id:"transactional",label:"Transactional",tone:"positive"},{id:"newsletter",label:"Newsletter",tone:"neutral"},{id:"marketing",label:"Marketing",tone:"warning"},{id:"social",label:"Social",tone:"warning"},{id:"automated",label:"Automated",tone:"neutral"}],Sc={id:"unread",label:"Unread"},ih={id:"flagged",label:"Starred"},Cc={id:"attachment",label:"Has attachment"};function lh(e){if(!(e.length<=1))return e.map(t=>({id:t.id,label:t.label,count:t.count,active:t.active}))}function ch(e=[]){return{categories:[...Wr],filters:n0,sources:lh(e)}}function uh(){return{categories:[...Wr],filters:[Sc,ih,Cc]}}function dh(){return{categories:[...Wr],filters:[Sc,Cc]}}function It(e,t,{checkForDefaultPrevented:s=!0}={}){return function(r){if(e?.(r),s===!1||!r||!r.defaultPrevented)return t?.(r)}}function di(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function mh(...e){return t=>{let s=!1;const a=e.map(r=>{const o=di(r,t);return!s&&typeof o=="function"&&(s=!0),o});if(s)return()=>{for(let r=0;r<a.length;r++){const o=a[r];typeof o=="function"?o():di(e[r],null)}}}}function ss(...e){return c.useCallback(mh(...e),e)}function fh(e,t=[]){let s=[];function a(o,i){const l=c.createContext(i);l.displayName=o+"Context";const u=s.length;s=[...s,i];const d=f=>{const{scope:h,children:b,...v}=f,p=h?.[e]?.[u]||l,x=c.useMemo(()=>v,Object.values(v));return n.jsx(p.Provider,{value:x,children:b})};d.displayName=o+"Provider";function m(f,h,b={}){const{optional:v=!1}=b,p=h?.[e]?.[u]||l,x=c.useContext(p);if(x)return x;if(i!==void 0)return i;if(!v)throw new Error(`\`${f}\` must be used within \`${o}\``)}return[d,m]}const r=()=>{const o=s.map(i=>c.createContext(i));return function(l){const u=l?.[e]||o;return c.useMemo(()=>({[`__scope${e}`]:{...l,[e]:u}}),[l,u])}};return r.scopeName=e,[a,hh(r,...t)]}function hh(...e){const t=e[0];if(e.length===1)return t;const s=()=>{const a=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(o){const i=a.reduce((l,{useScope:u,scopeName:d})=>{const f=u(o)[`__scope${d}`];return{...l,...f}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return s.scopeName=t.scopeName,s}var Gs=globalThis?.document?c.useLayoutEffect:()=>{},gh=Sr[" useInsertionEffect ".trim().toString()]||Gs;function ph({prop:e,defaultProp:t,onChange:s=()=>{},caller:a}){const[r,o,i]=bh({defaultProp:t,onChange:s}),l=e!==void 0,u=l?e:r;{const m=c.useRef(e!==void 0);c.useEffect(()=>{const f=m.current;f!==l&&console.warn(`${a} is changing from ${f?"controlled":"uncontrolled"} to ${l?"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.`),m.current=l},[l,a])}const d=c.useCallback(m=>{if(l){const f=xh(m)?m(e):m;f!==e&&i.current?.(f)}else o(m)},[l,e,o,i]);return[u,d]}function bh({defaultProp:e,onChange:t}){const[s,a]=c.useState(e),r=c.useRef(s),o=c.useRef(t);return gh(()=>{o.current=t},[t]),c.useEffect(()=>{r.current!==s&&(o.current?.(s),r.current=s)},[s,r]),[s,a,o]}function xh(e){return typeof e=="function"}function Vr(e){const t=c.forwardRef((s,a)=>{let{children:r,...o}=s,i=null,l=!1;const u=[];mi(r)&&typeof jn=="function"&&(r=jn(r._payload)),c.Children.forEach(r,h=>{if(jh(h)){l=!0;const b=h;let v="child"in b.props?b.props.child:b.props.children;mi(v)&&typeof jn=="function"&&(v=jn(v._payload)),i=yh(b,v),u.push(i?.props?.children)}else u.push(h)}),i?i=c.cloneElement(i,void 0,u):!l&&c.Children.count(r)===1&&c.isValidElement(r)&&(i=r);const d=i?wh(i):void 0,m=ss(a,d);if(!i){if(r||r===0)throw new Error(l?Eh(e):Nh(e));return r}const f=kh(o,i.props??{});return i.type!==c.Fragment&&(f.ref=a?m:d),c.cloneElement(i,f)});return t.displayName=`${e}.Slot`,t}var Pk=Vr("Slot"),vh=Symbol.for("radix.slottable"),yh=(e,t)=>{if("child"in e.props){const s=e.props.child;return c.isValidElement(s)?c.cloneElement(s,void 0,e.props.children(s.props.children)):null}return c.isValidElement(t)?t:null};function kh(e,t){const s={...t};for(const a in t){const r=e[a],o=t[a];/^on[A-Z]/.test(a)?r&&o?s[a]=(...l)=>{const u=o(...l);return r(...l),u}:r&&(s[a]=r):a==="style"?s[a]={...r,...o}:a==="className"&&(s[a]=[r,o].filter(Boolean).join(" "))}return{...e,...s}}function wh(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}function jh(e){return c.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===vh}var Sh=Symbol.for("react.lazy");function mi(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Sh&&"_payload"in e&&Ch(e._payload)}function Ch(e){return typeof e=="object"&&e!==null&&"then"in e}var Nh=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Eh=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,jn=Sr[" use ".trim().toString()],Ih=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],vt=Ih.reduce((e,t)=>{const s=Vr(`Primitive.${t}`),a=c.forwardRef((r,o)=>{const{asChild:i,...l}=r,u=i?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),n.jsx(u,{...l,ref:o})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function Th(e,t){e&&Cr.flushSync(()=>e.dispatchEvent(t))}function Xs(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>((...s)=>t.current?.(...s)),[])}var Rh="DismissableLayer",sr="dismissableLayer.update",Mh="dismissableLayer.pointerDownOutside",zh="dismissableLayer.focusOutside",fi,Qr=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Nc=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:s=!1,deferPointerDownOutside:a=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:u,...d}=e,m=c.useContext(Qr),[f,h]=c.useState(null),b=f?.ownerDocument??globalThis?.document,[,v]=c.useState({}),p=ss(t,h),x=Array.from(m.layers),[g]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),y=g?x.indexOf(g):-1,k=f?x.indexOf(f):-1,w=m.layersWithOutsidePointerEventsDisabled.size>0,N=k>=y,T=c.useRef(!1),C=Lh(A=>{o?.(A),l?.(A),A.defaultPrevented||u?.()},{ownerDocument:b,deferPointerDownOutside:a,isDeferredPointerDownOutsideRef:T,dismissableSurfaces:m.dismissableSurfaces,shouldHandlePointerDownOutside:c.useCallback(A=>{if(!(A instanceof Node))return!1;const P=[...m.branches].some(E=>E.contains(A));return N&&!P},[m.branches,N])}),S=$h(A=>{if(a&&T.current)return;const P=A.target;[...m.branches].some(j=>j.contains(P))||(i?.(A),l?.(A),A.defaultPrevented||u?.())},b),D=f?k===x.length-1:!1,M=Xs(A=>{A.key==="Escape"&&(r?.(A),!A.defaultPrevented&&u&&(A.preventDefault(),u()))});return c.useEffect(()=>{if(D)return b.addEventListener("keydown",M,{capture:!0}),()=>b.removeEventListener("keydown",M,{capture:!0})},[b,D,M]),c.useEffect(()=>{if(f)return s&&(m.layersWithOutsidePointerEventsDisabled.size===0&&(fi=b.body.style.pointerEvents,b.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(f)),m.layers.add(f),hi(),()=>{s&&(m.layersWithOutsidePointerEventsDisabled.delete(f),m.layersWithOutsidePointerEventsDisabled.size===0&&(b.body.style.pointerEvents=fi))}},[f,b,s,m]),c.useEffect(()=>()=>{f&&(m.layers.delete(f),m.layersWithOutsidePointerEventsDisabled.delete(f),hi())},[f,m]),c.useEffect(()=>{const A=()=>v({});return document.addEventListener(sr,A),()=>document.removeEventListener(sr,A)},[]),n.jsx(vt.div,{...d,ref:p,style:{pointerEvents:w?N?"auto":"none":void 0,...e.style},onFocusCapture:It(e.onFocusCapture,S.onFocusCapture),onBlurCapture:It(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:It(e.onPointerDownCapture,C.onPointerDownCapture)})});Nc.displayName=Rh;var Ah="DismissableLayerBranch",Dh=c.forwardRef((e,t)=>{const s=c.useContext(Qr),a=c.useRef(null),r=ss(t,a);return c.useEffect(()=>{const o=a.current;if(o)return s.branches.add(o),()=>{s.branches.delete(o)}},[s.branches]),n.jsx(vt.div,{...e,ref:r})});Dh.displayName=Ah;function Oh(){const e=c.useContext(Qr),[t,s]=c.useState(null);return c.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),s}var Ph=()=>!0;function Lh(e,t){const{ownerDocument:s=globalThis?.document,deferPointerDownOutside:a=!1,isDeferredPointerDownOutsideRef:r,dismissableSurfaces:o,shouldHandlePointerDownOutside:i=Ph}=t,l=Xs(e),u=c.useRef(!1),d=c.useRef(!1),m=c.useRef(new Map),f=c.useRef(()=>{});return c.useEffect(()=>{function h(){d.current=!1,r.current=!1,m.current.clear()}function b(){return Array.from(m.current.values()).some(Boolean)}function v(k){if(!d.current)return;const w=k.target;w instanceof Node&&[...o].some(T=>T.contains(w))||m.current.set(k.type,!0),k.type==="click"&&window.setTimeout(()=>{d.current&&f.current()},0)}function p(k){d.current&&m.current.set(k.type,!1)}const x=k=>{if(k.target&&!u.current){let w=function(){s.removeEventListener("click",f.current);const T=b();h(),T||Ec(Mh,l,N,{discrete:!0})};if(!i(k.target)){s.removeEventListener("click",f.current),h(),u.current=!1;return}const N={originalEvent:k};d.current=!0,r.current=a&&k.button===0,m.current.clear(),!a||k.button!==0?w():(s.removeEventListener("click",f.current),f.current=w,s.addEventListener("click",f.current,{once:!0}))}else s.removeEventListener("click",f.current),h();u.current=!1},g=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const k of g)s.addEventListener(k,v,!0),s.addEventListener(k,p);const y=window.setTimeout(()=>{s.addEventListener("pointerdown",x)},0);return()=>{window.clearTimeout(y),s.removeEventListener("pointerdown",x),s.removeEventListener("click",f.current);for(const k of g)s.removeEventListener(k,v,!0),s.removeEventListener(k,p)}},[s,l,a,r,o,i]),{onPointerDownCapture:()=>u.current=!0}}function $h(e,t=globalThis?.document){const s=Xs(e),a=c.useRef(!1);return c.useEffect(()=>{const r=o=>{o.target&&!a.current&&Ec(zh,s,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,s]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function hi(){const e=new CustomEvent(sr);document.dispatchEvent(e)}function Ec(e,t,s,{discrete:a}){const r=s.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:s});t&&r.addEventListener(e,t,{once:!0}),a?Th(r,o):r.dispatchEvent(o)}var Sn=0,cs=null;function Fh(){c.useEffect(()=>{cs||(cs={start:gi(),end:gi()});const{start:e,end:t}=cs;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Sn++,()=>{Sn===1&&(cs?.start.remove(),cs?.end.remove(),cs=null),Sn=Math.max(0,Sn-1)}},[])}function gi(){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 Ra="focusScope.autoFocusOnMount",Ma="focusScope.autoFocusOnUnmount",pi={bubbles:!1,cancelable:!0},_h="FocusScope",Ic=c.forwardRef((e,t)=>{const{loop:s=!1,trapped:a=!1,onMountAutoFocus:r,onUnmountAutoFocus:o,...i}=e,[l,u]=c.useState(null),d=Xs(r),m=Xs(o),f=c.useRef(null),h=ss(t,u),b=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(a){let p=function(k){if(b.paused||!l)return;const w=k.target;l.contains(w)?f.current=w:St(f.current,{select:!0})},x=function(k){if(b.paused||!l)return;const w=k.relatedTarget;w!==null&&(l.contains(w)||St(f.current,{select:!0}))},g=function(k){if(document.activeElement===document.body)for(const N of k)N.removedNodes.length>0&&St(l)};document.addEventListener("focusin",p),document.addEventListener("focusout",x);const y=new MutationObserver(g);return l&&y.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",x),y.disconnect()}}},[a,l,b.paused]),c.useEffect(()=>{if(l){xi.add(b);const p=document.activeElement;if(!l.contains(p)){const g=new CustomEvent(Ra,pi);l.addEventListener(Ra,d),l.dispatchEvent(g),g.defaultPrevented||(qh(Wh(Tc(l)),{select:!0}),document.activeElement===p&&St(l))}return()=>{l.removeEventListener(Ra,d),setTimeout(()=>{const g=new CustomEvent(Ma,pi);l.addEventListener(Ma,m),l.dispatchEvent(g),g.defaultPrevented||St(p??document.body,{select:!0}),l.removeEventListener(Ma,m),xi.remove(b)},0)}}},[l,d,m,b]);const v=c.useCallback(p=>{if(!s&&!a||b.paused)return;const x=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,g=document.activeElement;if(x&&g){const y=p.currentTarget,[k,w]=Bh(y);k&&w?!p.shiftKey&&g===w?(p.preventDefault(),s&&St(k,{select:!0})):p.shiftKey&&g===k&&(p.preventDefault(),s&&St(w,{select:!0})):g===y&&p.preventDefault()}},[s,a,b.paused]);return n.jsx(vt.div,{tabIndex:-1,...i,ref:h,onKeyDown:v})});Ic.displayName=_h;function qh(e,{select:t=!1}={}){const s=document.activeElement;for(const a of e)if(St(a,{select:t}),document.activeElement!==s)return}function Bh(e){const t=Tc(e),s=bi(t,e),a=bi(t.reverse(),e);return[s,a]}function Tc(e){const t=[],s=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const r=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||r?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)t.push(s.currentNode);return t}function bi(e,t){const s=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const a of e)if(!(s?!a.checkVisibility({checkVisibilityCSS:!0}):Kh(a,{upTo:t})))return a}function Kh(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 Uh(e){return e instanceof HTMLInputElement&&"select"in e}function St(e,{select:t=!1}={}){if(e&&e.focus){const s=document.activeElement;e.focus({preventScroll:!0}),e!==s&&Uh(e)&&t&&e.select()}}var xi=Hh();function Hh(){let e=[];return{add(t){const s=e[0];t!==s&&s?.pause(),e=vi(e,t),e.unshift(t)},remove(t){e=vi(e,t),e[0]?.resume()}}}function vi(e,t){const s=[...e],a=s.indexOf(t);return a!==-1&&s.splice(a,1),s}function Wh(e){return e.filter(t=>t.tagName!=="A")}var Vh=Sr[" useId ".trim().toString()]||(()=>{}),Qh=0;function za(e){const[t,s]=c.useState(Vh());return Gs(()=>{s(a=>a??String(Qh++))},[e]),e||(t?`radix-${t}`:"")}var Yh="Portal",Rc=c.forwardRef((e,t)=>{const{container:s,...a}=e,[r,o]=c.useState(!1);Gs(()=>o(!0),[]);const i=s||r&&globalThis?.document?.body;return i?Cr.createPortal(n.jsx(vt.div,{...a,ref:t}),i):null});Rc.displayName=Yh;function Gh(e,t){return c.useReducer((s,a)=>t[s][a]??s,e)}var sa=e=>{const{present:t,children:s}=e,a=Xh(t),r=typeof s=="function"?s({present:a.isPresent}):c.Children.only(s),o=Jh(a.ref,Zh(r));return typeof s=="function"||a.isPresent?c.cloneElement(r,{ref:o}):null};sa.displayName="Presence";function Xh(e){const[t,s]=c.useState(),a=c.useRef(null),r=c.useRef(e),o=c.useRef("none"),i=c.useRef(void 0),l=e?"mounted":"unmounted",[u,d]=Gh(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{u==="mounted"?(o.current=i.current??Ls(a.current),i.current=void 0):o.current="none"},[u]),Gs(()=>{const m=a.current,f=r.current;if(f!==e){const b=o.current,v=Ls(m);e?(i.current=v,d("MOUNT")):v==="none"||m?.display==="none"?d("UNMOUNT"):d(f&&b!==v?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,d]),Gs(()=>{if(t){let m;const f=t.ownerDocument.defaultView??window,h=v=>{const x=Ls(a.current).includes(CSS.escape(v.animationName));if(v.target===t&&x&&(d("ANIMATION_END"),!r.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",m=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},b=v=>{v.target===t&&(o.current=Ls(a.current))};return t.addEventListener("animationstart",b),t.addEventListener("animationcancel",h),t.addEventListener("animationend",h),()=>{f.clearTimeout(m),t.removeEventListener("animationstart",b),t.removeEventListener("animationcancel",h),t.removeEventListener("animationend",h)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:c.useCallback(m=>{if(m){const f=getComputedStyle(m);a.current=f,i.current=Ls(f)}else a.current=null;s(m)},[])}}function yi(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Jh(...e){const t=c.useRef(e);return t.current=e,c.useCallback(s=>{const a=t.current;let r=!1;const o=a.map(i=>{const l=yi(i,s);return!r&&typeof l=="function"&&(r=!0),l});if(r)return()=>{for(let i=0;i<o.length;i++){const l=o[i];typeof l=="function"?l():yi(a[i],null)}}},[])}function Ls(e){return e?.animationName||"none"}function Zh(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?e.props.ref:e.props.ref||e.ref)}var eg=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},us=new WeakMap,Cn=new WeakMap,Nn={},Aa=0,Mc=function(e){return e&&(e.host||Mc(e.parentNode))},tg=function(e,t){return t.map(function(s){if(e.contains(s))return s;var a=Mc(s);return a&&e.contains(a)?a:(console.error("aria-hidden",s,"in not contained inside",e,". Doing nothing"),null)}).filter(function(s){return!!s})},sg=function(e,t,s,a){var r=tg(t,Array.isArray(e)?e:[e]);Nn[s]||(Nn[s]=new WeakMap);var o=Nn[s],i=[],l=new Set,u=new Set(r),d=function(f){!f||l.has(f)||(l.add(f),d(f.parentNode))};r.forEach(d);var m=function(f){!f||u.has(f)||Array.prototype.forEach.call(f.children,function(h){if(l.has(h))m(h);else try{var b=h.getAttribute(a),v=b!==null&&b!=="false",p=(us.get(h)||0)+1,x=(o.get(h)||0)+1;us.set(h,p),o.set(h,x),i.push(h),p===1&&v&&Cn.set(h,!0),x===1&&h.setAttribute(s,"true"),v||h.setAttribute(a,"true")}catch(g){console.error("aria-hidden: cannot operate on ",h,g)}})};return m(t),l.clear(),Aa++,function(){i.forEach(function(f){var h=us.get(f)-1,b=o.get(f)-1;us.set(f,h),o.set(f,b),h||(Cn.has(f)||f.removeAttribute(a),Cn.delete(f)),b||f.removeAttribute(s)}),Aa--,Aa||(us=new WeakMap,us=new WeakMap,Cn=new WeakMap,Nn={})}},ng=function(e,t,s){s===void 0&&(s="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),r=eg(e);return r?(a.push.apply(a,Array.from(r.querySelectorAll("[aria-live], script"))),sg(a,r,s,"aria-hidden")):function(){return null}},Dn="right-scroll-bar-position",On="width-before-scroll-bar",ag="with-scroll-bars-hidden",rg="--removed-body-scroll-bar-size";function Da(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function og(e,t){var s=c.useState(function(){return{value:e,callback:t,facade:{get current(){return s.value},set current(a){var r=s.value;r!==a&&(s.value=a,s.callback(a,r))}}}})[0];return s.callback=t,s.facade}var ig=typeof window<"u"?c.useLayoutEffect:c.useEffect,ki=new WeakMap;function lg(e,t){var s=og(null,function(a){return e.forEach(function(r){return Da(r,a)})});return ig(function(){var a=ki.get(s);if(a){var r=new Set(a),o=new Set(e),i=s.current;r.forEach(function(l){o.has(l)||Da(l,null)}),o.forEach(function(l){r.has(l)||Da(l,i)})}ki.set(s,e)},[e]),s}function cg(e){return e}function ug(e,t){t===void 0&&(t=cg);var s=[],a=!1,r={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:e},useMedium:function(o){var i=t(o,a);return s.push(i),function(){s=s.filter(function(l){return l!==i})}},assignSyncMedium:function(o){for(a=!0;s.length;){var i=s;s=[],i.forEach(o)}s={push:function(l){return o(l)},filter:function(){return s}}},assignMedium:function(o){a=!0;var i=[];if(s.length){var l=s;s=[],l.forEach(o),i=s}var u=function(){var m=i;i=[],m.forEach(o)},d=function(){return Promise.resolve().then(u)};d(),s={push:function(m){i.push(m),d()},filter:function(m){return i=i.filter(m),s}}}};return r}function dg(e){e===void 0&&(e={});var t=ug(null);return t.options=Ct({async:!0,ssr:!1},e),t}var zc=function(e){var t=e.sideCar,s=kl(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return c.createElement(a,Ct({},s))};zc.isSideCarExport=!0;function mg(e,t){return e.useMedium(t),zc}var Ac=dg(),Oa=function(){},na=c.forwardRef(function(e,t){var s=c.useRef(null),a=c.useState({onScrollCapture:Oa,onWheelCapture:Oa,onTouchMoveCapture:Oa}),r=a[0],o=a[1],i=e.forwardProps,l=e.children,u=e.className,d=e.removeScrollBar,m=e.enabled,f=e.shards,h=e.sideCar,b=e.noRelative,v=e.noIsolation,p=e.inert,x=e.allowPinchZoom,g=e.as,y=g===void 0?"div":g,k=e.gapMode,w=kl(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=h,T=lg([s,t]),C=Ct(Ct({},w),r);return c.createElement(c.Fragment,null,m&&c.createElement(N,{sideCar:Ac,removeScrollBar:d,shards:f,noRelative:b,noIsolation:v,inert:p,setCallbacks:o,allowPinchZoom:!!x,lockRef:s,gapMode:k}),i?c.cloneElement(c.Children.only(l),Ct(Ct({},C),{ref:T})):c.createElement(y,Ct({},C,{className:u,ref:T}),l))});na.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};na.classNames={fullWidth:On,zeroRight:Dn};var fg=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function hg(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=fg();return t&&e.setAttribute("nonce",t),e}function gg(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function pg(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var bg=function(){var e=0,t=null;return{add:function(s){e==0&&(t=hg())&&(gg(t,s),pg(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},xg=function(){var e=bg();return function(t,s){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&s])}},Dc=function(){var e=xg(),t=function(s){var a=s.styles,r=s.dynamic;return e(a,r),null};return t},vg={left:0,top:0,right:0,gap:0},Pa=function(e){return parseInt(e||"",10)||0},yg=function(e){var t=window.getComputedStyle(document.body),s=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],r=t[e==="padding"?"paddingRight":"marginRight"];return[Pa(s),Pa(a),Pa(r)]},kg=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return vg;var t=yg(e),s=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-s+t[2]-t[0])}},wg=Dc(),vs="data-scroll-locked",jg=function(e,t,s,a){var r=e.left,o=e.top,i=e.right,l=e.gap;return s===void 0&&(s="margin"),`
76
+ .`.concat(ag,` {
77
+ overflow: hidden `).concat(a,`;
78
+ padding-right: `).concat(l,"px ").concat(a,`;
79
+ }
80
+ body[`).concat(vs,`] {
81
+ overflow: hidden `).concat(a,`;
82
+ overscroll-behavior: contain;
83
+ `).concat([t&&"position: relative ".concat(a,";"),s==="margin"&&`
84
+ padding-left: `.concat(r,`px;
85
+ padding-top: `).concat(o,`px;
86
+ padding-right: `).concat(i,`px;
87
+ margin-left:0;
88
+ margin-top:0;
89
+ margin-right: `).concat(l,"px ").concat(a,`;
90
+ `),s==="padding"&&"padding-right: ".concat(l,"px ").concat(a,";")].filter(Boolean).join(""),`
91
+ }
92
+
93
+ .`).concat(Dn,` {
94
+ right: `).concat(l,"px ").concat(a,`;
95
+ }
96
+
97
+ .`).concat(On,` {
98
+ margin-right: `).concat(l,"px ").concat(a,`;
99
+ }
100
+
101
+ .`).concat(Dn," .").concat(Dn,` {
102
+ right: 0 `).concat(a,`;
103
+ }
104
+
105
+ .`).concat(On," .").concat(On,` {
106
+ margin-right: 0 `).concat(a,`;
107
+ }
108
+
109
+ body[`).concat(vs,`] {
110
+ `).concat(rg,": ").concat(l,`px;
111
+ }
112
+ `)},wi=function(){var e=parseInt(document.body.getAttribute(vs)||"0",10);return isFinite(e)?e:0},Sg=function(){c.useEffect(function(){return document.body.setAttribute(vs,(wi()+1).toString()),function(){var e=wi()-1;e<=0?document.body.removeAttribute(vs):document.body.setAttribute(vs,e.toString())}},[])},Cg=function(e){var t=e.noRelative,s=e.noImportant,a=e.gapMode,r=a===void 0?"margin":a;Sg();var o=c.useMemo(function(){return kg(r)},[r]);return c.createElement(wg,{styles:jg(o,!t,r,s?"":"!important")})},nr=!1;if(typeof window<"u")try{var En=Object.defineProperty({},"passive",{get:function(){return nr=!0,!0}});window.addEventListener("test",En,En),window.removeEventListener("test",En,En)}catch{nr=!1}var ds=nr?{passive:!1}:!1,Ng=function(e){return e.tagName==="TEXTAREA"},Oc=function(e,t){if(!(e instanceof Element))return!1;var s=window.getComputedStyle(e);return s[t]!=="hidden"&&!(s.overflowY===s.overflowX&&!Ng(e)&&s[t]==="visible")},Eg=function(e){return Oc(e,"overflowY")},Ig=function(e){return Oc(e,"overflowX")},ji=function(e,t){var s=t.ownerDocument,a=t;do{typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&(a=a.host);var r=Pc(e,a);if(r){var o=Lc(e,a),i=o[1],l=o[2];if(i>l)return!0}a=a.parentNode}while(a&&a!==s.body);return!1},Tg=function(e){var t=e.scrollTop,s=e.scrollHeight,a=e.clientHeight;return[t,s,a]},Rg=function(e){var t=e.scrollLeft,s=e.scrollWidth,a=e.clientWidth;return[t,s,a]},Pc=function(e,t){return e==="v"?Eg(t):Ig(t)},Lc=function(e,t){return e==="v"?Tg(t):Rg(t)},Mg=function(e,t){return e==="h"&&t==="rtl"?-1:1},zg=function(e,t,s,a,r){var o=Mg(e,window.getComputedStyle(t).direction),i=o*a,l=s.target,u=t.contains(l),d=!1,m=i>0,f=0,h=0;do{if(!l)break;var b=Lc(e,l),v=b[0],p=b[1],x=b[2],g=p-x-o*v;(v||g)&&Pc(e,l)&&(f+=g,h+=v);var y=l.parentNode;l=y&&y.nodeType===Node.DOCUMENT_FRAGMENT_NODE?y.host:y}while(!u&&l!==document.body||u&&(t.contains(l)||t===l));return(m&&Math.abs(f)<1||!m&&Math.abs(h)<1)&&(d=!0),d},In=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Si=function(e){return[e.deltaX,e.deltaY]},Ci=function(e){return e&&"current"in e?e.current:e},Ag=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Dg=function(e){return`
113
+ .block-interactivity-`.concat(e,` {pointer-events: none;}
114
+ .allow-interactivity-`).concat(e,` {pointer-events: all;}
115
+ `)},Og=0,ms=[];function Pg(e){var t=c.useRef([]),s=c.useRef([0,0]),a=c.useRef(),r=c.useState(Og++)[0],o=c.useState(Dc)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var p=a0([e.lockRef.current],(e.shards||[]).map(Ci),!0).filter(Boolean);return p.forEach(function(x){return x.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),p.forEach(function(x){return x.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=c.useCallback(function(p,x){if("touches"in p&&p.touches.length===2||p.type==="wheel"&&p.ctrlKey)return!i.current.allowPinchZoom;var g=In(p),y=s.current,k="deltaX"in p?p.deltaX:y[0]-g[0],w="deltaY"in p?p.deltaY:y[1]-g[1],N,T=p.target,C=Math.abs(k)>Math.abs(w)?"h":"v";if("touches"in p&&C==="h"&&T.type==="range")return!1;var S=window.getSelection(),D=S&&S.anchorNode,M=D?D===T||D.contains(T):!1;if(M)return!1;var A=ji(C,T);if(!A)return!0;if(A?N=C:(N=C==="v"?"h":"v",A=ji(C,T)),!A)return!1;if(!a.current&&"changedTouches"in p&&(k||w)&&(a.current=N),!N)return!0;var P=a.current||N;return zg(P,x,p,P==="h"?k:w)},[]),u=c.useCallback(function(p){var x=p;if(!(!ms.length||ms[ms.length-1]!==o)){var g="deltaY"in x?Si(x):In(x),y=t.current.filter(function(N){return N.name===x.type&&(N.target===x.target||x.target===N.shadowParent)&&Ag(N.delta,g)})[0];if(y&&y.should){x.cancelable&&x.preventDefault();return}if(!y){var k=(i.current.shards||[]).map(Ci).filter(Boolean).filter(function(N){return N.contains(x.target)}),w=k.length>0?l(x,k[0]):!i.current.noIsolation;w&&x.cancelable&&x.preventDefault()}}},[]),d=c.useCallback(function(p,x,g,y){var k={name:p,delta:x,target:g,should:y,shadowParent:Lg(g)};t.current.push(k),setTimeout(function(){t.current=t.current.filter(function(w){return w!==k})},1)},[]),m=c.useCallback(function(p){s.current=In(p),a.current=void 0},[]),f=c.useCallback(function(p){d(p.type,Si(p),p.target,l(p,e.lockRef.current))},[]),h=c.useCallback(function(p){d(p.type,In(p),p.target,l(p,e.lockRef.current))},[]);c.useEffect(function(){return ms.push(o),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",u,ds),document.addEventListener("touchmove",u,ds),document.addEventListener("touchstart",m,ds),function(){ms=ms.filter(function(p){return p!==o}),document.removeEventListener("wheel",u,ds),document.removeEventListener("touchmove",u,ds),document.removeEventListener("touchstart",m,ds)}},[]);var b=e.removeScrollBar,v=e.inert;return c.createElement(c.Fragment,null,v?c.createElement(o,{styles:Dg(r)}):null,b?c.createElement(Cg,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Lg(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const $g=mg(Ac,Pg);var $c=c.forwardRef(function(e,t){return c.createElement(na,Ct({},e,{ref:t,sideCar:$g}))});$c.classNames=na.classNames;var Fg=class extends Nr{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){const{state:s}=e,a=super.createResult(e,t),{isFetching:r,isRefetching:o,isError:i,isRefetchError:l}=a,u=s.fetchMeta?.fetchMore?.direction,d=i&&u==="forward",m=r&&u==="forward",f=i&&u==="backward",h=r&&u==="backward";return{...a,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:o0(t,s.data),hasPreviousPage:r0(t,s.data),isFetchNextPageError:d,isFetchingNextPage:m,isFetchPreviousPageError:f,isFetchingPreviousPage:h,isRefetchError:l&&!d&&!f,isRefetching:o&&!m&&!h}}};function Ni(e,t){const s=new Set(t);return e.filter(a=>!s.has(a))}function _g(e,t,s){const a=e.slice(0);return a[t]=s,a}var qg=class extends i0{#s;#e;#r;#a;#t;#n;#o;#i;#l;#c=[];constructor(e,t,s){super(),this.#s=e,this.#a=s,this.#r=[],this.#t=[],this.#e=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#t.forEach(e=>{e.subscribe(t=>{this.#f(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#t.forEach(e=>{e.destroy()})}setQueries(e,t){this.#r=e,this.#a=t,Va.batch(()=>{const s=this.#t,a=this.#m(this.#r);a.forEach(m=>m.observer.setOptions(m.defaultedQueryOptions));const r=a.map(m=>m.observer),o=r.map(m=>m.getCurrentResult()),i=s.length!==r.length,l=r.some((m,f)=>m!==s[f]),u=i||l,d=u?!0:o.some((m,f)=>{const h=this.#e[f];return!h||!l0(m,h)});!u&&!d||(u&&(this.#c=a,this.#t=r),this.#e=o,this.hasListeners()&&(u&&(Ni(s,r).forEach(m=>{m.destroy()}),Ni(r,s).forEach(m=>{m.subscribe(f=>{this.#f(m,f)})})),this.#h()))})}getCurrentResult(){return this.#e}getQueries(){return this.#t.map(e=>e.getCurrentQuery())}getObservers(){return this.#t}getOptimisticResult(e,t){const s=this.#m(e),a=s.map(o=>o.observer.getOptimisticResult(o.defaultedQueryOptions)),r=s.map(o=>o.defaultedQueryOptions.queryHash);return[a,o=>this.#d(o??a,t,r),()=>this.#u(a,s)]}#u(e,t){return t.map((s,a)=>{const r=e[a];return s.defaultedQueryOptions.notifyOnChangeProps?r:s.observer.trackResult(r,o=>{t.forEach(i=>{i.observer.trackProp(o)})})})}#d(e,t,s){if(t){const a=this.#l,r=s!==void 0&&a!==void 0&&(a.length!==s.length||s.some((o,i)=>o!==a[i]));return(!this.#n||this.#e!==this.#i||r||t!==this.#o)&&(this.#o=t,this.#i=this.#e,s!==void 0&&(this.#l=s),this.#n=c0(this.#n,t(e))),this.#n}return e}#g(){return this.#a?.combine!==void 0&&this.#t.some((e,t)=>e.options.suspense&&this.#e[t]?.data===void 0)}#m(e){const t=new Map;this.#t.forEach(a=>{const r=a.options.queryHash;if(!r)return;const o=t.get(r);o?o.push(a):t.set(r,[a])});const s=[];return e.forEach(a=>{const r=this.#s.defaultQueryOptions(a),i=t.get(r.queryHash)?.shift()??new Nr(this.#s,r);s.push({defaultedQueryOptions:r,observer:i})}),s}#f(e,t){const s=this.#t.indexOf(e);s!==-1&&(this.#e=_g(this.#e,s,t),this.#h())}#h(){if(this.hasListeners()){const e=this.#u(this.#e,this.#c),t=this.#g(),s=this.#n,a=t?s:this.#d(e,this.#a?.combine);(t||s!==a)&&Va.batch(()=>{this.listeners.forEach(r=>{r(this.#e)})})}}};function Lt({queries:e,...t},s){const a=ye(),r=u0(),o=d0(),i=c.useMemo(()=>e.map(p=>{const x=a.defaultQueryOptions(p);return x._optimisticResults=r?"isRestoring":"optimistic",x}),[e,a,r]);i.forEach(p=>{m0(p);const x=a.getQueryCache().get(p.queryHash);f0(p,o,x)}),h0(o);const[l]=c.useState(()=>new qg(a,i,t)),[u,d,m]=l.getOptimisticResult(i,t.combine),f=!r&&t.subscribed!==!1;c.useSyncExternalStore(c.useCallback(p=>f?l.subscribe(Va.batchCalls(p)):g0,[l,f]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),c.useEffect(()=>{l.setQueries(i,t)},[i,t,l]);const b=u.some((p,x)=>Ro(i[x],p))?u.flatMap((p,x)=>{const g=i[x];if(g&&Ro(g,p)){const y=new Nr(a,g);return p0(g,y,o)}return[]}):[];if(b.length>0)throw Promise.all(b);const v=u.find((p,x)=>{const g=i[x];return g&&b0({result:p,errorResetBoundary:o,throwOnError:g.throwOnError,query:a.getQueryCache().get(g.queryHash),suspense:g.suspense})});if(v?.error)throw v.error;return d(m())}function Fc(e,t){return x0(e,Fg)}function Bg(e,t){if(e===void 0)return{shouldBlockFn:()=>!0,withResolver:!1};if("shouldBlockFn"in e)return e;if(typeof e=="function")return{shouldBlockFn:async()=>await e(),enableBeforeUnload:!0,withResolver:!1};const s=!!(e.condition??!0),a=e.blockerFn;return{shouldBlockFn:async()=>s&&a!==void 0?await a():s,enableBeforeUnload:s,withResolver:a===void 0}}function Kg(e,t){const{shouldBlockFn:s,enableBeforeUnload:a=!0,disabled:r=!1,withResolver:o=!1}=Bg(e),i=Er(),{history:l}=i,[u,d]=c.useState({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0});return c.useEffect(()=>{const m=async f=>{function h(g){const y=i.parseLocation(g),k=i.getMatchedRoutes(y.pathname);return k.foundRoute===void 0?{routeId:"__notFound__",fullPath:y.pathname,pathname:y.pathname,params:k.routeParams,search:i.options.parseSearch(g.search)}:{routeId:k.foundRoute.id,fullPath:k.foundRoute.fullPath,pathname:y.pathname,params:k.routeParams,search:i.options.parseSearch(g.search)}}const b=h(f.currentLocation),v=h(f.nextLocation);if(b.routeId==="__notFound__"&&v.routeId!=="__notFound__")return!1;const p=await s({action:f.action,current:b,next:v});if(!o)return p;if(!p)return!1;const x=await new Promise(g=>{d({status:"blocked",current:b,next:v,action:f.action,proceed:()=>g(!1),reset:()=>g(!0)})});return d({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0}),x};return r?void 0:l.block({blockerFn:m,enableBeforeUnload:a})},[s,a,r,o,l,i]),u}function ht(e){const t=Er({warn:e?.router===void 0}),s=e?.router||t;return wl(s.stores.__store,jl(e,s))}function aa(e){const t=Er();return wl(t.stores.location,jl(e,t))}const Ug=new Set(["outbox","flagged"]),Hg=e=>{const[,t,s]=e.split(/[?#]/)[0].split("/");return t!=="mail"||!s?!1:!Ug.has(s)};function Wg(e){const t=Lt({queries:e.map(s=>({...He({path:{accountId:s.accountId}}),staleTime:1/0}))});for(const[s,a]of e.entries()){const r=t[s];if(!r||r.isPending)return;const o=r.data?.items??[];if(o.length===0)continue;const i=Ns(a.folderAppointments);return(o.find(u=>i.get(u.mailboxId)==="inbox")??o[0])?.mailboxId}}function _c(e){const{openCompose:t}=At(),s=ze(),a=aa(),r=Wg(e);return c.useCallback(()=>{if(Hg(a.pathname)){c.startTransition(()=>{t({mode:"new"})});return}r&&(c.startTransition(()=>{t({mode:"new"})}),s({to:"/mail/$mailboxId",params:{mailboxId:r}}))},[t,s,a.pathname,r])}const Vg=e=>e.startsWith("/mail")||e.startsWith("/settings"),Qg=({accounts:e})=>{const{state:t}=At(),s=aa(),a=_c(e),r=s.search,o=typeof r?.selectedMessageId=="string"&&r.selectedMessageId.length>0;return!Vg(s.pathname)||t.isOpen||o?null:n.jsx("button",{type:"button",onClick:a,"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:n.jsx(Jm,{className:"size-6"})})},qc=({trigger:e,children:t,align:s="right"})=>{const[a,r]=c.useState(!1),o=c.useRef(null),i=c.useCallback(u=>{o.current&&!o.current.contains(u.target)&&r(!1)},[]),l=c.useCallback(u=>{u.key==="Escape"&&r(!1)},[]);return c.useEffect(()=>(a&&(document.addEventListener("mousedown",i),document.addEventListener("keydown",l)),()=>{document.removeEventListener("mousedown",i),document.removeEventListener("keydown",l)}),[a,i,l]),n.jsxs("div",{ref:o,className:"relative",children:[n.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),r(!a)},className:ge("p-1.5 min-h-11 min-w-11 inline-flex items-center justify-center rounded-md transition-colors","hover:bg-surface-raised text-fg-muted hover:text-fg"),children:e}),a&&n.jsx("div",{className:ge("absolute z-50 mt-1 min-w-[180px] py-1","bg-surface border border-line rounded-md shadow-lg",s==="right"?"right-0":"left-0"),children:t})]})},ps=({onClick:e,disabled:t,destructive:s,children:a})=>n.jsx("button",{type:"button",onClick:r=>{r.stopPropagation(),t||e()},disabled:t,className:ge("w-full px-3 py-2 text-left text-sm transition-colors","flex items-center gap-2",t&&"opacity-50 cursor-not-allowed",!t&&"hover:bg-surface-raised",s&&"text-danger hover:text-danger"),children:a}),ar=()=>n.jsx("div",{className:"my-1 h-px bg-line"}),Bc=({children:e})=>{const{Account:t}=Ir();return n.jsx(t,{children:e})},Yg=({email:e,onSignOut:t})=>{const s=ze(),a=e??"Account";return n.jsxs(qc,{trigger:n.jsx(ct,{name:a,email:e??void 0,size:"sm"}),align:"right",children:[e&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"px-3 py-2 text-xs text-fg-muted truncate",title:e,"data-testid":"account-menu-email",children:e}),n.jsx(ar,{})]}),n.jsxs(ps,{onClick:()=>s({to:"/settings/accounts"}),children:[n.jsx(Br,{className:"size-4"}),"Settings"]}),n.jsx(ar,{}),n.jsxs(ps,{onClick:t,children:[n.jsx(sc,{className:"size-4"}),"Sign out"]})]})},Gg=()=>n.jsx(Bc,{children:({email:e,signOut:t})=>n.jsx(Yg,{email:e,onSignOut:t})}),Ei=()=>{const e=Tr(),t=Rr(e);window.open(t,"_blank","noopener,noreferrer")};function Kc({variant:e="icon"}){return e==="drawer"?n.jsxs("button",{type:"button",onClick:Ei,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:[n.jsx(Fo,{className:"size-4 shrink-0"}),n.jsx("span",{className:"flex-1 truncate text-left",children:"Report a bug"})]}):n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Fo,{className:"size-4"}),title:"Report a bug","aria-label":"Report a bug",onClick:Ei})}const Uc="/mail/",Yr="/mail/$mailboxId",Hc="/mail/outbox",Wc="/mail/flagged";function Gr(e){return e.some(t=>t.routeId===Uc)}function ln(e){return e.some(t=>t.routeId===Wc)}function ra(e){return e.some(t=>t.routeId===Hc)}function Vc(e){return e.some(t=>t.routeId===Yr)}function Xg(e){const t=e.find(s=>s.params?.mailboxId)?.params?.mailboxId;return t?`${Yr}:${t}`:ln(e)?Wc:ra(e)?Hc:Gr(e)?Uc:""}const Pn="search-scope";function Jg(e){const t=e.trim().replace(/\s+/g," ").toLowerCase();return/\s/.test(t)?`in:"${t}"`:`in:${t}`}function Qc(e){return ln(e)||ra(e)||Vc(e)}function Yc(e){return e.find(t=>t.routeId===Yr)?.params?.mailboxId}function Zg(e){const t=Yc(e.matches);return t||(Qc(e.matches)?e.callerMailboxId:e.callerMailboxId??e.inTokenMailboxId)}function ep(e,t){return Gr(e)?{kind:"global"}:ln(e)?{kind:"scoped",chip:{id:Pn,label:"is:starred"}}:ra(e)?{kind:"scoped",chip:{id:Pn,label:"in:outbox"}}:Vc(e)?t?{kind:"scoped",chip:{id:Pn,label:Jg(t)}}:{kind:"pending"}:{kind:"global"}}function tp(e,t,s){return t.kind==="global"?{kind:"global"}:ln(e)?{kind:"collection"}:{kind:"folder",...s?{role:s}:{}}}const Gc=({accounts:e})=>{const t=Mr({strict:!1}),s=aa(),a=t.mailboxId,{t:r}=Yn("mail",{useSuspense:!1}),o=c.useCallback((l,u)=>r(l,{defaultValue:u}),[r]),i=Lt({queries:e.map(l=>({...He({path:{accountId:l.accountId}}),staleTime:1/0}))});if(s.pathname.startsWith("/mail/outbox"))return"Outbox";if(!a)return null;for(let l=0;l<e.length;l++){const u=i[l]?.data?.items;if(!u)continue;const d=u.find(f=>f.mailboxId===a);if(!d)continue;const m=Ns(e[l].folderAppointments);return ys(d,m.get(a),o)}return null},sp=({accounts:e})=>{const s=Mr({strict:!1}).mailboxId,a=Lt({queries:e.map(r=>({...He({path:{accountId:r.accountId}}),staleTime:1/0}))});if(!s)return null;for(const r of a){const o=r.data?.items;if(!o)continue;const i=o.find(l=>l.mailboxId===s);if(i)return i.unseenCount}return null};function Xc(e){const t=ze(),{searchInput:s}=je(),a=Gc({accounts:e}),r=ht({select:l=>l.matches}),o=ep(r,a),i=c.useCallback(l=>{l===Pn&&t({to:"/mail",search:{q:s||void 0,selectedMessageId:void 0}})},[t,s]);return{scope:o,clearScope:i}}const Jc=[{title:"Navigation",hints:[{action:"focusNext",keys:["j"],description:"Focus next message"},{action:"focusPrevious",keys:["k"],description:"Focus previous message"},{action:"focusNext",keys:["↓"],description:"Focus next message"},{action:"focusPrevious",keys:["↑"],description:"Focus previous message"},{action:"focusFirst",keys:["Home"],description:"Focus first"},{action:"focusLast",keys:["End"],description:"Focus last"},{action:"openFocused",keys:["Enter"],description:"Open focused thread"},{action:"back",keys:["Esc"],description:"Back / close overlay"}]},{title:"Selection",hints:[{action:"toggleSelect",keys:["x"],description:"Toggle select"},{action:"toggleSelect",keys:["Space"],description:"Toggle select"},{action:"extendSelectDown",keys:["Shift","j"],description:"Extend selection down"},{action:"extendSelectUp",keys:["Shift","k"],description:"Extend selection up"},{action:"extendSelectDown",keys:["Shift","↓"],description:"Extend selection down"},{action:"extendSelectUp",keys:["Shift","↑"],description:"Extend selection up"},{action:"selectAll",keys:["⌘","A"],description:"Select all"}]},{title:"Actions",hints:[{action:"reply",keys:["r"],description:"Reply"},{action:"replyAll",keys:["a"],description:"Reply all"},{action:"forward",keys:["f"],description:"Forward"},{action:"delete",keys:["#"],description:"Delete"},{action:"toggleStar",keys:["s"],description:"Star / unstar"},{action:"toggleRead",keys:["u"],description:"Toggle read / unread"}]},{title:"Sender",hints:[{action:"muteSender",keys:["m"],description:"Mute sender"},{action:"blockSender",keys:["b"],description:"Block sender"},{action:"vipSender",keys:["v"],description:"VIP sender"},{action:"markJunk",keys:["!"],description:"Mark junk"}]},{title:"Go to",hints:[{action:"goBrief",keys:["g","b"],description:"Daily brief"},{action:"goInbox",keys:["g","i"],description:"Inbox"},{action:"goSent",keys:["g","s"],description:"Sent"},{action:"goFlagged",keys:["g","f"],description:"Starred"},{action:"goSettings",keys:["g",","],description:"Settings"}]},{title:"View & global",hints:[{action:"toggleIntelligence",keys:["i"],description:"Toggle intelligence"},{action:"toggleDensity",keys:["d"],description:"Toggle density"},{action:"focusSearch",keys:["/"],description:"Focus search"},{action:"compose",keys:["c"],description:"Compose"},{action:"compose",keys:["⌘","N"],description:"Compose"},{action:"help",keys:["?"],description:"Shortcut help"}]}];function np(e){for(const t of Jc){const s=t.hints.find(a=>a.action===e);if(s)return s.keys}}function hs(e){const t=np(e);return!t||t.length===0?"":t.length===1?`(${t[0]})`:t[0]==="g"?`(${t.join(" then ")})`:`(${t.join("")})`}const ap={global:"Search all mail",pending:"Search mail",scoped:"Search this folder"};function rp({accounts:e}){const{searchInput:t,onSearchChange:s,onSearchClear:a,onSearchClearQuery:r}=je(),o=_c(e),{scope:i,clearScope:l}=Xc(e),u=i.kind==="scoped"?[{id:i.chip.id,label:i.chip.label,tone:"scope"}]:void 0,d=ap[i.kind];return n.jsx(c1,{search:n.jsx(Ur,{value:t,onChange:s,onClear:a,onClearQuery:r,chips:u,onRemoveChip:l,placeholder:d,size:"lg"}),actions:n.jsxs(n.Fragment,{children:[n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(tf,{className:"size-4"}),title:`Compose ${hs("compose")}`,"aria-label":"Compose",onClick:o}),n.jsx(Kc,{}),n.jsx(Gg,{})]})})}const Xr=({isOpen:e,onClose:t,children:s,ariaLabel:a="Navigation",side:r="left",widthClassName:o="w-[80vw] max-w-[320px]"})=>{const i=c.useRef(null),l=c.useRef(null);if(c.useEffect(()=>{if(!e)return;l.current=document.activeElement;const d=h=>{h.key==="Escape"&&(h.preventDefault(),t())};document.addEventListener("keydown",d),i.current?.querySelector("button, [href], input, select, textarea, [tabindex]:not([tabindex='-1'])")?.focus();const f=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",d),document.body.style.overflow=f,l.current?.focus()}},[e,t]),!e)return null;const u=r==="left"?"left-0 border-r animate-in slide-in-from-left duration-150":"right-0 border-l animate-in slide-in-from-right duration-150";return n.jsxs("div",{className:"fixed inset-0 z-50 lg:hidden",role:"dialog","aria-modal":"true","aria-label":a,children:[n.jsx("button",{type:"button","aria-label":"Close menu",onClick:t,className:"absolute inset-0 bg-black/40 animate-in fade-in duration-150 cursor-default"}),n.jsxs("div",{ref:i,className:ge("absolute top-0 bottom-0 bg-canvas border-line shadow-xl flex flex-col",o,u),children:[n.jsx("div",{className:"flex items-center justify-end h-12 px-2 border-b border-line shrink-0",children:n.jsx("button",{type:"button",onClick:t,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close menu",children:n.jsx(Ue,{className:"size-5"})})}),n.jsx("div",{className:"flex-1 overflow-y-auto",children:s})]})]})},op=e=>{const t=e.filter(r=>!r.isMultipart&&r.disposition!=="attachment"&&r.mediaType==="TEXT"&&r.contentUrl.length>0),s=t.find(r=>r.mediaSubtype.toUpperCase()==="HTML");if(s)return{kind:"html",contentUrl:s.contentUrl};const a=t.find(r=>r.mediaSubtype.toUpperCase()==="PLAIN");return a?{kind:"text",contentUrl:a.contentUrl}:null},rr={all:["messages"],detail:e=>[...rr.all,"detail",e],body:e=>[...rr.detail(e),"body"]};class Vt extends Error{reason;status;retryAfterSeconds;constructor(t,s,a,r){super(s),this.name="BodyFetchError",this.reason=t,this.status=a,this.retryAfterSeconds=r}}const ip=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},lp=8,cp="x-remit-403-reason",up=(e,t)=>{const s=t?.trim()??"";return e===401?"auth":e===403?s.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},dp=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,mp=(e,t)=>{const s=(t??"").toLowerCase();return!!(e==="text"&&s.startsWith("text/html"))},fp=async(e,t,s=async()=>null)=>{const a={},r=await s();r&&(a.Authorization=`Bearer ${r}`);const o=await v0(e,{headers:a});if(o.status===202)throw new Vt("not-ready","Message body is still syncing",202,ip(o.headers.get("Retry-After")));if(!o.ok){const u=o.headers.get(cp),d=up(o.status,u);throw new Vt(d,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const i=o.headers.get("content-type");if(mp(t,i))throw new Vt("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${i}`);const l=await o.text();if(dp(l,i))throw new Vt("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return l},hp=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),Zc=({messageId:e,bodyParts:t,enabled:s=!0})=>{const a=t?op(t):null,r=tn(),{getToken:o}=Ir(),i=c.useRef(null),l=ye(),u=c.useRef(!1),d=c.useRef(null),m=e&&a?`${e}:${a.contentUrl}`:null;d.current!==m&&(d.current=m,u.current=!1);const f=ce({queryKey:e?[...rr.body(e),a?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!a)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const v=u.current;return u.current=!1,hp({fetchContent:(p,x)=>fp(p,x,o),refetchDescribeMessage:()=>l.refetchQueries({queryKey:Sl({path:{messageId:e}})})},{contentUrl:a.contentUrl,kind:a.kind,isRetryAfterNotReady:v})},enabled:s&&!!e&&!!a,staleTime:300*1e3,gcTime:1800*1e3,retry:(v,p)=>p instanceof Vt&&p.reason==="not-ready"?v<lp:v<1,retryDelay:(v,p)=>p instanceof Vt&&p.reason==="not-ready"?(u.current=!0,(p.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),h=f.isLoading&&!!a;c.useEffect(()=>{h&&(i.current=performance.now())},[h]),c.useEffect(()=>{f.isSuccess&&i.current!==null&&(r.recordTiming("message.body.load",Math.round(performance.now()-i.current)),i.current=null)},[f.isSuccess,r]);const b=f.data&&a?{kind:a.kind,body:f.data}:void 0;return{picked:a,data:b,isLoading:h,isError:f.isError,error:f.error,refetch:f.refetch}},gp=({outboxMessageId:e,onDraftCreated:t})=>{const[s,a]=c.useState("idle"),[r,o]=c.useState(null),i=c.useRef(void 0),l=ye(),u=ve(Cl()),d=ve(y0()),m=c.useCallback(async v=>{if(a("saving"),o(null),e){const x=await d.mutateAsync({path:{outboxMessageId:e},body:{toAddresses:v.toAddresses,ccAddresses:v.ccAddresses,bccAddresses:v.bccAddresses,subject:v.subject,textBody:v.textBody,htmlBody:v.htmlBody,inReplyTo:v.inReplyTo,references:v.references}});return a("saved"),x}const p=await u.mutateAsync({body:{...v,sendImmediately:!1}});return t(p.outboxMessageId),a("saved"),l.invalidateQueries({queryKey:Gn().queryKey}),p},[e,u,d,t,l]),f=c.useCallback(v=>{i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{m(v).catch(p=>{o(p),a("error")})},2e3)},[m]),h=c.useCallback(v=>(i.current&&clearTimeout(i.current),m(v)),[m]),b=c.useCallback(()=>{i.current&&clearTimeout(i.current)},[]);return{saveStatus:s,saveError:r,saveDraft:f,saveImmediately:h,cancelAutoSave:b}},eu=e=>"text"in e&&!("children"in e),tu=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),pp=e=>{let t=tu(e.text);return e.bold&&(t=`<strong>${t}</strong>`),e.italic&&(t=`<em>${t}</em>`),t},su=e=>{const t=e.children.map(s=>eu(s)?pp(s):su(s)).join("");switch(e.type){case"blockquote":return`<blockquote>${t}</blockquote>`;case"a":{const s=e.url??"";return`<a href="${tu(s)}">${t}</a>`}default:return`<p>${t}</p>`}},Ii=e=>e.map(su).join(""),nu=e=>eu(e)?e.text:e.children.map(nu).join(""),or=e=>e.map(nu).join(`
116
+ `),bp=e=>e.displayName?`${e.displayName} <${e.normalizedEmail}>`:e.normalizedEmail,Ti=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim()),xp=e=>{const t=e.trim();if(!t)return;const s=t.match(/^(.+?)\s*<([^>]+)>$/);if(s){const a=s[1].trim(),r=s[2].trim();if(Ti(r))return{email:r,displayName:a}}if(Ti(t))return{email:t}},La=({label:e,addresses:t,onChange:s,placeholder:a})=>{const[r,o]=c.useState(""),[i,l]=c.useState(-1),[u,d]=c.useState(!1),m=c.useRef(null),f=c.useRef(null),h=Dl(r,200),{data:b}=ce({...Nl({query:{q:h,limit:8}}),enabled:h.length>=2}),v=b?.items??[],p=new Set(t.map(C=>C.email.toLowerCase())),x=v.filter(C=>!p.has(C.normalizedEmail.toLowerCase()));c.useEffect(()=>{l(-1),d(x.length>0&&r.length>=2)},[x.length,r.length]);const g=c.useCallback(C=>{p.has(C.email.toLowerCase())||(s([...t,C]),o(""),d(!1))},[t,p,s]),y=c.useCallback(C=>{s(t.filter((S,D)=>D!==C))},[t,s]),k=c.useCallback(C=>{g({email:C.normalizedEmail,displayName:C.displayName}),m.current?.focus()},[g]),w=c.useCallback(()=>{const C=xp(r);C&&g(C)},[r,g]),N=c.useCallback(C=>{if(C.key==="Backspace"&&r===""&&t.length>0){y(t.length-1);return}if(C.key==="Enter"||C.key==="Tab"||C.key===","){if(i>=0&&x[i]){C.preventDefault(),k(x[i]);return}r.trim()&&(C.preventDefault(),w());return}if(C.key==="ArrowDown"&&u){C.preventDefault(),l(S=>S<x.length-1?S+1:0);return}if(C.key==="ArrowUp"&&u){C.preventDefault(),l(S=>S>0?S-1:x.length-1);return}C.key==="Escape"&&(d(!1),l(-1))},[r,t.length,i,x,u,y,k,w]),T=c.useCallback(()=>{setTimeout(()=>{w(),d(!1)},150)},[w]);return n.jsxs("div",{className:"relative",children:[n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsxs("label",{htmlFor:`address-field-${e}`,className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:[e,":"]}),n.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:()=>m.current?.focus(),onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&m.current?.focus()},children:[t.map((C,S)=>n.jsx(rf,{email:C.email,displayName:C.displayName,onRemove:()=>y(S)},C.email)),n.jsx("input",{ref:m,id:`address-field-${e}`,type:"text",value:r,onChange:C=>o(C.target.value),onKeyDown:N,onBlur:T,placeholder:t.length===0?a:"",className:"flex-1 min-w-[120px] bg-transparent outline-none text-sm py-0.5"})]})]}),u&&x.length>0&&n.jsx("ul",{ref:f,className:"absolute left-12 right-0 mt-1 bg-surface border border-line rounded-md shadow-lg z-50 max-h-[200px] overflow-auto",children:x.map((C,S)=>n.jsx("li",{className:ge("px-3 py-2 text-sm cursor-pointer transition-colors",S===i&&"bg-accent-2-soft"),onMouseDown:D=>{D.preventDefault(),k(C)},onMouseEnter:()=>l(S),children:bp(C)},C.addressId))})]})},vp=({accountId:e})=>{const t=ze();return n.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:[n.jsx(jr,{className:"size-5 shrink-0 mt-0.5 text-warning","aria-hidden":"true"}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsx("p",{className:"text-sm font-medium text-warning",children:"This account can't send mail until SMTP is configured."}),n.jsxs("button",{type:"button",onClick:()=>{t({to:"/settings/accounts",search:{editAccountId:e,focusSmtp:!0}})},className:"mt-1 inline-flex items-center gap-1 text-xs font-medium text-warning hover:underline",children:["Configure SMTP",n.jsx(Km,{className:"size-3","aria-hidden":"true"})]})]})]})},ir=e=>{const[t,s]=c.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches);return c.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const a=window.matchMedia(e),r=o=>s(o.matches);return s(a.matches),a.addEventListener("change",r),()=>a.removeEventListener("change",r)},[e]),t},$t=()=>ir("(min-width: 1024px)"),Ri=150,yp=()=>{const[e,t]=c.useState(()=>{if(typeof window>"u"||!window.visualViewport)return{viewportHeight:0,isKeyboardOpen:!1};const s=window.visualViewport.height;return{viewportHeight:s,isKeyboardOpen:window.innerHeight-s>Ri}});return c.useEffect(()=>{if(typeof window>"u"||!window.visualViewport)return;const s=window.visualViewport,a=()=>{const r=s.height;t({viewportHeight:r,isKeyboardOpen:window.innerHeight-r>Ri})};return a(),s.addEventListener("resize",a),()=>s.removeEventListener("resize",a)},[]),e},kp=({selectedAccountId:e,onSelect:t})=>{const{data:s}=ce({...xt(),staleTime:1/0}),a=s?.accounts??[];if(c.useEffect(()=>{!e&&a.length===1&&a[0]&&t(a[0])},[e,a,t]),a.length<=1){const r=a[0];return r?n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx("label",{className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"From:"}),n.jsx("div",{className:"text-sm py-1.5",children:r.email})]}):null}return n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx("label",{htmlFor:"from-account-selector",className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"From:"}),n.jsx("select",{id:"from-account-selector",value:e??"",onChange:r=>{const o=a.find(i=>i.accountId===r.target.value);o&&t(o)},className:"flex-1 px-2 py-1.5 border rounded-md bg-canvas text-sm",children:a.map(r=>n.jsx("option",{value:r.accountId,children:r.email},r.accountId))})]})},wp=({value:e,onChange:t})=>n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx("label",{className:"text-sm text-fg-muted shrink-0 w-12 pt-1.5",children:"Subj:"}),n.jsx("input",{type:"text",value:e,onChange:s=>t(s.target.value),className:"flex-1 px-2 py-1.5 border rounded-md bg-canvas text-sm",placeholder:"Subject","data-subject-field":!0})]}),jp=["p","br","strong","b","em","i","a","blockquote","ul","ol","li"],Sp=["href"],Cp=e=>xl.sanitize(e,{ALLOWED_TAGS:jp,ALLOWED_ATTR:Sp}),Np=c.lazy(()=>w0(()=>import("./ComposeBody-BmDqP2br.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(e=>({default:e.ComposeBody}))),Ep=()=>n.jsxs("div",{className:"min-h-[120px] px-3 py-2",children:[n.jsx("div",{className:"h-8 mb-2 rounded bg-surface-sunken animate-pulse"}),n.jsx("div",{className:"min-h-[80px] rounded bg-surface-sunken/50 animate-pulse"})]}),au=[{type:"p",children:[{text:""}]}],Ip=[{type:"p",children:[{text:""}]},{type:"p",children:[{text:"-- "}]}],Tp=e=>e?[...Ip,{type:"p",children:[{text:e}]}]:au,Rp=e=>e?/^re:\s/i.test(e)?e:`Re: ${e}`:"Re: ",Mp=e=>e?/^fwd?:\s/i.test(e)?e:`Fwd: ${e}`:"Fwd: ",zp=(e,t,s)=>{const{envelope:a}=e,o=(a.replyTo.length>0?a.replyTo:a.from).map(d=>({email:d.normalizedEmail,displayName:d.displayName}));if(t!=="reply_all")return{to:o,cc:[]};const i=s?.toLowerCase(),l=new Set(o.map(d=>d.email.toLowerCase())),u=[...a.to,...a.cc].filter(d=>d.normalizedEmail.toLowerCase()!==i&&!l.has(d.normalizedEmail.toLowerCase())).map(d=>({email:d.normalizedEmail,displayName:d.displayName}));return{to:o,cc:u}},Ap=e=>{const t=e.envelope.messageIdValue,a=[...e.references.filter(r=>r.referenceType==="references").sort((r,o)=>r.referenceOrder-o.referenceOrder).map(r=>r.messageIdValue)];return t&&!a.includes(t)&&a.push(t),{inReplyTo:t,references:a}},Dp=(e,t,s,a,r)=>e.length===0&&t.length===0&&s.length===0&&a.trim()===""&&or(r).trim()==="",Op=({selectedAccountId:e,onAccountChange:t,toAddresses:s,setToAddresses:a,ccAddresses:r,setCcAddresses:o,bccAddresses:i,setBccAddresses:l,showCc:u,setShowCc:d,showBcc:m,setShowBcc:f,subject:h,setSubject:b})=>{const v=$t(),{isKeyboardOpen:p}=yp();if(!v&&p){const g=[];return s.length>0&&g.push(`To: ${s.map(y=>y.displayName??y.email).join(", ")}`),r.length>0&&g.push(`Cc: ${r.length}`),i.length>0&&g.push(`Bcc: ${i.length}`),h&&g.push(h),n.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-line overflow-hidden","data-testid":"compose-header-collapsed",children:[n.jsx("span",{className:"truncate text-xs text-fg-muted",children:g.length>0?g.join(" · "):"…"}),n.jsx("span",{className:"shrink-0 inline-flex items-center justify-center rounded bg-surface-sunken px-1.5 py-0.5 text-2xs text-fg-muted",children:"…"})]})}return n.jsxs("div",{className:"space-y-1 px-3 py-2 border-b border-line",children:[n.jsx(kp,{selectedAccountId:e,onSelect:t}),n.jsx(La,{label:"To",addresses:s,onChange:a,placeholder:"Recipients"}),u?n.jsx(La,{label:"Cc",addresses:r,onChange:o}):n.jsxs("div",{className:"flex gap-2 pl-14",children:[n.jsx("button",{type:"button",onClick:()=>d(!0),className:"text-xs text-fg-muted hover:text-fg transition-colors",children:"Cc"}),n.jsx("button",{type:"button",onClick:()=>f(!0),className:"text-xs text-fg-muted hover:text-fg transition-colors",children:"Bcc"})]}),u&&!m&&n.jsx("div",{className:"pl-14",children:n.jsx("button",{type:"button",onClick:()=>f(!0),className:"text-xs text-fg-muted hover:text-fg transition-colors",children:"Bcc"})}),m&&n.jsx(La,{label:"Bcc",addresses:i,onChange:l}),n.jsx(wp,{value:h,onChange:b})]})},Jr=({mode:e,account:t,sourceMessage:s,onClose:a,onAccountChange:r})=>{const{state:o,setOutboxMessageId:i,startSendPolling:l}=At(),{pushError:u}=Je(),{outboxMessageId:d}=o,[m,f]=c.useState([]),[h,b]=c.useState([]),[v,p]=c.useState([]),[x,g]=c.useState(""),[y,k]=c.useState(!1),[w,N]=c.useState(!1),[T,C]=c.useState(t?.accountId),[S,D]=c.useState(!1),M=c.useRef(d);c.useEffect(()=>{M.current!==d&&(M.current=d,d&&(f([]),b([]),p([]),g(""),k(!1),N(!1),E(au),D(!1)))},[d]);const{signature:A}=J0(T),[P,E]=c.useState(()=>Tp(A.plainText)),{data:j}=ce({...k0({path:{outboxMessageId:d??""}}),enabled:!!d&&!S});c.useEffect(()=>{!j||S||(f(j.toAddresses.map(J=>({email:J,displayName:void 0}))),j.ccAddresses&&j.ccAddresses.length>0&&(b(j.ccAddresses.map(J=>({email:J,displayName:void 0}))),k(!0)),j.bccAddresses&&j.bccAddresses.length>0&&(p(j.bccAddresses.map(J=>({email:J,displayName:void 0}))),N(!0)),j.subject&&g(j.subject),j.textBody&&E([{type:"p",children:[{text:j.textBody}]}]),C(j.accountId),D(!0))},[j,S]),c.useEffect(()=>{if(s){if(e==="reply"||e==="reply_all"){const{to:J,cc:re}=zp(s,e,t?.email);f(J),b(re),re.length>0&&k(!0),g(Rp(s.envelope.subject))}e==="forward"&&g(Mp(s.envelope.subject))}},[e,s,t?.email]);const z=e==="reply"||e==="reply_all"||e==="forward",{data:O}=Zc({messageId:s?.message.messageId,bodyParts:s?.bodyParts,enabled:z&&!!s}),I=O?.kind==="text"?O.body:"",F=O?.kind==="html"?Cp(O.body):void 0,R=s?.envelope.from[0]?.displayName??s?.envelope.from[0]?.normalizedEmail,{saveStatus:L,saveError:B,saveDraft:_,cancelAutoSave:X}=gp({outboxMessageId:d,onDraftCreated:i});c.useEffect(()=>{B&&u({title:"Couldn't save draft",detail:it(B)??"Saving the draft failed.",error:B})},[B,u]);const ee=ve(Cl()),Y=ve(El()),fe=ve({...Xn(),onError:J=>{u(Gt("Couldn't discard draft","The draft wasn't discarded.",J))}}),{data:ue}=ce({...xt(),staleTime:1/0}),te=ue?.accounts.find(J=>J.accountId===T),U=te?G0(te):!1,K=ee.isPending||Y.isPending,ae=m.length>0&&!!T&&!U;c.useEffect(()=>{if(!T||d&&!S||Dp(m,h,v,x,P))return;const J=or(P),re=Ii(P);_({accountId:T,toAddresses:m.map(de=>de.email),ccAddresses:h.length>0?h.map(de=>de.email):void 0,bccAddresses:v.length>0?v.map(de=>de.email):void 0,subject:x||void 0,textBody:J||void 0,htmlBody:re||void 0})},[T,d,S,m,h,v,x,P,_]);const Pe=c.useCallback(async()=>{if(!T||m.length===0)return;X();const J=s&&(e==="reply"||e==="reply_all")?Ap(s):{};let re=d,de=!1;if(!re){const We=or(P),Le=Ii(P),pe=await ee.mutateAsync({body:{accountId:T,toAddresses:m.map(ke=>ke.email),ccAddresses:h.length>0?h.map(ke=>ke.email):void 0,bccAddresses:v.length>0?v.map(ke=>ke.email):void 0,subject:x||void 0,textBody:We||void 0,htmlBody:Le||void 0,sendImmediately:!0,...J}}).catch(ke=>(u({title:"Couldn't send message",detail:it(ke)??"Saving the draft failed.",error:ke}),null));if(pe===null)return;re=pe.outboxMessageId,de=!0,i(re)}await Y.mutateAsync({path:{outboxMessageId:re}}).catch(We=>(u({title:"Couldn't send message",detail:it(We)??(de?"The draft was saved but the send request failed. Try again from the Outbox.":"The send request failed. Try again."),error:We}),null))!==null&&(l(re),a())},[T,m,h,v,x,P,e,s,d,ee,Y,X,l,i,u,a]),Te=c.useCallback(()=>{X(),d&&fe.mutate({path:{outboxMessageId:d}}),a()},[X,d,fe,a]),V=c.useCallback(J=>{C(J.accountId),r?.(J)},[r]);return n.jsx(v1,{banner:te&&U?n.jsx(vp,{accountId:te.accountId}):void 0,header:n.jsx(Op,{selectedAccountId:T,onAccountChange:V,toAddresses:m,setToAddresses:f,ccAddresses:h,setCcAddresses:b,bccAddresses:v,setBccAddresses:p,showCc:y,setShowCc:k,showBcc:w,setShowBcc:N,subject:x,setSubject:g}),quoted:I||F?n.jsx(K1,{text:I,html:F,senderName:R}):void 0,actionBar:n.jsx(x1,{onSend:Pe,onDiscard:Te,sending:K,canSend:ae,saveStatus:L,unavailableReason:U?"SMTP not configured":void 0,onUnavailable:J=>u({title:"Can't send yet",detail:J})}),children:n.jsx(c.Suspense,{fallback:n.jsx(Ep,{}),children:n.jsx(Np,{value:P,onChange:E,onSubmit:Pe,autoFocus:e==="new"})})})},Mi=({mode:e,account:t,sourceMessage:s,onClose:a})=>n.jsx("div",{className:"border-t border-line bg-canvas max-h-[400px] flex flex-col",children:n.jsx(Jr,{mode:e,account:t,sourceMessage:s,onClose:a})}),ru=({message:e,icon:t})=>n.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[t&&n.jsx("div",{className:"mb-4 text-fg-muted",children:t}),n.jsx("p",{className:"text-fg-muted",children:e})]}),Zr=({enabled:e=!0,bindings:t,capture:s=!1})=>{const a=c.useCallback(r=>{const o=r.target;if(!(o.tagName==="INPUT"||o.tagName==="TEXTAREA"||o.isContentEditable))for(const i of t){if(!(r.key.toLowerCase()===i.key.toLowerCase())||i.requireShift!==void 0&&i.requireShift!==r.shiftKey)continue;const u=r.ctrlKey||r.metaKey;if(i.requireMeta!==void 0){if(i.requireMeta!==u)continue}else{const d=i.noModifiers??!0,m=u||r.altKey||i.requireShift===void 0&&r.shiftKey;if(d&&m)continue}i.preventDefault&&r.preventDefault(),i.stopPropagation&&(r.stopPropagation(),r.stopImmediatePropagation()),i.handler(r);return}},[t]);c.useEffect(()=>{if(e)return window.addEventListener("keydown",a,s),()=>window.removeEventListener("keydown",a,s)},[e,a,s])},ou=e=>{const{data:t,isLoading:s}=ce({...xt(),staleTime:1/0}),a=c.useMemo(()=>(t?.accounts??[]).map(l=>l.accountId),[t?.accounts]),r=Lt({queries:a.map(l=>({...He({path:{accountId:l}}),staleTime:1/0,enabled:!!e}))}),o=s||r.some(l=>l.isLoading);return{accountId:c.useMemo(()=>{if(e){for(let l=0;l<a.length;l++)if((r[l].data?.items??[]).some(m=>m.mailboxId===e))return a[l]}},[e,a,r]),isLoading:o}},Pp=e=>typeof e=="object"&&e!==null&&Array.isArray(e.pages),Lp=e=>typeof e=="object"&&e!==null&&Array.isArray(e.items),iu=(e,t)=>e===void 0?e:Pp(e)?{...e,pages:e.pages.map(s=>({...s,items:t(s.items)}))}:Lp(e)?{...e,items:t(e.items)}:e,Ft=e=>{const t=[];for(const s of new Set(e))t.push(zr({path:{mailboxId:s}})),t.push(Il({path:{mailboxId:s}}));return t.push(Tl()),t},cn=(e,t)=>Promise.all(t.map(s=>e.cancelQueries({queryKey:s}))),un=(e,t)=>t.flatMap(s=>e.getQueriesData({queryKey:s})).filter(s=>s[1]!==void 0).map(([s,a])=>({queryKey:s,data:a})),dn=(e,t,s)=>{const a=r=>iu(r,s);for(const r of t)e.setQueriesData({queryKey:r},a)},mn=(e,t)=>{for(const s of t)e.setQueryData(s.queryKey,s.data)},_t=(e,t)=>{for(const s of t)e.invalidateQueries({queryKey:s})},$p=3e3,Fp=(e,t,s)=>{if(e.length===0)return()=>{};const a=setTimeout(()=>s(e),t);return()=>clearTimeout(a)},eo=(e,t,s)=>{const a=new Map(t.map(o=>[o.messageId,o.mailboxId])),r=new Set;for(const o of e)r.add(a.get(o)??s);return[...r]},qn=(e,t,s)=>e.map(a=>t.has(a.messageId)?{...a,isRead:s}:a),_p=(e,t,s,a)=>e.filter(r=>!r.isRead&&t.has(r.threadMessageId)&&!s.has(r.messageId)&&!a.has(r.messageId)).map(r=>r.messageId),qp=({messages:e,expandedIds:t,threadId:s,mailboxId:a,accountId:r})=>{const o=ye(),{pushError:i}=Je(),l=c.useRef(new Set),u=c.useRef(new Set),{mutate:d}=ve({...Jn(),onMutate:async h=>{const b=new Set(h.body.messageIds??[]),v=h.body.isRead??!0,p=ts({path:{threadId:s}}),x=Ft(eo(b,e,a));await Promise.all([o.cancelQueries({queryKey:p}),cn(o,x)]);const g=o.getQueriesData({queryKey:p}).filter(k=>k[1]!==void 0).map(([k,w])=>({queryKey:k,data:w})),y=un(o,x);return o.setQueriesData({queryKey:p},k=>k&&{...k,items:qn(k.items,b,v)}),dn(o,x,k=>qn(k,b,v)),{threadMessagesPrefix:p,listPrefixes:x,previousThreadMessages:g,previousThreadsList:y}},onSuccess:(h,b)=>{const v=b.body.messageIds??[];for(const p of v)l.current.add(p),u.current.delete(p)},onError:(h,b,v)=>{const p=b.body.messageIds??[];for(const g of p)u.current.delete(g);if(v){for(const g of v.previousThreadMessages)o.setQueryData(g.queryKey,g.data);mn(o,v.previousThreadsList)}const x=b.body.isRead??!0;i({title:x?"Couldn't mark as read":"Couldn't mark as unread",detail:it(h),error:h})},onSettled:(h,b,v,p)=>{p&&(o.invalidateQueries({queryKey:p.threadMessagesPrefix}),_t(o,p.listPrefixes),r&&o.invalidateQueries({queryKey:es({path:{accountId:r}})}))}}),m=c.useCallback(h=>{const b=h.filter(v=>!l.current.has(v)&&!u.current.has(v));if(b.length!==0){for(const v of b)u.current.add(v);d({body:{messageIds:b,isRead:!0}})}},[d]),f=c.useMemo(()=>_p(e,t,l.current,u.current),[e,t]);c.useEffect(()=>Fp(f,$p,m),[f,m]),c.useEffect(()=>{l.current.clear(),u.current.clear()},[s])},oa=e=>{const{mailboxId:t,accountId:s,messages:a}=e,r=ye(),{pushError:o}=Je(),{mutate:i,isPending:l}=ve({...Jn(),onError:(d,m)=>{const f=m.body.isRead??!0;o({title:f?"Couldn't mark as read":"Couldn't mark as unread",detail:it(d),error:d})},onSettled:(d,m,f)=>{_t(r,Ft(eo(f.body.messageIds??[],a??[],t))),s&&r.invalidateQueries({queryKey:es({path:{accountId:s}})})}});return{toggleReadFor:c.useCallback((d,m)=>{d.length!==0&&i({body:{messageIds:d,isRead:m}})},[i]),isPending:l}},Bp=60,Kp=1.5,Up=(e,t,s)=>{const a=Math.abs(e),r=Math.abs(t);return a<s?{direction:null}:a<r*Kp?{direction:null}:{direction:e<0?"left":"right"}},Hp=({onSwipeLeft:e,onSwipeRight:t,thresholdPx:s=Bp})=>{const a=c.useRef(null),r=c.useCallback(u=>{if(u.pointerType==="mouse"){a.current=null;return}a.current={x:u.clientX,y:u.clientY}},[]),o=c.useCallback(()=>{},[]),i=c.useCallback(u=>{const d=a.current;if(a.current=null,!d)return;const{direction:m}=Up(u.clientX-d.x,u.clientY-d.y,s);m==="left"&&e?.(),m==="right"&&t?.()},[e,t,s]),l=c.useCallback(()=>{a.current=null},[]);return{handlers:{onPointerDown:r,onPointerMove:o,onPointerUp:i,onPointerCancel:l}}},Wp=(e,t,s)=>t?.find(a=>a.messageId===e)?.mailboxId??s,zi=(e,t,s)=>e.map(a=>a.messageId===t?{...a,hasStars:s}:a),to=({threadId:e,mailboxId:t,messages:s})=>{const a=ye(),{pushError:r}=Je(),{mutate:o,isPending:i,variables:l}=ve({...j0(),onMutate:async d=>{const m=d.path.messageId,f=d.body.isStarred??!1,h=ts({path:{threadId:e}}),b=Ft([Wp(m,s,t)]);await Promise.all([a.cancelQueries({queryKey:h}),cn(a,b)]);const v=a.getQueriesData({queryKey:h}).filter(x=>x[1]!==void 0).map(([x,g])=>({queryKey:x,data:g})),p=un(a,b);return a.setQueriesData({queryKey:h},x=>iu(x,g=>zi(g,m,f))),dn(a,b,x=>zi(x,m,f)),{threadMessagesPrefix:h,listPrefixes:b,previousThreadMessages:v,previousThreadsList:p}},onError:(d,m,f)=>{if(f){for(const b of f.previousThreadMessages)a.setQueryData(b.queryKey,b.data);mn(a,f.previousThreadsList)}const h=m.body.isStarred??!1;r({title:h?"Couldn't star message":"Couldn't unstar message",detail:it(d),error:d})},onSettled:(d,m,f,h)=>{h&&(a.invalidateQueries({queryKey:h.threadMessagesPrefix}),_t(a,h.listPrefixes))}});return{toggleStar:(d,m)=>{o({path:{messageId:d},body:{isStarred:!m}})},isPending:i,pendingMessageId:i?l?.path.messageId:void 0}};function ia(e){return e===void 0?"uncategorized":e}const ot={uncategorized:"uncategorized",personal:"personal",newsletter:"newsletter",marketing:"marketing",automated:"automated",transactional:"transactional",social:"social"},Ai={MoveToInbox:"MoveToInbox",MoveToJunk:"MoveToJunk"},Vp={inbox:"Inbox",junk:"Junk"},so=e=>e.destinationMailboxId!==void 0,Qp=(e,t)=>{if(so(e))return`Moved from ${t??"another folder"} by Remit`;const s=e.fromPlacement??"";return`Moved from ${Vp[s]??"another folder"} by Remit`},Yp=(e,t)=>{if(e===Ai.MoveToInbox)return t.inboxMailboxId;if(e===Ai.MoveToJunk)return t.junkMailboxId},Gp=(e,t,s)=>{if(!e||!t)return!1;const a=so(e)?e.destinationMailboxId:Yp(e.action,s);return a!==void 0&&a===t},Xp=(e,t)=>{if(e){if(so(e))return e.fromMailboxId;if(e.fromPlacement==="inbox")return t.inboxMailboxId;if(e.fromPlacement==="junk")return t.junkMailboxId}},la=(e,t)=>{const{data:s,isLoading:a}=ce({...xt(),staleTime:1/0,enabled:!!e});return{mailboxId:c.useMemo(()=>e?s?.accounts.find(i=>i.accountId===e)?.folderAppointments.find(i=>i.role===t)?.mailboxId:void 0,[s,e,t]),isLoading:a}},Jp=e=>{const{mailboxId:t,isLoading:s}=la(e,"Archive");return{archiveMailboxId:t,isLoading:s}},Zp=e=>{const{mailboxId:t,isLoading:s}=la(e,"Drafts");return{draftsMailboxId:t,isLoading:s}},no=e=>{const{mailboxId:t,isLoading:s}=la(e,"Inbox");return{inboxMailboxId:t,isLoading:s}},ca=e=>{const{mailboxId:t,isLoading:s}=la(e,"Junk");return{junkMailboxId:t,isLoading:s}},lu=e=>{const{data:t}=ce({...xt(),staleTime:1/0,enabled:!!e});return c.useMemo(()=>t?.accounts.find(s=>s.accountId===e)?.folderAppointments??[],[t,e])},Di=(e,t)=>e.filter(s=>!t.has(s.messageId)),Mt=({mailboxId:e,threadId:t,accountId:s,onAfterOptimisticRemove:a})=>{const r=ye(),{pushError:o}=Je(),{mutate:i,isPending:l}=ve({...S0(),onMutate:async d=>{const m=new Set(d.body.messageIds??[]),f=t?ts({path:{threadId:t}}):[],h=Ft([e,d.body.destinationMailboxId]);await Promise.all([...t?[r.cancelQueries({queryKey:f})]:[],cn(r,h)]);const b=t?r.getQueriesData({queryKey:f}).filter(p=>p[1]!==void 0).map(([p,x])=>({queryKey:p,data:x})):[],v=un(r,h);return t&&r.setQueriesData({queryKey:f},p=>p&&{...p,items:Di(p.items,m)}),dn(r,h,p=>Di(p,m)),a?.(Array.from(m)),{threadMessagesPrefix:f,listPrefixes:h,previousThreadMessages:b,previousThreadsList:v}},onError:(d,m,f)=>{if(f){for(const b of f.previousThreadMessages)r.setQueryData(b.queryKey,b.data);mn(r,f.previousThreadsList)}const h=m.body.messageIds?.length??0;o({title:h>1?`Couldn't move ${h} messages`:"Couldn't move this message",detail:it(d),error:d})},onSettled:(d,m,f,h)=>{h&&(t&&r.invalidateQueries({queryKey:h.threadMessagesPrefix}),_t(r,h.listPrefixes),s&&r.invalidateQueries({queryKey:es({path:{accountId:s}})}))}});return{moveMessages:c.useCallback((d,m)=>{d.length!==0&&i({body:{messageIds:d,destinationMailboxId:m}})},[i]),isPending:l}},eb=({accountId:e,messageId:t,threadId:s,mailboxId:a,autoMoved:r})=>{const{inboxMailboxId:o}=no(e),{junkMailboxId:i}=ca(e),{moveMessages:l,isPending:u}=Mt({mailboxId:a,threadId:s,accountId:e}),{data:d}=ce({...He({path:{accountId:e??""}}),staleTime:1/0,enabled:!!e&&r?.fromMailboxId!==void 0}),m={inboxMailboxId:o,junkMailboxId:i},f=Gp(r,a,m),h=Xp(r,m),b=c.useCallback(()=>{h&&l([t],h)},[l,t,h]);if(!f||!r)return{show:!1,label:"",isUndoing:!1};const v=r.fromMailboxId?d?.items.filter(p=>p.mailboxId===r.fromMailboxId).map(p=>ks(p.fullPath))[0]:void 0;return{show:!0,label:Qp(r,v),onUndo:h?b:void 0,isUndoing:u,...r.filterId?{filtersHref:"/settings/filters"}:{}}};function cu({accountId:e,messageId:t,threadId:s,mailboxId:a,autoMoved:r,size:o="sm"}){const i=eb({accountId:e,messageId:t,threadId:s,mailboxId:a,autoMoved:r});return i.show?n.jsx(u1,{label:i.label,size:o,onUndo:i.onUndo,undoLabel:i.isUndoing?"Undoing…":"Undo",filtersHref:o==="md"?i.filtersHref:void 0}):null}const Oi=(e,t)=>e.filter(s=>!t.has(s.messageId)),tb=e=>e.filter(t=>t.isDeleted!==!0),Xt=({mailboxId:e,threadId:t,accountId:s,messages:a,onAfterOptimisticRemove:r})=>{const o=ye(),{pushError:i}=Je(),{mutate:l,isPending:u}=ve({...C0(),onMutate:async m=>{const f=new Set(m.body.messageIds??[]),h=t?ts({path:{threadId:t}}):[],b=Ft(eo(f,a??[],e));await Promise.all([o.cancelQueries({queryKey:h}),cn(o,b)]);const v=t?o.getQueriesData({queryKey:h}).filter(x=>x[1]!==void 0).map(([x,g])=>({queryKey:x,data:g})):[],p=un(o,b);return t&&o.setQueriesData({queryKey:h},x=>x&&{...x,items:Oi(x.items,f)}),dn(o,b,x=>Oi(x,f)),r?.(Array.from(f)),{threadMessagesPrefix:h,listPrefixes:b,previousThreadMessages:v,previousThreadsList:p}},onError:(m,f,h)=>{if(h){for(const v of h.previousThreadMessages)o.setQueryData(v.queryKey,v.data);mn(o,h.previousThreadsList)}const b=f.body.messageIds?.length??0;i({title:b>1?`Couldn't delete ${b} messages`:"Couldn't delete this message",detail:it(m),error:m})},onSettled:(m,f,h,b)=>{b&&(t&&o.invalidateQueries({queryKey:b.threadMessagesPrefix}),_t(o,b.listPrefixes),s&&o.invalidateQueries({queryKey:es({path:{accountId:s}})}))}});return{deleteMessages:c.useCallback(m=>{m.length!==0&&l({body:{messageIds:m}})},[l]),isPending:u}},uu=(e,t=Date.now())=>({value:e,setAt:t}),sb=(e,t,s,a)=>{if(e.addressId!==t)return e;const r={...e.flags??{}};return s?r.trusted=uu(!0,a):delete r.trusted,{...e,flags:r}},nb=(e,t,s,a)=>{const r=o=>o.map(i=>sb(i,t,s,a));return{...e,envelope:{...e.envelope,from:r(e.envelope.from),to:r(e.envelope.to),cc:r(e.envelope.cc),bcc:r(e.envelope.bcc),replyTo:r(e.envelope.replyTo)}}},ao=({messageId:e})=>{const t=ye(),{pushError:s}=Je(),{mutate:a,isPending:r,error:o,reset:i}=ve({...Rl(),onMutate:async u=>{const d=u.path.addressId,f=u.body.flags?.trusted?.value===!0,h=Sl({path:{messageId:e}});await t.cancelQueries({queryKey:h});const b=t.getQueriesData({queryKey:h}).filter(v=>v[1]!==void 0).map(([v,p])=>({queryKey:v,data:p}));return t.setQueriesData({queryKey:h},v=>v&&nb(v,d,f)),{describePrefix:h,previous:b}},onError:(u,d,m)=>{if(m)for(const f of m.previous)t.setQueryData(f.queryKey,f.data);s(Gt("Couldn't trust sender","The change wasn't saved.",u))},onSettled:(u,d,m,f)=>{f&&t.invalidateQueries({queryKey:f.describePrefix})}});return{toggleTrusted:(u,d)=>{a({path:{addressId:u},body:{flags:{trusted:uu(!d)}}})},isPending:r,error:o,reset:i}};var ua="Dialog",[du]=fh(ua),[ab,at]=du(ua),mu=e=>{const{__scopeDialog:t,children:s,open:a,defaultOpen:r,onOpenChange:o,modal:i=!0}=e,l=c.useRef(null),u=c.useRef(null),[d,m]=ph({prop:a,defaultProp:r??!1,onChange:o,caller:ua});return n.jsx(ab,{scope:t,triggerRef:l,contentRef:u,contentId:za(),titleId:za(),descriptionId:za(),open:d,onOpenChange:m,onOpenToggle:c.useCallback(()=>m(f=>!f),[m]),modal:i,children:s})};mu.displayName=ua;var fu="DialogTrigger",rb=c.forwardRef((e,t)=>{const{__scopeDialog:s,...a}=e,r=at(fu,s),o=ss(t,r.triggerRef);return n.jsx(vt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":oo(r.open),...a,ref:o,onClick:It(e.onClick,r.onOpenToggle)})});rb.displayName=fu;var ro="DialogPortal",[ob,hu]=du(ro,{forceMount:void 0}),gu=e=>{const{__scopeDialog:t,forceMount:s,children:a,container:r}=e,o=at(ro,t);return n.jsx(ob,{scope:t,forceMount:s,children:c.Children.map(a,i=>n.jsx(sa,{present:s||o.open,children:n.jsx(Rc,{asChild:!0,container:r,children:i})}))})};gu.displayName=ro;var Bn="DialogOverlay",pu=c.forwardRef((e,t)=>{const s=hu(Bn,e.__scopeDialog),{forceMount:a=s.forceMount,...r}=e,o=at(Bn,e.__scopeDialog);return o.modal?n.jsx(sa,{present:a||o.open,children:n.jsx(lb,{...r,ref:t})}):null});pu.displayName=Bn;var ib=Vr("DialogOverlay.RemoveScroll"),lb=c.forwardRef((e,t)=>{const{__scopeDialog:s,...a}=e,r=at(Bn,s),o=Oh(),i=ss(t,o);return n.jsx($c,{as:ib,allowPinchZoom:!0,shards:[r.contentRef],children:n.jsx(vt.div,{"data-state":oo(r.open),...a,ref:i,style:{pointerEvents:"auto",...a.style}})})}),Cs="DialogContent",bu=c.forwardRef((e,t)=>{const s=hu(Cs,e.__scopeDialog),{forceMount:a=s.forceMount,...r}=e,o=at(Cs,e.__scopeDialog);return n.jsx(sa,{present:a||o.open,children:o.modal?n.jsx(cb,{...r,ref:t}):n.jsx(ub,{...r,ref:t})})});bu.displayName=Cs;var cb=c.forwardRef((e,t)=>{const s=at(Cs,e.__scopeDialog),a=c.useRef(null),r=ss(t,s.contentRef,a);return c.useEffect(()=>{const o=a.current;if(o)return ng(o)},[]),n.jsx(xu,{...e,ref:r,trapFocus:s.open,disableOutsidePointerEvents:s.open,onCloseAutoFocus:It(e.onCloseAutoFocus,o=>{o.preventDefault(),s.triggerRef.current?.focus()}),onPointerDownOutside:It(e.onPointerDownOutside,o=>{const i=o.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0;(i.button===2||l)&&o.preventDefault()}),onFocusOutside:It(e.onFocusOutside,o=>o.preventDefault())})}),ub=c.forwardRef((e,t)=>{const s=at(Cs,e.__scopeDialog),a=c.useRef(!1),r=c.useRef(!1);return n.jsx(xu,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(a.current||s.triggerRef.current?.focus(),o.preventDefault()),a.current=!1,r.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const i=o.target;s.triggerRef.current?.contains(i)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&r.current&&o.preventDefault()}})}),xu=c.forwardRef((e,t)=>{const{__scopeDialog:s,trapFocus:a,onOpenAutoFocus:r,onCloseAutoFocus:o,...i}=e,l=at(Cs,s);return Fh(),n.jsx(n.Fragment,{children:n.jsx(Ic,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:r,onUnmountAutoFocus:o,children:n.jsx(Nc,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":oo(l.open),...i,ref:t,deferPointerDownOutside:!0,onDismiss:()=>l.onOpenChange(!1)})})})}),vu="DialogTitle",yu=c.forwardRef((e,t)=>{const{__scopeDialog:s,...a}=e,r=at(vu,s);return n.jsx(vt.h2,{id:r.titleId,...a,ref:t})});yu.displayName=vu;var ku="DialogDescription",db=c.forwardRef((e,t)=>{const{__scopeDialog:s,...a}=e,r=at(ku,s);return n.jsx(vt.p,{id:r.descriptionId,...a,ref:t})});db.displayName=ku;var wu="DialogClose",mb=c.forwardRef((e,t)=>{const{__scopeDialog:s,...a}=e,r=at(wu,s);return n.jsx(vt.button,{type:"button",...a,ref:t,onClick:It(e.onClick,()=>r.onOpenChange(!1))})});mb.displayName=wu;function oo(e){return e?"open":"closed"}function fb(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",t.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}const ju=W.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}),fn=()=>{const e=W.useContext(ju);if(!e)throw new Error("useDrawerContext must be used within a Drawer.Root");return e};fb(`[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(
117
+ [data-state=closed]
118
+ ){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 hb(){const e=navigator.userAgent;return typeof window<"u"&&(/Firefox/.test(e)&&/Mobile/.test(e)||/FxiOS/.test(e))}function gb(){return io(/^Mac/)}function pb(){return io(/^iPhone/)}function Pi(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function bb(){return io(/^iPad/)||gb()&&navigator.maxTouchPoints>1}function Su(){return pb()||bb()}function io(e){return typeof window<"u"&&window.navigator!=null?e.test(window.navigator.platform):void 0}const xb=24,vb=typeof window<"u"?c.useLayoutEffect:c.useEffect;function Li(...e){return(...t)=>{for(let s of e)typeof s=="function"&&s(...t)}}const $a=typeof document<"u"&&window.visualViewport;function $i(e){let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowX+t.overflowY)}function Cu(e){for($i(e)&&(e=e.parentElement);e&&!$i(e);)e=e.parentElement;return e||document.scrollingElement||document.documentElement}const yb=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);let Tn=0,Fa;function kb(e={}){let{isDisabled:t}=e;vb(()=>{if(!t)return Tn++,Tn===1&&Su()&&(Fa=wb()),()=>{Tn--,Tn===0&&Fa?.()}},[t])}function wb(){let e,t=0,s=f=>{e=Cu(f.target),!(e===document.documentElement&&e===document.body)&&(t=f.changedTouches[0].pageY)},a=f=>{if(!e||e===document.documentElement||e===document.body){f.preventDefault();return}let h=f.changedTouches[0].pageY,b=e.scrollTop,v=e.scrollHeight-e.clientHeight;v!==0&&((b<=0&&h>t||b>=v&&h<t)&&f.preventDefault(),t=h)},r=f=>{let h=f.target;lr(h)&&h!==document.activeElement&&(f.preventDefault(),h.style.transform="translateY(-2000px)",h.focus(),requestAnimationFrame(()=>{h.style.transform=""}))},o=f=>{let h=f.target;lr(h)&&(h.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{h.style.transform="",$a&&($a.height<window.innerHeight?requestAnimationFrame(()=>{Fi(h)}):$a.addEventListener("resize",()=>Fi(h),{once:!0}))}))},i=()=>{window.scrollTo(0,0)},l=window.pageXOffset,u=window.pageYOffset,d=Li(jb(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`));window.scrollTo(0,0);let m=Li($s(document,"touchstart",s,{passive:!1,capture:!0}),$s(document,"touchmove",a,{passive:!1,capture:!0}),$s(document,"touchend",r,{passive:!1,capture:!0}),$s(document,"focus",o,!0),$s(window,"scroll",i));return()=>{d(),m(),window.scrollTo(l,u)}}function jb(e,t,s){let a=e.style[t];return e.style[t]=s,()=>{e.style[t]=a}}function $s(e,t,s,a){return e.addEventListener(t,s,a),()=>{e.removeEventListener(t,s,a)}}function Fi(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let s=Cu(e);if(s!==document.documentElement&&s!==document.body&&s!==e){let a=s.getBoundingClientRect().top,r=e.getBoundingClientRect().top,o=e.getBoundingClientRect().bottom;const i=s.getBoundingClientRect().bottom+xb;o>i&&(s.scrollTop+=r-a)}e=s.parentElement}}function lr(e){return e instanceof HTMLInputElement&&!yb.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function Sb(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Cb(...e){return t=>e.forEach(s=>Sb(s,t))}function Nu(...e){return c.useCallback(Cb(...e),e)}const Eu=new WeakMap;function Ce(e,t,s=!1){if(!e||!(e instanceof HTMLElement))return;let a={};Object.entries(t).forEach(([r,o])=>{if(r.startsWith("--")){e.style.setProperty(r,o);return}a[r]=e.style[r],e.style[r]=o}),!s&&Eu.set(e,a)}function Nb(e,t){if(!e||!(e instanceof HTMLElement))return;let s=Eu.get(e);s&&(e.style[t]=s[t])}const we=e=>{switch(e){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return e}};function Rn(e,t){if(!e)return null;const s=window.getComputedStyle(e),a=s.transform||s.webkitTransform||s.mozTransform;let r=a.match(/^matrix3d\((.+)\)$/);return r?parseFloat(r[1].split(", ")[we(t)?13:12]):(r=a.match(/^matrix\((.+)\)$/),r?parseFloat(r[1].split(", ")[we(t)?5:4]):null)}function Eb(e){return 8*(Math.log(e+1)-2)}function _a(e,t){if(!e)return()=>{};const s=e.style.cssText;return Object.assign(e.style,t),()=>{e.style.cssText=s}}function Ib(...e){return(...t)=>{for(const s of e)typeof s=="function"&&s(...t)}}const be={DURATION:.5,EASE:[.32,.72,0,1]},Iu=.4,Tb=.25,Rb=100,Tu=8,Wt=16,cr=26,qa="vaul-dragging";function Ru(e){const t=W.useRef(e);return W.useEffect(()=>{t.current=e}),W.useMemo(()=>(...s)=>t.current==null?void 0:t.current.call(t,...s),[])}function Mb({defaultProp:e,onChange:t}){const s=W.useState(e),[a]=s,r=W.useRef(a),o=Ru(t);return W.useEffect(()=>{r.current!==a&&(o(a),r.current=a)},[a,r,o]),s}function Mu({prop:e,defaultProp:t,onChange:s=()=>{}}){const[a,r]=Mb({defaultProp:t,onChange:s}),o=e!==void 0,i=o?e:a,l=Ru(s),u=W.useCallback(d=>{if(o){const f=typeof d=="function"?d(e):d;f!==e&&l(f)}else r(d)},[o,e,r,l]);return[i,u]}function zb({activeSnapPointProp:e,setActiveSnapPointProp:t,snapPoints:s,drawerRef:a,overlayRef:r,fadeFromIndex:o,onSnapPointChange:i,direction:l="bottom",container:u,snapToSequentialPoint:d}){const[m,f]=Mu({prop:e,defaultProp:s?.[0],onChange:t}),[h,b]=W.useState(typeof window<"u"?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);W.useEffect(()=>{function C(){b({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",C),()=>window.removeEventListener("resize",C)},[]);const v=W.useMemo(()=>m===s?.[s.length-1]||null,[s,m]),p=W.useMemo(()=>{var C;return(C=s?.findIndex(S=>S===m))!=null?C:null},[s,m]),x=s&&s.length>0&&(o||o===0)&&!Number.isNaN(o)&&s[o]===m||!s,g=W.useMemo(()=>{const C=u?{width:u.getBoundingClientRect().width,height:u.getBoundingClientRect().height}:typeof window<"u"?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};var S;return(S=s?.map(D=>{const M=typeof D=="string";let A=0;if(M&&(A=parseInt(D,10)),we(l)){const E=M?A:h?D*C.height:0;return h?l==="bottom"?C.height-E:-C.height+E:E}const P=M?A:h?D*C.width:0;return h?l==="right"?C.width-P:-C.width+P:P}))!=null?S:[]},[s,h,u]),y=W.useMemo(()=>p!==null?g?.[p]:null,[g,p]),k=W.useCallback(C=>{var S;const D=(S=g?.findIndex(M=>M===C))!=null?S:null;i(D),Ce(a.current,{transition:`transform ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,transform:we(l)?`translate3d(0, ${C}px, 0)`:`translate3d(${C}px, 0, 0)`}),g&&D!==g.length-1&&o!==void 0&&D!==o&&D<o?Ce(r.current,{transition:`opacity ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,opacity:"0"}):Ce(r.current,{transition:`opacity ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,opacity:"1"}),f(s?.[Math.max(D,0)])},[a.current,s,g,o,r,f]);W.useEffect(()=>{if(m||e){var C;const S=(C=s?.findIndex(D=>D===e||D===m))!=null?C:-1;g&&S!==-1&&typeof g[S]=="number"&&k(g[S])}},[m,e,s,g,k]);function w({draggedDistance:C,closeDrawer:S,velocity:D,dismissible:M}){if(o===void 0)return;const A=l==="bottom"||l==="right"?(y??0)-C:(y??0)+C,P=p===o-1,E=p===0,j=C>0;if(P&&Ce(r.current,{transition:`opacity ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`}),!d&&D>2&&!j){M?S():k(g[0]);return}if(!d&&D>2&&j&&g&&s){k(g[s.length-1]);return}const z=g?.reduce((I,F)=>typeof I!="number"||typeof F!="number"?I:Math.abs(F-A)<Math.abs(I-A)?F:I),O=we(l)?window.innerHeight:window.innerWidth;if(D>Iu&&Math.abs(C)<O*.4){const I=j?1:-1;if(I>0&&v&&s){k(g[s.length-1]);return}if(E&&I<0&&M&&S(),p===null)return;k(g[p+I]);return}k(z)}function N({draggedDistance:C}){if(y===null)return;const S=l==="bottom"||l==="right"?y-C:y+C;(l==="bottom"||l==="right")&&S<g[g.length-1]||(l==="top"||l==="left")&&S>g[g.length-1]||Ce(a.current,{transform:we(l)?`translate3d(0, ${S}px, 0)`:`translate3d(${S}px, 0, 0)`})}function T(C,S){if(!s||typeof p!="number"||!g||o===void 0)return null;const D=p===o-1;if(p>=o&&S)return 0;if(D&&!S)return 1;if(!x&&!D)return null;const A=D?p+1:p-1,P=D?g[A]-g[A-1]:g[A+1]-g[A],E=C/Math.abs(P);return D?1-E:E}return{isLastSnapPoint:v,activeSnapPoint:m,shouldFade:x,getPercentageDragged:T,setActiveSnapPoint:f,activeSnapPointIndex:p,onRelease:w,onDrag:N,snapPointsOffset:g}}const Ab=()=>()=>{};function Db(){const{direction:e,isOpen:t,shouldScaleBackground:s,setBackgroundColorOnScale:a,noBodyStyles:r}=fn(),o=W.useRef(null),i=c.useMemo(()=>document.body.style.backgroundColor,[]);function l(){return(window.innerWidth-cr)/window.innerWidth}W.useEffect(()=>{if(t&&s){o.current&&clearTimeout(o.current);const u=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!u)return;Ib(a&&!r?_a(document.body,{background:"black"}):Ab,_a(u,{transformOrigin:we(e)?"top":"left",transitionProperty:"transform, border-radius",transitionDuration:`${be.DURATION}s`,transitionTimingFunction:`cubic-bezier(${be.EASE.join(",")})`}));const d=_a(u,{borderRadius:`${Tu}px`,overflow:"hidden",...we(e)?{transform:`scale(${l()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`}:{transform:`scale(${l()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`}});return()=>{d(),o.current=window.setTimeout(()=>{i?document.body.style.background=i:document.body.style.removeProperty("background")},be.DURATION*1e3)}}},[t,s,i])}let Fs=null;function Ob({isOpen:e,modal:t,nested:s,hasBeenOpened:a,preventScrollRestoration:r,noBodyStyles:o}){const[i,l]=W.useState(()=>typeof window<"u"?window.location.href:""),u=W.useRef(0),d=W.useCallback(()=>{if(Pi()&&Fs===null&&e&&!o){Fs={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};const{scrollX:f,innerHeight:h}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:`${-u.current}px`,left:`${-f}px`,right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{const b=h-window.innerHeight;b&&u.current>=h&&(document.body.style.top=`${-(u.current+b)}px`)}),300)}},[e]),m=W.useCallback(()=>{if(Pi()&&Fs!==null&&!o){const f=-parseInt(document.body.style.top,10),h=-parseInt(document.body.style.left,10);Object.assign(document.body.style,Fs),window.requestAnimationFrame(()=>{if(r&&i!==window.location.href){l(window.location.href);return}window.scrollTo(h,f)}),Fs=null}},[i]);return W.useEffect(()=>{function f(){u.current=window.scrollY}return f(),window.addEventListener("scroll",f),()=>{window.removeEventListener("scroll",f)}},[]),W.useEffect(()=>{if(t)return()=>{typeof document>"u"||document.querySelector("[data-vaul-drawer]")||m()}},[t,m]),W.useEffect(()=>{s||!a||(e?(!window.matchMedia("(display-mode: standalone)").matches&&d(),t||window.setTimeout(()=>{m()},500)):m())},[e,a,i,t,s,d,m]),{restorePositionSetting:m}}function Pb({open:e,onOpenChange:t,children:s,onDrag:a,onRelease:r,snapPoints:o,shouldScaleBackground:i=!1,setBackgroundColorOnScale:l=!0,closeThreshold:u=Tb,scrollLockTimeout:d=Rb,dismissible:m=!0,handleOnly:f=!1,fadeFromIndex:h=o&&o.length-1,activeSnapPoint:b,setActiveSnapPoint:v,fixed:p,modal:x=!0,onClose:g,nested:y,noBodyStyles:k=!1,direction:w="bottom",defaultOpen:N=!1,disablePreventScroll:T=!0,snapToSequentialPoint:C=!1,preventScrollRestoration:S=!1,repositionInputs:D=!0,onAnimationEnd:M,container:A,autoFocus:P=!1}){var E,j;const[z=!1,O]=Mu({defaultProp:N,prop:e,onChange:Z=>{t?.(Z),!Z&&!y&&Fe(),setTimeout(()=>{M?.(Z)},be.DURATION*1e3),Z&&!x&&typeof window<"u"&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),Z||(document.body.style.pointerEvents="auto")}}),[I,F]=W.useState(!1),[R,L]=W.useState(!1),[B,_]=W.useState(!1),X=W.useRef(null),ee=W.useRef(null),Y=W.useRef(null),fe=W.useRef(null),ue=W.useRef(null),te=W.useRef(!1),U=W.useRef(null),K=W.useRef(0),ae=W.useRef(!1),Pe=W.useRef(!N),Te=W.useRef(0),V=W.useRef(null),J=W.useRef(((E=V.current)==null?void 0:E.getBoundingClientRect().height)||0),re=W.useRef(((j=V.current)==null?void 0:j.getBoundingClientRect().width)||0),de=W.useRef(0),q=W.useCallback(Z=>{o&&Z===Ve.length-1&&(ee.current=new Date)},[]),{activeSnapPoint:We,activeSnapPointIndex:Le,setActiveSnapPoint:pe,onRelease:ke,snapPointsOffset:Ve,onDrag:ns,shouldFade:$e,getPercentageDragged:Ze}=zb({snapPoints:o,activeSnapPointProp:b,setActiveSnapPointProp:v,drawerRef:V,fadeFromIndex:h,overlayRef:X,onSnapPointChange:q,direction:w,container:A,snapToSequentialPoint:C});kb({isDisabled:!z||R||!x||B||!I||!D||!T});const{restorePositionSetting:Fe}=Ob({isOpen:z,modal:x,nested:y??!1,hasBeenOpened:I,preventScrollRestoration:S,noBodyStyles:k});function _e(){return(window.innerWidth-cr)/window.innerWidth}function ut(Z){var le,ne;!m&&!o||V.current&&!V.current.contains(Z.target)||(J.current=((le=V.current)==null?void 0:le.getBoundingClientRect().height)||0,re.current=((ne=V.current)==null?void 0:ne.getBoundingClientRect().width)||0,L(!0),Y.current=new Date,Su()&&window.addEventListener("touchend",()=>te.current=!1,{once:!0}),Z.target.setPointerCapture(Z.pointerId),K.current=we(w)?Z.pageY:Z.pageX)}function Ne(Z,le){var ne;let oe=Z;const he=(ne=window.getSelection())==null?void 0:ne.toString(),me=V.current?Rn(V.current,w):null,xe=new Date;if(oe.tagName==="SELECT"||oe.hasAttribute("data-vaul-no-drag")||oe.closest("[data-vaul-no-drag]"))return!1;if(w==="right"||w==="left")return!0;if(ee.current&&xe.getTime()-ee.current.getTime()<500)return!1;if(me!==null&&(w==="bottom"?me>0:me<0))return!0;if(he&&he.length>0)return!1;if(ue.current&&xe.getTime()-ue.current.getTime()<d&&me===0||le)return ue.current=xe,!1;for(;oe;){if(oe.scrollHeight>oe.clientHeight){if(oe.scrollTop!==0)return ue.current=new Date,!1;if(oe.getAttribute("role")==="dialog")return!0}oe=oe.parentNode}return!0}function as(Z){if(V.current&&R){const le=w==="bottom"||w==="right"?1:-1,ne=(K.current-(we(w)?Z.pageY:Z.pageX))*le,oe=ne>0,he=o&&!m&&!oe;if(he&&Le===0)return;const me=Math.abs(ne),xe=document.querySelector("[data-vaul-drawer-wrapper]"),Ae=w==="bottom"||w==="top"?J.current:re.current;let Re=me/Ae;const Ke=Ze(me,oe);if(Ke!==null&&(Re=Ke),he&&Re>=1||!te.current&&!Ne(Z.target,oe))return;if(V.current.classList.add(qa),te.current=!0,Ce(V.current,{transition:"none"}),Ce(X.current,{transition:"none"}),o&&ns({draggedDistance:ne}),oe&&!o){const Ee=Eb(ne),Qe=Math.min(Ee*-1,0)*le;Ce(V.current,{transform:we(w)?`translate3d(0, ${Qe}px, 0)`:`translate3d(${Qe}px, 0, 0)`});return}const Me=1-Re;if(($e||h&&Le===h-1)&&(a?.(Z,Re),Ce(X.current,{opacity:`${Me}`,transition:"none"},!0)),xe&&X.current&&i){const Ee=Math.min(_e()+Re*(1-_e()),1),Qe=8-Re*8,Ye=Math.max(0,14-Re*14);Ce(xe,{borderRadius:`${Qe}px`,transform:we(w)?`scale(${Ee}) translate3d(0, ${Ye}px, 0)`:`scale(${Ee}) translate3d(${Ye}px, 0, 0)`,transition:"none"},!0)}if(!o){const Ee=me*le;Ce(V.current,{transform:we(w)?`translate3d(0, ${Ee}px, 0)`:`translate3d(${Ee}px, 0, 0)`})}}}W.useEffect(()=>{window.requestAnimationFrame(()=>{Pe.current=!0})},[]),W.useEffect(()=>{var Z;function le(){if(!V.current||!D)return;const ne=document.activeElement;if(lr(ne)||ae.current){var oe;const he=((oe=window.visualViewport)==null?void 0:oe.height)||0,me=window.innerHeight;let xe=me-he;const Ae=V.current.getBoundingClientRect().height||0,Re=Ae>me*.8;de.current||(de.current=Ae);const Ke=V.current.getBoundingClientRect().top;if(Math.abs(Te.current-xe)>60&&(ae.current=!ae.current),o&&o.length>0&&Ve&&Le){const Me=Ve[Le]||0;xe+=Me}if(Te.current=xe,Ae>he||ae.current){const Me=V.current.getBoundingClientRect().height;let Ee=Me;Me>he&&(Ee=he-(Re?Ke:cr)),p?V.current.style.height=`${Me-Math.max(xe,0)}px`:V.current.style.height=`${Math.max(Ee,he-Ke)}px`}else hb()||(V.current.style.height=`${de.current}px`);o&&o.length>0&&!ae.current?V.current.style.bottom="0px":V.current.style.bottom=`${Math.max(xe,0)}px`}}return(Z=window.visualViewport)==null||Z.addEventListener("resize",le),()=>{var ne;return(ne=window.visualViewport)==null?void 0:ne.removeEventListener("resize",le)}},[Le,o,Ve]);function qe(Z){Se(),g?.(),Z||O(!1),setTimeout(()=>{o&&pe(o[0])},be.DURATION*1e3)}function qt(){if(!V.current)return;const Z=document.querySelector("[data-vaul-drawer-wrapper]"),le=Rn(V.current,w);Ce(V.current,{transform:"translate3d(0, 0, 0)",transition:`transform ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`}),Ce(X.current,{transition:`opacity ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,opacity:"1"}),i&&le&&le>0&&z&&Ce(Z,{borderRadius:`${Tu}px`,overflow:"hidden",...we(w)?{transform:`scale(${_e()}) translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)`,transformOrigin:"top"}:{transform:`scale(${_e()}) translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)`,transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:`${be.DURATION}s`,transitionTimingFunction:`cubic-bezier(${be.EASE.join(",")})`},!0)}function Se(){!R||!V.current||(V.current.classList.remove(qa),te.current=!1,L(!1),fe.current=new Date)}function Be(Z){if(!R||!V.current)return;V.current.classList.remove(qa),te.current=!1,L(!1),fe.current=new Date;const le=Rn(V.current,w);if(!Z||!Ne(Z.target,!1)||!le||Number.isNaN(le)||Y.current===null)return;const ne=fe.current.getTime()-Y.current.getTime(),oe=K.current-(we(w)?Z.pageY:Z.pageX),he=Math.abs(oe)/ne;if(he>.05&&(_(!0),setTimeout(()=>{_(!1)},200)),o){ke({draggedDistance:oe*(w==="bottom"||w==="right"?1:-1),closeDrawer:qe,velocity:he,dismissible:m}),r?.(Z,!0);return}if(w==="bottom"||w==="right"?oe>0:oe<0){qt(),r?.(Z,!0);return}if(he>Iu){qe(),r?.(Z,!1);return}var me;const xe=Math.min((me=V.current.getBoundingClientRect().height)!=null?me:0,window.innerHeight);var Ae;const Re=Math.min((Ae=V.current.getBoundingClientRect().width)!=null?Ae:0,window.innerWidth),Ke=w==="left"||w==="right";if(Math.abs(le)>=(Ke?Re:xe)*u){qe(),r?.(Z,!1);return}r?.(Z,!0),qt()}W.useEffect(()=>(z&&(Ce(document.documentElement,{scrollBehavior:"auto"}),ee.current=new Date),()=>{Nb(document.documentElement,"scrollBehavior")}),[z]);function dt(Z){const le=Z?(window.innerWidth-Wt)/window.innerWidth:1,ne=Z?-Wt:0;U.current&&window.clearTimeout(U.current),Ce(V.current,{transition:`transform ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,transform:we(w)?`scale(${le}) translate3d(0, ${ne}px, 0)`:`scale(${le}) translate3d(${ne}px, 0, 0)`}),!Z&&V.current&&(U.current=setTimeout(()=>{const oe=Rn(V.current,w);Ce(V.current,{transition:"none",transform:we(w)?`translate3d(0, ${oe}px, 0)`:`translate3d(${oe}px, 0, 0)`})},500))}function rs(Z,le){if(le<0)return;const ne=(window.innerWidth-Wt)/window.innerWidth,oe=ne+le*(1-ne),he=-Wt+le*Wt;Ce(V.current,{transform:we(w)?`scale(${oe}) translate3d(0, ${he}px, 0)`:`scale(${oe}) translate3d(${he}px, 0, 0)`,transition:"none"})}function Bt(Z,le){const ne=we(w)?window.innerHeight:window.innerWidth,oe=le?(ne-Wt)/ne:1,he=le?-Wt:0;le&&Ce(V.current,{transition:`transform ${be.DURATION}s cubic-bezier(${be.EASE.join(",")})`,transform:we(w)?`scale(${oe}) translate3d(0, ${he}px, 0)`:`scale(${oe}) translate3d(${he}px, 0, 0)`})}return W.useEffect(()=>{x||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[x]),W.createElement(mu,{defaultOpen:N,onOpenChange:Z=>{!m&&!Z||(Z?F(!0):qe(!0),O(Z))},open:z},W.createElement(ju.Provider,{value:{activeSnapPoint:We,snapPoints:o,setActiveSnapPoint:pe,drawerRef:V,overlayRef:X,onOpenChange:t,onPress:ut,onRelease:Be,onDrag:as,dismissible:m,shouldAnimate:Pe,handleOnly:f,isOpen:z,isDragging:R,shouldFade:$e,closeDrawer:qe,onNestedDrag:rs,onNestedOpenChange:dt,onNestedRelease:Bt,keyboardIsOpen:ae,modal:x,snapPointsOffset:Ve,activeSnapPointIndex:Le,direction:w,shouldScaleBackground:i,setBackgroundColorOnScale:l,noBodyStyles:k,container:A,autoFocus:P}},s))}const zu=W.forwardRef(function({...e},t){const{overlayRef:s,snapPoints:a,onRelease:r,shouldFade:o,isOpen:i,modal:l,shouldAnimate:u}=fn(),d=Nu(t,s),m=a&&a.length>0;if(!l)return null;const f=W.useCallback(h=>r(h),[r]);return W.createElement(pu,{onMouseUp:f,ref:d,"data-vaul-overlay":"","data-vaul-snap-points":i&&m?"true":"false","data-vaul-snap-points-overlay":i&&o?"true":"false","data-vaul-animate":u?.current?"true":"false",...e})});zu.displayName="Drawer.Overlay";const Au=W.forwardRef(function({onPointerDownOutside:e,style:t,onOpenAutoFocus:s,...a},r){const{drawerRef:o,onPress:i,onRelease:l,onDrag:u,keyboardIsOpen:d,snapPointsOffset:m,activeSnapPointIndex:f,modal:h,isOpen:b,direction:v,snapPoints:p,container:x,handleOnly:g,shouldAnimate:y,autoFocus:k}=fn(),[w,N]=W.useState(!1),T=Nu(r,o),C=W.useRef(null),S=W.useRef(null),D=W.useRef(!1),M=p&&p.length>0;Db();const A=(E,j,z=0)=>{if(D.current)return!0;const O=Math.abs(E.y),I=Math.abs(E.x),F=I>O,R=["bottom","right"].includes(j)?1:-1;if(j==="left"||j==="right"){if(!(E.x*R<0)&&I>=0&&I<=z)return F}else if(!(E.y*R<0)&&O>=0&&O<=z)return!F;return D.current=!0,!0};W.useEffect(()=>{M&&window.requestAnimationFrame(()=>{N(!0)})},[]);function P(E){C.current=null,D.current=!1,l(E)}return W.createElement(bu,{"data-vaul-drawer-direction":v,"data-vaul-drawer":"","data-vaul-delayed-snap-points":w?"true":"false","data-vaul-snap-points":b&&M?"true":"false","data-vaul-custom-container":x?"true":"false","data-vaul-animate":y?.current?"true":"false",...a,ref:T,style:m&&m.length>0?{"--snap-point-height":`${m[f??0]}px`,...t}:t,onPointerDown:E=>{g||(a.onPointerDown==null||a.onPointerDown.call(a,E),C.current={x:E.pageX,y:E.pageY},i(E))},onOpenAutoFocus:E=>{s?.(E),k||E.preventDefault()},onPointerDownOutside:E=>{if(e?.(E),!h||E.defaultPrevented){E.preventDefault();return}d.current&&(d.current=!1)},onFocusOutside:E=>{if(!h){E.preventDefault();return}},onPointerMove:E=>{if(S.current=E,g||(a.onPointerMove==null||a.onPointerMove.call(a,E),!C.current))return;const j=E.pageY-C.current.y,z=E.pageX-C.current.x,O=E.pointerType==="touch"?10:2;A({x:z,y:j},v,O)?u(E):(Math.abs(z)>O||Math.abs(j)>O)&&(C.current=null)},onPointerUp:E=>{a.onPointerUp==null||a.onPointerUp.call(a,E),C.current=null,D.current=!1,l(E)},onPointerOut:E=>{a.onPointerOut==null||a.onPointerOut.call(a,E),P(S.current)},onContextMenu:E=>{a.onContextMenu==null||a.onContextMenu.call(a,E),S.current&&P(S.current)}})});Au.displayName="Drawer.Content";const Lb=250,$b=120,Du=W.forwardRef(function({preventCycle:e=!1,children:t,...s},a){const{closeDrawer:r,isDragging:o,snapPoints:i,activeSnapPoint:l,setActiveSnapPoint:u,dismissible:d,handleOnly:m,isOpen:f,onPress:h,onDrag:b}=fn(),v=W.useRef(null),p=W.useRef(!1);function x(){if(p.current){k();return}window.setTimeout(()=>{g()},$b)}function g(){if(o||e||p.current){k();return}if(k(),!i||i.length===0){d||r();return}if(l===i[i.length-1]&&d){r();return}const N=i.findIndex(C=>C===l);if(N===-1)return;const T=i[N+1];u(T)}function y(){v.current=window.setTimeout(()=>{p.current=!0},Lb)}function k(){v.current&&window.clearTimeout(v.current),p.current=!1}return W.createElement("div",{onClick:x,onPointerCancel:k,onPointerDown:w=>{m&&h(w),y()},onPointerMove:w=>{m&&b(w)},ref:a,"data-vaul-drawer-visible":f?"true":"false","data-vaul-handle":"","aria-hidden":"true",...s},W.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},t))});Du.displayName="Drawer.Handle";function Fb(e){const t=fn(),{container:s=t.container,...a}=e;return W.createElement(gu,{container:s,...a})}const Xe={Root:Pb,Content:Au,Overlay:zu,Portal:Fb,Handle:Du,Title:yu},_b=new Set(["outbox","postvak uit","boîte d'envoi","postausgang","buzón de salida","posta in uscita","送信トレイ","送件匣","发件箱","skrzynka nadawcza"]),qb=e=>{const t=ks(e.fullPath).trim().toLowerCase();return _b.has(t)},_i=Qa.length,da=(e,t=[])=>{const s=Ns(t);return[...e.filter(r=>{const o=s.get(r.mailboxId);return o==="drafts"||o==="sent"?!1:!qb(r)})].sort((r,o)=>{const i=s.has(r.mailboxId)?Qa.indexOf(s.get(r.mailboxId)??"inbox"):_i,l=s.has(o.mailboxId)?Qa.indexOf(s.get(o.mailboxId)??"inbox"):_i;return i!==l?i-l:ks(r.fullPath).localeCompare(ks(o.fullPath),void 0,{sensitivity:"base",numeric:!0})})},Ou="inline-flex items-center justify-center transition-colors",Bb=ge(Ou,"min-h-11 min-w-11 rounded hover:bg-surface-raised"),Kb=ge(Ou,"min-h-11 gap-1.5 px-3 rounded text-sm font-medium hover:bg-surface-raised"),hn=({accountId:e,currentMailboxId:t,onMove:s,disabled:a=!1,disabledHint:r,variant:o="icon-only",label:i})=>{const[l,u]=c.useState(!1),d=$t(),m=c.useRef(null),f=i??"Move to folder",h=c.useId(),{t:b}=Yn("mail",{useSuspense:!1}),v=c.useCallback((M,A)=>b(M,{defaultValue:A}),[b]),{data:p,isLoading:x,isError:g,error:y,refetch:k}=ce({...He({path:{accountId:e}}),staleTime:1/0,enabled:l}),w=lu(e),N=c.useMemo(()=>{const M=da(p?.items??[],w),A=Ns(w);return M.map(P=>({id:P.mailboxId,label:ys(P,A.get(P.mailboxId),v),searchValue:P.fullPath,isCurrent:P.mailboxId===t}))},[p?.items,w,t,v]),T=c.useCallback(M=>{u(!1),s(M)},[s]);c.useEffect(()=>{if(!l||!d)return;const M=P=>{m.current&&!m.current.contains(P.target)&&u(!1)},A=P=>{P.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",A)}},[l,d]);const C=a||!!r,S=n.jsxs("button",{type:"button",onClick:M=>{M.stopPropagation(),!C&&u(A=>!A)},"aria-label":f,"aria-haspopup":d?"listbox":"dialog","aria-expanded":l,"aria-controls":l?h:void 0,title:r,className:o==="icon-only"?Bb:Kb,children:[n.jsx(ec,{className:"size-4"}),o==="compact"&&n.jsx("span",{className:"hidden sm:inline",children:"Move"})]}),D=x?n.jsx("div",{className:"px-3 py-5 text-sm text-fg-muted",children:"Loading folders…"}):g?n.jsx("div",{className:"p-3",children:n.jsx(Dt,{variant:"inline",title:"Couldn't load folders",error:y,onRetry:()=>k()})}):n.jsx(jc,{mailboxes:N,onSelect:T,onCancel:()=>u(!1),autoFocus:!d,labels:{searchPlaceholder:b("move_picker_placeholder",{defaultValue:"Move to…"}),searchAriaLabel:b("move_picker_filter_label",{defaultValue:"Filter folders"}),optionLabel:M=>`Move to ${M}`,currentSuffix:"(current folder)",currentTag:"current",emptyMessage:M=>`No folders match "${M}"`}});return d?n.jsxs("div",{ref:m,className:"relative inline-block",children:[S,l&&n.jsx("div",{id:h,className:ge("absolute right-0 mt-1 z-50 w-72 max-h-96 flex flex-col","bg-surface border border-line rounded-md shadow-lg"),children:D})]}):n.jsxs(n.Fragment,{children:[S,n.jsx(Xe.Root,{open:l,onOpenChange:u,children:n.jsxs(Xe.Portal,{children:[n.jsx(Xe.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),n.jsxs(Xe.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col bg-canvas rounded-t-lg",style:{maxHeight:"85dvh"},id:h,children:[n.jsx(Xe.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-subtle/30"}),n.jsx(Xe.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:"Move to folder"}),n.jsx("div",{className:"flex-1 overflow-hidden",children:D})]})]})})]})},Ub=({messageId:e,threadId:t,mailboxId:s,isRead:a,accountId:r,fromAddressId:o,isTrusted:i=!1,showRaw:l=!1,onToggleRaw:u})=>{const d=ye(),m=ze(),{pushError:f}=Je(),{selectedMessageId:h}=ws({strict:!1}),{mutate:b,isPending:v}=ve({...Jn(),onMutate:async z=>{const O=z.body.isRead??!0,I=new Set(z.body.messageIds??[]),F=ts({path:{threadId:t}}),R=Ft([s]);await Promise.all([d.cancelQueries({queryKey:F}),cn(d,R)]);const L=d.getQueriesData({queryKey:F}).filter(_=>_[1]!==void 0).map(([_,X])=>({queryKey:_,data:X})),B=un(d,R);return d.setQueriesData({queryKey:F},_=>_&&{..._,items:qn(_.items,I,O)}),dn(d,R,_=>qn(_,I,O)),{threadMessagesPrefix:F,listPrefixes:R,previousThreadMessages:L,previousThreadsList:B}},onError:(z,O,I)=>{if(I){for(const R of I.previousThreadMessages)d.setQueryData(R.queryKey,R.data);mn(d,I.previousThreadsList)}const F=O.body.isRead??!0;f({title:F?"Couldn't mark as read":"Couldn't mark as unread",detail:it(z),error:z})},onSettled:(z,O,I,F)=>{F&&(d.invalidateQueries({queryKey:F.threadMessagesPrefix}),_t(d,F.listPrefixes))}}),p=c.useCallback(z=>{h&&z.includes(h)&&m({to:"/mail/$mailboxId",params:{mailboxId:s},search:O=>({...O,selectedMessageId:void 0})})},[h,s,m]),{deleteMessages:x,isPending:g}=Xt({mailboxId:s,threadId:t,onAfterOptimisticRemove:p}),{moveMessages:y,isPending:k}=Mt({mailboxId:s,threadId:t,accountId:r,onAfterOptimisticRemove:p}),{toggleTrusted:w,isPending:N,error:T,reset:C}=ao({messageId:e}),S=()=>{b({body:{messageIds:[e],isRead:!1}})},D=()=>{x([e])},M=()=>{o&&w(o,i)},A=v||g||k||N,P=A||!o,E=c.useCallback(z=>{y([e],z)},[y,e]),j=o?void 0:"Sender has no parseable address";return n.jsxs("div",{className:"flex flex-col items-end gap-1",children:[n.jsxs("div",{className:"flex items-center gap-1",children:[r&&n.jsx(hn,{accountId:r,currentMailboxId:s,onMove:E,disabled:A,label:"Move this message"}),n.jsxs(qc,{trigger:n.jsx(Zl,{className:"size-4"}),children:[n.jsxs(ps,{onClick:M,disabled:P,children:[i?n.jsx(ea,{className:"size-4 text-positive"}):n.jsx(Zs,{className:"size-4 opacity-0"}),n.jsx("span",{title:j,children:"Trusted sender"})]}),a&&n.jsxs(ps,{onClick:S,disabled:A,children:[n.jsx(Is,{className:"size-4"}),"Mark as unread"]}),u&&n.jsxs(ps,{onClick:u,children:[n.jsx(Jl,{className:"size-4"}),l?"Show formatted":"Show raw email"]}),n.jsx(ar,{}),n.jsxs(ps,{onClick:D,disabled:A,destructive:!0,children:[n.jsx(nt,{className:"size-4"}),"Delete"]})]})]}),T&&n.jsx("div",{className:"w-64",children:n.jsx(Dt,{variant:"inline",title:"Couldn't update trust",error:T,onRetry:()=>{C(),M()}})})]})},Hb=()=>{const[e,t]=c.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark"));return c.useEffect(()=>{const s=document.documentElement,a=new MutationObserver(()=>{t(s.classList.contains("dark"))});return a.observe(s,{attributes:!0,attributeFilter:["class"]}),()=>a.disconnect()},[]),e},Wb=({blockedImageCount:e,canAlwaysTrust:t,isTrustPending:s,onLoadOnce:a,onAlwaysTrust:r})=>n.jsxs("div",{className:"mb-3 flex items-center justify-between rounded-md bg-surface-sunken/50 px-3 py-2 text-sm",children:[n.jsxs("span",{className:"text-fg-muted",children:[e," image",e>1?"s":""," blocked for privacy"]}),n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx("button",{type:"button",onClick:a,className:"text-accent hover:underline",children:"Load once"}),t&&n.jsx("button",{type:"button",onClick:r,"aria-busy":s,className:"text-accent hover:underline aria-busy:opacity-50",children:s?"Trusting…":"Always trust"})]})]}),Vb=(e,t)=>{switch(e){case"auth":return{title:"Your session expired",detail:"Sign in again to reload the message body. Other parts of the app may also stop responding until you do."};case"body-missing":return{title:"Message body is missing in storage",detail:"A sync failure may have left this message without its body bytes. Contact support, or run the reconcile script to refetch from the upstream IMAP server."};case"content-type-mismatch":return{title:"Couldn't load message body",detail:"The server returned an unexpected content type for this part. The message body has not been rendered to keep you safe."};case"spa-shell-leak":return{title:"Couldn't load message body",detail:"The server returned the app shell instead of the message body. This is an infrastructure bug — please report it."};case"not-ready":return{title:"Message body is still syncing",detail:"This message's body hasn't finished downloading from the mail server yet. It should appear shortly — reopen the message to try again."};default:return{title:"Couldn't load message body",detail:t}}},Qb=e=>e instanceof Vt?e.reason:"generic",Yb=e=>e instanceof Error?e.message:typeof e=="string"?e:"An unexpected error occurred while loading the message body.",Gb=({error:e,onRetry:t})=>{const s=Qb(e),a=Yb(e),{title:r,detail:o}=Vb(s,a),[i,l]=c.useState(!1),{Account:u}=Ir();return i?null:n.jsxs("div",{role:"alert","data-testid":"message-body-error-banner","data-reason":s,className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[n.jsx(Jt,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsx("p",{className:"font-medium text-danger",children:r}),n.jsx("p",{className:"text-fg-muted mt-1 break-words",children:o})]}),n.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[s==="auth"&&n.jsx(u,{children:({signOut:d})=>n.jsx("button",{type:"button",onClick:()=>d(),className:"text-sm font-medium text-accent hover:underline",children:"Sign in again"})}),t&&n.jsx("button",{type:"button",onClick:t,className:"text-sm font-medium text-accent hover:underline",children:"Retry"}),n.jsx("button",{type:"button",onClick:()=>l(!0),"aria-label":"Dismiss message body error",className:"rounded-md p-1 text-fg-muted hover:bg-surface-raised hover:text-fg transition-colors",children:n.jsx(Ue,{className:"size-4","aria-hidden":"true"})})]})]})},Xb=()=>n.jsxs("div",{className:"animate-pulse space-y-2",role:"status","aria-label":"Loading message body",children:[n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-full"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-11/12"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-3/4"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-5/6"})]}),qi=()=>n.jsx("p",{className:"text-fg-muted text-sm italic",children:"This message has no body content."}),Pu=({bodyParts:e,html:t,text:s,isTrusted:a=!1,messageId:r,fromAddressId:o,category:i,className:l})=>{const[u,d]=c.useState(!1),m=a||u,f=Hb(),{toggleTrusted:h,isPending:b}=ao({messageId:r??""}),v=!!e&&e.length>0,{picked:p,data:x,isLoading:g,isError:y,error:k,refetch:w}=Zc({messageId:r,bodyParts:e,enabled:v}),N=c.useMemo(()=>Tf(e??[]),[e]),T=v&&x?.kind==="html"?x.body:t,C=v&&x?.kind==="text"?x.body:s;if(v){if(g)return n.jsx("div",{className:ge("message-body",l),children:n.jsx(Xb,{})});if(y)return n.jsx("div",{className:ge("message-body",l),children:n.jsx(Gb,{error:k,onRetry:()=>w()})});if(!p)return n.jsx("div",{className:ge("message-body",l),children:n.jsx(qi,{})})}else if(!t&&!s)return n.jsx("div",{className:ge("message-body",l),children:n.jsx(qi,{})});const S=!!(o&&r),D=()=>{!o||b||(d(!0),h(o,!1))};return n.jsx(pc,{className:l,html:T,text:C,isDark:f,category:i,allowImages:m,resolveCid:N,renderBlockedNotice:M=>n.jsx(Wb,{blockedImageCount:M,canAlwaysTrust:S,isTrustPending:b,onLoadOnce:()=>d(!0),onAlwaysTrust:D})})},Jb=({messageId:e,threadId:t,mailboxId:s,accountId:a,isRead:r,isStarred:o,onToggleStar:i,fromAddressId:l,isTrusted:u,showRaw:d,onToggleRaw:m,onReply:f,onReplyAll:h,onForward:b})=>{const v=ye(),{deleteMessages:p}=Xt({mailboxId:s,threadId:t}),{moveMessages:x}=Mt({mailboxId:s,threadId:t,accountId:a}),{toggleTrusted:g}=ao({messageId:e}),{mutate:y}=ve({...Jn(),onSettled:()=>{v.invalidateQueries({queryKey:ts({path:{threadId:t}})}),_t(v,Ft([s]))}}),k=c.useCallback(C=>{x([e],C)},[x,e]),w=c.useCallback(()=>{p([e])},[p,e]),N=c.useCallback(()=>{y({body:{messageIds:[e],isRead:!r}})},[y,e,r]),T=[];return l&&T.push({key:"trusted",label:u?"Trusted sender":"Mark sender trusted",icon:u?n.jsx(ea,{className:"size-4 text-positive"}):n.jsx(Zs,{className:"size-4"}),onSelect:()=>g(l,u)}),m&&T.push({key:"raw",label:d?"Show formatted":"Show raw email",icon:n.jsx(Jl,{className:"size-4"}),onSelect:m}),n.jsx(gc,{hasThread:!0,onReply:f,onReplyAll:h,onForward:b,isStarred:o,onToggleStar:i,onDelete:w,isRead:r,onToggleRead:N,overflowItems:T,moveSlot:a?n.jsx(hn,{accountId:a,currentMailboxId:s,onMove:k,label:"Move this message"}):void 0})},Zb=()=>n.jsxs("div",{className:"animate-pulse space-y-2",role:"status","aria-label":"Loading raw email",children:[n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-full"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-11/12"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-5/6"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-3/4"})]}),ex=({messageId:e,enabled:t=!0})=>{const{data:s,isLoading:a,isError:r,error:o,refetch:i}=ce({...N0({path:{messageId:e}}),enabled:t});if(a)return n.jsx("div",{className:"message-body",children:n.jsx(Zb,{})});if(r)return n.jsx("div",{className:"message-body",children:n.jsx(Dt,{variant:"inline",title:"Couldn't load the raw email",error:o,onRetry:()=>i()})});const l=s?.raw??"";return l===""?n.jsx("div",{className:"message-body",children:n.jsx("p",{className:"text-fg-muted text-sm italic",children:"No raw source available for this message."})}):n.jsx("div",{className:"message-body",children:n.jsx("pre",{className:"email-text whitespace-pre-wrap break-words text-sm leading-relaxed bg-surface-sunken rounded-md p-3 max-h-[32rem] overflow-auto",children:l})})},tx=()=>n.jsx(ea,{className:"inline-block size-4 ml-1 -mt-0.5 text-positive align-middle","aria-label":"Trusted sender","data-testid":"trusted-sender-badge"}),Lu=(e,t)=>({id:e.messageId,fromName:e.fromName??e.fromEmail??"?",fromEmail:e.fromEmail??"",toLabel:"",dateLabel:t,snippet:e.snippet||"",bodyHtml:""}),$u=({isStarred:e,onToggleStar:t,isStarPending:s,hoverReveal:a})=>n.jsx("button",{type:"button",onClick:r=>{r.stopPropagation(),t()},disabled:s,"aria-label":e?"Remove star":"Add star",className:ge("shrink-0 p-0.5 rounded transition-colors",e?"text-warning":ge("text-fg-subtle hover:text-warning",a&&"opacity-0 group-hover:opacity-100 focus:opacity-100"),s&&"opacity-50"),children:n.jsx(zt,{className:ge("size-3.5",e&&"fill-current")})}),sx=({threadMessage:e,isFocused:t,onToggle:s,onToggleStar:a,isStarPending:r})=>{const o=Ll(e.sentDate,"datetime"),i=Lu(e,o);return n.jsx(bc,{message:i,onClick:s,isFocused:t,isUnread:!e.isRead,trailing:n.jsxs(n.Fragment,{children:[e.hasAttachment&&n.jsx(ta,{className:"size-3 shrink-0 text-fg-subtle"}),n.jsx($u,{isStarred:e.hasStars,onToggleStar:a,isStarPending:r,hoverReveal:!0}),n.jsx("span",{"data-testid":"message-date",className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:o})]})})},nx=({threadMessage:e,messageData:t,isLoading:s,isError:a,error:r,onRetry:o,isFocused:i,onToggle:l,onToggleStar:u,isStarPending:d,accountId:m,showRaw:f,onToggleRaw:h,mobile:b,onReply:v,onReplyAll:p,onForward:x})=>{const g=Ll(e.sentDate,"long"),y=!e.isRead,k=t?.envelope.from[0]?.flags?.trusted?.value===!0,w=t?.envelope.from[0]?.addressId,N=Lu(e,g),T=e.autoMoved?n.jsx(cu,{accountId:m,messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,autoMoved:e.autoMoved,size:"md"}):null;return n.jsx(xc,{message:N,isFocused:b?!1:i,onHeaderClick:l,senderBadge:k?n.jsx(tx,{}):void 0,trailing:n.jsx("span",{"data-testid":"message-date",className:"text-2xs text-fg-subtle",children:g}),to:t?n.jsx(af,{label:"To",addresses:t.envelope.to}):null,indicators:T||!b?n.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mt-0.5",children:[T,!b&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"flex items-center justify-end gap-1",children:[n.jsx($u,{isStarred:e.hasStars,onToggleStar:u,isStarPending:d}),e.hasAttachment&&n.jsx("span",{className:"text-fg-subtle p-0.5",children:n.jsx(ta,{className:"size-3.5"})})]}),y&&n.jsx("span",{className:"size-1.5 rounded-full bg-accent","aria-label":"Unread"})]})]}):void 0,actionMenu:b?void 0:n.jsx(Ub,{messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,isRead:e.isRead,accountId:m,fromAddressId:w,isTrusted:k,showRaw:f,onToggleRaw:h}),actionBar:b?n.jsx(Jb,{messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,accountId:m,isRead:e.isRead,isStarred:e.hasStars,onToggleStar:u,fromAddressId:w,isTrusted:k,showRaw:f,onToggleRaw:h,onReply:v,onReplyAll:p,onForward:x}):void 0,body:s?n.jsxs("div",{className:"mt-3 animate-pulse space-y-2",children:[n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-full"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-3/4"}),n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-1/2"})]}):a&&E0(r)?n.jsx("div",{className:"mt-3",children:n.jsx(ru,{message:"This message has been deleted"})}):a?n.jsx("div",{className:"mt-3",children:n.jsx(Dt,{variant:"inline",title:"Couldn't load this message",error:r,onRetry:o})}):f?n.jsx("div",{className:"mt-3",children:n.jsx(ex,{messageId:e.messageId})}):n.jsx("div",{className:"mt-3",children:n.jsx(Pu,{bodyParts:t?.bodyParts,messageId:e.messageId,fromAddressId:t?.envelope.from[0]?.addressId,isTrusted:k,category:ia(e.category)})})})},ax=({threadMessage:e,isExpanded:t,isFocused:s,onToggle:a,onToggleStar:r,isStarPending:o,accountId:i,mobile:l,onReply:u,onReplyAll:d,onForward:m})=>{const[f,h]=c.useState(!1),{data:b,isLoading:v,isError:p,error:x,refetch:g}=ce({...Ar({path:{messageId:e.messageId}}),enabled:t,meta:{softError:!0}});return t?n.jsx(nx,{threadMessage:e,messageData:b,isLoading:v,isError:p,error:x,onRetry:()=>g(),isFocused:s,onToggle:a,onToggleStar:r,isStarPending:o,accountId:i,showRaw:f,onToggleRaw:()=>h(y=>!y),mobile:l,onReply:u,onReplyAll:d,onForward:m}):n.jsx(sx,{threadMessage:e,isFocused:s,onToggle:a,onToggleStar:r,isStarPending:o})},rx=()=>n.jsxs("div",{className:"animate-pulse p-4",children:[n.jsx("div",{className:"h-6 bg-surface-sunken rounded w-3/4 mb-5"}),n.jsx("div",{className:"space-y-4",children:Array.from({length:2}).map((e,t)=>n.jsxs("div",{className:"flex gap-3 py-3",children:[n.jsx("div",{className:"size-10 bg-surface-sunken rounded-full shrink-0"}),n.jsxs("div",{className:"flex-1",children:[n.jsx("div",{className:"h-4 bg-surface-sunken rounded w-32 mb-2"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-48"})]})]},t))})]});function Bi({authenticity:e,onOpenIntelligence:t}){return e.dkimMismatch?n.jsxs("div",{className:"flex items-start gap-2 rounded-none border-b border-danger/20 bg-danger-soft px-5 py-2.5 text-sm",children:[n.jsx(Ts,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n.jsxs("p",{className:"flex-1 leading-snug text-fg",children:["This message claims to be from"," ",n.jsx("span",{className:"font-semibold",children:e.fromDomain})," but was sent",e.dkimDomain?` via ${e.dkimDomain}`:" from a different domain","."]}),t&&n.jsx("button",{type:"button",onClick:t,className:"shrink-0 text-2xs font-medium text-danger hover:underline",children:"Why?"})]}):null}const Ms=({threadId:e,mailboxId:t,subject:s,selectedMessageId:a,authenticity:r,onOpenIntelligence:o,onBack:i,composeRequest:l,onComposeClose:u,onSwipeNext:d,onSwipePrevious:m,mobileIntelligenceOpen:f})=>{const h=$t(),{handlers:b}=Hp({onSwipeLeft:d,onSwipeRight:m}),{accountId:v}=ou(t),{data:p,isLoading:x,isError:g,error:y,refetch:k}=ce({...I0({path:{threadId:e}})}),w=c.useMemo(()=>p?.items??[],[p?.items]),N=w[w.length-1],T=c.useRef(new Map),[C,S]=c.useState(new Set),[D,M]=c.useState(null),[A,P]=c.useState(0);c.useEffect(()=>{if(w.length>0&&e!==D){M(e);const J=new Set([w[w.length-1].threadMessageId]);if(a){const re=w.find(de=>de.messageId===a);re&&J.add(re.threadMessageId)}S(J),P(w.length-1)}},[e,w,D,a]);const E=c.useCallback(J=>{S(re=>{const de=new Set(re);return de.has(J)?de.delete(J):de.add(J),de})},[]),j=c.useCallback(J=>{const re=w[J];if(!re)return;T.current.get(re.threadMessageId)?.scrollIntoView({behavior:"smooth",block:"nearest"})},[w]),z=c.useCallback(()=>{if(w.length===0)return;const J=Math.min(A+1,w.length-1);P(J),j(J)},[w.length,A,j]),O=c.useCallback(()=>{if(w.length===0)return;const J=Math.max(A-1,0);P(J),j(J)},[w.length,A,j]),I=c.useCallback(()=>{const J=w[A];J&&E(J.threadMessageId)},[w,A,E]),{data:F}=ce({...xt(),staleTime:1/0}),R=F?.accounts?.[0],L=!!R?.smtpHost;qp({messages:w,expandedIds:C,threadId:e,mailboxId:t,accountId:R?.accountId});const{toggleStar:B,isPending:_,pendingMessageId:X}=to({threadId:e,mailboxId:t,messages:w}),[ee,Y]=c.useState(null);c.useEffect(()=>{l&&l!=="new"&&(Y(l),u?.())},[l,u]);const{data:fe}=ce({...Ar({path:{messageId:N?.messageId??""}}),enabled:!!N&&ee!==null}),ue=c.useCallback(()=>{Y("reply")},[]),te=c.useCallback(()=>{Y("reply_all")},[]),U=c.useCallback(()=>{Y("forward")},[]),K=c.useCallback(()=>{Y(null),u?.()},[u]);if(Zr({enabled:!x&&w.length>0&&ee===null,bindings:[{key:"j",handler:z,preventDefault:!0},{key:"ArrowDown",handler:z,preventDefault:!0},{key:"k",handler:O,preventDefault:!0},{key:"ArrowUp",handler:O,preventDefault:!0},{key:"Enter",handler:I,preventDefault:!0},{key:"o",handler:I,preventDefault:!0},...L?[{key:"r",handler:ue,preventDefault:!0},{key:"R",handler:te,noModifiers:!1,preventDefault:!0},{key:"f",handler:U,preventDefault:!0}]:[]]}),x)return n.jsx(rx,{});if(g)return n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(Dt,{title:"Couldn't load this conversation",error:y,onRetry:()=>k()})});if(w.length===0)return n.jsx("div",{className:"flex h-full items-center justify-center",children:n.jsx(ru,{message:"No messages in this thread"})});const ae=s||w[0]?.subject||"(No subject)",Pe=w.length,Te=J=>n.jsx("div",{children:w.map((re,de)=>n.jsx("div",{ref:q=>{q&&T.current.set(re.threadMessageId,q)},children:n.jsx(ax,{threadMessage:re,isExpanded:C.has(re.threadMessageId),isFocused:de===A,onToggle:()=>E(re.threadMessageId),onToggleStar:()=>B(re.messageId,re.hasStars),isStarPending:_&&X===re.messageId,accountId:v,mobile:J,onReply:J&&L?ue:void 0,onReplyAll:J&&L?te:void 0,onForward:J&&L?U:void 0})},re.threadMessageId))}),V=n.jsxs("header",{className:"border-b border-line px-5 pt-5 pb-3",children:[n.jsx("h1",{className:"max-w-2xl text-lg font-semibold leading-snug text-fg",children:ae}),n.jsxs("p",{className:"mt-1 text-2xs text-fg-subtle",children:[Pe," ",Pe===1?"message":"messages"]})]});return h?n.jsxs("article",{className:"h-full flex flex-col",children:[V,r?.dkimMismatch&&n.jsx(Bi,{authenticity:r,onOpenIntelligence:o}),n.jsx("div",{className:"flex-1 overflow-auto",children:Te(!1)}),ee!==null&&n.jsx(Mi,{mode:ee,account:R,sourceMessage:fe,onClose:K})]}):n.jsxs(e1,{thread:{subject:ae,messages:[]},onBack:i??(()=>{}),intelligenceOpen:f,onToggleIntelligence:o,touchHandlers:b,children:[r?.dkimMismatch&&n.jsx(Bi,{authenticity:r,onOpenIntelligence:o}),Te(!0),ee!==null&&n.jsx(Mi,{mode:ee,account:R,sourceMessage:fe,onClose:K})]})};function zs(){const{mailboxNameIndex:e,accountNameIndex:t}=je();return{...ht({select:a=>Qc(a.matches)})?{}:{mailboxesByName:e},accountsByName:t}}const lo=e=>e.trim().toLocaleLowerCase(),ox=/^\d{4}-\d{2}-\d{2}$/;function Ki(e,t,s){if(!ox.test(s))return;const a=Date.parse(`${s}T00:00:00Z`);if(!Number.isNaN(a))return{type:e,raw:t,value:s,epochSeconds:Math.floor(a/1e3)}}function ix(e,t){const s=e.toLowerCase();if(s.startsWith("from:")&&e.length>5)return{type:"from",raw:e,value:e.slice(5)};if(s==="has:attachment")return{type:"hasAttachment",raw:e};if(s==="is:unread")return{type:"isUnread",raw:e};if(s.startsWith("before:")&&e.length>7)return Ki("before",e,e.slice(7));if(s.startsWith("after:")&&e.length>6)return Ki("after",e,e.slice(6));if(s.startsWith("in:")&&e.length>3){const a=e.slice(3),r=t.mailboxesByName?.get(a.toLowerCase());return r?{type:"in",raw:e,value:a,mailboxId:r}:void 0}if(s.startsWith("account:")&&e.length>8){const a=e.slice(8),r=t.accountsByName?.get(a.toLowerCase());return r?{type:"account",raw:e,value:a,accountId:r}:void 0}}function As(e,t={}){const s=e.split(/\s+/).filter(o=>o.length>0),a=[],r=[];for(const o of s){const i=ix(o,t);i?a.push(i):r.push(o)}return{freeText:r.join(" "),tokens:a}}function lx(e,t){return e.split(/\s+/).filter(s=>s.length>0&&s!==t.raw).join(" ")}function cx(e){switch(e.type){case"from":return`From: ${e.value}`;case"hasAttachment":return"Has attachment";case"isUnread":return"Unread";case"before":return`Before ${e.value}`;case"after":return`After ${e.value}`;case"in":return`In: ${e.value}`;case"account":return`Account: ${e.value}`}}const ux=20,dx=new Set(Object.values(ot)),mx=e=>e!==void 0&&dx.has(e)?e:void 0;function Fu({mailboxId:e,filterCategory:t}={}){const{searchQuery:s}=je(),a=zs(),r=ht({select:y=>y.matches}),o=lo(s),{freeText:i,tokens:l}=As(o,a),u=i.length>0,d=mx(t),m=l.some(y=>y.type==="hasAttachment")?!0:void 0,f=l.some(y=>y.type==="isUnread")?!1:void 0,h=l.find(y=>y.type==="after"),b=l.find(y=>y.type==="before"),v=l.find(y=>y.type==="in"),p=Zg({matches:r,callerMailboxId:e,inTokenMailboxId:v?.mailboxId}),{data:x,isLoading:g}=ce({...Ml({query:{query:i,mailboxId:p,limit:ux,...d!==void 0?{category:d}:{},...m!==void 0?{hasAttachment:m}:{},...f!==void 0?{isRead:f}:{},...h?{sentDateFrom:h.epochSeconds}:{},...b?{sentDateTo:b.epochSeconds}:{}}}),enabled:u,staleTime:6e4});return{hits:x?.items??[],isLoading:u&&g}}const fx=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),hx=e=>[...e].sort(fx);function ur(e){const t=e.authenticity?.dkimMismatch===!0;return{id:e.messageId,accountId:e.accountId??e.accountConfigId,mailboxId:e.mailboxId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ot(e.sentDate),sentDate:e.sentDate,isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:ia(e.category),suspicious:t}}function gx(e,t){const s=new Set,a=[];for(const r of[...e,...t])s.has(r.id)||(s.add(r.id),a.push(r));return a.sort((r,o)=>(o.sentDate??0)-(r.sentDate??0))}const Ui=[{id:"personal",label:"Personal",category:ot.personal},{id:"transactional",label:"Transactional",category:ot.transactional},{id:"newsletter",label:"Newsletter",category:ot.newsletter},{id:"marketing",label:"Marketing",category:ot.marketing},{id:"social",label:"Social",category:ot.social},{id:"automated",label:"Automated",category:ot.automated},{id:"uncategorized",label:"Unclassified",category:ot.uncategorized}];function px(e){const t=new Map(Ui.map(a=>[a.category,[]]));for(const a of e){const r=a.category??ot.uncategorized;(t.get(r)??t.get(ot.uncategorized))?.push(a)}const s=[];for(const a of Ui){const r=t.get(a.category);r&&r.length>0&&s.push({id:a.id,label:a.label,threads:r})}return s}function _u(e,t){return e.fromName.toLowerCase().includes(t)||e.fromEmail.toLowerCase().includes(t)||e.subject.toLowerCase().includes(t)||e.snippet.toLowerCase().includes(t)}function qu(e,t){return t.every(s=>{switch(s.type){case"from":{const a=s.value.toLowerCase();return e.fromEmail.toLowerCase().includes(a)||e.fromName.toLowerCase().includes(a)}case"hasAttachment":return e.hasAttachment===!0;case"isUnread":return!e.isRead;case"after":return e.sentDate!=null&&e.sentDate>=s.epochSeconds*1e3;case"before":return e.sentDate!=null&&e.sentDate<s.epochSeconds*1e3;case"in":return e.mailboxId===s.mailboxId;case"account":return e.accountId===s.accountId;default:return!1}})}const bx={sender:"sender",recipient:"recipient",subject:"subject",attachment:"attachment",body:"body",entities:"entities"};function xx(e){return bx[e]??e}function vx(e,t){const{folder:s}=Dr(t,[e.mailboxId]);return{id:e.messageId,sender:e.fromName??e.fromEmail??"Unknown",subject:e.subject??"(No subject)",snippet:e.snippet??"",date:Ot(e.sentDate),unread:!e.isRead,flagged:e.hasStars===!0,threadId:e.threadId,mailboxId:e.mailboxId,...s?{folder:s}:{}}}function Bu(e,t){const{folder:s}=Dr(t,e.mailboxId?[e.mailboxId]:[]);return{id:e.id,sender:e.fromName,subject:e.subject,snippet:e.snippet,date:e.timeLabel,unread:!e.isRead,flagged:e.starred===!0,...e.mailboxId?{mailboxId:e.mailboxId}:{},...s?{folder:s}:{}}}function yx(e,t){const{mailboxId:s,folder:a}=Dr(t,e.mailboxIds);return{id:e.messageId,sender:e.fromName??"Unknown",subject:e.subject??"(No subject)",snippet:"",date:e.sentDate!=null?Ot(e.sentDate*1e3):"",threadId:e.threadId,matchedChunkLabel:xx(e.matchedChunkType),score:e.score,...s?{mailboxId:s}:{},...a?{folder:a}:{}}}function Ku(e,t,s){const a=new Set(t),r=[];for(const o of[...e].sort((i,l)=>l.score-i.score))a.has(o.threadId)||(a.add(o.threadId),r.push(yx(o,s)));return r}const kx=768,wx=1024,Uu=e=>e!=="desktop",ma=()=>{const e=ir(`(min-width: ${kx}px)`);return ir(`(min-width: ${wx}px)`)?"desktop":e?"tablet":"phone"},Hu="remit.recentSearches",jx=5;function dr(){try{const e=localStorage.getItem(Hu);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(s=>typeof s=="string"):[]}catch{return[]}}function Hi(e){const t=e.trim();if(!t)return dr();const s=[t,...dr().filter(a=>a!==t)].slice(0,jx);try{localStorage.setItem(Hu,JSON.stringify(s))}catch{return s}return s}const Sx=e=>e.tier!=="phone"&&e.hasLiveInput&&!(e.bodyRendersCommittedResults&&e.hasCommittedQuery);function Cx(e){const{spam:t}=kc([...e]),s=new Map;for(const r of t)r.mailboxId&&s.set(r.mailboxId,(s.get(r.mailboxId)??0)+1);let a;for(const[r,o]of s)(!a||o>a.count)&&(a={mailboxId:r,count:o});return a}function Wu({title:e,unreadCount:t,children:s,footer:a,searchFilter:r,searchResults:o,searchLoading:i,relatedResults:l,relatedLoading:u,onSelectSearchResult:d,searchResultsLabel:m="Top matches",relatedResultsLabel:f="Related",searchResultsInBody:h=!1}){const{accounts:b,resultFolderIndex:v,searchQuery:p,searchInput:x,onSearchChange:g,onSearchClear:y,searchViewKey:k}=je(),w=zs(),N=ze(),T=Es(),C=ma(),[S,D]=c.useState(!1),[M,A]=c.useState(dr),P=c.useRef(k);c.useEffect(()=>{P.current!==k&&(P.current=k,D(!1))},[k]);const E=x.trim().length>0,j=As(x,w).tokens.map(K=>({label:cx(K),onRemove:()=>g(lx(x,K))})),z=o??[],O=l??[],I=E?[{id:"top",label:m,results:z},{id:"related",label:f,results:O}]:[],R=!(z.length+O.length>0)&&(i===!0||u===!0),{scope:L}=Xc(b),B=ht({select:K=>K.matches}),_=Yc(B),X=tp(B,L,_?v.get(_)?.role:void 0),ee=X.kind==="global"?Cx([...z,...O]):void 0,Y=ee?{kind:"global",onScopeToSpam:()=>N({to:"/mail/$mailboxId",params:{mailboxId:ee.mailboxId},search:{q:p||void 0,selectedMessageId:void 0,selectedThreadId:void 0}})}:X;if(C==="phone"&&S){const K=ae=>{A(Hi(x)),D(!1),d?.(ae)};return n.jsx(D1,{value:x,onChange:g,onClear:y,onCancel:()=>{D(!1),y()},filter:r,recentSearches:M,onPickRecent:g,sections:I,loading:R,onSelectResult:K,tokens:j,scope:Y})}const fe=Sx({tier:C,hasLiveInput:E,hasCommittedQuery:p.trim().length>0,bodyRendersCommittedResults:h}),ue=K=>{A(Hi(x)),d?.(K)},te=n.jsx(wc,{value:x,sections:I,loading:R,onSelectResult:ue,tokens:j,scope:Y}),U=fe?r?n.jsx(kr,{...r,children:te}):n.jsx("div",{className:"h-full overflow-y-auto",children:te}):s;return n.jsxs("section",{className:"flex h-full w-full flex-col bg-surface",children:[n.jsx(C1,{title:e,unreadCount:t,isDesktop:!1,showSearch:Uu(C),onMenuClick:()=>T?.openNav(),searchValue:x,onSearchChange:g,onSearchClear:y,searchOpen:S,onSearchOpenChange:D}),n.jsx("div",{className:"min-h-0 flex-1",children:U}),a]})}const co=({isOpen:e,title:t,description:s,confirmLabel:a,cancelLabel:r="Cancel",destructive:o=!1,isBusy:i=!1,onConfirm:l,onCancel:u})=>{const d=c.useRef(null),m=c.useCallback(f=>{f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),f.stopImmediatePropagation(),u())},[u]);return c.useEffect(()=>{if(e)return window.addEventListener("keydown",m,!0),()=>window.removeEventListener("keydown",m,!0)},[e,m]),c.useEffect(()=>{e&&d.current?.focus()},[e]),e?n.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[n.jsx("div",{className:"absolute inset-0 bg-canvas/80 backdrop-blur-sm","aria-hidden":"true",onClick:u}),n.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":t,className:ge("relative z-10 w-full max-w-sm","bg-surface border border-line rounded-sm shadow-lg","p-6"),onClick:f=>f.stopPropagation(),onKeyDown:f=>f.stopPropagation(),children:[n.jsx("h2",{className:"text-lg font-semibold",children:t}),s&&n.jsx("p",{className:"mt-2 text-sm text-fg-muted",children:s}),n.jsxs("div",{className:"mt-6 flex items-center justify-end gap-2",children:[n.jsx("button",{ref:d,type:"button",onClick:u,className:ge("min-h-11 inline-flex items-center justify-center px-4 rounded text-sm font-medium transition-colors","border border-line hover:bg-surface-raised"),children:r}),n.jsx("button",{type:"button",onClick:l,disabled:i,className:ge("min-h-11 inline-flex items-center justify-center px-4 rounded text-sm font-medium transition-colors",o?"bg-danger text-canvas hover:bg-danger/90":"bg-accent text-accent-fg hover:bg-accent-hover","disabled:opacity-50 disabled:cursor-not-allowed"),children:a})]})]})]}):null},Nx=(e,t,s)=>{const a=e.indexOf(s);if(a===-1)return[];const r=t===void 0?-1:e.indexOf(t);if(r===-1)return[s];const o=Math.min(r,a),i=Math.max(r,a);return e.slice(o,i+1)},Ex=(e,t,s,a)=>t!==void 0&&e.includes(t)?t:s!==void 0&&e.includes(s)?s:a,Ix=(e,t)=>{const s=new Set(t),a=new Set;for(const r of e)s.has(r)&&a.add(r);return a},Vu=(e,t,s)=>{if(e.length===0)return;const a=t===void 0?-1:e.indexOf(t);if(a===-1)return s>0?e[0]:e[e.length-1];const r=Math.min(Math.max(a+s,0),e.length-1);return e[r]},Qu=e=>{const[t,s]=c.useState(new Set),[a,r]=c.useState(void 0),o=c.useCallback(p=>t.has(p),[t]),i=c.useCallback(p=>{r(p),s(x=>{const g=new Set(x);return g.has(p)?g.delete(p):g.add(p),g})},[]),l=c.useCallback(p=>{r(p),s(x=>{if(x.has(p))return x;const g=new Set(x);return g.add(p),g})},[]),u=c.useCallback(p=>{s(x=>{if(!x.has(p))return x;const g=new Set(x);return g.delete(p),g})},[]),d=c.useCallback(p=>{s(new Set(p))},[]),m=c.useCallback(()=>{r(void 0),s(new Set)},[]),f=c.useCallback(p=>{s(x=>p.every(y=>x.has(y))?new Set:new Set(p))},[]),h=c.useCallback(p=>{r(p)},[]),b=c.useCallback(p=>{s(x=>{if(x.size===0)return x;const g=Ix(x,p);return g.size===x.size?x:g})},[]),v=c.useCallback((p,x,g)=>{const y=Ex(p,a,g,x);s(k=>{const w=Nx(p,y,x);if(w.length===0)return k;const N=new Set(k);for(const T of w)N.add(T);return N}),r(y)},[a]);return{selectedIds:t,selectedCount:t.size,hasSelection:t.size>0,isSelected:o,toggle:i,select:l,deselect:u,selectAll:d,clearSelection:m,toggleAll:f,selectRange:v,setAnchor:h,anchorId:a,intersectWith:b}},Yu=(e,t)=>!t&&e>0,Tx=(e,t)=>e==="BACK"&&t,Rx=({orderedIds:e,isDesktop:t,initialFocusedId:s,onExitSelection:a})=>{const[r,o]=c.useState(s),i=Qu(),{selectedCount:l,toggle:u,clearSelection:d,selectRange:m,setAnchor:f,selectAll:h}=i,b=Yu(l,t),v=c.useRef(null),p=c.useRef(!1),x=c.useCallback(()=>{a?.(),d()},[d,a]),g=c.useMemo(()=>r?e.indexOf(r):-1,[e,r]),y=c.useCallback(E=>{if(E<0||E>=e.length)return;const j=e[E];if(b){u(j);return}v.current=j,p.current=!1,o(j)},[e,b,u]),k=c.useCallback(()=>{e.length!==0&&y(g<0?0:Math.min(g+1,e.length-1))},[e.length,g,y]),w=c.useCallback(()=>{e.length!==0&&y(g<=0?0:g-1)},[e.length,g,y]),N=c.useCallback(()=>y(0),[y]),T=c.useCallback(()=>y(e.length-1),[y,e.length]),C=c.useCallback(()=>{r&&u(r)},[r,u]),S=c.useCallback((E,j)=>j.shiftKey?(m(e,E,r),!0):j.metaKey||j.ctrlKey?(u(E),!0):(x(),f(E),!1),[e,r,m,u,x,f]),D=c.useCallback(E=>{const j=Vu(e,r,E);j!==void 0&&(m(e,j),v.current=j,p.current=!1,o(j))},[e,r,m]),M=c.useCallback(()=>D(-1),[D]),A=c.useCallback(()=>D(1),[D]),P=c.useCallback(()=>{e.length>0&&h(e)},[e,h]);return{focusedMessageId:r,setFocusedMessageId:o,focusIndex:g,pendingDomFocusRef:v,cursorMovedByPointerRef:p,selection:i,isMultiSelectMode:b,exitSelection:x,moveFocusToIndex:y,focusNext:k,focusPrevious:w,focusFirst:N,focusLast:T,toggleFocusedSelection:C,extendRangeUp:M,extendRangeDown:A,selectAllLoaded:P,handleRowSelect:S}};function Gu(e,t){if(e.length!==0)return t!==void 0&&e.includes(t)?t:e[0]}const Xu=({selectedCount:e,onDelete:t,onClearSelection:s,onMarkAsRead:a,onMove:r,onOrganize:o,isDeleting:i=!1,isMoving:l=!1,accountId:u,currentMailboxId:d,moveDisabledHint:m,selectAll:f,statusLabel:h,isCounting:b=!1,progress:v,notice:p})=>{if(e===0)return null;const x=v!==void 0,g=i||l||x,y=!x&&!b,k=!!r&&!!u&&!!d,w=!!o&&!!u&&!!d&&!m&&!h,N=f?.checked?`All ${e} loaded selected`:`${e} ${e===1?"message":"messages"} selected`;return n.jsxs("div",{className:"sticky top-0 z-10 flex flex-col bg-surface-sunken border-b border-line",children:[n.jsxs("div",{className:"flex items-center justify-between px-3 py-2",children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx("button",{type:"button",onClick:s,className:"min-h-11 min-w-11 inline-flex items-center justify-center rounded hover:bg-surface-raised transition-colors","aria-label":"Clear selection",children:n.jsx(Ue,{className:"size-4 text-fg-muted"})}),f&&n.jsx("label",{className:"flex size-11 shrink-0 cursor-pointer items-center justify-center",children:n.jsx(on,{"aria-label":"Select all",checked:f.checked,indeterminate:f.indeterminate,onChange:f.onChange})}),n.jsx("span",{className:"text-sm font-medium",children:h??N}),m&&!p&&n.jsx("span",{className:"text-xs text-fg-muted",role:"status","aria-live":"polite",children:m})]}),n.jsxs("div",{className:"flex items-center gap-1",children:[w&&o&&n.jsxs("button",{type:"button",onClick:g?void 0:o,className:"min-h-11 inline-flex items-center justify-center gap-1.5 px-3 rounded text-sm font-medium transition-colors hover:bg-surface-raised","aria-label":"Organize similar messages",children:[n.jsx(pt,{className:"size-4"}),n.jsx("span",{className:"hidden sm:inline",children:"Organize"})]}),y&&a&&n.jsx("button",{type:"button",onClick:g?void 0:a,className:"min-h-11 min-w-11 inline-flex items-center justify-center rounded text-sm font-medium transition-colors hover:bg-surface-raised","aria-label":"Mark as read","aria-busy":g,children:n.jsx(Is,{className:"size-4"})}),y&&k&&r&&u&&d&&n.jsx(hn,{accountId:u,currentMailboxId:d,onMove:g?()=>{}:r,disabledHint:m,variant:"icon-only",label:"Move selected messages"}),y&&n.jsxs("button",{type:"button",onClick:g?void 0:t,className:ge("min-h-11 min-w-11 inline-flex items-center justify-center gap-1.5 px-3 rounded text-sm font-medium transition-colors","bg-danger text-canvas hover:bg-danger/90"),"aria-label":"Delete selected messages","aria-busy":i,children:[i?n.jsx(bt,{className:"size-4 animate-spin"}):n.jsx(nt,{className:"size-4"}),n.jsx("span",{className:"hidden sm:inline",children:i?"Deleting...":"Delete"})]})]})]}),v&&n.jsx("div",{className:"px-3 pb-2",children:n.jsx(Kr,{value:v.value,max:v.max,tone:v.tone})}),p&&n.jsx(Zt,{tone:p.tone,variant:"soft",role:"status","aria-live":"polite",className:"mx-3 mb-2",children:n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[p.text&&n.jsx("span",{children:p.text}),p.action&&n.jsx("button",{type:"button",onClick:p.action.onClick,className:"-my-1 min-h-11 shrink-0 inline-flex items-center px-3 rounded text-sm font-medium transition-colors hover:bg-surface-raised",children:p.action.label})]})})]})},uo=c.createContext(null),Mx=e=>{const t=c.useContext(uo);return t?t.rowInteraction(e):null},zx=()=>{const e=c.useContext(uo);if(!e)throw new Error("useThreadListSelection must be used inside <ThreadListInteraction>");return e},Ax="[data-message-id]",Dx=e=>Array.from(e.querySelectorAll(Ax)).map(t=>t.dataset.messageId).filter(t=>t!==void 0),Ox=(e,t)=>e.length===t.length&&e.every((s,a)=>s===t[a]),Px=e=>{const[t,s]=c.useState([]);return c.useEffect(()=>{const a=e.current;if(!a)return;const r=()=>{const i=Dx(a);s(l=>Ox(l,i)?l:i)};r();const o=new MutationObserver(r);return o.observe(a,{childList:!0,subtree:!0}),()=>o.disconnect()},[e]),t};function Ju({selectedMessageId:e,onOpen:t,onDeleteMessages:s,isDeleting:a=!1,commandsRef:r,onTriageContextChange:o,children:i}){const l=$t(),u=c.useRef(null),d=Px(u),m=Rx({orderedIds:d,isDesktop:l,initialFocusedId:e}),{focusedMessageId:f,setFocusedMessageId:h,pendingDomFocusRef:b,cursorMovedByPointerRef:v,selection:p,isMultiSelectMode:x,exitSelection:g,handleRowSelect:y}=m,{selectedIds:k,selectedCount:w,isSelected:N,toggle:T,select:C}=p,{intersectWith:S}=p;c.useEffect(()=>{S(d)},[S,d]),c.useEffect(()=>{const Y=b.current;Y!==null&&(b.current=null,u.current?.querySelector(`[data-message-id="${Y}"]`)?.focus())});const D=c.useCallback(Y=>{v.current=!0,h(Y)},[v,h]),M=c.useCallback(Y=>{l||C(Y)},[l,C]),A=c.useCallback(()=>{f&&t(f)},[f,t]),[P,E]=c.useState(null),j=c.useCallback(Y=>!s||Y.length===0?!1:(E(Y),!0),[s]),z=c.useCallback(()=>{j(Array.from(k))},[j,k]),O=c.useCallback(()=>P!==null?!0:w>0?j(Array.from(k)):f?j([f]):!1,[P,w,k,f,j]),I=c.useCallback(()=>{P!==null&&(s?.(P),E(null),g())},[P,s,g]),F=c.useCallback(()=>E(null),[]),R=c.useCallback(()=>w===0?!1:(g(),!0),[w,g]),L=d.length>0;c.useEffect(()=>{if(r){if(!L){r.current=null;return}return r.current={focusNext:m.focusNext,focusPrevious:m.focusPrevious,focusFirst:m.focusFirst,focusLast:m.focusLast,openFocused:A,toggleSelect:m.toggleFocusedSelection,extendSelectDown:m.extendRangeDown,extendSelectUp:m.extendRangeUp,selectAll:m.selectAllLoaded,clearSelection:R,requestDelete:O,toggleDensity:()=>{}},()=>{r.current=null}}},[r,L,m.focusNext,m.focusPrevious,m.focusFirst,m.focusLast,m.toggleFocusedSelection,m.extendRangeDown,m.extendRangeUp,m.selectAllLoaded,A,R,O]);const B=c.useMemo(()=>Array.from(k),[k]),_=P!==null;c.useEffect(()=>{o?.({focusedMessageId:f,selectedIds:B,orderedIds:d,hasList:L,blocksKeyboard:_})},[o,f,B,d,L,_]);const X=Gu(d,f),ee=c.useMemo(()=>({selectedIds:k,selectedCount:w,exitSelection:g,requestDeleteSelection:z,rowInteraction:Y=>({focused:Y===f,isTabStop:Y===X,isDesktop:l,onFocusRow:D,selection:{isChecked:N(Y),onToggleCheck:T,onRowSelect:y,isMultiSelectMode:x,onLongPress:M}})}),[k,w,g,z,f,X,l,D,N,T,y,x,M]);return n.jsxs(uo.Provider,{value:ee,children:[n.jsx("div",{ref:u,className:"contents",children:i}),n.jsx(co,{isOpen:_,title:$l(P?.length??0),description:"You can restore them from Trash later.",confirmLabel:"Move to Trash",destructive:!0,isBusy:a,onConfirm:I,onCancel:F})]})}function Zu({onMarkAsRead:e,isDeleting:t}){const{selectedIds:s,selectedCount:a,exitSelection:r,requestDeleteSelection:o}=zx(),i=c.useCallback(()=>{e?.(Array.from(s)),r()},[e,s,r]);return n.jsx(Xu,{selectedCount:a,onDelete:o,onClearSelection:r,onMarkAsRead:e?i:void 0,isDeleting:t})}const Lx=({thread:e,active:t=!1,focused:s,isTabStop:a,density:r="comfortable",isDesktop:o,badge:i,selection:l,inListbox:u=!1,linkMailboxId:d,onClick:m,onFocusRow:f})=>{const h=ye(),b=e.id,v=Mx(b),p=s??v?.focused??!1,x=a??v?.isTabStop??!1,g=l??v?.selection,y=f??v?.onFocusRow,k=o??v?.isDesktop??!0,w=g?.isChecked??!1,N=g?.isMultiSelectMode??!1,T=g?.onToggleCheck,C=g?.onRowSelect,S=g?.onLongPress,D=c.useCallback(R=>{R.preventDefault(),R.stopPropagation(),T?.(b)},[T,b]),M=c.useCallback(R=>{if(!k){if(N){R.preventDefault(),R.stopPropagation(),T?.(b);return}m?.();return}const L={shiftKey:R.shiftKey,metaKey:R.metaKey,ctrlKey:R.ctrlKey};if(C?.(b,L)){R.preventDefault(),R.stopPropagation(),L.shiftKey&&window.getSelection()?.removeAllRanges();return}m?.()},[k,N,T,C,m,b]),A=c.useCallback(R=>{k&&R.shiftKey&&R.preventDefault()},[k]),P=c.useCallback(()=>{S?.(b)},[S,b]),{longPressProps:E}=mc({onLongPress:P,delayMs:500,accessibilityDescription:w?"Deselect message":"Select message"}),j=c.useCallback(()=>{h.prefetchQuery(Ar({path:{messageId:b}}))},[h,b]),z=c.useCallback(()=>{j(),y?.(b)},[j,y,b]),O=nn({"data-list-row":"","data-message-row":!0,"data-message-id":b,...u?{role:"option","aria-selected":w}:{},tabIndex:x?0:-1,onClick:M,onMouseDown:A,onMouseEnter:j,onFocus:z},k||!g?{}:E),I=ge(r==="compact"?cc({active:t,focused:p}):ge("group",rn({active:t,focused:p})),"outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-inset",w&&"bg-accent-soft",!k&&"min-h-11 select-none [-webkit-touch-callout:none]"),F=r==="compact"?n.jsx(uc,{thread:e}):n.jsx(dc,{thread:e,badge:i,selection:g?{checked:w,alwaysVisible:N,onToggle:D}:void 0});return d===void 0?n.jsx("button",{type:"button",...O,className:I,children:F}):n.jsx(ft,{to:"/mail/$mailboxId",params:{mailboxId:d},search:R=>({...R,selectedMessageId:b}),...O,className:I,children:F})},mo=c.memo(Lx),$x=200,Fx={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0,contacts:e=>e.trust==="vip"||e.trust==="wellknown",today:e=>e.sentDate!=null&&new Date(e.sentDate).toDateString()===new Date().toDateString()},Wi=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>n.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[n.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),_x=({accountEmail:e})=>{const t=ze();return n.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[n.jsx(Jt,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>t({to:"/settings/accounts"}),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})};function qx({accounts:e,selectedMessageId:t,onSelectMessage:s,onSelectSearchResult:a,commandsRef:r,onTriageContextChange:o,onDeleteMessages:i,onMarkMessagesRead:l}){const{searchQuery:u,resultFolderIndex:d}=je(),m=zs(),f=$t(),h=c.useMemo(()=>hx(e.filter(U=>!U.muted?.value)),[e]),[b,v]=c.useState("all"),[p,x]=c.useState("all"),[g,y]=c.useState(new Set),[k,w]=c.useState(!1),N=c.useCallback(U=>{y(K=>{const ae=new Set(K);return ae.has(U)?ae.delete(U):ae.add(U),ae})},[]),{data:T,isLoading:C,isError:S,refetch:D}=ce({...Ya(),staleTime:6e4}),M=Lt({queries:h.map(U=>({...He({path:{accountId:U.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),A=c.useMemo(()=>{const U=new Map;for(let K=0;K<h.length;K++){const ae=h[K].accountId,Te=(M[K]?.data?.items??[]).reduce((V,J)=>V+(J.unseenCount??0),0);U.set(ae,Te)}return U},[h,M]),P=c.useMemo(()=>h.filter((U,K)=>{const ae=M[K];return ae?.isError?!Ga(ae.error):!1}),[h,M]),{freeText:E,tokens:j}=As(u.trim().toLowerCase(),m),{data:z,isFetching:O}=ce({...Ya({query:{query:E,limit:$x}}),enabled:E.length>0,staleTime:3e4}),I=c.useMemo(()=>{const U=(T?.items??[]).map(ur);return(E?gx(U.filter(ae=>_u(ae,E)),(z?.items??[]).map(ur)):U).filter(ae=>(b==="all"||ae.accountId===b)&&qu(ae,j))},[T,z,b,E,j]),F=c.useMemo(()=>px(I),[I]),R=c.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:b==="all"},...h.map(U=>({id:U.accountId,label:U.email.split("@")[0]??U.email,count:A.get(U.accountId),active:b===U.accountId}))],[h,A,b]),L=c.useMemo(()=>e.filter(U=>U.muted?.value).length,[e]),B=c.useMemo(()=>Array.from(A.values()).reduce((U,K)=>U+K,0),[A]),_=c.useMemo(()=>{const U=Array.from(g).map(K=>Fx[K]).filter(K=>K!=null);return I.filter(K=>(p==="all"||K.category===p)&&U.every(ae=>ae(K))).map(K=>Bu(K,d))},[I,p,g,d]),{hits:X,isLoading:ee}=Fu(),Y=c.useMemo(()=>{const U=new Map;for(const ae of T?.items??[])U.set(ae.messageId,ae.threadId);const K=_.map(ae=>U.get(ae.id)).filter(ae=>ae!=null);return Ku(X,K,d)},[X,_,T,d]),fe=c.useMemo(()=>{const U=ch(R.map(K=>({id:K.id,label:K.label,count:K.count,active:K.active})));return{categories:U.categories,filters:U.filters,sources:U.sources,sourcesNote:L>0?`+${L} muted`:void 0,selectedCategory:p,activeFilters:g,expanded:k,onExpandedChange:w,onSelectCategory:K=>x(K),onSelectSource:v,onToggleFilter:N,onClear:()=>{x("all"),v("all"),y(new Set)}}},[R,L,p,g,k,N]),ue=F.length===0&&b==="all"&&E.length===0,te=C?n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Wi,{}),n.jsx(Wi,{})]}):S?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[n.jsx(Jt,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>D(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(nc,{className:"size-3.5"}),"Try again"]})]}):ue?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[n.jsx(pt,{className:"size-8 text-fg-subtle"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]}):n.jsx(Ju,{selectedMessageId:t,onOpen:U=>s?.(U),onDeleteMessages:i,commandsRef:r,onTriageContextChange:o,children:n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[i?n.jsx(Zu,{onMarkAsRead:l}):null,n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(pl,{sections:F,Row:mo,manageFocus:!1,briefCategory:p,onSelectBriefCategory:x,sources:R,sourcesNote:L>0?`+${L} muted`:void 0,onSelectSource:v,selectedThreadId:t,onSelectThread:s})})]})});return n.jsx(Wu,{title:"Daily brief",unreadCount:B,footer:f?n.jsx(ic,{}):void 0,searchFilter:fe,searchResults:_,searchLoading:C||O,relatedResults:Y,relatedLoading:ee,onSelectSearchResult:a,children:n.jsxs("div",{className:"flex h-full flex-col",children:[P.map(U=>n.jsx(_x,{accountEmail:U.email,accountId:U.accountId},U.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:te})]})})}const Bx=10,ed=e=>({q:e?.toLowerCase()??"",limit:Bx}),Kx=(e,t)=>{if(!t)return;const s=t.toLowerCase();return e?.find(a=>a.normalizedEmail===s)};function Ux(e){const t=new Date(e),s=new Date;return t.toDateString()===s.toDateString()?"today":Fn(t,{month:"short",year:"numeric"})}function td(e){if(!e)return!0;const[,t]=e.split("@");return t?!t.includes("."):!0}const Hx="We can't verify the sender of this email, which could mean it's from an insecure source.",Wx="We couldn't read this sender's address, so we can't confirm who really sent this message.";function Vx(e,t){return{name:e.fromName??e.fromEmail??"Unknown",email:e.fromEmail??"",trust:e.senderTrust,firstSeenLabel:t?Ux(t.createdAt):"unknown",inboundCount:t?.inboundCount,replyCount:t?.replyCount,addressUnverified:td(e.fromEmail)}}function Qx(e){return e?.flags?{vip:e.flags.vip?.value===!0,muted:e.flags.muted?.value===!0,blocked:e.flags.blocked?.value===!0,unsubscribed:e.flags.unsubscribed?.value===!0}:{}}function Yx(e,t){const s=t>0?t:void 0;if(td(e.fromEmail))return{verdict:"mismatch",fromDomain:"",addressUnreadable:!0,summary:Wx,similarCount:s};const a=e.authenticity;if(!a)return{verdict:"caution",fromDomain:e.fromEmail?.split("@")[1]??"",summary:Hx};if(!a.dkimMismatch)return{verdict:"aligned",fromDomain:a.fromDomain,dkimDomain:a.dkimDomain,summary:a.dkimDomain?`We verified this message was really sent by ${a.fromDomain}.`:"Nothing looks unusual about this sender."};const r=a.fromDomain,o=a.dkimDomain,i=e.fromName&&e.fromName!==e.fromEmail?e.fromName:void 0,l=i?`The display name claims "${i}", but this message was actually sent from ${o??"another sender"} — not ${r}. Real senders use their own address.`:`This message claims to be from ${r}, but it was actually sent from ${o??"a different sender"}.`;return{verdict:"mismatch",fromDomain:r,dkimDomain:o,claimedBrand:i,summary:l,similarCount:s}}function sd(e,t){const s=e?.fromEmail??null,a=e?.subject??"",{data:r,error:o}=ce({...Nl({query:ed(s??void 0)}),enabled:!!s,staleTime:3e4}),i=Kx(r?.items,s??void 0),l=[a,s].filter(Boolean).join(" "),{data:u,isLoading:d,error:m}=ce({...Ml({query:{query:l,limit:5}}),enabled:!!(e&&l.length>3),staleTime:6e4,retry:1});return{data:c.useMemo(()=>{if(!e)return null;const h=(u?.items??[]).filter(g=>g.messageId!==e.messageId).map(g=>({id:g.messageId,mailboxId:t!=null&&g.mailboxIds.includes(t)?t:g.mailboxIds[0]??"",fromName:g.fromName??"",subject:g.subject??"(No subject)",timeLabel:g.sentDate!=null?Ot(g.sentDate*1e3):"",matched:g.matchedChunkType})),b=Vx(e,i),v=Yx(e,h.length),p={value:e.category??"personal",overridden:i?.flags?.category?.value!=null&&i.flags.category.value!==e.category},x=Qx(i);return{sender:b,authenticity:v,category:p,flags:x,similar:h}},[e,i,u,t]),isSimilarLoading:d,similarError:m,similarErrorIsFatal:Ga(m),addressErrorIsFatal:Ga(o),addressId:i?.addressId,address:i}}function Gx(e,t){const s={...e??{}};for(const[a,r]of Object.entries(t))r==null?delete s[a]:s[a]={...r,setAt:r.setAt??Date.now()};return s}function nd({addressId:e,senderEmail:t}){const s=ye(),{pushError:a}=Je(),r=T0({query:ed(t)}),{mutate:o,isPending:i}=ve({...Rl(),onMutate:async u=>{const d=u.body.flags??{};await s.cancelQueries({queryKey:r});const m=s.getQueryData(r);return s.setQueryData(r,f=>f&&{...f,items:f.items.map(h=>h.addressId===u.path.addressId?{...h,flags:Gx(h.flags,d)}:h)}),{previous:m}},onError:(u,d,m)=>{m?.previous!==void 0&&s.setQueryData(r,m.previous),a({title:"Couldn't update sender preference",detail:it(u),error:u})},onSettled:()=>{s.invalidateQueries({queryKey:r})}});return{updateFlags:c.useCallback(u=>{if(!e){zl(new Error(`Quick action fired but the sender's address record did not resolve (sender: ${t??"unknown"}). This should never happen — the address row exists.`));return}o({path:{addressId:e},body:{flags:u}})},[e,o,t]),isPending:i}}const Xx=e=>e==="vip"?"A sender you know":e==="wellknown"?"You've emailed them before":"Passed authentication",ad=e=>e.senderTrust!=="vip"&&e.senderTrust!=="wellknown"?!1:e.authenticity?.dkimMismatch!==!0;function Jx(e,t){e.recordEvent("rescue.candidates_surfaced",{count:String(t)})}function Zx(e,t){e.recordEvent("rescue.flow_opened",{count:String(t)})}function ev(e,t){e.recordEvent("rescue.committed",{selected:String(t.selected),total:String(t.total),destination:t.toInbox?"inbox":"other"})}function rd(e,t){e.recordEvent("rescue.sent_to_junk",{count:String(t.count),senderTrust:t.senderTrust,wasRescuable:String(t.wasRescuable)})}const tv=["personal","newsletter","marketing","automated","transactional","social"],sv=e=>{const{mailboxId:t,junkMailboxId:s,inboxMailboxId:a}=e;return t?s&&t===s?a?"notSpam":null:s?"markSpam":null:null},nv=e=>{const{similarError:t,similarErrorIsFatal:s,isSimilarLoading:a}=e;return t&&!s?"error":a?"loading":"ready"};function av(){return n.jsxs("aside",{className:"flex h-full w-full flex-col bg-surface-sunken",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-1.5 border-b border-line px-row-inset",children:[n.jsx(pt,{className:"size-3.5 text-fg-subtle"}),n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"})]}),n.jsxs("div",{className:"flex-1 animate-pulse space-y-4 p-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),n.jsxs("div",{className:"flex gap-3",children:[n.jsx("div",{className:"size-10 rounded-full bg-surface shrink-0"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsx("div",{className:"h-3 rounded bg-surface w-3/4"}),n.jsx("div",{className:"h-2.5 rounded bg-surface w-1/2"})]})]})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),n.jsx("div",{className:"h-8 rounded bg-surface"})]}),n.jsxs("div",{className:"space-y-2",children:[n.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),n.jsx("div",{className:"flex gap-1.5 flex-wrap",children:Array.from({length:5}).map((e,t)=>n.jsx("div",{className:"h-6 w-16 rounded bg-surface"},t))})]})]})]})}function rv({isOpen:e,current:t,onSelect:s,onCancel:a}){return e?n.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center","aria-hidden":"true",onClick:a,children:[n.jsx("div",{className:"absolute inset-0 bg-canvas/80 backdrop-blur-sm"}),n.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Reclassify sender",className:"relative z-10 w-full max-w-sm rounded-sm border border-line bg-surface p-6 shadow-lg",onClick:r=>r.stopPropagation(),onKeyDown:r=>r.stopPropagation(),children:[n.jsx("h2",{className:"text-lg font-semibold",children:"Reclassify this sender"}),n.jsx("p",{className:"mt-2 text-sm text-fg-muted",children:"Set a category override for future messages from this sender."}),n.jsx("div",{className:"mt-4 flex flex-col gap-1",children:tv.map(r=>n.jsxs("button",{type:"button",onClick:()=>s(r),className:`flex min-h-11 items-center justify-between rounded px-3 text-left text-sm capitalize transition-colors hover:bg-surface-raised ${r===t?"font-semibold text-accent":"text-fg"}`,children:[r,r===t&&n.jsx("span",{className:"text-2xs text-fg-subtle",children:"current"})]},r))}),n.jsx("div",{className:"mt-6 flex justify-end",children:n.jsx("button",{type:"button",onClick:a,className:"inline-flex min-h-11 items-center justify-center rounded border border-line px-4 text-sm font-medium transition-colors hover:bg-surface-raised",children:"Cancel"})})]})]}):null}function ov({thread:e,onClose:t,mailboxId:s,accountId:a,hideCloseButton:r}){const{data:o,addressId:i,isSimilarLoading:l,similarError:u,similarErrorIsFatal:d}=sd(e,s),[m,f]=c.useState(!1),[h,b]=c.useState(!1),v=e.fromEmail??void 0,{updateFlags:p,isPending:x}=nd({addressId:i,senderEmail:v}),{junkMailboxId:g}=ca(a),{inboxMailboxId:y}=no(a),{moveMessages:k}=Mt({mailboxId:s??"",threadId:e.threadId,accountId:a}),w=tn(),N=sv({mailboxId:s,junkMailboxId:g,inboxMailboxId:y}),T=c.useCallback(()=>{y&&k([e.messageId],y)},[y,k,e.messageId]),C=c.useCallback(()=>{g&&(rd(w,{count:1,senderTrust:e.senderTrust,wasRescuable:ad(e)}),k([e.messageId],g))},[g,k,e,w]),S=c.useCallback(()=>{},[]),D=c.useCallback(()=>{const R=o?.flags?.vip!==!0;p({vip:{value:R}})},[o?.flags?.vip,p]),M=c.useCallback(()=>{const R=o?.flags?.muted!==!0;p({muted:{value:R}})},[o?.flags?.muted,p]),A=c.useCallback(()=>{o?.flags?.blocked===!0?p({blocked:{value:!1}}):f(!0)},[o?.flags?.blocked,p]),P=c.useCallback(()=>{f(!1),p({blocked:{value:!0}})},[p]),E=c.useCallback(()=>{const R=o?.flags?.unsubscribed!==!0;p({unsubscribed:{value:R}})},[o?.flags?.unsubscribed,p]),j=c.useCallback(R=>{b(!1),p({category:{value:R}})},[p]),z=i!==void 0,O={onToggleVip:z?D:void 0,onToggleMute:z?M:void 0,onToggleBlock:z?A:void 0,onToggleUnsubscribe:z?E:void 0,onReclassify:z?()=>b(!0):void 0,onNotSpam:N==="notSpam"?T:void 0,onMarkSpam:N==="markSpam"?C:void 0},I=({mailboxId:R,messageId:L,className:B,ariaLabel:_,children:X})=>n.jsx(ft,{to:"/mail/$mailboxId",params:{mailboxId:R},search:ee=>({...ee,selectedMessageId:L}),className:B,"aria-label":_,children:X});if(!o)return n.jsx(av,{});const F=nv({similarError:u,similarErrorIsFatal:d,isSimilarLoading:l});return n.jsxs(n.Fragment,{children:[n.jsx(oc,{data:o,onClose:t,hideCloseButton:r,onShowSimilar:S,actions:O,similarState:F,similarLinkComponent:I,className:"border-l-0 h-full w-full"}),n.jsx(co,{isOpen:m,title:"Block this sender?",description:`Messages from ${v??"this sender"} will never load images and will be flagged. You can undo this in Settings → Senders.`,confirmLabel:"Block sender",destructive:!0,isBusy:x,onConfirm:P,onCancel:()=>f(!1)}),n.jsx(rv,{isOpen:h,current:o.category.value,onSelect:j,onCancel:()=>b(!1)})]})}const Ds=({onClose:e,thread:t,mailboxId:s,accountId:a,hideCloseButton:r})=>t?n.jsx(ov,{thread:t,onClose:e,mailboxId:s,accountId:a,hideCloseButton:r}):n.jsxs("aside",{className:"flex h-full w-full flex-col bg-surface-sunken",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-1.5 border-b border-line px-row-inset",children:[n.jsx(pt,{className:"size-3.5 text-fg-subtle"}),n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"})]}),n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center px-row-inset text-center",children:[n.jsx(pt,{className:"size-8 text-fg-subtle"}),n.jsx("p",{className:"mt-3 text-sm text-fg-muted",children:"Intelligence"}),n.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"Sender trust, authenticity and similar messages will appear here."})]})]}),Ba="Open a message first",fo=({hasThread:e,intelligenceOpen:t,canToggleIntelligence:s,onToggleIntelligence:a,onReply:r,onReplyAll:o,onForward:i,onDelete:l,canDelete:u,onToggleStar:d,isStarred:m,moveContext:f})=>{const[h,b]=c.useState(null),v=u??e,p=x=>()=>b(x);return n.jsx(Nf,{hasThread:e,isStarred:m,onUnavailable:x=>b(Ba),unavailableHint:h,replyTitle:`Reply ${hs("reply")}`,replyAllTitle:`Reply all ${hs("replyAll")}`,forwardTitle:`Forward ${hs("forward")}`,deleteTitle:`Move to Trash ${hs("delete")}`,flagTitle:`Star ${hs("toggleStar")}`,onReply:r,onReplyAll:o,onForward:i,onDelete:v?l:p(Ba),onToggleStar:d,onMove:p(Ba),moveSlot:f?n.jsx(hn,{accountId:f.accountId,currentMailboxId:f.currentMailboxId,onMove:f.onMove,label:"Move to mailbox"}):void 0,children:n.jsx(Cf,{open:t,enabled:s,onToggle:a})})},od=()=>{const e=ye();return c.useCallback(t=>{const s=ts({path:{threadId:t.threadId}}),r=e.getQueriesData({queryKey:s}).flatMap(([,o])=>o?.items.map(i=>i.messageId)??[]);return r.length>0?r:[t.messageId]},[e])},Js=({thread:e,mailboxId:t,accountId:s,onAfterOptimisticRemove:a})=>{const r=t??e?.mailboxId,o=s??e?.accountConfigId,i=od(),{deleteMessages:l}=Xt({mailboxId:r??"",threadId:e?.threadId,accountId:o,onAfterOptimisticRemove:a}),{moveMessages:u}=Mt({mailboxId:r??"",threadId:e?.threadId,accountId:o,onAfterOptimisticRemove:a}),{toggleStar:d}=to({threadId:e?.threadId??"",mailboxId:r??""}),m=c.useCallback(()=>{e&&l(i(e))},[e,i,l]),f=c.useCallback(x=>{e&&u(i(e),x)},[e,i,u]),h=c.useCallback(()=>{e&&d(e.messageId,e.hasStars)},[e,d]),[b,v]=c.useState(null),p=c.useCallback(()=>v(null),[]);return{mailboxId:r,accountId:o,isStarred:e?.hasStars,deleteThread:m,moveThread:f,toggleStar:h,composeRequest:b,requestCompose:v,clearComposeRequest:p}},_s={action:null,nextPrefix:null,preventDefault:!1},iv={b:"goBrief",i:"goInbox",s:"goSent",f:"goFlagged",",":"goSettings"},lv={j:{action:"focusNext"},k:{action:"focusPrevious"},arrowdown:{action:"focusNext"},arrowup:{action:"focusPrevious"},home:{action:"focusFirst"},end:{action:"focusLast"},enter:{action:"openFocused"}," ":{action:"toggleSelect"},delete:{action:"delete"},backspace:{action:"delete"},u:{action:"toggleRead"},x:{action:"toggleSelect"},r:{action:"reply"},a:{action:"replyAll"},f:{action:"forward"},"#":{action:"delete"},s:{action:"toggleStar"},m:{action:"muteSender"},b:{action:"blockSender"},v:{action:"vipSender"},"!":{action:"markJunk"},i:{action:"toggleIntelligence"},d:{action:"toggleDensity"},"/":{action:"focusSearch"},c:{action:"compose"},"?":{action:"help"}};function cv(e,t){const s=e.key.toLowerCase(),a=e.metaKey||e.ctrlKey;if(e.inEditable)return{..._s,nextPrefix:t==="g"?null:t};if(e.onControl&&(s==="enter"||s===" "))return{..._s,nextPrefix:t==="g"?null:t};if(a&&s==="n")return{action:"compose",nextPrefix:null,preventDefault:!0};if(a&&s==="a")return{action:"selectAll",nextPrefix:null,preventDefault:!0};if(a)return{..._s,nextPrefix:t==="g"?null:t};if(s==="escape")return{action:"back",nextPrefix:null,preventDefault:!1};if(t==="g"){const i=iv[s===","?",":s]??null;return{action:i,nextPrefix:null,preventDefault:i!==null}}if(s==="g"&&!e.shiftKey)return{action:null,nextPrefix:"g",preventDefault:!0};if(e.shiftKey){const o=s==="j"||s==="arrowdown";if(o||(s==="k"||s==="arrowup"))return{action:o?"extendSelectDown":"extendSelectUp",nextPrefix:null,preventDefault:!0}}const r=lv[s];if(r){const o=r.requireShift===!0,i=s.length===1&&!/[a-z0-9]/.test(s);return!o&&e.shiftKey&&!i?_s:{action:r.action,nextPrefix:null,preventDefault:!0}}return _s}function uv(e){if(!(e instanceof HTMLElement))return!1;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"||e.isContentEditable}const dv="data-message-row",mv='button, a[href], summary, [role="button"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"]';function fv(e){if(!(e instanceof HTMLElement))return!1;const t=e.closest(mv);return t?!t.hasAttribute(dv):!1}function hv({handlers:e,enabled:t=!0,sequenceTimeoutMs:s=1e3}){const a=c.useRef(e);a.current=e;const r=c.useRef(null),o=c.useRef(null);c.useEffect(()=>{if(!t)return;const i=()=>{o.current!==null&&(clearTimeout(o.current),o.current=null)},l=u=>{const d=cv({key:u.key,shiftKey:u.shiftKey,metaKey:u.metaKey,ctrlKey:u.ctrlKey,altKey:u.altKey,inEditable:uv(u.target),onControl:fv(u.target)},r.current);if(i(),r.current=d.nextPrefix,d.nextPrefix!==null&&(o.current=setTimeout(()=>{r.current=null,o.current=null},s)),d.action===null)return;const m=a.current[d.action];m&&(d.preventDefault&&u.preventDefault(),m())};return window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l),i(),r.current=null}},[t,s])}const Vi=(e,t,s)=>{if(!t)return null;const a=e.indexOf(t);if(a===-1)return null;const r=s==="next"?a+1:a-1;return r<0||r>=e.length?null:e[r]},ho=()=>{const[e,t]=c.useState(void 0),[s,a]=c.useState([]),[r,o]=c.useState([]),i=c.useRef(null),[l,u]=c.useState(!1),[d,m]=c.useState(!1),f=c.useCallback(h=>{t(h.focusedMessageId),a(h.selectedIds),h.orderedIds&&o(h.orderedIds),u(h.hasList),m(h.blocksKeyboard)},[]);return{listCommandsRef:i,onTriageContextChange:f,focusedMessageId:e,selectedIds:s,orderedIds:r,hasList:l,blocksKeyboard:d}},go=({context:e,orderedIds:t,selectedMessageId:s,enabled:a=!0,onClose:r,handlers:o})=>{const{listCommandsRef:i,hasList:l,blocksKeyboard:u}=e,d=c.useCallback(()=>{i.current?.clearSelection()||s&&r()},[i,s,r]);return hv({enabled:a&&!u,handlers:{...l?{focusNext:()=>i.current?.focusNext(),focusPrevious:()=>i.current?.focusPrevious(),focusFirst:()=>i.current?.focusFirst(),focusLast:()=>i.current?.focusLast(),openFocused:()=>i.current?.openFocused(),toggleSelect:()=>i.current?.toggleSelect(),extendSelectDown:()=>i.current?.extendSelectDown(),extendSelectUp:()=>i.current?.extendSelectUp(),selectAll:()=>i.current?.selectAll(),toggleDensity:()=>i.current?.toggleDensity()}:{},back:d,...o}}),{goBack:d,nextMessageId:Vi(t,s,"next")??void 0,previousMessageId:Vi(t,s,"previous")??void 0}};function gv(e){return{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,messageId:e.messageId,authenticity:e.authenticity}}function id(e,t){if(e)return gv(e);if(t.messageId&&t.threadId&&t.mailboxId)return{threadId:t.threadId,mailboxId:t.mailboxId,messageId:t.messageId}}const ld=c.createContext(null);function fa(){const e=c.useContext(ld);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function pv({selectedMessageId:e,children:t}){const s=ze(),{searchInput:a}=je(),{selectedThreadId:r,selectedMailboxId:o}=ws({strict:!1}),{data:i}=ce({...Ya(),staleTime:6e4}),l=c.useMemo(()=>{if(e)return i?.items.find(M=>M.messageId===e)},[i,e]),u=c.useMemo(()=>id(l,{messageId:e,threadId:r,mailboxId:o}),[l,e,r,o]),d=c.useCallback(M=>{s({to:"/mail",search:A=>({...A,selectedMessageId:M,selectedThreadId:void 0,selectedMailboxId:void 0})})},[s]),m=c.useCallback(M=>{s({to:"/mail",search:A=>({...A,q:a||void 0,selectedMessageId:M.id,selectedThreadId:M.threadId,selectedMailboxId:M.mailboxId})})},[s,a]),f=c.useCallback(M=>{e&&M.includes(e)&&s({to:"/mail",search:A=>({...A,selectedMessageId:void 0,selectedThreadId:void 0,selectedMailboxId:void 0})})},[e,s]),h=Js({thread:l,onAfterOptimisticRemove:f}),b=c.useCallback(()=>{s({to:"/mail",search:M=>({...M,selectedMessageId:void 0,selectedThreadId:void 0,selectedMailboxId:void 0})})},[s]),v=ho(),p=c.useMemo(()=>i?.items??[],[i]),{deleteMessages:x}=Xt({mailboxId:l?.mailboxId??"",messages:p,onAfterOptimisticRemove:f}),{toggleReadFor:g}=oa({mailboxId:l?.mailboxId??"",messages:p}),y=c.useCallback(M=>g(M,!0),[g]),k=v.focusedMessageId,N=c.useMemo(()=>i?.items.find(M=>M.messageId===k),[i,k])??l,T=Js({thread:N}),{nextMessageId:C,previousMessageId:S}=go({context:v,orderedIds:v.orderedIds,selectedMessageId:e,onClose:b,handlers:{reply:()=>h.requestCompose("reply"),replyAll:()=>h.requestCompose("reply_all"),forward:()=>h.requestCompose("forward"),delete:()=>{v.listCommandsRef.current?.requestDelete()||T.deleteThread()},toggleStar:T.toggleStar,toggleRead:()=>{const M=v.selectedIds.length>0?v.selectedIds:N?[N.messageId]:[];M.length!==0&&g(M,!(N?.isRead??!1))},goFlagged:()=>s({to:"/mail/flagged"}),goSettings:()=>s({to:"/settings"})}}),D={selectedMessageId:e,selectedThread:l,conversation:u,onSelectMessage:d,onSelectSearchResult:m,onCloseThread:b,actions:h,triage:v,onDeleteMessages:x,onMarkMessagesRead:y,nextMessageId:C,previousMessageId:S};return n.jsx(ld.Provider,{value:D,children:t})}function cd(){const{selectedMessageId:e,onSelectMessage:t,onSelectSearchResult:s,triage:a,onDeleteMessages:r,onMarkMessagesRead:o}=fa(),{accounts:i}=je();return n.jsx(qx,{accounts:i,selectedMessageId:e,onSelectMessage:t,onSelectSearchResult:s,commandsRef:a.listCommandsRef,onTriageContextChange:a.onTriageContextChange,onDeleteMessages:r,onMarkMessagesRead:o})}function bv(){const{conversation:e,actions:t}=fa(),{intelligenceOpen:s,onToggleIntelligence:a}=je(),r=Es()?.showIntelligencePane??!1,o=!!e,i=r&&o;return n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(fo,{hasThread:o,intelligenceOpen:i&&s,canToggleIntelligence:i,onToggleIntelligence:a,onReply:o?()=>t.requestCompose("reply"):void 0,onReplyAll:o?()=>t.requestCompose("reply_all"):void 0,onForward:o?()=>t.requestCompose("forward"):void 0,onDelete:o?t.deleteThread:void 0,onToggleStar:o?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:o&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(Ms,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):n.jsx(Rs,{})})]})}function xv(){const{selectedThread:e}=fa(),{onToggleIntelligence:t}=je();return n.jsx(Ds,{onClose:t,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId})}function vv(){const{selectedThread:e,conversation:t,onSelectMessage:s,onCloseThread:a,nextMessageId:r,previousMessageId:o}=fa(),{intelligenceOpen:i,onToggleIntelligence:l}=je();return t?n.jsxs(n.Fragment,{children:[n.jsx(Ms,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:a,onOpenIntelligence:l,onSwipeNext:r?()=>s(r):void 0,onSwipePrevious:o?()=>s(o):void 0,mobileIntelligenceOpen:i}),n.jsx(Xr,{isOpen:i,onClose:l,ariaLabel:"Message details",side:"right",children:n.jsx(Ds,{onClose:l,thread:e,hideCloseButton:!0})})]}):n.jsx("div",{className:"h-full",children:n.jsx(cd,{})})}const qs=Object.assign(pv,{List:cd,Reading:bv,Intelligence:xv,Phone:vv}),yv=()=>Tl({query:{starred:!0,order:"desc"}});function ud(){const{data:e,isLoading:t,isError:s,error:a,refetch:r,fetchNextPage:o,hasNextPage:i,isFetchingNextPage:l}=Fc({queryKey:yv(),queryFn:async({pageParam:d})=>{const{data:m}=await R0({query:{starred:!0,order:"desc",continuationToken:d},throwOnError:!0});return m},initialPageParam:void 0,getNextPageParam:d=>d.continuationToken,staleTime:6e4});return{threads:c.useMemo(()=>(e?.pages??[]).flatMap(d=>d.items??[]),[e]),isLoading:t,isError:s,error:a,refetch:r,fetchNextPage:o,hasNextPage:i,isFetchingNextPage:l}}const kv=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))};function dd({title:e,unreadCount:t,preset:s,selectedCategory:a,activeFilters:r,onSelectCategory:o,onToggleFilter:i,onSelectSource:l,onClearFilters:u,children:d,footer:m,searchResults:f,searchLoading:h,relatedResults:b,relatedLoading:v,onSelectSearchResult:p,searchResultsLabel:x,relatedResultsLabel:g,searchResultsInBody:y}){const[k,w]=c.useState(!1),N={categories:s.categories,filters:s.filters,sources:s.sources,selectedCategory:a,activeFilters:r,expanded:k,onExpandedChange:w,onSelectCategory:o,onSelectSource:l,onToggleFilter:i,onClear:u};return n.jsx(Wu,{title:e,unreadCount:t,footer:m,searchFilter:N,searchResults:f,searchLoading:h,relatedResults:b,relatedLoading:v,onSelectSearchResult:p,searchResultsLabel:x,relatedResultsLabel:g,searchResultsInBody:y,children:n.jsx(kr,{...N,children:d})})}const wv={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function jv({selectedMessageId:e,onSelectMessage:t,commandsRef:s,onTriageContextChange:a,onDeleteMessages:r,onMarkMessagesRead:o}){const{searchQuery:i,resultFolderIndex:l}=je(),u=zs(),d=$t(),[m,f]=c.useState("all"),[h,b]=c.useState(new Set),v=c.useCallback(I=>{b(F=>{const R=new Set(F);return R.has(I)?R.delete(I):R.add(I),R})},[]),p=c.useCallback(()=>{f("all"),b(new Set)},[]),{threads:x,isLoading:g,isError:y,error:k,refetch:w,fetchNextPage:N,hasNextPage:T,isFetchingNextPage:C}=ud(),{freeText:S,tokens:D}=As(i.trim().toLowerCase(),u),M=c.useMemo(()=>{const I=Array.from(h).map(F=>wv[F]).filter(F=>F!=null);return kv(x).map(ur).filter(F=>(m==="all"||F.category===m)&&I.every(R=>R(F))&&(!S||_u(F,S))&&qu(F,D))},[x,m,h,S,D]),A=c.useMemo(()=>dh(),[]),P=c.useMemo(()=>M.map(I=>Bu(I,l)),[M,l]),E=c.useMemo(()=>M.filter(I=>!I.isRead).length,[M]),j=g?"loading":y?"error":M.length===0?"empty":"ready",z=c.useCallback(()=>{const I=Rr(Tr());window.open(I,"_blank","noopener,noreferrer")},[]),O=n.jsx(Ju,{selectedMessageId:e,onOpen:I=>t?.(I),onDeleteMessages:r,commandsRef:s,onTriageContextChange:a,children:n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[r?n.jsx(Zu,{onMarkAsRead:o}):null,n.jsxs("div",{className:"flex-1 overflow-y-auto",children:[n.jsx("div",{className:"divide-y divide-line",children:M.map(I=>n.jsx(mo,{thread:I,active:I.id===e,onClick:()=>t?.(I.id)},I.id))}),T?n.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>N(),disabled:C,children:C?"Loading…":"Load more"}):null]})]})});return n.jsx(dd,{title:"Starred",unreadCount:E,preset:A,selectedCategory:m,activeFilters:h,onSelectCategory:f,onToggleFilter:v,onClearFilters:p,searchResults:P,searchLoading:g,onSelectSearchResult:I=>t?.(I.id),children:n.jsx(hc,{listTitle:"Starred",sections:[{id:"flagged",threads:M}],flatList:!0,hideHeader:!0,listState:j,searchQuery:S?i:void 0,errorMessage:y?Pl(k):void 0,onRetry:()=>w(),onReportError:z,selectedThreadId:e,onSelectThread:t,onSelectBriefCategory:()=>{},isDesktop:d,listBody:j==="ready"?O:void 0})})}const md=c.createContext(null);function ha(){const e=c.useContext(md);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function Sv({selectedMessageId:e,children:t}){const s=ze(),{threads:a}=ud(),r=c.useMemo(()=>{if(e)return a.find(w=>w.messageId===e)},[a,e]),o=c.useCallback(w=>{s({to:"/mail/flagged",search:N=>({...N,selectedMessageId:w})})},[s]),i=c.useCallback(()=>{s({to:"/mail/flagged",search:w=>({...w,selectedMessageId:void 0})})},[s]),l=c.useCallback(w=>{e&&w.includes(e)&&i()},[e,i]),u=Js({thread:r,onAfterOptimisticRemove:l}),d=ho(),{deleteMessages:m}=Xt({mailboxId:r?.mailboxId??"",messages:a,onAfterOptimisticRemove:l}),{toggleReadFor:f}=oa({mailboxId:r?.mailboxId??"",messages:a}),h=c.useCallback(w=>f(w,!0),[f]),b=d.focusedMessageId,p=c.useMemo(()=>a.find(w=>w.messageId===b),[a,b])??r,x=Js({thread:p}),{nextMessageId:g,previousMessageId:y}=go({context:d,orderedIds:d.orderedIds,selectedMessageId:e,onClose:i,handlers:{reply:()=>u.requestCompose("reply"),replyAll:()=>u.requestCompose("reply_all"),forward:()=>u.requestCompose("forward"),delete:()=>{d.listCommandsRef.current?.requestDelete()||x.deleteThread()},toggleStar:x.toggleStar,toggleRead:()=>{const w=d.selectedIds.length>0?d.selectedIds:p?[p.messageId]:[];w.length!==0&&f(w,!(p?.isRead??!1))},goBrief:()=>s({to:"/mail"}),goSettings:()=>s({to:"/settings"})}}),k={selectedMessageId:e,selectedThread:r,onSelectMessage:o,onCloseThread:i,actions:u,triage:d,onDeleteMessages:m,onMarkMessagesRead:h,nextMessageId:g,previousMessageId:y};return n.jsx(md.Provider,{value:k,children:t})}function fd(){const{selectedMessageId:e,onSelectMessage:t,triage:s,onDeleteMessages:a,onMarkMessagesRead:r}=ha();return n.jsx(jv,{selectedMessageId:e,onSelectMessage:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:a,onMarkMessagesRead:r})}function Cv(){const{selectedThread:e,actions:t}=ha(),{intelligenceOpen:s,onToggleIntelligence:a}=je(),r=Es()?.showIntelligencePane??!1,o=!!e,i=r&&o;return n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(fo,{hasThread:o,intelligenceOpen:i&&s,canToggleIntelligence:i,onToggleIntelligence:a,onReply:o?()=>t.requestCompose("reply"):void 0,onReplyAll:o?()=>t.requestCompose("reply_all"):void 0,onForward:o?()=>t.requestCompose("forward"):void 0,onDelete:o?t.deleteThread:void 0,onToggleStar:o?t.toggleStar:void 0,isStarred:t.isStarred,moveContext:o&&t.accountId&&t.mailboxId?{accountId:t.accountId,currentMailboxId:t.mailboxId,onMove:t.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(Ms,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,authenticity:e.authenticity,composeRequest:t.composeRequest,onComposeClose:t.clearComposeRequest}):n.jsx(Rs,{})})]})}function Nv(){const{selectedThread:e}=ha(),{onToggleIntelligence:t}=je();return n.jsx(Ds,{onClose:t,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId})}function Ev(){const{selectedThread:e,onCloseThread:t,onSelectMessage:s,nextMessageId:a,previousMessageId:r}=ha(),{intelligenceOpen:o,onToggleIntelligence:i}=je();return e?n.jsxs(n.Fragment,{children:[n.jsx(Ms,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,authenticity:e.authenticity,onBack:t,onOpenIntelligence:i,onSwipeNext:a?()=>s(a):void 0,onSwipePrevious:r?()=>s(r):void 0,mobileIntelligenceOpen:o}),n.jsx(Xr,{isOpen:o,onClose:i,ariaLabel:"Message details",side:"right",children:n.jsx(Ds,{onClose:i,thread:e,hideCloseButton:!0})})]}):n.jsx("div",{className:"h-full",children:n.jsx(fd,{})})}const Bs=Object.assign(Sv,{List:fd,Reading:Cv,Intelligence:Nv,Phone:Ev}),Iv={reply:"Reply",reply_all:"Reply All",forward:"Forward",new:"New Message"},Tv=()=>{const e=c.useRef(!1);return c.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector("[data-slate-editor]")?.textContent??"").replace(/--\s*/g,"").trim();return e.current=s.trim().length>0||o.length>0,e.current},[])},Rv=()=>{const{state:e,closeCompose:t}=At(),s=Tv(),[a,r]=c.useState(!1),{isError:o,error:i,refetch:l}=ce({...xt(),staleTime:1/0}),u=c.useCallback(h=>{h||(s()?r(!0):t())},[t,s]),d=c.useCallback(()=>{r(!1),t()},[t]),m=c.useCallback(()=>{r(!1)},[]);if(!e.isOpen)return null;const f=Iv[e.mode]??"New Message";return n.jsxs(Xe.Root,{open:e.isOpen,onOpenChange:u,children:[n.jsxs(Xe.Portal,{children:[n.jsx(Xe.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),n.jsxs(Xe.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col bg-canvas rounded-t-lg",style:{height:"95dvh"},children:[n.jsx(Xe.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),n.jsx(Xe.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:f}),o?n.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:n.jsx(Dt,{title:"Couldn't load compose",error:i,onRetry:()=>{l()}})}):n.jsx("div",{className:"flex-1 overflow-hidden",children:n.jsx(Jr,{mode:e.mode,account:e.account,sourceMessage:e.sourceMessage,onClose:t})})]})]}),a&&n.jsx("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/50",children:n.jsxs("div",{className:"mx-4 w-full max-w-sm rounded-xl bg-canvas p-6 shadow-xl",children:[n.jsx("h3",{className:"text-lg font-semibold",children:"Discard draft?"}),n.jsx("p",{className:"mt-2 text-sm text-fg-muted",children:"Your message has unsaved content. Are you sure you want to discard it?"}),n.jsxs("div",{className:"mt-4 flex justify-end gap-2",children:[n.jsx("button",{type:"button",onClick:m,className:"rounded-md px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Keep editing"}),n.jsx("button",{type:"button",onClick:d,className:"rounded-md bg-danger px-4 py-2 text-sm font-medium text-canvas hover:bg-danger/90 transition-colors",children:"Discard"})]})]})})]})},Mv={reply:"Reply",reply_all:"Reply All",forward:"Forward",new:"New Message"},hd=()=>{const{state:e,closeCompose:t}=At(),s=$t(),{isError:a,error:r,refetch:o}=ce({...xt(),staleTime:1/0});if(!s)return n.jsx(Rv,{});if(!e.isOpen)return null;const i=Mv[e.mode]??"New Message",l=n.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[n.jsx("div",{className:"flex items-center gap-2 min-w-0",children:n.jsx("h2",{className:"text-lg font-semibold truncate",children:i})}),n.jsx("button",{type:"button",onClick:t,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:n.jsx(Ue,{className:"size-5"})})]});return a?n.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[l,n.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:n.jsx(Dt,{title:"Couldn't load compose",error:r,onRetry:()=>{o()}})})]}):n.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[l,n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:n.jsx(Jr,{mode:e.mode,account:e.account,sourceMessage:e.sourceMessage,onClose:t},e.outboxMessageId??"new")})]})};function zv(e){const t=e.toAddresses.join(", ");return{id:e.outboxMessageId,accountId:e.accountId,fromName:e.fromName??e.fromAddress??"Me",fromEmail:e.fromAddress??"",subject:e.subject??"(No subject)",snippet:t?`To: ${t}`:"(No recipients)",timeLabel:Ot(e.updatedAt),isRead:!0}}function Av(e){return{id:e.messageId,accountId:e.accountConfigId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ot(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0}}function Dv({outboxMessages:e,accountId:t,imapThreads:s}){const a=e.filter(i=>i.status==="draft"&&i.accountId===t).map(zv),r=s.map(Av),o=[];return a.length>0&&o.push({id:"remit-drafts",label:"Not yet sent (Remit)",threads:a}),r.length>0&&o.push({id:"imap-drafts",label:"On the server",threads:r}),o}function po(){const e=Es();return!e||e.showNavPane?null:n.jsx(G,{variant:"ghost",size:"sm",icon:n.jsx(Pr,{className:"size-4"}),onClick:e.openNav,"aria-label":"Open folders",className:"-ml-1 shrink-0"})}const Ov=({label:e,count:t})=>n.jsxs("div",{className:"sticky top-0 z-10 flex items-baseline justify-between border-b border-line bg-surface-sunken px-row-inset py-1",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),n.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:t})]}),Pv=({row:e,isSelected:t,onOpen:s,onDelete:a,isDeleting:r})=>n.jsxs("button",{type:"button",onClick:()=>s(e.id),className:H("group",rn({active:t})),children:[n.jsx(yl,{className:"size-7 shrink-0 text-fg-muted mt-0.5"}),n.jsx(Ys,{thread:e}),n.jsx("div",{className:"flex items-center gap-1 shrink-0",children:n.jsx("button",{type:"button",onClick:o=>{o.stopPropagation(),a(e.id)},disabled:r,className:"p-1.5 rounded-md text-fg-muted hover:text-danger hover:bg-surface-raised transition-colors opacity-0 group-hover:opacity-100 focus:opacity-100",title:"Delete draft",children:n.jsx(nt,{className:"size-3.5"})})})]}),Lv=({row:e,isSelected:t,onOpen:s})=>{const a=!e.isRead;return n.jsxs("button",{type:"button",onClick:()=>s(e.id),className:H("group",rn({active:t})),children:[a&&n.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),n.jsx(ct,{name:e.fromName,email:e.fromEmail,size:"sm"}),n.jsx(Ys,{thread:e})]})};function $v({mailboxId:e,accountId:t,selectedMessageId:s,imapThreads:a,title:r,unreadCount:o}){const{openCompose:i,state:l}=At(),u=ze(),d=ye(),{data:m}=ce(Gn()),f=c.useMemo(()=>Dv({outboxMessages:m?.items??[],accountId:t,imapThreads:a}),[m?.items,t,a]),h=ve({...Xn(),onSuccess:()=>{d.invalidateQueries({queryKey:Or()})}}),b=g=>{h.mutate({path:{outboxMessageId:g}})},v=g=>{s&&u({to:"/mail/$mailboxId",params:{mailboxId:e},search:{selectedMessageId:void 0}}),i({mode:"new",outboxMessageId:g})},p=g=>{u({to:"/mail/$mailboxId",params:{mailboxId:e},search:{selectedMessageId:g}})},x=f.length===0;return n.jsxs("section",{className:"flex h-full w-full flex-col bg-surface",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx(po,{}),n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:r}),(o??0)>0&&n.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:[o," unread"]})]}),n.jsx("div",{className:"flex-1 overflow-y-auto",children:x?n.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-2 text-center px-4",children:[n.jsx(yr,{className:"size-8 text-fg-subtle"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"No drafts"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Messages you start composing will appear here."})]}):f.map(g=>n.jsxs("div",{children:[g.label&&n.jsx(Ov,{label:g.label,count:g.threads.length}),n.jsx("div",{className:"divide-y divide-line",children:g.threads.map(y=>g.id==="remit-drafts"?n.jsx(Pv,{row:y,isSelected:l.isOpen&&y.id===l.outboxMessageId,onOpen:v,onDelete:b,isDeleting:h.isPending},y.id):n.jsx(Lv,{row:y,isSelected:y.id===s,onOpen:p},y.id))})]},g.id))})]})}function Fv(e,t,s){const a=new Array(e);return new Proxy(a,{get(r,o,i){if(typeof o=="string"){const l=o.charCodeAt(0);if(l>=48&&l<=57){const u=+o;if(Number.isInteger(u)&&u>=0&&u<e){let d=r[u];if(!d){const m=t[u*2];d=r[u]={index:u,key:s(u),start:m,size:t[u*2+1],end:m+t[u*2+1],lane:0}}return d}}if(o==="length")return e}return Reflect.get(r,o,i)}})}function fs(e,t,s){let a=s.initialDeps??[],r,o=!0;function i(){const l=e();return(l.length!==a.length||l.some((d,m)=>a[m]!==d))&&(a=l,r=t(...l),s?.onChange&&!(o&&s.skipInitialOnChange)&&s.onChange(r),o=!1),r}return i.updateDeps=l=>{a=l},i}function Qi(e,t){if(e===void 0)throw new Error("Unexpected undefined");return e}const _v=(e,t)=>Math.abs(e-t)<1.01,qv=(e,t,s)=>{let a;return function(...r){e.clearTimeout(a),a=e.setTimeout(()=>t.apply(this,r),s)}};let Ks;const Ka=()=>{if(Ks!==void 0)return Ks;if(typeof navigator>"u")return Ks=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Ks=!0;const e=navigator.maxTouchPoints;return Ks=navigator.platform==="MacIntel"&&e!==void 0&&e>0},Yi=e=>{const{offsetWidth:t,offsetHeight:s}=e;return{width:t,height:s}},Bv=e=>e,Kv=e=>{const t=Math.max(e.startIndex-e.overscan,0),a=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=new Array(a);for(let o=0;o<a;o++)r[o]=t+o;return r},Uv=(e,t)=>{const s=e.scrollElement;if(!s)return;const a=e.targetWindow;if(!a)return;const r=i=>{const{width:l,height:u}=i;t({width:Math.round(l),height:Math.round(u)})};if(r(Yi(s)),!a.ResizeObserver)return()=>{};const o=new a.ResizeObserver(i=>{const l=()=>{const u=i[0];if(u?.borderBoxSize){const d=u.borderBoxSize[0];if(d){r({width:d.inlineSize,height:d.blockSize});return}}r(Yi(s))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()});return o.observe(s,{box:"border-box"}),()=>{o.unobserve(s)}},Kn={passive:!0},Hv=typeof window>"u"?!0:"onscrollend"in window,Wv=(e,t,s)=>{const a=e.scrollElement;if(!a)return;const r=e.targetWindow;if(!r)return;const o=e.options.useScrollendEvent&&Hv;let i=0;const l=o?null:qv(r,()=>t(i,!1),e.options.isScrollingResetDelay),u=f=>()=>{i=s(a),l?.(),t(i,f)},d=u(!0),m=u(!1);return a.addEventListener("scroll",d,Kn),o&&a.addEventListener("scrollend",m,Kn),()=>{a.removeEventListener("scroll",d),o&&a.removeEventListener("scrollend",m)}},Vv=(e,t)=>Wv(e,t,s=>{const{horizontal:a,isRtl:r}=e.options;return a?s.scrollLeft*(r&&-1||1):s.scrollTop}),Qv=(e,t,s)=>{if(s.options.useCachedMeasurements){const a=s.indexFromElement(e),r=s.options.getItemKey(a);return s.itemSizeCache.get(r)??s.options.estimateSize(a)}if(t?.borderBoxSize){const a=t.borderBoxSize[0];if(a)return Math.round(a[s.options.horizontal?"inlineSize":"blockSize"])}if(!t){const a=s.indexFromElement(e),r=s.options.getItemKey(a),o=s.itemSizeCache.get(r);if(o!==void 0)return o}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},Yv=(e,{adjustments:t=0,behavior:s},a)=>{var r,o;(o=(r=a.scrollElement)==null?void 0:r.scrollTo)==null||o.call(r,{[a.options.horizontal?"left":"top"]:e+t,behavior:s})},Gv=Yv;class Xv{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var s,a,r;return((r=(a=(s=this.targetWindow)==null?void 0:s.performance)==null?void 0:a.now)==null?void 0:r.call(a))??Date.now()},this.observer=(()=>{let s=null;const a=()=>s||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:s=new this.targetWindow.ResizeObserver(r=>{r.forEach(o=>{const i=()=>{const l=o.target,u=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);for(const[d,m]of this.elementsCache)if(m===l){this.elementsCache.delete(d);break}return}this.shouldMeasureDuringScroll(u)&&this.resizeItem(u,this.options.measureElement(l,o,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()})}));return{disconnect:()=>{var r;(r=a())==null||r.disconnect(),s=null},observe:r=>{var o;return(o=a())==null?void 0:o.observe(r,{box:"border-box"})},unobserve:r=>{var o;return(o=a())==null?void 0:o.unobserve(r)}}})(),this.range=null,this.setOptions=s=>{var a,r;const o={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Bv,rangeExtractor:Kv,onChange:()=>{},measureElement:Qv,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const h in s){const b=s[h];b!==void 0&&(o[h]=b)}const i=this.options;let l=null,u=null,d=!1;if(i!==void 0&&i.enabled&&o.enabled&&o.anchorTo==="end"&&this.scrollElement!==null){const h=i.count,b=o.count,v=this.getMeasurements(),p=h>0?((a=v[0])==null?void 0:a.key)??i.getItemKey(0):null,x=h>0?((r=v[h-1])==null?void 0:r.key)??i.getItemKey(h-1):null;if(b!==h||h>0&&b>0&&(o.getItemKey(0)!==p||o.getItemKey(b-1)!==x)){d=!0;const k=h>0?this.getVirtualItemForOffset(this.getScrollOffset())??v[0]:null;k&&(l=[k.key,this.getScrollOffset()-k.start]);const w=o.followOnAppend===!0?"auto":o.followOnAppend||null;w&&b>h&&this.isAtEnd(i.scrollEndThreshold)&&(h===0||o.getItemKey(b-1)!==x)&&(u=w)}}this.options=o,d&&(this.pendingMin=0,this.itemSizeCacheVersion++);let m=!1,f=0;if(l&&this.scrollOffset!==null){const[h,b]=l,v=this.getMeasurements(),{count:p,getItemKey:x}=this.options;let g=0;for(;g<p&&x(g)!==h;)g++;if(g<p){const y=v[g];if(y){const k=y.start+b;k!==this.scrollOffset&&(f=k-this.scrollOffset,this.scrollOffset=k,m=!0)}}}(m||u)&&(this.pendingScrollAnchor=[m?l[0]:null,m?l[1]:0,u,f])},this.notify=s=>{var a,r;(r=(a=this.options).onChange)==null||r.call(a,this,s)},this.maybeNotify=fs(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),s=>{this.notify(s)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(s=>s()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var s;const a=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==a){if(this.cleanup(),!a){this.maybeNotify();return}if(this.scrollElement=a,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((s=this.scrollElement)==null?void 0:s.window)??null,this.elementsCache.forEach(o=>{this.observer.observe(o)}),this.unsubs.push(this.options.observeElementRect(this,o=>{this.scrollRect=o,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(o,i)=>{if(i&&this._intendedScrollOffset===null&&o===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(o-this._intendedScrollOffset)<1.5&&(o=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const l=this.getScrollOffset();this.scrollDirection=i?l===o?this.scrollDirection:l<o?"forward":"backward":null,this.scrollOffset=o,this.isScrolling=i,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const o=this.scrollElement,i=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},l=()=>{this._iosTouching=!1,!(!Ka()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};o.addEventListener("touchstart",i,Kn),o.addEventListener("touchend",l,Kn),this.unsubs.push(()=>{o.removeEventListener("touchstart",i),o.removeEventListener("touchend",l),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const r=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,r&&this.scrollElement&&this.options.enabled){const[o,i,l,u]=r;o!==null&&!l&&(Ka()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?u!==0&&(this._iosDeferredAdjustment+=u):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),l&&this.scrollToEnd({behavior:l})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const s=this.getScrollOffset(),a=this.getMaxScrollOffset();if(s<0||s>a)return;const r=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(s,{adjustments:this.scrollAdjustments+=r,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=fs(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(s,a,r,o,i,l,u,d)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMin=null,{count:s,paddingStart:a,scrollMargin:r,getItemKey:o,enabled:i,lanes:l,laneAssignmentMode:u,gap:d}),{key:!1}),this.getMeasurements=fs(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:s,paddingStart:a,scrollMargin:r,getItemKey:o,enabled:i,lanes:l,laneAssignmentMode:u,gap:d},m)=>{const f=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>s)for(const g of this.laneAssignments.keys())g>=s&&this.laneAssignments.delete(g);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(g=>{this.itemSizeCache.set(g.key,g.size)}));const h=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===s&&(this.lanesSettling=!1),l===1){const g=s*2;let y=this._flatMeasurements;if(!y||y.length<g){const N=new Float64Array(g);y&&h>0&&N.set(y.subarray(0,h*2)),y=N,this._flatMeasurements=y}let k;if(h===0)k=a+r;else{const N=h-1;k=y[N*2]+y[N*2+1]+d}for(let N=h;N<s;N++){const T=o(N),C=f.get(T),S=typeof C=="number"?C:this.options.estimateSize(N);y[N*2]=k,y[N*2+1]=S,k+=S+d}const w=Fv(s,y,o);return this.measurementsCache=w,w}const b=this.measurementsCache.slice(0,h),v=new Array(l).fill(void 0),p=new Float64Array(l);let x=0;for(let g=0;g<h;g++){const y=b[g];y&&(v[y.lane]===void 0&&x++,v[y.lane]=g,p[y.lane]=y.end)}for(let g=h;g<s;g++){const y=o(g),k=this.laneAssignments.get(g);let w,N;const T=u==="estimate"||f.has(y);if(k!==void 0&&this.options.lanes>1){w=k;const M=v[w],A=M!==void 0?b[M]:void 0;N=A?A.end+d:a+r}else if(x===l){let M=0,A=p[0],P=v[0];for(let E=1;E<l;E++){const j=p[E];(j<A||j===A&&v[E]<P)&&(M=E,A=j,P=v[E])}w=M,N=A+d,T&&this.laneAssignments.set(g,w)}else w=g%this.options.lanes,N=a+r,T&&this.laneAssignments.set(g,w);const C=f.get(y),S=typeof C=="number"?C:this.options.estimateSize(g),D=N+S;b[g]={index:g,start:N,size:S,end:D,key:y,lane:w},v[w]===void 0&&x++,v[w]=g,p[w]=D}return this.measurementsCache=b,b},{key:!1,debug:()=>this.options.debug}),this.calculateRange=fs(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(s,a,r,o)=>s.length===0||a===0?(this.range=null,null):(this.range=Zv(s,a,r,o,o===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=fs(()=>{let s=null,a=null;const r=this.calculateRange();return r&&(s=r.startIndex,a=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,s,a]),[this.options.rangeExtractor,this.options.overscan,this.options.count,s,a]},(s,a,r,o,i)=>o===null||i===null?[]:s({startIndex:o,endIndex:i,overscan:a,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=s=>{const a=this.options.indexAttribute,r=s.getAttribute(a);return r?parseInt(r,10):(console.warn(`Missing attribute name '${a}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=s=>{var a;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const r=this.scrollState.index??((a=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:a.index);if(r!==void 0&&this.range){const o=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),i=Math.max(0,r-o),l=Math.min(this.options.count-1,r+o);return s>=i&&s<=l}return!0},this.measureElement=s=>{if(!s){this.elementsCache.forEach((i,l)=>{i.isConnected||(this.observer.unobserve(i),this.elementsCache.delete(l))});return}const a=this.indexFromElement(s),r=this.options.getItemKey(a),o=this.elementsCache.get(r);o!==s&&(o&&this.observer.unobserve(o),this.observer.observe(s),this.elementsCache.set(r,s)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(a)&&this.resizeItem(a,this.options.measureElement(s,void 0,this))},this.resizeItem=(s,a)=>{var r,o;if(s<0||s>=this.options.count)return;let i,l,u;const d=this._flatMeasurements;if(this.options.lanes===1&&d!==null)u=this.options.getItemKey(s),l=d[s*2],i=d[s*2+1];else{const h=this.measurementsCache[s];if(!h)return;u=h.key,l=h.start,i=h.size}const m=this.itemSizeCache.get(u)??i,f=a-m;if(f!==0){const h=this.options.anchorTo==="end"&&((r=this.scrollState)==null?void 0:r.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,b=h?this.getTotalSize():0,v=((o=this.scrollState)==null?void 0:o.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[s]??{index:s,key:u,start:l,size:i,end:l+i,lane:0},f,this):l<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(u)||this.scrollDirection!=="backward"));(this.pendingMin===null||s<this.pendingMin)&&(this.pendingMin=s),this.itemSizeCache.set(u,a),this.itemSizeCacheVersion++,h?this.applyScrollAdjustment(this.getTotalSize()-b):v&&this.applyScrollAdjustment(f),this.notify(!1)}},this.getVirtualItems=fs(()=>[this.getVirtualIndexes(),this.getMeasurements()],(s,a)=>{const r=[];for(let o=0,i=s.length;o<i;o++){const l=s[o],u=a[l];r.push(u)}return r},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=s=>{const a=this.getMeasurements();if(a.length===0)return;const r=this._flatMeasurements,o=this.options.lanes===1&&r!=null,i=gd(0,a.length-1,o?l=>r[l*2]:l=>Qi(a[l]).start,s);return Qi(a[i])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const s=this.scrollElement.document.documentElement;return this.options.horizontal?s.scrollWidth-this.scrollElement.innerWidth:s.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(s=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=s,this.getOffsetForAlignment=(s,a,r=0)=>{if(!this.scrollElement)return 0;const o=this.getSize(),i=this.getScrollOffset();a==="auto"&&(a=s>=i+o?"end":"start"),a==="center"?s+=(r-o)/2:a==="end"&&(s-=o);const l=this.getMaxScrollOffset();return Math.max(Math.min(l,s),0)},this.getOffsetForIndex=(s,a="auto")=>{s=Math.max(0,Math.min(s,this.options.count-1));const r=this.getSize(),o=this.getScrollOffset(),i=this.measurementsCache[s];if(!i)return;if(a==="auto")if(i.end>=o+r-this.options.scrollPaddingEnd)a="end";else if(i.start<=o+this.options.scrollPaddingStart)a="start";else return[o,a];if(a==="end"&&s===this.options.count-1)return[this.getMaxScrollOffset(),a];const l=a==="end"?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,a,i.size),a]},this.scrollToOffset=(s,{align:a="start",behavior:r="auto"}={})=>{const o=this.getOffsetForAlignment(s,a),i=this.now();this.scrollState={index:null,align:a,behavior:r,startedAt:i,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollToIndex=(s,{align:a="auto",behavior:r="auto"}={})=>{s=Math.max(0,Math.min(s,this.options.count-1));const o=this.getOffsetForIndex(s,a);if(!o)return;const[i,l]=o,u=this.now();this.scrollState={index:s,align:l,behavior:r,startedAt:u,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:r}),this.scheduleScrollReconcile()},this.scrollBy=(s,{behavior:a="auto"}={})=>{const r=this.getScrollOffset()+s,o=this.now();this.scrollState={index:null,align:"start",behavior:a,startedAt:o,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:a}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:s="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:s});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:s})},this.getTotalSize=()=>{var s;const a=this.getMeasurements();let r;if(a.length===0)r=this.options.paddingStart;else if(this.options.lanes===1){const o=a.length-1,i=this._flatMeasurements;i!=null?r=i[o*2]+i[o*2+1]:r=((s=a[o])==null?void 0:s.end)??0}else{const o=Array(this.options.lanes).fill(null);let i=a.length-1;for(;i>=0&&o.some(l=>l===null);){const l=a[i];o[l.lane]===null&&(o[l.lane]=l.end),i--}r=Math.max(...o.filter(l=>l!==null))}return Math.max(r-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const s=[];if(this.itemSizeCache.size===0)return s;const a=this.getMeasurements();for(const r of a)r&&this.itemSizeCache.has(r.key)&&s.push({index:r.index,key:r.key,start:r.start,size:r.size,end:r.end,lane:r.lane});return s},this._scrollToOffset=(s,{adjustments:a,behavior:r})=>{this._intendedScrollOffset=s+(a??0),this.options.scrollToFn(s,{behavior:r,adjustments:a},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(t)}applyScrollAdjustment(t,s){t!==0&&(Ka()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=t:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=t,behavior:s}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const a=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,r=a?a[0]:this.scrollState.lastTargetOffset,o=1,i=r!==this.scrollState.lastTargetOffset;if(!i&&_v(r,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=o){this.getScrollOffset()!==r&&this._scrollToOffset(r,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,i){const l=this.getSize()||600,u=Math.abs(r-this.getScrollOffset()),d=this.scrollState.behavior==="smooth"&&u>l;this.scrollState.lastTargetOffset=r,d||(this.scrollState.behavior="auto"),this._scrollToOffset(r,{adjustments:void 0,behavior:d?"smooth":"auto"})}this.scheduleScrollReconcile()}}const gd=(e,t,s,a)=>{for(;e<=t;){const r=(e+t)/2|0,o=s(r);if(o<a)e=r+1;else if(o>a)t=r-1;else return r}return e>0?e-1:0};function Jv(e,t,s){let a=0;for(;a<=t;){const r=(a+t)/2|0,o=e[r*2];if(o<s)a=r+1;else if(o>s)t=r-1;else return r}return a>0?a-1:0}function Zv(e,t,s,a,r){const o=e.length-1;if(e.length<=a)return{startIndex:0,endIndex:o};if(a===1&&r!==null){const d=Jv(r,o,s);let m=d;const f=s+t;for(;m<o&&r[m*2]+r[m*2+1]<f;)m++;return{startIndex:d,endIndex:m}}let l=gd(0,o,d=>e[d].start,s),u=l;if(a===1)for(;u<o&&e[u].end<s+t;)u++;else if(a>1){const d=Array(a).fill(0);for(;u<o&&d.some(f=>f<s+t);){const f=e[u];d[f.lane]=f.end,u++}const m=Array(a).fill(s+t);for(;l>=0&&m.some(f=>f>=s);){const f=e[l];m[f.lane]=f.start,l--}l=Math.max(0,l-l%a),u=Math.min(o,u+(a-1-u%a))}return{startIndex:l,endIndex:u}}const Ua=typeof document<"u"?c.useLayoutEffect:c.useEffect;function ey({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:s="transform",...a}){const r=c.useReducer(d=>d+1,0)[1],o=c.useRef({enabled:t,mode:s,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});o.current.enabled=t,o.current.mode=s;const i=d=>{const m=o.current;if(!m.enabled||!m.container)return;const f=d.getTotalSize();if(f!==m.lastSize){m.lastSize=f;const g=d.options.horizontal?"width":"height";m.container.style[g]=`${f}px`}const h=!!d.options.horizontal,b=m.mode==="transform",v=h?"left":"top",p=d.options.scrollMargin,x=d.getVirtualItems();for(const g of x){const y=g.start-p,k=d.elementsCache.get(g.key);k&&m.lastPositions.get(k)!==y&&(m.lastPositions.set(k,y),b?k.style.transform=h?`translate3d(${y}px, 0, 0)`:`translate3d(0, ${y}px, 0)`:k.style[v]=`${y}px`)}},l={...a,onChange:(d,m)=>{var f;const h=o.current;let b=!0;if(h.enabled){i(d);const v=d.range,p=h.prevRange;b=!p||p.isScrolling!==d.isScrolling||p.startIndex!==v?.startIndex||p.endIndex!==v?.endIndex,b&&(h.prevRange=v?{startIndex:v.startIndex,endIndex:v.endIndex,isScrolling:d.isScrolling}:null)}b&&(e&&m?Cr.flushSync(r):r()),(f=a.onChange)==null||f.call(a,d,m)}},[u]=c.useState(()=>{const d=new Xv(l);return Object.assign(d,{containerRef:m=>{const f=o.current;if(f.container=m,f.lastSize=null,m&&f.enabled){const h=d.getTotalSize();f.lastSize=h;const b=d.options.horizontal?"width":"height";m.style[b]=`${h}px`}}})});return u.setOptions(l),Ua(()=>u._didMount(),[]),Ua(()=>u._willUpdate()),Ua(()=>{i(u)}),u}function ty(e){return ey({observeElementRect:Uv,observeElementOffset:Vv,scrollToFn:Gv,...e})}const sy={delete:(e,t)=>`Deleting ${e} of ${t}…`,move:(e,t)=>`Moving ${e} of ${t}…`,markRead:(e,t)=>`Marking ${e} of ${t} as read…`},pd={delete:"moved to Trash",move:"moved",markRead:"marked as read"},bd={delete:"couldn't be deleted",move:"couldn't be moved",markRead:"couldn't be marked as read"},ny={delete:"Couldn't delete these messages",move:"Couldn't move these messages",markRead:"Couldn't mark these messages as read"},ay={delete:"The delete didn't finish.",move:"The move didn't finish.",markRead:"The update didn't finish."},ry=(e,t,s)=>sy[e](lt(t),lt(s)),Gi=(e,t)=>`${lt(t)} ${pd[e]}. Your mail server is still catching up.`,oy=(e,t,s)=>`${lt(t)} ${pd[e]}. ${lt(s)} ${bd[e]}.`,iy=(e,t)=>t>0?`Stopped after ${lt(t)} — some messages ${bd[e]}`:ny[e],ly=e=>ay[e],cy=e=>e==="delete"?"danger":"info",xd=100,Un=async e=>e.then(t=>({ok:!0,value:t}),t=>({ok:!1,error:t})),uy=(e,t=xd)=>{if(e.length===0)return[];const s=[];for(let a=0;a<e.length;a+=t)s.push(e.slice(a,a+t));return s},dy=async(e,t,s,a)=>{const r=uy(e),o=e.length;let i=0;const l=[];for(let u=0;u<r.length;u++){if(a())return l.push(...r.slice(u).flat()),{done:i,failedIds:l,cancelled:!0};const d=r[u],m=await Un(t(d));if(!m.ok)return l.push(...r.slice(u).flat()),s({done:i,total:o}),{done:i,failedIds:l,cancelled:!1,error:m.error};i+=d.length,s({done:i,total:o})}return{done:i,failedIds:l,cancelled:!1}},my=async(e,t,s,a,r)=>{let o=0;const i=[];let l;do{if(r())return{done:o,failedIds:i,cancelled:!0};const u=await Un(e(l));if(!u.ok)return{done:o,failedIds:i,cancelled:!1,error:u.error};const d=u.value;if(d.ids.length>0){const m=await Un(s(d.ids));if(!m.ok)return{done:o,failedIds:i,cancelled:!1,error:m.error};o+=d.ids.length,a({done:o,total:t})}l=d.continuationToken}while(l);return{done:o,failedIds:i,cancelled:!1}},fy=e=>({done:e.done,total:Math.max(e.total,e.done)}),hy=async(e,t,s)=>{let a=0,r;do{if(s())return{total:a,cancelled:!0};const o=await Un(e(r));if(!o.ok)return{total:a,cancelled:!1,error:o.error};const i=o.value;a+=i.ids.length,t(a),r=i.continuationToken}while(r);return{total:a,cancelled:!1}},gy=e=>e.failedIds.length>0?{exit:!1,retryIds:e.failedIds}:e.cancelled||e.error?{exit:!1,retryIds:[]}:{exit:!0,retryIds:[]},py=100,by=(e,t)=>e.kind==="move"?[t,e.destinationMailboxId]:[t],xy=({mailboxId:e,accountId:t,enabled:s,predicateKey:a,searchQuery:r})=>{const[o,i]=c.useState({kind:"idle"}),[l,u]=c.useState(void 0),[d,m]=c.useState(void 0),f=c.useRef(!1),h=ye(),{pushError:b}=Je();c.useEffect(()=>{f.current=!0,i({kind:"idle"})},[s,a]);const v=c.useRef(r);v.current=r;const p=c.useCallback(async T=>{const{data:C}=await Al({path:{mailboxId:e},query:{...v.current,continuationToken:T,limit:py},throwOnError:!0});return{ids:(C.items??[]).map(S=>S.messageId),continuationToken:C.continuationToken}},[e]),x=c.useCallback(T=>async C=>{if(T.kind==="move"){const{data:D}=await M0({body:{messageIds:C,destinationMailboxId:T.destinationMailboxId},throwOnError:!0});return D}if(T.kind==="markRead"){const{data:D}=await z0({body:{messageIds:C,isRead:!0},throwOnError:!0});return D}const{data:S}=await A0({body:{messageIds:C},throwOnError:!0});return S},[]),g=c.useCallback(T=>{_t(h,Ft(by(T,e))),t&&h.invalidateQueries({queryKey:es({path:{accountId:t}})})},[h,e,t]),y=c.useCallback(()=>{f.current=!1,i({kind:"counting",countSoFar:0}),hy(p,T=>i({kind:"counting",countSoFar:T}),()=>f.current).then(T=>{if(T.error){b(Gt("Couldn't count matching messages","The count didn't finish.",T.error)),i({kind:"idle"});return}if(T.cancelled){i({kind:"idle"});return}i({kind:"escalated",total:T.total})})},[p,b]),k=c.useCallback(()=>{f.current=!0},[]),w=c.useCallback(()=>{f.current=!0,i({kind:"idle"})},[]),N=c.useCallback(async(T,C)=>{f.current=!1,u(T);const S=A=>m(fy(A)),D=x(T),M=C!==void 0?await dy(C,D,S,()=>f.current):await my(p,o.kind==="escalated"?o.total:0,D,S,()=>f.current);return u(void 0),m(void 0),i({kind:"idle"}),M.error&&b(Gt(iy(T.kind,M.done),ly(T.kind),M.error)),M.done>0&&g(T),M},[x,p,o,b,g]);return{phase:o,escalate:y,stop:k,clear:w,isRunning:l!==void 0,runningAction:l,progress:d,runAction:N}},vd=e=>e.query?`matching "${e.query}"`:e.from?`from "${e.from}"`:"matching your search",vy=e=>`Select all ${vd(e)}`,yy=(e,t)=>`All ${lt(t)} ${vd(e)} selected`,ky=e=>e.isRunning?"running":e.isCounting?"counting":e.isEscalated?"escalated":"idle",wy=2,jy=(e,t,s=!1)=>e>=wy||t!=="idle"||s;function Sy(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function Cy(e,t){const s=e.length-t.length-2,a=e.lastIndexOf(".",s);return a===-1?e:e.slice(a+1)}function Ny(e,t,s){if(s.validHosts!==null){const r=s.validHosts;for(const o of r)if(Sy(t,o))return o}let a=0;if(t.startsWith("."))for(;a<t.length&&t[a]===".";)a+=1;return e.length===t.length-a?null:Cy(t,e)}const Ha=/[\t\n\r]/g;let mr=!1;function Xi(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function Ji(e,t,s){const a=s-t,r=e.charCodeAt(t)|32;if(a===2)return r===119&&(e.charCodeAt(t+1)|32)===115?1:0;if(a===3){const o=e.charCodeAt(t+1)|32,i=e.charCodeAt(t+2)|32;return r===119&&o===115&&i===115||r===102&&o===116&&i===112?1:0}else if(a===4){const o=e.charCodeAt(t+1)|32,i=e.charCodeAt(t+2)|32,l=e.charCodeAt(t+3)|32;return r===104&&o===116&&i===116&&l===112?1:r===102&&o===105&&i===108&&l===101?2:0}else if(a===5)return r===104&&(e.charCodeAt(t+1)|32)===116&&(e.charCodeAt(t+2)|32)===116&&(e.charCodeAt(t+3)|32)===112&&(e.charCodeAt(t+4)|32)===115?1:0;return 0}function Ws(e,t,s=!1){let a=0,r=e.length,o=!1,i=!1;if(mr=!1,!t){if(e.startsWith("data:"))return null;for(;a<e.length&&e.charCodeAt(a)<=32;)a+=1;for(;r>a+1&&e.charCodeAt(r-1)<=32;)r-=1;if(e.charCodeAt(a)===47&&e.charCodeAt(a+1)===47)a+=2;else{const x=e.indexOf(":/",a);if(x!==-1){const g=Ji(e,a,x);if(g===1)for(i=!0,a=x+2;e.charCodeAt(a)===47||e.charCodeAt(a)===92;)a+=1;else if(g===2){i=!0,a=x+1;let y=0;for(;(e.charCodeAt(a)===47||e.charCodeAt(a)===92)&&y<2;)a+=1,y+=1;if(y<2)return null}else{for(let y=a;y<x;y+=1){const k=e.charCodeAt(y)|32;if(!(k>=97&&k<=122||k>=48&&k<=57||k===46||k===45||k===43)){const w=e.charCodeAt(y);return w===9||w===10||w===13?Ws(e.replace(Ha,""),t,s):null}}if(e.charCodeAt(x+2)===47)a=x+3;else return null}}else if(e.charCodeAt(a)!==91){let g=-1;for(let y=a;y<r;y+=1){const k=e.charCodeAt(y);if(k===9||k===10||k===13)return Ws(e.replace(Ha,""),t,s);if(k===58){g=y;break}if(k===47||k===92||k===63||k===35)break}if(g!==-1){let y=!1;for(let k=g+1;k<r;k+=1){const w=e.charCodeAt(k);if(w===47||w===92||w===63||w===35)break;if(w===64){y=!0;break}}if(!y){let k=!0,w=g+1;for(;w<r;w+=1){const N=e.charCodeAt(w);if(N===47||N===92||N===63||N===35)break;if(N<48||N>57){k=!1;break}}if(w===g+1&&(k=!1),!k){const N=Ji(e,a,g);if(N===0){let T=!1;for(let C=g+1;C<r;C+=1){const S=e.charCodeAt(C);if(S===47||S===92||S===63||S===35)break;if(S===58){T=!0;break}}if(!T)return null}else if(i=!0,a=g+1,N===2){let T=0;for(;(e.charCodeAt(a)===47||e.charCodeAt(a)===92)&&T<2;)a+=1,T+=1;if(T<2)return null}else for(;e.charCodeAt(a)===47||e.charCodeAt(a)===92;)a+=1}}}}}let u=-1,d=-1,m=-1,f=-1,h=!1,b=s,v=a-1,p=-1;if(s&&a<r){const x=e.charCodeAt(a);(!(Xi(x)||x===46||x===95)||x===45)&&(b=!1)}for(let x=a;x<r;x+=1){const g=e.charCodeAt(x);if(g<64)if(g===47||g===35||g===63){r=x;break}else g===58?(f===-1&&(f=x),m=x):g===9||g===10||g===13?h=!0:s&&(g===46?((x-v>64||p===46||p===45)&&(b=!1),v=x):(g<48||g>57)&&(g!==45||p===46)&&(b=!1));else if(i&&g===92){r=x;break}else g===64?(u=x,f=-1):g===93?d=x:g>=65&&g<=90?o=!0:s&&!Xi(g)&&(b=!1);s&&(p=g)}if(h)return Ws(e.replace(Ha,""),t,s);if(u!==-1&&u>=a&&u<r&&(a=u+1),e.charCodeAt(a)===91)return d!==-1?e.slice(a+1,d).toLowerCase():null;if(m!==-1&&m>a&&m<r&&f===m&&(r=m),a>=r)return null;s&&b&&u===-1&&m===-1&&d===-1&&e.charCodeAt(r-1)!==46&&r-a<=255&&r-v-1<=63&&p!==45&&(mr=!0)}for(;r>a+1&&e.charCodeAt(r-1)===46;)r-=1;const l=a!==0||r!==e.length?e.slice(a,r):e;return o?l.toLowerCase():l}function Ey(e){if(e.length<7||e.length>15)return!1;let t=0;for(let s=0;s<e.length;s+=1){const a=e.charCodeAt(s);if(a===46)t+=1;else if(a<48||a>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function Iy(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,s=e.length;if(e[s-1]==="]"&&(s-=1),s-t>39)return!1;let a=!1;for(;t<s;t+=1){const r=e.charCodeAt(t);if(r===58)a=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70))return!1}return a}function Ty(e){return Iy(e)||Ey(e)}function Zi(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function el(e){if(e.length>255||e.length===0||!Zi(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,s=-1;const a=e.length;for(let r=0;r<a;r+=1){const o=e.charCodeAt(r);if(o===46){if(r-t>64||s===46||s===45)return!1;t=r}else if(!(Zi(o)||o===45||o===95)||o===45&&s===46)return!1;s=o}return a-t-1<=63&&s!==45}function Ry({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:s=!0,detectSpecialUse:a=!1,extractHostname:r=!0,mixedInputs:o=!0,validHosts:i=null,validateHostname:l=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:s,detectSpecialUse:a,extractHostname:r,mixedInputs:o,validHosts:i,validateHostname:l}}const My=Ry({});function zy(e){return My}function Ay(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function Dy(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function Oy(e,t,s,a,r){const o=zy();if(typeof e!="string")return r;let i=!1;return o.extractHostname?o.mixedInputs?(i=el(e),r.hostname=Ws(e,i,o.validateHostname)):r.hostname=Ws(e,!1,o.validateHostname):r.hostname=e,o.detectIp&&r.hostname!==null&&(r.isIp=Ty(r.hostname),r.isIp)?r:o.validateHostname&&o.extractHostname&&r.hostname!==null&&!(i&&r.hostname===e)&&!mr&&!el(r.hostname)?(r.hostname=null,r):(r.hostname===null||(s(r.hostname,o,r),r.publicSuffix===null)||(r.domain=Ny(r.publicSuffix,r.hostname,o)),r)}function Py(e,t,s){if(!t.allowPrivateDomains&&e.length>3){const a=e.length-1,r=e.charCodeAt(a),o=e.charCodeAt(a-1),i=e.charCodeAt(a-2),l=e.charCodeAt(a-3);if(r===109&&o===111&&i===99&&l===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="com",!0;if(r===103&&o===114&&i===111&&l===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="org",!0;if(r===117&&o===100&&i===101&&l===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="edu",!0;if(r===118&&o===111&&i===103&&l===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="gov",!0;if(r===116&&o===101&&i===110&&l===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="net",!0;if(r===101&&o===100&&i===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="de",!0}return!1}const Qt=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),Hn=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,226,239,241,242,243,258,265,266,269,270,271,274,276,295,296,298,307,312,313,331,332,335,337,338,340,374,375,377,380,381,385,387,391,394,426,429,442,443,451,452,454,464,478,479,480,489,490,527,532,548,568,574,615,616,643,670,671,819,825,828,829,830,835,840,849,871,872,873,874,875,876,877,895,897,898,901,903,904,906,908,923,938,943,944,946,947,948,949,950,952,955,960,961,962,964,965,968,971,972,973,986,988,1e3,1011,1019,1021,1061,1064,1068,1069,1071,1074,1085,1087,1097,1099,1105,1107,1108,1110,1113,1114,1115,1167,1169,1171,1191,1192,1193,1194,1196,1207,1238,1249,1261,1270,1277,1282,1295,1306,1319,1320,1331,1365,1366,1367,1382,1397,1469,1470,1472,1473,1507,1508,1509,1512,1516,1518,1547,1548,1556,1557,1558,1560,1562,1563,1565,1566,1567,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1594,1595,1596,1598,2053,2056,2057,2059,2066,2073,2083,2087,2098,2099,2100,2112,2113,2115,2117,2118,2125,2126,2128,2129,2131,2132,2133,2134,2135,2209,2211,2232,2233,2234,2236,2262,2263,2314,2315,2317,2324,2330,2340,2350,2403,2404,2405,2415,2429,2430,2433,2440,2441,2449,2450,2451,2452,2453,2464,2465,2466,2468,2469,2470,2471,2473,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2861,2868,2869,2870,2871,2872,2873,2875,2876,2880,2964,2977,2978,3414,3418,3432,3484,3512,3534,3592,3614,3629,3692,3743,3781,3817,3842,3984,4030,4081,4100,4134,4149,4169,4199,4230,4253,4284,4314,4346,4373,4448,4470,4508,4518,4552,4571,4597,4639,4689,4715,4784,4785,4787,4810,4833,4869,4900,4917,4974,4987,5011,5040,5042,5076,5092,5120,5425,5434,5443,5450,5467,5471,5477,5516,5518,5525,5532,5541,5548,5549,5560,5563,5578,5579,5588,5589,5598,5607,5613,5615,5616,5617,5653,5654,5656,5664,5671,5684,5688,5690,5691,5697,5704,5718,5728,5733,5741,5749,5755,5756,5760,5762,5763,5775,5776,5777,5778,5780,5781,5784,5786,5789,5793,5794,5800,5801,5802,5804,5806,5808,5809,5810,5813,5815,5818,5819,5821,6019,6026,6027,6037,6042,6059,6073,6082,6083,6084,6088,6089,6091,6093,6099,6100,6103,6104,6106,6107,6108,7008,7009,7013,7031,7040,7043,7050,7051,7053,7054,7055,7057,7109,7110,7113,7114,7231,7232,7243,7254,7261,7264,7273,7274,7275,7290,7345,7536,7538,7539,7541,7546,7559,7574,7581,7590,7593,7596,7603,7611,7615,7616,7617,7631,7635,7644,7645,7646,7650,7685,7686,7703,7710,7718,7719,7724,7732,7776,7777,7783,7786,7797,7802,7803,7806,7839,7840,7846,7853,7854,7863,7872,7887,7891,7943,7944,7949,7951,7954,7956,7957,7958,7967,7981,7989,8003,8015,8016,8018,8020,8042,8053,8059,8060,8072,8084,8171,8183,8185,8194,8197,8203,8228,8231,8232,8233,8235,8238,8241,8252,8254,8256,8284,8358,8365,8369,8370,8379,8401,8402,8407,8408,8487,8489,8491,8500,8504,8510,8516,8522,8532,8537,8538,8556,8567,8572,8577,8587,8593,8597,8603,8609,10217,10218,10219,10226,10228]),Wn=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,4,6,6,6,6,6,8,7,10,9,9,9,8,9,8,10,6,9,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,8,7,11,11,1,3,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,3,5,4,3,3,3,5,2,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,6,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,9,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,17,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,4,6,10,7,8,13,8,8,9,14,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,5,2,4,4,2,12,5,5,3,15,13,10,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,3,5,9,10,10,8,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,8,9,6,4,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,16,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,14,12,18,10,8,16,19,17,12,14,15,8,9,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,4,5,5,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,11,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,2,9,8,5,5,3,3,5,5,7,7,6,6,10,6,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,2,2,12,5,5,5,8,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),tl=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,1,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,22,1,1,1,12,1,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,41,0,12,1,1,12,1,1,1,1,44,45,45,45,44,45,44,44,46,45,44,45,44,44,44,44,44,44,46,44,44,44,44,44,44,45,47,47,45,44,44,44,44,44,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,50,52,50,50,50,52,50,51,50,53,50,51,51,50,50,50,51,53,51,53,50,51,51,12,55,55,54,56,51,53,50,50,48,49,57,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,60,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,67,1,12,1,1,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,45,45,140,50,50,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,12,12,12,12,1,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,193,1,1,1,1,12,199,200,201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,184,1,210,1,1,1,208,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,190,1,1,1,186,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,182,1,1,1,1,1,1,1,191,1,1,1,1,195,1,1,1,1,171,1,1,189,1,1,1,192,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,180,1,12,1,1,12,1,1,1,1,183,1,1,1,188,1,203,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,209,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,178,12,1,1,1,1,1,1,1,198,1,1,1,1,1,1,1,1,1,1,177,1,1,1,1,1,1,204,1,1,1,181,1,1,1,187,1,12,1,1,12,1,1,1,1,1,1,1,1,1,1,191,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,206,1,1,1,1,1,1,1,1,1,1,1,1,1,207,1,1,12,1,1,1,1,179,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,197,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,202,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,220,0,0,0,0,0,221,0,0,0,0,0,0,1,12,1,1,1,225,1,1,1,0,226,223,224,1,1,1,1,1,1,231,1,233,1,1,1,1,1,1,1,1,1,1,1,229,1,1,1,1,1,235,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,234,1,1,1,12,1,1,1,1,230,1,1,1,228,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,232,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,241,13,1,1,1,12,12,238,239,1,1,1,1,240,1,1,12,1,1,1,1,1,1,1,242,1,1,12,16,1,1,1,1,1,1,1,243,1,1,1,12,12,1,1,1,1,1,243,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,256,256,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,261,262,1,12,1,1,1,1,12,264,1,1,263,1,1,266,1,1,1,1,1,1,1,1,1,0,1,1,1,271,272,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,283,0,0,284,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,60,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,308,0,0,0,0,0,0,0,0,0,310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,327,327,328,327,0,185,1,1,13,323,1,321,0,0,0,0,1,0,0,0,324,1,1,329,1,205,1,1,1,1,1,322,1,319,1,325,1,317,1,326,1,318,1,1,1,1,1,1,1,12,1,1,1,12,1,12,320,320,1,1,1,316,184,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,315,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,332,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,266,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,372,372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,340,351,1,1,339,374,1,345,1,1,337,369,1,1,355,336,341,1,1,1,348,379,357,1,1,1,1,1,1,358,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,367,371,0,0,79,1,1,0,365,342,378,343,346,353,1,368,0,1,0,79,362,360,1,0,0,1,1,1,0,0,0,0,381,1,1,352,1,79,1,0,1,1,1,384,1,0,0,79,359,0,1,338,1,1,1,0,1,1,361,1,0,1,1,1,0,1,386,349,1,1,0,1,0,0,377,0,1,1,1,79,370,1,1,366,363,1,1,1,1,1,1,1,1,1,1,1,344,1,1,1,1,1,1,1,1,1,1,1,376,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,380,1,1,1,0,0,383,0,0,0,1,356,1,0,79,382,1,0,0,0,0,385,1,1,0,0,1,0,1,0,354,0,350,0,1,1,1,0,1,1,0,373,347,375,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,400,400,1,1,12,12,1,400,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,412,1,1,0,1,1,1,1,205,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,430,430,1,1,0,0,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,445,1,12,12,1,1,1,1,1,12,1,1,1,1,453,1,1,1,455,1,1,1,1,1,1,1,1,1,1,452,1,447,1,1,1,1,435,1,1,1,1,1,1,1,1,448,12,1,1,1,1,454,1,1,1,449,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,317,1,433,1,1,12,451,1,1,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,454,1,1,1,1,317,1,450,1,1,1,439,1,1,1,1,1,440,1,456,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,434,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,446,1,1,1,1,1,1,1,12,1,1,1,1,1,436,1,1,1,1,1,1,1,220,457,1,1,1,1,1,12,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,462,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,466,466,466,466,466,466,466,0,466,466,466,466,466,1,466,466,466,0,466,466,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,478,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,488,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,198,198,1,492,1,1,1,491,1,1,1,1,487,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,493,1,1,490,1,1,1,1,1,1,1,1,372,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,494,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,505,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,507,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,60,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,526,1,1,1,1,1,1,1,527,1,1,1,1,1,1,1,525,1,1,12,1,529,239,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,539,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,548,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,228,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,572,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,577,1,220,1,328,1,1,1,1,1,1,1,1,1,0,0,578,1,1,1,1,0,580,0,79,0,579,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,0,1,0,0,0,0,0,0,586,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,582,582,0,585,583,582,582,582,582,582,587,582,582,591,582,582,582,582,582,582,582,582,582,582,588,585,582,582,585,582,582,582,582,582,582,582,582,582,582,582,582,582,583,582,582,582,582,582,589,582,582,582,582,582,582,0,0,0,1,590,1,1,1,1,584,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,595,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,65,280,306,411,535,0,4,68,236,254,282,307,334,388,413,0,499,519,536,597,9,0,61,88,398,409,429,575,0,497,518,532,612,0,30,6,0,461,500,602,560,70,0,7,285,255,389,463,416,538,79,598,0,576,309,418,465,9,105,288,506,6,30,0,311,79,391,79,483,10,6,131,248,275,0,613,509,0,563,0,64,6,6,251,95,2,432,399,410,596,0,6,0,6,286,103,6,561,501,540,0,464,390,273,287,8,71,104,599,543,392,312,300,419,146,74,290,546,510,601,564,335,330,479,6,75,149,11,0,249,522,547,565,514,551,570,611,36,6,260,295,333,304,218,30,528,553,218,42,216,265,296,305,406,423,481,274,0,73,562,0,403,417,299,79,247,79,0,581,545,504,292,421,79,393,387,0,0,0,9,555,571,217,0,424,407,531,516,573,615,85,218,43,297,396,425,569,0,511,293,276,79,215,80,28,390,30,6,394,331,303,604,592,524,550,513,0,258,81,30,405,422,0,30,426,0,219,593,517,9,408,427,218,248,86,222,594,574,557,482,428,397,250,227,87,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,82,0,129,0,0,84,549,0,0,0,0,0,0,0,27,0,552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,503,0,257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,617,0,0,0,0,0,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,395,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,495,0,0,0,0,0,0,404,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,281,0,0,0,0,0,530,277,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,314,0,0,0,0,0,0,253,0,0,0,0,0,0,23,0,0,0,0,568,0,0,0,0,600,521,0,0,0,0,244,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,62,0,0,0,267,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,279,610,0,72,0,0,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,278,0,0,0,0,0,0,567,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,502,0,0,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,486,0,485,0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,237,0,0,0,0,0,0,0,0,0,0,84,0,606,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,614,0,0,431,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,544,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,214,0,0,0,0,0,0,558,0,270,0,0,130,0,0,0,0,0,559,0,0,0,0,0,0,0,414,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,5,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,415,0,0,401,0,0,0,0,0,0,603,0,0,0,541,0,0,90,0,542,0,0,0,0,0,0,0,0,0,0,508,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,0,0,0,0,0,556,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,605,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623,623,623,623,623,623,623,622,624]),fr="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultdetaexponyatnoopencrpplxzeaburwasmerframerzeropsconvexmedusajsspritesonherculeseasypanelstreamlitsnowflakemesserliloginlinehackclubnorthflankbase44corespeedadaptableleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasvpsidwasantozqldorgcomvicasnactnetedugovnswtasconfhrsncomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxyacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugovtvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algmyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rservicesbuilderstg-builderdev-builder*ociocpocsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appspaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformapimediasiteprojedrydpagesjsu2u2-localx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyxnbayfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3stdlibqualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebanddev-myqnapcloudlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musiciansecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocalreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedonfabricawafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailalpha-myqnapcloudservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultdetais-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmstorjfidemopaasdymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformdatacenterhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1uk0cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomhzcnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingprotonetfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebiton-acornwixstudioon-k3sicp0icp12038jeleqotobigvlairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudtrentinosudtirolxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenaaquilabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardyfriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencevaldaostaxn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolfriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovipfscanvamypepw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintonohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmaplon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabcdenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscalecryptonomicoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvonoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradynmerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshopprivlapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentbotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagecofigma-govcaffeinefigmacanvasoltstputerbarsysupportchatgptsquareomniweopensocialcpanelnotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovvmdhmyspreadshopadimono-ipbarsybytemarkbarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipcloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",Ly=621,$y=625,yd=Qt.length,kd=Wn.length,wd=new Uint32Array(kd),Ln=new Uint32Array(kd),hr=new Int32Array(yd).fill(-1);for(let e=0,t=0;e<yd;e+=1)for(let s=Hn[e];s<Hn[e+1];s+=1){wd[s]=t;const a=t+Wn[s];let r=5381;for(let o=a-1;o>=t;o-=1)r=r*33^fr.charCodeAt(o);Ln[s]=r>>>0,Wn[s]===1&&fr.charCodeAt(t)===42&&(hr[e]=s),t=a}let gt=-1,gr=0,pr=0;function sl(e,t,s,a){if(Wn[e]!==a)return!1;const r=wd[e];for(let o=0;o<a;o+=1)if(fr.charCodeAt(r+o)!==t.charCodeAt(s+o))return!1;return!0}function nl(e,t,s,a,r){let o=Hn[e],i=Hn[e+1];for(;o<i;){const l=o+i>>>1,u=Ln[l];if(u<t)o=l+1;else if(u>t)i=l;else{for(let d=l;d>=o&&Ln[d]===t;d-=1)if(sl(d,s,a,r))return d;for(let d=l+1;d<i&&Ln[d]===t;d+=1)if(sl(d,s,a,r))return d;return-1}}return-1}function al(e,t,s){let a=t,r=e.length,o=5381;gt=-1;for(let l=e.length-1;l>=0;l-=1){const u=e.charCodeAt(l);if(u===46){const d=l+1;let m=nl(a,o>>>0,e,d,r-d);if(m===-1&&(m=hr[a]),m===-1)return gt!==-1;a=tl[m],(Qt[a]&s)!==0&&(gt=a,gr=d,pr=r),r=l,o=5381}else o=o*33^u}let i=nl(a,o>>>0,e,0,r);return i===-1&&(i=hr[a]),i!==-1&&(a=tl[i],(Qt[a]&s)!==0&&(gt=a,gr=0,pr=r)),gt!==-1}function Fy(e,t,s){if(Py(e,t,s))return;const a=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0);if(al(e,$y,a)){s.isIcann=(Qt[gt]&1)!==0,s.isPrivate=(Qt[gt]&2)!==0,s.publicSuffix=e.slice(pr+1);return}if(al(e,Ly,a)){s.isIcann=(Qt[gt]&1)!==0,s.isPrivate=(Qt[gt]&2)!==0,s.publicSuffix=e.slice(gr);return}s.isIcann=!1,s.isPrivate=!1;const r=e.lastIndexOf(".");s.publicSuffix=r===-1?e:e.slice(r+1)}const rl=Ay();function _y(e,t){return Dy(rl),Oy(e,3,Fy,t,rl).domain}const bo=e=>{const t=new Set,s=[];for(const a of e){const r=a.trim();if(r==="")continue;const o=r.toLowerCase();t.has(o)||(t.add(o),s.push(r))}return s},qy=e=>{const t=e.lastIndexOf("@");return t>=0?e.slice(t+1):e},jd=e=>{const t=bo(e);if(t.length<2)return null;let s=null;for(const a of t){const r=_y(qy(a));if(r===null)return null;if(s===null)s=r;else if(s!==r)return null}return s},Sd=e=>{const t=jd(e);return t!==null?[{field:"FromDomain",value:t}]:bo(e).map(s=>({field:"From",value:s}))},By=e=>({matchOperator:"Or",literalClauses:Sd(e)}),Cd=(e,t,s)=>{const a=ve(D0()),{mutate:r,reset:o}=a,[i,l]=c.useState(!1),u=c.useMemo(()=>bo(s),[s]),d=c.useCallback(()=>{!e||!t||(l(!1),r({path:{accountId:e},body:Xa({anchorMessageId:t,matchOperator:"And",literalClauses:[]})}))},[e,t,r]),m=c.useCallback(()=>{l(!1),o()},[o]),f=a.data,h=f?.semanticUnavailable===!0&&!i&&u.length>0;c.useEffect(()=>{!h||!e||(l(!0),r({path:{accountId:e},body:Xa(By(u))}))},[h,e,u,r]);const b=i||(f?.semanticUnavailable??!1),v=a.isPending||h,p=i?{matchOperator:"Or",literalClauses:Sd(u)}:{...t?{anchorMessageId:t}:{},matchOperator:"And",literalClauses:[]};return{preview:d,reset:m,matchedCount:v?void 0:f?.matchedCount,messageIds:v?void 0:f?.messageIds,semanticUnavailable:b,senderFallback:i,senders:u,matchPredicate:p,isPending:v,isError:a.isError,error:a.error}},Ky=({entry:e,hasSeed:t,previewStatus:s,matchedCount:a})=>{if(e==="something-else"&&!t)return{kind:"something-else"};if(s==="error")return{kind:"error"};if(s!=="success")return{kind:"widening"};const r=a??0;return{kind:"organize",matchedCount:r,fallback:r===0}},Uy=new Set(["Complete","Failed"]),ol=e=>e!==void 0&&Uy.has(e),Hy=1e3,Wy=15e3,Vy=e=>{const t=Math.max(0,e),s=Hy*2**t;return Math.min(s,Wy)},Qy=e=>{const[t,s]=c.useState(),a=ve({...O0(),onSuccess:f=>s(f.organizeJobId)}),{mutate:r}=a,o=ce({...P0({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:f=>{const h=f.state.data?.state;return ol(h)?!1:Vy(f.state.dataUpdateCount)}}),i=c.useCallback(f=>{e&&(s(void 0),r({path:{accountId:e},body:Xa(f)}))},[e,r]),l=o.data,u=l?.state??a.data?.state,d=ol(l?.state),m={state:u,matchedCount:l?.matchedCount??0,appliedCount:l?.appliedCount??0,failedCount:l?.failedCount??0,errorMessage:l?.errorMessage??""};return{start:i,progress:m,isStarting:a.isPending,isRunning:!!t&&!d,isDone:d,isError:a.isError||o.isError,error:a.error??o.error}},Yy=({draft:e,scope:t,name:s,pickedDate:a})=>{if(!em(e))return"Pick a folder to move these into — labeling isn't available yet.";if((t==="standing"||t==="temporary")&&s.trim()==="")return"Name this filter so you can find it later.";if(t==="temporary"&&a==="")return"Pick the date this should stop on."},Gy=(e,t)=>{switch(e){case"just-these":return`Move ${t} message${t===1?"":"s"}`;case"all-like-these":return`Organize ${t} message${t===1?"":"s"}`;case"standing":return"Always do this";case"temporary":return"Do this until then"}},Xy=(e,t,s)=>e==="just-these"?t:s,Wa=3,Jy=e=>{if(e.length===0)return"these senders";if(e.length===1)return e[0];if(e.length<=Wa)return`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`;const t=e.slice(0,Wa),s=e.length-Wa;return`${t.join(", ")} and ${s} other${s===1?"":"s"}`},Zy=e=>{const t=jd(e);return`Similar-mail matching isn't available on this server — matching all mail from ${t?`anyone at ${t}`:`${Jy(e)}`} instead.`},e2=[{id:"just-these",label:"Just these",caption:"the ones you selected"},{id:"all-like-these",label:"All like these",caption:"including the similar ones found now"},{id:"standing",label:"These and new mail like this",caption:"keeps working on future mail"},{id:"temporary",label:"Until a date",caption:"stops on its own"}];function Nd({accountId:e,mailboxId:t,selectedMessageIds:s,matchPredicate:a,matchedCount:r,initialScope:o,seedMailboxId:i,fallback:l=!1,semanticUnavailable:u=!1,senders:d=[],onClose:m}){const f=u&&d.length>0,h=(l||u)&&!f,[b,v]=c.useState(o??(h?"just-these":"all-like-these")),[p,x]=c.useState(i??""),[g,y]=c.useState(""),[k,w]=c.useState(""),{data:N}=ce({...He({path:{accountId:e}}),staleTime:1/0}),T=c.useMemo(()=>da(N?.items??[]).map(I=>({id:I.mailboxId,label:ks(I.fullPath)})),[N?.items]),C=c.useMemo(()=>({...a,moveMailboxId:p||void 0,expiresAt:b==="temporary"?tm(k):void 0}),[a,p,b,k]),{moveMessages:S}=Mt({mailboxId:t,accountId:e}),D=Qy(e),M=sm(e),A=s.length,P=Xy(b,A,r),E=Yy({draft:C,scope:b,name:g,pickedDate:k}),j=()=>{if(!E)switch(b){case"just-these":p&&S(s,p),m();return;case"all-like-these":D.start(C);return;case"standing":M.createFilter(C,"standing",g.trim());return;case"temporary":M.createFilter(C,"temporary",g.trim());return}};if(D.isRunning||D.isDone)return n.jsx(t2,{progress:D.progress,isDone:D.isDone,senderFallback:f,onClose:m});if(M.isSuccess)return n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[n.jsx(Lr,{className:"size-8 text-positive"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Filter saved"}),n.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:"You can see it, and when it expires, under Settings › Filters."}),n.jsx(G,{variant:"primary",onClick:m,className:"mt-2",children:"Done"})]});const z=b==="standing"||b==="temporary";return n.jsxs("div",{className:"flex min-h-0 flex-col",children:[n.jsxs("div",{className:"border-b border-line px-5 py-3",children:[n.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Organize"}),n.jsx("p",{className:"mt-0.5 text-xs text-fg-muted",children:f?`${Zy(d)} ${r} match${r===1?"":"es"}.`:u?`Finding similar mail isn't available on this server — organizing just your ${A} selected.`:l?`No similar messages found — organizing just your ${A} selected.`:`${r} similar message${r===1?"":"s"} found${A>0?` from ${A} selected`:""}.`})]}),n.jsxs("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto px-5 py-4",children:[n.jsxs("section",{className:"space-y-2 rounded-lg border border-line bg-surface-sunken p-3",children:[n.jsxs("p",{className:"text-sm leading-relaxed text-fg-muted",children:[b==="standing"&&n.jsx("span",{className:"font-semibold text-fg",children:"Always keep "}),b==="standing"?"":"Keep ",b==="just-these"?"these":f?"mail from these senders":"emails like these"," ","in"]}),n.jsxs(nm,{"aria-label":"Destination folder",value:p,onChange:O=>x(O.target.value),children:[n.jsx("option",{value:"",children:"Choose a folder…"}),T.map(O=>n.jsx("option",{value:O.id,children:O.label},O.id))]}),n.jsxs("div",{className:"flex items-center gap-2 pt-1",children:[n.jsx(st,{tone:"neutral",children:"label them…"}),n.jsx("span",{className:"text-2xs text-fg-subtle",children:"Labeling isn't available yet — arrives with mail-labeling (RFC 031)."})]})]}),n.jsx("section",{className:"space-y-1.5",children:e2.map(O=>{const I=b===O.id,F=f&&O.id==="all-like-these"?"including others from these senders":O.caption;return n.jsxs("button",{type:"button",onClick:()=>v(O.id),className:`flex w-full items-start gap-3 rounded-lg border px-3 py-2.5 text-left transition-colors ${I?"border-accent-2 bg-accent-2-soft":"border-line bg-surface hover:bg-surface-sunken"}`,children:[n.jsx("span",{className:`mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-full border ${I?"border-accent-2 bg-accent-2":"border-line bg-surface"}`,children:I&&n.jsx("span",{className:"size-1.5 rounded-full bg-white"})}),n.jsxs("span",{className:"min-w-0",children:[n.jsx("span",{className:`block text-sm font-medium ${I?"text-accent-2":"text-fg"}`,children:O.label}),n.jsx("span",{className:"block text-xs text-fg-subtle",children:F})]})]},O.id)})}),z&&n.jsxs("section",{className:"space-y-2",children:[n.jsx(wr,{value:g,onChange:O=>y(O.target.value),placeholder:"Name this filter (e.g. Travel)","aria-label":"Filter name"}),b==="temporary"&&n.jsxs("label",{className:"flex items-center gap-2 text-xs text-fg-muted",children:["Until",n.jsx("input",{type:"date",value:k,onChange:O=>w(O.target.value),"aria-label":"Expiry date",className:"rounded-md border border-line bg-surface-sunken px-2 py-1 text-sm text-fg"})]})]})]}),n.jsxs("div",{className:"space-y-2 border-t border-line px-5 py-3",children:[E&&n.jsx("p",{className:"text-xs text-fg-subtle",role:"status",children:E}),M.isError&&n.jsx("p",{className:"text-xs text-danger",role:"alert",children:"Couldn't save the filter. Please try again."}),n.jsx(G,{variant:"primary",onClick:j,disabled:!!E||M.isPending||D.isStarting,className:"w-full",children:M.isPending?"Saving…":Gy(b,P)}),n.jsx(G,{variant:"ghost",onClick:m,className:"w-full",children:"Not now"})]})]})}function t2({progress:e,isDone:t,senderFallback:s,onClose:a}){const r=e.state==="Failed";return n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t?r?n.jsx("span",{className:"text-sm font-semibold text-danger",children:"Organize failed"}):n.jsx(Lr,{className:"size-8 text-positive"}):n.jsx(bt,{className:"size-8 animate-spin text-accent-2"}),!t&&n.jsx("p",{className:"text-sm font-medium text-fg",children:s?"Organizing mail from these senders…":"Organizing similar mail…"}),t&&!r&&n.jsxs("div",{className:"text-sm text-fg",children:[n.jsx("p",{className:"font-medium",children:"Done"}),n.jsxs("p",{className:"mt-1 text-xs text-fg-muted",children:[e.appliedCount," of ",e.matchedCount," moved",e.failedCount>0?` · ${e.failedCount} failed`:"","."]})]}),t&&r&&n.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:e.errorMessage||"Something went wrong. Please try again."}),t&&n.jsx(G,{variant:"primary",onClick:a,className:"mt-2",children:"Done"})]})}const il=(e,t)=>e.find(s=>s.label.toLowerCase()===t),s2=(e,t)=>{const s=[],a=il(e,"inbox");a&&s.push({id:"keep-inbox",label:"Always keep in Inbox",seed:{moveMailboxId:a.id,scope:"standing"}});const r=il(e,"archive");r&&s.push({id:"file-archive",label:"File in Archive",seed:{moveMailboxId:r.id}});const o=t?e.find(i=>i.id===t):void 0;return o&&s.push({id:"move-junk",label:`Move to ${o.label}`,seed:{moveMailboxId:o.id}}),s},n2=(e,t)=>{const s=e.toLowerCase(),a=t.find(o=>s.includes(o.label.toLowerCase())),r=/\b(always|keep|future|from now)\b/.test(s);return{moveMailboxId:a?.id,scope:r?"standing":void 0}};function a2({folderOptions:e,junkMailboxId:t,onSeed:s}){const[a,r]=c.useState(""),o=c.useMemo(()=>s2(e,t),[e,t]),i=()=>{const l=a.trim();l&&s(n2(l,e))};return n.jsxs("div",{className:"flex min-h-0 flex-col",children:[n.jsxs("div",{className:"border-b border-line px-5 py-3",children:[n.jsx("h2",{className:"text-sm font-semibold text-fg",children:"What should Remit do?"}),n.jsx("p",{className:"mt-0.5 text-xs text-fg-muted",children:"Pick a shortcut or say it in your own words."})]}),n.jsx("div",{className:"min-h-0 flex-1 space-y-2 overflow-y-auto px-5 py-4",children:o.map(l=>n.jsx(G,{variant:"secondary",onClick:()=>s(l.seed),className:"h-12 w-full justify-start px-4",children:l.label},l.id))}),n.jsxs("div",{className:"flex items-center gap-2 border-t border-line px-5 py-3",children:[n.jsx(wr,{value:a,onChange:l=>r(l.target.value),onKeyDown:l=>l.key==="Enter"&&i(),placeholder:"Tell Remit what to do…","aria-label":"Tell Remit what to do",className:"flex-1"}),n.jsx(G,{variant:"primary","aria-label":"Send",onClick:i,disabled:!a.trim(),icon:n.jsx(Um,{className:"size-4"}),className:"size-9 shrink-0 px-0"})]})]})}const r2=(e,t,s)=>e?"error":t?"pending":s!==void 0?"success":"idle";function o2({entry:e,accountId:t,mailboxId:s,selectedMessageIds:a,selectedSenders:r,junkMailboxId:o,onClose:i}){const l=a[0],[u,d]=c.useState(),{preview:m,matchedCount:f,semanticUnavailable:h,senders:b,matchPredicate:v,isPending:p,isError:x,error:g}=Cd(t,l,r);c.useEffect(()=>{m()},[m]);const{data:y}=ce({...He({path:{accountId:t}}),staleTime:Number.POSITIVE_INFINITY}),k=c.useMemo(()=>da(y?.items??[]).map(N=>({id:N.mailboxId,label:ks(N.fullPath)})),[y?.items]),w=Ky({entry:e,hasSeed:u!==void 0,previewStatus:r2(x,p,f),matchedCount:f});return n.jsxs(vc,{open:!0,onClose:i,dismissLabel:"Dismiss organize",children:[w.kind==="something-else"&&n.jsx(a2,{folderOptions:k,junkMailboxId:o,onSeed:d}),w.kind==="widening"&&n.jsx(i2,{}),w.kind==="error"&&n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[n.jsx("p",{className:"text-sm font-medium text-danger",children:"Couldn't find similar messages"}),n.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:g instanceof Error?g.message:"Please try again."}),n.jsx(G,{variant:"ghost",onClick:i,className:"mt-2",children:"Close"})]}),w.kind==="organize"&&n.jsx(Nd,{accountId:t,mailboxId:s,selectedMessageIds:a,matchPredicate:v,matchedCount:w.matchedCount,initialScope:u?.scope,seedMailboxId:u?.moveMailboxId,fallback:w.fallback,semanticUnavailable:h,senders:b,onClose:i})]})}function i2(){return n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[n.jsx(bt,{className:"size-8 animate-spin text-accent-2"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Finding similar messages…"})]})}function l2({open:e,accountId:t,mailboxId:s,selectedMessageIds:a,selectedSenders:r,onClose:o}){const i=a[0],{preview:l,reset:u,matchedCount:d,semanticUnavailable:m,senders:f,matchPredicate:h,isPending:b,isError:v,error:p}=Cd(t,i,r);c.useEffect(()=>{e&&l()},[e,l]);const x=()=>{u(),o()};return e?n.jsx(vl,{open:e,onClose:x,title:"Organize similar mail",children:b||d===void 0?v?n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[n.jsx("p",{className:"text-sm font-medium text-danger",children:"Couldn't find similar messages"}),n.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:p instanceof Error?p.message:"Please try again."}),n.jsx(G,{variant:"ghost",onClick:x,className:"mt-2",children:"Close"})]}):n.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[n.jsx(bt,{className:"size-8 animate-spin text-accent-2"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Finding similar messages…"})]}):n.jsx(Nd,{accountId:t,mailboxId:s,selectedMessageIds:a,matchPredicate:h,matchedCount:d,semanticUnavailable:m,senders:f,onClose:x})}):null}const c2=(e,t)=>({id:e.messageId,accountId:e.accountConfigId,mailboxId:e.mailboxId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ot(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:ia(e.category),messageCount:t,suspicious:e.authenticity?.dkimMismatch===!0}),u2=({thread:e,mailboxId:t,accountId:s,isSelected:a,isFocused:r,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:u,onRowSelect:d,messageCount:m,isMultiSelectMode:f,onLongPress:h,isDesktop:b,density:v})=>n.jsx(mo,{thread:c2(e,m),linkMailboxId:t,inListbox:!0,active:a,focused:r,isTabStop:o,density:v,isDesktop:b,onFocusRow:i,selection:{isChecked:l,onToggleCheck:u,onRowSelect:d,isMultiSelectMode:f,onLongPress:h},badge:e.autoMoved?n.jsx(cu,{accountId:s,messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,autoMoved:e.autoMoved,size:"sm"}):void 0}),d2=c.memo(u2),m2=e=>{const t=e.authenticity?.dkimMismatch===!0;return{id:e.messageId,accountId:e.accountConfigId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Ot(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:ia(e.category),suspicious:t}},f2=({thread:e,mailboxId:t,accountId:s,isSelected:a,isFocused:r,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:u,onRowSelect:d,isMultiSelectMode:m,onLongPress:f,isDesktop:h,onDelete:b,onToggleRead:v,density:p})=>{const[x,g]=c.useState("none"),y=c.useCallback(N=>{navigator.vibrate?.(10),N==="trailing"?b(e.messageId):v(e.messageId,e.isRead),g("none")},[b,v,e.messageId,e.isRead]),k=c.useCallback(()=>{f(e.messageId)},[f,e.messageId]),w=c.useCallback(()=>{u(e.messageId)},[u,e.messageId]);return h||m?n.jsx(d2,{thread:e,mailboxId:t,accountId:s,isSelected:a,isFocused:r,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:u,onRowSelect:d,isMultiSelectMode:m,onLongPress:f,isDesktop:h,density:p}):n.jsx(fc,{thread:m2(e),selectionMode:!1,checked:!1,active:a,peek:x,onPeek:g,onToggleCheck:w,onLongPress:k,onOpen:()=>{},onAct:y,linkComponent:({onOpenClick:N,children:T,...C})=>n.jsx(ft,{...C,to:"/mail/$mailboxId",params:{mailboxId:t},search:S=>({...S,selectedMessageId:e.messageId}),"data-message-row":!0,onClick:N,children:T})})},h2=72,g2=32,p2=5,Ed="remit:list-density",b2={kind:"delete"},ll={kind:"markRead"},x2=()=>{try{const e=localStorage.getItem(Ed);if(e==="compact"||e==="comfortable")return e}catch{}return"comfortable"},v2=({query:e,count:t})=>n.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-line bg-surface-sunken/30",children:[n.jsx(sn,{className:"size-4 text-fg-muted"}),n.jsxs("span",{className:"text-sm text-fg-muted",children:[t," ",t===1?"result":"results"," for “",e,"”"]})]}),y2=({mailboxId:e,threads:t,selectedMessageId:s,isLoading:a,isError:r=!1,error:o,onRetry:i,searchQuery:l,searchPredicate:u,onDeleteMessages:d,onMoveMessages:m,isDeleting:f=!1,isMoving:h=!1,onLoadMore:b,hasMore:v=!1,isLoadingMore:p=!1,accountId:x,listTitle:g,listMeta:y,onTriageContextChange:k,commandsRef:w,hideHeader:N=!1})=>{const T=c.useRef(null),C=ze(),S=$t(),[D,M]=c.useState(!1),[A,P]=c.useState(null),E=!!l?.trim(),[j,z]=c.useState(s),[O,I]=c.useState(x2),F=c.useCallback(()=>{I($=>{const se=$==="comfortable"?"compact":"comfortable";try{localStorage.setItem(Ed,se)}catch{}return se})},[]),{toggleReadFor:R}=oa({mailboxId:e}),{junkMailboxId:L}=ca(x),{selectedIds:B,selectedCount:_,hasSelection:X,isSelected:ee,toggle:Y,select:fe,clearSelection:ue,selectRange:te,setAnchor:U,selectAll:K,toggleAll:ae,intersectWith:Pe}=Qu(),Te=Yu(_,S);c.useEffect(()=>{_===0&&P(null)},[_]);const[V,J]=c.useState(null),re=E&&!!u,de=`${e}|${JSON.stringify(u??{})}`,q=xy({mailboxId:e,accountId:x,enabled:re,predicateKey:de,searchQuery:u??{}}),We=q.phase.kind,Le=q.clear,pe=c.useCallback(()=>{We==="escalated"&&Le(),ue()},[ue,Le,We]),[ke,Ve]=c.useState(null),[ns,$e]=c.useState(null),Ze=c.useRef(null),Fe=c.useRef(!1),_e=c.useRef(null),ut=!a&&t.length>0,Ne=V!==null,as=c.useCallback(($,se)=>{const{exit:wt,retryIds:Ge}=gy(se);if(wt){$e(Gi($.kind,se.done)),Ve(null),pe();return}if(Ge.length>0){Ve({action:$,succeeded:se.done}),K(Ge);return}Ve(null)},[pe,K]),qe=ty({count:t.length,getScrollElement:()=>T.current,estimateSize:()=>O==="compact"?g2:h2,overscan:p2}),qt=s?t.findIndex($=>$.messageId===s):-1,Se=j?t.findIndex($=>$.messageId===j):-1,Be=c.useCallback($=>{if($<0||$>=t.length)return;const se=t[$];if(Te){Y(se.messageId);return}Ze.current=se.messageId,Fe.current=!1,z(se.messageId)},[t,Te,Y]),dt=c.useCallback(()=>{if(t.length===0)return;const $=Se<0?0:Math.min(Se+1,t.length-1);Be($)},[t.length,Se,Be]),rs=c.useCallback(()=>{if(t.length===0)return;const $=Se<=0?0:Se-1;Be($)},[t.length,Se,Be]),Bt=c.useCallback(()=>Be(0),[Be]),Z=c.useCallback(()=>Be(t.length-1),[Be,t.length]),le=c.useCallback(()=>{j&&Y(j)},[j,Y]),ne=c.useMemo(()=>t.map($=>$.messageId),[t]),oe=c.useMemo(()=>{const $=[];for(const se of t)B.has(se.messageId)&&se.fromEmail&&$.push(se.fromEmail);return $},[t,B]),he=c.useCallback(($,se)=>se.shiftKey?(te(ne,$,j),!0):se.metaKey||se.ctrlKey?(Y($),!0):(pe(),U($),!1),[ne,j,te,Y,pe,U]),me=c.useCallback($=>{!d||$.length===0||(_e.current=j??null,J({source:"ids",ids:$}))},[d,j]),xe=c.useCallback(()=>{q.phase.kind==="escalated"&&(_e.current=j??null,J({source:"predicate",total:q.phase.total}))},[q.phase,j]),Ae=c.useCallback($=>{const se=Vu(ne,j,$);se!==void 0&&(te(ne,se),Ze.current=se,Fe.current=!1,z(se))},[ne,j,te]),Re=c.useCallback(()=>Ae(-1),[Ae]),Ke=c.useCallback(()=>Ae(1),[Ae]),Me=c.useCallback(()=>{ne.length>0&&K(ne)},[ne,K]),Ee=c.useCallback(()=>V!==null?!0:d?_>0?(me(Array.from(B)),!0):j?(me([j]),!0):!1:!1,[V,d,_,B,j,me]),Qe=c.useCallback(()=>{j&&C({to:"/mail/$mailboxId",params:{mailboxId:e},search:$=>({...$,selectedMessageId:j})})},[j,C,e]),Ye=c.useCallback(()=>{_>0&&me(Array.from(B))},[me,_,B]),et=c.useCallback(async($,se)=>{const wt=await q.runAction($,se);as($,wt)},[q,as]),Kt=c.useCallback(async $=>{J(null),_e.current=null,await et(b2,$)},[et]),pa=c.useCallback(()=>{if(!V)return;if(V.source==="predicate"){Kt(void 0);return}const{ids:$}=V;if($.length===0){J(null);return}if($.length>xd){Kt($);return}const se=new Set($),wt=t.findIndex(Oe=>se.has(Oe.messageId));let Ge;for(let Oe=wt+1;Oe<t.length;Oe++)if(!se.has(t[Oe].messageId)){Ge=t[Oe].messageId;break}if(Ge===void 0){for(let Oe=wt-1;Oe>=0;Oe--)if(!se.has(t[Oe].messageId)){Ge=t[Oe].messageId;break}}d?.($),pe(),_e.current=null,J(null),Ge!==void 0&&(Ze.current=Ge,Fe.current=!1,z(Ge),S&&C({to:"/mail/$mailboxId",params:{mailboxId:e},search:Oe=>({...Oe,selectedMessageId:Ge}),replace:!0})),S||$e(Gi("delete",$.length))},[V,t,d,pe,C,e,S,Kt]),yt=c.useCallback(()=>{const $=_e.current;_e.current=null,J(null),$!==null&&(Ze.current=$,Fe.current=!1,z($))},[]),gn=c.useCallback(()=>{if(q.phase.kind==="escalated"){et(ll);return}_!==0&&et(ll,Array.from(B))},[q.phase,et,_,B]),os=c.useCallback($=>{if(q.phase.kind==="escalated"){et({kind:"move",destinationMailboxId:$});return}!m||_===0||(m(Array.from(B),$),pe())},[q.phase,et,m,_,B,pe]),ba=c.useCallback(()=>{L&&os(L)},[L,os]),Ut=c.useMemo(()=>{if(_===0)return;const $=new Set;for(const se of t)B.has(se.messageId)&&$.add(se.accountConfigId);if($.size>1)return"Move only works within one account — clear selection or pick messages from a single account"},[_,B,t]),xa=c.useCallback($=>{d?.([$])},[d]),va=c.useCallback(($,se)=>{R([$],!se)},[R]),ya=c.useCallback($=>{S||fe($)},[S,fe]),kt=c.useCallback(()=>{if(q.phase.kind==="escalated"){xe();return}Ye()},[q.phase,xe,Ye]),Os=c.useCallback(()=>{if(q.isRunning||q.phase.kind==="counting"){q.stop();return}pe()},[q,pe]),pn=c.useCallback(()=>{q.clear()},[q]),ka=c.useCallback(()=>{if(!ke)return;const $=Array.from(B);if(ke.action.kind==="delete"){Kt($);return}et(ke.action,$)},[ke,Kt,et,B]);c.useEffect(()=>{if(Fe.current||!S&&s)return;const $=Se>=0?Se:qt;$>=0&&qe.scrollToIndex($,{align:"auto"})},[Se,qt,qe,S,s]),c.useEffect(()=>{s&&(Fe.current=!1,z(s))},[s]),c.useEffect(()=>{j&&(t.some($=>$.messageId===j)||z(t[0]?.messageId))},[t,j]),c.useEffect(()=>{k?.({focusedMessageId:j,selectedIds:Array.from(B),hasList:ut,blocksKeyboard:Ne})},[j,B,ut,Ne,k]);const bn=c.useRef(k);bn.current=k,c.useEffect(()=>()=>bn.current?.({focusedMessageId:void 0,selectedIds:[],hasList:!1,blocksKeyboard:!1}),[]),c.useEffect(()=>{q.phase.kind!=="idle"||q.isRunning||Pe(t.map($=>$.messageId))},[t,Pe,q.phase,q.isRunning]);const xn=c.useRef(e);c.useEffect(()=>{xn.current!==e&&(xn.current=e,pe())},[e,pe]),Kg({shouldBlockFn:({action:$})=>Tx($,X)?(pe(),!0):!1,enableBeforeUnload:!1,disabled:!X}),c.useEffect(()=>{const $=T.current;if(!$||!v||!b)return;const se=()=>{if(p)return;const{scrollTop:wt,scrollHeight:Ge,clientHeight:Oe}=$;wt+Oe>=Ge-200&&b()};return $.addEventListener("scroll",se,{passive:!0}),se(),()=>$.removeEventListener("scroll",se)},[v,p,b]),c.useEffect(()=>{const $=Ze.current;if(!$)return;const se=T.current?.querySelector(`[data-message-id="${$}"]`);se&&(Ze.current=null,se.focus({preventScroll:!0}))}),c.useEffect(()=>{if(w){if(!ut){w.current=null;return}return w.current={focusNext:dt,focusPrevious:rs,focusFirst:Bt,focusLast:Z,openFocused:Qe,toggleSelect:le,extendSelectDown:Ke,extendSelectUp:Re,selectAll:Me,clearSelection:()=>X?(pe(),!0):!1,requestDelete:Ee,toggleDensity:F},()=>{w.current=null}}},[w,ut,dt,rs,Bt,Z,Qe,le,Ke,Re,Me,X,pe,Ee,F]);const vn=a?"loading":r?"error":t.length===0?"empty":"ready",wa=r?Pl(o):void 0,Q=c.useCallback(()=>{const $=Rr(Tr());window.open($,"_blank","noopener,noreferrer")},[]),tt=[{id:"inbox",threads:[]}],De=ne.length>0&&ne.every($=>B.has($)),$d=re&&v&&De&&!f&&!h&&q.phase.kind==="idle"&&!q.isRunning,Fd=f||h||q.isRunning,ja=q.phase.kind==="escalated"?q.phase.total:_,yo=q.runningAction?ry(q.runningAction.kind,q.progress?.done??0,q.progress?.total??0):q.phase.kind==="counting"?q.phase.countSoFar>=5e3?`Counting… ${lt(q.phase.countSoFar)} so far. This is a big result set.`:`Counting… ${lt(q.phase.countSoFar)} so far`:q.phase.kind==="escalated"?yy(u??{},q.phase.total):void 0,ko=q.phase.kind!=="escalated"&&ne.length>0?{checked:De,indeterminate:_>0&&!De,onChange:()=>ae(ne)}:void 0,wo=q.runningAction&&q.progress?{value:q.progress.done,max:q.progress.total,tone:cy(q.runningAction.kind)}:void 0,jo=q.phase.kind==="counting"?{tone:"info",text:"",action:{label:"Stop",onClick:q.stop}}:q.phase.kind==="escalated"&&!q.isRunning?{tone:"info",text:"",action:{label:"Clear selection",onClick:pn}}:$d?{tone:"info",text:"",action:{label:vy(u??{}),onClick:q.escalate}}:ke!==null&&_>0?{tone:"danger",text:oy(ke.action.kind,ke.succeeded,_),action:{label:`Retry ${lt(_)}`,onClick:ka}}:void 0,So=jo??(Ut?{tone:"warning",text:Ut}:void 0),Co=ky({isRunning:q.isRunning,isCounting:q.phase.kind==="counting",isEscalated:q.phase.kind==="escalated"}),No=!S&&Te&&jy(ja,Co,So!==void 0),_d=(m||q.phase.kind==="escalated")&&x&&e?n.jsx(hn,{accountId:x,currentMailboxId:e,onMove:f||h?()=>{}:os,disabledHint:Ut,label:"Move selected messages"}):void 0,Eo=A&&x&&!S&&_>0?n.jsx(o2,{entry:A,accountId:x,mailboxId:e,selectedMessageIds:Array.from(B),selectedSenders:oe,junkMailboxId:L,onClose:()=>{P(null),pe()}}):void 0,Io=No?n.jsx(oh,{count:ja,mode:Co,onCancel:Os,onDelete:kt,onJunk:L&&L!==e&&!Ut?ba:void 0,onMarkRead:gn,onSelectSimilar:x?()=>P("select-similar"):void 0,onSomethingElse:x?()=>P("something-else"):void 0,moveSlot:_d,isBusy:Fd,selectAll:ko,statusLabel:yo,progress:wo,notice:So}):void 0,qd=Io||Eo?n.jsxs(n.Fragment,{children:[Io,Eo]}):void 0,Bd=X&&S?n.jsx(Xu,{selectedCount:ja,onDelete:kt,onClearSelection:Os,onMarkAsRead:gn,onMove:m?os:void 0,onOrganize:()=>M(!0),isDeleting:f,isMoving:h,accountId:x,currentMailboxId:e,moveDisabledHint:Ut,selectAll:re?ko:void 0,statusLabel:yo,isCounting:q.phase.kind==="counting",progress:wo,notice:jo}):void 0,Kd=Gu(ne,j),Ud=c.useCallback($=>{Fe.current=!0,z($)},[]),Hd=n.jsxs(n.Fragment,{children:[E&&l&&n.jsx(v2,{query:l,count:t.length}),n.jsxs("div",{ref:T,role:"listbox","aria-multiselectable":!0,"aria-label":g,className:"flex-1 overflow-y-auto",style:No?{paddingBottom:Hs}:void 0,children:[n.jsx("div",{role:"presentation",className:"relative w-full",style:{height:`${qe.getTotalSize()}px`},children:qe.getVirtualItems().map($=>{const se=t[$.index];return n.jsx("div",{role:"presentation","data-index":$.index,ref:qe.measureElement,className:ge("absolute left-0 top-0 w-full border-b border-line",q.isRunning&&"pointer-events-none opacity-50"),style:{transform:`translateY(${$.start}px)`},children:n.jsx(f2,{thread:se,mailboxId:e,accountId:x,isSelected:s===se.messageId,isFocused:j===se.messageId,isTabStop:Kd===se.messageId,onFocusRow:Ud,isChecked:ee(se.messageId),onToggleCheck:Y,onRowSelect:he,isMultiSelectMode:Te,onLongPress:ya,isDesktop:S,onDelete:xa,onToggleRead:va,density:O})},$.key)})}),p&&n.jsx("div",{className:"flex justify-center py-4",children:n.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-fg-muted border-t-transparent"})})]})]}),Wd=V?V.source==="ids"?V.ids.length:V.total:0,To=V?.source==="predicate";return n.jsxs(n.Fragment,{children:[ns&&!S&&n.jsx(Zt,{tone:"success",variant:"soft",className:"m-2 rounded-md",onDismiss:()=>$e(null),children:ns}),n.jsx(hc,{listTitle:g,listMeta:y,sections:tt,flatList:!0,listState:vn,searchQuery:E?l:void 0,errorMessage:wa,onRetry:i,onReportError:Q,density:O,selectedThreadId:s,onSelectThread:$=>C({to:"/mail/$mailboxId",params:{mailboxId:e},search:se=>({...se,selectedMessageId:$})}),onSelectBriefCategory:()=>{},isDesktop:S,hideHeader:N,selectionBar:Bd,selectionSheet:qd,listBody:vn==="ready"?Hd:void 0}),n.jsx(co,{isOpen:V!==null,title:$l(Wd,To),description:To?"This count is a snapshot — new mail arriving during the delete won't be included. You can restore what's deleted from Trash later.":"You can restore them from Trash later.",confirmLabel:"Move to Trash",destructive:!0,isBusy:f,onConfirm:pa,onCancel:yt}),D&&x&&n.jsx(l2,{open:D,accountId:x,mailboxId:e,selectedMessageIds:Array.from(B),selectedSenders:oe,onClose:()=>M(!1)})]})},k2=e=>es({path:{accountId:e}}),w2=e=>{const t=ye(),s=tn(),a=ve({...L0(),onSuccess:()=>{s.recordEvent("sync.triggered"),t.invalidateQueries({queryKey:k2(e)})}});return{trigger:()=>{a.mutate({path:{accountId:e}})},triggerAsync:()=>a.mutateAsync({path:{accountId:e}}),isPending:a.isPending,error:a.error,reset:a.reset}},j2=({accountId:e,children:t})=>{const{triggerAsync:s,isPending:a}=w2(e);return n.jsx(B1,{onRefresh:s,isRefreshing:a,children:t})};function S2({accountId:e,currentMailboxId:t,candidates:s,onMove:a,children:r}){const[o,i]=c.useState(!1),l=tn(),{t:u}=Yn("mail",{useSuspense:!1}),d=c.useCallback((y,k)=>u(y,{defaultValue:k}),[u]),{inboxMailboxId:m}=no(e),f=lu(e),{data:h}=ce({...He({path:{accountId:e}}),staleTime:1/0}),b=c.useMemo(()=>{const y=da(h?.items??[],f),k=Ns(f);return y.map(w=>({id:w.mailboxId,label:ys(w,k.get(w.mailboxId),d),searchValue:w.fullPath,isCurrent:w.mailboxId===t}))},[h?.items,f,t,d]),v=c.useMemo(()=>m||(b.find(k=>k.label.toLowerCase()==="inbox")?.id??b.find(k=>!k.isCurrent)?.id??""),[m,b]),p=c.useRef(!1);c.useEffect(()=>{p.current||(p.current=!0,Jx(l,s.length))},[l,s.length]);const x=c.useCallback(()=>{Zx(l,s.length),i(!0)},[l,s.length]),g=c.useCallback((y,k)=>{ev(l,{selected:y.length,total:s.length,toInbox:k===m}),a(y,k)},[l,s.length,m,a]);return n.jsxs("div",{className:"relative flex h-full min-h-0 flex-col",children:[n.jsx("div",{className:"shrink-0 px-row-inset pt-2",children:n.jsx(H1,{count:s.length,onReview:x})}),n.jsx("div",{className:"min-h-0 flex-1",children:r}),n.jsx(th,{open:o,candidates:s,defaultDestinationId:v,availableFolders:b,onConfirmMove:g,onCancel:()=>i(!1)})]})}const C2="We can verify this sender";function N2(e){const{data:t}=ce({...$0({path:{mailboxId:e??""},query:{senderTrust:["vip","wellknown"],dkimMismatch:!1,results:!0,limit:500}}),enabled:!!e,staleTime:6e4});return{candidates:(t?.items??[]).map(a=>({id:a.messageId,senderName:a.fromName||a.fromEmail||"Unknown sender",senderAddress:a.fromEmail??"",subject:a.subject||"(no subject)",snippet:a.snippet??"",trustReason:C2,trustSubReason:Xx(a.senderTrust),senderTrust:a.senderTrust}))}}const E2=e=>{const t=new Set,s=[];for(const a of e)t.has(a.threadMessageId)||(t.add(a.threadMessageId),s.push(a));return s},Id="remit:intelligence-open";function I2(){try{return localStorage.getItem(Id)!=="closed"}catch{return!0}}function cl(e){try{localStorage.setItem(Id,e?"open":"closed")}catch{}}const T2=(e,t)=>e!==t,R2=(e,t,s)=>{if(!(s||!t))return e.find(a=>a.messageId===t)},M2={unread:e=>!e.isRead,flagged:e=>e.hasStars===!0,attachment:e=>!!e.hasAttachment};function z2(e,t,s){const a=Array.from(s).map(r=>M2[r]).filter(r=>r!=null);return t==="all"&&a.length===0?e:e.filter(r=>(t==="all"||r.category===t)&&a.every(o=>o(r)))}const Td=c.createContext(null);function ga(){const e=c.useContext(Td);if(!e)throw new Error("MailboxPane.* must be used inside <MailboxPane>");return e}function A2({mailboxId:e,selectedMessageId:t,children:s}){const a=ze(),o=ma()==="desktop",i=tn(),{accounts:l,searchQuery:u,searchInput:d,intelligenceOpen:m,onToggleIntelligence:f,onSetIntelligenceOpen:h}=je(),b=zs(),v=lo(u),p=v.length>0,{freeText:x,tokens:g}=As(v,b),y=g.find(Q=>Q.type==="from"),k={order:"desc",...x?{query:x}:{},...y?{from:y.value}:{},...g.some(Q=>Q.type==="hasAttachment")?{attachments:!0}:{},...g.some(Q=>Q.type==="isUnread")?{unread:!0}:{}},w=p?Il({path:{mailboxId:e},query:k}):zr({path:{mailboxId:e},query:{order:"desc"}}),{data:N,isLoading:T,isError:C,error:S,refetch:D,fetchNextPage:M,hasNextPage:A,isFetchingNextPage:P}=Fc({queryKey:w,queryFn:async({pageParam:Q})=>{if(p){const{data:De}=await Al({path:{mailboxId:e},query:{...k,continuationToken:Q},throwOnError:!0});return De}const{data:tt}=await _0({path:{mailboxId:e},query:{order:"desc",continuationToken:Q},throwOnError:!0});return tt},initialPageParam:void 0,getNextPageParam:Q=>Q.continuationToken,enabled:p?v.length>0:!0,placeholderData:F0}),E=c.useCallback(Q=>{t&&Q.includes(t)&&a({to:"/mail/$mailboxId",params:{mailboxId:e},search:tt=>({...tt,selectedMessageId:void 0,selectedThreadId:void 0})})},[t,e,a]),{deleteMessages:j,isPending:z}=Xt({mailboxId:e,onAfterOptimisticRemove:E}),{accountId:O}=ou(e),I=Gc({accounts:l}),{moveMessages:F,isPending:R}=Mt({mailboxId:e,accountId:O,onAfterOptimisticRemove:E}),L=tb(E2(N?.pages.flatMap(Q=>Q.items??[])??[])),[B,_]=c.useState("all"),[X,ee]=c.useState(new Set),Y=c.useMemo(()=>z2(L,B,X),[L,B,X]),fe=c.useCallback(Q=>{_(Q)},[]),ue=c.useCallback(Q=>{ee(tt=>{const De=new Set(tt);return De.has(Q)?De.delete(Q):De.add(Q),De})},[]),te=c.useCallback(()=>{_("all"),ee(new Set)},[]),U=T2(d,u),K=R2(L,t,U),{selectedThreadId:ae}=ws({strict:!1}),Pe=c.useMemo(()=>id(K,{messageId:t,threadId:U?void 0:ae,mailboxId:e}),[K,t,ae,U,e]),Te=ho(),{listCommandsRef:V,onTriageContextChange:J,focusedMessageId:re,selectedIds:de}=Te,q=Y.find(Q=>Q.messageId===re)??K,We=c.useRef(null);c.useEffect(()=>{const Q=K?.messageId??null;Q&&We.current!==Q&&K?.authenticity?.dkimMismatch&&(We.current=Q,m||f())},[K?.messageId,K?.authenticity?.dkimMismatch,m,f]);const Le=c.useRef(!1);c.useEffect(()=>{Le.current||o&&K?.messageId&&(Le.current=!0,I2()&&!m&&h(!0))},[o,K?.messageId,m,h]);const ke=sp({accounts:l})??L.filter(Q=>!Q.isRead).length,Ve=ye(),{pushError:ns}=Je(),$e=Js({thread:K,mailboxId:e,accountId:O,onAfterOptimisticRemove:E}),{draftsMailboxId:Ze}=Zp(O),Fe=Ze!==void 0&&Ze===e,{archiveMailboxId:_e}=Jp(O),ut=od(),{requestCompose:Ne}=$e,as=c.useCallback(()=>{Ne("reply")},[Ne]),qe=c.useCallback(()=>{Ne("reply_all")},[Ne]),qt=c.useCallback(()=>{Ne("forward")},[Ne]),{state:Se,openCompose:Be,closeCompose:dt}=At(),rs=c.useCallback(()=>{Be({mode:"new"})},[Be]),Bt=ve({...Xn(),onError:Q=>{ns(Gt("Couldn't discard draft","The draft wasn't deleted.",Q))}}),Z=c.useCallback(()=>{const Q=Se.outboxMessageId;Q&&(Bt.mutate({path:{outboxMessageId:Q}}),Ve.invalidateQueries({queryKey:Or()}),dt())},[Se.outboxMessageId,Bt,Ve,dt]),le=c.useCallback(()=>{a({to:"/mail/$mailboxId",params:{mailboxId:e},search:Q=>({...Q,selectedMessageId:void 0,selectedThreadId:void 0})})},[e,a]),ne=c.useCallback(Q=>Q?ut(Q):[],[ut]),{toggleStar:oe}=to({threadId:q?.threadId??"",mailboxId:e}),{toggleReadFor:he}=oa({mailboxId:e,accountId:O}),{junkMailboxId:me}=ca(O),xe=me!=null&&me===e,{candidates:Ae}=N2(xe?me:void 0),{moveMessages:Re}=Mt({mailboxId:e,threadId:q?.threadId,accountId:O,onAfterOptimisticRemove:E}),{deleteMessages:Ke}=Xt({mailboxId:e,threadId:q?.threadId,onAfterOptimisticRemove:E}),{addressId:Me,address:Ee}=sd(q),{updateFlags:Qe}=nd({addressId:Me,senderEmail:q?.fromEmail??void 0}),Ye=c.useCallback(()=>t||!re?!1:(a({to:"/mail/$mailboxId",params:{mailboxId:e},search:Q=>({...Q,selectedMessageId:re})}),!0),[t,re,e,a]),et=c.useCallback(()=>{Ye()||K&&Ne("reply")},[Ye,K,Ne]),Kt=c.useCallback(()=>{Ye()||K&&Ne("reply_all")},[Ye,K,Ne]),pa=c.useCallback(()=>{Ye()||K&&Ne("forward")},[Ye,K,Ne]),yt=c.useCallback(()=>de.length>0?de:ne(q),[de,ne,q]),gn=c.useCallback(()=>{if(V.current?.requestDelete())return;const Q=yt();Q.length>0&&Ke(Q)},[V,yt,Ke]),os=c.useCallback(()=>{if(!me)return;const Q=yt();Q.length!==0&&(rd(i,{count:Q.length,senderTrust:q?.senderTrust??"unknown",wasRescuable:q?ad(q):!1}),Re(Q,me))},[me,yt,Re,i,q]),ba=c.useCallback(()=>{if(de.length>0){const Q=!(q?.hasStars??!1),tt=new Set(de);for(const De of Y)tt.has(De.messageId)&&De.hasStars!==Q&&oe(De.messageId,De.hasStars);return}q&&oe(q.messageId,q.hasStars)},[de,Y,q,oe]),Ut=c.useCallback(()=>{const Q=yt();if(Q.length===0)return;const tt=!(q?.isRead??!1);he(Q,tt)},[yt,q,he]),xa=c.useCallback(()=>{if(!Me)return;const Q=Ee?.flags?.muted?.value!==!0;Qe({muted:{value:Q}})},[Me,Ee,Qe]),va=c.useCallback(()=>{if(!Me)return;const Q=Ee?.flags?.vip?.value!==!0;Qe({vip:{value:Q}})},[Me,Ee,Qe]),ya=c.useCallback(()=>{m||f()},[m,f]),kt=c.useCallback(Q=>{a({to:Q})},[a]),Os=Fe?"drafts":_e===e?"archive":me===e?"junk":"inbox",pn=c.useRef("");c.useEffect(()=>{const Q=pn.current;pn.current=v,v.length>0&&Q.length===0&&i.recordEvent("search.submitted",{mailboxType:Os})},[v,Os,i]);const ka=Fe&&Se.isOpen&&!!Se.outboxMessageId&&!K,{goBack:bn,nextMessageId:xn,previousMessageId:vn}=go({context:Te,orderedIds:Y.map(Q=>Q.messageId),selectedMessageId:t,enabled:!Se.isOpen,onClose:le,handlers:{reply:et,replyAll:Kt,forward:pa,delete:gn,toggleStar:ba,toggleRead:Ut,muteSender:xa,blockSender:ya,vipSender:va,markJunk:os,toggleIntelligence:K?f:void 0,compose:rs,goBrief:()=>kt("/mail"),goInbox:()=>kt("/mail"),goSent:()=>kt("/mail"),goFlagged:()=>kt("/mail/flagged"),goSettings:()=>kt("/settings")}});Zr({enabled:Se.isOpen,bindings:[{key:"Escape",handler:dt,preventDefault:!0}]});const wa={mailboxId:e,selectedMessageId:t,selectedThread:K,conversation:Pe,threads:Y,isLoading:T,isError:C,error:S,mailboxAccountId:O,mailboxName:I,unreadCount:ke,isDraftsMailbox:Fe,isSpamFolder:xe,rescueCandidates:Ae,filterCategory:B,filterAttributes:X,onSelectFilterCategory:fe,onToggleFilterAttribute:ue,onClearFilters:te,intelligenceOpen:m,onToggleIntelligence:f,searchPredicate:p?k:void 0,onDeleteMessages:j,onMoveMessages:F,isDeleting:z,isMoving:R,onLoadMore:M,hasMore:A,isLoadingMore:P,onTriageContextChange:J,listCommandsRef:V,onRetry:()=>D(),toolbarComposeRequest:$e.composeRequest,onToolbarReply:as,onToolbarReplyAll:qe,onToolbarForward:qt,onClearComposeRequest:$e.clearComposeRequest,onToolbarDelete:$e.deleteThread,onToolbarStar:$e.toggleStar,onToolbarDiscardDraft:Z,onToolbarMove:$e.moveThread,composeState:Se,closeCompose:dt,hasRemitDraftOpen:ka,onBack:bn,nextMessageId:xn,previousMessageId:vn};return n.jsx(Td.Provider,{value:wa,children:s})}function Rd(){const{mailboxId:e,selectedMessageId:t,threads:s,isLoading:a,isError:r,error:o,onDeleteMessages:i,onMoveMessages:l,isDeleting:u,isMoving:d,onLoadMore:m,hasMore:f,isLoadingMore:h,mailboxAccountId:b,mailboxName:v,unreadCount:p,isDraftsMailbox:x,isSpamFolder:g,rescueCandidates:y,onTriageContextChange:k,listCommandsRef:w,onRetry:N,filterCategory:T,filterAttributes:C,onSelectFilterCategory:S,onToggleFilterAttribute:D,onClearFilters:M,searchPredicate:A}=ga(),{searchQuery:P,searchInput:E,accounts:j,resultFolderIndex:z}=je(),O=ma(),I=ze(),F=v??"Inbox",R=c.useMemo(()=>uh(),[]),L=c.useMemo(()=>s.map(U=>vx(U,z)),[s,z]),{hits:B,isLoading:_}=Fu({mailboxId:e,filterCategory:T}),X=c.useMemo(()=>Ku(B,s.map(U=>U.threadId),z),[B,s,z]),ee=c.useCallback(U=>I({to:"/mail/$mailboxId",params:{mailboxId:U.mailboxId??e},search:K=>({...K,q:E||void 0,selectedMessageId:U.id,selectedThreadId:U.threadId})}),[e,I,E]);if(x&&b)return n.jsx($v,{mailboxId:e,accountId:b,selectedMessageId:t,imapThreads:s,title:v??"Drafts",unreadCount:p??void 0});const Y=n.jsx(y2,{mailboxId:e,threads:s,selectedMessageId:t,isLoading:a,isError:r,error:o,onRetry:N,searchQuery:P,searchPredicate:A,onDeleteMessages:i,onMoveMessages:l,isDeleting:u,isMoving:d,onLoadMore:m,hasMore:f,isLoadingMore:h,accountId:b,listTitle:F,hideHeader:!0,onTriageContextChange:k,commandsRef:w}),fe=j[0]?.accountId,ue=O==="phone"&&fe?n.jsx(j2,{accountId:fe,children:Y}):Y,te=g&&y.length>0&&b?n.jsx(S2,{accountId:b,currentMailboxId:e,candidates:y,onMove:l,children:ue}):ue;return n.jsx(dd,{title:F,unreadCount:p,preset:R,selectedCategory:T,activeFilters:C,onSelectCategory:S,onToggleFilter:D,onClearFilters:M,searchResults:L,searchLoading:a,relatedResults:X,relatedLoading:_,onSelectSearchResult:ee,searchResultsInBody:!0,children:te})}function D2(){const{mailboxId:e,mailboxAccountId:t,selectedThread:s,conversation:a,hasRemitDraftOpen:r,intelligenceOpen:o,onToggleIntelligence:i,toolbarComposeRequest:l,onToolbarReply:u,onToolbarReplyAll:d,onToolbarForward:m,onClearComposeRequest:f,onToolbarDelete:h,onToolbarStar:b,onToolbarDiscardDraft:v,onToolbarMove:p,composeState:x}=ga(),g=Es()?.showIntelligencePane??!1,y=!!a,k=g&&y,w=x.isOpen&&!a?n.jsx(hd,{}):a?n.jsx(Ms,{threadId:a.threadId,mailboxId:a.mailboxId,subject:a.subject,selectedMessageId:a.messageId,authenticity:a.authenticity,onOpenIntelligence:a.authenticity?.dkimMismatch?i:void 0,composeRequest:l,onComposeClose:f}):n.jsx(Rs,{});return n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(fo,{hasThread:y,intelligenceOpen:k&&o,canToggleIntelligence:k,onToggleIntelligence:i,onReply:y?u:void 0,onReplyAll:y?d:void 0,onForward:y?m:void 0,canDelete:y||r,onDelete:y?h:r?v:void 0,onToggleStar:y?b:void 0,isStarred:s?.hasStars,moveContext:y&&t?{accountId:t,currentMailboxId:e,onMove:p}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:w})]})}function O2(){const{mailboxId:e,mailboxAccountId:t,selectedThread:s,onToggleIntelligence:a}=ga();return n.jsx(Ds,{onClose:a,thread:s,mailboxId:e,accountId:t})}function P2(){const{mailboxId:e,selectedThread:t,conversation:s,intelligenceOpen:a,onToggleIntelligence:r,onBack:o,nextMessageId:i,previousMessageId:l,composeState:u}=ga(),d=ze();if(s){const m=f=>d({to:"/mail/$mailboxId",params:{mailboxId:e},search:h=>({...h,selectedMessageId:f,selectedThreadId:void 0})});return n.jsxs(n.Fragment,{children:[n.jsx(Ms,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:o,onOpenIntelligence:r,onSwipeNext:i?()=>m(i):void 0,onSwipePrevious:l?()=>m(l):void 0,mobileIntelligenceOpen:a}),n.jsx(Xr,{isOpen:a,onClose:r,ariaLabel:"Message details",side:"right",children:n.jsx(Ds,{onClose:r,thread:t,hideCloseButton:!0})})]})}return u.isOpen?n.jsx("div",{className:"h-full",children:n.jsx(hd,{})}):n.jsx(Rd,{})}const Us=Object.assign(A2,{List:Rd,Reading:D2,Intelligence:O2,Phone:P2}),Md=e=>e==="failed"||e==="blocked",zd=e=>e!=="draft"&&e!=="sent",xo="remit.savedSearches",L2=25;function Vn(){try{const e=localStorage.getItem(xo);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(s=>typeof s=="string"):[]}catch{return[]}}function $2(e){const t=e.trim();if(!t)return Vn();const s=[t,...Vn().filter(a=>a!==t)].slice(0,L2);try{localStorage.setItem(xo,JSON.stringify(s))}catch{return s}return s}function F2(e){const t=Vn().filter(s=>s!==e);try{localStorage.setItem(xo,JSON.stringify(t))}catch{return t}return t}const ul=e=>/^\d/.test(e),_2=(e,t)=>{const s=ul(e),a=ul(t);return s&&!a?-1:!s&&a?1:e.localeCompare(t,void 0,{sensitivity:"base",numeric:!0})};function q2(e,t,s){const a=[],r=[];for(const o of e)t.has(o.mailboxId)?a.push(o):r.push(o);return r.sort((o,i)=>_2(ys(o,void 0,s),ys(i,void 0,s))),{system:a,labels:r}}function B2(e,t,s){const a=q0(t)&&e.unseenCount>0;return{id:e.mailboxId,name:ys(e,t,s),unseen:a?e.unseenCount:void 0,role:t,fullPath:e.fullPath}}function K2(){const e=aa(),t=Mr({strict:!1});return e.pathname.startsWith("/settings")?"settings":e.pathname.startsWith("/mail/outbox")?"outbox":e.pathname.startsWith("/mail/flagged")?"flagged":t.mailboxId?t.mailboxId:e.pathname==="/mail"||e.pathname==="/mail/"?"brief":""}function dl({accounts:e,onMailboxSelect:t,variant:s="desktop"}){const a=ye(),r=ze(),o=K2(),{searchInput:i,onSearchChange:l}=je(),[u,d]=c.useState(Vn),{t:m}=Yn("mail",{useSuspense:!1}),f=c.useCallback((S,D)=>m(S,{defaultValue:D}),[m]),h=Lt({queries:e.map(S=>({...He({path:{accountId:S.accountId}}),staleTime:1/0}))}),{data:b}=ce(Gn()),v=c.useMemo(()=>(b?.items??[]).filter(S=>zd(S.status)).length,[b?.items]),p=c.useMemo(()=>e.map((S,D)=>{const M=h[D],A=M?.data?.items??[],P=Ns(S.folderAppointments),{system:E,labels:j}=q2(A,P,f),z=M?.isError?"error":M?.isLoading?"loading":"ready";return{id:S.accountId,label:S.email,email:S.email,muted:!!S.muted,outboxPending:v,status:z,onRetry:()=>M?.refetch(),mailboxes:[...E,...j].map(O=>B2(O,P.get(O.mailboxId),f))}}),[e,h,v,f]),x=S=>{a.invalidateQueries({queryKey:zr({path:{mailboxId:S},query:{order:"desc"}})})},g=({navId:S,className:D,ariaLabel:M,title:A,children:P,onClick:E})=>S==="brief"?n.jsx(ft,{to:"/mail",search:{q:void 0,selectedMessageId:void 0},onClick:()=>E?.(),className:D,"aria-label":M,title:A,children:P}):S==="outbox"?n.jsx(ft,{to:"/mail/outbox",search:{q:void 0,selectedOutboxMessageId:void 0},onClick:()=>E?.(),className:D,"aria-label":M,title:A,children:P}):S==="flagged"?n.jsx(ft,{to:"/mail/flagged",search:{q:void 0,selectedMessageId:void 0},onClick:()=>E?.(),className:D,"aria-label":M,title:A,children:P}):S==="settings"?n.jsx(ft,{to:"/settings/accounts",onClick:()=>E?.(),className:D,"aria-label":M,title:A,children:P}):n.jsx(ft,{to:"/mail/$mailboxId",params:{mailboxId:S},search:{q:void 0,selectedMessageId:void 0},onClick:()=>{x(S),E?.()},className:D,"aria-label":M,title:A,children:P}),y=()=>{l(""),t?.()},k=i.trim(),w=k.length>0&&!u.includes(k)?k:void 0,N=c.useCallback(()=>{w&&d($2(w))},[w]),T=c.useCallback(S=>{d(F2(S))},[]),C=c.useCallback(S=>{l(S),r({to:"/mail",search:{q:S,selectedMessageId:void 0}}),t?.()},[l,r,t]);return n.jsx(l1,{accounts:p,selectedNavId:o,onSelectNav:y,linkComponent:g,variant:s,savedSearches:u,saveableQuery:w,onSaveCurrentSearch:N,onSelectSavedSearch:C,onRemoveSavedSearch:T})}function U2({accounts:e,onMailboxSelect:t}){return Es()?.showNavPane??!0?n.jsx(dl,{accounts:e}):n.jsxs("div",{className:"flex h-full flex-col",children:[n.jsx("div",{className:"flex-1 overflow-y-auto",children:n.jsx(dl,{accounts:e,onMailboxSelect:t,variant:"drawer"})}),n.jsxs("div",{className:"border-t border-line px-2 py-2",children:[n.jsxs(ft,{to:"/settings/accounts",onClick:t,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:[n.jsx(Br,{className:"size-4 shrink-0"}),n.jsx("span",{className:"flex-1 truncate text-left",children:"Settings"})]}),n.jsx(Kc,{variant:"drawer"}),n.jsx(Bc,{children:({signOut:r})=>n.jsxs("button",{type:"button",onClick:()=>{t?.(),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:[n.jsx(sc,{className:"size-4 shrink-0"}),n.jsx("span",{className:"flex-1 truncate text-left",children:"Sign out"})]})})]})]})}function H2(e,t){const s=t.trim().toLowerCase();if(s.length===0)return!0;const a=[e.subject,e.fromAddress,e.fromName,...e.toAddresses??[],...e.ccAddresses??[]].filter(r=>typeof r=="string").join(" ").toLowerCase();return s.split(/\s+/).every(r=>r.length===0||a.includes(r))}function W2(e){return e.tokens.length>0&&e.freeText.trim().length===0}const Ad={queued:{icon:qr,label:"Queued",className:"text-warning"},sending:{icon:bt,label:"Sending…",className:"text-accent-2"},sent:{icon:Xl,label:"Sent",className:"text-positive"},failed:{icon:Jt,label:"Failed",className:"text-danger"},blocked:{icon:jr,label:"Blocked",className:"text-warning"}},V2=e=>Z0(e).toDateString()===new Date().toDateString()?Fn(e,{hour:"numeric",minute:"2-digit"}):Fn(e,{month:"short",day:"numeric"}),ml=e=>Fn(e,{dateStyle:"medium",timeStyle:"short"}),Q2=e=>{const t=e.toAddresses??[];return t.length===0?"No recipients":t.length===1?t[0]:`${t[0]} +${t.length-1}`},Dd=(e,t)=>t?"The outbox cannot filter on those terms":e?"No matching outbox messages":"No outbox messages",Od=c.createContext(null);function vo(){const e=c.useContext(Od);if(!e)throw new Error("OutboxPane.* must be used inside <OutboxPane>");return e}function Y2({children:e}){const t=ze(),{selectedOutboxMessageId:s}=ws({strict:!1}),{data:a,isLoading:r}=ce(Gn()),{searchQuery:o}=je(),i=zs(),l=lo(o),u=As(l,i),d=l.length>0,m=W2(u),f=c.useMemo(()=>m?[]:(a?.items??[]).filter(p=>zd(p.status)).filter(p=>H2(p,u.freeText)),[a,u.freeText,m]),h=c.useMemo(()=>f.find(p=>p.outboxMessageId===s),[f,s]),b=c.useCallback(p=>{t({to:"/mail/outbox",search:x=>({...x,selectedOutboxMessageId:p})})},[t]),v={messages:f,hasQuery:d,unsupportedQuery:m,isLoading:r,selectedMessageId:s,selectedMessage:h,onSelectMessage:b};return n.jsx(Od.Provider,{value:v,children:e})}function Pd({message:e,isSelected:t,onSelect:s}){const a=ye(),{openCompose:r}=At(),{pushError:o}=Je(),i=c.useCallback(()=>{a.invalidateQueries({queryKey:Or()})},[a]),l=ve({...El(),onSuccess:i,onError:f=>{o(Gt("Couldn't resend message","The message wasn't sent.",f))}}),u=ve({...Xn(),onSuccess:i,onError:f=>{o(Gt("Couldn't delete message","The message wasn't deleted.",f))}}),d=e.status;if(!Ad[d])return null;const m=Md(e.status);return n.jsx(_1,{recipients:Q2(e),subject:e.subject||"",time:V2(e.sentAt??e.updatedAt),status:d,error:m?e.lastError??void 0:void 0,selected:t,onSelect:s,onRetry:d==="failed"?()=>l.mutate({path:{outboxMessageId:e.outboxMessageId}}):void 0,retrying:l.isPending,onEdit:()=>r({mode:"new",outboxMessageId:e.outboxMessageId}),onDelete:()=>u.mutate({path:{outboxMessageId:e.outboxMessageId}}),deleting:u.isPending})}function Ld({message:e,onBack:t}){const s=e.status,a=Ad[s],r=a?.icon??en,o=e.sentAt?ml(e.sentAt):ml(e.updatedAt);return n.jsxs("div",{className:"h-full overflow-y-auto bg-canvas",children:[n.jsxs("div",{className:"border-b border-line p-4",children:[t&&n.jsxs("button",{type:"button",onClick:t,className:"mb-3 inline-flex items-center gap-1 text-sm text-fg-muted hover:text-fg",children:[n.jsx(Yl,{className:"size-4"}),n.jsx("span",{children:"Back"})]}),n.jsx("h1",{className:"text-xl font-semibold mb-3",children:e.subject||"(No subject)"}),n.jsxs("div",{className:"space-y-1 text-sm",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"From:"}),n.jsx("span",{className:"text-fg",children:e.fromName?`${e.fromName} <${e.fromAddress}>`:e.fromAddress})]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"To:"}),n.jsx("span",{className:"text-fg",children:(e.toAddresses??[]).join(", ")})]}),e.ccAddresses&&e.ccAddresses.length>0&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"Cc:"}),n.jsx("span",{className:"text-fg",children:e.ccAddresses.join(", ")})]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"Date:"}),n.jsx("span",{className:"text-fg",children:o})]}),a&&n.jsxs("div",{className:"flex items-center gap-2 pt-2",children:[n.jsx(r,{className:ge("size-4",a.className,s==="sending"&&"animate-spin")}),n.jsx("span",{className:ge("text-xs font-medium",a.className),children:a.label}),Md(e.status)&&e.lastError&&n.jsxs("span",{className:"text-xs text-fg-muted",children:["— ",e.lastError]})]})]})]}),n.jsx("div",{className:"p-4",children:n.jsx(Pu,{html:e.htmlBody,text:e.textBody})})]})}function G2(){const{messages:e,hasQuery:t,unsupportedQuery:s,isLoading:a,selectedMessageId:r,onSelectMessage:o}=vo(),i=c.useRef(null);return Qn({containerRef:i,itemSelector:vr}),a?n.jsx("div",{className:"flex h-full items-center justify-center bg-canvas",children:n.jsx("span",{className:"text-fg-muted",children:"Loading..."})}):e.length===0?n.jsx("div",{className:"flex h-full bg-surface",children:n.jsx(Rs,{message:Dd(t,s),showHints:!1})}):n.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx(po,{}),n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:"Outbox"}),n.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle",children:[e.length," ",e.length===1?"message":"messages"]})]}),n.jsx("div",{ref:i,className:"flex-1 overflow-y-auto",children:e.map(l=>n.jsx(Pd,{message:l,isSelected:r===l.outboxMessageId,onSelect:()=>o(l.outboxMessageId)},l.outboxMessageId))})]})}function X2(){const{selectedMessage:e}=vo();return n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx("header",{className:"flex h-pane-header shrink-0 items-center border-b border-line px-3"}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(Ld,{message:e}):n.jsx(Rs,{message:"Select a message to read",showHints:!1})})]})}function J2(){const{messages:e,hasQuery:t,unsupportedQuery:s,isLoading:a,selectedMessageId:r,selectedMessage:o,onSelectMessage:i}=vo(),l=c.useRef(null);return Qn({containerRef:l,itemSelector:vr}),a?n.jsx("div",{className:"flex h-full items-center justify-center bg-canvas",children:n.jsx("span",{className:"text-fg-muted",children:"Loading..."})}):o?n.jsx(Ld,{message:o,onBack:()=>i(void 0)}):e.length===0?n.jsx("div",{className:"flex h-full bg-surface",children:n.jsx(Rs,{message:Dd(t,s),showHints:!1})}):n.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx(po,{}),n.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:"Outbox"}),n.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle",children:[e.length," ",e.length===1?"message":"messages"]})]}),n.jsx("div",{ref:l,className:"flex-1 overflow-y-auto",children:e.map(u=>n.jsx(Pd,{message:u,isSelected:r===u.outboxMessageId,onSelect:()=>i(u.outboxMessageId)},u.outboxMessageId))})]})}const Mn=Object.assign(Y2,{List:G2,Reading:X2,Phone:J2}),Z2=({isOpen:e,onClose:t})=>{const s=c.useCallback(a=>{a.key==="Escape"&&(a.preventDefault(),t())},[t]);return c.useEffect(()=>{if(e)return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,s]),e?n.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",onClick:t,onKeyDown:a=>a.key==="Escape"&&t(),children:[n.jsx("div",{className:"absolute inset-0 bg-canvas/80 backdrop-blur-sm"}),n.jsxs("div",{className:ge("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"),onClick:a=>a.stopPropagation(),onKeyDown:a=>{a.key!=="Escape"&&a.stopPropagation()},children:[n.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[n.jsx("h2",{className:"text-lg font-semibold",children:"Keyboard shortcuts"}),n.jsx("button",{type:"button",onClick:t,className:"p-1 text-fg-muted transition-colors hover:text-fg","aria-label":"Close",children:n.jsx(Ue,{className:"size-5"})})]}),n.jsx("div",{className:"grid gap-x-8 gap-y-6 sm:grid-cols-2",children:Jc.map(a=>n.jsxs("div",{children:[n.jsx("h3",{className:"mb-3 text-sm font-medium text-fg-muted",children:a.title}),n.jsx("div",{className:"space-y-2",children:a.hints.map(r=>n.jsxs("div",{className:"flex items-center justify-between gap-4",children:[n.jsx("span",{className:"text-sm",children:r.description}),n.jsx("span",{className:"flex shrink-0 items-center gap-1",children:r.keys.map((o,i)=>n.jsxs(c.Fragment,{children:[i>0&&r.keys[0]==="g"&&n.jsx("span",{className:"text-2xs text-fg-subtle",children:"then"}),n.jsx(bs,{children:o})]},o))})]},`${r.action}-${r.keys.join("+")}`))})]},a.title))}),n.jsx("div",{className:"mt-6 border-t border-line pt-4",children:n.jsxs("p",{className:"text-center text-xs text-fg-muted",children:["Press ",n.jsx(bs,{children:"Esc"})," to close"]})})]})]}):null};function ek(e){const t=new Map;for(const s of e){const a=s.email.toLowerCase(),r=a.split("@")[0];r&&!t.has(r)&&t.set(r,s.accountId),t.has(a)||t.set(a,s.accountId)}return t}function tk(e){const t=new Map;for(const s of e)for(const a of s){const r=a.fullPath?.toLowerCase();if(!r)continue;const o=r.split("/").pop();t.has(r)||t.set(r,a.mailboxId),o&&!t.has(o)&&t.set(o,a.mailboxId)}return t}function sk(e){const t=Lt({queries:e.map(s=>({...He({path:{accountId:s.accountId}}),staleTime:1/0}))});return c.useMemo(()=>tk(t.map(s=>s.data?.items??[])),[t])}const nk=e=>e.map(t=>t.data?.items??[]);function ak(e){const t=Lt({queries:e.map(s=>({...He({path:{accountId:s.accountId}}),staleTime:1/0})),combine:nk});return c.useMemo(()=>B0(e.map((s,a)=>({folderAppointments:s.folderAppointments,mailboxes:t[a]??[]}))),[e,t])}var zn={exports:{}},fl;function rk(){if(fl)return zn.exports;fl=1;const e=(t,s,a)=>new Promise((r,o)=>{if(a=Object.assign({concurrency:1/0},a),typeof s!="function")throw new TypeError("Mapper function is required");const{concurrency:i}=a;if(!(typeof i=="number"&&i>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${i}\` (${typeof i})`);const l=[],u=t[Symbol.iterator]();let d=!1,m=!1,f=0,h=0;const b=()=>{if(d)return;const v=u.next(),p=h;if(h++,v.done){m=!0,f===0&&r(l);return}f++,Promise.resolve(v.value).then(x=>s(x,p)).then(x=>{l[p]=x,f--,b()},x=>{d=!0,o(x)})};for(let v=0;v<i&&(b(),!m);v++);});return zn.exports=e,zn.exports.default=e,zn.exports}var ok=rk();const ik=K0(ok),lk=900*1e3,ck=300,uk=(e,t)=>{if(!e)return t;const s=Number.parseInt(e,10);return Number.isFinite(s)&&s>0?s:t},dk=60*1e3,mk=e=>Math.max(uk(e,ck)*1e3,dk),$n=mk(W0().mailboxPollIntervalSeconds),fk=5,br=new Set,hk=(e,t,s=lk)=>e.filter(a=>{const r=a.lastSyncAt;return r==null?!0:t-r>s}).map(a=>a.accountId),gk=(e,t,s=$n)=>e-t>=s,pk=(e,t)=>e.filter(s=>!t.has(s)),hl=(e,t)=>{if(br.delete(e),H0(t,{softError:!0})){zl(t);return}console.warn("[remit] background mailbox sync failed",{accountId:e,error:t})},gl=(e,t)=>U0({path:{accountId:e},throwOnError:!0}).then(()=>{t.invalidateQueries({queryKey:es({path:{accountId:e}})})}),bk=e=>{const t=ye(),s=c.useRef(e);s.current=e;const a=e.map(r=>r.accountId).join(",");c.useEffect(()=>{const r=Date.now(),i=hk(s.current,r).filter(l=>!br.has(l));if(i.length!==0)for(const l of i)br.add(l),gl(l,t).catch(u=>{hl(l,u)})},[a,t]),c.useEffect(()=>{let r=Date.now(),o;const i=new Set,l=()=>{r=Date.now();const m=pk(s.current.map(f=>f.accountId),i);for(const f of m)i.add(f);ik(m,f=>gl(f,t).catch(h=>{hl(f,h)}).finally(()=>{i.delete(f)}),{concurrency:fk})},u=()=>{if(document.visibilityState==="visible"){l(),o=setTimeout(u,$n);return}},d=()=>{document.visibilityState==="visible"&&gk(Date.now(),r)&&(o!==void 0&&clearTimeout(o),l(),o=setTimeout(u,$n))};return o=setTimeout(u,$n),document.addEventListener("visibilitychange",d),()=>{o!==void 0&&clearTimeout(o),document.removeEventListener("visibilitychange",d)}},[a,t])};function xk(e,t,s){if(e!==t)return s}function vk(e,t){return e===""?"":t}function yk(e,t,s){return t!==e?!1:t!==s}function kk(){const{q:e=""}=ws({from:"/mail"}),t=ze(),s=ma(),a=Uu(s),[r,o]=c.useState(!1),[i,l]=c.useState(!1),[u,d]=c.useState(!1),m=c.useCallback(te=>{d(te),cl(te)},[]),[f,h]=c.useState(e),b=Dl(f,200),v=vk(f,b),p=c.useRef(e);p.current=e;const x=ht({select:te=>Xg(te.matches)}),[g,y]=c.useState(x);if(g!==x){const te=xk(g,x,e);y(x),te!==void 0&&h(te)}c.useEffect(()=>{yk(f,v,p.current)&&t({to:".",search:te=>{const U=te.q===v;return{...te,q:v||void 0,...v&&!U?{selectedMessageId:void 0,selectedThreadId:void 0,selectedMailboxId:void 0}:{}}},replace:!0})},[f,v,t]);const{data:k,isLoading:w,isError:N,error:T,refetch:C}=ce({...xt(),staleTime:1/0}),S=!!(k&&(k.accounts?.length??0)===0);c.useEffect(()=>{S&&t({to:"/onboarding",replace:!0})},[S,t]),Zr({enabled:!r,bindings:[{key:"?",handler:()=>o(!0),noModifiers:!1,preventDefault:!0}]});const D=c.useCallback(te=>{h(te)},[]),M=c.useCallback(()=>{h("")},[]),A=c.useCallback(()=>{h("")},[]),P=c.useCallback(()=>{d(te=>{const U=!te;return cl(U),U})},[]),E=k?.accounts??[],j=sk(E),z=ak(E),O=c.useMemo(()=>ek(E),[E]),I=ht({select:te=>te.matches.find(K=>"mailboxId"in K.params)?.params.mailboxId}),{selectedMessageId:F}=ws({strict:!1}),R=ht({select:te=>Gr(te.matches)}),L=ht({select:te=>ln(te.matches)}),B=ht({select:te=>ra(te.matches)});bk(E);const _=c.useCallback(()=>{l(!1)},[]),X={accounts:E,mailboxNameIndex:j,accountNameIndex:O,resultFolderIndex:z,searchQuery:v,searchInput:f,searchViewKey:x,onSearchChange:D,onSearchClear:M,onSearchClearQuery:A,intelligenceOpen:u,onToggleIntelligence:P,onSetIntelligenceOpen:m},ee=n.jsx(U2,{accounts:E,onMailboxSelect:_}),Y=a?n.jsx(Qg,{accounts:E}):void 0,fe=a?void 0:n.jsx(rp,{accounts:E}),ue={navOpen:i,onOpenNav:()=>l(!0),onCloseNav:()=>l(!1)};return n.jsxs(V0.Provider,{value:X,children:[N?n.jsx("div",{className:"flex h-full items-center justify-center bg-canvas p-4",children:n.jsx(Dt,{title:"Couldn't load your account",error:T,onRetry:()=>{C()}})}):R?n.jsx(qs,{selectedMessageId:F,children:a?n.jsx(jt,{nav:ee,list:n.jsx(qs.Phone,{}),intelligenceOpen:u,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue}):n.jsx(jt,{nav:ee,topBar:fe,list:n.jsx(qs.List,{}),reading:n.jsx(qs.Reading,{}),intelligence:n.jsx(qs.Intelligence,{}),intelligenceOpen:u,hasThread:!!F,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue})}):L?n.jsx(Bs,{selectedMessageId:F,children:a?n.jsx(jt,{nav:ee,list:n.jsx(Bs.Phone,{}),intelligenceOpen:u,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue}):n.jsx(jt,{nav:ee,topBar:fe,list:n.jsx(Bs.List,{}),reading:n.jsx(Bs.Reading,{}),intelligence:n.jsx(Bs.Intelligence,{}),intelligenceOpen:u,hasThread:!!F,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue})}):I?n.jsx(Us,{mailboxId:I,selectedMessageId:F,children:a?n.jsx(jt,{nav:ee,list:n.jsx(Us.Phone,{}),intelligenceOpen:u,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue}):n.jsx(jt,{nav:ee,topBar:fe,list:n.jsx(Us.List,{}),reading:n.jsx(Us.Reading,{}),intelligence:n.jsx(Us.Intelligence,{}),intelligenceOpen:u,hasThread:!!F,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue})}):B?n.jsx(Mn,{children:a?n.jsx(jt,{nav:ee,list:n.jsx(Mn.Phone,{}),intelligenceOpen:!1,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue}):n.jsx(jt,{nav:ee,topBar:fe,list:n.jsx(Mn.List,{}),reading:n.jsx(Mn.Reading,{}),intelligenceOpen:!1,overlay:Y,skeleton:n.jsx(mt,{}),isLoading:w||S,...ue})}):n.jsx(mt,{}),n.jsx(Z2,{isOpen:r,onClose:()=>o(!1)}),n.jsx(Q0,{})]})}const Lk=Object.freeze(Object.defineProperty({__proto__:null,component:kk,useMailContext:je},Symbol.toStringTag,{value:"Module"}));export{Pk as S,sf as U,Lk as m};