PageSourceSearch

https://llredac.fr/static/js/69.7ec6cea7.chunk.js

js llredac.fr collected 2026-10-07 16:59:44 UTC 101,836 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkfrontend=globalThis.webpackChunkfrontend||[]).push([[69],{2069(e,s,a){a.r(s),a.d(s,{default:()=>ss});var t=a(5043),l=a(5685),r=a(6930),i=a(6446),n=a(6440),c=a(1140),d=a(3514),o=a(9766),m=a(579);const x=d.bL,h=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(d.B8,{ref:a,className:(0,o.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...s}));h.displayName=d.B8.displayName;const u=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(d.l9,{ref:a,className:(0,o.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...s}));u.displayName=d.l9.displayName;const g=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(d.UC,{ref:a,className:(0,o.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));g.displayName=d.UC.displayName;var p=a(4528),j=a(6328),b=a(7063),N=a(8415),v=a(9537),f=a(4212),w=a(6453),y=a(6361),_=a(2018),$=a(3534),C=a(7338),S=a(7555),R=a(4663),k=a(6888),A=a(5892),E=a(5076),z=a(984),B=a(9960),T=a(3390),L=a(2264),D=a(556),J=a(3416),Z=a(5598),P=a(4796);const I=P.bL,F=(P.l9,P.ZL),U=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(P.hJ,{className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...s,ref:a}));U.displayName=P.hJ.displayName;const M=t.forwardRef(({className:e,...s},a)=>(0,m.jsxs)(F,{children:[(0,m.jsx)(U,{}),(0,m.jsx)(P.UC,{ref:a,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...s})]}));M.displayName=P.UC.displayName;const O=({className:e,...s})=>(0,m.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-2 text-center sm:text-left",e),...s});O.displayName="AlertDialogHeader";const W=({className:e,...s})=>(0,m.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...s});W.displayName="AlertDialogFooter";const V=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(P.hE,{ref:a,className:(0,o.cn)("text-lg font-semibold",e),...s}));V.displayName=P.hE.displayName;const G=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(P.VY,{ref:a,className:(0,o.cn)("text-sm text-muted-foreground",e),...s}));G.displayName=P.VY.displayName;const q=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(P.rc,{ref:a,className:(0,o.cn)((0,T.r)(),e),...s}));q.displayName=P.rc.displayName;const H=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)(P.ZD,{ref:a,className:(0,o.cn)((0,T.r)({variant:"outline"}),"mt-2 sm:mt-0",e),...s}));H.displayName=P.ZD.displayName;var K=a(1740),Q=a(9971),Y=a(2013),X=a(6381),ee=a(639),se=a(9969),ae=a(1622),te=a(4062),le=a(9468),re=a(8967),ie=a(513),ne=a(5094);const ce="https://llredac.fr/api";function de({users:e,token:s,onRefresh:a}){const{t:l,i18n:i}=(0,r.Bd)(),[n,d]=(0,t.useState)(null),[o,x]=(0,t.useState)(0),[h,u]=(0,t.useState)(""),[g,p]=(0,t.useState)(""),[N,v]=(0,t.useState)(!1),[w,y]=(0,t.useState)(!1),[$,R]=(0,t.useState)(""),[k,A]=(0,t.useState)(!1),[E,z]=(0,t.useState)(!1),[B,P]=(0,t.useState)(!1),[F,U]=(0,t.useState)(null),[de,oe]=(0,t.useState)(!1),[me,xe]=(0,t.useState)(""),[he,ue]=(0,t.useState)(!1),[ge,pe]=(0,t.useState)(null),[je,be]=(0,t.useState)(!1),[Ne,ve]=(0,t.useState)(!1),[fe,we]=(0,t.useState)(!1),[ye,_e]=(0,t.useState)("starter"),[$e,Ce]=(0,t.useState)(30);(0,t.useEffect)(()=>{s&&(async()=>{try{const e=await b.A.get(`${ce}/admin/imported-users/stats`,{headers:{Authorization:`Bearer ${s}`}});U(e.data)}catch(e){console.error("Error fetching imported stats:",e)}})()},[s]);const Se=e=>{if(!e)return"N/A";const s="en"===i.language?"en-US":"fr-FR";return new Date(e).toLocaleDateString(s)};return(0,m.jsxs)(m.Fragment,{children:[F&&F.total_imported>0&&(0,m.jsxs)(c.Zp,{className:"glass border-white/10 mb-6",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(K.n,{weight:"duotone",className:"w-5 h-5 text-blue-400"}),"Emails de bienvenue - Clients import\xe9s"]})}),(0,m.jsx)(c.Wu,{children:(0,m.jsxs)("div",{className:"flex flex-wrap items-center gap-6",children:[(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-white",children:F.total_imported}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"Total import\xe9s"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-green-400",children:F.emails_sent}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"Emails envoy\xe9s"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-orange-400",children:F.emails_pending}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"En attente"})]})]}),(0,m.jsx)("div",{className:"flex-1"}),(0,m.jsxs)(T.$,{onClick:()=>ue(!0),disabled:0===F.emails_pending,className:"bg-blue-600 hover:bg-blue-700 text-white",children:[(0,m.jsx)(S.M,{weight:"bold",className:"w-4 h-4 mr-2"}),"G\xe9rer les emails de bienvenue"]})]})})]}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(Q.G,{weight:"duotone",className:"w-5 h-5 text-lime"}),l("admin.users.title")," (",e.length,")"]})}),(0,m.jsx)(c.Wu,{children:(0,m.jsx)("div",{className:"overflow-x-auto",children:(0,m.jsxs)("table",{className:"w-full text-sm",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"border-b border-border",children:[(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"Nom"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:l("admin.users.email")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"T\xe9l\xe9phone"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:l("admin.users.plan")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:l("admin.users.credits")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:l("admin.users.registered")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:l("admin.users.actions")})]})}),(0,m.jsx)("tbody",{children:e.map(e=>{var s;return(0,m.jsxs)("tr",{className:"border-b border-border/50 hover:bg-white/5",children:[(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("div",{className:"w-8 h-8 rounded-full bg-lime/20 flex items-center justify-center",children:(0,m.jsx)("span",{className:"text-lime font-semibold text-sm",children:null===(s=e.name||e.email)||void 0===s?void 0:s.charAt(0).toUpperCase()})}),(0,m.jsx)("span",{className:"font-medium",children:e.name||"-"})]})}),(0,m.jsx)("td",{className:"p-3 text-gray-400",children:e.email}),(0,m.jsx)("td",{className:"p-3 text-gray-400",children:e.phone||"-"}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsx)("span",{className:"px-2 py-1 rounded-full text-xs "+("enterprise"===e.plan?"bg-purple-500/20 text-purple-400":"pro"===e.plan?"bg-lime/20 text-lime":"bg-gray-500/20 text-gray-400"),children:e.plan||"free"})}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("span",{className:"flex items-center gap-1",children:[(0,m.jsx)(f.T,{weight:"fill",className:"w-4 h-4 text-yellow-500"}),e.credits||0]})}),(0,m.jsx)("td",{className:"p-3 text-gray-400",children:Se(e.created_at)}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>{return d(s=e),x(s.credits||0),u(""),p(""),R(""),void A(!1);var s},className:"text-lime hover:text-lime/80","data-testid":`edit-user-${e.id}`,children:(0,m.jsx)(Y.I,{weight:"bold",className:"w-4 h-4"})}),(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>pe(e),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10","data-testid":`delete-user-${e.id}`,children:(0,m.jsx)(X.l,{weight:"bold",className:"w-4 h-4"})})]})})]},e.id)})})]})})})]}),(0,m.jsx)(Z.lG,{open:!!n,onOpenChange:e=>!e&&d(null),children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10 max-w-lg max-h-[90vh] overflow-y-auto",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{className:"flex items-center gap-2",children:[(0,m.jsx)(Q.G,{weight:"duotone",className:"w-5 h-5 text-lime"}),l("admin.users.details")]})}),n&&(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)("div",{className:"p-4 rounded-lg bg-white/5 space-y-2",children:[(0,m.jsxs)("p",{className:"flex items-center gap-2",children:[(0,m.jsx)(ee.K,{weight:"bold",className:"w-4 h-4 text-lime"}),(0,m.jsx)("span",{className:"text-gray-400",children:"Nom complet:"}),(0,m.jsx)("span",{className:"font-medium",children:n.name||"-"})]}),(n.firstName||n.lastName)&&(0,m.jsx)("p",{className:"flex items-center gap-2 pl-6",children:(0,m.jsxs)("span",{className:"text-gray-500 text-sm",children:["Pr\xe9nom: ",(0,m.jsx)("span",{className:"text-gray-300",children:n.firstName||"-"})," | Nom: ",(0,m.jsx)("span",{className:"text-gray-300",children:n.lastName||"-"})]})}),(0,m.jsxs)("p",{children:[(0,m.jsxs)("span",{className:"text-gray-400",children:[l("admin.users.email"),":"]})," ",n.email]}),(0,m.jsxs)("p",{className:"flex items-center gap-2",children:[(0,m.jsx)(se.b,{weight:"bold",className:"w-4 h-4 text-blue-400"}),(0,m.jsx)("span",{className:"text-gray-400",children:"T\xe9l\xe9phone:"}),(0,m.jsx)("span",{className:"font-medium",children:n.phone||"-"})]}),(0,m.jsxs)("p",{children:[(0,m.jsxs)("span",{className:"text-gray-400",children:[l("admin.users.plan"),":"]}),(0,m.jsx)("span",{className:"ml-2 px-2 py-0.5 rounded-full text-xs "+("enterprise"===n.plan?"bg-purple-500/20 text-purple-400":"pro"===n.plan?"bg-lime/20 text-lime":"starter"===n.plan?"bg-blue-500/20 text-blue-400":"bg-gray-500/20 text-gray-400"),children:n.plan||"free"})]}),(0,m.jsxs)("p",{children:[(0,m.jsx)("span",{className:"text-gray-400",children:"Statut abonnement:"}),(0,m.jsx)("span",{className:"ml-2 px-2 py-0.5 rounded-full text-xs "+("active"===n.subscription_status?"bg-green-500/20 text-green-400":"bg-gray-500/20 text-gray-400"),children:n.subscription_status||"inactif"})]}),n.subscription_end&&(0,m.jsxs)("p",{children:[(0,m.jsx)("span",{className:"text-gray-400",children:"Fin d'abonnement:"}
1)," ",Se(n.subscription_end)]}),(0,m.jsxs)("p",{children:[(0,m.jsxs)("span",{className:"text-gray-400",children:[l("admin.users.registeredOn"),":"]})," ",Se(n.created_at)]})]}),(0,m.jsxs)("div",{className:"space-y-3 p-4 rounded-lg bg-green-500/10 border border-green-500/20",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(_.y,{weight:"bold",className:"w-4 h-4 text-green-500"}),"Activer / Modifier l'abonnement"]}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{className:"text-xs text-gray-400 mb-1 block",children:"Plan"}),(0,m.jsxs)("select",{value:ye,onChange:e=>_e(e.target.value),className:"w-full bg-white/5 border border-white/10 rounded-md px-3 py-2 text-sm",children:[(0,m.jsx)("option",{value:"starter",children:"Starter (10 cr\xe9dits)"}),(0,m.jsx)("option",{value:"pro",children:"Pro (30 cr\xe9dits)"}),(0,m.jsx)("option",{value:"enterprise",children:"Enterprise (100 cr\xe9dits)"})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{className:"text-xs text-gray-400 mb-1 block",children:"Dur\xe9e (jours)"}),(0,m.jsx)(L.p,{type:"number",value:$e,onChange:e=>Ce(parseInt(e.target.value)||30),min:1,max:365,className:"bg-white/5 border-white/10"})]})]}),(0,m.jsxs)(T.$,{onClick:async()=>{if(n){we(!0);try{const e=await b.A.post(`${ce}/admin/users/${n.id}/activate-subscription`,{plan:ye,days:$e},{headers:{Authorization:`Bearer ${s}`}});j.oR.success(`Abonnement ${ye} activ\xe9 pour ${n.email}`),ve(!1),d(e.data.user),a()}catch(e){j.oR.error("Erreur lors de l'activation de l'abonnement")}finally{we(!1)}}},disabled:fe,className:"w-full bg-green-500 text-white hover:bg-green-600","data-testid":"activate-subscription-btn",children:[(0,m.jsx)(_.y,{weight:"bold",className:"w-4 h-4 mr-2"}),fe?"Activation...":"Activer l'abonnement"]})]}),(0,m.jsxs)("div",{className:"space-y-3 p-4 rounded-lg bg-orange-500/10 border border-orange-500/20",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(ae.U,{weight:"bold",className:"w-4 h-4 text-orange-500"}),"Changer le mot de passe"]}),(0,m.jsx)("div",{className:"flex gap-2",children:(0,m.jsxs)("div",{className:"relative flex-1",children:[(0,m.jsx)(L.p,{type:k?"text":"password",value:$,onChange:e=>R(e.target.value),placeholder:"Nouveau mot de passe",className:"bg-white/5 border-white/10 pr-20"}),(0,m.jsxs)("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex gap-1",children:[(0,m.jsx)("button",{type:"button",onClick:()=>A(!k),className:"p-1 text-gray-400 hover:text-white",children:k?(0,m.jsx)(te.L,{weight:"bold",className:"w-4 h-4"}):(0,m.jsx)(le.k,{weight:"bold",className:"w-4 h-4"})}),$&&(0,m.jsx)("button",{type:"button",onClick:()=>{navigator.clipboard.writeText($),P(!0),setTimeout(()=>P(!1),2e3),j.oR.success("Mot de passe copi\xe9 !")},className:"p-1 text-gray-400 hover:text-white",children:B?(0,m.jsx)(re.J,{weight:"bold",className:"w-4 h-4 text-green-500"}):(0,m.jsx)(ie.Q,{weight:"bold",className:"w-4 h-4"})})]})]})}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>{const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%";let s="";for(let a=0;a<12;a++)s+=e.charAt(Math.floor(67*Math.random()));R(s),A(!0)},className:"flex-1",children:"G\xe9n\xe9rer"}),(0,m.jsx)(T.$,{onClick:async()=>{if(n&&$)if($.length<6)j.oR.error("Le mot de passe doit faire au moins 6 caract\xe8res");else{z(!0);try{await b.A.put(`${ce}/admin/users/${n.id}/password`,{password:$},{headers:{Authorization:`Bearer ${s}`}}),j.oR.success("Mot de passe mis \xe0 jour avec succ\xe8s !")}catch(e){j.oR.error("Erreur lors de la mise \xe0 jour du mot de passe")}finally{z(!1)}}else j.oR.error("Veuillez entrer un nouveau mot de passe")},disabled:E||!$,className:"flex-1 bg-orange-500 text-white hover:bg-orange-600",children:E?"...":"Appliquer"})]})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(f.T,{weight:"bold",className:"w-4 h-4 text-yellow-500"}),l("admin.users.credits")]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(L.p,{type:"number",value:o,onChange:e=>x(parseInt(e.target.value)||0),className:"bg-white/5 border-white/10"}),(0,m.jsx)(T.$,{onClick:async()=>
1{if(n){y(!0);try{await b.A.put(`${ce}/admin/users/${n.id}/credits`,{credits:o},{headers:{Authorization:`Bearer ${s}`}}),j.oR.success(l("admin.users.creditsUpdated")),a(),d(e=>({...e,credits:o}))}catch(e){j.oR.error(l("admin.users.updateError"))}finally{y(!1)}}},disabled:w,className:"bg-lime text-obsidian hover:bg-lime/90",children:l(w?"admin.users.updating":"admin.users.updateCredits")})]})]}),(0,m.jsxs)("div",{className:"space-y-3 pt-4 border-t border-white/10",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(C.v,{weight:"bold",className:"w-4 h-4 text-blue-400"}),l("admin.users.sendEmail")]}),(0,m.jsx)(L.p,{placeholder:l("admin.users.subject"),value:h,onChange:e=>u(e.target.value),className:"bg-white/5 border-white/10"}),(0,m.jsx)(J.T,{placeholder:l("admin.users.message"),value:g,onChange:e=>p(e.target.value),rows:4,className:"bg-white/5 border-white/10"}),(0,m.jsx)(T.$,{onClick:async()=>{if(n&&h&&g){v(!0);try{await b.A.post(`${ce}/admin/users/${n.id}/send-email`,{subject:h,message:g},{headers:{Authorization:`Bearer ${s}`}}),j.oR.success(l("admin.users.emailSent")),u(""),p("")}catch(e){j.oR.error(l("admin.users.emailError"))}finally{v(!1)}}else j.oR.error(l("admin.users.fillAllFields"))},disabled:N||!h||!g,className:"w-full",variant:"outline",children:l(N?"admin.users.sending":"admin.users.send")})]})]})]})}),(0,m.jsx)(Z.lG,{open:he,onOpenChange:ue,children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10 max-w-lg",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{className:"flex items-center gap-2",children:[(0,m.jsx)(S.M,{weight:"duotone",className:"w-5 h-5 text-blue-400"}),"Emails de bienvenue"]})}),(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-4 p-4 rounded-lg bg-white/5",children:[(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-xl font-bold text-white",children:(null===F||void 0===F?void 0:F.total_imported)||0}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"Import\xe9s"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-xl font-bold text-green-400",children:(null===F||void 0===F?void 0:F.emails_sent)||0}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"Envoy\xe9s"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-xl font-bold text-orange-400",children:(null===F||void 0===F?void 0:F.emails_pending)||0}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"En attente"})]})]}),(0,m.jsxs)("div",{className:"space-y-3 p-4 rounded-lg bg-blue-500/10 border border-blue-500/20",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2 text-blue-400",children:[(0,m.jsx)(C.v,{weight:"bold",className:"w-4 h-4"}),"Envoyer un email de test"]}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Testez l'email de bienvenue avant d'envoyer \xe0 tous les clients."}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(L.p,{type:"email",placeholder:"[email protected]",value:me,onChange:e=>xe(e.target.value),className:"bg-white/5 border-white/10"}),(0,m.jsx)(T.$,{onClick:async()=>{if(me){oe(!0);try{await b.A.post(`${ce}/admin/imported-users/send-welcome-emails?test_mode=true&test_email=${encodeURIComponent(me)}`,{},{headers:{Authorization:`Bearer ${s}`}});j.oR.success(`Email de test envoy\xe9 \xe0 ${me}`)}catch(e){j.oR.error("Erreur lors de l'envoi du test")}finally{oe(!1)}}else j.oR.error("Veuillez entrer un email de test")},disabled:de||!me,className:"bg-blue-600 hover:bg-blue-700 whitespace-nowrap",children:de?"...":"Tester"})]})]}),(0,m.jsxs)("div",{className:"space-y-3 p-4 rounded-lg bg-orange-500/10 border border-orange-500/20",children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2 text-orange-400",children:[(0,m.jsx)(ne.N,{weight:"bold",className:"w-4 h-4"}),"Envoyer \xe0 tous les clients"]}),(0,m.jsxs)("p",{className:"text-sm text-gray-400",children:["Cette action enverra un email de bienvenue avec les identifiants \xe0 ",(0,m.jsxs)("strong",{children:[(null===F||void 0===F?void 0:F.emails_pending)||0," clients"]})," en attente."]}),(0,m.jsxs)(T.$,{onClick:async()=>
1{if(window.confirm(`\xcates-vous s\xfbr de vouloir envoyer ${(null===F||void 0===F?void 0:F.emails_pending)||0} emails de bienvenue ?`)){oe(!0);try{const e=await b.A.post(`${ce}/admin/imported-users/send-welcome-emails`,{},{headers:{Authorization:`Bearer ${s}`}});j.oR.success(`${e.data.sent} emails envoy\xe9s avec succ\xe8s !`),e.data.failed>0&&j.oR.error(`${e.data.failed} emails ont \xe9chou\xe9`);const a=await b.A.get(`${ce}/admin/imported-users/stats`,{headers:{Authorization:`Bearer ${s}`}});U(a.data),ue(!1)}catch(e){j.oR.error("Erreur lors de l'envoi des emails")}finally{oe(!1)}}},disabled:de||0===(null===F||void 0===F?void 0:F.emails_pending),className:"w-full bg-orange-500 text-white hover:bg-orange-600",children:[(0,m.jsx)(S.M,{weight:"bold",className:"w-4 h-4 mr-2"}),de?"Envoi en cours...":`Envoyer ${(null===F||void 0===F?void 0:F.emails_pending)||0} emails`]})]})]})]})}),(0,m.jsx)(I,{open:!!ge,onOpenChange:e=>!e&&pe(null),children:(0,m.jsxs)(M,{className:"glass border-white/10",children:[(0,m.jsxs)(O,{children:[(0,m.jsxs)(V,{className:"flex items-center gap-2 text-red-400",children:[(0,m.jsx)(X.l,{weight:"duotone",className:"w-5 h-5"}),"Supprimer l'utilisateur ?"]}),(0,m.jsxs)(G,{className:"text-gray-400",children:["\xcates-vous s\xfbr de vouloir supprimer ",(0,m.jsx)("strong",{className:"text-white",children:null===ge||void 0===ge?void 0:ge.email})," ?",(0,m.jsx)("br",{}),(0,m.jsx)("br",{}),"Cette action est irr\xe9versible et supprimera \xe9galement tous les articles de cet utilisateur."]})]}),(0,m.jsxs)(W,{children:[(0,m.jsx)(H,{className:"border-white/20 hover:bg-white/10",disabled:je,children:"Annuler"}),(0,m.jsx)(q,{onClick:async()=>{if(ge){be(!0);try{await b.A.delete(`${ce}/admin/users/${ge.id}`,{headers:{Authorization:`Bearer ${s}`}}),j.oR.success(`Utilisateur ${ge.email} supprim\xe9 avec succ\xe8s`),pe(null),a()}catch(t){var e;400===(null===(e=t.response)||void 0===e?void 0:e.status)?j.oR.error("Impossible de supprimer votre propre compte"):j.oR.error("Erreur lors de la suppression de l'utilisateur")}finally{be(!1)}}},disabled:je,className:"bg-red-500 text-white hover:bg-red-600","data-testid":"confirm-delete-user",children:je?"Suppression...":"Supprimer"})]})]})})]})}function oe({plans:e,token:s,onRefresh:a}){const{t:l}=(0,r.Bd)(),[i,n]=(0,t.useState)(null),[d,o]=(0,t.useState)(0),[x,h]=(0,t.useState)(0),[u,g]=(0,t.useState)("");return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(_.y,{weight:"duotone",className:"w-5 h-5 text-lime"}),l("admin.plans.title")]})}),(0,m.jsx)(c.Wu,{children:(0,m.jsx)("div",{className:"grid md:grid-cols-3 gap-6",children:e.map(e=>{var s;return(0,m.jsxs)("div",{className:"p-6 rounded-xl border "+(e.popular?"border-lime bg-lime/5":"border-white/10 bg-white/5"),children:[(0,m.jsxs)("div",{className:"flex justify-between items-start mb-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("h3",{className:"font-outfit font-semibold text-lg",children:e.name}),(0,m.jsxs)("p",{className:"text-2xl font-bold mt-1",children:[e.price,"\u20ac",(0,m.jsx)("span",{className:"text-sm text-gray-400",children:l("pricing.month")})]})]}),(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>(e=>{var s;n(e),o(e.price||0),h(e.credits||0),g((null===(s=e.features)||void 0===s?void 0:s.join("\n"))||"")})(e),className:"text-lime",children:(0,m.jsx)(Y.I,{weight:"bold",className:"w-4 h-4"})})]}),(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,m.jsx)(f.T,{weight:"fill",className:"w-5 h-5 text-yellow-500"}),(0,m.jsxs)("span",{className:"font-medium",children:[e.credits," ",l("pricing.credits")]})]}),(0,m.jsx)("ul",{className:"space-y-2 text-sm text-gray-400",children:null===(s=e.features)||void 0===s?void 0:s.map((e,s)=>(0,m.jsxs)("li",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-lime",children:"\u2713"})," ",e]},s))})]},e.id)})})})]}),(0,m.jsx)(Z.lG,{open:!!i,onOpenChange:e=>!e&&n(null),children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{children:[l("admin.plans.editPlan")," ",null===i||void 0===i?void 0:i.name]})}),(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:l("admin.plans.price")}),(0,m.jsx)(L.p,{type:"number",value:d,onChange:e=>o(parseFloat(e.target.value)||0),className:"bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:l("admin.plans.monthlyCredits")}),(0,m.jsx)(L.p,{type:"number",value:x,onChange:e=>h(parseInt(e.target.value)||0),className:"bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:l("admin.plans.features")}),(0,m.jsx)(J.T,{value:u,onChange:e=>g(e.target.value),rows:5,className:"bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{className:"flex gap-2 justify-end",children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>n(null),children:l("admin.plans.cancel")}),(0,m.jsx)(T.$,{onClick:async()=>
1{if(i)try{await b.A.put(`https://llredac.fr/api/admin/plans/${i.id}`,{price:d,credits:x,features:u.split("\n").filter(e=>e.trim())},{headers:{Authorization:`Bearer ${s}`}}),j.oR.success(l("admin.plans.updated")),n(null),a()}catch(e){j.oR.error(l("admin.plans.updateError"))}},className:"bg-lime text-obsidian hover:bg-lime/90",children:l("admin.plans.save")})]})]})]})})]})}function me({config:e,token:s,onRefresh:a}){const{t:l}=(0,r.Bd)(),[i,n]=(0,t.useState)(""),[d,o]=(0,t.useState)(""),[x,h]=(0,t.useState)(!1),[u,g]=(0,t.useState)(!1);(0,t.useEffect)(()=>{null!==e&&void 0!==e&&e.stripe_api_key_preview&&n(e.stripe_api_key_preview),null!==e&&void 0!==e&&e.stripe_publishable_key_preview&&o(e.stripe_publishable_key_preview)},[e]);const p=null===e||void 0===e?void 0:e.stripe_api_key_set,N=null===e||void 0===e?void 0:e.stripe_publishable_key_set;return(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(E.O,{weight:"duotone",className:"w-5 h-5 text-lime"}),l("admin.settings.title")]})}),(0,m.jsxs)(c.Wu,{className:"space-y-6",children:[(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)(D.J,{children:l("admin.settings.stripeSecretKey","Stripe Secret Key (sk_...)")}),p&&(0,m.jsxs)("span",{className:"flex items-center gap-1 text-xs text-lime bg-lime/10 px-2 py-0.5 rounded-full",children:[(0,m.jsx)(re.J,{weight:"bold",className:"w-3 h-3"}),"Configur\xe9e"]})]}),(0,m.jsx)("div",{className:"flex gap-2",children:(0,m.jsxs)("div",{className:"relative flex-1",children:[(0,m.jsx)(L.p,{type:x?"text":"password",value:i,onChange:e=>n(e.target.value),placeholder:"sk_live_... ou sk_test_...",className:"bg-white/5 border-white/10 pr-10 "+(p?"border-lime/30":"")}),(0,m.jsx)("button",{type:"button",onClick:()=>h(!x),className:"absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 hover:text-white",children:x?(0,m.jsx)(te.L,{weight:"bold",className:"w-4 h-4"}):(0,m.jsx)(le.k,{weight:"bold",className:"w-4 h-4"})})]})}),(0,m.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:l("admin.settings.stripeSecretHint","Cl\xe9 secr\xe8te pour les paiements c\xf4t\xe9 serveur. Ne jamais partager.")})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)(D.J,{children:l("admin.settings.stripePublishableKey","Stripe Publishable Key (pk_...)")}),N&&(0,m.jsxs)("span",{className:"flex items-center gap-1 text-xs text-lime bg-lime/10 px-2 py-0.5 rounded-full",children:[(0,m.jsx)(re.J,{weight:"bold",className:"w-3 h-3"}),"Configur\xe9e"]})]}),(0,m.jsx)("div",{className:"flex gap-2",children:(0,m.jsx)(L.p,{type:"text",value:d,onChange:e=>o(e.target.value),placeholder:"pk_live_... ou pk_test_...",className:"bg-white/5 border-white/10 flex-1 "+(N?"border-lime/30":"")})}),(0,m.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:l("admin.settings.stripePublishableHint","Cl\xe9 publique pour le formulaire de paiement c\xf4t\xe9 client.")})]}),(0,m.jsx)(T.$,{onClick:async()=>{const e=i&&!i.includes("..."),t=d&&!d.includes("...");if(e||t){g(!0);try{const r={};e&&(r.stripe_api_key=i),t&&(r.stripe_publishable_key=d),await b.A.put("https://llredac.fr/api/admin/config",r,{headers:{Authorization:`Bearer ${s}`}}),j.oR.success(l("admin.settings.saved")),a()}catch(r){j.oR.error(l("admin.settings.saveError"))}finally{g(!1)}}else j.oR.error("Entrez une nouvelle cl\xe9 pour sauvegarder")},disabled:u,className:"bg-lime text-obsidian hover:bg-lime/90 w-full",children:l(u?"admin.settings.saving":"admin.settings.save")}),(0,m.jsxs)("div",{className:"p-4 bg-blue/10 border border-blue/20 rounded-lg",children:[(0,m.jsx)("p",{className:"text-sm text-blue-300",children:(0,m.jsxs)("strong",{children:["\ud83d\udccb ",l("admin.settings.whereToFind","O\xf9 trouver vos cl\xe9s Stripe ?")]})}),(0,m.jsxs)("p",{className:"text-xs text-gray-400 mt-2",children:["1. Connectez-vous \xe0 ",(0,m.jsx)("a",{href:"https://dashboard.stripe.com",target:"_blank",rel:"noopener noreferrer",className:"text-lime underline",children:"dashboard.stripe.com"}),(0,m.jsx)("br",{}),"2. Allez dans ",(0,m.jsx)("strong",{children:"Developers \u2192 API Keys"}),(0,m.jsx)("br",{}),"3. Copiez la ",(0,m.jsx)("strong",{children:"Secret key"})," (sk_...) et la ",(0,m.jsx)("strong",{children:"Publishable key"})," (pk_...)"]}),(0,m.jsxs)("p",{className:"text-xs text-yellow-400 mt-2",children:["\u26a0\ufe0f En mode test, utilisez les cl\xe9s qui commencent par ",(0,m.jsx)("code",{children:"sk_test_"})," et ",(0,m.jsx)("code",{children:"pk_test_"})]})]})]})]})}var xe=a(4370),he=a(4712),ue=a(8423),ge=a(8910),pe=a(645),je=a(88),be=a(3938),Ne=a(1353),ve=a(3665),fe=a(5066),we=a(8712),ye=a(6733);const _e="https://llredac.fr/api",$e=["SEO","Content Marketing","R\xe9daction Web","Intelligence Artificielle","Marketing Digital","E-commerce","R\xe9seaux Sociaux","Blogging"];function Ce({token:e,blogStats:s,onRefresh:a}){var l;const{t:i,i18n:n}=(0,r.Bd)(),[d,o]=(0,t.useState)([]),[p,N]=(0,t.useState)(1),[v,f]=(0,t.useState)(1),[w,y]=(0,t.useState)(""),[_,$]=(0,t.useState)(""),[C,S]=(0,t.useState)(null),[A,E]=(0,t.useState)(""),[z,B]=(0,t.useState)(null),[P,I]=(0,t.useState)(!1),[F,U]=(0,t.useState)(""),[M,O]=(0,t.useState)(""),[W,V]=(0,t.useState)(""),[G,q]=(0,t.useState)(""),[H,K]=(0,t.useState)(!0),[Q,ee]=(0,t.useState)(""),[se,ae]=(0,t.useState)(""),[te,re]=(0,t.useState)(""),[ie,ne]=(0,t.useState)(""),[ce,de]=(0,t.useState)(!1),[oe,me]=(0,t.useState)("edit"),[Ce,Se]=(0,t.useState)(!1),[Re,ke]=(0,t.useState)(!1),[Ae,Ee]=(0,t.useState)(!1),[ze,Be]=(0,t.useState)(""),[Te,Le]=(0,t.useState)("professionnel"),[De,Je]=(0,t.useState)("moyen"),[Ze,Pe]=(0,t.useState)("gpt"),[Ie,Fe]=(0,t.useState)(!1),[Ue,Me]=(0,t.useState)(null),[Oe,We]=(0,t.useState)(!1),Ve=(n.language||"fr").substring(0,2),Ge=async()=>{try{const s=await b.A.get(`${_e}/admin/blog/translation-status`,{headers:{Authorization:`Bearer ${e}`}});Me(s.data)}catch(s){console.error("Error fetching translation status:",s)}},qe=async()=>{try{const s=new URLSearchParams({page:p.toString(),limit:"20"});w&&s.append("search",w),s.append("lang",Ve);const a=await b.A.get(`${_e}/admin/blog/posts?${s}`,{headers:{Authorization:`Bearer ${e}`}});o(a.data.posts),f(a.data.pages)}catch(s){console.error("Error fetching posts:",s)}};(0,t.useEffect)(()=>{e&&qe()},[p,w,e,Ve]),(0,t.useEffect)(()=>{e&&Ge()},[e]);const He=async(s,a)=>
1{if(!s)return;const t="thumb"===a?Se:ke,l="thumb"===a?ee:ae;t(!0);try{const a=new FormData;a.append("file",s);l((await b.A.post(`${_e}/upload/image`,a,{headers:{Authorization:`Bearer ${e}`,"Content-Type":"multipart/form-data"}})).data.url),j.oR.success("Image upload\xe9e")}catch(r){j.oR.error("Erreur lors de l'upload")}finally{t(!1)}},Ke=e=>{if(!e)return"";const s="en"===n.language?"en-US":"fr-FR";return new Date(e).toLocaleDateString(s)};return(0,m.jsxs)("div",{className:"space-y-6",children:[s&&(0,m.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)("p",{className:"text-3xl font-bold text-lime",children:s.total}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:i("admin.blog.stats.totalPosts")})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)("p",{className:"text-3xl font-bold text-green-400",children:s.published}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:i("admin.blog.stats.published")})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)("p",{className:"text-3xl font-bold text-yellow-400",children:s.unpublished}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:i("admin.blog.draft")})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)("p",{className:"text-3xl font-bold text-blue-400",children:s.categories}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:i("admin.blog.stats.categories")})]})})]}),Ue&&(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsx)(c.Wu,{className:"p-4",children:(0,m.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-between gap-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsx)("div",{className:"w-12 h-12 rounded-full bg-blue-500/10 flex items-center justify-center",children:(0,m.jsx)("span",{className:"text-xl",children:"\ud83c\udf0d"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"font-medium text-white",children:"fr"===n.language?"Traductions anglaises":"English translations"}),(0,m.jsxs)("p",{className:"text-sm text-gray-400",children:[Ue.cached_translations," / ",Ue.total_posts," articles (",Ue.coverage_percent,"%)"]})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsx)("div",{className:"w-32 h-2 bg-white/10 rounded-full overflow-hidden",children:(0,m.jsx)("div",{className:"h-full bg-lime transition-all duration-500",style:{width:`${Ue.coverage_percent}%`}})}),null!==(l=Ue.task_status)&&void 0!==l&&l.running?(0,m.jsxs)("div",{className:"flex items-center gap-2 text-lime",children:[(0,m.jsx)(he.e,{className:"w-4 h-4 animate-spin"}),(0,m.jsxs)("span",{className:"text-sm",children:[Ue.task_status.translated," / ",Ue.task_status.total]})]}):(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)(T.$,{onClick:async()=>{if(window.confirm("fr"===n.language?"Vider le cache de traduction pour tous les articles ?":"Clear translation cache for all articles?"))try{const s=await b.A.delete(`${_e}/admin/blog/translation-cache-all`,{headers:{Authorization:`Bearer ${e}`}});j.oR.success("fr"===n.language?`${s.data.deleted_count} traductions supprim\xe9es du cache`:`${s.data.deleted_count} translations cleared from cache`),Ge()}catch(s){j.oR.error("fr"===n.language?"Erreur":"Error")}},variant:"outline",size:"sm",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",title:"fr"===n.language?"Vider le cache et forcer la re-traduction de tous les articles":"Clear cache and force re-translation of all articles",children:[(0,m.jsx)(ue.P,{weight:"bold",className:"w-4 h-4 mr-1"}),"fr"===n.language?"Vider cache":"Clear cache"]}),(0,m.jsx)(T.$,{onClick:async()=>{We(!0);try{await b.A.post(`${_e}/admin/blog/pre-translate`,{},{headers:{Authorization:`Bearer ${e}`}}),j.oR.success("fr"===n.language?"Traduction d\xe9marr\xe9e en arr
1i\xe8re-plan":"Translation started in background");const s=setInterval(async()=>{const a=await b.A.get(`${_e}/admin/blog/translation-status`,{headers:{Authorization:`Bearer ${e}`}});Me(a.data),a.data.task_status.running||(clearInterval(s),We(!1),j.oR.success("fr"===n.language?"Traduction termin\xe9e !":"Translation completed!"))},5e3)}catch(s){We(!1),j.oR.error("Error starting translation")}},disabled:Oe||Ue.coverage_percent>=100,variant:"outline",size:"sm",className:"border-blue-500/30 text-blue-400 hover:bg-blue-500/10",children:Ue.coverage_percent>=100?"fr"===n.language?"Complet \u2713":"Complete \u2713":"fr"===n.language?"Pr\xe9-traduire":"Pre-translate"})]})]})]})})}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(k.n,{weight:"duotone",className:"w-5 h-5 text-lime"}),i("admin.blog.title")]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)(T.$,{onClick:()=>Ee(!0),variant:"outline",className:"border-lime/30 text-lime hover:bg-lime/10",children:[(0,m.jsx)(ge.d,{weight:"bold",className:"w-4 h-4 mr-2"}),i("admin.blog.batchGenerate")]}),(0,m.jsxs)(T.$,{onClick:()=>{B(null),U(""),O(""),V(""),q(""),K(!0),ee(""),ae(""),re(""),ne(""),I(!0),me("edit")},className:"bg-lime text-obsidian hover:bg-lime/90",children:[(0,m.jsx)(pe.F,{weight:"bold",className:"w-4 h-4 mr-2"}),i("admin.blog.newArticle")]})]})]})}),(0,m.jsxs)(c.Wu,{children:[(0,m.jsxs)("form",{onSubmit:e=>{e.preventDefault(),y(_),N(1)},className:"flex gap-2 mb-6",children:[(0,m.jsx)(L.p,{placeholder:i("admin.blog.search"),value:_,onChange:e=>$(e.target.value),className:"bg-white/5 border-white/10","data-testid":"blog-search-input"}),(0,m.jsx)(T.$,{type:"submit",variant:"outline","data-testid":"blog-search-btn",children:(0,m.jsx)(R.e,{weight:"bold",className:"w-4 h-4"})})]}),(0,m.jsx)("div",{className:"overflow-x-auto",children:(0,m.jsxs)("table",{className:"w-full text-sm",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"border-b border-border",children:[(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:i("admin.blog.table.title")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:i("admin.blog.table.category")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:i("admin.blog.table.status")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:i("admin.blog.table.date")}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:i("admin.blog.table.actions")})]})}),(0,m.jsx)("tbody",{children:d.map((s,a)=>(0,m.jsxs)("tr",{className:"border-b border-border/50",children:[(0,m.jsxs)("td",{className:"p-3",children:[(0,m.jsx)("div",{className:"max-w-xs truncate font-medium",children:s.title}),(0,m.jsx)("div",{className:"text-xs text-gray-500 truncate",children:s.slug})]}),(0,m.jsx)("td",{className:"p-3",children:s.category&&(0,m.jsx)("span",{className:"px-2 py-1 rounded-full text-xs bg-blue-500/20 text-blue-400",children:i(`categories.${s.category}`,s.category)})}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsx)("button",{onClick:()=>(async s=>{try{await b.A.put(`${_e}/admin/blog/posts/${s.id}`,{published:!s.published},{headers:{Authorization:`Bearer ${e}`}}),j.oR.success(s.published?"Article d\xe9publi\xe9":"Article publi\xe9"),qe()}catch(a){j.oR.error("Erreur")}})(s),className:"px-2 py-1 rounded-full text-xs transition-colors "+(s.published?"bg-green-500/20 text-green-400 hover:bg-green-500/30":"bg-yellow-500/20 text-yellow-400 hover:bg-yellow-500/30"),children:s.published?i("admin.blog.published"):i("admin.blog.draft")})}),(0,m.jsx)("td",{className:"p-3 text-gray-400",children:Ke(s.created_at)}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("div",{className:"flex gap-1",children:[(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>window.open(`/${s.slug}`,"_blank"),className:"text-gray-400 hover:text-white",children:(0,m.jsx)(le.k,{weight:"bold",className:"w-4 h-4"})}),(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>(async s=>{try{var a;const t=(await b.A.get(`${_e}/admin/blog/posts/${s.id}?lang=${Ve}`,{headers:{Authorization:`Bearer ${e}`}})).data;B(t),U(t.title||""),O(t.slug||""),V(t.meta_description||t.excerpt||""),q(t.content||""),K(!0===t.published),ee(t.thumbnail_image||""),ae(t.cover_image||""),re(t.category||""),ne((null===(a=t.tags)||void 0===a?void 0:a.join(", "))||""),I(!1),me("edit")}catch(t){console.error("Error loading post:",t),j.oR.error(i("admin.loadError"))}})(s),className:"text-lime hover:text-lime/80","data-testid":`edit-post-${s.id}`,children:(0,m.jsx)(Y.I,{weight:"bold",className:"w-4 h-4"})}),(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>(e=>{S(e.id),E(e.title)})(s),className:"text-red-400 hover:text-red-300","data-testid":`delete-post-${s.id}`,children:(0,m.jsx)(X.l,{weight:"bold",className:"w-4 h-4"})})]})})]},`${s.id}-${s.slug}-${a}`))})]})}),(0,m.jsxs)("div",{className:"flex items-center justify-between mt-4",children:[(0,m.jsxs)("p",{className:"text-sm text-gray-400",children:["Page ",p," sur ",v]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>N(e=>Math.max(1,e-1)),disabled:1===p,children:(0,m.jsx)(je.Z,{weight:"bold",className:"w-4 h-4"})}),(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>N(e=>Math.min(v,e+1)),disabled:p===v,children:(0,m.jsx)(be.K,{weight:"bold",className:"w-4 h-4"})})]})]})]})]}),(0,m.jsx)(Z.lG,{open:!!z||P,onOpenChange:e=>{e||(B(null),I(!1))},children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10 max-w-4xl max-h-[90vh] overflow-y-auto",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{className:"flex items-center justify-between",children:[(0,m.jsx)("span",{children:i(P?"admin.blog.createArticle":"admin.blog.editArticle")}),z&&(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)(T.$,{variant:"ghost",size:"sm",onClick:()=>(async s=>{try{await b.A.delete(`${_e}/admin/blog/posts/${s}/translation-cache`,{headers:{Authorization:`Bearer ${e}`}}),j.oR.success("fr"===n.language?"Cache de traduction vid\xe9. La proch
1aine visite en anglais r\xe9g\xe9n\xe8rera la traduction.":"Translation cache cleared. Next English visit will regenerate the translation.")}catch(a){j.oR.error("fr"===n.language?"Erreur lors du vidage du cache":"Error clearing cache")}})(z.id),className:"text-blue-400 hover:text-blue-300",title:"fr"===n.language?"Forcer la re-traduction anglaise":"Force English re-translation",children:[(0,m.jsx)(Ne.H,{weight:"bold",className:"w-4 h-4 mr-1"}),"fr"===n.language?"Re-traduire":"Re-translate"]}),(0,m.jsxs)(T.$,{variant:"ghost",size:"sm",onClick:()=>window.open(`/${z.slug}`,"_blank"),className:"text-gray-400",children:[(0,m.jsx)(le.k,{weight:"bold",className:"w-4 h-4 mr-1"})," ",i("admin.blog.preview")]})]})]})}),(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.articleTitle")}),(0,m.jsx)(L.p,{value:F,onChange:e=>U(e.target.value),placeholder:i("admin.blog.articleTitle"),className:"bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(ve.X,{weight:"bold",className:"w-4 h-4"}),i("admin.blog.slug")]}),(0,m.jsx)(L.p,{value:M,onChange:e=>O(e.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"-")),placeholder:i("admin.blog.slugPlaceholder"),className:"bg-white/5 border-white/10 mt-2 font-mono text-sm"}),(0,m.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:i("admin.blog.slugHint")})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(fe.v,{weight:"bold",className:"w-4 h-4"}),i("admin.blog.metaDescription")]}),(0,m.jsx)(J.T,{value:W,onChange:e=>V(e.target.value.slice(0,160)),placeholder:i("admin.blog.metaDescriptionPlaceholder"),rows:2,className:"bg-white/5 border-white/10 mt-2"}),(0,m.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:[W.length,"/160 ",i("admin.blog.characters")]})]}),(0,m.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(we._,{weight:"bold",className:"w-4 h-4"}),i("admin.blog.thumbnail")]}),(0,m.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,m.jsx)(L.p,{value:Q,onChange:e=>ee(e.target.value),placeholder:"URL",className:"bg-white/5 border-white/10"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("input",{type:"file",accept:"image/*",className:"hidden",id:"thumb-upload",onChange:e=>{var s;return He(null===(s=e.target.files)||void 0===s?void 0:s[0],"thumb")}}),(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>{var e;return null===(e=document.getElementById("thumb-upload"))||void 0===e?void 0:e.click()},disabled:Ce,children:Ce?(0,m.jsx)(he.e,{className:"w-4 h-4 animate-spin"}):(0,m.jsx)(ye._,{weight:"bold",className:"w-4 h-4"})}),Q&&(0,m.jsx)("img",{src:Q,alt:"",className:"h-8 w-12 object-cover rounded"})]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(we._,{weight:"bold",className:"w-4 h-4"}),i("admin.blog.cover")]}),(0,m.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,m.jsx)(L.p,{value:se,onChange:e=>ae(e.target.value),placeholder:"URL",className:"bg-white/5 border-white/10"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("input",{type:"file",accept:"image/*",className:"hidden",id:"cover-upload",onChange:e=>{var s;return He(null===(s=e.target.files)||void 0===s?void 0:s[0],"cover")}}),(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>{var e;return null===(e=document.getElementById("cover-upload"))||void 0===e?void 0:e.click()},disabled:Re,children:Re?(0,m.jsx)(he.e,{className:"w-4 h-4 animate-spin"}):(0,m.jsx)(ye._,{weight:"bold",className:"w-4 h-4"})}),se&&(0,m.jsx)("img",{src:se,alt:"",className:"h-8 w-12 object-cover rounded"})]})]})]})]}),(0,m.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{className:"flex items-center gap-2",children:[(0,m.jsx)(fe.v,{weight:"bold",className:"w-4 h-4"}),i("admin.blog.category")]}),(0,m.jsxs)(xe.l6,{value:te||"none",onValueChange:e=>re("none"===e?"":e),children:[(0,m.jsx)(xe.bq,{className:"bg-white/5 border-white/10 mt-2",children:(0,m.jsx)(xe.yv,{placeholder:i("admin.blog.selectCategory")})}),(0,m.jsxs)(xe.gC,{children:[(0,m.jsx)(xe.eb,{value:"none",children:"Aucune"}),$e.map(e=>(0,m.jsx)(xe.eb,{value:e,children:e},e))]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.tags")}),(0,m.jsx)(L.p,{value:ie,onChange:e=>ne(e.target.value),placeholder:i("admin.blog.tagsHint"),className:"bg-white/5 border-white/10 mt-2"})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.content")}),(0,m.jsxs)(x,{value:oe,onValueChange:me,className:"mt-2",children:[(0,m.jsxs)(h,{className:"bg-white/5",children:[(0,m.jsx)(u,{value:"edit",children:i("admin.blog.content")}),(0,m.jsx)(u,{value:"preview",children:i("admin.blog.preview")})]}),(0,m.jsx)(g,{value:"edit",children:(0,m.jsx)(J.T,{value:G,onChange:e=>q(e.target.value),rows:15,className:"bg-white/5 border-white/10 font-mono text-sm",placeholder:"<p>HTML content...</p>"})}),(0,m.jsx)(g,{value:"preview",children:(0,m.jsx)("div",{className:"prose prose-invert prose-sm max-w-none p-4 rounded-lg bg-white/5 min-h-[300px] overflow-auto",dangerouslySetInnerHTML:{__html:G}})})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{type:"checkbox",id:"published",checked:H,onChange:e=>K(e.target.checked),className:"w-4 h-4 accent-lime"}),(0,m.jsx)(D.J,{htmlFor:"published",className:"cursor-pointer",children:i("admin.blog.published")})]}),(0,m.jsxs)("div",{className:"flex gap-2 justify-end pt-4 border-t border-white/10",children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>{B(null),I(!1)},children:i("admin.plans.cancel")}),(0,m.jsx)(T.$,{onClick:async()=>
1{if(F.trim()){de(!0);try{const s={title:F,slug:M.trim()||null,meta_description:W.trim()||null,content:G,published:H,thumbnail_image:Q,cover_image:se,category:te,tags:ie.split(",").map(e=>e.trim()).filter(e=>e)};if(console.log("=== SAVING POST ==="),console.log("postPublished state:",H),console.log("data.published:",s.published),console.log("Full data:",JSON.stringify(s,null,2)),P)await b.A.post(`${_e}/admin/blog/posts`,s,{headers:{Authorization:`Bearer ${e}`}}),j.oR.success(i("admin.blog.articleCreated"));else{console.log("Updating post ID:",z.id);const a=await b.A.put(`${_e}/admin/blog/posts/${z.id}`,s,{headers:{Authorization:`Bearer ${e}`}});console.log("Update response:",a.data),j.oR.success(i("admin.blog.articleUpdated"))}B(null),I(!1),qe(),a()}catch(l){var s,t;console.error("Save error:",l),j.oR.error((null===(s=l.response)||void 0===s||null===(t=s.data)||void 0===t?void 0:t.detail)||"Erreur")}finally{de(!1)}}else j.oR.error(i("admin.blog.titleRequired"))},disabled:ce,className:"bg-lime text-obsidian hover:bg-lime/90",children:i(ce?"admin.blog.saving":"admin.blog.saveArticle")})]})]})]})}),(0,m.jsx)(Z.lG,{open:Ae,onOpenChange:Ee,children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{className:"flex items-center gap-2",children:[(0,m.jsx)(ge.d,{weight:"duotone",className:"w-5 h-5 text-lime"}),i("admin.blog.batch.title")]})}),(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.batch.topics")}),(0,m.jsx)(J.T,{value:ze,onChange:e=>Be(e.target.value),rows:6,placeholder:i("admin.blog.batch.topicsHint"),className:"bg-white/5 border-white/10 mt-2"})]}),(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.batch.tone")}),(0,m.jsxs)(xe.l6,{value:Te,onValueChange:Le,children:[(0,m.jsx)(xe.bq,{className:"bg-white/5 border-white/10 mt-2",children:(0,m.jsx)(xe.yv,{})}),(0,m.jsxs)(xe.gC,{children:[(0,m.jsx)(xe.eb,{value:"professionnel",children:i("admin.blog.batch.tones.professional")}),(0,m.jsx)(xe.eb,{value:"decontracte",children:i("admin.blog.batch.tones.casual")}),(0,m.jsx)(xe.eb,{value:"expert",children:i("admin.blog.batch.tones.expert")})]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.batch.length")}),(0,m.jsxs)(xe.l6,{value:De,onValueChange:Je,children:[(0,m.jsx)(xe.bq,{className:"bg-white/5 border-white/10 mt-2",children:(0,m.jsx)(xe.yv,{})}),(0,m.jsxs)(xe.gC,{children:[(0,m.jsx)(xe.eb,{value:"court",children:i("admin.blog.batch.lengths.short")}),(0,m.jsx)(xe.eb,{value:"moyen",children:i("admin.blog.batch.lengths.medium")}),(0,m.jsx)(xe.eb,{value:"long",children:i("admin.blog.batch.lengths.long")})]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:i("admin.blog.batch.model")}),(0,m.jsxs)(xe.l6,{value:Ze,onValueChange:Pe,children:[(0,m.jsx)(xe.bq,{className:"bg-white/5 border-white/10 mt-2",children:(0,m.jsx)(xe.yv,{})}),(0,m.jsxs)(xe.gC,{children:[(0,m.jsx)(xe.eb,{value:"gpt",children:"LLredac \xc9quilibr\xe9"}),(0,m.jsx)(xe.eb,{value:"claude",children:"LLredac Cr\xe9atif"})]})]})]})]}),(0,m.jsxs)("div",{className:"flex gap-2 justify-end pt-4",children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>Ee(!1),children:i("admin.plans.cancel")}),(0,m.jsx)(T.$,{onClick:async()=>{const s=ze.split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(0!==s.length)if(s.length>10)j.oR.error("Maximum 10 sujets \xe0 la fois");else{Fe(!0);try{const t=await b.A.post(`${_e}/admin/blog/generate-batch`,{topics:s,tone:Te,length:De,model:Ze},{headers:{Authorization:`Bearer ${e}`}});j.oR.success(`${t.data.total_generated} articles g\xe9n\xe9r\xe9s !`),t.data.errors.length>0&&j.oR.error(`${t.data.total_errors} erreurs`),Ee(!1),Be(""),qe(),a()}catch(r){var t,l;j.oR.error((null===(t=r.response)||void 0===t||null===(l=t.data)||void 0===l?void 0:l.detail)||"Erreur")}finally{Fe(!1)}}else j.oR.error("Entrez au moins un sujet")},disabled:Ie,className:"bg-lime text-obsidian hover:bg-lime/90","data-testid":"confirm-batch-generate-btn",children:Ie?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(he.e,{className:"w-4 h-4 mr-2 animate-spin"}),i("admin.blog.batch.generating")]}):i("admin.blog.batch.generate")})]})]})]})}),(0,m.jsx)(Z.lG,{open:null!==C,onOpenChange:e=>!e&&S(null),children:(0,m.jsxs)(Z.Cf,{className:"bg-obsidian border-white/10 max-w-md",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsx)(Z.L3,{className:"text-red-400",children:"fr"===n.language?"Supprimer d\xe9finitivement ?":"Delete permanently?"})}),(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsx)("p",{className:"text-gray-300",children:"fr"===n.language?`\xcates-vous s\xfbr de vouloir supprimer l'article "${A}" ? Cette action est irr\xe9versible.`:`Are you sure you want to delete the article "${A}"? This action cannot be undone.`}),(0,m.jsxs)("div",{className:"flex gap-3 justify-end",children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>S(null),className:"border-white/20",children:"fr"===n.language?"Annuler":"Cancel"}),(0,m.jsxs)(T.$,{onClick:()=>(async s=>{try{await b.A.delete(`${_e}/admin/blog/posts/${s}`,{headers:{Authorization:`Bearer ${e}`}}),j.oR.success(i("admin.blog.articleDeleted")),S(null),qe(),a()}catch(t){j.oR.error(i("admin.loadError"))}})(C),className:"bg-red-600 hover:bg-red-700 text-white","data-testid":"confirm-delete-btn",children:[(0,m.jsx)(X.l,{weight:"bold",className:"w-4 h-4 mr-2"}),"fr"===n.language?"Supprimer":"Delete"]})]})]})]})})]})}var Se=a(3805),Re=a(1663),ke=a(509);const Ae="https://llredac.fr/api";function Ee({token:e,onRefresh:s}){const{t:a}=(0,r.Bd)(),[l,i]=(0,t.useState)([]),[n,d]=(0,t.useState)(!0),[o,x]=(0,t.useState)(!1),[h,u]=(0,t.useState)(null),[g,p]=(0,t.useState)({code:"",discount_type:"percent",discount_value:"",max_uses:"",expires_at:""});(0,t.useEffect)(()=>{N()},[]);const N=async()=>{try{const s=await b.A.get(`${Ae}/admin/promo-codes`,{headers:{Authorization:`Bearer ${e}`}});i(s.data)}catch(s){console.error("Failed to fetch promo codes:",s)}finally{d(!1)}};return(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(pe.F,{weight:"bold",className:"w-5 h-5 text-lime"}),"Cr\xe9er un code promo"]})}),(0,m.jsxs)(c.Wu,{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:"Code promo"}),(0,m.jsx)(L.p,{value:g.code,onChange:e=>p({...g,code:e.target.value.toUpperCase()}),placeholder:"PROMO2024",className:"bg-white/5 border-white/10 uppercase"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:"Type de r\xe9duction"}),(0,m.jsxs)("div",{className:"flex gap-2 mt-2",children:[(0,m.jsxs)("button",{onClick:()=>p({...g,discount_type:"percent"}),className:"flex-1 p-3 rounded-lg border-2 transition-all flex items-center justify-center gap-2 "+("percent"===g.discount_type?"border-lime bg-lime/10 text-lime":"border-white/10 hover:border-white/20"),children:[(0,m.jsx)(Se.Q,{weight:"bold",className:"w-4 h-4"}),"Pourcentage"]}),(0,m.jsxs)("button",{onClick:()=>p({...g,discount_type:"amount"}),className:"flex-1 p-3 rounded-lg border-2 transition-all flex items-center justify-center gap-2 "+("amount"===g.discount_type?"border-lime bg-lime/10 text-lime":"border-white/10 hover:border-white/20"),children:[(0,m.jsx)(Re.u,{weight:"bold",className:"w-4 h-4"}),"Montant fixe"]})]})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)(D.J,{children:["Valeur de la r\xe9duction ","percent"===g.discount_type?"(%)":"(\u20ac)"]}),(0,m.jsx)(L.p,{type:"number",value:g.discount_value,onChange:e=>p({...g,discount_value:e.target.value}),placeholder:"percent"===g.discount_type?"20":"10",className:"bg-white/5 border-white/10",min:"0",max:"percent"===g.discount_type?"100":"1000"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:"Nombre d'utilisations max (optionnel)"}),(0,m.jsx)(L.p,{type:"number",value:g.max_uses,onChange:e=>p({...g,max_uses:e.target.value}),placeholder:"100",className:"bg-white/5 border-white/10",min:"1"})]}),(0,m.jsxs)("div",{className:"md:col-span-2",children:[(0,m.jsx)(D.J,{children:"Date d'expiration (optionnel)"}),(0,m.jsx)(L.p,{type:"date",value:g.expires_at,onChange:e=>p({...g,expires_at:e.target.value}),className:"bg-white/5 border-white/10",min:(new Date).toISOString().split("T")[0]})]})]}),(0,m.jsx)(T.$,{onClick:async()=>
1{if(g.code&&g.discount_value){x(!0);try{await b.A.post(`${Ae}/admin/promo-codes`,{code:g.code.toUpperCase(),discount_type:g.discount_type,discount_value:parseFloat(g.discount_value),max_uses:g.max_uses?parseInt(g.max_uses):null,expires_at:g.expires_at||null},{headers:{Authorization:`Bearer ${e}`}}),j.oR.success("Code promo cr\xe9\xe9 avec succ\xe8s !"),p({code:"",discount_type:"percent",discount_value:"",max_uses:"",expires_at:""}),N(),null===s||void 0===s||s()}catch(l){var a,t;j.oR.error((null===(a=l.response)||void 0===a||null===(t=a.data)||void 0===t?void 0:t.detail)||"Erreur lors de la cr\xe9ation")}finally{x(!1)}}else j.oR.error("Veuillez remplir le code et la valeur de r\xe9duction")},disabled:o,className:"w-full bg-lime text-obsidian hover:bg-lime/90",children:o?"Cr\xe9ation...":"Cr\xe9er le code promo"})]})]}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)($.R,{weight:"duotone",className:"w-5 h-5 text-lime"}),"Codes promo actifs"]})}),(0,m.jsx)(c.Wu,{children:n?(0,m.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,m.jsx)("div",{className:"animate-spin w-6 h-6 border-2 border-lime border-t-transparent rounded-full"})}):0===l.length?(0,m.jsxs)("div",{className:"text-center py-8 text-gray-400",children:[(0,m.jsx)($.R,{weight:"thin",className:"w-12 h-12 mx-auto mb-2 opacity-50"}),(0,m.jsx)("p",{children:"Aucun code promo cr\xe9\xe9"})]}):(0,m.jsx)("div",{className:"space-y-3",children:l.map(a=>{return(0,m.jsx)("div",{className:"p-4 rounded-xl border transition-all "+(a.active?"bg-white/5 border-white/10":"bg-red-500/5 border-red-500/20 opacity-60"),children:(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("code",{className:"px-3 py-1.5 bg-lime/10 text-lime rounded-lg font-mono font-bold",children:a.code}),(0,m.jsx)("button",{onClick:()=>{return e=a.code,navigator.clipboard.writeText(e),u(e),setTimeout(()=>u(null),2e3),void j.oR.success("Code copi\xe9 !");var e},className:"p-1.5 rounded-lg hover:bg-white/10 transition-colors",children:h===a.code?(0,m.jsx)(re.J,{weight:"bold",className:"w-4 h-4 text-green-500"}):(0,m.jsx)(ie.Q,{weight:"bold",className:"w-4 h-4 text-gray-400"})})]}),(0,m.jsx)("div",{className:"flex items-center gap-1 text-sm",children:"percent"===a.discount_type?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Se.Q,{weight:"bold",className:"w-4 h-4 text-yellow-500"}),(0,m.jsxs)("span",{className:"font-semibold",children:[a.discount_value,"%"]})]}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Re.u,{weight:"bold",className:"w-4 h-4 text-green-500"}),(0,m.jsxs)("span",{className:"font-semibold",children:[a.discount_value,"\u20ac"]})]})}),(0,m.jsxs)("div",{className:"text-sm text-gray-400",children:[a.times_used||0," / ",a.max_uses||"\u221e"," utilisations"]}),(0,m.jsxs)("div",{className:"flex items-center gap-1 text-sm text-gray-400",children:[(0,m.jsx)(ke.V,{weight:"regular",className:"w-4 h-4"}),(t=a.expires_at,t?new Date(t).toLocaleDateString("fr-FR"):"Illimit\xe9")]})]}),(0,m.jsx)(T.$,{variant:"ghost",size:"icon",onClick:()=>(async a=>{if(confirm("\xcates-vous s\xfbr de vouloir supprimer ce code promo ?"))try{await b.A.delete(`${Ae}/admin/promo-codes/${a}`,{headers:{Authorization:`Bearer ${e}`}}),j.oR.success("Code promo supprim\xe9"),N(),null===s||void 0===s||s()}catch(t){j.oR.error("Erreur lors de la suppression")}})(a.id),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",children:(0,m.jsx)(X.l,{weight:"bold",className:"w-4 h-4"})})]})},a.id);var t})})})]})]})}var ze=a(2377),Be=a(8924);const Te="https://llredac.fr";function Le({token:e}){var s,a;const{t:l}=(0,r.Bd)(),[i,n]=(0,t.useState)([]),[d,o]=(0,t.useState)(!0),[x,h]=(0,t.useState)(""),[u,g]=(0,t.useState)(null);(0,t.useEffect)(()=>{p()},[e]);const p=async()=>{try{o(!0);const s=await b.A.get(`${Te}/api/service-pages`,{headers:{Authorization:`Bearer ${e}`}});n(s.data)}catch(s){j.oR.error("Erreur lors du chargement des pages")}finally{o(!1)}},N=i.filter(e=>e.title.toLowerCase().includes(x.toLowerCase())||e.slug.toLowerCase().includes(x.toLowerCase()));return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center justify-between",children:[(0,m.jsxs)("span",{className:"flex items-center gap-2",children:[(0,m.jsx)(A.i,{weight:"duotone",className:"w-5 h-5 text-lime"}),"Pages de Service (",i.length,")"]}),(0,m.jsxs)("a",{href:"/services",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-lime hover:underline flex items-center gap-1",children:["Voir sur le site ",(0,m.jsx)(ze.B,{className:"w-4 h-4"})]})]})}),(0,m.jsxs)(c.Wu,{children:[(0,m.jsxs)("div",{className:"relative mb-6",children:[(0,m.jsx)(R.e,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5"}),(0,m.jsx)(L.p,{type:"text",placeholder:"Rechercher une page...",value:x,onChange:e=>h(e.target.value),className:"pl-10 bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{className:"grid grid-cols-3 gap-4 mb-6",children:[(0,m.jsxs)("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-white",children:i.length}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Total pages"})]}),(0,m.jsxs)("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-green-400",children:i.filter(e=>!1!==e.published).length}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Publi\xe9es"})]}),(0,m.jsxs)("div",{className:"p-4 bg-white/5 rounded-lg text-center",children:[(0,m.jsx)("p",{className:"text-2xl font-bold text-orange-400",children:i.filter(e=>!e.title_en).length}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Sans traduction EN"})]})]}),d?(0,m.jsx)("div",{className:"text-center py-10",children:(0,m.jsx)("div",{className:"w-8 h-8 border-2 border-lime border-t-transparent roun
1ded-full animate-spin mx-auto"})}):(0,m.jsx)("div",{className:"overflow-x-auto",children:(0,m.jsxs)("table",{className:"w-full",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"border-b border-border",children:[(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"ID"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"Titre"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"Slug"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"EN"}),(0,m.jsx)("th",{className:"text-left p-3 font-medium text-gray-400",children:"Actions"})]})}),(0,m.jsx)("tbody",{children:N.map(e=>(0,m.jsxs)("tr",{className:"border-b border-border/50 hover:bg-white/5",children:[(0,m.jsx)("td",{className:"p-3 text-gray-500",children:e.id||"-"}),(0,m.jsx)("td",{className:"p-3 text-white font-medium",children:e.title}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("a",{href:`/${e.slug}`,target:"_blank",rel:"noopener noreferrer",className:"text-lime hover:underline flex items-center gap-1",children:["/",e.slug,(0,m.jsx)(ze.B,{className:"w-3 h-3"})]})}),(0,m.jsx)("td",{className:"p-3",children:e.title_en?(0,m.jsx)("span",{className:"text-green-400",children:"\u2713"}):(0,m.jsx)("span",{className:"text-gray-500",children:"-"})}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>(async e=>{try{const s=await b.A.get(`${Te}/api/service-pages/${e}`);g(s.data)}catch(s){j.oR.error("Erreur lors du chargement de la page")}})(e.slug),className:"hover:bg-white/10",children:(0,m.jsx)(le.k,{className:"w-4 h-4"})}),(0,m.jsx)("a",{href:`/${e.slug}`,target:"_blank",rel:"noopener noreferrer",children:(0,m.jsx)(T.$,{variant:"ghost",size:"sm",className:"hover:bg-white/10",children:(0,m.jsx)(Be.q,{className:"w-4 h-4"})})})]})})]},e.slug))})]})}),0===N.length&&!d&&(0,m.jsx)("p",{className:"text-center text-gray-400 py-10",children:"Aucune page trouv\xe9e"})]})]}),(0,m.jsx)(Z.lG,{open:!!u,onOpenChange:()=>g(null),children:(0,m.jsxs)(Z.Cf,{className:"glass border-white/10 max-w-4xl max-h-[80vh] overflow-y-auto",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsxs)(Z.L3,{className:"flex items-center gap-2",children:[(0,m.jsx)(A.i,{weight:"duotone",className:"w-5 h-5 text-lime"}),null===u||void 0===u?void 0:u.title]})}),u&&(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-4 p-4 bg-white/5 rounded-lg",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Slug"}),(0,m.jsxs)("p",{className:"text-white",children:["/",u.slug]})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Meta Title"}),(0,m.jsx)("p",{className:"text-white",children:u.meta_title||"-"})]})]}),(0,m.jsxs)("div",{className:"p-4 bg-white/5 rounded-lg",children:[(0,m.jsx)("p",{className:"text-sm text-gray-400 mb-2",children:"Meta Description"}),(0,m.jsx)("p",{className:"text-white text-sm",children:u.meta_description||"-"})]}),u.cover_image&&(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-gray-400 mb-2",children:"Image de couverture"}),(0,m.jsx)("img",{src:u.cover_image,alt:u.title,className:"max-h-48 rounded-lg object-cover"})]}),(0,m.jsxs)("div",{className:"p-4 bg-white/5 rounded-lg",children:[(0,m.jsx)("p",{className:"text-sm text-gray-400 mb-2",children:"Aper\xe7u du contenu"}),(0,m.jsx)("div",{className:"prose prose-invert prose-sm max-w-none max-h-64 overflow-y-auto",dangerouslySetInnerHTML:{__html:(null===(s=u.content)||void 0===s?void 0:s.slice(0,2e3))+((null===(a=u.content)||void 0===a?void 0:a.length)>2e3?"...":"")}})]}),(0,m.jsx)("div",{className:"flex gap-2 pt-4",children:(0,m.jsx)("a",{href:`/${u.slug}`,target:"_blank",rel:"noopener noreferrer",className:"flex-1",children:(0,m.jsxs)(T.$,{className:"w-full bg-lime text-black hover:bg-lime/90",children:[(0,m.jsx)(Be.q,{className:"w-4 h-4 mr-2"}),"Voir sur le site"]})})})]})]})})]})}const De=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("div",{className:"relative w-full overflow-auto",children:(0,m.jsx)("table",{ref:a,className:(0,o.cn)("w-full caption-bottom text-sm",e),...s})}));De.displayName="Table";const Je=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("thead",{ref:a,className:(0,o.cn)("[&_tr]:border-b",e),...s}));Je.displayName="TableHeader";const Ze=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("tbody",{ref:a,className:(0,o.cn)("[&_tr:last-child]:border-0",e),...s}));Ze.displayName="TableBody";t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("tfoot",{ref:a,className:(0,o.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...s})).displayName="TableFooter";const Pe=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("tr",{ref:a,className:(0,o.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...s}));Pe.displayName="TableRow";const Ie=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("th",{ref:a,className:(0,o.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));Ie.displayName="TableHead";const Fe=t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("td",{ref:a,className:(0,o.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));Fe.displayName="TableCell";t.forwardRef(({className:e,...s},a)=>(0,m.jsx)("caption",{ref:a,className:(0,o.cn)("mt-4 text-sm text-muted-foreground",e),...s})).displayName="TableCaption";var Ue=a(3731),Me=a(9562);function Oe(){const{token:e}=(0,p.A)(),[s,a]=(0,t.useState)([]),[l,r]=(0,t.useState)(!0),[i,n]=(0,t.useState)(""),[c,d]=(0,t.useState)(null),[o,x]=(0,t.useState)({total:0,today:0,thisMonth:0});(0,t.useEffect)(()=>{h()},[]);const h=async()=>{try{r(!0);const s=await b.A.get("https://llredac.fr/api/admin/seo-audits",{headers:{Authorization:`Bearer ${e}`}});a(s.data.audits||[]),x(s.data.stats||{total:0,today:0,thisMonth:0})}catch(s){j.oR.error("Erreur lors du chargement des audits"),console.error(s)}finally{r(!1)}},u=s.filter(e=>{var s,a,t,l;const r=i.toLowerCase();return(null===(s=e.url)||void 0===s?void 0:s.toLowerCase().includes(r))||(null===(a=e.user_email)||void 0===a?void 0:a.toLowerCase().includes(r))||(null===(t=e.user_name)||void 0===t?void 0:t.toLowerCase().includes(r))||(null===(l=e.ip_address)||void 0===l?void 0:l.includes(r))});return(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,m.jsx)("div",{className:"bg-card border rounded-xl p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 bg-lime/10 rounded-lg",children:(0,m.jsx)(R.e,{weight:"duotone",className:"w-5 h-5 text-lime"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground",children:"Total audits"}),(0,m.jsx)("p",{className:"text-2xl font-bold",children:o.total})]})]})}),(0,m.jsx)("div",{className:"bg-card border rounded-xl p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 bg-blue-500/10 rounded-lg",children:(0,m.jsx)(ke.V,{weight:"duotone",className:"w-5 h-5 text-blue-500"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground",children:"Aujourd'hui"}),(0,m.jsx)("p",{className:"text-2xl font-bold",children:o.today})]})]})}),(0,m.jsx)("div",{className:"bg-card border rounded-xl p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 bg-purple-500/10 rounded-lg",children:(0,m.jsx)(Be.q,{weight:"duotone",className:"w-5 h-5 text-purple-500"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground",children:"Ce mois"}),(0,m.jsx)("p",{className:"text-2xl font-bold",children:o.thisMonth})]})]})})]}),(0,m.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 items-center justify-between",children:[(0,m.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,m.jsx)(R.e,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),(0,m.jsx)(L.p,{placeholder:"Rechercher par URL, email, nom...",value:i,onChange:e=>n(e.target.value),className:"pl-9"})]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)(T.$,{variant:"outline",size:"sm",onClick:h,children:[(0,m.jsx)(ue.P,{className:"w-4 h-4 mr-2"}),"Actualiser"]}),(0,m.jsxs)(T.$,{variant:"outline",size:"sm",onClick:()=>{const e=[["Date","URL","Score","Email","Nom","T\xe9l\xe9phone","IP","Premium"],...u.map(e=>
1[new Date(e.created_at).toLocaleString("fr-FR"),e.url,e.score,e.user_email||"",e.user_name||"",e.user_phone||"",e.ip_address||"",e.is_premium?"Oui":"Non"])].map(e=>e.map(e=>`"${e}"`).join(",")).join("\n"),s=new Blob([e],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(s),t=document.createElement("a");t.href=a,t.download=`audits-seo-${(new Date).toISOString().split("T")[0]}.csv`,t.click(),URL.revokeObjectURL(a),j.oR.success("Export CSV t\xe9l\xe9charg\xe9")},children:[(0,m.jsx)(Ue.F,{className:"w-4 h-4 mr-2"}),"Exporter CSV"]})]})]}),(0,m.jsx)("div",{className:"border rounded-xl overflow-hidden",children:(0,m.jsxs)(De,{children:[(0,m.jsx)(Je,{children:(0,m.jsxs)(Pe,{children:[(0,m.jsx)(Ie,{children:"Date"}),(0,m.jsx)(Ie,{children:"URL"}),(0,m.jsx)(Ie,{children:"Score"}),(0,m.jsx)(Ie,{children:"Utilisateur"}),(0,m.jsx)(Ie,{children:"Contact"}),(0,m.jsx)(Ie,{children:"Type"}),(0,m.jsx)(Ie,{className:"text-right",children:"Actions"})]})}),(0,m.jsx)(Ze,{children:l?(0,m.jsx)(Pe,{children:(0,m.jsx)(Fe,{colSpan:7,className:"text-center py-8",children:(0,m.jsx)("div",{className:"animate-pulse",children:"Chargement..."})})}):0===u.length?(0,m.jsx)(Pe,{children:(0,m.jsx)(Fe,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"Aucun audit trouv\xe9"})}):u.map((e,s)=>{var a,t,l,r;return(0,m.jsxs)(Pe,{children:[(0,m.jsx)(Fe,{className:"whitespace-nowrap",children:new Date(e.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,m.jsx)(Fe,{className:"max-w-[200px]",children:(0,m.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-lime hover:underline truncate block",title:e.url,children:[null===(a=e.url)||void 0===a?void 0:a.replace(/https?:\/\//,"").slice(0,30),(null===(t=e.url)||void 0===t?void 0:t.length)>30?"...":""]})}),(0,m.jsx)(Fe,{children:(0,m.jsxs)("span",{className:"px-2 py-1 rounded-full text-sm font-medium "+(r=e.score,r>=80?"text-green-500 bg-green-500/10":r>=60?"text-yellow-500 bg-yellow-500/10":r>=40?"text-orange-500 bg-orange-500/10":"text-red-500 bg-red-500/10"),children:[e.score,"/100"]})}),(0,m.jsx)(Fe,{children:e.user_email?(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(ee.K,{className:"w-4 h-4 text-muted-foreground"}),(0,m.jsx)("span",{className:"truncate max-w-[120px]",title:e.user_name||e.user_email,children:e.user_name||e.user_email.split("@")[0]})]}):(0,m.jsxs)("span",{className:"text-muted-foreground text-sm",children:["Anonyme (",(null===(l=e.ip_address)||void 0===l?void 0:l.slice(0,15))||"N/A",")"]})}),(0,m.jsx)(Fe,{children:e.user_email?(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("a",{href:`mailto:${e.user_email}`,className:"p-1.5 hover:bg-muted rounded-md transition-colors",title:e.user_email,children:(0,m.jsx)(Me.L,{className:"w-4 h-4 text-blue-500"})}),e.user_phone&&(0,m.jsx)("a",{href:`tel:${e.user_phone}`,className:"p-1.5 hover:bg-muted rounded-md transition-colors",title:e.user_phone,children:(0,m.jsx)(se.b,{className:"w-4 h-4 text-green-500"})})]}):(0,m.jsx)("span",{className:"text-muted-foreground text-sm",children:"-"})}),(0,m.jsx)(Fe,{children:e.is_premium?(0,m.jsx)("span",{className:"px-2 py-1 bg-lime/10 text-lime rounded-full text-xs",children:"Premium"}):(0,m.jsx)("span",{className:"px-2 py-1 bg-muted text-muted-foreground rounded-full text-xs",children:"Gratuit"})}),(0,m.jsx)(Fe,{className:"text-right",children:(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>d(e),children:(0,m.jsx)(le.k,{className:"w-4 h-4"})})})]},e._id||s)})})]})}),(0,m.jsx)(Z.lG,{open:!!c,onOpenChange:()=>d(null),children:(0,m.jsxs)(Z.Cf,{className:"max-w-lg",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsx)(Z.L3,{children:"D\xe9tails de l'audit"})}),c&&(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground",children:"URL analys\xe9e"}),(0,m.jsx)("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",className:"text-lime hover:underline break-all",children:c.url})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground",children:"Score"}),(0,m.jsxs)("span",{className:"text-2xl font-bold "+(c.score>=80?"text-green-500":c.score>=60?"text-yellow-500":c.score>=40?"text-orange-500":"text-red-500"),children:[c.score,"/100"]})]})]}),(0,m.jsxs)("div",{className:"border-t pt-4",children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:"Informations utilisateur"}),c.user_email?(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(ee.K,{className:"w-4 h-4 text-muted-foreground"}),(0,m.jsx)("span",{children:c.user_name||"Non renseign\xe9"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(Me.L,{className:"w-4 h-4 text-muted-foreground"}),(0,m.jsx)("a",{href:`mailto:${c.user_email}`,className:"text-lime hover:underline",children:c.user_email})]}),c.user_phone&&(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(se.b,{className:"w-4 h-4 text-muted-foreground"}),(0,m.jsx)("a",{href:`tel:${c.user_phone}`,className:"text-lime hover:underline",children:c.user_phone})]})]}):(0,m.jsxs)("div",{className:"text-muted-foreground",children:[(0,m.jsx)("p",{children:"Utilisateur anonyme"}),(0,m.jsxs)("p",{className:"text-sm",children:["IP: ",c.ip_address||"N/A"]})]})]}),(0,m.jsxs)("div",{className:"border-t pt-4",children:[(0,m.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:"M\xe9tadonn\xe9es"}),(0,m.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)("span",{className:"text-muted-foreground",children:"Date:"}
1)," ",new Date(c.created_at).toLocaleString("fr-FR")]}),(0,m.jsxs)("div",{children:[(0,m.jsx)("span",{className:"text-muted-foreground",children:"Type:"})," ",c.is_premium?"Premium":"Gratuit"]})]})]}),c.user_email&&(0,m.jsx)("div",{className:"border-t pt-4",children:(0,m.jsxs)(T.$,{className:"w-full",onClick:()=>window.location.href=`mailto:${c.user_email}?subject=Suite \xe0 votre audit SEO sur ${c.url}`,children:[(0,m.jsx)(Me.L,{className:"w-4 h-4 mr-2"}),"Contacter par email"]})})]})]})})]})}var We=a(5380),Ve=a(342);const Ge="https://llredac.fr";function qe(){const{i18n:e}=(0,r.Bd)(),[s,a]=(0,t.useState)([]),[l,i]=(0,t.useState)(null),[n,d]=(0,t.useState)(!0),[o,x]=(0,t.useState)(1),[h,u]=(0,t.useState)(1),[g,p]=(0,t.useState)(""),[N,v]=(0,t.useState)({open:!1,email:""}),f=localStorage.getItem("token"),w=async()=>{d(!0);try{const e=await b.A.get(`${Ge}/api/admin/newsletter-subscribers`,{params:{page:o,limit:20},headers:{Authorization:`Bearer ${f}`}});a(e.data.subscribers),i(e.data.stats),u(e.data.total_pages)}catch(e){j.oR.error("Erreur lors du chargement")}finally{d(!1)}};(0,t.useEffect)(()=>{w()},[o]);const y=s.filter(e=>{var s;return null===(s=e.email)||void 0===s?void 0:s.toLowerCase().includes(g.toLowerCase())}),_=e=>{if(!e)return"-";return new Date(e).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})};return(0,m.jsxs)("div",{className:"space-y-6",children:[l&&(0,m.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(C.v,{weight:"duotone",className:"w-8 h-8 text-lime mx-auto mb-2"}),(0,m.jsx)("p",{className:"text-3xl font-bold text-lime",children:l.total}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Total abonn\xe9s"})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(We.J,{weight:"duotone",className:"w-8 h-8 text-green-400 mx-auto mb-2"}),(0,m.jsx)("p",{className:"text-3xl font-bold text-green-400",children:l.today}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Aujourd'hui"})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(z.N,{weight:"duotone",className:"w-8 h-8 text-blue-400 mx-auto mb-2"}),(0,m.jsx)("p",{className:"text-3xl font-bold text-blue-400",children:l.this_month}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Ce mois"})]})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(Ve.p,{weight:"duotone",className:"w-8 h-8 text-purple-400 mx-auto mb-2"}),(0,m.jsx)("p",{className:"text-3xl font-bold text-purple-400",children:l.from_exit_popup}),(0,m.jsx)("p",{className:"text-sm text-gray-400",children:"Via popup"})]})})]}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsxs)(c.aR,{className:"flex flex-row items-center justify-between",children:[(0,m.jsxs)(c.ZB,{className:"text-white flex items-center gap-2",children:[(0,m.jsx)(C.v,{weight:"bold",className:"w-5 h-5 text-lime"}),"Abonn\xe9s Newsletter"]}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsxs)(T.$,{variant:"outline",size:"sm",onClick:w,className:"border-white/10 text-white hover:bg-white/5",children:[(0,m.jsx)(ue.P,{className:"w-4 h-4 mr-2"}),"Actualiser"]}),(0,m.jsxs)(T.$,{variant:"outline",size:"sm",onClick:()=>{const e=["Email,Source,Date d'inscription,Statut",...s.map(e=>{var s;return`${e.email},${e.source||"direct"},${(null===(s=e.subscribed_at)||void 0===s?void 0:s.split("T")[0])||""},${e.status||"active"}`})].join("\n"),a=new Blob([e],{type:"text/csv"}),t=window.URL.createObjectURL(a),l=document.createElement("a");l.href=t,l.download=`newsletter_subscribers_${(new Date).toISOString().split("T")[0]}.csv`,l.click()},className:"border-lime/30 text-lime hover:bg-lime/10",children:[(0,m.jsx)(Ue.F,{className:"w-4 h-4 mr-2"}),"Exporter CSV"]})]})]}),(0,m.jsxs)(c.Wu,{children:[(0,m.jsxs)("div",{className:"relative mb-4",children:[(0,m.jsx)(R.e,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-500"}),(0,m.jsx)(L.p,{placeholder:"Rechercher un email...",value:g,onChange:e=>p(e.target.value),className:"pl-10 bg-white/5 border-white/10 text-white"})]}),n?(0,m.jsx)("div",{className:"flex justify-center py-10",children:(0,m.jsx)("div",{className:"animate-spin w-8 h-8 border-2 border-lime border-t-transparent roun
1ded-full"})}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("div",{className:"rounded-lg border border-white/10 overflow-hidden",children:(0,m.jsxs)(De,{children:[(0,m.jsx)(Je,{children:(0,m.jsxs)(Pe,{className:"border-white/10 hover:bg-white/5",children:[(0,m.jsx)(Ie,{className:"text-gray-400",children:"Email"}),(0,m.jsx)(Ie,{className:"text-gray-400",children:"Source"}),(0,m.jsx)(Ie,{className:"text-gray-400",children:"Date"}),(0,m.jsx)(Ie,{className:"text-gray-400",children:"Statut"}),(0,m.jsx)(Ie,{className:"text-gray-400 text-right",children:"Actions"})]})}),(0,m.jsx)(Ze,{children:0===y.length?(0,m.jsx)(Pe,{children:(0,m.jsx)(Fe,{colSpan:5,className:"text-center text-gray-500 py-10",children:"Aucun abonn\xe9 trouv\xe9"})}):y.map(e=>{const s=(e=>{switch(e){case"exit_popup":return{label:"Popup sortie",color:"bg-purple-500/20 text-purple-400"};case"footer":return{label:"Footer",color:"bg-blue-500/20 text-blue-400"};case"landing":return{label:"Landing",color:"bg-green-500/20 text-green-400"};default:return{label:e||"Direct",color:"bg-gray-500/20 text-gray-400"}}})(e.source);return(0,m.jsxs)(Pe,{className:"border-white/10 hover:bg-white/5",children:[(0,m.jsx)(Fe,{className:"text-white font-medium",children:(0,m.jsx)("a",{href:`mailto:${e.email}`,className:"hover:text-lime transition-colors",children:e.email})}),(0,m.jsx)(Fe,{children:(0,m.jsx)("span",{className:`px-2 py-1 rounded-full text-xs ${s.color}`,children:s.label})}),(0,m.jsx)(Fe,{className:"text-gray-400 text-sm",children:_(e.subscribed_at)}),(0,m.jsx)(Fe,{children:(0,m.jsx)("span",{className:"px-2 py-1 rounded-full text-xs "+("active"===e.status?"bg-green-500/20 text-green-400":"bg-red-500/20 text-red-400"),children:"active"===e.status?"Actif":"Inactif"})}),(0,m.jsx)(Fe,{className:"text-right",children:(0,m.jsx)(T.$,{variant:"ghost",size:"sm",onClick:()=>v({open:!0,email:e.email}),className:"text-red-400 hover:text-red-300 hover:bg-red-500/10",children:(0,m.jsx)(X.l,{className:"w-4 h-4"})})})]},e.email)})})]})}),h>1&&(0,m.jsxs)("div",{className:"flex justify-center gap-2 mt-4",children:[(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>x(e=>Math.max(1,e-1)),disabled:1===o,className:"border-white/10 text-white",children:"Pr\xe9c\xe9dent"}),(0,m.jsxs)("span",{className:"flex items-center px-4 text-gray-400",children:["Page ",o," / ",h]}),(0,m.jsx)(T.$,{variant:"outline",size:"sm",onClick:()=>x(e=>Math.min(h,e+1)),disabled:o===h,className:"border-white/10 text-white",children:"Suivant"})]})]})]})]}),(0,m.jsx)(Z.lG,{open:N.open,onOpenChange:e=>v({...N,open:e}),children:(0,m.jsxs)(Z.Cf,{className:"bg-obsidian border-white/10",children:[(0,m.jsx)(Z.c7,{children:(0,m.jsx)(Z.L3,{className:"text-white",children:"Confirmer la suppression"})}),(0,m.jsxs)("p",{className:"text-gray-400",children:["\xcates-vous s\xfbr de vouloir supprimer l'abonn\xe9 ",(0,m.jsx)("span",{className:"text-white font-medium",children:N.email})," ?"]}),(0,m.jsxs)(Z.Es,{children:[(0,m.jsx)(T.$,{variant:"outline",onClick:()=>v({open:!1,email:""}),className:"border-white/10 text-white",children:"Annuler"}),(0,m.jsx)(T.$,{onClick:async()=>{try{await b.A.delete(`${Ge}/api/admin/newsletter-subscribers/${encodeURIComponent(N.email)}`,{headers:{Authorization:`Bearer ${f}`}}),j.oR.success("Abonn\xe9 supprim\xe9"),v({open:!1,email:""}),w()}catch(e){j.oR.error("Erreur lors de la suppression")}},className:"bg-red-500 hover:bg-red-600 text-white",children:"Supprimer"})]})]})})]})}var He=a(9193),Ke=a(1042),Qe=a(3494);const Ye="https://llredac.fr";function Xe({token:e}){var s;const[a,l]=(0,t.useState)(null),[r,i]=(0,t.useState)(null),[n,d]=(0,t.useState)(!0),[o,x]=(0,t.useState)(!1),[h,u]=(0,t.useState)(""),[g,p]=(0,t.useState)(1),[N,f]=(0,t.useState)(null),w={1:{title:"Email 1 - Rappel cr\xe9dits gratuits",delay:"J+1",subject:"\ud83d\ude80 Vos 3 cr\xe9dits gratuits vous attendent !",description:"Rappel des cr\xe9dits gratuits disponibles"},2:{title:"Email 2 - T\xe9moignage client",delay:"J+3",subject:"\ud83d\udcc8 D\xe9couvrez comment nos clients gagnent du temps",description:"T\xe9moignage + fonctionnalit\xe9s cl\xe9s"},3:{title:"Email 3 - Offre -20%",delay:"J+7",subject:"\ud83c\udf81 
1-20% sur votre premier abonnement !",description:"Code promo BIENVENUE20 (48h)"},4:{title:"Email 4 - Cas d'usage",delay:"J+14",subject:"\ud83d\udca1 Voici comment utiliser LLredac",description:"Exemples concrets par secteur"},5:{title:"Email 5 - Derni\xe8re chance",delay:"J+30",subject:"\u26a0\ufe0f Derni\xe8re chance - Offre -30%",description:"Code promo LASTCHANCE30 (7j)"}};(0,t.useEffect)(()=>{y(),_()},[]);const y=async()=>{try{const s=await b.A.get(`${Ye}/api/admin/followup/stats`,{headers:{Authorization:`Bearer ${e}`}});l(s.data)}catch(s){j.oR.error("Erreur lors du chargement des stats")}finally{d(!1)}},_=async()=>{try{const s=await b.A.get(`${Ye}/api/admin/followup/history`,{headers:{Authorization:`Bearer ${e}`}});i(s.data)}catch(s){console.error("Error fetching history:",s)}};return n?(0,m.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,m.jsx)(He.y,{weight:"bold",className:"w-8 h-8 animate-spin text-lime"})}):(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4",children:[(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(v.z,{weight:"duotone",className:"w-8 h-8 mx-auto mb-2 text-blue-400"}),(0,m.jsx)("p",{className:"text-2xl font-bold text-white",children:(null===a||void 0===a?void 0:a.total_without_subscription)||0}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"Sans abonnement"})]})}),[1,2,3,4,5].map(e=>{var s;return(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsxs)(c.Wu,{className:"p-4 text-center",children:[(0,m.jsx)(C.v,{weight:"duotone",className:"w-6 h-6 mx-auto mb-2 text-lime"}),(0,m.jsx)("p",{className:"text-xl font-bold text-white",children:(null===a||void 0===a?void 0:a[`eligible_email_${e}`])||0}),(0,m.jsxs)("p",{className:"text-xs text-gray-400",children:["\xc9ligibles Email ",e]}),(0,m.jsxs)("p",{className:"text-xs text-lime mt-1",children:[(null===r||void 0===r||null===(s=r.stats_by_email)||void 0===s?void 0:s[e])||0," envoy\xe9s"]})]})},e)})]}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsxs)(c.aR,{children:[(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(le.k,{weight:"duotone",className:"w-5 h-5 text-blue-400"}),"Tester un email"]}),(0,m.jsx)(c.BT,{children:"Envoyez un email de test pour pr\xe9visualiser avant l'envoi en masse"})]}),(0,m.jsxs)(c.Wu,{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:"Email de test"}),(0,m.jsx)(L.p,{type:"email",placeholder:"[email protected]",value:h,onChange:e=>u(e.target.value),className:"bg-white/5 border-white/10"})]}),(0,m.jsxs)("div",{children:[(0,m.jsx)(D.J,{children:"Type d'email"}),(0,m.jsx)("select",{value:g,onChange:e=>p(parseInt(e.target.value)),className:"w-full h-10 px-3 bg-white/5 border border-white/10 rounded-md text-white",children:[1,2,3,4,5].map(e=>(0,m.jsxs)("option",{value:e,className:"bg-obsidian",children:["Email ",e," - ",w[e].delay]},e))})]})]}),(0,m.jsxs)(T.$,{onClick:async()=>{if(h){x(!0);try{await b.A.post(`${Ye}/api/admin/followup/send`,{email_number:g,test_email:h},{headers:{Authorization:`Bearer ${e}`}}),j.oR.success(`Email de test envoy\xe9 \xe0 ${h}`)}catch(t){var s,a;j.oR.error((null===(s=t.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur lors de l'envoi")}finally{x(!1)}}else j.oR.error("Entrez une adresse email de test")},disabled:o||!h,className:"w-full md:w-auto "+(h?"bg-blue-500 hover:bg-blue-600 text-white":"bg-gray-600 text-gray-300 cursor-not-allowed"),children:[o?(0,m.jsx)(He.y,{weight:"bold",className:"w-4 h-4 mr-2 animate-spin"}):(0,m.jsx)(S.M,{weight:"bold",className:"w-4 h-4 mr-2"}),h?"Envoyer l'email de test":"Entrez un email pour tester"]})]})]}),(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsxs)(c.aR,{children:[(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(S.M,{weight:"duotone",className:"w-5 h-5 text-lime"}),"Campagnes de relance"]}),(0,m.jsx)(c.BT,{children:"Envoyez les emails de relance aux utilisateurs \xe9ligibles"})]}),(0,m.jsx)(c.Wu,{children:(0,m.jsx)("div",{className:"space-y-4",children:[1,2,3,4,5].map(s=>{var t;const l=w[s],i=(null===a||void 0===a?void 0:a[`eligible_email_${s}`])||0,n=(null===r||void 0===r||null===(t=r.stats_by_email)||void 0===t?void 0:t[s])||0,c=Math.max(0,i-n);return(0,m.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center justify-between p-4 rounded-lg bg-white/5 border border-white/10 gap-4",children:[(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,m.jsx)("span",{className:"px-2 py-0.5 bg-lime/20 text-lime text-xs rounded-full font-medium",children:l.delay}),(0,m.jsx)("h3",{className:"font-semibold text-white",children:l.title})]}),(0,m.jsx)("p",{className:"text-sm text-gray-400 mb-1",children:l.subject}),(0,m.jsx)("p",{className:"text-xs text-gray-500",children:l.description})]}),(0,m.jsxs)("div",{className:"flex items-center gap-4",children:[(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-lg font-bold text-white",children:c}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"\xe0 envoyer"})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-lg font-bold text-green-400",children:n}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:"envoy\xe9s"})]}),(0,m.jsx)(T.$,{onClick:()=>(async s=>{var t;const l=((null===a||void 0===a?void 0:a[`eligible_email_${s}`])||0)-((null===r||void 0===r||null===(t=r.stats_by_email)||void 0===t?void 0:t[s])||0);if(l<=0)j.oR.info("Tous les emails \xe9ligibles ont d\xe9j\xe0 \xe9t\xe9 envoy\xe9s");else if(window.confirm(`Voulez-vous envoyer l'email ${s} \xe0 environ ${l} utilisateurs ?`)){x(!0);try{const a=await b.A.post(`${Ye}/api/admin/followup/send`,{email_number:s,send_all:!0},{headers:{Authorization:`Bearer ${e}`}});j.oR.success(`${a.data.sent_count} emails envoy\xe9s !`),y(),_()}catch(c){var i,n;j.oR.error((null===(i=c.response)||void 0===i||null===(n=i.data)||void 0===n?void 0:n.detail)||"Erreur lors de l'envoi")}finally{x(!1)}}})(s),disabled:o||0===c,className:""+(c>0?"bg-lime text-obsidian hover:bg-lime/90":"bg-gray-700 text-gray-400"),children:o?(0,m.jsx)(He.y,{weight:"bold",className:"w-4 h-4 animate-spin"}):c>0?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(S.M,{weight:"bold",className:"w-4 h-4 mr-2"}),"Envoyer"]}):(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(Ke.r,{weight:"bold",className:"w-4 h-4 mr-2"}),"Termin\xe9"]})})]})]},s)})})})]}),(null===r||void 0===r||null===(s=r.recent_sends)||void 0===s?void 0:s.length)>0&&(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"flex items-center gap-2",children:[(0,m.jsx)(Qe.z,{weight:"duotone",className:"w-5 h-5 text-orange-400"}),"Envois r\xe9cents"]})}),(0,m.jsx)(c.Wu,{children:(0,m.jsx)("div",{className:"overflow-x-auto",children:(0,m.jsxs)("table",{className:"w-full text-sm",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"border-b border-white/10",children:[(0,m.jsx)("th",{className:"text-left p-3 text-gray-400 font-medium",children:"Email"}),(0,m.jsx)("th",{className:"text-left p-3 text-gray-400 font-medium",children:"Type"}),(0,m.jsx)("th",{className:"text-left p-3 text-gray-400 font-medium",children:"Date"})]})}),(0,m.jsx)("tbody",{children:r.recent_sends.slice(0,20).map((e,s)=>(0,m.jsxs)("tr",{className:"border-b border-white/5 hover:bg-white/5",children:[(0,m.jsx)("td",{className:"p-3 text-white",children:e.email}),(0,m.jsx)("td",{className:"p-3",children:(0,m.jsxs)("span",{className:"px-2 py-0.5 bg-lime/20 text-lime text-xs rounded-full",children:["Email ",e.email_number]})}),(0,m.jsx)("td",{className:"p-3 text-gray-400",children:e.sent_at?new Date(e.sent_at).toLocaleStr
1ing("fr-FR"):"-"})]},s))})]})})})]}),(0,m.jsxs)("div",{className:"flex items-start gap-3 p-4 rounded-lg bg-orange-500/10 border border-orange-500/20",children:[(0,m.jsx)(ne.N,{weight:"bold",className:"w-5 h-5 text-orange-400 flex-shrink-0 mt-0.5"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm text-orange-200 font-medium",children:"Important"}),(0,m.jsx)("p",{className:"text-sm text-orange-200/70",children:"Les emails sont envoy\xe9s une seule fois par utilisateur. Le syst\xe8me garde une trace des envois pour \xe9viter les doublons. Pensez \xe0 tester chaque email avant l'envoi en masse."})]})]})]})}const es="https://llredac.fr/api";function ss(){const{user:e,token:s}=(0,p.A)(),a=(0,l.Zp)(),{t:d,i18n:o}=(0,r.Bd)(),[T,L]=(0,t.useState)(!0),[D,J]=(0,t.useState)([]),[Z,P]=(0,t.useState)(null),[I,F]=(0,t.useState)(null),[U,M]=(0,t.useState)([]),[O,W]=(0,t.useState)(null),V="[email protected]"===(null===e||void 0===e?void 0:e.email);(0,t.useEffect)(()=>{if(!V)return j.oR.error(d("admin.accessDenied")),void a("/dashboard");G()},[V,a,d]);const G=async()=>{try{const e={Authorization:`Bearer ${s}`},[a,t,l,r,i]=await Promise.all([b.A.get(`${es}/admin/users`,{headers:e}),b.A.get(`${es}/admin/stats`,{headers:e}),b.A.get(`${es}/admin/config`,{headers:e}),b.A.get(`${es}/admin/plans`,{headers:e}),b.A.get(`${es}/admin/blog/stats`,{headers:e})]);J(a.data),P(t.data),F(l.data),M(r.data),W(i.data)}catch(e){j.oR.error(d("admin.loadError"))}finally{L(!1)}};return T?(0,m.jsx)(n.A,{children:(0,m.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,m.jsx)("div",{className:"animate-spin w-8 h-8 border-2 border-lime border-t-transparent rounded-full"})})}):(0,m.jsx)(n.A,{children:(0,m.jsxs)("div",{className:"max-w-7xl mx-auto px-6 py-8",children:[(0,m.jsxs)(i.P.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-8",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3 mb-2",children:[(0,m.jsx)(N.o,{weight:"duotone",className:"w-8 h-8 text-lime"}),(0,m.jsx)("h1",{className:"font-outfit text-3xl font-bold",children:d("admin.title")})]}),(0,m.jsx)("p",{className:"text-gray-400",children:d("admin.subtitle")})]}),Z&&(0,m.jsxs)(i.P.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-8",children:[(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsx)(c.Wu,{className:"p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 rounded-lg bg-lime/10",children:(0,m.jsx)(v.z,{weight:"duotone",className:"w-5 h-5 text-lime"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-2xl font-bold",children:Z.total_users}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:d("admin.stats.users")})]})]})})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsx)(c.Wu,{className:"p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 rounded-lg bg-yellow-500/10",children:(0,m.jsx)(f.T,{weight:"duotone",className:"w-5 h-5 text-yellow-500"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-2xl font-bold",children:Z.total_credits_used}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:d("admin.stats.creditsUsed")})]})]})})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsx)(c.Wu,{className:"p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 rounded-lg bg-green-500/10",children:(0,m.jsx)(w.S,{weight:"duotone",className:"w-5 h-5 text-green-500"})}),(0,m.jsxs)("div",{children:[(0,m.jsxs)("p",{className:"text-2xl font-bold",children:[Z.total_revenue,"\u20ac"]}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:d("admin.stats.revenue")})]})]})})}),(0,m.jsx)(c.Zp,{className:"glass border-white/10",children:(0,m.jsx)(c.Wu,{className:"p-4",children:(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"p-2 rounded-lg bg-blue-500/10",children:(0,m.jsx)(y.s,{weight:"duotone",className:"w-5 h-5 text-blue-500"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-2xl font-bold",children:Z.total_articles}),(0,m.jsx)("p",{className:"text-xs text-gray-400",children:d("admin.stats.articlesGenerated")})]})]})})})]}),(0,m.jsx)(i.P.div,{initial:{opacity:0,y:20}
1,animate:{opacity:1,y:0},transition:{delay:.2},children:(0,m.jsxs)(x,{defaultValue:"users",className:"space-y-6",children:[(0,m.jsxs)(h,{className:"bg-white/5 border border-white/10",children:[(0,m.jsxs)(u,{value:"users",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(v.z,{weight:"bold",className:"w-4 h-4 mr-2"}),d("admin.tabs.users")]}),(0,m.jsxs)(u,{value:"plans",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(_.y,{weight:"bold",className:"w-4 h-4 mr-2"}),d("admin.tabs.plans")]}),(0,m.jsxs)(u,{value:"promo",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)($.R,{weight:"bold",className:"w-4 h-4 mr-2"}),"Promos"]}),(0,m.jsxs)(u,{value:"newsletter",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(C.v,{weight:"bold",className:"w-4 h-4 mr-2"}),"Newsletter"]}),(0,m.jsxs)(u,{value:"followup",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(S.M,{weight:"bold",className:"w-4 h-4 mr-2"}),"Relances"]}),(0,m.jsxs)(u,{value:"seo-audits",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(R.e,{weight:"bold",className:"w-4 h-4 mr-2"}),"Audits SEO"]}),(0,m.jsxs)(u,{value:"blog",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(k.n,{weight:"bold",className:"w-4 h-4 mr-2"}),d("admin.tabs.blog")]}),(0,m.jsxs)(u,{value:"services",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(A.i,{weight:"bold",className:"w-4 h-4 mr-2"}),"Pages Services"]}),(0,m.jsxs)(u,{value:"settings",className:"data-[state=active]:bg-lime data-[state=active]:text-obsidian",children:[(0,m.jsx)(E.O,{weight:"bold",className:"w-4 h-4 mr-2"}),d("admin.tabs.settings")]})]}),(0,m.jsx)(g,{value:"users",children:(0,m.jsx)(de,{users:D,token:s,onRefresh:G})}),(0,m.jsx)(g,{value:"plans",children:(0,m.jsx)(oe,{plans:U,token:s,onRefresh:G})}),(0,m.jsx)(g,{value:"promo",children:(0,m.jsx)(Ee,{token:s,onRefresh:G})}),(0,m.jsx)(g,{value:"newsletter",children:(0,m.jsx)(qe,{})}),(0,m.jsx)(g,{value:"followup",children:(0,m.jsx)(Xe,{token:s})}),(0,m.jsx)(g,{value:"seo-audits",children:(0,m.jsx)(Oe,{})}),(0,m.jsx)(g,{value:"blog",children:(0,m.jsx)(Ce,{token:s,blogStats:O,onRefresh:G})}),(0,m.jsx)(g,{value:"services",children:(0,m.jsx)(Le,{token:s})}),(0,m.jsx)(g,{value:"settings",children:(0,m.jsx)(me,{config:I,token:s,onRefresh:G})})]})}),(0,m.jsx)(i.P.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},className:"mt-8",children:(0,m.jsxs)(c.Zp,{className:"glass border-white/10",children:[(0,m.jsx)(c.aR,{children:(0,m.jsxs)(c.ZB,{className:"text-lg flex items-center gap-2",children:[(0,m.jsx)(z.N,{weight:"duotone",className:"w-5 h-5 text-lime"}),d("admin.quickLinks")]})}),(0,m.jsx)(c.Wu,{children:(0,m.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,m.jsxs)(l.N_,{to:"/analytics",className:"px-4 py-2 rounded-lg bg-white/5 hover:bg-white/10 text-sm transition-colors flex items-center gap-2",children:[(0,m.jsx)(B.k,{weight:"bold",className:"w-4 h-4 text-lime"}),"Analytics"]}),(0,m.jsxs)(l.N_,{to:"/blog",className:"px-4 py-2 rounded-lg bg-white/5 hover:bg-white/10 text-sm transition-colors flex items-center gap-2",children:[(0,m.jsx)(k.n,{weight:"bold",className:"w-4 h-4 text-blue-400"}),d("nav.blog")]}),(0,m.jsxs)(l.N_,{to:"/pricing",className:"px-4 py-2 rounded-lg bg-white/5 hover:bg-white/10 text-sm transition-colors flex items-center gap-2",children:[(0,m.jsx)(_.y,{weight:"bold",className:"w-4 h-4 text-green-400"}),d("nav.pricing")]})]})})]})})]})})}}}]);

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.