Files
alrahma_sunday_school_api/apps/dashboard/.next/static/chunks/0sz-nz4e3p1c6.js
T
2026-06-11 03:22:12 -04:00

1 line
38 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67978,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(56322);let i={en:{title:"Invite a team member",subtitle:"They'll receive an email invitation to join your workspace.",firstName:"First name",lastName:"Last name",email:"Email address",role:"Role",cancel:"Cancel",sending:"Sending…",sendInvite:"Send invite →",failedInvite:"Failed to send invitation",more:e=>`+${e} more`,roleOptions:[{value:"MANAGER",label:"Manager",description:"Full fleet operations, without billing or team settings",permissions:["Vehicles","Reservations","CRM","Offers","Reports","License approval"]},{value:"AGENT",label:"Agent",description:"Day-to-day operations only",permissions:["View fleet","Reservations","Check-in / Check-out","View customers"]}]},fr:{title:"Inviter un membre",subtitle:"Cette personne recevra un e-mail d'invitation pour rejoindre votre espace de travail.",firstName:"Prénom",lastName:"Nom",email:"Adresse e-mail",role:"Rôle",cancel:"Annuler",sending:"Envoi…",sendInvite:"Envoyer l'invitation →",failedInvite:"Échec de l'envoi de l'invitation",more:e=>`+${e} de plus`,roleOptions:[{value:"MANAGER",label:"Manager",description:"Opérations complètes, sans accès à la facturation ni aux paramètres de l’équipe",permissions:["Véhicules","Réservations","CRM","Offres","Rapports","Validation des permis"]},{value:"AGENT",label:"Agent",description:"Opérations quotidiennes uniquement",permissions:["Voir la flotte","Réservations","Départ / Retour","Voir les clients"]}]},ar:{title:"دعوة عضو في الفريق",subtitle:"سيتلقى رسالة بريد إلكتروني للانضمام إلى مساحة العمل.",firstName:"الاسم الأول",lastName:"اسم العائلة",email:"البريد الإلكتروني",role:"الدور",cancel:"إلغاء",sending:"جارٍ الإرسال…",sendInvite:"← إرسال الدعوة",failedInvite:"فشل إرسال الدعوة",more:e=>`+${e} أكثر`,roleOptions:[{value:"MANAGER",label:"مدير",description:"صلاحيات تشغيل كاملة للأسطول، من دون الفوترة أو إعدادات الفريق",permissions:["المركبات","الحجوزات","CRM","العروض","التقارير","الموافقة على الرخص"]},{value:"AGENT",label:"وكيل",description:"العمليات اليومية فقط",permissions:["عرض الأسطول","الحجوزات","الاستلام / الإرجاع","عرض العملاء"]}]}};function n({open:e,onClose:s,onInvite:l}){let{language:c}=(0,r.useDashboardI18n)(),d=i[c],o="ar"===c,[m,x]=(0,a.useState)(""),[u,b]=(0,a.useState)(""),[v,g]=(0,a.useState)(""),[p,h]=(0,a.useState)("AGENT"),[f,k]=(0,a.useState)(!1),[z,N]=(0,a.useState)(null);(0,a.useEffect)(()=>{e||setTimeout(()=>{x(""),b(""),g(""),h("AGENT"),N(null)},200)},[e]);let j=async e=>{e.preventDefault(),N(null),k(!0);try{await l({firstName:m.trim(),lastName:u.trim(),email:v.trim(),role:p}),s()}catch(e){N(e.message??d.failedInvite)}finally{k(!1)}};return e?(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-blue-950/30 backdrop-blur-sm",onClick:e=>{e.target===e.currentTarget&&s()},children:(0,t.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-700 rounded-2xl shadow-xl w-full max-w-md mx-4 p-6",dir:o?"rtl":"ltr",children:[(0,t.jsxs)("div",{className:"mb-5",children:[(0,t.jsx)("h2",{className:"text-lg font-medium text-zinc-900 dark:text-white",children:d.title}),(0,t.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 mt-1",children:d.subtitle})]}),(0,t.jsxs)("form",{onSubmit:j,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1.5",children:d.firstName}),(0,t.jsx)("input",{type:"text",value:m,onChange:e=>x(e.target.value),placeholder:"Youssef",required:!0,className:"w-full px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white focus:ring-offset-0 focus:border-transparent"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1.5",children:d.lastName}),(0,t.jsx)("input",{type:"text",value:u,onChange:e=>b(e.target.value),placeholder:"Benali",required:!0,className:"w-full px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white focus:border-transparent"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1.5",children:d.email}),(0,t.jsx)("input",{type:"email",value:v,onChange:e=>g(e.target.value),placeholder:"youssef@yourcompany.com",required:!0,className:"w-full px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white focus:border-transparent"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-1.5",children:d.role}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-2",children:d.roleOptions.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>h(e.value),className:["text-left px-3 py-3 rounded-xl border transition-all",p===e.value?"border-zinc-900 dark:border-white bg-zinc-50 dark:bg-zinc-800":"border-zinc-200 dark:border-zinc-700 hover:border-zinc-300 dark:hover:border-zinc-600"].join(" "),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-zinc-900 dark:text-white",children:e.label}),p===e.value&&(0,t.jsx)("span",{className:"w-4 h-4 rounded-full bg-zinc-900 dark:bg-white flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-2.5 h-2.5 text-white dark:text-zinc-900",fill:"currentColor",viewBox:"0 0 12 12",children:(0,t.jsx)("path",{d:"M10 3L5 8.5 2 5.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})})})]}),(0,t.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 leading-snug",children:e.description}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-1",children:[e.permissions.slice(0,3).map(e=>(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-zinc-100 dark:bg-zinc-700 text-zinc-500 dark:text-zinc-400",children:e},e)),e.permissions.length>3&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-zinc-100 dark:bg-zinc-700 text-zinc-500 dark:text-zinc-400",children:d.more(e.permissions.length-3)})]})]},e.value))})]}),z&&(0,t.jsx)("div",{className:"px-3 py-2.5 rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-100 dark:border-red-900/50",children:(0,t.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:z})}),(0,t.jsxs)("div",{className:`flex gap-2 pt-2 border-t border-zinc-100 dark:border-zinc-800 ${o?"flex-row-reverse":""}`,children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"flex-1 px-4 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:d.cancel}),(0,t.jsx)("button",{type:"submit",disabled:f,className:"flex-1 px-4 py-2 text-sm bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg font-medium hover:bg-zinc-800 dark:hover:bg-zinc-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:f?d.sending:d.sendInvite})]})]})]})}):null}let s={en:{pendingInvite:"Pending invite",deactivated:"Deactivated",role:"Role",cancel:"Cancel",saveChanges:"Save changes",saving:"Saving…",working:"Working…",deactivate:"Deactivate",reactivate:"Reactivate",remove:"Remove",removePermanently:"Remove permanently",confirmDeactivateTitle:"Deactivate this member?",confirmRemoveTitle:"Permanently remove this member?",confirmReactivateTitle:"Reactivate this member?",confirmDeactivateDesc:"They'll immediately lose dashboard access. You can reactivate anytime.",confirmRemoveDesc:"This will delete the employee record and revoke their dashboard access. This cannot be undone.",confirmReactivateDesc:"They'll regain dashboard access with their current role.",roleOptions:[{value:"MANAGER",label:"Manager",description:"Full ops — no billing"},{value:"AGENT",label:"Agent",description:"Reservations & check-ins"}]},fr:{pendingInvite:"Invitation en attente",deactivated:"Désactivé",role:"Rôle",cancel:"Annuler",saveChanges:"Enregistrer",saving:"Enregistrement…",working:"En cours…",deactivate:"Désactiver",reactivate:"Réactiver",remove:"Supprimer",removePermanently:"Supprimer définitivement",confirmDeactivateTitle:"Désactiver ce membre ?",confirmRemoveTitle:"Supprimer définitivement ce membre ?",confirmReactivateTitle:"Réactiver ce membre ?",confirmDeactivateDesc:"Il perdra immédiatement l'accès au tableau de bord. Vous pouvez le réactiver à tout moment.",confirmRemoveDesc:"Cela supprimera le compte et révoquera son accès au tableau de bord. Cette action est irréversible.",confirmReactivateDesc:"Il retrouvera l'accès au tableau de bord avec son rôle actuel.",roleOptions:[{value:"MANAGER",label:"Manager",description:"Opérations complètes — sans facturation"},{value:"AGENT",label:"Agent",description:"Réservations et enregistrements"}]},ar:{pendingInvite:"دعوة قيد الانتظار",deactivated:"معطل",role:"الدور",cancel:"إلغاء",saveChanges:"حفظ التغييرات",saving:"جارٍ الحفظ…",working:"جارٍ التنفيذ…",deactivate:"تعطيل",reactivate:"إعادة التفعيل",remove:"حذف",removePermanently:"حذف نهائياً",confirmDeactivateTitle:"تعطيل هذا العضو؟",confirmRemoveTitle:"حذف هذا العضو نهائياً؟",confirmReactivateTitle:"إعادة تفعيل هذا العضو؟",confirmDeactivateDesc:"سيفقد الوصول إلى لوحة التحكم فوراً. يمكنك إعادة التفعيل في أي وقت.",confirmRemoveDesc:"سيتم حذف سجل الموظف وإلغاء صلاحياته. هذا الإجراء لا يمكن التراجع عنه.",confirmReactivateDesc:"سيستعيد الوصول إلى لوحة التحكم بدوره الحالي.",roleOptions:[{value:"MANAGER",label:"مدير",description:"عمليات كاملة — بدون فوترة"},{value:"AGENT",label:"وكيل",description:"الحجوزات والاستلام"}]}};function l({member:e,open:i,onClose:n,onUpdateRole:c,onDeactivate:d,onReactivate:o,onRemove:m}){let{language:x}=(0,r.useDashboardI18n)(),u=s[x],b="ar"===x,[v,g]=(0,a.useState)("AGENT"),[p,h]=(0,a.useState)("idle"),[f,k]=(0,a.useState)(null),[z,N]=(0,a.useState)(null);if((0,a.useEffect)(()=>{e&&i&&(g("OWNER"===e.role?"MANAGER":e.role),h("idle"),k(null),N(null))},[e,i]),!i||!e)return null;let j="pending"===e.invitationStatus,y=e.isActive,w="idle"!==p,A=(e.firstName[0]??"")+(e.lastName[0]??""),R=async()=>{if(v===e.role)return void n();h("saving"),N(null);try{await c(e.id,v),n()}catch(e){N(e.message),h("idle")}},C=async()=>{h("deactivating"),N(null);try{await d(e.id),n()}catch(e){N(e.message),h("idle")}k(null)},M=async()=>{h("reactivating"),N(null);try{await o(e.id),n()}catch(e){N(e.message),h("idle")}k(null)},S=async()=>{h("removing"),N(null);try{await m(e.id),n()}catch(e){N(e.message),h("idle")}k(null)};return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-blue-950/30 backdrop-blur-sm",onClick:e=>{e.target!==e.currentTarget||w||n()},children:(0,t.jsxs)("div",{className:"bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-700 rounded-2xl shadow-xl w-full max-w-md mx-4 p-6",dir:b?"rtl":"ltr",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5 pb-5 border-b border-zinc-100 dark:border-zinc-800",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-full bg-zinc-100 dark:bg-zinc-800 flex items-center justify-center text-sm font-medium text-zinc-600 dark:text-zinc-300",children:A}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"font-medium text-zinc-900 dark:text-white text-sm",children:[e.firstName," ",e.lastName]}),(0,t.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:e.email})]}),(0,t.jsxs)("div",{className:"ml-auto",children:[j&&(0,t.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-orange-50 dark:bg-orange-950/30 text-orange-700 dark:text-orange-400 border border-orange-100 dark:border-orange-900/50",children:u.pendingInvite}),!j&&!y&&(0,t.jsx)("span",{className:"text-xs px-2 py-1 rounded-full bg-zinc-100 dark:bg-zinc-800 text-zinc-500 dark:text-zinc-400",children:u.deactivated})]})]}),f&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-3 rounded-xl border border-red-100 dark:border-red-900/50 bg-red-50 dark:bg-red-950/20",children:[(0,t.jsxs)("p",{className:"text-sm font-medium text-red-700 dark:text-red-400 mb-1",children:["deactivate"===f&&u.confirmDeactivateTitle,"remove"===f&&u.confirmRemoveTitle,"reactivate"===f&&u.confirmReactivateTitle]}),(0,t.jsxs)("p",{className:"text-xs text-red-600 dark:text-red-500 mb-3",children:["deactivate"===f&&u.confirmDeactivateDesc,"remove"===f&&u.confirmRemoveDesc,"reactivate"===f&&u.confirmReactivateDesc]}),(0,t.jsxs)("div",{className:`flex gap-2 ${b?"flex-row-reverse":""}`,children:[(0,t.jsx)("button",{onClick:()=>k(null),className:"flex-1 text-xs px-3 py-1.5 rounded-lg border border-zinc-200 dark:border-zinc-700 text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-zinc-800",children:u.cancel}),(0,t.jsx)("button",{onClick:"deactivate"===f?C:"reactivate"===f?M:S,disabled:w,className:["flex-1 text-xs px-3 py-1.5 rounded-lg font-medium disabled:opacity-50","reactivate"===f?"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900":"bg-red-600 text-white hover:bg-red-700"].join(" "),children:w?u.working:"deactivate"===f?u.deactivate:"reactivate"===f?u.reactivate:u.removePermanently})]})]}),!j&&y&&(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("label",{className:"block text-xs font-medium text-zinc-500 dark:text-zinc-400 mb-2",children:u.role}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-2",children:u.roleOptions.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>g(e.value),className:["text-left px-3 py-2.5 rounded-xl border transition-all",v===e.value?"border-zinc-900 dark:border-white bg-zinc-50 dark:bg-zinc-800":"border-zinc-200 dark:border-zinc-700 hover:border-zinc-300 dark:hover:border-zinc-600"].join(" "),children:[(0,t.jsx)("div",{className:"text-sm font-medium text-zinc-900 dark:text-white",children:e.label}),(0,t.jsx)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400 mt-0.5",children:e.description})]},e.value))})]}),z&&(0,t.jsx)("div",{className:"mb-4 px-3 py-2 rounded-lg bg-red-50 dark:bg-red-950/30 border border-red-100 dark:border-red-900/50",children:(0,t.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:z})}),(0,t.jsxs)("div",{className:`flex items-center gap-2 pt-4 border-t border-zinc-100 dark:border-zinc-800 ${b?"flex-row-reverse":""}`,children:[(0,t.jsxs)("div",{className:`flex gap-2 ${b?"ml-auto":"mr-auto"}`,children:[y&&!j&&(0,t.jsx)("button",{onClick:()=>k("deactivate"),disabled:w,className:"text-xs px-3 py-1.5 rounded-lg border border-red-200 dark:border-red-900/50 text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/20 disabled:opacity-50 transition-colors",children:u.deactivate}),!y&&(0,t.jsx)("button",{onClick:()=>k("reactivate"),disabled:w,className:"text-xs px-3 py-1.5 rounded-lg border border-zinc-200 dark:border-zinc-700 text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-zinc-800 disabled:opacity-50 transition-colors",children:u.reactivate}),(0,t.jsx)("button",{onClick:()=>k("remove"),disabled:w,className:"text-xs px-3 py-1.5 rounded-lg text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/20 disabled:opacity-50 transition-colors",children:u.remove})]}),(0,t.jsx)("button",{onClick:n,disabled:w,className:"px-4 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors disabled:opacity-50",children:u.cancel}),y&&!j&&(0,t.jsx)("button",{onClick:R,disabled:w,className:"px-4 py-2 text-sm bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg font-medium hover:bg-zinc-800 dark:hover:bg-zinc-100 transition-colors disabled:opacity-50",children:"saving"===p?u.saving:u.saveChanges})]})]})})}let c=[{manager:"full",agent:"full"},{manager:"full",agent:"none"},{manager:"full",agent:"none"},{manager:"full",agent:"none"},{manager:"full",agent:"full"},{manager:"full",agent:"full"},{manager:"full",agent:"partial"},{manager:"full",agent:"full"},{manager:"full",agent:"full"},{manager:"full",agent:"full"},{manager:"full",agent:"partial"},{manager:"full",agent:"none"},{manager:"full",agent:"none"},{manager:"full",agent:"none"},{manager:"full",agent:"none"},{manager:"full",agent:"full"},{manager:"none",agent:"none"},{manager:"none",agent:"none"},{manager:"none",agent:"none"},{manager:"none",agent:"none"}],d={en:{heading:"Role permissions",subtitle:"What each role can do across the dashboard. Owners have full access to everything.",colFeature:"Feature",colManager:"Manager",colAgent:"Agent",full:"Full",noAccess:"No access",limited:"Limited",featureLabels:["View fleet & vehicles","Add / edit vehicles","Publish / unpublish vehicle","Upload vehicle photos","View reservations","Create reservations","Cancel reservations","Check-in / check-out","Damage inspection","Customer CRM — view","Customer CRM — edit","Approve driver licenses","Flag / blacklist customer","Offers & promotions","Analytics & reports","Contract & invoice PDF","Billing & subscription","Invite / remove staff","Brand & site settings","Payment settings"],agentNotes:["","","","","","","Own only","","","","Notes only","","","","","","","","",""]},fr:{heading:"Permissions par rôle",subtitle:"Ce que chaque rôle peut faire dans lespace de travail. Les propriétaires ont un accès complet à lensemble du système.",colFeature:"Fonctionnalité",colManager:"Manager",colAgent:"Agent",full:"Complet",noAccess:"Aucun accès",limited:"Limité",featureLabels:["Voir la flotte et les véhicules","Ajouter / modifier des véhicules","Publier / dépublier un véhicule","Téléverser des photos de véhicule","Voir les réservations","Créer des réservations","Annuler des réservations","Départ / retour","Inspection des dommages","CRM clients — consultation","CRM clients — modification","Approuver les permis de conduire","Signaler / bloquer un client","Offres et promotions","Analyses et rapports","Contrat et facture PDF","Facturation et abonnement","Inviter / supprimer des membres de l’équipe","Paramètres marque et site","Paramètres de paiement"],agentNotes:["","","","","","","Les siennes uniquement","","","","Notes uniquement","","","","","","","","",""]},ar:{heading:"صلاحيات الأدوار",subtitle:"ما يمكن لكل دور القيام به داخل مساحة العمل. يملك المالكون صلاحية كاملة على كل شيء.",colFeature:"الميزة",colManager:"المدير",colAgent:"الوكيل",full:"كامل",noAccess:"لا وصول",limited:"محدود",featureLabels:["عرض الأسطول والمركبات","إضافة / تعديل المركبات","نشر / إلغاء نشر المركبة","رفع صور المركبة","عرض الحجوزات","إنشاء الحجوزات","إلغاء الحجوزات","الاستلام / الإرجاع","فحص الأضرار","إدارة العملاء — عرض","إدارة العملاء — تعديل","الموافقة على رخص القيادة","تمييز العميل / حظره","العروض والحملات الترويجية","التحليلات والتقارير","العقد والفاتورة بصيغة PDF","الفوترة والاشتراك","دعوة / إزالة الموظفين","إعدادات العلامة والموقع","إعدادات الدفع"],agentNotes:["","","","","","","حجوزاته فقط","","","","الملاحظات فقط","","","","","","","","",""]}};function o({access:e,label:a,limitedNote:r}){return"full"===e?(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("svg",{className:"w-3.5 h-3.5 text-green-600 dark:text-green-400 flex-shrink-0",fill:"none",viewBox:"0 0 14 14",children:(0,t.jsx)("path",{d:"M2.5 7L5.5 10L11.5 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),(0,t.jsx)("span",{className:"text-xs text-zinc-700 dark:text-zinc-300",children:a.full})]}):"partial"===e?(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:"w-3.5 h-3.5 flex-shrink-0 flex items-center justify-center",children:(0,t.jsx)("div",{className:"w-2.5 h-0.5 rounded bg-orange-500"})}),(0,t.jsx)("span",{className:"text-xs text-orange-700 dark:text-orange-400",children:r||a.limited})]}):(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:"w-3.5 h-3.5 flex-shrink-0 flex items-center justify-center",children:(0,t.jsx)("div",{className:"w-2 h-0.5 rounded bg-zinc-300 dark:bg-zinc-600"})}),(0,t.jsx)("span",{className:"text-xs text-zinc-400 dark:text-zinc-600",children:a.noAccess})]})}function m(){let{language:e}=(0,r.useDashboardI18n)(),a=d[e];return(0,t.jsxs)("div",{dir:"ar"===e?"rtl":"ltr",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h2",{className:"text-base font-medium text-zinc-900 dark:text-white",children:a.heading}),(0,t.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 mt-0.5",children:a.subtitle})]}),(0,t.jsxs)("div",{className:"border border-zinc-200 dark:border-zinc-700 rounded-xl overflow-hidden",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[1fr_120px_120px] bg-zinc-50 dark:bg-zinc-800/50 border-b border-zinc-200 dark:border-zinc-700",children:[(0,t.jsx)("div",{className:"px-4 py-2.5 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide",children:a.colFeature}),(0,t.jsx)("div",{className:"px-4 py-2.5 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide border-l border-zinc-200 dark:border-zinc-700",children:a.colManager}),(0,t.jsx)("div",{className:"px-4 py-2.5 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide border-l border-zinc-200 dark:border-zinc-700",children:a.colAgent})]}),c.map((e,r)=>(0,t.jsxs)("div",{className:["grid grid-cols-[1fr_120px_120px]",r<c.length-1?"border-b border-zinc-100 dark:border-zinc-800":"",r%2==0?"":"bg-zinc-50/50 dark:bg-zinc-800/20"].join(" "),children:[(0,t.jsx)("div",{className:"px-4 py-2.5 text-xs text-zinc-600 dark:text-zinc-400",children:a.featureLabels[r]}),(0,t.jsx)("div",{className:"px-4 py-2.5 border-l border-zinc-100 dark:border-zinc-800",children:(0,t.jsx)(o,{access:e.manager,label:{full:a.full,noAccess:a.noAccess,limited:a.limited},limitedNote:e.managerNote??""})}),(0,t.jsx)("div",{className:"px-4 py-2.5 border-l border-zinc-100 dark:border-zinc-800",children:(0,t.jsx)(o,{access:e.agent,label:{full:a.full,noAccess:a.noAccess,limited:a.limited},limitedNote:a.agentNotes[r]??""})})]},r))]})]})}var x=e.i(94327);function u(e){return{...e,total:e.total+1,pending:e.pending+1}}function b(e,t,a){return e.map(e=>e.id===t?{...e,isActive:a}:e)}function v(e,t){return"deactivate"===t?{...e,active:e.active-1,inactive:e.inactive+1}:{...e,active:e.active+1,inactive:e.inactive-1}}let g=["bg-violet-100 dark:bg-violet-900/40 text-violet-700 dark:text-violet-300","bg-blue-100 dark:bg-blue-900/40 text-blue-700 dark:text-blue-300","bg-teal-100 dark:bg-teal-900/40 text-teal-700 dark:text-teal-300","bg-orange-100 dark:bg-orange-900/40 text-orange-700 dark:text-orange-300","bg-pink-100 dark:bg-pink-900/40 text-pink-700 dark:text-pink-300"],p={OWNER:{en:"Owner",fr:"Propriétaire",ar:"مالك"},MANAGER:{en:"Manager",fr:"Manager",ar:"مدير"},AGENT:{en:"Agent",fr:"Agent",ar:"وكيل"}};function h({role:e,language:a}){let r={OWNER:"bg-violet-50 dark:bg-violet-950/40 text-violet-700 dark:text-violet-300 border-violet-100 dark:border-violet-900/50",MANAGER:"bg-blue-50 dark:bg-blue-950/40 text-blue-700 dark:text-blue-300 border-blue-100 dark:border-blue-900/50",AGENT:"bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400 border-zinc-200 dark:border-zinc-700"},i=p[e]?.[a]??e.charAt(0)+e.slice(1).toLowerCase();return(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-full border font-medium ${r[e]??r.AGENT}`,children:i})}function f({member:e,language:a}){return"pending"===e.invitationStatus?(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border bg-orange-50 dark:bg-orange-950/30 text-orange-700 dark:text-orange-400 border-orange-100 dark:border-orange-900/50",children:"fr"===a?"Invitation en attente":"ar"===a?"دعوة قيد الانتظار":"Pending invite"}):e.isActive?(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border bg-green-50 dark:bg-green-950/30 text-green-700 dark:text-green-400 border-green-100 dark:border-green-900/50",children:"fr"===a?"Actif":"ar"===a?"نشط":"Active"}):(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border bg-zinc-100 dark:bg-zinc-800 text-zinc-500 dark:text-zinc-500 border-zinc-200 dark:border-zinc-700",children:"fr"===a?"Désactivé":"ar"===a?"معطل":"Deactivated"})}e.s(["default",0,function(){let{language:e}=(0,r.useDashboardI18n)(),i={en:{title:"Team",subtitle:"Manage your employees and their access levels",inviteMember:"Invite member",totalMembers:"Total members",active:"Active",pendingInvite:"Pending invite",deactivated:"Deactivated",search:"Search by name or email…",allRoles:"All roles",owner:"Owner",manager:"Manager",agent:"Agent",allStatuses:"All statuses",pending:"Pending",loadingTeam:"Loading team…",noMembers:"No members match your filters",member:"Member",role:"Role",status:"Status",lastActive:"Last active",manage:"Manage",inviteSent:"Invite sent to",roleUpdated:"Role updated",memberDeactivated:"Member deactivated",memberReactivated:"Member reactivated",memberRemoved:"Member removed",you:"(you)"},fr:{title:"Équipe",subtitle:"Gérez vos employés et leurs niveaux d'accès",inviteMember:"Inviter un membre",totalMembers:"Total membres",active:"Actif",pendingInvite:"Invitation en attente",deactivated:"Désactivé",search:"Rechercher par nom ou email…",allRoles:"Tous les rôles",owner:"Propriétaire",manager:"Manager",agent:"Agent",allStatuses:"Tous les statuts",pending:"En attente",loadingTeam:"Chargement de l'équipe…",noMembers:"Aucun membre ne correspond aux filtres",member:"Membre",role:"Rôle",status:"Statut",lastActive:"Dernière activité",manage:"Gérer",inviteSent:"Invitation envoyée à",roleUpdated:"Rôle mis à jour",memberDeactivated:"Membre désactivé",memberReactivated:"Membre réactivé",memberRemoved:"Membre supprimé",you:"(vous)"},ar:{title:"الفريق",subtitle:"إدارة الموظفين ومستويات الوصول الخاصة بهم",inviteMember:"دعوة عضو",totalMembers:"إجمالي الأعضاء",active:"نشط",pendingInvite:"دعوة قيد الانتظار",deactivated:"معطل",search:"ابحث بالاسم أو البريد الإلكتروني…",allRoles:"كل الأدوار",owner:"مالك",manager:"مدير",agent:"وكيل",allStatuses:"كل الحالات",pending:"قيد الانتظار",loadingTeam:"جارٍ تحميل الفريق…",noMembers:"لا يوجد أعضاء مطابقون للفلاتر",member:"العضو",role:"الدور",status:"الحالة",lastActive:"آخر نشاط",manage:"إدارة",inviteSent:"تم إرسال الدعوة إلى",roleUpdated:"تم تحديث الدور",memberDeactivated:"تم تعطيل العضو",memberReactivated:"تمت إعادة تفعيل العضو",memberRemoved:"تم حذف العضو",you:"(أنت)"}}[e],{members:s,stats:c,loading:d,error:o,invite:p,updateRole:k,deactivate:z,reactivate:N,remove:j}=function(){let[e,t]=(0,a.useState)([]),[r,i]=(0,a.useState)({total:0,active:0,pending:0,inactive:0}),[n,s]=(0,a.useState)(!0),[l,c]=(0,a.useState)(null),d=(0,a.useCallback)(async()=>{s(!0),c(null);try{let[e,a]=await Promise.all([(0,x.apiFetch)("/team"),(0,x.apiFetch)("/team/stats")]);t(e),i(a)}catch(e){c(e.message)}finally{s(!1)}},[]);(0,a.useEffect)(()=>{d()},[d]);let o=(0,a.useCallback)(async e=>{let a=await (0,x.apiFetch)("/team/invite",{method:"POST",body:JSON.stringify(e)});return t(e=>[...e,a.employee]),i(u),a},[]),m=(0,a.useCallback)(async(e,a)=>{let r=await (0,x.apiFetch)(`/team/${e}/role`,{method:"PATCH",body:JSON.stringify({role:a})});return t(t=>{var a;return a=r.role,t.map(t=>t.id===e?{...t,role:a}:t)}),r},[]),g=(0,a.useCallback)(async e=>{let a=await (0,x.apiFetch)(`/team/${e}/deactivate`,{method:"POST"});return t(t=>b(t,e,!1)),i(e=>v(e,"deactivate")),a},[]),p=(0,a.useCallback)(async e=>{let a=await (0,x.apiFetch)(`/team/${e}/reactivate`,{method:"POST"});return t(t=>b(t,e,!0)),i(e=>v(e,"reactivate")),a},[]),h=(0,a.useCallback)(async a=>{let n;await (0,x.apiFetch)(`/team/${a}`,{method:"DELETE"});let s=(n=e.find(e=>e.id===a),{members:e.filter(e=>e.id!==a),stats:{...r,total:r.total-!!n,active:n?.isActive?r.active-1:r.active,pending:n?.invitationStatus==="pending"?r.pending-1:r.pending,inactive:n?.isActive||n?.invitationStatus!=="accepted"?r.inactive:r.inactive-1}});t(s.members),i(s.stats)},[e,r]);return{members:e,stats:r,loading:n,error:l,refetch:d,invite:o,updateRole:m,deactivate:g,reactivate:p,remove:h}}(),[y,w]=(0,a.useState)(null),[A,R]=(0,a.useState)(""),[C,M]=(0,a.useState)(""),[S,T]=(0,a.useState)(""),[D,E]=(0,a.useState)(!1),[I,L]=(0,a.useState)(null),[O,P]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!1;return(0,x.apiFetch)("/auth/employee/me").then(({employee:t})=>{e||w(t.id)}).catch(()=>{e||w(null)}),()=>{e=!0}},[]);let $=s.find(e=>e.id===y),G=$?.role==="OWNER";function F(e){P(e),setTimeout(()=>P(null),3e3)}let q=(0,a.useMemo)(()=>s.filter(e=>{let t=A.toLowerCase(),a=!t||`${e.firstName} ${e.lastName}`.toLowerCase().includes(t)||e.email.toLowerCase().includes(t),r=!C||e.role===C,i=!S||"active"===S&&e.isActive&&"accepted"===e.invitationStatus||"pending"===S&&"pending"===e.invitationStatus||"inactive"===S&&!e.isActive&&"accepted"===e.invitationStatus;return a&&r&&i}),[s,A,C,S]),W=async e=>{await p(e),F(`${i.inviteSent} ${e.email}`)},V=async(e,t)=>{await k(e,t),F(i.roleUpdated)},B=async e=>{await z(e),F(i.memberDeactivated)},U=async e=>{await N(e),F(i.memberReactivated)},J=async e=>{await j(e),F(i.memberRemoved)};return(0,t.jsxs)("div",{className:"max-w-5xl mx-auto py-8 px-4 sm:px-6",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between mb-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-medium text-zinc-900 dark:text-white",children:i.title}),(0,t.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 mt-1",children:i.subtitle})]}),G&&(0,t.jsxs)("button",{onClick:()=>E(!0),className:"flex items-center gap-1.5 px-4 py-2 text-sm bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg font-medium hover:bg-zinc-800 dark:hover:bg-zinc-100 transition-colors",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 16 16",children:(0,t.jsx)("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),i.inviteMember]})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mb-6",children:[{label:i.totalMembers,value:c.total},{label:i.active,value:c.active},{label:i.pendingInvite,value:c.pending},{label:i.deactivated,value:c.inactive}].map(e=>(0,t.jsxs)("div",{className:"bg-zinc-50 dark:bg-zinc-800/50 rounded-xl p-4 flex flex-col gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:e.label}),(0,t.jsx)("span",{className:"text-2xl font-medium text-zinc-900 dark:text-white",children:e.value})]},e.label))}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 mb-4",children:[(0,t.jsxs)("div",{className:"relative flex-1 min-w-48",children:[(0,t.jsxs)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-zinc-400",fill:"none",viewBox:"0 0 14 14",children:[(0,t.jsx)("circle",{cx:"6",cy:"6",r:"4.5",stroke:"currentColor",strokeWidth:"1.2"}),(0,t.jsx)("path",{d:"M10 10L13 13",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),(0,t.jsx)("input",{type:"text",placeholder:i.search,value:A,onChange:e=>R(e.target.value),className:"w-full pl-8 pr-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-900 text-zinc-900 dark:text-white placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white focus:border-transparent"})]}),(0,t.jsxs)("select",{value:C,onChange:e=>M(e.target.value),className:"px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-900 text-zinc-700 dark:text-zinc-300 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white",children:[(0,t.jsx)("option",{value:"",children:i.allRoles}),(0,t.jsx)("option",{value:"OWNER",children:i.owner}),(0,t.jsx)("option",{value:"MANAGER",children:i.manager}),(0,t.jsx)("option",{value:"AGENT",children:i.agent})]}),(0,t.jsxs)("select",{value:S,onChange:e=>T(e.target.value),className:"px-3 py-2 text-sm border border-zinc-200 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-900 text-zinc-700 dark:text-zinc-300 focus:outline-none focus:ring-2 focus:ring-zinc-900 dark:focus:ring-white",children:[(0,t.jsx)("option",{value:"",children:i.allStatuses}),(0,t.jsx)("option",{value:"active",children:i.active}),(0,t.jsx)("option",{value:"pending",children:i.pending}),(0,t.jsx)("option",{value:"inactive",children:i.deactivated})]})]}),(0,t.jsx)("div",{className:"border border-zinc-200 dark:border-zinc-700 rounded-xl overflow-hidden mb-10",children:d?(0,t.jsxs)("div",{className:"py-16 flex flex-col items-center gap-2 text-zinc-400",children:[(0,t.jsx)("div",{className:"w-5 h-5 border-2 border-zinc-200 dark:border-zinc-700 border-t-zinc-500 rounded-full animate-spin"}),(0,t.jsx)("span",{className:"text-sm",children:i.loadingTeam})]}):o?(0,t.jsx)("div",{className:"py-12 text-center text-sm text-red-500",children:o}):0===q.length?(0,t.jsx)("div",{className:"py-16 text-center",children:(0,t.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:i.noMembers})}):(0,t.jsxs)("table",{className:"w-full",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"bg-zinc-50 dark:bg-zinc-800/50 border-b border-zinc-200 dark:border-zinc-700",children:[(0,t.jsx)("th",{className:"text-left px-4 py-3 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide",children:i.member}),(0,t.jsx)("th",{className:"text-left px-4 py-3 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide",children:i.role}),(0,t.jsx)("th",{className:"text-left px-4 py-3 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide",children:i.status}),(0,t.jsx)("th",{className:"text-left px-4 py-3 text-xs font-medium text-zinc-500 dark:text-zinc-400 uppercase tracking-wide hidden sm:table-cell",children:i.lastActive}),(0,t.jsx)("th",{className:"px-4 py-3"})]})}),(0,t.jsx)("tbody",{children:q.map(a=>(0,t.jsxs)("tr",{className:"border-b border-zinc-100 dark:border-zinc-800 last:border-0 hover:bg-zinc-50 dark:hover:bg-zinc-800/30 transition-colors",children:[(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:`w-8 h-8 rounded-full flex items-center justify-center text-xs font-medium flex-shrink-0 ${g[a.id.split("").reduce((e,t)=>e+t.charCodeAt(0),0)%g.length]}`,children:(a.firstName[0]??"")+(a.lastName[0]??"")}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-sm font-medium text-zinc-900 dark:text-white",children:[a.firstName," ",a.lastName,a.id===y&&(0,t.jsx)("span",{className:"ml-1.5 text-[10px] text-zinc-400",children:i.you})]}),(0,t.jsx)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:a.email})]})]})}),(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsx)(h,{role:a.role,language:e})}),(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsx)(f,{member:a,language:e})}),(0,t.jsx)("td",{className:"px-4 py-3 hidden sm:table-cell",children:(0,t.jsx)("span",{className:"text-xs text-zinc-400 dark:text-zinc-500",children:"pending"===a.invitationStatus?"—":function(e,t){if(!e)return"fr"===t?"Jamais":"ar"===t?"أبداً":"Never";let a=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(a<2)return"fr"===t?"À l'instant":"ar"===t?"الآن":"Just now";if(a<60)return"fr"===t?`il y a ${a} min`:"ar"===t?`منذ ${a} دقيقة`:`${a}m ago`;let r=Math.floor(a/60);if(r<24)return"fr"===t?`il y a ${r}h`:"ar"===t?`منذ ${r} ساعة`:`${r}h ago`;let i=Math.floor(r/24);return i<30?"fr"===t?`il y a ${i}j`:"ar"===t?`منذ ${i} يوم`:`${i}d ago`:new Date(e).toLocaleDateString("fr"===t?"fr":"ar"===t?"ar":"en",{month:"short",day:"numeric"})}(a.lastActiveAt,e)})}),(0,t.jsx)("td",{className:"px-4 py-3 text-right",children:G&&"OWNER"!==a.role&&(0,t.jsx)("button",{onClick:()=>L(a),className:"text-xs px-3 py-1.5 border border-zinc-200 dark:border-zinc-700 rounded-lg text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors",children:i.manage})})]},a.id))})]})}),(0,t.jsx)(m,{}),(0,t.jsx)(n,{open:D,onClose:()=>E(!1),onInvite:W}),(0,t.jsx)(l,{member:I,open:!!I,onClose:()=>L(null),onUpdateRole:V,onDeactivate:B,onReactivate:U,onRemove:J}),O&&(0,t.jsxs)("div",{className:"fixed bottom-6 right-6 z-50 flex items-center gap-2 px-4 py-2.5 bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-xl shadow-lg text-sm font-medium animate-in slide-in-from-bottom-2 duration-200",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-green-400 dark:text-green-600",fill:"none",viewBox:"0 0 16 16",children:(0,t.jsx)("path",{d:"M3 8L6.5 11.5L13 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),O]})]})}],67978)}]);