vendor: 4,374 bytes, line 1
1import{r as z,j as s}from"./vendor-radix-DzOO2cmU.js";import{W as yt}from"./index-Qs1HBGJt.js";import{t as q,c as F,D as It,aX as tt,B as V,T as st,C as O,d as Y,e as G,f as H,Y as lt,I as ot,L as dt,g as jt,X as Dt,K as ut,y as W,aY as Nt,h as wt,i as At}from"./index-CEKQWnFw.js";import{s as U,d as ht,t as _t}from"./transform-CO2SUuvq.js";import{H as gt}from"./history-Dt7P0uBh.js";import{T as kt}from"./trash-2-DYcI4TNY.js";import{B as Mt}from"./book-open-EfLssMt7.js";import{D as Ct}from"./download-CvCDmpeX.js";import{C as St}from"./chevron-down-B4pxCOFm.js";import"./vendor-react-BN0qJr-I.js";import"./vendor-trpc-D7HyxgAF.js";import"./string-CcOIjdko.js";function $t(t){let e;for(;e=t.sourceEvent;)t=e;return t}function xt(t,e){if(t=$t(t),e===void 0&&(e=t.currentTarget),e){var a=e.ownerSVGElement||e;if(a.createSVGPoint){var o=a.createSVGPoint();return o.x=t.clientX,o.y=t.clientY,o=o.matrixTransform(e.getScreenCTM().inverse()),[o.x,o.y]}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();return[t.clientX-n.left-e.clientLeft,t.clientY-n.top-e.clientTop]}}return[t.pageX,t.pageY]}const zt={passive:!1},X={capture:!0,passive:!1};function et(t){t.stopImmediatePropagation()}function P(t){t.preventDefault(),t.stopImmediatePropagation()}function Et(t){var e=t.document.documentElement,a=U(t).on("dragstart.drag",P,X);"onselectstart"in e?a.on("selectstart.drag",P,X):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Tt(t,e){var a=t.document.documentElement,o=U(t).on("dragstart.drag",null);e&&(o.on("click.drag",P,X),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in a?o.on("selectstart.drag",null):(a.style.MozUserSelect=a.__noselect,delete a.__noselect)}const Q=t=>()=>t;function at(t,{sourceEvent:e,subject:a,target:o,identifier:n,active:i,x:u,y:x,dx:f,dy:d,dispatch:b}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:a,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:n,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:x,enumerable:!0,configurable:!0},dx:{value:f,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:b}})}at.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Lt(t){return!t.ctrlKey&&!t.button}function Rt(){return this.parentNode}function Bt(t,e){return e??{x:t.x,y:t.y}}function Ft(){return navigator.maxTouchPoints||"ontouchstart"in this}function Pt(){var t=Lt,e=Rt,a=Bt,o=Ft,n={},i=ht("start","drag","end"),u=0,x,f,d,b,j=0;function h(c){c.on("mousedown.drag",p).filter(o).on("touchstart.drag",l).on("touchmove.drag",m,zt).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(c,D){if(!(b||!t.call(this,c,D))){var A=N(this,e.call(this,c,D),c,D,"mouse");A&&(U(c.view).on("mousemove.drag",I,X).on("mouseup.drag",r,X),Et(c.view),et(c),d=!1,x=c.clientX,f=c.clientY,A("start",c))}}function I(c){if(P(c),!d){var D=c.clientX-x,A=c.clientY-f;d=D*D+A*A>j}n.mouse("drag",c)}function r(c){U(c.view).on("mousemove.drag mouseup.drag",null),Tt(c.view,d),P(c),n.mouse("end",c)}function l(c,D){if(t.call(this,c,D)){var A=c.changedTouches,M=e.call(this,c,D),w=A.length,g,y;for(g=0;g<w;++g)(y=N(this,M,c,D,A[g].identifier,A[g]))&&(et(c),y("start",c,A[g]))}}function m(c){var D=c.changedTouches,A=D.length,M,w;for(M=0;M<A;++M)(w=n[D[M].identifier])&&(P(c),w("drag",c,D[M]))}function v(c){var D=c.changedTouches,A=D.length,M,w;for(b&&clearTimeout(b),b=setTimeout(function(){b=null},500),M=0;M<A;++M)(w=n[D[M].identifier])&&(et(c),w("end",c,D[M]))}function N(c,D,A,M,w,g){var y=i.copy(),k=xt(g||A,D),C,_,T;if((T=a.call(c,new at("beforestart",{sourceEvent:A,target:h,identifier:w,active:u,x:k[0],y:k[1],dx:0,dy:0,dispatch:y}),M))!=null)return C=T.x-k[0]||0,_=T.y-k[1]||0,function J(E,it,vt){var ct=k,Z;switch(E){case"start":n[w]=J,Z=u++;break;case"end":delete n[w],--u;case"drag":k=xt(vt||it,D),Z=u;break}y.call(E,c,new at(E,{sourceEvent:it,subject:T,target:h,identifier:w,active:Z,x:k[0]+C,y:k[1]+_,dx:k[0]-ct[0],dy:k[1]-ct[1],dispatch:y}),M)}}return h.filter=function(c){return arguments.length?(t=typeof c=="function"?c:Q(!!c),h):t}
vendor: 11,199 bytes, line 1
1,h.container=function(c){return arguments.length?(e=typeof c=="function"?c:Q(c),h):e},h.subject=function(c){return arguments.length?(a=typeof c=="function"?c:Q(c),h):a},h.touchable=function(c){return arguments.length?(o=typeof c=="function"?c:Q(!!c),h):o},h.on=function(){var c=i.on.apply(i,arguments);return c===i?h:c},h.clickDistance=function(c){return arguments.length?(j=(c=+c)*c,h):Math.sqrt(j)},h}function Ot(t,e){var a,o=1;t==null&&(t=0),e==null&&(e=0);function n(){var i,u=a.length,x,f=0,d=0;for(i=0;i<u;++i)x=a[i],f+=x.x,d+=x.y;for(f=(f/u-t)*o,d=(d/u-e)*o,i=0;i<u;++i)x=a[i],x.x-=f,x.y-=d}return n.initialize=function(i){a=i},n.x=function(i){return arguments.length?(t=+i,n):t},n.y=function(i){return arguments.length?(e=+i,n):e},n.strength=function(i){return arguments.length?(o=+i,n):o},n}function Yt(t){const e=+this._x.call(null,t),a=+this._y.call(null,t);return bt(this.cover(e,a),e,a,t)}function bt(t,e,a,o){if(isNaN(e)||isNaN(a))return t;var n,i=t._root,u={data:o},x=t._x0,f=t._y0,d=t._x1,b=t._y1,j,h,p,I,r,l,m,v;if(!i)return t._root=u,t;for(;i.length;)if((r=e>=(j=(x+d)/2))?x=j:d=j,(l=a>=(h=(f+b)/2))?f=h:b=h,n=i,!(i=i[m=l<<1|r]))return n[m]=u,t;if(p=+t._x.call(null,i.data),I=+t._y.call(null,i.data),e===p&&a===I)return u.next=i,n?n[m]=u:t._root=u,t;do n=n?n[m]=new Array(4):t._root=new Array(4),(r=e>=(j=(x+d)/2))?x=j:d=j,(l=a>=(h=(f+b)/2))?f=h:b=h;while((m=l<<1|r)===(v=(I>=h)<<1|p>=j));return n[v]=i,n[m]=u,t}function Gt(t){var e,a,o=t.length,n,i,u=new Array(o),x=new Array(o),f=1/0,d=1/0,b=-1/0,j=-1/0;for(a=0;a<o;++a)isNaN(n=+this._x.call(null,e=t[a]))||isNaN(i=+this._y.call(null,e))||(u[a]=n,x[a]=i,n<f&&(f=n),n>b&&(b=n),i<d&&(d=i),i>j&&(j=i));if(f>b||d>j)return this;for(this.cover(f,d).cover(b,j),a=0;a<o;++a)bt(this,u[a],x[a],t[a]);return this}function Ht(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var a=this._x0,o=this._y0,n=this._x1,i=this._y1;if(isNaN(a))n=(a=Math.floor(t))+1,i=(o=Math.floor(e))+1;else{for(var u=n-a||1,x=this._root,f,d;a>t||t>=n||o>e||e>=i;)switch(d=(e<o)<<1|t<a,f=new Array(4),f[d]=x,x=f,u*=2,d){case 0:n=a+u,i=o+u;break;case 1:a=n-u,i=o+u;break;case 2:n=a+u,o=i-u;break;case 3:a=n-u,o=i-u;break}this._root&&this._root.length&&(this._root=x)}return this._x0=a,this._y0=o,this._x1=n,this._y1=i,this}function Ut(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function Xt(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function S(t,e,a,o,n){this.node=t,this.x0=e,this.y0=a,this.x1=o,this.y1=n}function qt(t,e,a){var o,n=this._x0,i=this._y0,u,x,f,d,b=this._x1,j=this._y1,h=[],p=this._root,I,r;for(p&&h.push(new S(p,n,i,b,j)),a==null?a=1/0:(n=t-a,i=e-a,b=t+a,j=e+a,a*=a);I=h.pop();)if(!(!(p=I.node)||(u=I.x0)>b||(x=I.y0)>j||(f=I.x1)<n||(d=I.y1)<i))if(p.length){var l=(u+f)/2,m=(x+d)/2;h.push(new S(p[3],l,m,f,d),new S(p[2],u,m,l,d),new S(p[1],l,x,f,m),new S(p[0],u,x,l,m)),(r=(e>=m)<<1|t>=l)&&(I=h[h.length-1],h[h.length-1]=h[h.length-1-r],h[h.length-1-r]=I)}else{var v=t-+this._x.call(null,p.data),N=e-+this._y.call(null,p.data),c=v*v+N*N;if(c<a){var D=Math.sqrt(a=c);n=t-D,i=e-D,b=t+D,j=e+D,o=p.data}}return o}function Vt(t){if(isNaN(b=+this._x.call(null,t))||isNaN(j=+this._y.call(null,t)))return this;var e,a=this._root,o,n,i,u=this._x0,x=this._y0,f=this._x1,d=this._y1,b,j,h,p,I,r,l,m;if(!a)return this;if(a.length)for(;;){if((I=b>=(h=(u+f)/2))?u=h:f=h,(r=j>=(p=(x+d)/2))?x=p:d=p,e=a,!(a=a[l=r<<1|I]))return this;if(!a.length)break;(e[l+1&3]||e[l+2&3]||e[l+3&3])&&(o=e,m=l)}for(;a.data!==t;)if(n=a,!(a=a.next))return this;return(i=a.next)&&delete a.next,n?(i?n.next=i:delete n.next,this):e?(i?e[l]=i:delete e[l],(a=e[0]||e[1]||e[2]||e[3])&&a===(e[3]||e[2]||e[1]||e[0])&&!a.length&&(o?o[m]=a:this._root=a),this):(this._root=i,this)}function Qt(t){for(var e=0,a=t.length;e<a;++e)this.remove(t[e]);return this}function Wt(){return this._root}function Kt(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function Jt(t){var e=[],a,o=this._root,n,i,u,x,f;for(o&&e.push(new S(o,this._x0,this._y0,this._x1,this._y1));a=e.pop();)if(!t(o=a.node,i=a.x0,u=a.y0,x=a.x1,f=a.y1)&&o.length){var d=(i+x)/2,b=(u+f)/2;(n=o[3])&&e.push(new S(n,d,b,x,f)),(n=o[2])&&e.push(new S(n,i,b,d,f)),(n=o[1])&&e.push(new S(n,d,u,x,b)),(n=o[0])&&e.push(new S(n,i,u,d,b))}return this}function Zt(t){var e=[],a=[],o;for(this._root&&e.push(new S(this._root,this._x0,this._y0,this._x1,this._y1));o=e.pop();){var n=o.node;if(n.length){var i,u=o.x0,x=o.y0,f=o.x1,d=o.y1,b=(u+f)/2,j=(x+d)/2;(i=n[0])&&e.push(new S(i,u,x,b,j)),(i=n[1])&&e.push(new S(i,b,x,f,j)),(i=n[2])&&e.push(new S(i,u,j,b,d)),(i=n[3])&&e.push(new S(i,b,j,f,d))}a.push(o)}for(;o=a.pop();)t(o.node,o.x0,o.y0,o.x1,o.y1);return this}function te(t){return t[0]}function ee(t){return arguments.length?(this._x=t,this):this._x}function se(t){return t[1]}function ae(t){return arguments.length?(this._y=t,this):this._y}function nt(t,e,a){var o=new rt(e??te,a??se,NaN,NaN,NaN,NaN);return t==null?o:o.addAll(t)}function rt(t,e,a,o,n,i){this._x=t,this._y=e,this._x0=a,this._y0=o,this._x1=n,this._y1=i,this._root=void 0}function pt(t){for(var e={data:t.data},a=e;t=t.next;)a=a.next={data:t.data};return e}var $=nt.prototype=rt.prototype;$.copy=function(){var t=new rt(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,a,o;if(!e)return t;if(!e.length)return t._root=pt(e),t;for(a=[{source:e,target:t._root=new Array(4)}];e=a.pop();)for(var n=0;n<4;++n)(o=e.source[n])&&(o.length?a.push({source:o,target:e.target[n]=new Array(4)}):e.target[n]=pt(o));return t};$.add=Yt;$.addAll=Gt;$.cover=Ht;$.data=Ut;$.extent=Xt;$.find=qt;$.remove=Vt;$.removeAll=Qt;$.root=Wt;$.size=Kt;$.visit=Jt;$.visitAfter=Zt;$.x=ee;$.y=ae;function R(t){return function(){return t}}function L(t){return(t()-.5)*1e-6}function ne(t){return t.x+t.vx}function re(t){return t.y+t.vy}function ie(t){var e,a,o,n=1,i=1;typeof t!="function"&&(t=R(t==null?1:+t));function u(){for(var d,b=e.length,j,h,p,I,r,l,m=0;m<i;++m)for(j=nt(e,ne,re).visitAfter(x),d=0;d<b;++d)h=e[d],r=a[h.index],l=r*r,p=h.x+h.vx,I=h.y+h.vy,j.visit(v);function v(N,c,D,A,M){var w=N.data,g=N.r,y=r+g;if(w){if(w.index>h.index){var k=p-w.x-w.vx,C=I-w.y-w.vy,_=k*k+C*C;_<y*y&&(k===0&&(k=L(o),_+=k*k),C===0&&(C=L(o),_+=C*C),_=(y-(_=Math.sqrt(_)))/_*n,h.vx+=(k*=_)*(y=(g*=g)/(l+g)),h.vy+=(C*=_)*y,w.vx-=k*(y=1-y),w.vy-=C*y)}return}return c>p+y||A<p-y||D>I+y||M<I-y}}function x(d){if(d.data)return d.r=a[d.data.index];for(var b=d.r=0;b<4;++b)d[b]&&d[b].r>d.r&&(d.r=d[b].r)}function f(){if(e){var d,b=e.length,j;for(a=new Array(b),d=0;d<b;++d)j=e[d],a[j.index]=+t(j,d,e)}}return u.initialize=function(d,b){e=d,o=b,f()},u.iterations=function(d){return arguments.length?(i=+d,u):i},u.strength=function(d){return arguments.length?(n=+d,u):n},u.radius=function(d){return arguments.length?(t=typeof d=="function"?d:R(+d),f(),u):t},u}function ce(t){return t.index}function ft(t,e){var a=t.get(e);if(!a)throw new Error("node not found: "+e);return a}function le(t){var e=ce,a=j,o,n=R(30),i,u,x,f,d,b=1;t==null&&(t=[]);function j(l){return 1/Math.min(x[l.source.index],x[l.target.index])}function h(l){for(var m=0,v=t.length;m<b;++m)for(var N=0,c,D,A,M,w,g,y;N<v;++N)c=t[N],D=c.source,A=c.target,M=A.x+A.vx-D.x-D.vx||L(d),w=A.y+A.vy-D.y-D.vy||L(d),g=Math.sqrt(M*M+w*w),g=(g-i[N])/g*l*o[N],M*=g,w*=g,A.vx-=M*(y=f[N]),A.vy-=w*y,D.vx+=M*(y=1-y),D.vy+=w*y}function p(){if(u){var l,m=u.length,v=t.length,N=new Map(u.map((D,A)=>[e(D,A,u),D])),c;for(l=0,x=new Array(m);l<v;++l)c=t[l],c.index=l,typeof c.source!="object"&&(c.source=ft(N,c.source)),typeof c.target!="object"&&(c.target=ft(N,c.target)),x[c.source.index]=(x[c.source.index]||0)+1,x[c.target.index]=(x[c.target.index]||0)+1;for(l=0,f=new Array(v);l<v;++l)c=t[l],f[l]=x[c.source.index]/(x[c.source.index]+x[c.target.index]);o=new Array(v),I(),i=new Array(v),r()}}function I(){if(u)for(var l=0,m=t.length;l<m;++l)o[l]=+a(t[l],l,t)}function r(){if(u)for(var l=0,m=t.length;l<m;++l)i[l]=+n(t[l],l,t)}return h.initialize=function(l,m){u=l,d=m,p()},h.links=function(l){return arguments.length?(t=l,p(),h):t},h.id=function(l){return arguments.length?(e=l,h):e},h.iterations=function(l){return arguments.length?(b=+l,h):b},h.strength=function(l){return arguments.length?(a=typeof l=="function"?l:R(+l),I(),h):a},h.distance=function(l){return arguments.length?(n=typeof l=="function"?l:R(+l),r(),h):n},h}const oe=1664525,de=1013904223,mt=4294967296;function ue(){let t=1;return()=>(t=(oe*t+de)%mt)/mt}function ge(t){return t.x}function xe(t){return t.y}var pe=10,fe=Math.PI*(3-Math.sqrt(5));function me(t){var e,a=1,o=.001,n=1-Math.pow(o,1/300),i=0,u=.6,x=new Map,f=_t(j),d=ht("tick","end"),b=ue();t==null&&(t=[]);function j(){h(),d.call("tick",e),a<o&&(f.stop(),d.call("end",e))}function h(r){var l,m=t.length,v;r===void 0&&(r=1);for(var N=0;N<r;++N)for(a+=(i-a)*n,x.forEach(function(c){c(a)}),l=0;l<m;++l)v=t[l],v.fx==null?v.x+=v.vx*=u:(v.x=v.fx,v.vx=0),v.fy==null?v.y+=v.vy*=u:(v.y=v.fy,v.vy=0);return e}function p(){for(var r=0,l=t.length,m;r<l;++r){if(m=t[r],m.index=r,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var v=pe*Math.sqrt(.5+r),N=r*fe;m.x=v*Math.cos(N),m.y=v*Math.sin(N)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function I(r){return r.initialize&&r.initialize(t,b),r}return p(),e={tick:h,restart:function(){return f.restart(j),e},stop:function(){return f.stop(),e},nodes:function(r){return arguments.length?(t=r,p(),x.forEach(I),e):t},alpha:function(r){return arguments.length?(a=+r,e):a},alphaMin:function(r){return arguments.length?(o=+r,e):o},alphaDecay:function(r){return arguments.length?(n=+r,e):+n},alphaTarget:function(r){return arguments.length?(i=+r,e):i},velocityDecay:function(r){return arguments.length?(u=1-r,e):1-u},randomSource:function(r){return arguments.length?(b=r,x.forEach(I),e):b},force:function(r,l){return arguments.length>1?(l==null?x.delete(r):x.set(r,I(l)),e):x.get(r)},find:function(r,l,m){var v=0,N=t.length,c,D,A,M,w;for(m==null?m=1/0:m*=m,v=0;v<N;++v)M=t[v],c=r-M.x,D=l-M.y,A=c*c+D*D,A<m&&(w=M,m=A);return w},on:function(r,l){return arguments.length>1?(d.on(r,l),e):d.on(r)}}}function he(){var t,e,a,o,n=R(-30),i,u=1,x=1/0,f=.81;function d(p){var I,r=t.length,l=nt(t,ge,xe).visitAfter(j);for(o=p,I=0;I<r;++I)e=t[I],l.visit(h)}function b(){if(t){var p,I=t.length,r;for(i=new Array(I),p=0;p<I;++p)r=t[p],i[r.index]=+n(r,p,t)}}function j(p){var I=0,r,l,m=0,v,N,c;if(p.length){for(v=N=c=0;c<4;++c)(r=p[c])&&(l=Math.abs(r.value))&&(I+=r.value,m+=l,v+=l*r.x,N+=l*r.y);p.x=v/m,p.y=N/m}else{r=p,r.x=r.data.x,r.y=r.data.y;do I+=i[r.data.index];while(r=r.next)}p.value=I}function h(p,I,r,l){if(!p.value)return!0;var m=p.x-e.x,v=p.y-e.y,N=l-I,c=m*m+v*v;if(N*N/f<c)return c<x&&(m===0&&(m=L(a),c+=m*m),v===0&&(v=L(a),c+=v*v),c<u&&(c=Math.sqrt(u*c)),e.vx+=m*p.value*o/c,e.vy+=v*p.value*o/c),!0;if(p.length||c>=x)return;(p.data!==e||p.next)&&(m===0&&(m=L(a),c+=m*m),v===0&&(v=L(a),c+=v*v),c<u&&(c=Math.sqrt(u*c)));do p.data!==e&&(N=i[p.data.index]*o/c,e.vx+=m*N,e.vy+=v*N);while(p=p.next)}return d.initialize=function(p,I){t=p,a=I,b()},d.strength=function(p){return arguments.length?(n=typeof p=="function"?p:R(+p
1),b(),d):n},d.distanceMin=function(p){return arguments.length?(u=p*p,d):Math.sqrt(u)},d.distanceMax=function(p){return arguments.length?(x=p*p,d):Math.sqrt(x)},d.theta=function(p){return arguments.length?(f=p*p,d):Math.sqrt(f)},d}const B={contraindicated:{label:"Contre-indiqué",color:"#7c3aed",bg:"bg-purple-50",border:"border-purple-300",text:"text-purple-800",badge:"bg-purple-100 text-purple-800",icon:wt,d3Color:"#7c3aed"},major:{label:"Majeure",color:"#dc2626",bg:"bg-red-50",border:"border-red-300",text:"text-red-800",badge:"bg-red-100 text-red-800",icon:st,d3Color:"#dc2626"},moderate:{label:"Modérée",color:"#d97706",bg:"bg-amber-50",border:"border-amber-300",text:"text-amber-800",badge:"bg-amber-100 text-amber-800",icon:st,d3Color:"#d97706"},minor:{label:"Mineure",color:"#2563eb",bg:"bg-blue-50",border:"border-blue-300",text:"text-blue-800",badge:"bg-blue-100 text-blue-800",icon:Nt,d3Color:"#2563eb"},none:{label:"Aucune",color:"#16a34a",bg:"bg-green-50",border:"border-green-300",text:"text-green-800",badge:"bg-green-100 text-green-800",icon:W,d3Color:"#16a34a"}},be={medicament:"Médicament",plante:"Plante médicinale",complement:"Complément alimentaire",aliment_fonctionnel:"Aliment fonctionnel",huile_essentielle:"Huile essentielle",probiotique:"Probiotique"},K={medicament:"#0ea5e9",plante:"#22c55e",complement:"#f59e0b",aliment_fonctionnel:"#f97316",huile_essentielle:"#a855f7",probiotique:"#06b6d4"};function ve({substances:t,interactions:e}){const a=z.useRef(null);return z.useEffect(()=>{if(!a.current||t.length===0)return;const o=U(a.current);o.selectAll("*").remove();const n=a.current.clientWidth||600,i=380;o.attr("viewBox",`0 0 ${n} ${i}`);const u=t.map((r,l)=>({id:r.id,name:r.name.split(" (")[0],category:r.category,index:l})),x=new Map;t.forEach(r=>{x.set(r.id.toLowerCase(),r.id),x.set(r.name.toLowerCase(),r.id),(r.aliases??[]).forEach(l=>x.set(l.toLowerCase(),r.id))});const f=r=>x.get(r.toLowerCase())??x.get(r.split(" (")[0].toLowerCase())??r,d=new Set(u.map(r=>r.id)),b=e.map(r=>({source:f(r.substance1),target:f(r.substance2),severity:r.severity,color:B[r.severity]?.d3Color??"#94a3b8"})).filter(r=>d.has(r.source)&&d.has(r.target)),j=me(u).force("link",le(b).id(r=>r.id).distance(120)).force("charge",he().strength(-300)).force("center",Ot(n/2,i/2)).force("collision",ie(50)),h=o.append("defs");Object.entries(B).forEach(([r,l])=>{h.append("marker").attr("id",`arrow-${r}`).attr("viewBox","0 -5 10 10").attr("refX",22).attr("refY",0).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M0,-5L10,0L0,5").attr("fill",l.d3Color)});const p=o.append("g").selectAll("line").data(b).join("line").attr("stroke",r=>r.color).attr("stroke-width",r=>({contraindicated:3.5,major:3,moderate:2,minor:1.5})[r.severity]??1.5).attr("stroke-dasharray",r=>r.severity==="minor"?"5,3":"none").attr("marker-end",r=>`url(#arrow-${r.severity})`),I=o.append("g").selectAll("g").data(u).join("g").attr("cursor","pointer").call(Pt().on("start",(r,l)=>{r.active||j.alphaTarget(.3).restart(),l.fx=l.x,l.fy=l.y}).on("drag",(r,l)=>{l.fx=r.x,l.fy=r.y}).on("end",(r,l)=>{r.active||j.alphaTarget(0),l.fx=null,l.fy=null}));return I.append("circle").attr("r",22).attr("fill",r=>K[r.category]??"#94a3b8").attr("fill-opacity",.15).attr("stroke",r=>K[r.category]??"#94a3b8").attr("stroke-width",2),I.append("text").attr("text-anchor","middle").attr("dy","0.35em").attr("font-size","9px").attr("font-weight","600").attr("fill","#1e293b").text(r=>{const l=r.name.split(" ");return l.length>2?l.slice(0,2).join(" ")+"â¦":r.name}),j.on("tick",()=>{p.attr("x1",r=>r.source.x).attr("y1",r=>r.source.y).attr("x2",r=>r.target.x).attr("y2",r=>r.target.y),I.attr("transform",r=>`translate(${r.x},${r.y})`)}),()=>{j.stop()}},[t,e]),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:281",className:"relative w-full rounded-xl border border-slate-200 bg-white overflow-hidden",style:{height:380},children:t.length===0?s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:283",className:"flex items-center justify-center h-full text-slate-400 text-sm",children:"Ajoutez des substances pour visualiser le graphe"}):s.jsx("svg",{"data-loc":"client/src/pages/DrugInteractions.tsx:287",ref:a,className:"w-full h-full"})})}function ye({substances:t,interactions:e}){if(t.length<2)return null;const a=new Map;t.forEach(i=>
1{a.set(i.id.toLowerCase(),i.id),a.set(i.name.toLowerCase(),i.id),i.aliases?.forEach(u=>a.set(u.toLowerCase(),i.id))});const o=i=>a.get(i.toLowerCase())??a.get(i.split(" (")[0].toLowerCase())??i,n=(i,u)=>e.find(x=>{const f=o(x.substance1),d=o(x.substance2);return f===i&&d===u||f===u&&d===i})??null;return s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:322",className:"overflow-x-auto",children:[s.jsxs("table",{"data-loc":"client/src/pages/DrugInteractions.tsx:323",className:"w-full border-collapse text-xs",children:[s.jsx("thead",{"data-loc":"client/src/pages/DrugInteractions.tsx:324",children:s.jsxs("tr",{"data-loc":"client/src/pages/DrugInteractions.tsx:325",children:[s.jsx("th",{"data-loc":"client/src/pages/DrugInteractions.tsx:326",className:"p-2 bg-slate-50 border border-slate-200 text-left font-medium text-slate-600 min-w-[120px]",children:"Substance"}),t.map(i=>s.jsx("th",{"data-loc":"client/src/pages/DrugInteractions.tsx:330",className:"p-2 bg-slate-50 border border-slate-200 text-center font-medium text-slate-600 min-w-[90px]",children:s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:331",className:"block truncate max-w-[80px]",title:i.name,children:[i.name.split(" (")[0].substring(0,14),i.name.length>14?"â¦":""]})},i.id))]})}),s.jsx("tbody",{"data-loc":"client/src/pages/DrugInteractions.tsx:338",children:t.map(i=>s.jsxs("tr",{"data-loc":"client/src/pages/DrugInteractions.tsx:340",children:[s.jsx("td",{"data-loc":"client/src/pages/DrugInteractions.tsx:341",className:"p-2 border border-slate-200 bg-slate-50 font-medium text-slate-700 text-xs",children:s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:342",className:"block truncate max-w-[110px]",title:i.name,children:[i.name.split(" (")[0].substring(0,16),i.name.length>16?"â¦":""]})}),t.map(u=>{if(i.id===u.id)return s.jsx("td",{"data-loc":"client/src/pages/DrugInteractions.tsx:349",className:"p-2 border border-slate-200 bg-slate-100 text-center",children:s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:350",className:"text-slate-400",children:"â"})},u.id);const x=n(i.id,u.id);if(!x)return s.jsx("td",{"data-loc":"client/src/pages/DrugInteractions.tsx:357",className:"p-2 border border-slate-200 bg-green-50 text-center",children:s.jsx(W,{"data-loc":"client/src/pages/DrugInteractions.tsx:358",className:"h-3.5 w-3.5 text-green-500 mx-auto"})},u.id);const f=B[x.severity],d=f.icon;return s.jsx("td",{"data-loc":"client/src/pages/DrugInteractions.tsx:365",className:`p-2 border border-slate-200 ${f.bg} text-center cursor-help`,title:`${f.label} : ${x.clinicalEffect}`,children:s.jsx(d,{"data-loc":"client/src/pages/DrugInteractions.tsx:370",className:`h-3.5 w-3.5 mx-auto ${f.text}`})},u.id)})]},i.id))})]}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:378",className:"flex flex-wrap gap-3 mt-3 text-xs text-slate-600",children:[Object.entries(B).filter(([i])=>i!=="none").map(([i,u])=>{const x=u.icon;return s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:384",className:"flex items-center gap-1",children:[s.jsx(x,{"data-loc":"client/src/pages/DrugInteractions.tsx:385",className:`h-3 w-3 ${u.text}`}),s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:386",children:u.label})]},i)}),s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:390",className:"flex items-center gap-1",children:[s.jsx(W,{"data-loc":"client/src/pages/DrugInteractions.tsx:391",className:"h-3 w-3 text-green-500"}),s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:392",children:"Aucune interaction connue"})]})]})]})}function Ie({interaction:t,substances:e}){const[a,o]=z.useState(!1),n=B[t.severity],i=n.icon,u=e.find(f=>f.id===t.substance1),x=e.find(f=>f.id===t.substance2);return s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:415",className:`rounded-xl border ${n.border} ${n.bg} overflow-hidden`,children:[s.jsxs("button",{"data-loc":"client/src/pages/DrugInteractions.tsx:416",className:"w-full text-left p-4 flex items-start gap-3",onClick:()=>o(!a),children:[s.jsx(i,{"data-loc":"client/src/pages/DrugInteractions.tsx:420",className:`h-5 w-5 mt-0.5 flex-shrink-0 ${n.text}`}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:421",className:"flex-1 min-w-0",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:422",className:"flex items-center gap-2 flex-wrap",children:[s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:423",className:`text-xs font-semibold px-2 py-0.5 rounded-full ${n.badge}`,children:n.label}),s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:426",className:"font-semibold text-slate-800 text-sm",children:[u?.name.split(" (")[0]??t.substance1,s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:428",className:"mx-2 text-slate-400",children:"+"}),x?.name.split(" (")[0]??t.substance2]})]}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:432",className:"text-sm text-slate-700 mt-1 leading-relaxed",children:t.clinicalEffect})]}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:434",className:"flex-shrink-0 ml-2",children:a?s.jsx(At,{"data-loc":"client/src/pages/DrugInteractions.tsx:436",className:"h-4 w-4 text-slate-400"}):s.jsx(St,{"data-loc":"client/src/pages/DrugInteractions.tsx:438",className:"h-4 w-4 text-slate-400"})})]}),a&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:444",className:"px-4 pb-4 border-t border-slate-200 pt-3 space-y-3",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:445",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:446",className:"text-xs font-semibold text-slate-500 uppercase tracking-wide mb-1",children:"Mécanisme"}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:447",className:"text-sm text-slate-700 leading-relaxed",children:t.mechanism})]}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:449",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:450",className:"text-xs font-semibold text-slate-500 uppercase tracking-wide mb-1",children:"Recommandation"}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:451",className:"text-sm text-slate-700 leading-relaxed",children:t.recommendation})]}),t.alternatives&&t.alternatives.length>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:454",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:455",className:"text-xs font-semibold text-slate-500 uppercase tracking-wide mb-1",children:"Alternatives"}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:456",className:"flex flex-wrap gap-1.5",children:t.alternatives.map(f=>s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:458",className:"text-xs bg-white border border-slate-200 text-slate-700 px-2 py-0.5 rounded-full",children:f},f))})]}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:465",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:466",className:"text-xs font-semibold text-slate-500 uppercase tracking-wide mb-1",children:"Sources"}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:467",className:"flex flex-wrap gap-1.5",children:t.sources.map(f=>s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:469",className:"text-xs bg-white border border-slate-200 text-slate-600 px-2 py-0.5 rounded-full font-mono",children:f},f))})]})]})]})}function Ee(){const[t,e]=z.useState(""),[a,o]=z.useState([]),[n,i]=z.useState(null),[u,x]=z.useState("list"),[f,d]=z.useState(!1),[b,j]=z.useState(""),h=z.useRef(null),{data:p,isFetching:I}=q.drugInteractions.searchSubstances.useQuery({query:t},{enabled:t.length>=2}),r=q.drugInteractions.analyze.useMutation({onSuccess:g=>{i(g),F.success("Analyse terminée")},onError:g=>{F.error(g.message||"Erreur lors de l'analyse")}}),{data:l,refetch:m}=q.drugInteractions.getHistory.useQuery({limit:20},{enabled:f}),v=q.drugInteractions.deleteSession.useMutation({onSuccess:()=>{m(),F.success("Analyse supprimée")}}),N=z.useCallback(g=>{if(a.find(y=>y.id===g.id)){F.info("Substance déjà ajoutée");return}if(a.length>=20){F.error("Maximum 20 substances");return}o(y=>[...y,g]),e(""),i(null)},[a]),c=z.useCallback(g=>{o(y=>y.filter(k=>k.id!==g)),i(null)},[]),D=()=>
1{if(a.length<2){F.error("Ajoutez au moins 2 substances");return}const g={};a.forEach(y=>{g[y.id]=y.name}),r.mutate({substanceIds:a.map(y=>y.id),substanceNamesOverride:g,title:b||void 0})},A=()=>{if(!n)return;const g=window.open("","_blank");if(!g)return;const y=["contraindicated","major","moderate","minor"],k=[...n.interactions].sort((_,T)=>y.indexOf(_.severity)-y.indexOf(T.severity)),C=`<!DOCTYPE html> 2<html lang="fr"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Rapport d'Interactions Médicamenteuses â ${n.title}</title> 6 <style> 7 * { box-sizing: border-box; margin: 0; padding: 0; } 8 body { font-family: 'Segoe UI', Arial, sans-serif; color: #1e293b; background: #fff; padding: 40px; max-width: 900px; margin: 0 auto; } 9 h1 { font-size: 22px; color: #0f172a; margin-bottom: 4px; } 10 .subtitle { font-size: 13px; color: #64748b; margin-bottom: 24px; } 11 .header { border-bottom: 2px solid #0ea5e9; padding-bottom: 16px; margin-bottom: 24px; } 12 .logo { font-size: 18px; font-weight: 700; color: #0ea5e9; margin-bottom: 8px; } 13 .section-title { font-size: 14px; font-weight: 700; color: #0f172a; text-transform: uppercase; letter-spacing: 0.05em; margin: 24px 0 12px; padding-bottom: 6px; border-bottom: 1px solid #e2e8f0; } 14 .substances { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; } 15 .substance-tag { background: #f1f5f9; border: 1px solid #cbd5e1; border-radius: 20px; padding: 4px 12px; font-size: 12px; color: #334155; } 16 .summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; } 17 .summary-card { border-radius: 8px; padding: 12px; text-align: center; } 18 .summary-card .count { font-size: 24px; font-weight: 700; } 19 .summary-card .label { font-size: 11px; margin-top: 2px; } 20 .card-contraindicated { background: #f5f3ff; color: #7c3aed; } 21 .card-major { background: #fef2f2; color: #dc2626; } 22 .card-moderate { background: #fffbeb; color: #d97706; } 23 .card-minor { background: #eff6ff; color: #2563eb; } 24 .interaction { border-radius: 8px; padding: 16px; margin-bottom: 12px; page-break-inside: avoid; } 25 .interaction-contraindicated { background: #f5f3ff; border-left: 4px solid #7c3aed; } 26 .interaction-major { background: #fef2f2; border-left: 4px solid #dc2626; } 27 .interaction-moderate { background: #fffbeb; border-left: 4px solid #d97706; } 28 .interaction-minor { background: #eff6ff; border-left: 4px solid #2563eb; } 29 .interaction-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; } 30 .severity-badge { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 12px; text-transform: uppercase; } 31 .badge-contraindicated { background: #ede9fe; color: #7c3aed; } 32 .badge-major { background: #fee2e2; color: #dc2626; } 33 .badge-moderate { background: #fef3c7; color: #d97706; } 34 .badge-minor { background: #dbeafe; color: #2563eb; } 35 .interaction-title { font-size: 14px; font-weight: 600; color: #1e293b; } 36 .field-label { font-size: 11px; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 8px; margin-bottom: 2px; } 37 .field-value { font-size: 12px; color: #334155; line-height: 1.5; } 38 .sources { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; } 39 .source-tag { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 4px; padding: 1px 6px; font-size: 10px; font-family: monospace; color: #475569; } 40 .ai-section { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-top: 24px; } 41 .ai-title { font-size: 13px; font-weight: 700; color: #0369a1; margin-bottom: 8px; } 42 .ai-content { font-size: 12px; color: #0c4a6e; line-height: 1.6; white-space: pre-wrap; } 43 .footer { margin-top: 32px; padding-top: 16px; border-top: 1px solid #e2e8f0; font-size: 11px; color: #94a3b8; text-align: center; } 44 .no-interactions { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 16px; text-align: center; color: #166534; font-size: 13px; } 45 @media print { body { padding: 20px; } } 46 </style> 47</head> 48<body> 49 <div class="header"> 50 <div class="logo">Vitagram â Rapport Praticien</div> 51 <h1>Analyse des Interactions Médicamenteuses</h1> 52 <div class="subtitle">${n.title} • Généré le ${new Date().toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"})} • Bases de données : ANSM (France), BfArM (Allemagne), DrugBank/FDA (USA)</div> 53 </div> 54 55 <div class="section-title">Substances analysées (${n.substances.length})</div> 56 <div class="substances"> 57 ${n.substances.map(_=>`<span class="substance-tag">${_.name.split(" (")[0]}</span>`).join("")} 58 </div> 59 60 <div class="section-title">Résumé des interactions</div> 61 <div class="summary-grid"> 62 <div class="summary-card card-contraindicated"> 63 <div class="count">${n.counts.contraindicated}</div> 64 <div class="label">Contre-indiquée(s)</div> 65 </div> 66 <div class="summary-card card-major"> 67 <div class="count">${n.counts.major}</div> 68 <div class="label">Majeure(s)</div> 69 </div> 70 <div class="summary-card card-moderate"> 71 <div class="count">${n.counts.moderate}</div> 72 <div class="label">Modérée(s)</div> 73 </div> 74 <div class="summary-card card-minor"> 75 <div class="count">${n.counts.minor}</div> 76 <div class="label">Mineure(s)</div> 77 </div> 78 </div> 79 80 <div class="section-title">Détail des interactions (${k.length})</div> 81 ${k.length===0?'<div class="no-interactions">â Aucune interaction médicamenteuse connue détectée entre ces substances.</
81div>':k.map(_=>{const T=n.substances.find(E=>E.id===_.substance1),J=n.substances.find(E=>E.id===_.substance2);return` 82 <div class="interaction interaction-${_.severity}"> 83 <div class="interaction-header"> 84 <span class="severity-badge badge-${_.severity}">${B[_.severity]?.label??_.severity}</span> 85 <span class="interaction-title">${T?.name.split(" (")[0]??_.substance1} + ${J?.name.split(" (")[0]??_.substance2}</span> 86 </div> 87 <div class="field-label">Effet clinique</div> 88 <div class="field-value">${_.clinicalEffect}</div> 89 <div class="field-label">Mécanisme</div> 90 <div class="field-value">${_.mechanism}</div> 91 <div class="field-label">Recommandation</div> 92 <div class="field-value">${_.recommendation}</div> 93 ${_.alternatives?.length?`<div class="field-label">Alternatives</div><div class="field-value">${_.alternatives.join(", ")}</div>`:""} 94 <div class="field-label">Sources</div> 95 <div class="sources">${_.sources.map(E=>`<span class="source-tag">${E}</span>`).join("")}</div> 96 </div>`}).join("")} 97 98 ${n.aiAnalysis?` 99 <div class="ai-section"> 100 <div class="ai-title">ð§ Analyse IA contextuelle</div> 101 <div class="ai-content">${n.aiAnalysis}</div> 102 </div>`:""} 103 104 <div class="footer"> 105 Ce rapport est fourni à titre informatif pour les professionnels de santé. Il ne remplace pas l'avis d'un pharmacien ou d'un médecin.<br> 106 Sources : ANSM (Agence Nationale de Sécurité du Médicament), BfArM (Bundesinstitut für Arzneimittel und Medizinprodukte), DrugBank / FDA (Food and Drug Administration)<br> 107 Vitagram â ${new Date().getFullYear()} 108 </div> 109</body> 110</html>`;g.document.write(C),g.document.close(),setTimeout(()=>g.print(),500)},w=(()=>{if(!n)return null;const{contraindicated:g,major:y,moderate:k,minor:C,total:_}=n.counts;return g>0?{level:"Critique",color:"text-purple-700",bg:"bg-purple-50 border-purple-200"}:y>0?{level:"Ãlevé",color:"text-red-700",bg:"bg-red-50 border-red-200"}:k>0?{level:"Modéré",color:"text-amber-700",bg:"bg-amber-50 border-amber-200"}:C>0?{level:"Faible",color:"text-blue-700",bg:"bg-blue-50 border-blue-200"}:_===0?{level:"Aucun risque détecté",color:"text-green-700",bg:"bg-green-50 border-green-200"}:null})();return s.jsx(It,{"data-loc":"client/src/pages/DrugInteractions.tsx:704",children:s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:705",className:"max-w-5xl mx-auto px-4 py-6 space-y-6",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:707",className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:708",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:709",className:"flex items-center gap-2 mb-1",children:[s.jsx(tt,{"data-loc":"client/src/pages/DrugInteractions.tsx:710",className:"h-6 w-6 text-cyan-600"}),s.jsx("h1",{"data-loc":"client/src/pages/DrugInteractions.tsx:711",className:"text-2xl font-bold text-slate-900",children:"Interactions Médicamenteuses"})]}),s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:713",className:"text-sm text-slate-500",children:["Analysez les interactions entre médicaments, plantes, compléments et aliments fonctionnels. Sources : ",s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:715",className:"font-medium",children:"ANSM · BfArM · DrugBank/FDA"})]})]}),s.jsxs(V,{"data-loc":"client/src/pages/DrugInteractions.tsx:718",variant:"outline",size:"sm",className:"flex-shrink-0",onClick:()=>d(!f),children:[s.jsx(gt,{"data-loc":"client/src/pages/DrugInteractions.tsx:724",className:"h-4 w-4 mr-1.5"}),"Historique"]})]}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:730",className:"flex items-start gap-2.5 bg-amber-50 border border-amber-200 rounded-lg px-4 py-3 text-xs text-amber-800",children:[s.jsx(st,{"data-loc":"client/src/pages/DrugInteractions.tsx:731",className:"h-4 w-4 text-amber-500 flex-shrink-0 mt-0.5"}),s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:732",children:[s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:733",className:"font-semibold",children:"Outil réservé aux professionnels de santé."}
110)," ","Les résultats sont générés par IA à partir des bases ANSM, BfArM et DrugBank/FDA. Ils ne remplacent pas l'avis d'un pharmacien ou d'un médecin. En cas de doute, consultez le Vidal ou un pharmacien avant toute décision thérapeutique."]})]}),f&&s.jsxs(O,{"data-loc":"client/src/pages/DrugInteractions.tsx:740",className:"border-slate-200",children:[s.jsx(Y,{"data-loc":"client/src/pages/DrugInteractions.tsx:741",className:"pb-3",children:s.jsxs(G,{"data-loc":"client/src/pages/DrugInteractions.tsx:742",className:"text-base flex items-center gap-2",children:[s.jsx(gt,{"data-loc":"client/src/pages/DrugInteractions.tsx:743",className:"h-4 w-4 text-slate-500"}),"Analyses précédentes"]})}),s.jsx(H,{"data-loc":"client/src/pages/DrugInteractions.tsx:747",children:!l||l.length===0?s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:749",className:"text-sm text-slate-400 text-center py-4",children:"Aucune analyse sauvegardée"}):s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:751",className:"space-y-2",children:l.map(g=>s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:753",className:"flex items-center justify-between p-3 rounded-lg border border-slate-100 hover:bg-slate-50 cursor-pointer",onClick:()=>{const y=(g.substanceNames??[]).map((k,C)=>({id:g.substances[C]??k,name:k,category:"medicament",description:"",commonUse:"",aliases:[]}));o(y),i({sessionId:g.id,substances:y,substanceNames:g.substanceNames??[],interactions:g.interactions??[],counts:{total:g.totalInteractions??0,contraindicated:g.contraindicatedInteractions??0,major:g.majorInteractions??0,moderate:g.moderateInteractions??0,minor:g.minorInteractions??0},aiAnalysis:g.aiAnalysis??"",title:g.title??""}),d(!1)},children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:785",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:786",className:"text-sm font-medium text-slate-800",children:g.title}),s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:787",className:"text-xs text-slate-400",children:[new Date(g.createdAt).toLocaleDateString("fr-FR")," â¢"," ",g.totalInteractions??0," interaction(s)"]})]}),s.jsx(V,{"data-loc":"client/src/pages/DrugInteractions.tsx:792",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 text-slate-400 hover:text-red-500",onClick:y=>{y.stopPropagation(),v.mutate({id:g.id})},children:s.jsx(kt,{"data-loc":"client/src/pages/DrugInteractions.tsx:801",className:"h-3.5 w-3.5"})})]},g.id))})})]}),s.jsxs(O,{"data-loc":"client/src/pages/DrugInteractions.tsx:812",className:"border-slate-200",children:[s.jsx(Y,{"data-loc":"client/src/pages/DrugInteractions.tsx:813",className:"pb-3",children:s.jsxs(G,{"data-loc":"client/src/pages/DrugInteractions.tsx:814",className:"text-base flex items-center gap-2",children:[s.jsx(lt,{"data-loc":"client/src/pages/DrugInteractions.tsx:815",className:"h-4 w-4 text-slate-500"}),"Substances à analyser"]})}),s.jsxs(H,{"data-loc":"client/src/pages/DrugInteractions.tsx:819",className:"space-y-4",children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:821",className:"relative",children:[s.jsx(lt,{"data-loc":"client/src/pages/DrugInteractions.tsx:822",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400"}),s.jsx(ot,{"data-loc":"client/src/pages/DrugInteractions.tsx:823",ref:h,value:t,onChange:g=>e(g.target.value),placeholder:"Rechercher un médicament, plante, complément⦠(ex: millepertuis, warfarine)",className:"pl-9 pr-4"}),I&&s.jsx(dt,{"data-loc":"client/src/pages/DrugInteractions.tsx:831",className:"absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400 animate-spin"})]}),t.length>=2&&p&&p.length>0&&s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:837",className:"border border-slate-200 rounded-lg overflow-hidden shadow-sm",children:p.map(g=>{const y=a.some(k=>k.id===g.id);return s.jsxs("button",{"data-loc":"client/src/pages/DrugInteractions.tsx:841",className:`w-full text-left px-4 py-3 flex items-start gap-3 hover:bg-slate-50 border-b border-slate-100 last:border-0 transition-colors ${y?"o
110pacity-50 cursor-not-allowed":""}`,onClick:()=>!y&&N(g),disabled:y,children:[s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:847",className:"w-2 h-2 rounded-full mt-1.5 flex-shrink-0",style:{backgroundColor:K[g.category]??"#94a3b8"}}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:851",className:"min-w-0",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:852",className:"text-sm font-medium text-slate-800",children:g.name}),s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:853",className:"text-xs text-slate-500 mt-0.5",children:[be[g.category]??g.category," â ",g.commonUse]})]}),y?s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:856",className:"text-xs text-slate-400 ml-auto flex-shrink-0",children:"Ajouté"}):s.jsx(jt,{"data-loc":"client/src/pages/DrugInteractions.tsx:858",className:"h-4 w-4 text-cyan-600 ml-auto flex-shrink-0"})]},g.id)})}),t.length>=2&&p?.length===0&&!I&&s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:867",className:"text-sm text-slate-400 text-center py-2",children:["Aucune substance trouvée pour « ",t," »"]}),a.length>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:872",children:[s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:873",className:"text-xs font-medium text-slate-500 mb-2",children:["Substances sélectionnées (",a.length,")"]}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:876",className:"flex flex-wrap gap-2",children:a.map(g=>s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:878",className:"inline-flex items-center gap-1.5 bg-white border border-slate-200 rounded-full px-3 py-1 text-sm text-slate-700 shadow-sm",children:[s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:882",className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:K[g.category]??"#94a3b8"}}),g.name.split(" (")[0],s.jsx("button",{"data-loc":"client/src/pages/DrugInteractions.tsx:887",onClick:()=>c(g.id),className:"ml-0.5 text-slate-400 hover:text-red-500 transition-colors",children:s.jsx(Dt,{"data-loc":"client/src/pages/DrugInteractions.tsx:891",className:"h-3.5 w-3.5"})})]},g.id))})]}),a.length>=2&&s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:901",children:s.jsx(ot,{"data-loc":"client/src/pages/DrugInteractions.tsx:902",value:b,onChange:g=>j(g.target.value),placeholder:"Titre de l'analyse (optionnel)",className:"text-sm"})}),s.jsx(V,{"data-loc":"client/src/pages/DrugInteractions.tsx:912",onClick:D,disabled:a.length<2||r.isPending,className:"w-full bg-cyan-600 hover:bg-cyan-700 text-white",children:r.isPending?s.jsxs(s.Fragment,{children:[s.jsx(dt,{"data-loc":"client/src/pages/DrugInteractions.tsx:919",className:"h-4 w-4 mr-2 animate-spin"}),"Analyse en coursâ¦"]}):s.jsxs(s.Fragment,{children:[s.jsx(tt,{"data-loc":"client/src/pages/DrugInteractions.tsx:924",className:"h-4 w-4 mr-2"}),"Analyser les interactions",a.length>=2&&s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:927",className:"ml-2 bg-white/20 rounded-full px-2 py-0.5 text-xs",children:[a.length," substances"]})]})})]})]}),n&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:939",className:"space-y-4",children:[w&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:942",className:`rounded-xl border p-4 flex items-center justify-between ${w.bg}`,children:[s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:943",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:944",className:"text-xs font-semibold text-slate-500 uppercase tracking-wide",children:"Niveau de risque global"}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:945",className:`text-xl font-bold ${w.color}`,children:w.level}),s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:946",className:"text-xs text-slate-500 mt-0.5",children:[n.counts.total," interaction(s) détectée(s) parmi ",n.substances.length," substances"]})]}),s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:950",className:"flex gap-3 text-center",children:[n.counts.contraindicated>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:952",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:953",className:"text-2xl font-bold text-purple-700",children:n.counts.contraindicated}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:954",className:"text-xs text-purple-600",children:"Contre-indiqué"})]}),n.counts.major>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:958",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:959",className:"text-2xl font-bold text-red-700",children:n.counts.major}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:960",className:"text-xs text-red-600",children:"Majeure"})]}),n.counts.moderate>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:964",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:965",className:"text-2xl font-bold text-amber-700",children:n.counts.moderate}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:966",className:"text-xs text-amber-600",children:"Modérée"})]}),n.counts.minor>0&&s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:970",children:[s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:971",className:"text-2xl font-bold text-blue-700",children:n.counts.minor}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:972",className:"text-xs text-blue-600",children:"Mineure"})]})]})]}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:980",className:"flex items-center gap-1 bg-slate-100 rounded-lg p-1
110w-fit",children:[{key:"list",label:"Liste",icon:Mt},{key:"matrix",label:"Matrice",icon:tt},{key:"graph",label:"Graphe",icon:ut}].map(g=>{const y=g.icon;return s.jsxs("button",{"data-loc":"client/src/pages/DrugInteractions.tsx:988",onClick:()=>x(g.key),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md text-sm font-medium transition-colors ${u===g.key?"bg-white text-slate-900 shadow-sm":"text-slate-500 hover:text-slate-700"}`,children:[s.jsx(y,{"data-loc":"client/src/pages/DrugInteractions.tsx:997",className:"h-3.5 w-3.5"}),g.label]},g.key)})}),u==="list"&&s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:1006",className:"space-y-3",children:n.interactions.length===0?s.jsxs("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:1008",className:"rounded-xl border border-green-200 bg-green-50 p-6 text-center",children:[s.jsx(W,{"data-loc":"client/src/pages/DrugInteractions.tsx:1009",className:"h-10 w-10 text-green-500 mx-auto mb-3"}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:1010",className:"font-semibold text-green-800",children:"Aucune interaction connue détectée"}),s.jsx("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:1011",className:"text-sm text-green-600 mt-1",children:"Ces substances ne présentent pas d'interactions répertoriées dans nos bases de données."})]}):n.interactions.map(g=>s.jsx(Ie,{"data-loc":"client/src/pages/DrugInteractions.tsx:1017",interaction:g,substances:n.substances},g.id))}),u==="matrix"&&s.jsxs(O,{"data-loc":"client/src/pages/DrugInteractions.tsx:1028",className:"border-slate-200",children:[s.jsx(Y,{"data-loc":"client/src/pages/DrugInteractions.tsx:1029",className:"pb-3",children:s.jsx(G,{"data-loc":"client/src/pages/DrugInteractions.tsx:1030",className:"text-base",children:"Matrice des interactions"})}),s.jsx(H,{"data-loc":"client/src/pages/DrugInteractions.tsx:1032",children:s.jsx(ye,{"data-loc":"client/src/pages/DrugInteractions.tsx:1033",substances:n.substances,interactions:n.interactions})})]}),u==="graph"&&s.jsxs(O,{"data-loc":"client/src/pages/DrugInteractions.tsx:1042",className:"border-slate-200",children:[s.jsx(Y,{"data-loc":"client/src/pages/DrugInteractions.tsx:1043",className:"pb-3",children:s.jsx(G,{"data-loc":"client/src/pages/DrugInteractions.tsx:1044",className:"text-base",children:"Graphe d'interactions"})}),s.jsxs(H,{"data-loc":"client/src/pages/DrugInteractions.tsx:1046",children:[s.jsx(ve,{"data-loc":"client/src/pages/DrugInteractions.tsx:1047",substances:n.substances,interactions:n.interactions}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:1051",className:"flex flex-wrap gap-3 mt-3 text-xs text-slate-600",children:Object.entries(B).filter(([g])=>g!=="none").map(([g,y])=>s.jsxs("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:1055",className:"flex items-center gap-1.5",children:[s.jsx("span",{"data-loc":"client/src/pages/DrugInteractions.tsx:1056",className:"w-4 h-0.5 rounded",style:{backgroundColor:y.d3Color}}),y.label]},g))})]})]}),n.aiAnalysis&&s.jsxs(O,{"data-loc":"client/src/pages/DrugInteractions.tsx:1067",className:"border-cyan-200 bg-cyan-50/50",children:[s.jsx(Y,{"data-loc":"client/src/pages/DrugInteractions.tsx:1068",className:"pb-3",children:s.jsxs(G,{"data-loc":"client/src/pages/DrugInteractions.tsx:1069",className:"text-base flex items-center gap-2 text-cyan-800",children:[s.jsx(ut,{"data-loc":"client/src/pages/DrugInteractions.tsx:1070",className:"h-4 w-4"}),"Analyse IA contextuelle"]})}),s.jsx(H,{"data-loc":"client/src/pages/DrugInteractions.tsx:1074",children:s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:1075",className:"text-sm text-slate-700 leading-relaxed prose prose-sm max-w-none prose-headings:text-slate-800 prose-strong:text-slate-800",children:s.jsx(yt,{"data-loc":"client/src/pages/DrugInteractions.tsx:1076",children:n.aiAnalysis})})})]}),s.jsx("div",{"data-loc":"client/src/pages/DrugInteractions.tsx:1083",className:"flex justify-end",children:s.jsxs(V,{"data-loc":"client/src/pages/DrugInteractions.tsx:1084",variant:"outline",onClick:A,className:"flex items-center gap-2",children:[s.jsx(Ct,{"data-loc":"client/src/pages/DrugInteractions.tsx:1089",className:"h-4 w-4"}),"Rapport praticien (PDF)"]})}),s.jsxs("p",{"data-loc":"client/src/pages/DrugInteractions.tsx:1095",className:"text-xs text-slate-400 text-center",children:["Ce rapport est fourni à titre informatif pour les professionnels de santé. Il ne remplace pas l'avis d'un pharmacien ou d'un médecin.",s.jsx("br",{"data-loc":"client/src/pages/DrugInteractions.tsx:1096"}),"Sources : ANSM (France) · BfArM (Allemagne) · DrugBank/FDA (USA)"]})]})]})})}export{Ee as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.