@undp/design-system-react
Version:
React based design system for UNDP
2 lines • 9.11 kB
JavaScript
const e=require("./rolldown-runtime-mLOUI7ql.cjs"),t=require("./utils-Dd9-5CFr.cjs"),n=require("./dist--OhUIyHO.cjs"),r=require("./dist-VI-VV5wq.cjs"),i=require("./dist-B4Xu9oo7.cjs"),a=require("./dist-DluBSGxD.cjs"),o=require("./dist-CTSEb5uk.cjs"),s=require("./dist-odcXV7N3.cjs"),c=require("./dist-DnbpoIgp.cjs"),l=require("./dist-B7GyuuzQ.cjs"),u=require("./dist-DkrZhx1H.cjs"),d=require("./dist-ImWxW4aL.cjs");let f=require("react");f=e.r(f,1);let p=require("react/jsx-runtime");var m=Object.defineProperty,h=(e,t)=>m(e,`name`,{value:t,configurable:!0}),[g,_]=a.n(`Tooltip`,[d.i]),v=d.i(),y=`TooltipProvider`,b=700,x=`tooltip.open`,[S,C]=g(y),w=h(e=>{let{__scopeTooltip:t,delayDuration:n=b,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=f.useRef(!0),s=f.useRef(!1),c=f.useRef(0);return f.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,p.jsx)(S,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:f.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:f.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:f.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),T=`Tooltip`,[E,D]=g(T),O=h(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:s,delayDuration:l}=e,u=C(T,e.__scopeTooltip),m=v(t),[g,_]=f.useState(null),[y,b]=f.useState(void 0),S=c.t(),w=f.useRef(0),D=s??u.disableHoverableContent,O=l??u.delayDuration,k=f.useRef(!1),[A,j]=o.t({prop:r,defaultProp:i??!1,onChange:h(e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(x))):u.onClose(),a?.(e)},`onChange`),caller:T}),M=f.useMemo(()=>A?k.current?`delayed-open`:`instant-open`:`closed`,[A]),N=f.useCallback(()=>{window.clearTimeout(w.current),w.current=0,k.current=!1,j(!0)},[j]),P=f.useCallback(()=>{window.clearTimeout(w.current),w.current=0,j(!1)},[j]),F=f.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>{k.current=!0,j(!0),w.current=0},O)},[O,j]);f.useEffect(()=>()=>{w.current&&=(window.clearTimeout(w.current),0)},[]);let I=y??S;return(0,p.jsx)(d.r,{...m,children:(0,p.jsx)(E,{scope:t,contentId:I,setContentId:b,open:A,stateAttribute:M,trigger:g,onTriggerChange:_,onTriggerEnter:f.useCallback(()=>{u.isOpenDelayedRef.current?F():N()},[u.isOpenDelayedRef,F,N]),onTriggerLeave:f.useCallback(()=>{D?P():(window.clearTimeout(w.current),w.current=0)},[P,D]),onOpen:N,onClose:P,disableHoverableContent:D,children:n})})},`Tooltip`),k=`TooltipTrigger`,A=f.forwardRef(h(function(e,t){let{__scopeTooltip:i,...a}=e,s=D(k,i),c=C(k,i),l=v(i),u=n.i(t,f.useRef(null),s.onTriggerChange),m=f.useRef(!1),h=f.useRef(!1),g=f.useCallback(()=>m.current=!1,[]);return f.useEffect(()=>()=>document.removeEventListener(`pointerup`,g),[g]),(0,p.jsx)(d.t,{asChild:!0,...l,children:(0,p.jsx)(r.t.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...a,ref:u,onPointerMove:o.n(e.onPointerMove,e=>{e.pointerType!==`touch`&&!h.current&&!c.isPointerInTransitRef.current&&(s.onTriggerEnter(),h.current=!0)}),onPointerLeave:o.n(e.onPointerLeave,()=>{s.onTriggerLeave(),h.current=!1}),onPointerDown:o.n(e.onPointerDown,()=>{s.open&&s.onClose(),m.current=!0,document.addEventListener(`pointerup`,g,{once:!0})}),onFocus:o.n(e.onFocus,()=>{m.current||s.onOpen()}),onBlur:o.n(e.onBlur,s.onClose),onClick:o.n(e.onClick,s.onClose)})})},`TooltipTrigger`)),j=`TooltipPortal`,[M,N]=g(j,{forceMount:void 0}),P=h(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=D(j,t);return(0,p.jsx)(M,{scope:t,forceMount:n,children:(0,p.jsx)(s.t,{present:n||a.open,children:(0,p.jsx)(u.t,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),F=`TooltipContent`,I=f.forwardRef(h(function(e,t){let n=N(F,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=D(F,e.__scopeTooltip);return(0,p.jsx)(s.t,{present:r||o.open,children:o.disableHoverableContent?(0,p.jsx)(z,{side:i,...a,ref:t}):(0,p.jsx)(L,{side:i,...a,ref:t})})},`TooltipContent`)),L=f.forwardRef(h(function(e,t){let r=D(F,e.__scopeTooltip),i=C(F,e.__scopeTooltip),a=f.useRef(null),o=n.i(t,a),[s,c]=f.useState(null),{trigger:l,onClose:u}=r,d=a.current,{onPointerInTransitChange:m}=i,g=f.useCallback(()=>{c(null),m(!1)},[m]),_=f.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=V(r,B(r,n.getBoundingClientRect())),a=H(t.getBoundingClientRect()),o=W([...i,...a]);c(o),m(!0)},[m]);return f.useEffect(()=>()=>g(),[g]),f.useEffect(()=>{if(l&&d){let e=h(e=>_(e,d),`handleTriggerLeave`),t=h(e=>_(e,l),`handleContentLeave`);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,_,g]),f.useEffect(()=>{if(s){let e=h(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!U(n,s);r?g():i&&(g(),u())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,g]),(0,p.jsx)(z,{...e,ref:o})},`TooltipContentHoverable`)),R=n.r(`TooltipContent`),z=f.forwardRef(h(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":o,id:s,onEscapeKeyDown:c,onPointerDownOutside:u,...m}=e,g=D(F,n),_=v(n),{onClose:y}=g;f.useEffect(()=>(document.addEventListener(x,y),()=>document.removeEventListener(x,y)),[y]),f.useEffect(()=>{if(g.trigger){let e=h(e=>{e.target instanceof Node&&e.target.contains(g.trigger)&&y()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[g.trigger,y]);let{setContentId:b}=g;return a.t(()=>(b(s),()=>{b(void 0)}),[s,b]),(0,p.jsx)(l.n,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:y,children:(0,p.jsxs)(d.n,{"data-state":g.stateAttribute,role:o?void 0:`tooltip`,id:o?void 0:g.contentId,..._,...m,ref:t,style:{...m.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:[(0,p.jsx)(R,{children:r}),o?(0,p.jsx)(i.t,{id:g.contentId,role:`tooltip`,children:o}):null]})})},`TooltipContentImpl`));function B(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}h(B,`getExitSideFromRect`);function V(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}h(V,`getPaddedExitPoints`);function H(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}h(H,`getPointsFromRect`);function U(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}h(U,`isPointInPolygon`);function W(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),G(t)}h(W,`getHull`);function G(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}h(G,`getHullPresorted`);var K=w,q=O,J=A,Y=P,X=I,Z=K,Q=q,ee=J,$=f.default.forwardRef(({className:e,inPortal:n=!1,sideOffset:r=4,...i},a)=>{let o=(0,p.jsx)(X,{...i,ref:a,sideOffset:r,className:t.t(`fade-in-0 zoom-in-95 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 z-50 animate-in overflow-hidden border border-stroke bg-surface p-2 text-content-primary text-sm data-[state=closed]:animate-out`,e)});return n?(0,p.jsx)(Y,{children:o}):o});$.displayName=X.displayName,Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Q}});
//# sourceMappingURL=tooltip-DPHDVXx4.cjs.map