import{r as s,j as m}from"./jsx-runtime-IdAWuXfe.js";import{c as g,P as V,b as Y,u as q}from"./index-D5wptMZ6.js";import{u as M,a as X}from"./index-BLPllHK8.js";import{h as K}from"./dialog-VJ-6j31K.js";import{c as I,A as W,C as J,a as Q,R as Z}from"./index-yp4q334-.js";import{P as ee}from"./index-BAlUneY6.js";import{R as te}from"./index-C9DxMiXh.js";import{c as oe}from"./utils-DZ6KI8WZ.js";function re(e,o=[]){let t=[];function r(c,i){const u=s.createContext(i),a=t.length;t=[...t,i];function d(p){const{scope:f,children:x,...v}=p,T=(f==null?void 0:f[e][a])||u,h=s.useMemo(()=>v,Object.values(v));return m.jsx(T.Provider,{value:h,children:x})}function l(p,f){const x=(f==null?void 0:f[e][a])||u,v=s.useContext(x);if(v)return v;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${c}\``)}return d.displayName=c+"Provider",[d,l]}const n=()=>{const c=t.map(i=>s.createContext(i));return function(u){const a=(u==null?void 0:u[e])||c;return s.useMemo(()=>({[`__scope${e}`]:{...u,[e]:a}}),[u,a])}};return n.scopeName=e,[r,ne(n,...o)]}function ne(...e){const o=e[0];if(e.length===1)return o;const t=()=>{const r=e.map(n=>({useScope:n(),scopeName:n.scopeName}));return function(c){const i=r.reduce((u,{useScope:a,scopeName:d})=>{const p=a(c)[`__scope${d}`];return{...u,...p}},{});return s.useMemo(()=>({[`__scope${o.scopeName}`]:i}),[i])}};return t.scopeName=o.scopeName,t}var[R,Le]=re("Tooltip",[I]),_=I(),N="TooltipProvider",se=700,D="tooltip.open",[ae,L]=R(N),H=e=>{const{__scopeTooltip:o,delayDuration:t=se,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:c}=e,[i,u]=s.useState(!0),a=s.useRef(!1),d=s.useRef(0);return s.useEffect(()=>{const l=d.current;return()=>window.clearTimeout(l)},[]),m.jsx(ae,{scope:o,isOpenDelayed:i,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(d.current),u(!1)},[]),onClose:s.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>u(!0),r)},[r]),isPointerInTransitRef:a,onPointerInTransitChange:s.useCallback(l=>{a.current=l},[]),disableHoverableContent:n,children:c})};H.displayName=N;var O="Tooltip",[ie,k]=R(O),$=e=>{const{__scopeTooltip:o,children:t,open:r,defaultOpen:n=!1,onOpenChange:c,disableHoverableContent:i,delayDuration:u}=e,a=L(O,e.__scopeTooltip),d=_(o),[l,p]=s.useState(null),f=Y(),x=s.useRef(0),v=i??a.disableHoverableContent,T=u??a.delayDuration,h=s.useRef(!1),[y=!1,C]=q({prop:r,defaultProp:n,onChange:j=>{j?(a.onOpen(),document.dispatchEvent(new CustomEvent(D))):a.onClose(),c==null||c(j)}}),w=s.useMemo(()=>y?h.current?"delayed-open":"instant-open":"closed",[y]),P=s.useCallback(()=>{window.clearTimeout(x.current),h.current=!1,C(!0)},[C]),E=s.useCallback(()=>{window.clearTimeout(x.current),C(!1)},[C]),S=s.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{h.current=!0,C(!0)},T)},[T,C]);return s.useEffect(()=>()=>window.clearTimeout(x.current),[]),m.jsx(Z,{...d,children:m.jsx(ie,{scope:o,contentId:f,open:y,stateAttribute:w,trigger:l,onTriggerChange:p,onTriggerEnter:s.useCallback(()=>{a.isOpenDelayed?S():P()},[a.isOpenDelayed,S,P]),onTriggerLeave:s.useCallback(()=>{v?E():window.clearTimeout(x.current)},[E,v]),onOpen:P,onClose:E,disableHoverableContent:v,children:t})})};$.displayName=O;var A="TooltipTrigger",G=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=k(A,t),c=L(A,t),i=_(t),u=s.useRef(null),a=M(o,u,n.onTriggerChange),d=s.useRef(!1),l=s.useRef(!1),p=s.useCallback(()=>d.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),m.jsx(W,{asChild:!0,...i,children:m.jsx(ee.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:a,onPointerMove:g(e.onPointerMove,f=>{f.pointerType!=="touch"&&!l.current&&!c.isPointerInTransitRef.current&&(n.onTriggerEnter(),l.current=!0)}),onPointerLeave:g(e.onPointerLeave,()=>{n.onTriggerLeave(),l.current=!1}),onPointerDown:g(e.onPointerDown,()=>{d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:g(e.onFocus,()=>{d.current||n.onOpen()}),onBlur:g(e.onBlur,n.onClose),onClick:g(e.onClick,n.onClose)})})});G.displayName=A;var ce="TooltipPortal",[Se,le]=R(ce,{forceMount:void 0}),b="TooltipContent",F=s.forwardRef((e,o)=>{const t=le(b,e.__scopeTooltip),{forceMount:r=t.forceMount,side:n="top",...c}=e,i=k(b,e.__scopeTooltip);return m.jsx(V,{present:r||i.open,children:i.disableHoverableContent?m.jsx(B,{side:n,...c,ref:o}):m.jsx(ue,{side:n,...c,ref:o})})}),ue=s.forwardRef((e,o)=>{const t=k(b,e.__scopeTooltip),r=L(b,e.__scopeTooltip),n=s.useRef(null),c=M(o,n),[i,u]=s.useState(null),{trigger:a,onClose:d}=t,l=n.current,{onPointerInTransitChange:p}=r,f=s.useCallback(()=>{u(null),p(!1)},[p]),x=s.useCallback((v,T)=>{const h=v.currentTarget,y={x:v.clientX,y:v.clientY},C=ve(y,h.getBoundingClientRect()),w=xe(y,C),P=me(T.getBoundingClientRect()),E=Te([...w,...P]);u(E),p(!0)},[p]);return s.useEffect(()=>()=>f(),[f]),s.useEffect(()=>{if(a&&l){const v=h=>x(h,l),T=h=>x(h,a);return a.addEventListener("pointerleave",v),l.addEventListener("pointerleave",T),()=>{a.removeEventListener("pointerleave",v),l.removeEventListener("pointerleave",T)}}},[a,l,x,f]),s.useEffect(()=>{if(i){const v=T=>{const h=T.target,y={x:T.clientX,y:T.clientY},C=(a==null?void 0:a.contains(h))||(l==null?void 0:l.contains(h)),w=!he(y,i);C?f():w&&(f(),d())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[a,l,i,d,f]),m.jsx(B,{...e,ref:c})}),[de,pe]=R(O,{isInside:!1}),B=s.forwardRef((e,o)=>{const{__scopeTooltip:t,children:r,"aria-label":n,onEscapeKeyDown:c,onPointerDownOutside:i,...u}=e,a=k(b,t),d=_(t),{onClose:l}=a;return s.useEffect(()=>(document.addEventListener(D,l),()=>document.removeEventListener(D,l)),[l]),s.useEffect(()=>{if(a.trigger){const p=f=>{const x=f.target;x!=null&&x.contains(a.trigger)&&l()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[a.trigger,l]),m.jsx(K,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:c,onPointerDownOutside:i,onFocusOutside:p=>p.preventDefault(),onDismiss:l,children:m.jsxs(J,{"data-state":a.stateAttribute,...d,...u,ref:o,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[m.jsx(X,{children:r}),m.jsx(de,{scope:t,isInside:!0,children:m.jsx(te,{id:a.contentId,role:"tooltip",children:n||r})})]})})});F.displayName=b;var z="TooltipArrow",fe=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=_(t);return pe(z,t).isInside?null:m.jsx(Q,{...n,...r,ref:o})});fe.displayName=z;function ve(e,o){const t=Math.abs(o.top-e.y),r=Math.abs(o.bottom-e.y),n=Math.abs(o.right-e.x),c=Math.abs(o.left-e.x);switch(Math.min(t,r,n,c)){case c:return"left";case n:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function xe(e,o,t=5){const r=[];switch(o){case"top":r.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":r.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":r.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":r.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return r}function me(e){const{top:o,right:t,bottom:r,left:n}=e;return[{x:n,y:o},{x:t,y:o},{x:t,y:r},{x:n,y:r}]}function he(e,o){const{x:t,y:r}=e;let n=!1;for(let c=0,i=o.length-1;c<o.length;i=c++){const u=o[c].x,a=o[c].y,d=o[i].x,l=o[i].y;a>r!=l>r&&t<(d-u)*(r-a)/(l-a)+u&&(n=!n)}return n}function Te(e){const o=e.slice();return o.sort((t,r)=>t.x<r.x?-1:t.x>r.x?1:t.y<r.y?-1:t.y>r.y?1:0),Ce(o)}function Ce(e){if(e.length<=1)return e.slice();const o=[];for(let r=0;r<e.length;r++){const n=e[r];for(;o.length>=2;){const c=o[o.length-1],i=o[o.length-2];if((c.x-i.x)*(n.y-i.y)>=(c.y-i.y)*(n.x-i.x))o.pop();else break}o.push(n)}o.pop();const t=[];for(let r=e.length-1;r>=0;r--){const n=e[r];for(;t.length>=2;){const c=t[t.length-1],i=t[t.length-2];if((c.x-i.x)*(n.y-i.y)>=(c.y-i.y)*(n.x-i.x))t.pop();else break}t.push(n)}return t.pop(),o.length===1&&t.length===1&&o[0].x===t[0].x&&o[0].y===t[0].y?o:o.concat(t)}var ye=H,ge=$,be=G,U=F;const je=ye,Me=ge,Ie=be,we=s.forwardRef(({className:e,sideOffset:o=4,...t},r)=>m.jsx(U,{ref:r,sideOffset:o,className:oe("z-50 overflow-hidden rounded-md border border-neutral-200 bg-white px-3 py-1.5 text-sm text-neutral-950 shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",e),...t}));we.displayName=U.displayName;export{je as T,Me as a,Ie as b,we as c};
