PageSourceSearch

https://www.bikely.com/assets/ServicePartners-DwjSB_4r.js

js bikely.com collected 2026-09-24 21:44:17 UTC 20,698 bytes, 6 lines download raw bytes

1import{h as Ce,u as be,v as ke,r as f,w as I,i as p,j as e,B as m,I as N,X as se,c as O,M as te,k}from"./index-DjksVMao.js";import{u as Se}from"./useMutation-DL-yJtpX.js";import{S as Pe}from"./sidebar-CB41NnSr.js";import{D as Le}from"./DashboardSidebar-hceVVS02.js";import{D as De}from"./DashboardHeader-CKqMmmWJ.js";import{B as y}from"./badge-CLyg41lx.js";import{L as d}from"./label-Dtj173BV.js";import{T as Ie}from"./textarea-H_lS36rr.js";import{S as q}from"./switch-qL7QYMA_.js";import{T as qe,a as Te,b as T,c as w,d as Me,e as j}from"./table-Cbh7EybQ.js";import{D as ae,a as ne,b as re,c as ie,d as Ee}from"./dialog-i51Xsgr9.js";import{u as Fe}from"./useAdminAuth-BWkIIfto.js";import{P as He}from"./plus-Btme3xFR.js";import{S as Be}from"./search-966zR0vp.js";import{B as Q}from"./bell-Cc5B6xzh.js";import{U as R}from"./useUnreadCount-sLjHIwRC.js";import{P as A}from"./phone-fHSoAAVb.js";import{S as Ke}from"./save-BTO4UpXh.js";import{P as le}from"./pencil-6ruSASNg.js";import{M as $e}from"./map-pin-vQVCCg7E.js";import{C as ce}from"./circle-check-Qa0O5bGm.js";import{S as U}from"./send-CyjiuETa.js";import{L as ze}from"./log-in-CVCoaV5I.js";import{C as Oe}from"./clock-BBcFUGxP.js";import{K as Qe}from"./key-round-CKJpt21X.js";import{f as Re}from"./format-CiyX_6_u.js";import"./separator-BETR5lYb.js";import"./index-DPnb86gR.js";import"./skeleton-E9e5T2se.js";import"./collapsible-tBV33XsF.js";import"./index-C9_Dp6eK.js";import"./PortalLanguageToggle-GktpjSP1.js";import"./scroll-text-B3JB2s7A.js";import"./chart-column-Cy9_AujX.js";import"./receipt-Bk_Uy7Rj.js";import"./inbox-DzvQJKCA.js";import"./factory-9lRXy-MQ.js";import"./headset-D3IPH8-V.js";import"./users-DB9yqess.js";import"./building-BCNhnuUu.js";import"./message-square-31bEJMkU.js";import"./ticket-BJ54OhB3.js";import"./clipboard-list-BZO_511S.js";import"./package-8KqGUDDp.js";import"./megaphone-jBxZ_VP3.js";import"./life-buoy-jytvRceF.js";import"./trending-up-DbiYQNnh.js";import"./sparkles-B-3AEzpW.js";import"./bot-BBPuK_-N.js";import"./settings-IFNetgS7.js";import"./activity-tixBJfQL.js";import"./external-link-DY6_qyiR.js";import"./bike-BDuR1bEN.js";import"./dropdown-menu-zP9PaaEw.js";import"./index-nfE3GkAC.js";import"./user-CsR_wiz0.js";import"./auth-DlDMTZ6Q.js";import"./en-US-B88RHSTh.js";/**
2 * @license lucide-react v0.462.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 X=Ce("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]),M={name:"",email:"",phone:"",notify_on_tickets:!1,notify_sms:!1},oe={partner_name:"",region:"",notes:"",is_active:!0,contacts:[{...M}]};function Js(){const{t:E}=be(),t=(s,a)=>E(`portal.admin.servicePartnersPage.${s}`,a),{user:_}=Fe(),J=ke(),[F,me]=f.useState(""),[V,de]=f.useState(!1),[n,S]=f.useState(null),[xe,g]=f.useState(!1),[C,P]=f.useState(!1),[o,x]=f.useState(oe),[c,L]=f.useState(null),[H,W]=f.useState(!1),{data:Y=[],isLoading:he}=I({queryKey:["service-partners"],queryFn:async()=>{const{data:s,error:a}=await p.from("service_partners").select("*").order("name",{ascending:!0});if(a)throw a;return s},enabled:!!_}),{data:pe=[]}=I({queryKey:["service-partner-contacts"],queryFn:async()=>{const{data:s,error:a}=await p.from("service_partner_contacts").select("*").order("created_at",{ascending:!0});if(a)throw a;return s},enabled:!!_}),v=Y.filter(s=>!V&&!s.is_active?!1:!F||[s.name,s.contact_person,s.phone,s.email,s.region].filter(Boolean).some(a=>a.toLowerCase().includes(F.toLowerCase()))),{data:Z={}}=I({queryKey:["service-partner-location-counts"],queryFn:async()=>{const{data:s,error:a}=await p.from("locations").select("service_partner_id").not("service_partner_id","is",null);if(a)throw a;const r={};return s.forEach(i=>{i.service_partner_id&&(r[i.service_partner_id]=(r[i.service_partner_id]||0)+1)}),r},enabled:!!_}),{data:B=[],isLoading:ue}=I({queryKey:["partner-login-history",n==null?void 0:n.id],queryFn:async()=>
6{if(!n)return[];const{data:s,error:a}=await p.from("partner_login_history").select("*").eq("partner_id",n.id).order("logged_in_at",{ascending:!1}).limit(20);if(a)throw a;return s},enabled:!!n}),D=s=>pe.filter(a=>a.service_partner_id===s),fe=s=>{const a=D(s);if(a.length===0)return"—";const r=a[0],i=a.length>1?` +${a.length-1}`:"";return r.name+i},je=s=>{S(s),g(!1),P(!1)},ge=()=>{S(null),x(oe),g(!0),P(!0)},K=()=>{if(!n)return;const s=D(n.id).map(a=>({id:a.id,name:a.name,email:a.email||"",phone:a.phone||"",notify_on_tickets:a.notify_on_tickets,notify_sms:a.notify_sms??!1}));x({partner_name:n.name,region:n.region||"",notes:n.notes||"",is_active:n.is_active,contacts:s.length>0?s:[{...M}]}),g(!0)},$=Se({mutationFn:async s=>{const a=s.contacts.find(l=>l.name.trim()),r={name:s.partner_name,contact_person:(a==null?void 0:a.name)||null,phone:(a==null?void 0:a.phone)||null,email:(a==null?void 0:a.email)||null,region:s.region||null,notes:s.notes||null,is_active:s.is_active};let i;if(n){const{error:l}=await p.from("service_partners").update(r).eq("id",n.id);if(l)throw l;i=n.id}else{const{data:l,error:h}=await p.from("service_partners").insert(r).select("id").single();if(h)throw h;i=l.id}if(n){const{error:l}=await p.from("service_partner_contacts").delete().eq("service_partner_id",i);if(l)throw l}const u=s.contacts.filter(l=>l.name.trim());if(u.length>0){const{error:l}=await p.from("service_partner_contacts").insert(u.map(h=>({service_partner_id:i,name:h.name.trim(),email:h.email.trim()||null,phone:h.phone.trim()||null,notify_on_tickets:h.notify_on_tickets,notify_sms:h.notify_sms&&!!h.phone.trim()})));if(l)throw l}return i},onSuccess:s=>{if(J.invalidateQueries({queryKey:["service-partners"]}),J.invalidateQueries({queryKey:["service-partner-contacts"]}),k.success(t(n?"partnerUpdated":"partnerCreated")),g(!1),C)P(!1);else if(n){const a={...n,name:o.partner_name,region:o.region||null,notes:o.notes||null,is_active:o.is_active};S(a)}},onError:s=>k.error(s.message)}),ve=s=>{if(s.preventDefault(),!o.partner_name.trim()){k.error(t("nameRequired"));return}$.mutate(o)},b=(s,a,r)=>{x(i=>({...i,contacts:i.contacts.map((u,l)=>l===s?{...u,[a]:r}:u)}))},Ne=()=>{x(s=>({...s,contacts:[...s.contacts,{...M}]}))},ye=s=>{x(a=>({...a,contacts:a.contacts.length>1?a.contacts.filter((r,i)=>i!==s):a.contacts}))},we=async()=>{if(!(!c||!n)){W(!0);try{const{data:s,error:a}=await p.functions.invoke("send-partner-invite",{body:{contact_email:c.email.trim(),partner_name:n.name,contact_name:c.name}});if(a)throw a;if(s!=null&&s.error)throw new Error(s.error);k.success(t("inviteSent",{email:c.email})),L(null)}
6catch(s){k.error(s.message||t("inviteFailed"))}finally{W(!1)}}},_e=!!n||C,ee=()=>{S(null),g(!1),P(!1)},z=n?D(n.id):[];return e.jsxs(Pe,{children:[e.jsxs("div",{className:"min-h-screen flex w-full bg-background",children:[e.jsx(Le,{}),e.jsxs("div",{className:"flex-1 flex flex-col",children:[e.jsx(De,{title:t("title"),subtitle:t("subtitle")}),e.jsxs("main",{className:"flex-1 p-6 space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-medium text-foreground",children:t("title")}),e.jsxs("p",{className:"text-muted-foreground",children:[v.length," ",v.length===1?t("partnerCount",{count:v.length}):t("partnerCount_plural",{count:v.length})]})]}),e.jsxs(m,{onClick:ge,children:[e.jsx(He,{className:"w-4 h-4 mr-2"}),t("addPartner")]})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"relative max-w-sm flex-1",children:[e.jsx(Be,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(N,{placeholder:t("searchPlaceholder"),value:F,onChange:s=>me(s.target.value),className:"pl-9"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{checked:V,onCheckedChange:de,id:"show-inactive-partners"}),e.jsx(d,{htmlFor:"show-inactive-partners",className:"text-sm text-muted-foreground cursor-pointer whitespace-nowrap",children:t("showInactive")})]})]}),e.jsx("div",{className:"border rounded-lg",children:e.jsxs(qe,{children:[e.jsx(Te,{children:e.jsxs(T,{children:[e.jsx(w,{children:t("name")}),e.jsx(w,{children:t("contacts")}),e.jsx(w,{children:t("email")}),e.jsx(w,{children:t("region")}),e.jsx(w,{className:"text-center",children:t("locations")}),e.jsx(w,{children:t("status")})]})}),e.jsx(Me,{children:he?e.jsx(T,{children:e.jsx(j,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:t("loading")})}):v.length===0?e.jsx(T,{children:e.jsx(j,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:Y.length===0?t("noPartners"):t("noMatch")})}):v.map(s=>{const r=D(s.id).filter(i=>i.notify_on_tickets).length;return e.jsxs(T,{className:"cursor-pointer",onClick:()=>je(s),children:[e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(X,{className:"w-4 h-4 text-muted-foreground shrink-0"}),e.jsxs("div",{children:[e.jsx("span",{className:"font-medium text-sm",children:s.name}),!s.is_active&&e.jsx(y,{variant:"outline",className:"ml-2 text-[10px] px-1.5 py-0 text-muted-foreground",children:t("inactive")})]})]})}),e.jsx(j,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm",children:fe(s.id)}),r>0&&e.jsx("span",{title:`${r} contact(s) receive ticket notifications`,children:e.jsx(Q,{className:"w-3 h-3 text-primary"})})]})}),e.jsx(j,{className:"text-sm",children:s.email||"—"}),e.jsx(j,{className:"text-sm",children:s.region||"—"}),e.jsx(j,{className:"text-center font-mono text-sm",children:Z[s.id]||0}),e.jsx(j,{children:e.jsx(y,{variant:s.is_active?"default":"secondary",className:"text-xs",children:s.is_active?t("active"):t("inactive")})})]},s.id)})})]})})]})]})]}),e.jsx(ae,{open:_e,onOpenChange:s=>{s||ee()},children:e.jsxs(ne,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(re,{children:[e.jsxs(ie,{className:"flex items-center gap-2",children:[e.jsx(X,{className:"w-5 h-5"}),C?t("addPartnerTitle"):n==null?void 0:n.name]}),e.jsx(Ee,{children:C?t("addDescription"):n?`${Z[n.id]||0} ${t("locations").toLowerCase()} · ${z.length} ${t("contacts").toLowerCase()}`:""})]}),xe?e.jsxs("form",{onSubmit:ve,className:"space-y-5",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{children:[t("companyName")," *"]}),e.jsx(N,{value:o.partner_name,onChange:s=>x(a=>({...a,partner_name:s.target.value}))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{children:t("region")}),e.jsx(N,{value:o.region,onChange:s=>x(a=>({...a,region:s.target.value}))})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(d,{className:"text-base font-semibold",children:t("contactPersons")}),e.jsxs(m,{type:"button",variant:"outline",size:"sm",onClick:Ne,className:"gap-1",children:[e.jsx(R,{className:"w-3.5 h-3.5"})," ",t("addContact")]})]}),e.jsx("div",{className:"space-y-3",children:o.contacts.map((s,a)=>e.jsxs("div",{className:"border rounded-lg p-3 space-y-3 bg-muted/30 relative",children:[o.contacts.length>1&&e.jsx(m,{type:"button",variant:"ghost",size:"icon",className:"absolute top-2 right-2 h-6 w-6 text-muted-foreground hover:text-destructive",onClick:()=>ye(a),children:e.jsx(se,{className:"w-3.5 h-3.5"})}),e.jsxs("div",{className:"grid grid-cols-3 gap-3 pr-8",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(d,{className:"text-xs text-muted-foreground",children:t("contactName")}
6),e.jsx(N,{value:s.name,onChange:r=>b(a,"name",r.target.value),placeholder:t("contactNamePlaceholder"),className:"h-9 text-sm"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(d,{className:"text-xs text-muted-foreground",children:t("contactEmail")}),e.jsx(N,{type:"email",value:s.email,onChange:r=>b(a,"email",r.target.value),placeholder:t("contactEmailPlaceholder"),className:"h-9 text-sm"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(d,{className:"text-xs text-muted-foreground",children:t("contactPhone")}),e.jsx(N,{value:s.phone,onChange:r=>b(a,"phone",r.target.value),placeholder:t("contactPhonePlaceholder"),className:"h-9 text-sm"})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{checked:s.notify_on_tickets,onCheckedChange:r=>b(a,"notify_on_tickets",r),className:"scale-90"}),e.jsxs(d,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Q,{className:"w-3 h-3"})," ",t("notifyOnTickets")]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{checked:s.notify_sms&&!!s.phone.trim(),disabled:!s.phone.trim(),onCheckedChange:r=>b(a,"notify_sms",r),className:"scale-90"}),e.jsxs(d,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(A,{className:"w-3 h-3"})," ",t("notifySms")]}),!s.phone.trim()&&e.jsx("span",{className:"text-[11px] text-muted-foreground",children:t("smsNoPhone")})]})]})]},a))})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{children:t("notes")}),e.jsx(Ie,{value:o.notes,onChange:s=>x(a=>({...a,notes:s.target.value})),rows:3})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(q,{checked:o.is_active,onCheckedChange:s=>x(a=>({...a,is_active:s}))}),e.jsxs("div",{children:[e.jsx(d,{className:"text-sm",children:t("active")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("deactivateHint")})]})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(m,{type:"button",variant:"ghost",onClick:()=>C?ee():g(!1),children:[e.jsx(se,{className:"w-3.5 h-3.5 mr-1"}),t("cancel")]}),e.jsxs(m,{type:"submit",disabled:$.isPending,children:[$.isPending&&e.jsx(O,{className:"w-4 h-4 mr-2 animate-spin"}),e.jsx(Ke,{className:"w-3.5 h-3.5 mr-1.5"}),t(n?"saveChanges":"createPartner")]})]})]}):n&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h3",{className:"text-sm font-medium text-foreground flex items-center gap-2",children:[e.jsx(X,{className:"w-4 h-4"}),t("contactInformation")]}),e.jsxs(m,{size:"sm",variant:"outline",onClick:K,children:[e.jsx(le,{className:"w-3.5 h-3.5 mr-1.5"}),t("edit")]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[e.jsx(G,{icon:e.jsx(te,{className:"w-3.5 h-3.5"}),label:t("email"),value:n.email}),e.jsx(G,{icon:e.jsx(A,{className:"w-3.5 h-3.5"}),label:t("phone"),value:n.phone}),e.jsx(G,{icon:e.jsx($e,{className:"w-3.5 h-3.5"}),label:t("region"),value:n.region}),n.notes&&e.jsxs("div",{className:"col-span-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-0.5",children:t("notes")}),e.jsx("p",{className:"text-foreground",children:n.notes})]})]})]}),e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h3",{className:"text-sm font-medium text-foreground flex items-center gap-2",children:[e.jsx(R,{className:"w-4 h-4"}),t("contactPersons")]}),e.jsxs(m,{size:"sm",variant:"outline",onClick:()=>{K(),x(s=>({...s,contacts:[...s.contacts,{...M}]}))},children:[e.jsx(R,{className:"w-3.5 h-3.5 mr-1.5"}),t("addContact")]})]}),z.length>0?e.jsx("div",{className:"space-y-2",children:z.map(s=>{const a=B.find(r=>{var i,u;return((i=r.user_email)==null?void 0:i.toLowerCase())===((u=s.email)==null?void 0:u.toLowerCase())});return e.jsx("div",{className:"border rounded px-3 py-2 text-sm space-y-2",children:e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0 flex-1 grid grid-cols-1 sm:grid-cols-3 gap-1 sm:gap-2",children:[e.jsx("span",{className:"font-medium truncate",children:s.name}),e.jsx("span",{className:"text-muted-foreground truncate",children:s.email||"—"}),e.jsx("span",{className:"text-muted-foreground truncate",children:s.phone||"—"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1 shrink-0",children:[s.notify_on_tickets&&e.jsxs(y,{variant:"outline",className:"text-xs gap-1",children:[e.jsx(Q,{className:"w-3 h-3"})," ",t("notifyBadge")]}),s.notify_sms&&s.phone&&e.jsxs(y,{variant:"outline",className:"text-xs gap-1 text-primary border-primary/30",children:[e.jsx(A,{className:"w-3 h-3"})," ",t("smsBadge")]}),e.jsxs(m,{size:"sm",variant:"ghost",className:"h-6 text-xs gap-1 px-2",onClick:K,title:t("editContact"),children:[e.jsx(le,{className:"w-3 h-3"}),t("edit")]}),a&&e.jsxs(y,{variant:"outline",className:"text-xs gap-1 text-primary border-primary/30",children:[e.jsx(ce,{className:"w-3 h-3"}),t("portalAccessBadge")]}),s.email&&e.jsxs(m,{size:"sm",variant:"outline",className:"h-6 text-xs gap-1 px-2",onClick:()=>L({name:s.name,email:s.email}),children:[e.jsx(U,{className:"w-3 h-3"}
6),t("inviteToPortal")]})]})]})},s.id)})}):e.jsx("p",{className:"text-sm text-muted-foreground",children:t("noContacts")})]}),e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("h3",{className:"text-sm font-medium text-foreground flex items-center gap-2",children:[e.jsx(ze,{className:"w-4 h-4"}),t("portalLoginHistory")]}),ue?e.jsx("div",{className:"flex justify-center py-4",children:e.jsx(O,{className:"w-4 h-4 animate-spin text-muted-foreground"})}):B.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:t("noLogins")}):e.jsx("div",{className:"border rounded-lg divide-y max-h-48 overflow-y-auto",children:B.map(s=>e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(Oe,{className:"w-3.5 h-3.5 text-muted-foreground shrink-0"}),e.jsx("span",{className:"truncate text-foreground",children:s.user_email})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0 ml-3",children:[e.jsx(y,{variant:"outline",className:"text-[10px] px-1.5 py-0",children:s.login_method==="pin"?t("loginMethodPin"):s.login_method==="magic_link"?t("loginMethodMagicLink"):s.login_method}),e.jsx("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:Re(new Date(s.logged_in_at),"dd.MM.yyyy HH:mm")})]})]},s.id))})]})]})]})}),e.jsx(ae,{open:!!c,onOpenChange:s=>{s||L(null)},children:e.jsxs(ne,{className:"max-w-md",children:[e.jsx(re,{children:e.jsxs(ie,{className:"flex items-center gap-2",children:[e.jsx(U,{className:"w-5 h-5 text-primary"}),t("inviteConfirmTitle")]})}),e.jsxs("div",{className:"space-y-4 py-2",children:[e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary shrink-0 mt-0.5",children:e.jsx(te,{className:"w-4 h-4"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("inviteConfirmStep1")}),e.jsx("p",{className:"text-sm font-semibold text-foreground mt-1",children:c==null?void 0:c.email})]})]}),e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary shrink-0 mt-0.5",children:e.jsx(ce,{className:"w-4 h-4"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("inviteConfirmStep2",{name:(c==null?void 0:c.name)||(c==null?void 0:c.email)})})]}),e.jsxs("div",{className:"flex gap-3 items-start",children:[e.jsx("div",{className:"flex items-center justify-center w-8 h-8 rounded-full bg-primary/10 text-primary shrink-0 mt-0.5",children:e.jsx(Qe,{className:"w-4 h-4"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("inviteConfirmStep3")})]})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(m,{variant:"outline",onClick:()=>L(null),disabled:H,children:t("cancel")}),e.jsx(m,{onClick:we,disabled:H,children:H?e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"w-4 h-4 mr-2 animate-spin"}),t("sending")]}):e.jsxs(e.Fragment,{children:[e.jsx(U,{className:"w-4 h-4 mr-2"}),t("sendInvite")]})})]})]})})]})}function G({icon:E,label:t,value:_}){return e.jsxs("div",{children:[e.jsxs("p",{className:"text-xs text-muted-foreground mb-0.5 flex items-center gap-1",children:[E," ",t]}),e.jsx("p",{className:"text-foreground",children:_||"—"})]})}export{Js 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.