1 line
55 KiB
JavaScript
1 line
55 KiB
JavaScript
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3777],{9958:(e,t,r)=>{r.d(t,{Df:()=>a,fm:()=>i,kv:()=>l,nc:()=>s,oi:()=>c,qD:()=>d});var o=r(35724);function n(e){return{group_key:e.id,profile_ids:[e.id],display_name:(0,o.ZB)(e),primary_email:e.primary_email,message_count:e.message_count,profile:e,profiles:[e]}}function a(e){let t=e.profile??e.profiles?.[0];if(!t?.id)return null;let r=e.profile_ids?.length>0?e.profile_ids:[t.id];return{...e,group_key:e.group_key||r[0]||t.id,profile_ids:r,profile:t,profiles:e.profiles?.length?e.profiles:[t],display_name:e.display_name||(0,o.ZB)(t),primary_email:e.primary_email||t.primary_email,message_count:e.message_count??t.message_count}}function i(e,t){let r=t?.offset??0,o=t?.pageSize??20,n=s(e),a="has_more"in e&&null!=e.has_more,i="number"==typeof e.total,d="number"==typeof e.limit?e.limit:void 0;if(!a&&!i&&n.length>o&&(null==d||d>=n.length))return{groups:n.slice(r,r+o),total:n.length,hasMore:r+o<n.length};let l=i?e.total:n.length+r;return{groups:n,total:l,hasMore:a?!!e.has_more:i?r+n.length<e.total:n.length>=o}}function s(e){if(e.groups?.length){let t=[];for(let r of e.groups){let e=a(r);e&&t.push(e)}return t}return e.profiles?.length?e.profiles.map(n):[]}function d(e){let t=(e.profile_ids??[]).filter(Boolean),r=e.profile?.id??t[0],o=e.group_key?.trim();return o&&t.length>1||o&&r&&o!==r?o:r??o??"unknown"}function l(e){let t=new Set,r=[];for(let o of e){let e=a(o);if(!e)continue;let n=d(e);t.has(n)||(t.add(n),r.push(e))}return r}function c(e){var t;if(!Array.isArray(e)||0===e.length)return[];if((t=e[0])&&"object"==typeof t&&"string"==typeof t.id&&"string"==typeof t.primary_email&&!("profile"in t))return e.map(n);let r=[];for(let t of e){let e=a(t);e&&r.push(e)}return r}},10093:(e,t,r)=>{r.d(t,{hR:()=>d,yZ:()=>l});var o=r(83233);let n=new Map,a=new Map,i=new Map;function s(e){let t=e.uid||e.path||`${e.full_name}:${e.email??""}`,r=[e.uid,e.path,e.etag,e.full_name,e.email,e.raw_vcard?.length??0].join("|");if(a.get(t)===r){let e=n.get(t);if(e)return e}let i=(0,o.hZ)(e);return n.set(t,i),a.set(t,r),i}function d(e,t){let r;if(!t)return[];let o=i.get(e);if(o&&o.apiContacts===t)return o.fullContacts;if(o&&t.length===o.apiContacts.length+1){let r=!0;for(let e=0;e<o.apiContacts.length;e++)if(t[e]!==o.apiContacts[e]){r=!1;break}if(r){let r=s(t[t.length-1]),n=[...o.fullContacts,r];return i.set(e,{apiContacts:t,fullContacts:n}),n}}return o&&t.length===o.apiContacts.length&&t.every((e,t)=>e===o.apiContacts[t])?o.fullContacts:(r=t.map(s),i.set(e,{apiContacts:t,fullContacts:r}),r)}function l(e){e?i.delete(e):(i.clear(),n.clear(),a.clear())}},10165:(e,t,r)=>{r.d(t,{Y:()=>o});function o(e){let t=(e.path??e.id).replace(/^\/+/,"");return t.startsWith("cloud/")&&(t=t.slice(6)),t}},30925:(e,t,r)=>{r.d(t,{S:()=>d});var o=r(4208);r(91356);var n=r(28879),a=r(68183),i=r(35019),s=r(58113);function d({className:e,checked:t,...r}){return(0,o.jsx)(n.bL,{"data-slot":"checkbox",className:(0,s.cn)("peer border-[1.5px] border-mail-row-checkbox-border bg-background dark:bg-mail-surface-muted data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] shadow-xs transition-all outline-none hover:border-foreground/60 hover:shadow-sm focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,checked:t,children:(0,o.jsx)(n.C1,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:"indeterminate"===t?(0,o.jsx)(a.A,{className:"size-3 stroke-[2.5] text-inherit"}):(0,o.jsx)(i.A,{className:"size-3.5 text-inherit stroke-[2.5]"})})})}},35724:(e,t,r)=>{r.d(t,{HU:()=>m,MT:()=>s,XY:()=>f,ZB:()=>d,wT:()=>a});let o={work:"Travail",home:"Domicile",mobile:"Mobile",other:"Autre",linkedin:"LinkedIn",twitter:"X / Twitter",facebook:"Facebook",instagram:"Instagram",github:"GitHub"};function n(e){return e?o[e.toLowerCase()]??e:"Autre"}function a(e){let t=e.enriched_data,r=Date.now(),o=t?.emails?.length?t.emails.map(e=>({value:e.value,label:n(e.label)})):[{value:e.primary_email,label:"Autre"}],a=(t?.phones??[]).map(e=>({value:e.value,label:n(e.label)})),i=(t?.addresses??[]).map(e=>({street:e.street,city:e.city,region:e.region,postalCode:e.postal_code,country:e.country,label:n(e.label)})),s=(t?.social_profiles??[]).map(e=>({value:e.value,label:n(e.label)}));return{id:e.id,firstName:t?.first_name??e.display_name.split(" ")[0]??"",lastName:t?.last_name??e.display_name.split(" ").slice(1).join(" ")??"",company:t?.company,department:t?.department,jobTitle:t?.job_title,website:t?.website,socialProfiles:s.length>0?s:void 0,emails:o,phones:a,addresses:i.length>0?i:void 0,notes:t?.notes,interactionCount:e.message_count,isOtherContact:!0,createdAt:r,updatedAt:r}}function i(e,t){let r,o=e?.trim();if(!o||o.includes("@"))return!1;let n=(r=t.lastIndexOf("@"))<=0?t.trim().toLowerCase():t.slice(0,r).trim().toLowerCase();return!n||o.toLowerCase()!==n}function s(e){let t=e.profiles?.length?e.profiles:e.profile?[e.profile]:[];return!t.some(e=>(function(e){if(u(e.primary_email))return!0;for(let t of e.all_emails??[])if(u(t.email))return!0;for(let t of e.enriched_data?.emails??[])if(u(t.value))return!0;return!1})(e))&&t.some(e=>(function(e){var t;if((e.signatures?.length??0)>0||(t=e.enriched_data)&&(t.first_name?.trim()||t.last_name?.trim()||t.company?.trim()||t.department?.trim()||t.job_title?.trim()||t.website?.trim()||t.notes?.trim()||t.social_profiles?.some(e=>e.value?.trim())||t.phones?.some(e=>e.value?.trim())||t.addresses?.some(e=>e.street?.trim()||e.city?.trim()||e.region?.trim()||e.postal_code?.trim()||e.country?.trim()))||i(e.display_name,e.primary_email))return!0;for(let t of e.all_emails??[])if(i(t.display_name,t.email))return!0;return!1})(e))}function d(e){let t=e.enriched_data;return t?.first_name||t?.last_name?`${t.first_name??""} ${t.last_name??""}`.trim():e.display_name||e.primary_email}function l(e){return e.replace(/\D/g,"")}function c(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}function u(e){let t=e.trim().toLowerCase();return t.includes("noreply")||t.includes("no-reply")||t.includes("no_reply")}function m(e,t){return e.filter(e=>{if("enrich_contact"!==e.suggestion_type||!e.target_contact_uid)return!0;let r=t.find(t=>t.id===e.target_contact_uid);return!r||!function(e,t){let r=t.suggested_value.trim();if(!r)return!0;switch(t.field_path){case"full_name":return c(r,`${e.firstName} ${e.lastName}`.trim());case"company":return!!e.company&&c(r,e.company);case"job_title":return!!e.jobTitle&&c(r,e.jobTitle);case"phones":return e.phones.some(e=>{var t;let o,n;return t=e.value,o=l(t),n=l(r),!!o&&!!n&&(o.length>=9&&n.length>=9?o.slice(-9)===n.slice(-9):o===n)});case"emails":return e.emails.some(e=>c(e.value,r));case"social_profiles":return(e.socialProfiles??[]).some(e=>c(e.value,r));default:return!1}}(r,e)})}let f={first_name:"Pr\xe9nom",last_name:"Nom",company:"Entreprise",department:"Service",job_title:"Poste",emails:"E-mail",phones:"T\xe9l\xe9phone",addresses:"Adresse",website:"Site web",social_profiles:"R\xe9seaux sociaux",notes:"Notes",full_name:"Nom complet"}},38584:(e,t,r)=>{r.d(t,{Ce:()=>d,RK:()=>a,oM:()=>i,pl:()=>s});var o=r(10165);function n(e,t){let r=t.replace(/^\/+/,""),o=e.path?.replace(/^\/+/,"");return o===r||e.uid===r||o?.endsWith(`/${r}`)===!0||o?.endsWith(`/${r}.vcf`)===!0}function a(e,t){let r=i(e,t);if(!r)return t;let o=t.etag??r.etag,n=t.path??r.path;return o===t.etag&&n===t.path?t:{...t,etag:o,path:n}}function i(e,t){let r=(0,o.Y)(t);for(let[,o]of e.getQueriesData({queryKey:["contacts"]})){if(!o)continue;let e=o.find(e=>e.uid===t.id||n(e,r));if(e)return e}}function s(e,t,r){(r.uid||r.path)&&e.setQueryData(["contacts",t],e=>{let t=e??[],o=r.uid;return o&&t.some(e=>e.uid===o)?t:[...t,r]})}function d(e,t,r){for(let[o,a]of e.getQueriesData({queryKey:["contacts"]})){if(!a)continue;let i=!1,s=a.map(e=>n(e,t)?(i=!0,{...e,...r}):e);i&&e.setQueryData(o,s)}}},44410:(e,t,r)=>{r.d(t,{$i:()=>m,$p:()=>S,AO:()=>c,Az:()=>b,Bh:()=>q,Cc:()=>v,DO:()=>V,E1:()=>_,E7:()=>$,Fr:()=>N,G7:()=>O,HU:()=>J,I8:()=>z,IK:()=>K,KZ:()=>u,LQ:()=>E,Mz:()=>R,PG:()=>Q,Q5:()=>G,QU:()=>k,R5:()=>ee,RA:()=>f,Sh:()=>s,TN:()=>H,Un:()=>d,Ww:()=>Y,Yh:()=>B,Yj:()=>g,a9:()=>p,c7:()=>x,d9:()=>er,gS:()=>i,h6:()=>j,hf:()=>M,hn:()=>U,hz:()=>n,i1:()=>I,il:()=>y,j7:()=>A,l9:()=>l,lK:()=>F,lQ:()=>D,l_:()=>h,nr:()=>a,pK:()=>P,sF:()=>X,th:()=>L,tv:()=>en,uU:()=>w,wC:()=>et,wJ:()=>T,wf:()=>W,wo:()=>eo,yv:()=>Z});var o=r(58113);let n=(0,o.cn)("min-w-[220px] rounded-lg border border-border bg-popover p-0 py-1 text-popover-foreground shadow-lg","[&_[data-slot=dropdown-menu-item]]:gap-3 [&_[data-slot=dropdown-menu-item]]:rounded-none","[&_[data-slot=dropdown-menu-item]]:px-3 [&_[data-slot=dropdown-menu-item]]:py-2 [&_[data-slot=dropdown-menu-item]]:text-sm","[&_[data-slot=dropdown-menu-item]]:focus:bg-accent [&_[data-slot=dropdown-menu-item]]:focus:text-accent-foreground","[&_[data-slot=dropdown-menu-sub-trigger]]:gap-3 [&_[data-slot=dropdown-menu-sub-trigger]]:rounded-none","[&_[data-slot=dropdown-menu-sub-trigger]]:px-3 [&_[data-slot=dropdown-menu-sub-trigger]]:py-2","[&_[data-slot=dropdown-menu-sub-trigger]]:text-sm","[&_[data-slot=dropdown-menu-sub-trigger]]:focus:bg-accent","[&_[data-slot=dropdown-menu-sub-trigger]]:data-[state=open]:bg-accent","[&_[data-slot=dropdown-menu-sub-content]]:min-w-[200px]","[&_[data-slot=dropdown-menu-sub-content]]:rounded-lg","[&_[data-slot=dropdown-menu-sub-content]]:border [&_[data-slot=dropdown-menu-sub-content]]:border-border","[&_[data-slot=dropdown-menu-sub-content]]:bg-popover","[&_[data-slot=dropdown-menu-sub-content]]:p-0 [&_[data-slot=dropdown-menu-sub-content]]:py-1","[&_[data-slot=dropdown-menu-sub-content]]:shadow-lg","[&_[data-slot=dropdown-menu-separator]]:mx-0 [&_[data-slot=dropdown-menu-separator]]:my-1","[&_[data-slot=dropdown-menu-separator]]:bg-border","[&_[data-slot=context-menu-item]]:focus:bg-accent [&_[data-slot=context-menu-item]]:focus:text-accent-foreground","[&_[data-slot=context-menu-sub-trigger]]:focus:bg-accent","[&_[data-slot=context-menu-sub-content]]:border-border [&_[data-slot=context-menu-sub-content]]:bg-popover"),a=(0,o.cn)(n,"min-w-[280px]"),i=(0,o.cn)("min-w-[240px] border-border bg-popover p-0 py-1.5 text-popover-foreground shadow-md","[&_[data-slot=dropdown-menu-label]]:text-muted-foreground","[&_[data-slot=dropdown-menu-item]]:text-popover-foreground","[&_[data-slot=dropdown-menu-item]]:focus:bg-accent [&_[data-slot=dropdown-menu-item]]:focus:text-accent-foreground","[&_[data-slot=dropdown-menu-sub-trigger]]:text-popover-foreground","[&_[data-slot=dropdown-menu-sub-trigger]]:focus:bg-accent","[&_[data-slot=dropdown-menu-sub-trigger]]:data-[state=open]:bg-accent","[&_[data-slot=context-menu-label]]:text-muted-foreground","[&_[data-slot=context-menu-item]]:text-popover-foreground","[&_[data-slot=context-menu-item]]:focus:bg-accent [&_[data-slot=context-menu-item]]:focus:text-accent-foreground","[&_[data-slot=context-menu-sub-trigger]]:text-popover-foreground","[&_[data-slot=context-menu-sub-trigger]]:focus:bg-accent","[&_[data-slot=context-menu-sub-trigger]]:data-[state=open]:bg-accent"),s=(0,o.cn)("mx-1 flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm text-popover-foreground","focus:bg-accent focus:text-accent-foreground"),d=(0,o.cn)("mx-1 cursor-pointer rounded-sm px-2 py-2 text-popover-foreground","focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent"),l=(0,o.cn)("mx-1 cursor-pointer px-3 py-2 text-sm text-popover-foreground focus:bg-accent focus:text-accent-foreground"),c="my-1.5 bg-border",u="border-border bg-mail-surface ring-offset-background hover:ring-muted-foreground focus-visible:ring-ring",m=(0,o.cn)("min-w-[180px] border-border bg-popover p-2 text-popover-foreground shadow-md"),f="text-muted-foreground hover:bg-accent hover:text-accent-foreground";(0,o.cn)("border border-border bg-mail-surface-elevated text-foreground shadow-xl"),(0,o.cn)("h-9 w-9 shrink-0 text-muted-foreground hover:bg-accent hover:text-accent-foreground");let p="dark:!text-white",g="min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-y-contain [scrollbar-gutter:stable] outline-none max-sm:pb-16 [scrollbar-color:color-mix(in_srgb,var(--muted-foreground)_55%,transparent)_transparent] [scrollbar-width:auto] [&::-webkit-scrollbar]:w-2.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/45",b="bg-gradient-to-b from-transparent via-mail-surface/90 to-mail-surface pt-3",h=(0,o.cn)("inline-flex shrink-0 items-center gap-2 whitespace-nowrap rounded-full border border-border","bg-mail-surface px-6 py-2.5 text-sm font-medium text-foreground shadow-sm","transition-shadow hover:bg-accent hover:shadow-md"),x=(0,o.cn)("mx-6 mb-4 rounded-xl border border-border bg-mail-invitation px-4 py-3 shadow-sm"),v="hover:bg-accent/60",y=(0,o.cn)("flex h-10 shrink-0 cursor-pointer items-center rounded-t-lg bg-muted px-3","dark:bg-[#2d2e30]"),w=(0,o.cn)("border-border bg-popover p-3 text-popover-foreground shadow-lg"),_="bg-accent text-accent-foreground",k=(0,o.cn)("flex h-7 w-7 items-center justify-center rounded text-muted-foreground transition-colors","hover:bg-accent hover:text-accent-foreground disabled:opacity-40"),j="bg-accent text-foreground",I="mx-0.5 h-5 w-px bg-border",R=(0,o.cn)("flex h-8 w-8 items-center justify-center rounded-full text-muted-foreground transition-colors","hover:bg-accent hover:text-accent-foreground"),Q="bg-accent text-foreground",T=(0,o.cn)("inline-flex h-9 items-center bg-primary text-primary-foreground","hover:bg-primary/90 hover:shadow-md transition-all"),E="ml-3 border-b border-border",z="bg-primary/10",L="hover:bg-accent",M=(0,o.cn)("inline-flex items-center gap-1 rounded-full bg-muted py-0.5 pl-0.5 pr-2 text-sm text-foreground","hover:bg-accent transition-colors"),F=(0,o.cn)("absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-primary","bg-primary/5");(0,o.cn)("pointer-events-auto size-9 shrink-0 rounded-full border border-border","bg-mail-surface/80 text-muted-foreground shadow-md backdrop-blur","hover:bg-accent hover:text-accent-foreground");let q="border border-border bg-popover text-popover-foreground shadow-md",S="",$=(0,o.cn)("relative box-border w-full max-w-full overflow-hidden rounded-xl border border-border","bg-mail-surface text-foreground shadow-md ring-1 ring-primary/15"),C=(0,o.cn)("size-4 min-h-4 min-w-4 shrink-0 border-[1.5px] border-mail-row-checkbox-border bg-transparent shadow-none","dark:bg-transparent focus-visible:ring-mail-row-checkbox-border/30","data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground"),N=(0,o.cn)(C,"rounded-full"),P=(0,o.cn)(C,"rounded-[2.5px]"),D="divide-y divide-mail-list-divider";(0,o.cn)("relative flex min-w-0 flex-1 items-center rounded-full border border-border","bg-mail-surface-elevated shadow-sm transition-shadow focus-within:shadow-md");let K="border-mail-border",A=(0,o.cn)("border-mail-list-chip-border bg-mail-list-chip-muted text-mail-list-chip-text"),U=(0,o.cn)("rounded-md border border-solid !border-mail-border bg-mail-surface-muted text-foreground shadow-none","focus-visible:!border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","dark:!border-mail-border dark:!bg-mail-surface-muted"),O=(0,o.cn)("size-4 border-[1.5px] border-mail-row-checkbox-border bg-mail-surface-muted shadow-none","dark:bg-mail-surface-muted","data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground","data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground"),Z=(0,o.cn)("bg-mail-surface-elevated/80 backdrop-blur-xl backdrop-saturate-150","supports-[backdrop-filter]:bg-mail-surface-elevated/65"),B=(0,o.cn)("absolute left-0 right-0 top-full z-50 mt-1 overflow-hidden rounded-lg border text-foreground shadow-lg",K,Z),Y=(0,o.cn)("absolute left-0 top-full z-50 mt-1 max-h-[80vh] overflow-y-auto rounded-lg border",K,"bg-mail-surface-elevated text-foreground shadow-lg","data-mail-search-advanced","sm:min-w-[34rem] sm:max-w-[min(42rem,calc(100vw-5rem))]","md:min-w-[38rem]","lg:right-0 lg:min-w-0 lg:max-w-none"),H=(0,o.cn)("z-[101] flex h-[100dvh] max-h-[100dvh] w-full flex-col gap-0 rounded-none border-0","bg-mail-surface text-foreground p-0 shadow-xl","duration-300 ease-out","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom","pb-[env(safe-area-inset-bottom)]","data-mail-mobile-search"),V=(0,o.cn)("max-sm:bg-app-canvas/80 max-sm:backdrop-blur-xl max-sm:backdrop-saturate-150 max-sm:supports-[backdrop-filter]:bg-app-canvas/65","sm:bg-transparent"),W="mail-sidebar-blur-surface",G="mail-sidebar-overlay-panel",X=(0,o.cn)("flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-full text-muted-foreground","outline-none hover:bg-accent/80 focus-visible:ring-2 focus-visible:ring-ring/50");function J(e){return(0,o.cn)("transition-colors",e.isSelected?"bg-mail-nav-selected text-mail-nav-selected font-medium":e.isOver?"bg-mail-nav-drop text-foreground":e.rowHoverHeld?"bg-mail-nav-hover text-foreground":e.hasUnread?"text-foreground hover:bg-mail-nav-hover":"text-muted-foreground hover:bg-mail-nav-hover",e.extra)}let ee="flex min-h-0 min-w-0 flex-1 flex-col px-1 pb-1 max-sm:px-0 max-sm:pb-0",et="flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl bg-mail-surface shadow-sm max-sm:rounded-none max-sm:shadow-none",er=(0,o.cn)("flex h-auto w-fit max-w-full flex-wrap gap-1.5","[&_[data-slot=tabs-trigger]]:flex-none"),eo=(0,o.cn)("mail-settings-card rounded-lg border border-mail-border bg-mail-surface shadow-sm","dark:bg-mail-surface-elevated dark:shadow-[0_1px_4px_rgba(0,0,0,0.35)]"),en=(0,o.cn)("mail-settings-masonry-section border-border px-0 py-5","lg:rounded-xl lg:border lg:border-mail-border lg:bg-mail-surface lg:px-5 lg:py-5 lg:shadow-sm","dark:lg:bg-mail-surface-elevated dark:lg:shadow-[0_1px_4px_rgba(0,0,0,0.35)]")},45328:(e,t,r)=>{r.d(t,{w:()=>y});var o=r(46298),n=r(22029),a=r(91025),i=r(31047),s=r(79060),d=r(63908);function l(e){let t=(0,s.UM)(e);return`lbl-${t||"libelle"}`}function c(e,t){let r=new Set,o=e=>{for(let t of e)r.add(t.label.toLowerCase()),t.children?.length&&o(t.children)};for(let n of(o(e),t))r.add(n.label.toLowerCase());return r}function u(e,t,r){return null===t?[...e,r]:e.map(e=>e.id===t?{...e,children:[...e.children??[],r]}:e.children?.length?{...e,children:u(e.children,t,r)}:e)}function m(e,t){let r=e,o=0;for(;t.has(r);)o+=1,r=`${e}-${o}`;return r}function f(e){let t=new Set([e.id]);if(e.children?.length)for(let r of e.children)for(let e of f(r))t.add(e);return t}function p(e,t,r){let o=function e(t,r){for(let o of t){if(o.id===r)return o;if(o.children?.length){let t=e(o.children,r);if(t)return t}}return null}(e,r);return!!o&&f(o).has(t)}function g(e,t,r=null){for(let o=0;o<e.length;o++){if(e[o].id===t)return{parentId:r,index:o};let n=e[o].children;if(n?.length){let r=g(n,t,e[o].id);if(r)return r}}return null}function b(e,t,r,o){let n=(0,s.KT)(e,t,r),a=n?.idMap??{};return n&&Object.keys(a).length>0?{tree:n.tree,navItemPrefs:v(o,a),idMap:a}:{tree:e,navItemPrefs:o,idMap:{}}}function h(e,t){for(let r=0;r<e.length;r++){let o=e[r];if(o.id===t)return{next:[...e.slice(0,r),...e.slice(r+1)],extracted:o};if(o.children?.length){let n=h(o.children,t);if(n.extracted)return{next:e.map((e,t)=>t===r?{...e,children:n.next}:e),extracted:n.extracted}}}return{next:e,extracted:null}}function x(e,t,r){return e.map(e=>e.id===t?{...e,...r}:e.children?.length?{...e,children:x(e.children,t,r)}:e)}function v(e,t){if(0===Object.keys(t).length)return e;let r={...e};for(let[e,o]of Object.entries(t)){let t=r[e];t&&(delete r[e],r[o]={...r[o],...t})}return r}let y=(0,o.v)()((0,n.Zr)((e,t)=>({folderTree:(0,i.BV)(),labelRows:(0,i.qj)(),navItemPrefs:{},setNavItemSidebarVisibility:(t,r)=>e(e=>({navItemPrefs:{...e.navItemPrefs,[t]:{...e.navItemPrefs[t],sidebar:r}}})),setNavItemMessageVisibility:(t,r)=>e(e=>({navItemPrefs:{...e.navItemPrefs,[t]:{...e.navItemPrefs[t],messages:r}}})),ensureLabelRowForLabelText:t=>{let r=t.trim();r&&e(e=>{if(c(e.folderTree,e.labelRows).has(r.toLowerCase()))return e;let t=new Set(e.labelRows.map(e=>e.id)),o=m(l(r),t),n=(0,i.Uo)({id:o,label:r,color:"bg-gray-500",tabbed:!1,favorite:!1,excludeFromPrincipal:!1,showInMessageList:!0,enabled:!0});return{labelRows:[...e.labelRows,n]}})},addLabelRowFromSidebar:e=>{t().ensureLabelRowForLabelText(e)},addFolder:(t,r)=>{let o=r.trim();o&&e(e=>{let r=(0,s.Mj)(e.folderTree,e.labelRows.map(e=>e.id),t,o);return{folderTree:u(e.folderTree,t,{id:r,label:o,color:"bg-slate-400"})}})},addSubfolder:(e,r)=>{t().addFolder(e,r)},updateFolderOrLabelColor:(t,r)=>e(e=>e.labelRows.some(e=>e.id===t)?{labelRows:e.labelRows.map(e=>e.id===t?{...e,color:r}:e)}:{folderTree:x(e.folderTree,t,{color:r})}),renameFolderOrLabel:(r,o)=>{let n=o.trim();if(!n)return{idMap:{},emailRename:null};let a=t(),c=(0,d.Es)(a.folderTree,a.labelRows)[r],u=c&&c!==n?{from:c,to:n}:null,f={};return e(e=>{let t=e.labelRows.some(e=>e.id===r),o=e.folderTree,a=e.labelRows,d=e.navItemPrefs;if(t)if((0,i.Y3)(r))a=e.labelRows.map(e=>e.id===r?{...e,label:n}:e);else{let t=new Set([...(0,s.y1)(e.folderTree),...e.labelRows.filter(e=>e.id!==r).map(e=>e.id)]),o=m(l(n),t),i=o!==r?{[r]:o}:{};a=e.labelRows.map(e=>e.id===r?{...e,id:o,label:n}:e),Object.keys(i).length>0&&(d=v(e.navItemPrefs,i),f=i)}else{o=x(e.folderTree,r,{label:n});let t=(0,s.KT)(o,r,e.labelRows.map(e=>e.id)),a=t?.idMap??{};t&&Object.keys(a).length>0&&(o=t.tree,d=v(e.navItemPrefs,a),f=a)}return{folderTree:o,labelRows:a,navItemPrefs:d}}),{idMap:f,emailRename:u}},removeFolderOrLabelRow:r=>{if((0,i.Y3)(r))return[];let o=t(),n=(0,d.Es)(o.folderTree,o.labelRows),a=o.labelRows.find(e=>e.id===r),s=[];if(a){let e=n[r];e&&(s=[e])}else{let e=h(o.folderTree,r);if(e.extracted){let t=new Set,r=e=>{t.add(e.label),e.children?.forEach(r)};r(e.extracted),s=[...t]}}return e(e=>{if(e.labelRows.find(e=>e.id===r))return{labelRows:e.labelRows.filter(e=>e.id!==r),navItemPrefs:Object.fromEntries(Object.entries(e.navItemPrefs).filter(([e])=>e!==r))};let t=h(e.folderTree,r);if(t.extracted){let r=f(t.extracted);return{folderTree:t.next,navItemPrefs:Object.fromEntries(Object.entries(e.navItemPrefs).filter(([e])=>!r.has(e)))}}return e}),s},moveFolder:(t,r)=>{let o={};return e(e=>{if(null!==r&&(r===t||p(e.folderTree,r,t)))return e;let n=h(e.folderTree,t);if(!n.extracted)return e;let a=n.next,i=b(a=u(a,r,n.extracted),n.extracted.id,e.labelRows.map(e=>e.id),e.navItemPrefs);return a=i.tree,o=i.idMap,{folderTree:a,navItemPrefs:i.navItemPrefs}}),o},reorderLabelRows:(t,r,o)=>{t===r||(0,i.Y3)(t)||(0,i.Y3)(r)||e(e=>{let n=e.labelRows.findIndex(e=>e.id===t),a=e.labelRows.findIndex(e=>e.id===r);if(n<0||a<0)return e;let i="before"===o?a:a+1;n<i&&(i-=1);let s=[...e.labelRows],[d]=s.splice(n,1);return s.splice(i,0,d),{labelRows:s}})},moveFolderRelative:(t,r,o)=>{let n={};return e(e=>{if(t===r||p(e.folderTree,r,t))return e;let a=g(e.folderTree,t),i=g(e.folderTree,r);if(!i)return e;let s=h(e.folderTree,t);if(!s.extracted)return e;let d=s.next,l=e.navItemPrefs;if("inside"===o){if(t===r)return e;d=u(d,r,s.extracted)}else{let e="before"===o?i.index:i.index+1;a&&a.parentId===i.parentId&&a.index<e&&(e-=1),d=function e(t,r,o,n){if(null===r){let e=[...t];return e.splice(Math.max(0,Math.min(o,e.length)),0,n),e}return t.map(t=>{if(t.id===r){let e=[...t.children??[]];return e.splice(Math.max(0,Math.min(o,e.length)),0,n),{...t,children:e}}return t.children?.length?{...t,children:e(t.children,r,o,n)}:t})}(d,i.parentId,e,s.extracted)}let c=b(d,s.extracted.id,e.labelRows.map(e=>e.id),l);return d=c.tree,l=c.navItemPrefs,n=c.idMap,{folderTree:d,navItemPrefs:l}}),n},addChildLabelRow:(t,r)=>{let o=r.trim();o&&e(e=>{let r=e.labelRows.find(e=>e.id===t);if(!r)return e;let n=`${r.label}/${o}`;if(c(e.folderTree,e.labelRows).has(n.toLowerCase()))return e;let a=new Set(e.labelRows.map(e=>e.id)),s=m(l(n),a);return{labelRows:[...e.labelRows,(0,i.Uo)({id:s,label:n,color:r.color??"bg-gray-500",tabbed:!1,favorite:!1,excludeFromPrincipal:!1,showInMessageList:!0,enabled:!0})]}})},setLabelRowEnabled:(t,r)=>e(e=>({labelRows:e.labelRows.map(e=>e.id===t?(0,i.Uo)({...e,enabled:r}):e)})),hydrateFolderTreeFromApi:t=>e({folderTree:t}),hydrateLabelRowsFromApi:t=>e(e=>{let r=e.labelRows.filter(e=>(0,i.Y3)(e.id)),o=new Set(t.map(e=>e.id));return{labelRows:[...r.filter(e=>!o.has(e.id)),...t.map(e=>(0,i.Uo)(e))]}}),getFolderIdToLabel:()=>{let e=t();return(0,d.Es)(e.folderTree,e.labelRows)},getEmailLabelToSidebarFolderId:()=>{let e=t(),r=(0,d.Es)(e.folderTree,e.labelRows);return(0,d.p4)(r)},getNavItemPrefs:e=>{let r=t().navItemPrefs[e];return{sidebar:r?.sidebar??"show",messages:r?.messages??"show"}}}),{name:"ultimail-nav-state",storage:a.$,version:2,migrate:(e,t)=>t<2&&e&&"object"==typeof e&&Array.isArray(e.labelRows)?{...e,labelRows:(0,i.Fv)(e.labelRows)}:e}))},51551:(e,t,r)=>{r.d(t,{M5:()=>x,SQ:()=>c,V0:()=>g,_2:()=>u,hO:()=>m,lp:()=>f,lv:()=>b,mB:()=>p,nV:()=>h,rI:()=>d,ty:()=>l});var o=r(4208);r(91356);var n=r(12805),a=r(35019),i=r(26159),s=r(58113);function d({...e}){return(0,o.jsx)(n.bL,{"data-slot":"dropdown-menu",...e})}function l({...e}){return(0,o.jsx)(n.l9,{"data-slot":"dropdown-menu-trigger",...e})}function c({className:e,sideOffset:t=4,...r}){return(0,o.jsx)(n.ZL,{children:(0,o.jsx)(n.UC,{"data-slot":"dropdown-menu-content",sideOffset:t,className:(0,s.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...r})})}function u({className:e,inset:t,variant:r="default",...a}){return(0,o.jsx)(n.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":r,className:(0,s.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}function m({className:e,children:t,checked:r,...i}){return(0,o.jsxs)(n.H_,{"data-slot":"dropdown-menu-checkbox-item",className:(0,s.cn)("focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),checked:r,...i,children:[(0,o.jsx)("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:(0,o.jsx)(n.VF,{children:(0,o.jsx)(a.A,{className:"size-4"})})}),t]})}function f({className:e,inset:t,...r}){return(0,o.jsx)(n.JU,{"data-slot":"dropdown-menu-label","data-inset":t,className:(0,s.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...r})}function p({className:e,...t}){return(0,o.jsx)(n.wv,{"data-slot":"dropdown-menu-separator",className:(0,s.cn)("bg-border -mx-1 my-1 h-px",e),...t})}function g({className:e,...t}){return(0,o.jsx)("span",{"data-slot":"dropdown-menu-shortcut",className:(0,s.cn)("text-muted-foreground ml-auto text-xs tracking-widest",e),...t})}function b({...e}){return(0,o.jsx)(n.Pb,{"data-slot":"dropdown-menu-sub",...e})}function h({className:e,inset:t,children:r,...a}){return(0,o.jsxs)(n.ZP,{"data-slot":"dropdown-menu-sub-trigger","data-inset":t,className:(0,s.cn)("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a,children:[r,(0,o.jsx)(i.A,{className:"ml-auto size-4"})]})}function x({className:e,...t}){return(0,o.jsx)(n.ZL,{children:(0,o.jsx)(n.G5,{"data-slot":"dropdown-menu-sub-content",className:(0,s.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[100] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",e),...t})})}},52002:(e,t,r)=>{r.d(t,{Z2:()=>d});var o=r(15234),n=r(94927);let a="mutations",i=null;function s(){return i||(i=(0,o.P2)("ultimail-offline-queue",1,{upgrade(e){e.createObjectStore(a,{keyPath:"id"})}})),i}async function d(e){let t=await s();await t.put(a,e)}async function l(){return(await s()).getAll(a)}async function c(e){let t=await s();await t.delete(a,e)}let u={send_message:{method:"post",path:()=>"/outbox"},update_flags:{method:"put",path:e=>`/messages/${e.message_id}/flags`},update_labels:{method:"put",path:e=>`/messages/${e.message_id}/labels`},delete_message:{method:"delete",path:e=>`/messages/${e.message_id}`},create_draft:{method:"post",path:()=>"/drafts"},update_draft:{method:"put",path:e=>`/drafts/${e.draft_id}`},schedule_send:{method:"post",path:()=>"/outbox/schedule"},delete_draft:{method:"delete",path:e=>`/drafts/${e.draft_id}`},create_contact:{method:"post",path:()=>"/contacts"},update_contact:{method:"put",path:e=>`/contacts/${e.uid}`},delete_contact:{method:"delete",path:e=>`/contacts/${e.uid}`}};async function m(){for(let e of(await l()).sort((e,t)=>e.timestamp-t.timestamp))try{let t=u[e.type],r=t.path(e.payload);switch(t.method){case"post":await n.uE.post(r,e.payload);break;case"put":await n.uE.put(r,e.payload);break;case"delete":await n.uE.delete(r)}await c(e.id)}catch{let t=await s();await t.put(a,{...e,retries:e.retries+1})}}window.addEventListener("online",()=>{m()})},55883:(e,t,r)=>{r.d(t,{AT:()=>B,Au:()=>P,BP:()=>E,Bu:()=>L,Dw:()=>q,GW:()=>ex,Io:()=>v,Iz:()=>V,MS:()=>eg,MZ:()=>U,Ml:()=>d,NC:()=>j,NS:()=>p,NY:()=>l,OL:()=>s,Op:()=>H,Ot:()=>eh,PP:()=>ec,Pe:()=>Q,Pq:()=>en,Qn:()=>k,Qo:()=>c,RJ:()=>I,Rd:()=>z,Se:()=>K,Th:()=>C,Tu:()=>ed,U1:()=>J,UM:()=>W,Um:()=>S,VC:()=>ef,VE:()=>ep,XF:()=>i,YS:()=>f,ZT:()=>$,_L:()=>x,_w:()=>A,au:()=>es,av:()=>m,ax:()=>em,c0:()=>F,cB:()=>ea,cI:()=>eu,cY:()=>G,dn:()=>D,ic:()=>X,js:()=>el,ko:()=>eo,lT:()=>_,mB:()=>Y,mI:()=>Z,mQ:()=>O,o7:()=>h,oW:()=>et,oz:()=>y,q$:()=>ei,qL:()=>N,rb:()=>w,sV:()=>g,uX:()=>ee,us:()=>R,vK:()=>u,vR:()=>eb,xk:()=>M,xu:()=>b,ys:()=>er,zA:()=>T});var o=r(58113),n=r(44410),a=r(30273);let i=(0,o.cn)(n.gS,"bg-mail-surface-elevated text-foreground"),s="bg-app-canvas text-foreground",d=(0,o.cn)("flex h-full w-60 shrink-0 flex-col border-r border-border bg-mail-surface","transition-transform duration-200 ease-out"),l=(0,o.cn)("flex h-14 w-full items-center gap-3 rounded-2xl bg-mail-surface px-4","shadow-md ring-1 ring-border transition-shadow hover:bg-accent hover:shadow-lg"),c="bg-mail-nav-selected font-medium text-mail-nav-selected",u="text-foreground hover:bg-mail-nav-hover",m="text-muted-foreground",f="text-muted-foreground",p="text-foreground",g=(0,o.cn)("flex h-10 w-full max-w-[720px] items-center gap-2 rounded-full border border-mail-border-subtle bg-mail-surface-muted px-3","shadow-sm transition-[border-color,box-shadow]","focus-within:border-mail-border focus-within:shadow-md sm:h-12 sm:gap-3 sm:px-4"),b="flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-muted-foreground",h="text-muted-foreground hover:bg-accent hover:text-foreground",x="grid items-center gap-2 border-b border-border py-1.5 text-sm font-medium text-muted-foreground",v="flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-full hover:bg-muted/60 -m-0.5",y="mb-2 flex h-10 items-center justify-between gap-2",w=(0,o.cn)("sticky top-0 z-10 -mx-3 bg-app-canvas px-3 sm:-mx-6 sm:px-6"),_=(0,o.cn)("grid w-full cursor-pointer items-center gap-2 border-b border-border py-2.5 text-left text-sm","text-foreground transition-colors hover:bg-accent/50"),k=(0,o.cn)("rounded border border-mail-border bg-mail-surface px-2 py-1 text-sm text-foreground outline-none","focus:border-ring focus:ring-1 focus:ring-ring"),j=(0,o.cn)("rounded-full bg-primary px-5 text-sm font-medium text-primary-foreground hover:bg-primary/90");(0,o.cn)("inline-flex h-9 items-center gap-2 rounded-full border border-border bg-mail-surface px-5","text-sm font-medium text-foreground transition-colors hover:bg-accent");let I="flex h-full flex-col bg-mail-surface text-foreground",R="flex h-12 shrink-0 items-center justify-between border-b border-border px-4",Q="flex h-12 shrink-0 items-center gap-2 border-b border-border px-4",T=a.Su,E="h-8 w-8 rounded-full text-muted-foreground",z="px-4 py-2 text-xs font-medium text-muted-foreground",L="px-4 py-1 text-xs font-medium uppercase text-muted-foreground",M="hover:bg-accent cursor-pointer",F=(0,o.cn)("flex w-full items-center gap-3 px-4 h-12",M),q="text-sm font-medium text-primary",S=(0,o.cn)("flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-muted-foreground"),$=(0,o.cn)("rounded-full bg-muted px-5 h-9 text-sm font-medium text-foreground","hover:bg-accent disabled:opacity-40 disabled:cursor-not-allowed transition-colors"),C=(0,o.cn)("inline-flex items-center gap-1 rounded-full border border-border bg-muted px-2.5 py-0.5 text-xs text-foreground"),N=(0,o.cn)("inline-flex items-center gap-1 rounded-full border border-border px-2.5 py-0.5 text-xs text-muted-foreground hover:bg-accent"),P="flex h-20 w-20 items-center justify-center rounded-full bg-muted text-muted-foreground",D="space-y-2 rounded-lg border border-mail-border p-3",K="border-t border-border",A="text-muted-foreground",U=(0,o.cn)("inline-flex h-9 items-center gap-2 rounded-full bg-primary/15 px-5 text-sm font-medium text-primary","transition-colors hover:bg-primary/25"),O=(0,o.cn)("flex h-9 w-9 items-center justify-center rounded-full border border-border text-muted-foreground hover:bg-accent"),Z=(0,o.cn)("peer h-[42px] w-full rounded border border-mail-border bg-mail-surface px-3 pt-4 pb-1 text-sm text-foreground outline-none transition-colors","focus:border-ring focus:ring-1 focus:ring-ring"),B=(0,o.cn)("peer w-full rounded border border-mail-border bg-mail-surface px-3 pt-5 pb-2 text-sm text-foreground outline-none transition-colors resize-none","focus:border-ring focus:ring-1 focus:ring-ring"),Y="pointer-events-none absolute left-3 bg-mail-surface transition-all duration-150",H=(0,o.cn)("!h-[42px] !min-h-[42px] w-full rounded border border-mail-border bg-mail-surface px-3 py-0 text-sm text-foreground shadow-none","data-[size=default]:!h-[42px] focus:border-ring focus:ring-1 focus:ring-ring"),V="flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm hover:bg-accent",W="h-10 w-10 rounded-full text-muted-foreground",G=(0,o.cn)($,"px-6 py-2.5"),X="text-2xl font-normal text-foreground",J="text-lg font-normal text-foreground";(0,o.cn)("font-normal",p);let ee=(0,o.cn)("min-w-0 rounded-xl border border-mail-border bg-mail-surface p-5 shadow-sm","dark:bg-mail-surface-elevated dark:shadow-[0_1px_4px_rgba(0,0,0,0.35)]"),et="flex flex-col gap-5",er=(0,o.cn)("animate-in fade-in-0 slide-in-from-bottom-4 duration-300 ease-out","motion-reduce:animate-none"),eo=(0,o.cn)("flex w-full flex-col items-center justify-center py-6"),en=(0,o.cn)("inline-flex max-w-full items-center gap-0.5 rounded-full border px-2 py-0.5 text-xs","border-mail-list-chip-border bg-mail-list-chip-muted text-mail-list-chip-text"),ea=(0,o.cn)("rounded-md border border-mail-border bg-mail-surface-muted/70 p-2","dark:border-mail-border dark:bg-mail-surface-muted"),ei=(0,o.cn)("flex items-center justify-between gap-2 rounded-md border border-mail-border bg-mail-surface-muted/50 px-2 py-1.5","dark:bg-mail-surface-muted"),es=(0,o.cn)("min-w-0 rounded-lg border border-mail-border-subtle bg-mail-surface-muted/40 p-2","dark:border-mail-border-subtle dark:bg-mail-surface-muted/70"),ed="text-sm font-medium text-primary hover:text-primary/80",el="flex h-28 w-28 items-center justify-center rounded-full bg-muted text-muted-foreground",ec="absolute -bottom-1 -right-1 flex h-8 w-8 items-center justify-center rounded-full bg-primary text-primary-foreground shadow",eu=(0,o.cn)("inline-flex items-center gap-1 rounded border border-border px-2 py-0.5 text-xs text-foreground"),em="mb-4 flex items-center justify-between rounded-lg bg-muted px-4 py-3",ef=(0,o.cn)("mb-6 flex items-start gap-4 rounded-xl border border-mail-border bg-mail-surface-muted p-5","dark:bg-mail-surface dark:border-mail-border"),ep="flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-primary/15",eg="rounded-full bg-primary/20 px-4 py-2 text-sm font-medium text-foreground",eb=(0,o.cn)("rounded-full bg-muted px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent"),eh=(0,o.cn)(k,"h-24 w-full rounded-lg px-3 py-2"),ex="flex-1 text-left text-sm font-medium text-foreground"},79060:(e,t,r)=>{function o(e){return e.trim().toLowerCase().normalize("NFD").replace(/\p{M}/gu,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"dossier"}function n(e,t,r=[]){for(let o of e){let e=[...r,o];if(o.id===t)return e;if(o.children?.length){let r=n(o.children,t,e);if(r)return r}}return null}function a(e){let t=[],r=e=>{for(let o of e)t.push(o.id),o.children?.length&&r(o.children)};return r(e),t}function i(e,t){let r=`folder-${e.join("-")}`;if(!t.has(r))return r;let o=2;for(;t.has(`${r}-${o}`);)o+=1;return`${r}-${o}`}function s(e,t,r,s){let d=new Set([...a(e),...t]);return i([...function(e,t){if(null===t)return[];let r=n(e,t);return r?r.map(e=>o(e.label)):[]}(e,r),o(s)],d)}function d(e,t,r){let s=n(e,t);if(!s)return null;let d=s[s.length-1],l=s.slice(0,-1).map(e=>o(e.label)),c=function e(t){let r=new Set([t.id]);if(t.children?.length)for(let o of t.children)for(let t of e(o))r.add(t);return r}(d),u=new Set([...r]);for(let t of a(e))c.has(t)||u.add(t);let m={},f=function e(t,r){let n=[...r,o(t.label)],a=i(n,u);u.add(a),a!==t.id&&(m[t.id]=a);let s=t.children?.length?t.children.map(t=>e(t,n)):void 0;return{...t,id:a,children:s}}(d,l);return{tree:function e(r){return r.map(r=>r.id===t?f:r.children?.length?{...r,children:e(r.children)}:r)}(e),idMap:m}}r.d(t,{KT:()=>d,Mj:()=>s,UM:()=>o,dG:()=>n,y1:()=>a})},80936:(e,t,r)=>{r.d(t,{D:()=>i});var o=r(91356),n=r(29491),a=r(10093);function i(e){let t=(0,n.ZB)(),r=e??t,i=(0,n.yr)(),{data:s,...d}=(0,n.PN)(r),l=(0,o.useMemo)(()=>(0,a.hR)(r??"",s),[r,s]),c=i.isLoading||!!r&&d.isLoading,u=i.isError||d.isError,m=i.error??d.error;return{contacts:l,bookId:r,...d,isLoading:c,isError:u,error:m,refetch:function(){i.refetch(),d.refetch()}}}},85569:(e,t,r)=>{r.d(t,{AM:()=>i,Wv:()=>s,hl:()=>d});var o=r(4208);r(91356);var n=r(80584),a=r(58113);function i({...e}){return(0,o.jsx)(n.bL,{"data-slot":"popover",...e})}function s({...e}){return(0,o.jsx)(n.l9,{"data-slot":"popover-trigger",...e})}function d({className:e,align:t="center",sideOffset:r=4,...i}){return(0,o.jsx)(n.ZL,{children:(0,o.jsx)(n.UC,{"data-slot":"popover-content",align:t,sideOffset:r,className:(0,a.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e),...i})})}},89342:(e,t,r)=>{r.d(t,{TR:()=>p,bq:()=>m,eb:()=>g,gC:()=>f,l6:()=>l,mi:()=>b,s3:()=>c,yv:()=>u});var o=r(4208);r(91356);var n=r(29477),a=r(9519),i=r(35019),s=r(30758),d=r(58113);function l({...e}){return(0,o.jsx)(n.bL,{"data-slot":"select",...e})}function c({...e}){return(0,o.jsx)(n.YJ,{"data-slot":"select-group",...e})}function u({...e}){return(0,o.jsx)(n.WT,{"data-slot":"select-value",...e})}function m({className:e,size:t="default",variant:r="default",children:i,...s}){return(0,o.jsxs)(n.l9,{"data-slot":"select-trigger","data-size":t,"data-variant":r,className:(0,d.cn)("data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit cursor-pointer items-center justify-between gap-2 rounded-md bg-transparent text-sm whitespace-nowrap transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","default"===r&&"border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 border px-3 py-2 shadow-xs focus-visible:ring-[3px]","ghost"===r&&"border-0 shadow-none hover:bg-transparent focus-visible:ring-0 dark:bg-transparent dark:hover:bg-transparent dark:data-[state=open]:bg-transparent",e),...s,children:[i,(0,o.jsx)(n.In,{asChild:!0,children:(0,o.jsx)(a.A,{className:"size-4 opacity-50"})})]})}function f({className:e,children:t,position:r="popper",...a}){return(0,o.jsx)(n.ZL,{children:(0,o.jsxs)(n.UC,{"data-slot":"select-content",className:(0,d.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...a,children:[(0,o.jsx)(h,{}),(0,o.jsx)(n.LM,{className:(0,d.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),(0,o.jsx)(x,{})]})})}function p({className:e,...t}){return(0,o.jsx)(n.JU,{"data-slot":"select-label",className:(0,d.cn)("text-muted-foreground px-2 py-1.5 text-xs",e),...t})}function g({className:e,children:t,...r}){return(0,o.jsxs)(n.q7,{"data-slot":"select-item",className:(0,d.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[(0,o.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,o.jsx)(n.VF,{children:(0,o.jsx)(i.A,{className:"size-4"})})}),(0,o.jsx)(n.p4,{children:t})]})}function b({className:e,...t}){return(0,o.jsx)(n.wv,{"data-slot":"select-separator",className:(0,d.cn)("bg-border pointer-events-none -mx-1 my-1 h-px",e),...t})}function h({className:e,...t}){return(0,o.jsx)(n.PP,{"data-slot":"select-scroll-up-button",className:(0,d.cn)("flex cursor-pointer items-center justify-center py-1",e),...t,children:(0,o.jsx)(s.A,{className:"size-4"})})}function x({className:e,...t}){return(0,o.jsx)(n.wn,{"data-slot":"select-scroll-down-button",className:(0,d.cn)("flex cursor-pointer items-center justify-center py-1",e),...t,children:(0,o.jsx)(a.A,{className:"size-4"})})}},95421:(e,t,r)=>{r.d(t,{FK:()=>w,HX:()=>y,KL:()=>M,Kq:()=>U,LX:()=>j,Lr:()=>R,M2:()=>T,OH:()=>b,Qn:()=>q,XW:()=>L,Y0:()=>N,aA:()=>A,f3:()=>P,fc:()=>_,kH:()=>k,l1:()=>O,l2:()=>F,lU:()=>K,oi:()=>C,r6:()=>I,rJ:()=>$,wP:()=>S,zH:()=>v});var o=r(91356),n=r(98306),a=r(57281),i=r(39927),s=r(17745),d=r(38584),l=r(94927),c=r(52002),u=r(9958),m=r(35724),f=r(80936);let p="ultimail-contact-discovery-scan-id";function g(e){e?localStorage.setItem(p,e):localStorage.removeItem(p)}function b(){return(0,n.I)({queryKey:["contact-discovery-counts"],queryFn:()=>l.uE.get("/contacts/discovery/counts"),staleTime:3e4})}let h=["contact-discovery-other","groups","infinite"],x=null;function v(e){return e?.pages?.length?(0,u.kv)(e.pages.flatMap(e=>e.groups??[])):[]}function y(e=!0,t=""){let r,o=t.trim();return(0,a.q)({queryKey:(r=o.trim())?[...h,r]:h,queryFn:async({pageParam:e})=>{let t="number"==typeof e?e:0,r=t>0&&!o?x?.length?{groups:x.slice(t,t+12),total:x.length,hasMore:t+12<x.length}:null:null;if(r)return{groups:(0,u.oi)(r.groups),total:r.total,hasMore:r.hasMore};let n=await l.uE.get("/contacts/discovery/other",{limit:String(12),offset:String(t),...o?{q:o}:{}}),a=(0,u.oi)((0,u.nc)(n));if(!("has_more"in n&&null!=n.has_more||"number"==typeof n.total)&&a.length>12)return x=a,{groups:a.slice(t,t+12),total:a.length,hasMore:t+12<a.length};x=null;let i=(0,u.fm)(n,{offset:t,pageSize:12});return{groups:(0,u.oi)(i.groups??[]),total:i.total,hasMore:i.hasMore}},initialPageParam:0,getNextPageParam:(e,t)=>{if(e?.hasMore)return t.reduce((e,t)=>e+(t.groups?.length??0),0)},staleTime:3e4,enabled:e,refetchInterval:e=>!!v(e.state.data).some(e=>e.profile?.enrichment_status==="enriching")&&2e3})}function w(){return(0,n.I)({queryKey:["contact-discovery-ignored"],queryFn:async()=>(await l.uE.get("/contacts/discovery/ignored")).profiles??[],staleTime:3e4})}function _(){return(0,n.I)({queryKey:["contact-discovery-blocked"],queryFn:async()=>(await l.uE.get("/contacts/discovery/blocked")).profiles??[],staleTime:3e4})}function k(){var e;let{contacts:t}=(0,f.D)(),r=(e="enrich",(0,n.I)({queryKey:["contact-discovery-suggestions",e],queryFn:async()=>(await l.uE.get("/contacts/discovery/suggestions",{type:"enrich"})).suggestions??[],staleTime:3e4})),a=(0,o.useMemo)(()=>(0,m.HU)(r.data??[],t),[r.data,t]);return{...r,suggestions:a}}function j(){return(0,n.I)({queryKey:["contact-discovery-scan-active"],queryFn:async()=>{let e=(await l.uE.get("/contacts/discovery/scan/active")).scan??null;return e&&("running"===e.status||"pending"===e.status)?g(e.id):e||g(null),e},refetchInterval:e=>{let t=e.state.data;return!!t&&("running"===t.status||"pending"===t.status)&&2e3},staleTime:0})}function I(){let e=(0,i.jE)();return(0,s.n)({mutationFn:async e=>{let t=e?`/contacts/discovery/scan?book_id=${encodeURIComponent(e)}`:"/contacts/discovery/scan";return l.uE.post(t)},onSuccess:t=>{g(t.id),e.setQueryData(["contact-discovery-scan-active"],t),e.invalidateQueries({queryKey:["contact-discovery-scan",t.id]}),e.invalidateQueries({queryKey:["contact-discovery-counts"]}),e.invalidateQueries({queryKey:["contact-discovery-other"]}),e.invalidateQueries({queryKey:["contact-discovery-ignored"]}),e.invalidateQueries({queryKey:["contact-discovery-blocked"]}),e.invalidateQueries({queryKey:["contact-discovery-suggestions"]})}})}function R(){let e=(0,i.jE)();return(0,s.n)({mutationFn:()=>l.uE.post("/contacts/discovery/scan/cancel"),onSuccess:()=>{g(null),e.setQueryData(["contact-discovery-scan-active"],null),e.invalidateQueries({queryKey:["contact-discovery-scan-active"]})}})}function Q(e,t){return!!(e.profile?.id===t||e.profile_ids?.includes(t))||(e.profiles?.some(e=>e.id===t)??!1)}function T(e){let t=new Set;for(let r of(e.primary_email&&t.add(e.primary_email.toLowerCase()),e.profiles??(e.profile?[e.profile]:[])))for(let e of(r.primary_email&&t.add(r.primary_email.toLowerCase()),r.all_emails??[]))e.email&&t.add(e.email.toLowerCase());return[...t]}function E(e,t){t&&(t.previous&&e.setQueryData(h,t.previous),t.previousCounts&&e.setQueryData(["contact-discovery-counts"],t.previousCounts),t.previousIgnored&&e.setQueryData(["contact-discovery-ignored"],t.previousIgnored),t.previousBlocked&&e.setQueryData(["contact-discovery-blocked"],t.previousBlocked))}function z(e,t){let r,o=e.getQueryData(h),n=e.getQueryData(["contact-discovery-counts"]),a=e.getQueryData(["contact-discovery-ignored"]),i=e.getQueryData(["contact-discovery-blocked"]),s=function(e,t){let r=e.getQueryData(h);if(r?.pages?.length){for(let e of r.pages)for(let r of e.groups??[])if(Q(r,t))return r}}(e,t);return r=!1,e.setQueryData(h,e=>{if(!e)return e;let o=!1,n=e.pages.map(e=>{let r=(e.groups??[]).filter(e=>!Q(e,t)||(o=!0,!1));return{...e,groups:r}});return o&&n[0]&&(r=!0,n[0]={...n[0],total:Math.max(0,n[0].total-1)}),{...e,pages:n}}),r&&(x&&(x=x.filter(e=>!Q(e,t))),e.setQueryData(["contact-discovery-counts"],e=>e?{...e,other_contacts:Math.max(0,e.other_contacts-1)}:e)),e.cancelQueries({queryKey:h}),{previous:o,previousCounts:n,previousIgnored:a,previousBlocked:i,removedGroup:s}}function L(){let e=(0,i.jE)();return(0,s.n)({mutationFn:async e=>{try{let t=await l.uE.post(`/contacts/discovery/profiles/${e.profileId}/add-to-book`,{book_id:e.bookId,contact:e.contact});return{created:t,contactUid:t.uid}}catch(o){if(!(o instanceof l.UQ)||404!==o.status&&405!==o.status)throw o;let t=await l.uE.post(`/contacts/books/${e.bookId}`,e.contact),r=t?.uid??e.contact.uid??"";return await l.uE.post(`/contacts/discovery/profiles/${e.profileId}/accept`,{contact_uid:r}),{created:{...e.contact,...t??{},uid:r},contactUid:r}}},onMutate:t=>z(e,t.profileId),onSuccess:(t,r)=>{t.created.uid&&(0,d.pl)(e,r.bookId,t.created)},onError:(t,r,o)=>{E(e,o),t instanceof l.M_&&(0,c.Z2)({id:crypto.randomUUID(),timestamp:Date.now(),type:"create_contact",payload:{bookId:r.bookId,...r.contact},retries:0})}})}function M(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/profiles/${e}/reject`),onMutate:t=>{let r,o,n,a,i,s=(r=e.getQueryData(["contact-discovery-ignored"]),o=e.getQueryData(["contact-discovery-blocked"]),n=e.getQueryData(["contact-discovery-counts"]),a=!1,i=!1,e.setQueryData(["contact-discovery-ignored"],e=>{if(!e)return e;let r=e.filter(e=>e.id!==t);return a=r.length!==e.length,r}),e.setQueryData(["contact-discovery-blocked"],e=>{if(!e)return e;let r=e.filter(e=>e.id!==t);return i=r.length!==e.length,r}),(a||i)&&e.setQueryData(["contact-discovery-counts"],e=>e?{...e,ignored:a?Math.max(0,e.ignored-1):e.ignored,blocked:i?Math.max(0,e.blocked-1):e.blocked}:e),{previousIgnored:r,previousBlocked:o,previousCounts:n});return e.cancelQueries({queryKey:["contact-discovery-ignored"]}),e.cancelQueries({queryKey:["contact-discovery-blocked"]}),s},onError:(t,r,o)=>{o&&(o.previousIgnored&&e.setQueryData(["contact-discovery-ignored"],o.previousIgnored),o.previousBlocked&&e.setQueryData(["contact-discovery-blocked"],o.previousBlocked),o.previousCounts&&e.setQueryData(["contact-discovery-counts"],o.previousCounts))}})}function F(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/profiles/${e}/ignore`),onMutate:t=>{var r;let o,n=z(e,t);return r=n.removedGroup,(o=r?.profile??r?.profiles?.[0])&&(e.setQueryData(["contact-discovery-ignored"],e=>{let t=e??[];return t.some(e=>e.id===o.id)?t:[{...o,status:"ignored"},...t]}),e.setQueryData(["contact-discovery-counts"],e=>e?{...e,ignored:e.ignored+1}:e)),n},onError:(t,r,o)=>{E(e,o)}})}function q(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/profiles/${e}/block`),onMutate:t=>{var r;let o,n=z(e,t);return r=n.removedGroup,(o=r?.profile??r?.profiles?.[0])&&(e.setQueryData(["contact-discovery-blocked"],e=>{let t=e??[];return t.some(e=>e.id===o.id)?t:[{...o,status:"blocked"},...t]}),e.setQueryData(["contact-discovery-counts"],e=>e?{...e,blocked:e.blocked+1}:e)),n},onError:(t,r,o)=>{E(e,o)}})}function S(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/profiles/${e}/enrich`),onMutate:async t=>{await e.cancelQueries({queryKey:h}),e.setQueryData(h,e=>e?{...e,pages:e.pages.map(e=>{var r;return{...e,groups:(r=e.groups??[],(r?r.map(e=>{if((e.profile?.id??e.profile_ids[0])!==t)return e;let r=e=>({...e,enrichment_status:"enriching"});return{...e,profile:e.profile?r(e.profile):e.profile,profiles:e.profiles?.map(r)}}):r)??e.groups??[])}})}:e)},onSettled:()=>{e.invalidateQueries({queryKey:["contact-discovery-other"]}),e.invalidateQueries({queryKey:["contact-discovery-suggestions"]}),e.invalidateQueries({queryKey:["contact-discovery-counts"]})}})}function $(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/suggestions/${e}/accept`),onSuccess:()=>{e.invalidateQueries({queryKey:["contact-discovery-counts"]}),e.invalidateQueries({queryKey:["contact-discovery-suggestions"]}),e.invalidateQueries({queryKey:["contacts"]})}})}function C(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.post(`/contacts/discovery/suggestions/${e}/reject`),onSuccess:()=>{e.invalidateQueries({queryKey:["contact-discovery-counts"]}),e.invalidateQueries({queryKey:["contact-discovery-suggestions"]})}})}function N(){return(0,n.I)({queryKey:["llm-settings"],queryFn:async()=>{var e;return{...e=await l.uE.get("/contacts/discovery/llm-settings"),default_provider_id:e.default_provider_id??"",providers:e.providers??[]}},staleTime:6e4})}function P(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.put("/contacts/discovery/llm-settings",e),onSuccess:()=>{e.invalidateQueries({queryKey:["llm-settings"]})}})}function D(e){return{...e,default_provider_id:e.default_provider_id??"",providers:e.providers??[]}}function K(){return(0,n.I)({queryKey:["search-settings"],queryFn:async()=>D(await l.uE.get("/contacts/discovery/search-settings")),staleTime:6e4})}function A(){let e=(0,i.jE)();return(0,s.n)({mutationFn:e=>l.uE.put("/contacts/discovery/search-settings",e),onSuccess:t=>{e.setQueryData(["search-settings"],D(t))}})}function U(e,t){let r=e.trim(),o=t.trim();return(0,n.I)({queryKey:["llm-models",r,o],queryFn:()=>l.uE.post("/contacts/discovery/llm-models/discover",{base_url:r,api_key:o||void 0}),enabled:r.length>0,staleTime:3e5,retry:!1})}function O(e){let t=function(e){switch(e){case"scanning_messages":return"Analyse des messages…";case"building_profiles":return"Construction des profils…";case"enriching":return"Enrichissement IA…";case"done":return"Termin\xe9";default:return"En attente…"}}(e.phase);if("enriching"===e.phase){let r=e.profiles_found,o=e.profiles_total;return o>0?`${t} ${r.toLocaleString("fr-FR")} / ${o.toLocaleString("fr-FR")} contacts`:t}if("building_profiles"===e.phase){let r=e.profiles_found,o=e.profiles_total;return o>0?`${t} ${r.toLocaleString("fr-FR")} / ${o.toLocaleString("fr-FR")} profils`:t}return"scanning_messages"===e.phase?e.total_messages>0?`${t} ${e.messages_scanned.toLocaleString("fr-FR")} / ${e.total_messages.toLocaleString("fr-FR")} messages`:`${t} ${e.messages_scanned.toLocaleString("fr-FR")} messages`:t}}}]); |