PageSourceSearch

https://tg10x.com/_assets/invite-ByiZYVdt.js

js tg10x.com collected 2026-10-02 00:34:51 UTC 23,030 bytes, 87 lines download raw bytes

1import{o as E,k as T,S as m,cj as ge,s as d,f as fe,d as Y,n as U,t as _,r as p,j as e,m as xe,aF as ve,cb as ye,cc as be,ck as je,b5 as O,b0 as _e,aG as we,bd as Ne,bb as Se,c4 as Ce,X as Ie}from"./vendor-DCKdIk_f.js";import{u as $e,C as ee}from"./index.esm-BuCsGRCd.js";import{s as Te}from"./zod-vnqmtOMR.js";import{J as Ee,U as V,a as ke,K as Me,B as x,w as te,x as se,y as ae,z as ne,E as re,C as R,n as D,T as Ae,S as L,c as ie}from"./index-BDzfgULb.js";import{P as oe}from"./personaFieldDefinitions-Cmejn25u.js";import"./personaFieldDefsPersonal-DiPaFSSb.js";import"./industryMasterData-DZCHup7P.js";import"./serviceCategoryData-BRtxCEt0.js";E({status:T(Ee).optional()});const ze=async(a={},n)=>{const l=new URL("/_api/invite/list",window.location.origin);a.status&&l.searchParams.set("status",a.status);const r=await fetch(l.toString(),{method:"GET",...n,headers:{"Content-Type":"application/json"}});if(!r.ok){const o=m.parse(await r.text());throw new Error(o.error)}return m.parse(await r.text())},q=["standard","startup","investor","mentor","ecosystem","personal"],v={standard:{label:"Standard",description:"A general professional invitation to join the ecosystem.",defaultMessage:"",getDefaultSubject:(a,n)=>`${a} invited you to join ${n}`,tagline:"Connect, collaborate, and grow.",bullets:["Connect with founders, investors, and mentors","Discover opportunities across sectors","Build meaningful collaborations"],emoji:"🚀",gradient:"linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%)",accentColor:"#6366f1"},startup:{label:"Startup",description:"Tailored for founders — highlights funding, mentorship, and partnerships.",defaultMessage:"I think you'd be a great fit for this network. There are incredible opportunities for startups here — from funding to mentorship to strategic partnerships.",getDefaultSubject:(a,n)=>`${a} wants you on ${n} — built for startups`,tagline:"Join a thriving network of startups.",bullets:["Unlock access to active investors and funding opportunities","Get mentored by seasoned founders and domain experts","Discover partnerships, co-founders, and strategic alliances"],emoji:"⚡",gradient:"linear-gradient(135deg, #1e1b4b 0%, #3730a3 100%)",accentColor:"#818cf8"},investor:{label:"Investor",description:"For investors — emphasizes curated deal flow and portfolio opportunities.",defaultMessage:"I thought you'd find great value in the startup ecosystem here. There's a strong pipeline of vetted startups across multiple sectors.",getDefaultSubject:(a,n)=>`${a} invites you to discover deal flow on ${n}`,tagline:"Curated deal flow. High-potential startups.",bullets:["Access a curated pipeline of vetted, high-potential startups","Connect with co-investors and ecosystem partners","Stay ahead of emerging sectors and market trends"],emoji:"💼",gradient:"linear-gradient(135deg, #0c1a2e 0%, #1d4ed8 100%)",accentColor:"#3b82f6"},mentor:{label:"Mentor",description:"For mentors and advisors — focuses on sharing expertise and guiding startups.",defaultMessage:"Your experience and insights could make a real difference to startups here. I'd love for you to be part of this mentorship network.",getDefaultSubject:(a,n)=>`${a} invites you to mentor on ${n}`,tagline:"Share your expertise. Shape the future.",bullets:["Guide high-potential startups with your expertise","Connect with fellow mentors and industry leaders","Build a meaningful legacy in the startup ecosystem"],emoji:"🌟",gradient:"linear-gradient(135deg, #14532d 0%, #15803d 100%)",accentColor:"#22c55e"},ecosystem:{label:"Ecosystem Builder",description:"For enablers, accelerators, and community builders driving innovation.",defaultMessage:"We're building something special here — a thriving startup ecosystem. Your role as an enabler would be invaluable to the community.",getDefaultSubject:(a,n)=>`${a} invites you to build the ecosystem on ${n}`,tagline:"Build India's startup infrastructure.",bullets:["Connect incubators, accelerators, and innovation hubs","Collaborate on programs that drive ecosystem growth","Shape the infrastructure for the next generation of startups"],emoji:"🏗️",gradient:"linear-gradient(135deg, #0c2340 0%, #0369a1 100%)",accentColor:"#0ea5e9"},personal:{label:"Personal",description:"Your custom message takes center stage — warm and direct.",defaultMessage:"I wanted to personally reach out and invite you to join this platform. I genuinely believe you'd find great value here, and I'd love to have you in my network.",getDefaultSubject:(a,n)=>`A personal invitation from ${a}`,tagline:"A personal invitation just for you.",bullets:[],emoji:"✉️",gradient:"linear-gradient(135deg, #4a044e 0%, #7e22ce 100%)",accentColor:"#a85
15f7"}};function Fe(a){const{inviteeName:n,inviterName:l,platformName:r,template:o,message:c,inviteLink:h,year:w,memberCount:N=500,inviteCode:S}=a,{logoUrl:k}=a,C=v[o],{gradient:I,accentColor:g,emoji:M,tagline:A,bullets:u}=C,G=c?`<div style="background:#f8fafc;border-left:4px solid ${g};padding:16px 20px;border-radius:0 8px 8px 0;margin:20px 0;">
2        <p style="color:#475569;margin:0;font-size:15px;line-height:1.7;font-style:italic;">"${c}"</p>
3       </div>`:"",z=o!=="personal"&&u.length>0?`<div style="margin:24px 0;">
4          <p style="color:#1e293b;margin:0 0 12px;font-size:15px;font-weight:600;">What you'll get:</p>
5          <table cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
6            ${u.map(B=>`<tr>
7                    <td style="padding:0 10px 10px 0;vertical-align:top;color:${g};font-size:16px;font-weight:700;line-height:1.6;">&#10003;</td>
8                    <td style="padding:0 0 10px;color:#475569;font-size:14px;line-height:1.6;">${B}</td>
9                  </tr>`).join("")}
10          </table>
11         </div>`:"",F=o==="personal"&&c?`<p style="color:#334155;margin:0 0 20px;font-size:16px;line-height:1.8;">${c}</p>`:`<p style="color:#334155;margin:0 0 16px;font-size:16px;line-height:1.8;">
12          <strong>${l}</strong> has invited you to join <strong>${r}</strong> &mdash; a curated network for founders, investors, mentors, and ecosystem builders.
13        </p>
14        ${G}
15        ${z}`,y=S?`<p style="color:#94a3b8;margin:16px 0 0;font-size:13px;">Your invite code: <strong style="color:#64748b;">${S}</strong></p>`:"";return`<!DOCTYPE html>
16<html>
17  <head>
18    <meta charset="utf-8" />
19    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
20    <title>You're invited to ${r}</title>
21  </head>
22  <body style="margin:0;padding:0;background:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;">
23    <table width="100%" cellpadding="0" cellspacing="0" style="background:#f1f5f9;padding:32px 16px;">
24      <tr>
25        <td align="center">
26          <table width="580" cellpadding="0" cellspacing="0" style="background:#ffffff;border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,0.1);overflow:hidden;max-width:580px;width:100%;">
27            <!-- Gradient Header -->
28            <tr>
29              <td style="background:${I};padding:40px;text-align:center;">
30                <div style="font-size:44px;margin-bottom:14px;line-height:1;">${M}</div>
31                ${k?`<img src="${k}" alt="${r}" width="160" style="max-width:160px;height:auto;margin-bottom:8px;display:block;margin-left:auto;margin-right:auto;" />`:`<h1 style="color:#ffffff;margin:0 0 8px;font-size:28px;font-weight:700;letter-spacing:-0.3px;">${r}</h1>`}
32                <p style="color:rgba(255,255,255,0.8);margin:0;font-size:14px;letter-spacing:0.3px;">${A}</p>
33              </td>
34            </tr>
35            <!-- Body -->
36            <tr>
37              <td style="padding:36px 40px;">
38                <h2 style="color:#0f172a;margin:0 0 20px;font-size:22px;font-weight:700;">You've been invited! &#127881;</h2>
39                <p style="color:#334155;margin:0 0 16px;font-size:16px;line-height:1.8;">
40                  Hi <strong>${n}</strong>,
41                </p>
42                ${F}
43                <p style="color:#334155;margin:20px 0 28px;font-size:15px;line-height:1.7;">
44                  Click below to accept your invitation and create your profile:
45                </p>
46                <!-- CTA Button -->
47                <table cellpadding="0" cellspacing="0" style="margin:0 0 24px;">
48                  <tr>
49                    <td style="background:${I};border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,0.25);">
50                      <a href="${h}" style="display:inline-block;padding:16px 44px;color:#ffffff;text-decoration:none;font-size:16px;font-weight:700;letter-spacing:0.3px;">
51                        Accept Invitation &rarr;
52                      </a>
53                    </td>
54                  </tr>
55                </table>
56                <p style="color:#64748b;margin:0;font-size:13px;line-height:1.6;">
57                  Or copy this link into your browser:<br />
58                  <a href="${h}" style="color:${g};word-break:break-all;">${h}</a>
59                </p>
60                ${y}
61              </td>
62            </tr>
63            <!-- Social proof bar -->
64            <tr>
65              <td style="background:${I};padding:14px 40px;text-align:center;">
66                <p style="color:rgba(255,255,255,0.95);margin:0;font-size:13px;font-weight:600;letter-spacing:0.2px;">
67                  &#127775; Join ${N}+ ecosystem members
68                </p>
69              </td>
70            </tr>
71            <!-- Footer -->
72            <tr>
73              <td style="background:#f8fafc;padding:24px 40px;text-align:center;border-top:1px solid #e2e8f0;">
74                <p style="color:#94a3b8;margin:0 0 6px;font-size:12px;line-height:1.6;">
75                  This invitation was sent by a member of ${r}. If you believe this was sent in error, you can safely ignore this email.
76                </p>
77                <p style="color:#94a3b8;margin:0;font-size:12px;">
78                  &copy; ${w} ${r}. All rights reserved.
79                </p>
80              </td>
81            </tr>
82          </table>
83        </td>
84      </tr>
85    </table>
86  </body>
87</html>`}const Pe=E({inviteeName:d().min(1,"Name is required").max(100,"Name must not exceed 100 characters").refine(a=>!a.includes("<")&&!a.includes(">"),{message:"Name must not contain HTML characters"}),inviteeEmail:d().email("Invalid email format"),inviteePhone:d().optional(),message:d().max(2e3,"Message must not exceed 2000 characters").optional(),personaSuggestion:T(V).optional(),emailTemplate:T(q).optional().default("standard"),subject:d().max(200,"Subject must not exceed 200 characters").optional()}),De=async(a,n)=>{let l;try{l=Pe.parse(a)}catch(o){throw o instanceof ge?new Error(o.issues[0]?.message??"Invalid input"):o}const r=await fetch("/_api/invite/send",{method:"POST",body:m.stringify(l),...n,headers:{"Content-Type":"application/json",...n?.headers??{}}});if(!r.ok){const o=m.parse(await r.text());throw new Error(o.error)}return m.parse(await r.text())},Ge=E({invitationId:d()}),Be=async(a,n)=>{const l=Ge.parse(a),r=await fetch("/_api/invite/resend",{method:"POST",body:m.stringify(l),...n,headers:{"Content-Type":"application/json",...n?.headers??{}}});if(!r.ok){const o=m.parse(await r.text());throw new Error(o.error)}return m.parse(await r.text())},He=E({invitationId:d()}),Oe=async(a,n)=>{const l=He.parse(a),r=await fetch("/_api/invite/cancel",{method:"POST",body:m.stringify(l),...n,headers:{"Content-Type":"application/json",...n?.headers??{}}});if(!r.ok){const o=m.parse(await r.text());throw new Error(o.error)}return m.parse(await r.text())},K=["invitations"],Re=a=>fe({queryKey:[...K,a],queryFn:async()=>await ze({status:a}),placeholderData:n=>n}),Le=()=>{const a=Y();return U({mutationFn:De,onSuccess:()=>{a.invalidateQueries({queryKey:K}),_.success("Invitation sent successfully")},onError:n=>{_.error(n instanceof Error?n.message:"Failed to send invitation")}})},Ye=()=>U({mutationFn:Be,onSuccess:()=>{_.success("Invitation reminder sent successfully")},onError:a=>{_.error(a instanceof Error?a.message:"Failed to resend invitation")}}),Ue=()=>{const a=Y();return U({mutationFn:Oe,onSuccess:()=>{a.invalidateQueries({queryKey:K}),_.success("Invitation deleted successfully")},onError:n=>{_.error(n instanceof Error?n.message:"Failed to delete invitation")}})},Ve="_container_s9n03_1",qe="_header_s9n03_11",Ke="_headerText_s9n03_18",Qe="_title_s9n03_24",Je="_subtitle_s9n03_33",We="_formCard_s9n03_39",Ze="_formGrid_s9n03_59",Xe="_formGroup_s9n03_66",et="_formGroupFull_s9n03_72",tt="_label_s9n03_76",st="_errorText_s9n03_82",at="_charCounter_s9n03_87",nt="_charCounterWarning_s9n03_93",rt="_charCounterError_s9
87n03_97",it="_templateHint_s9n03_101",ot="_formActions_s9n03_107",lt="_formActionsRight_s9n03_116",ct="_filters_s9n03_122",dt="_filterBtn_s9n03_129",mt="_active_s9n03_146",pt="_listContainer_s9n03_152",ut="_inviteCard_s9n03_158",ht="_cardMain_s9n03_174",gt="_cardHeader_s9n03_182",ft="_inviteeName_s9n03_189",xt="_inviteeEmail_s9n03_196",vt="_metaInfo_s9n03_204",yt="_metaItem_s9n03_213",bt="_messagePreview_s9n03_219",jt="_messageContent_s9n03_240",_t="_messageIcon_s9n03_248",wt="_messageText_s9n03_254",Nt="_collapsed_s9n03_259",St="_expandIcon_s9n03_265",Ct="_cardActions_s9n03_271",It="_emptyState_s9n03_276",$t="_emptyIcon_s9n03_288",Tt="_emptyTitle_s9n03_293",Et="_emptyDesc_s9n03_301",kt="_emptyBtn_s9n03_307",Mt="_previewSection_s9n03_313",At="_previewHeader_s9n03_322",zt="_previewSubjectLine_s9n03_334",Ft="_previewFrame_s9n03_342",t={container:Ve,header:qe,headerText:Ke,title:Qe,subtitle:Je,formCard:We,formGrid:Ze,formGroup:Xe,formGroupFull:et,label:tt,errorText:st,charCounter:at,charCounterWarning:nt,charCounterError:rt,templateHint:it,formActions:ot,formActionsRight:lt,filters:ct,filterBtn:dt,active:mt,listContainer:pt,inviteCard:ut,cardMain:ht,cardHeader:gt,inviteeName:ft,inviteeEmail:xt,metaInfo:vt,metaItem:yt,messagePreview:bt,messageContent:jt,messageIcon:_t,messageText:wt,collapsed:Nt,expandIcon:St,cardActions:Ct,emptyState:It,emptyIcon:$t,emptyTitle:Tt,emptyDesc:Et,emptyBtn:kt,previewSection:Mt,previewHeader:At,previewSubjectLine:zt,previewFrame:Ft},Pt=E({inviteeName:d().min(1,"Name is required"),inviteeEmail:d().email("Invalid email format"),inviteePhone:d().optional(),personaSuggestion:T(V).optional(),message:d().optional(),emailTemplate:T(q).default("standard"),subject:d().max(200,"Subject must not exceed 200 characters").optional()});function Vt(){const a=ke(),l=Y().getQueryData(Me),[r,o]=p.useState(!1),[c,h]=p.useState("all"),[w,N]=p.useState(!1),[S,k]=p.useState(new Set),{data:C,isLoading:I}=Re(),g=Le(),M=Ye(),A=Ue(),{register:u,handleSubmit:G,control:z,reset:F,watch:y,setValue:B,getValues:le,formState:{errors:b,isSubmitting:Q}}=$e({resolver:Te(Pt),defaultValues:{inviteeName:"",inviteeEmail:"",inviteePhone:"",message:"",emailTemplate:"standard",subject:""}}),f=y("emailTemplate")??"standard",$=y("message")??"",J=y("inviteeName"),H=y("subject"),P=p.useRef("");p.useEffect(()=>{const s=le("message")||"",i=v[f];(!s||s===P.current)&&(B("message",i.defaultMessage),P.current=i.defaultMessage)},[f]);const ce=p.useMemo(()=>Fe({inviteeName:J||"Invitee Name",inviterName:l?.displayName||"Your Name",platformName:a.name,template:f,message:$||void 0,inviteLink:`${a.url}/invite?code=preview`,year:new Date().getFullYear(),memberCount:500,logoUrl:a.logoUrl}),[J,f,$,l?.displayName,a]),de=p.useMemo(()=>H||v[f].getDefaultSubject(l?.displayName||"Your Name",a.name),[H,f,l?.displayName,a]),me=s=>{g.mutate(s,{onSuccess:()=>{F(),o(!1),N(!1),P.current=""}})},pe=()=>{F(),o(!1),N(!1),P.current=""},W=p.useMemo(()=>{if(!C)return[];const s=C.filter(i=>i.status!=="cancelled");return c==="all"?s:s.filter(i=>i.status===c)},[C,c]),ue=s=>{switch(s){case"accepted":return"success";case"pending":return"warning";case"cancelled":return"destructive";case"expired":return"secondary";default:return"outline"}},he=s=>{k(i=>{const j=new Set(i);return j.has(s)?j.delete(s):j.add(s),j})},Z=s=>{const i=new Date(s),j=new Date,X=Math.round((i.getTime()-j.getTime())/(1e3*60*60*24));return Math.abs(X)>30?new Intl.DateTimeFormat("en-IN",{month:"short",day:"numeric",year:"numeric",timeZone:"Asia/Kolkata"}).format(i):new Intl.RelativeTimeFormat("en",{numeric:"auto"}).format(X,"day")};return e.jsxs("div",{className:t.container,children:[e.jsxs(xe,{children:[e.jsxs("title",{children:["Invite Members | ",a.name]}),e.jsx("meta",{name:"description",content:"Invite collaborators to join the ecosystem..."}),e.jsx("meta",{name:"robots",content:"noindex"})]}),e.jsxs("header",{className:t.header,children:[e.jsxs("div",{className:t.headerText,children:[e.jsx("h1",{className:t.title,children:"Invite Members"}),e.jsx("p",{className:t.subtitle,children:"Invite relevant people to join the ecosystem and collaborate."})]}),!r&&e.jsxs(x,{onClick:()=>o(!0),children:[e.jsx(ve,{size:18}),"Send Invite"]})]}),r&&e.jsx("div",{className:t.formCard,children:e.jsxs("form",{onSubmit:G(me),children:[e.jsxs("div",{className:t.formGrid,children:[e.jsxs("div",{className:`${t.formGroup} ${t.formGroupFull}`,children:[e.jsx("label",{className:t.label,children:"Email Template"}),e.jsx(ee,{control:z,name:"emailTemplate",render:({field:s})=>e.jsxs(e.Fragment,{children:[e.jsxs(te,{value:s.value||"standard",onValueChange:i=>s.onChange(i),children:[e.jsx(se,{children:e.jsx(ae,{placeholder:"Select a template..."})}),e.jsx(ne,{children:e.jsx(re,{children:q.map(i=>e.jsxs(R,{value:i,children:[v[i].emoji," ",v[i].label]}
87,i))})})]}),e.jsx("p",{className:t.templateHint,children:v[s.value||"standard"].description})]})})]}),e.jsxs("div",{className:`${t.formGroup} ${t.formGroupFull}`,children:[e.jsx("label",{className:t.label,children:"Subject Line (Optional)"}),e.jsx(D,{placeholder:v[f].getDefaultSubject(l?.displayName||"Your Name",a.name),...u("subject")}),b.subject&&e.jsx("span",{className:t.errorText,children:b.subject.message})]}),e.jsxs("div",{className:t.formGroup,children:[e.jsx("label",{className:t.label,children:"Name *"}),e.jsx(D,{placeholder:"e.g. Jane Doe",...u("inviteeName")}),b.inviteeName&&e.jsx("span",{className:t.errorText,children:b.inviteeName.message})]}),e.jsxs("div",{className:t.formGroup,children:[e.jsx("label",{className:t.label,children:"Email *"}),e.jsx(D,{type:"email",placeholder:"[email protected]",...u("inviteeEmail")}),b.inviteeEmail&&e.jsx("span",{className:t.errorText,children:b.inviteeEmail.message})]}),e.jsxs("div",{className:t.formGroup,children:[e.jsx("label",{className:t.label,children:"Phone (Optional)"}),e.jsx(D,{type:"tel",placeholder:"+91...",...u("inviteePhone")})]}),e.jsxs("div",{className:t.formGroup,children:[e.jsx("label",{className:t.label,children:"Suggested Role (Optional)"}),e.jsx(ee,{control:z,name:"personaSuggestion",render:({field:s})=>e.jsxs(te,{value:s.value||"__empty",onValueChange:i=>s.onChange(i==="__empty"?void 0:i),children:[e.jsx(se,{children:e.jsx(ae,{placeholder:"Select a role..."})}),e.jsx(ne,{children:e.jsxs(re,{children:[e.jsx(R,{value:"__empty",children:"None"}),V.map(i=>e.jsx(R,{value:i,children:oe[i]?.title||i},i))]})})]})})]}),e.jsxs("div",{className:`${t.formGroup} ${t.formGroupFull}`,children:[e.jsx("label",{className:t.label,children:"Personal Message (Optional)"}),e.jsx(Ae,{placeholder:"Add a personal note to the invitation email...",...u("message"),rows:3}),e.jsxs("span",{className:`${t.charCounter} ${($?.length??0)>=1800?t.charCounterWarning:""} ${($?.length??0)>=2e3?t.charCounterError:""}`,children:[$?.length??0," / 2000"]})]})]}),e.jsxs("div",{className:t.formActions,children:[e.jsxs(x,{type:"button",variant:"outline",onClick:()=>N(s=>!s),children:[w?e.jsx(ye,{size:16}):e.jsx(be,{size:16}),w?"Hide Preview":"Preview Email"]}),e.jsxs("div",{className:t.formActionsRight,children:[e.jsx(x,{type:"button",variant:"ghost",onClick:pe,disabled:Q||g.isPending,children:"Cancel"}),e.jsxs(x,{type:"submit",disabled:Q||g.isPending,children:[e.jsx(je,{size:16}),"Send Invitation"]})]})]})]})}),r&&w&&e.jsxs("div",{className:t.previewSection,children:[e.jsxs("div",{className:t.previewHeader,children:[e.jsx(O,{size:15}),e.jsx("span",{children:"Email Preview"})]}),e.jsxs("div",{className:t.previewSubjectLine,children:[e.jsx("strong",{children:"Subject:"})," ",de]}),e.jsx("iframe",{srcDoc:ce,title:"Email Preview",className:t.previewFrame,sandbox:"allow-same-origin"})]}),e.jsxs("div",{className:t.filters,children:[e.jsx("button",{className:`${t.filterBtn} ${c==="all"?t.active:""}`,onClick:()=>h("all"),children:"All"}),e.jsx("button",{className:`${t.filterBtn} ${c==="pending"?t.active:""}`,onClick:()=>h("pending"),children:"Pending"}),e.jsx("button",{className:`${t.filterBtn} ${c==="accepted"?t.active:""}`,onClick:()=>h("accepted"),children:"Accepted"})]}),e.jsx("div",{className:t.listContainer,children:I?[1,2,3].map(s=>e.jsxs("div",{className:t.inviteCard,children:[e.jsxs("div",{className:t.cardMain,children:[e.jsx(L,{style:{width:"200px",height:"1.5rem"}}),e.jsx(L,{style:{width:"150px",height:"1rem"}})]}),e.jsx(L,{style:{width:"100px",height:"2.5rem"}})]},s)):W.length===0?e.jsxs("div",{className:t.emptyState,children:[e.jsx(O,{size:48,className:t.emptyIcon}),e.jsx("h3",{className:t.emptyTitle,children:"No invitations found"}),e.jsx("p",{className:t.emptyDesc,children:c==="all"?"You haven't sent any invitations yet. Invite people to collaborate and grow the ecosystem.":`You don't have any ${c} invitations.`}),!r&&c==="all"&&e.jsx(x,{onClick:()=>o(!0),className:t.emptyBtn,children:"Send First Invite"})]}):W.map(s=>e.jsxs("div",{className:t.inviteCard,children:[e.jsxs("div",{className:t.cardMain,children:[e.jsxs("div",{className:t.cardHeader,children:[e.jsx("h3",{className:t.inviteeName,children:s.inv
87iteeName}),e.jsx(ie,{variant:ue(s.status),style:{textTransform:"capitalize"},children:s.status}),s.personaSuggestion&&e.jsx(ie,{variant:"secondary",children:oe[s.personaSuggestion]?.title||s.personaSuggestion})]}),e.jsxs("span",{className:t.inviteeEmail,children:[e.jsx(O,{size:14})," ",s.inviteeEmail]}),e.jsxs("div",{className:t.metaInfo,children:[e.jsxs("span",{className:t.metaItem,children:[e.jsx(_e,{size:14}),"Sent ",Z(s.createdAt)]}),s.status==="accepted"&&s.acceptedAt&&e.jsxs("span",{className:t.metaItem,children:["• Joined ",Z(s.acceptedAt)]})]}),s.message&&e.jsxs("div",{className:`${t.messagePreview} ${S.has(s.id)?t.expanded:t.collapsed}`,onClick:()=>he(s.id),children:[e.jsxs("div",{className:t.messageContent,children:[e.jsx(we,{size:14,className:t.messageIcon}),e.jsxs("span",{className:t.messageText,children:['"',s.message,'"']})]}),S.has(s.id)?e.jsx(Ne,{size:14,className:t.expandIcon}):e.jsx(Se,{size:14,className:t.expandIcon})]})]}),s.status==="pending"&&e.jsxs("div",{className:t.cardActions,children:[e.jsxs(x,{variant:"outline",size:"sm",onClick:()=>M.mutate({invitationId:s.id}),disabled:M.isPending,children:[e.jsx(Ce,{size:14})," Resend"]}),e.jsxs(x,{variant:"ghost",size:"sm",onClick:()=>A.mutate({invitationId:s.id}),disabled:A.isPending,className:t.destructiveText,children:[e.jsx(Ie,{size:14})," Delete"]})]})]},s.id))})]})}export{Vt 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.