dgz-ui
Version:
Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript
2 lines (1 loc) • 9.09 kB
JavaScript
;const f=require("./jsx-runtime-h4oGeKUK.cjs"),Y=require("react"),C=require("./index-OHKxBzpT.cjs"),S=require("./index-C1oWDt_I.cjs"),X=require("./index-Dyp2JWEo.cjs"),K=require("./index-B4TRRfSv.cjs"),N=require("./index-2AoaKL3W.cjs"),b=require("./index-DGIrLGcj.cjs"),W=require("./index-9_bM8_1f.cjs"),J=require("./index-BbYJWkTf.cjs"),Q=require("./index-Ohh8fm8C.cjs"),Z=require("./utils-BeXF6FlA.cjs");function ee(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const s=ee(Y);var[_,be]=X.createContextScope("Tooltip",[b.createPopperScope]),O=b.createPopperScope(),I="TooltipProvider",te=700,L="tooltip.open",[oe,A]=_(I),q=t=>{const{__scopeTooltip:o,delayDuration:e=te,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:c}=t,a=s.useRef(!0),x=s.useRef(!1),i=s.useRef(0);return s.useEffect(()=>{const p=i.current;return()=>window.clearTimeout(p)},[]),f.jsxRuntimeExports.jsx(oe,{scope:o,isOpenDelayedRef:a,delayDuration:e,onOpen:s.useCallback(()=>{window.clearTimeout(i.current),a.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:x,onPointerInTransitChange:s.useCallback(p=>{x.current=p},[]),disableHoverableContent:n,children:c})};q.displayName=I;var j="Tooltip",[re,D]=_(j),$=t=>{const{__scopeTooltip:o,children:e,open:r,defaultOpen:n,onOpenChange:c,disableHoverableContent:a,delayDuration:x}=t,i=A(j,t.__scopeTooltip),p=O(o),[l,d]=s.useState(null),v=N.useId(),u=s.useRef(0),m=a??i.disableHoverableContent,h=x??i.delayDuration,T=s.useRef(!1),[g,y]=N.useControllableState({prop:r,defaultProp:n??!1,onChange:M=>{M?(i.onOpen(),document.dispatchEvent(new CustomEvent(L))):i.onClose(),c==null||c(M)},caller:j}),R=s.useMemo(()=>g?T.current?"delayed-open":"instant-open":"closed",[g]),w=s.useCallback(()=>{window.clearTimeout(u.current),u.current=0,T.current=!1,y(!0)},[y]),P=s.useCallback(()=>{window.clearTimeout(u.current),u.current=0,y(!1)},[y]),H=s.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>{T.current=!0,y(!0),u.current=0},h)},[h,y]);return s.useEffect(()=>()=>{u.current&&(window.clearTimeout(u.current),u.current=0)},[]),f.jsxRuntimeExports.jsx(b.Root2,{...p,children:f.jsxRuntimeExports.jsx(re,{scope:o,contentId:v,open:g,stateAttribute:R,trigger:l,onTriggerChange:d,onTriggerEnter:s.useCallback(()=>{i.isOpenDelayedRef.current?H():w()},[i.isOpenDelayedRef,H,w]),onTriggerLeave:s.useCallback(()=>{m?P():(window.clearTimeout(u.current),u.current=0)},[P,m]),onOpen:w,onClose:P,disableHoverableContent:m,children:e})})};$.displayName=j;var k="TooltipTrigger",G=s.forwardRef((t,o)=>{const{__scopeTooltip:e,...r}=t,n=D(k,e),c=A(k,e),a=O(e),x=s.useRef(null),i=S.useComposedRefs(o,x,n.onTriggerChange),p=s.useRef(!1),l=s.useRef(!1),d=s.useCallback(()=>p.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),f.jsxRuntimeExports.jsx(b.Anchor,{asChild:!0,...a,children:f.jsxRuntimeExports.jsx(W.Primitive.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:i,onPointerMove:C.composeEventHandlers(t.onPointerMove,v=>{v.pointerType!=="touch"&&!l.current&&!c.isPointerInTransitRef.current&&(n.onTriggerEnter(),l.current=!0)}),onPointerLeave:C.composeEventHandlers(t.onPointerLeave,()=>{n.onTriggerLeave(),l.current=!1}),onPointerDown:C.composeEventHandlers(t.onPointerDown,()=>{n.open&&n.onClose(),p.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:C.composeEventHandlers(t.onFocus,()=>{p.current||n.onOpen()}),onBlur:C.composeEventHandlers(t.onBlur,n.onClose),onClick:C.composeEventHandlers(t.onClick,n.onClose)})})});G.displayName=k;var ne="TooltipPortal",[Re,se]=_(ne,{forceMount:void 0}),E="TooltipContent",F=s.forwardRef((t,o)=>{const e=se(E,t.__scopeTooltip),{forceMount:r=e.forceMount,side:n="top",...c}=t,a=D(E,t.__scopeTooltip);return f.jsxRuntimeExports.jsx(C.Presence,{present:r||a.open,children:a.disableHoverableContent?f.jsxRuntimeExports.jsx(z,{side:n,...c,ref:o}):f.jsxRuntimeExports.jsx(ie,{side:n,...c,ref:o})})}),ie=s.forwardRef((t,o)=>{const e=D(E,t.__scopeTooltip),r=A(E,t.__scopeTooltip),n=s.useRef(null),c=S.useComposedRefs(o,n),[a,x]=s.useState(null),{trigger:i,onClose:p}=e,l=n.current,{onPointerInTransitChange:d}=r,v=s.useCallback(()=>{x(null),d(!1)},[d]),u=s.useCallback((m,h)=>{const T=m.currentTarget,g={x:m.clientX,y:m.clientY},y=pe(g,T.getBoundingClientRect()),R=de(g,y),w=fe(h.getBoundingClientRect()),P=ve([...R,...w]);x(P),d(!0)},[d]);return s.useEffect(()=>()=>v(),[v]),s.useEffect(()=>{if(i&&l){const m=T=>u(T,l),h=T=>u(T,i);return i.addEventListener("pointerleave",m),l.addEventListener("pointerleave",h),()=>{i.removeEventListener("pointerleave",m),l.removeEventListener("pointerleave",h)}}},[i,l,u,v]),s.useEffect(()=>{if(a){const m=h=>{const T=h.target,g={x:h.clientX,y:h.clientY},y=(i==null?void 0:i.contains(T))||(l==null?void 0:l.contains(T)),R=!xe(g,a);y?v():R&&(v(),p())};return document.addEventListener("pointermove",m),()=>document.removeEventListener("pointermove",m)}},[i,l,a,p,v]),f.jsxRuntimeExports.jsx(z,{...t,ref:c})}),[ae,ce]=_(j,{isInside:!1}),le=J.createSlottable("TooltipContent"),z=s.forwardRef((t,o)=>{const{__scopeTooltip:e,children:r,"aria-label":n,onEscapeKeyDown:c,onPointerDownOutside:a,...x}=t,i=D(E,e),p=O(e),{onClose:l}=i;return s.useEffect(()=>(document.addEventListener(L,l),()=>document.removeEventListener(L,l)),[l]),s.useEffect(()=>{if(i.trigger){const d=v=>{const u=v.target;u!=null&&u.contains(i.trigger)&&l()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[i.trigger,l]),f.jsxRuntimeExports.jsx(K.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:c,onPointerDownOutside:a,onFocusOutside:d=>d.preventDefault(),onDismiss:l,children:f.jsxRuntimeExports.jsxs(b.Content,{"data-state":i.stateAttribute,...p,...x,ref:o,style:{...x.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:[f.jsxRuntimeExports.jsx(le,{children:r}),f.jsxRuntimeExports.jsx(ae,{scope:e,isInside:!0,children:f.jsxRuntimeExports.jsx(Q.Root,{id:i.contentId,role:"tooltip",children:n||r})})]})})});F.displayName=E;var B="TooltipArrow",ue=s.forwardRef((t,o)=>{const{__scopeTooltip:e,...r}=t,n=O(e);return ce(B,e).isInside?null:f.jsxRuntimeExports.jsx(b.Arrow,{...n,...r,ref:o})});ue.displayName=B;function pe(t,o){const e=Math.abs(o.top-t.y),r=Math.abs(o.bottom-t.y),n=Math.abs(o.right-t.x),c=Math.abs(o.left-t.x);switch(Math.min(e,r,n,c)){case c:return"left";case n:return"right";case e:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function de(t,o,e=5){const r=[];switch(o){case"top":r.push({x:t.x-e,y:t.y+e},{x:t.x+e,y:t.y+e});break;case"bottom":r.push({x:t.x-e,y:t.y-e},{x:t.x+e,y:t.y-e});break;case"left":r.push({x:t.x+e,y:t.y-e},{x:t.x+e,y:t.y+e});break;case"right":r.push({x:t.x-e,y:t.y-e},{x:t.x-e,y:t.y+e});break}return r}function fe(t){const{top:o,right:e,bottom:r,left:n}=t;return[{x:n,y:o},{x:e,y:o},{x:e,y:r},{x:n,y:r}]}function xe(t,o){const{x:e,y:r}=t;let n=!1;for(let c=0,a=o.length-1;c<o.length;a=c++){const x=o[c],i=o[a],p=x.x,l=x.y,d=i.x,v=i.y;l>r!=v>r&&e<(d-p)*(r-l)/(v-l)+p&&(n=!n)}return n}function ve(t){const o=t.slice();return o.sort((e,r)=>e.x<r.x?-1:e.x>r.x?1:e.y<r.y?-1:e.y>r.y?1:0),me(o)}function me(t){if(t.length<=1)return t.slice();const o=[];for(let r=0;r<t.length;r++){const n=t[r];for(;o.length>=2;){const c=o[o.length-1],a=o[o.length-2];if((c.x-a.x)*(n.y-a.y)>=(c.y-a.y)*(n.x-a.x))o.pop();else break}o.push(n)}o.pop();const e=[];for(let r=t.length-1;r>=0;r--){const n=t[r];for(;e.length>=2;){const c=e[e.length-1],a=e[e.length-2];if((c.x-a.x)*(n.y-a.y)>=(c.y-a.y)*(n.x-a.x))e.pop();else break}e.push(n)}return e.pop(),o.length===1&&e.length===1&&o[0].x===e[0].x&&o[0].y===e[0].y?o:o.concat(e)}var Te=q,he=$,ye=G,U=F;const ge=Te,Ce=he,Ee=ye,V=s.forwardRef(({className:t,sideOffset:o=4,...e},r)=>f.jsxRuntimeExports.jsx(U,{ref:r,sideOffset:o,className:Z.cn("bg-popover text-popover-foreground 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 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-sm shadow-md",t),...e}));V.displayName=U.displayName;exports.Tooltip=Ce;exports.TooltipContent=V;exports.TooltipProvider=ge;exports.TooltipTrigger=Ee;