PageSourceSearch

https://loteclegacy.manus.space/assets/AdminContacts-CQdgVNlm.js

js loteclegacy.manus.space collected 2026-10-03 05:03:21 UTC 26,427 bytes, 8 lines download raw bytes

1import{c as Z,r,b as tt,t as C,j as t,D as at,d as et,e as st,X as U}from"./index-DvTE9yK0.js";import{u as nt,A as ct,F as O}from"./AdminLayout-Dh-gsMiD.js";import{u as ot}from"./useAuth-Bq718zeA.js";import{C as it,a as T,b as lt,c as M}from"./cms-ui-DWeCdmLd.js";import{P as rt}from"./PlacesAutocomplete-jTY2wDoS.js";import{u as F,A as k}from"./useAutocomplete-CFlDSH63.js";import{P as dt,T as mt}from"./trash-2-unb_C8-j.js";import{U as pt}from"./user-BuG_yqat.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const $=Z("Pen",[["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"}]]),xt=["Collector","Development Partner","Event Partner","Influencer / Press","Investor","Marketing Partner (Social/Products)","Network","Pro Driver","Museum","Brakes","Wheels","Interior","Logistics","Paint / Bodywork","Other"],gt={category:"",company:"",jobFunction:"",firstName:"",lastName:"",email:"",phone:"",location:"",comments:"",introBy:"",tags:""};function ut(e){const o=["BEGIN:VCARD","VERSION:3.0",`N:${e.lastName||""};${e.firstName||""};;;`,`FN:${[e.firstName,e.lastName].filter(Boolean).join(" ")}`];return e.company&&o.push(`ORG:${e.company}`),e.jobFunction&&o.push(`TITLE:${e.jobFunction}`),e.email&&o.push(`EMAIL:${e.email}`),e.phone&&o.push(`TEL:${e.phone}`),e.location&&o.push(`ADR:;;${e.location};;;;`),e.comments&&o.push(`NOTE:${e.comments}`),o.push("END:VCARD"),o.join(`\r
7`)}function I(e){const o=ut(e),d=new Blob([o],{type:"text/vcard"}),p=URL.createObjectURL(d),s=document.createElement("a");s.href=p,s.download=`${[e.firstName,e.lastName].filter(Boolean).join("_")||"contact"}.vcf`,s.click(),URL.revokeObjectURL(p)}function yt(e){const o=["Category","Company","Function","First Name","Last Name","Email","Phone","Location","Comments","Intro By","Tags"],d=e.map(i=>[i.category,i.company||"",i.jobFunction||"",i.firstName||"",i.lastName||"",i.email||"",i.phone||"",i.location||"",(i.comments||"").replace(/"/g,'""'),i.introBy||"",i.tags||""]),p=[o.join(","),...d.map(i=>i.map(u=>`"${u}"`).join(","))].join(`
8`),s=new Blob([p],{type:"text/csv"}),c=URL.createObjectURL(s),g=document.createElement("a");g.href=c,g.download=`lotec_contacts_${new Date().toISOString().slice(0,10)}.csv`,g.click(),URL.revokeObjectURL(c)}function ht({initial:e,onClose:o,onSave:d,isEditing:p}){const[s,c]=r.useState(e),g=r.useRef(s);r.useEffect(()=>{g.current=s},[s]);const i=F("contacts.company"),u=F("contacts.jobFunction"),A=F("contacts.introBy"),f=F("contacts.tags"),z=n=>{n.preventDefault(),d(s)},m={fontFamily:"var(--font-body)",fontSize:"0.82rem",background:"var(--cms-bg-input)",border:"1px solid var(--cms-border)",color:"var(--cms-text)",padding:"8px 12px",width:"100%"},x={fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-muted)",letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:"4px",display:"block"};return t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:202",className:"fixed inset-0 z-50 flex justify-end",style:{background:"var(--cms-bg-overlay)"},onClick:o,children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:207",className:"w-full max-w-md h-full overflow-y-auto",style:{background:"var(--cms-bg-elevated)",borderLeft:"1px solid var(--cms-border)"},onClick:n=>n.stopPropagation(),children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:213",className:"flex items-center justify-between px-6 py-4 sticky top-0 z-10",style:{background:"var(--cms-bg-elevated)",borderBottom:"1px solid var(--cms-border)"},children:[t.jsx("h3",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:217",className:"text-sm",style:{fontFamily:"var(--font-body)",color:"var(--cms-text)",fontWeight:500},children:p?"Edit Contact":"New Contact"}),t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:223",onClick:o,className:"p-1 hover:opacity-70",style:{color:"var(--cms-text-dim)"},children:t.jsx(U,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:224",size:16})})]}),t.jsxs("form",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:229",onSubmit:z,className:"p-6 space-y-4",children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:231",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:232",style:x,children:"Category *"}),t.jsxs("select",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:233",value:s.category,onChange:n=>c({...s,category:n.target.value}),style:{...m,cursor:"pointer"},required:!0,children:[t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:239",value:"",children:"Select category..."}),xt.map(n=>t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:241",value:n,children:n},n))]})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:247",className:"grid grid-cols-2 gap-3",children:[t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:248",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:249",style:x,children:"First Name"}),t.jsx("input",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:250",type:"text",value:s.firstName,onChange:n=>c({...s,firstName:n.target.value}),style:m,placeholder:"First name"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:258",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:259",style:x,children:"Last Name"}),t.jsx("input",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:260",type:"text",value:s.lastName,onChange:n=>c({...s,lastName:n.target.value}),style:m,placeholder:"Last name"})]})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:271",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:272",style:x,children:"Company"}),t.jsx(k,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:273",value:s.company,onChange:n=>c({...s,company:n}),suggestions:i,className:"px-3 py-2.5 text-sm",style:m,placeholder:"Company name"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:284",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:285",style:x,children:"Function / Role"}),t.jsx(k,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:286",value:s.jobFunction,onChange:n=>c({...s,jobFunction:n}),suggestions:u,className:"px-3 py-2.5 text-sm",style:m,placeholder:"e.g. CEO, Marketing Director"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:297",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:298",style:x,children:"Email"}),t.jsx("input",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:299",type:"email",value:s.email,onChange:n=>c({...s,email:n.target.value}),style:m,placeholder:"[email protected]"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:309",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:310",style:x,children:"Phone"}),t.jsx("input",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:311",type:"text",value:s.phone,onChange:n=>c({...s,phone:n.target.value}),style:m,placeholder:"+49 123 456789"})]}),t.jsx(rt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:321",label:"Location",value:null,onChange:n=>{n&&c({...g.current,location:n.address})},allowManual:!0,textValue:s.location,onTextChange:n=>c(w=>({...w,location:n})),placeholder:"City, Country"}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:337",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:338",style:x,children:"Intro By"}),t.jsx(k,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:339",value:s.introBy,onChange:n=>c({...s,introBy:n}),suggestions:A,className:"px-3 py-2.5 text-sm",style:m,placeholder:"Who introduced this contact?"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:350",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:351",
8style:x,children:"Tags"}),t.jsx(k,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:352",value:s.tags,onChange:n=>c({...s,tags:n}),suggestions:f,className:"px-3 py-2.5 text-sm",style:m,placeholder:"Comma-separated tags"})]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:363",children:[t.jsx("label",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:364",style:x,children:"Comments"}),t.jsx("textarea",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:365",value:s.comments,onChange:n=>c({...s,comments:n.target.value}),style:{...m,minHeight:"80px",resize:"vertical"},placeholder:"Additional notes..."})]}),t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:374",type:"submit",className:"w-full py-2.5 text-sm transition-opacity hover:opacity-90",style:{fontFamily:"var(--font-body)",background:"var(--cms-accent)",color:"#ffffff",border:"none",letterSpacing:"0.06em",fontWeight:500},children:p?"Update Contact":"Create Contact"})]})]})})}function Ct({contact:e,onClose:o,onEdit:d,onExportVCard:p}){const s=[e.firstName,e.lastName].filter(Boolean).join(" ")||"Unnamed";return t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:404",className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"var(--cms-bg-overlay)"},onClick:o,children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:409",className:"relative w-full max-w-lg mx-4 p-8 max-h-[80vh] overflow-y-auto",style:{background:"var(--cms-bg-elevated)",border:"1px solid var(--cms-border)"},onClick:c=>c.stopPropagation(),children:[t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:414",onClick:o,className:"absolute top-4 right-4 p-1 hover:opacity-70",style:{color:"var(--cms-text-dim)"},children:t.jsx(U,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:419",size:16})}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:423",className:"flex items-start gap-4 mb-6",children:[t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:424",className:"w-12 h-12 flex items-center justify-center flex-shrink-0",style:{background:"rgba(37,99,235,0.1)",border:"1px solid rgba(37,99,235,0.2)"},children:t.jsx(pt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:428",size:20,style:{color:"var(--cms-accent)"}})}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:430",children:[t.jsx("h3",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:431",className:"text-lg mb-1",style:{fontFamily:"var(--font-body)",color:"var(--cms-text)",fontWeight:500},children:s}),e.jobFunction&&t.jsx("p",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:438",style:{fontFamily:"var(--font-body)",fontSize:"0.82rem",color:"var(--cms-text-secondary)"},children:e.jobFunction}),e.company&&t.jsx("p",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:443",style:{fontFamily:"var(--font-body)",fontSize:"0.82rem",color:"var(--cms-text-muted)"},children:e.company})]})]}),t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:451",className:"space-y-3 mb-6",children:[{label:"Category",value:e.category},{label:"Email",value:e.email},{label:"Phone",value:e.phone},{label:"Location",value:e.location},{label:"Intro By",value:e.introBy},{label:"Tags",value:e.tags},{label:"Comments",value:e.comments}].filter(c=>c.value).map(c=>t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:463",className:"flex gap-4",children:[t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:464",className:"flex-shrink-0 w-20 text-right",style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-dim)",letterSpacing:"0.06em",textTransform:"uppercase",paddingTop:"2px"},children:c.label}),t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:477",style:{fontFamily:"var(--font-body)",fontSize:"0.85rem",color:"#C8C8C8",lineHeight:"1.5"},children:c.value})]},c.label))}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:492",className:"flex gap-3",children:[d&&t.jsxs("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:494",onClick:d,className:"flex items-center gap-2 px-4 py-2 text-xs transition-opacity hover:opacity-80",style:{fontFamily:"var(--font-body)",background:"rgba(37,99,235,0.1
8)",border:"1px solid rgba(37,99,235,0.3)",color:"var(--cms-accent)",letterSpacing:"0.06em"},children:[t.jsx($,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:505",size:12})," Edit"]}),t.jsxs("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:508",onClick:p,className:"flex items-center gap-2 px-4 py-2 text-xs transition-opacity hover:opacity-80",style:{fontFamily:"var(--font-body)",background:"var(--cms-bg-hover)",border:"1px solid var(--cms-border)",color:"var(--cms-text-secondary)",letterSpacing:"0.06em"},children:[t.jsx(O,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:519",size:12})," Export vCard"]})]})]})})}function vt({contact:e,onClose:o,onConfirm:d}){const p=[e.firstName,e.lastName].filter(Boolean).join(" ")||"this contact";return t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:535",className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"var(--cms-bg-overlay)"},onClick:o,children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:540",className:"w-full max-w-sm mx-4 p-6",style:{background:"var(--cms-bg-elevated)",border:"1px solid var(--cms-border)"},onClick:s=>s.stopPropagation(),children:[t.jsx("h3",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:545",className:"text-sm mb-3",style:{fontFamily:"var(--font-body)",color:"var(--cms-text)",fontWeight:500},children:"Delete Contact"}),t.jsxs("p",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:551",style:{fontFamily:"var(--font-body)",fontSize:"0.82rem",color:"var(--cms-text-secondary)",marginBottom:"16px"},children:["Are you sure you want to delete ",t.jsx("strong",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:552",style:{color:"var(--cms-text)"},children:p}),"? This action cannot be undone."]}),t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:554",className:"flex gap-3 justify-end",children:[t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:555",onClick:o,className:"px-4 py-2 text-xs",style:{fontFamily:"var(--font-body)",background:"transparent",border:"1px solid var(--cms-border)",color:"var(--cms-text-secondary)"},children:"Cancel"}),t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:567",onClick:d,className:"px-4 py-2 text-xs",style:{fontFamily:"var(--font-body)",background:"rgba(239,68,68,0.15)",border:"1px solid rgba(239,68,68,0.4)",color:"var(--cms-danger)"},children:"Delete"})]})]})})}function zt(){const{toast:e}=nt(),{hasAccess:o}=ot(),d=o("contacts","edit"),p=o("contacts","full"),[s,c]=r.useState(""),[g,i]=r.useState(""),[u,A]=r.useState(""),[f,z]=r.useState("lastName"),[m,x]=r.useState("asc"),[n,w]=r.useState(!1),[W,v]=r.useState(!1),[l,b]=r.useState(null),[N,S]=r.useState(null),[B,E]=r.useState(null),R=tt(),L=r.useMemo(()=>{const a=new URLSearchParams(R);return a.get("highlight")?Number(a.get("highlight")):null},[R]),D=r.useRef(!1),{data:h=[],isLoading:V}=C.contacts.list.useQuery({search:s||void 0,category:g||void 0,company:u||void 0,sortBy:f,sortDir:m});r.useEffect(()=>{if(D.current||!L||!h.length)return;const a=h.find(j=>j.id===L);a&&(S(a),D.current=!0)},[L,h]);const P=C.useUtils(),_=C.contacts.create.useMutation({onSuccess:()=>{P.contacts.list.invalidate(),v(!1),e("Contact created","success")},onError:a=>e(a.message,"error")}),G=C.contacts.update.useMutation({onSuccess:()=>{P.contacts.list.invalidate(),b(null),v(!1),e("Contact updated","success")},onError:a=>e(a.message,"error")}),H=C.contacts.delete.useMutation({onSuccess:()=>{P.contacts.list.invalidate(),E(null),e("Contact deleted","success")},onError:a=>e(a.message,"error")}),{data:Q=[]}=C.contacts.categories.useQuery(),{data:q=[]}=C.contacts.companies.useQuery(),X=a=>{_.mutate({category:a.category,company:a.company||void 0,jobFunction:a.jobFunction||void 0,firstName:a.firstName||void 0,lastName:a.lastName||void 0,email:a.email||void 0,phone:a.phone||void 0,location:a.location||void 0,comments:a.comments||void 0,introBy:a.introBy||void 0,tags:a.tags||void 0})},Y=a=>{l&&G.mutate({id:l.id,category:a.category,company:a.company||void 0,jobFunction:a.jobFunction||void 0,firstName:a.firstName||void 0,lastName:a.lastName||void 0,email:a.email||void 0,phone:a.phone||void 0,location:a.location||void 0,comments:a.comments||void 0,introBy:a.introBy||void 0,tags:a.tags||void 0})},J=a=>{f===a?x(m==="asc"?"desc":"asc"):(z(a),x("asc"))},K=({field:a})=>f!==a?null:m==="asc"?t.jsx(et,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:711",size:10}):t.jsx(st,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:711",size:10});return t.jsx(ct,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:715",children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:716",className:"px-6 py-8 max-w-[1440px]",children:[t.jsxs(it,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:718",title:"Contacts",subtitle:`${h.length} contact${h.length!==1?"s":""}`,children:[t.jsxs(T,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:719",variant:"secondary",onClick:()=>yt(h),children:[t.jsx(at,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:720",size:13})," CSV"]}),d&&t.jsxs(T,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:723",variant:"primary",onClick:()=>{b(null),v(!0)},children:[t.jsx(dt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:724",size:13})," ",t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:724",className:"hidden md:inline",children:"Add Contact"})]})]}),t.jsxs(lt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:730",search:s,onSearchChange:c,searchPlaceholder:"Search contacts...",showFilters:n,onToggleFilters:()=>w(!n),activeFilterCount:(g?1:0)+(u?1:0),children:[t.jsxs(M,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:738",value:g,onChange:a=>i(a.target.value),children:[t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:739",value:"",children:"All Categories"}),Q.map(a=>t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:741",value:a,children:a},a))]}),t.jsxs(M,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:744",value:u,onChange:a=>A(a.target.value),children:[t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:745",value:"",children:"All Companies"}),q.map(a=>t.jsx("option",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:747",value:a,children:a},a))]}),(g||u)&&t.jsx(T,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:751",variant:"danger",onClick:()=>{i(""),A("")},children:"Clear Filters"})]}),t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:758",className:"overflow-x-auto",style:{border:"1px solid var(--cms-border)"},children:t.jsxs("table",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:759",className:"w-full",style:{borderCollapse:"collapse"},children:[t.jsx("thead",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:760",children:t.jsxs("tr",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:761",style:{borderBottom:"1px solid var(--cms-border)"},children:[[{field:"lastName",label:"Name"},{field:"company",label:"Company"},{field:"category",label:"Category"}].map(({field:a,label:j})=>t.jsx("th",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:767",onClick:()=>J(a),className:"text-left px-4 py-3 cursor-pointer select-none",style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-dim)",letterSpacing:"0.1em",textTransform:"uppercase",fontWeight:500,background:"var(--cms-bg-surface)"},children:t.jsxs("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:781",className:"flex items-center gap-1",children:[j," ",t.jsx(K,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:782",field:a})]})},a)),t.jsx("th",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:786",className:"text-left px-4 py-3 hidden md:table-cell",style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-dim)",letterSpacing:"0.1em",textTransform:"uppercase",fontWeight:500,background:"var(--cms-bg-surface)"},children:"Contact"}),t.jsx("th",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:800",className:"text-left px-4 py-3 hidden lg:table-cell",style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-dim)",letterSpacing:"0.1em",textTransform:"uppercase",fontWeight:500,background:"var(--cms-bg-surface)"},children:"Location"}),t.jsx("th",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:814",className:"text-right px-4 py-3",style:{fontFamily:"var(--font-body)",fontSize:"0.7rem",color:"var(--cms-text-dim)",letterSpacing:"0.1em",textTransform:"uppercase",fontWeight:500,background:"var(--cms-bg-surface)"},children:"Actions"})]})}),t.jsx("tbody",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:830",children:V?t.jsx("tr",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:832",children:t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:833",colSpan:6,className:"text-center py-12",children:t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:834",style:{fontFamily:"var(--font-body)",color:"var(--cms-text-dim)",fontSize:"0.82rem"},children:"Loading contacts..."})})}):h.length===0?t.jsx("tr",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:840",children:t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:841",colSpan:6,className:"text-center py-12",children:t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:842",style:{fontFamily:"var(--font-body)",color:"var(--cms-text-dim)",fontSize:"0.82rem"},children:s||g||u?"No contacts match your filters":"No contacts yet"})})}):h.map(a=>
8{const j=[a.firstName,a.lastName].filter(Boolean).join(" ")||"—";return t.jsxs("tr",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:851",className:"group cursor-pointer transition-colors",style:{borderBottom:"1px solid var(--cms-border-subtle)"},onClick:()=>S(a),onMouseEnter:y=>y.currentTarget.style.background="var(--cms-bg-hover)",onMouseLeave:y=>y.currentTarget.style.background="transparent",children:[t.jsxs("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:859",className:"px-4 py-3",children:[t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:860",style:{fontFamily:"var(--font-body)",fontSize:"0.85rem",color:"var(--cms-text)",fontWeight:400},children:j}),a.jobFunction&&t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:866",style:{fontFamily:"var(--font-body)",fontSize:"0.72rem",color:"var(--cms-text-dim)",marginTop:"2px"},children:a.jobFunction})]}),t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:871",className:"px-4 py-3",children:t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:872",style:{fontFamily:"var(--font-body)",fontSize:"0.82rem",color:"var(--cms-text-secondary)"},children:a.company||"—"})}),t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:876",className:"px-4 py-3",children:t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:877",className:"inline-block px-2 py-0.5 text-xs",style:{fontFamily:"var(--font-body)",fontSize:"0.68rem",color:"var(--cms-accent)",background:"rgba(37,99,235,0.08)",border:"1px solid rgba(37,99,235,0.2)",letterSpacing:"0.04em"},children:a.category})}),t.jsxs("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:891",className:"px-4 py-3 hidden md:table-cell",children:[t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:892",style:{fontFamily:"var(--font-body)",fontSize:"0.78rem",color:"var(--cms-text-muted)"},children:a.email||"—"}),a.phone&&t.jsx("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:896",style:{fontFamily:"var(--font-body)",fontSize:"0.72rem",color:"var(--cms-text-dim)",marginTop:"1px"},children:a.phone})]}),t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:901",className:"px-4 py-3 hidden lg:table-cell",children:t.jsx("span",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:902",style:{fontFamily:"var(--font-body)",fontSize:"0.78rem",color:"var(--cms-text-muted)"},children:a.location||"—"})}),t.jsx("td",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:906",className:"px-4 py-3 text-right",children:t.jsxs("div",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:907",className:"flex items-center justify-end gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[d&&t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:909",onClick:y=>{y.stopPropagation(),b(a),v(!0)},className:"p-1.5 hover:opacity-70 transition-opacity",style:{color:"var(--cms-text-secondary)"},title:"Edit",children:t.jsx($,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:919",size:13})}),t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:922",onClick:y=>{y.stopPropagation(),I(a)},className:"p-1.5 hover:opacity-70 transition-opacity",style:{color:"var(--cms-text-secondary)"},title:"Export vCard",children:t.jsx(O,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:931",size:13})}),p&&t.jsx("button",{"data-loc":"client/src/pages/admin/AdminContacts.tsx:934",onClick:y=>{y.stopPropagation(),E(a)},className:"p-1.5 hover:opacity-70 transition-opacity",style:{color:"var(--cms-danger)"},title:"Delete",children:t.jsx(mt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:943",size:13})})]})})]},a.id)})})]})}),W&&t.jsx(ht,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:958",initial:l?{category:l.category,company:l.company||"",jobFunction:l.jobFunction||"",firstName:l.firstName||"",lastName:l.lastName||"",email:l.email||"",phone:l.phone||"",location:l.location||"",comments:l.comments||"",introBy:l.introBy||"",tags:l.tags||""}:gt,onClose:()=>{v(!1),b(null)},onSave:l?Y:X,isEditing:!!l}),N&&t.jsx(Ct,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:983",contact:N,onClose:()=>S(null),onEdit:d?()=>{b(N),S(null),v(!0)}:void 0,onExportVCard:()=>I(N)}),B&&t.jsx(vt,{"data-loc":"client/src/pages/admin/AdminContacts.tsx:996",contact:B,onClose:()=>E(null),onConfirm:()=>H.mutate({id:B.id})})]})})}export{zt as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.