UNPKG

dgz-ui

Version:

Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript

3 lines (2 loc) 8.92 kB
"use strict";const d=require("react/jsx-runtime"),Y=require("react"),g=require("./index-D9zW9Tk7.cjs.js"),N=require("./index-jFOWwfD3.cjs.js"),X=require("./index-CItoM52t.cjs.js"),H=require("./index-BruMW80s.cjs.js"),w=require("./index-CGLGXpw0.cjs.js"),K=require("./index-C28jaZCP.cjs.js"),W=require("./utils-C4d7Ql9-.cjs.js");function J(e){if(e&&e.__esModule)return e;const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const s=J(Y);var Q=Symbol("radix.slottable");function Z(e){const o=({children:t})=>d.jsx(d.Fragment,{children:t});return o.displayName=`${e}.Slottable`,o.__radixId=Q,o}var[O]=g.createContextScope("Tooltip",[w.createPopperScope]),D=w.createPopperScope(),M="TooltipProvider",ee=700,L="tooltip.open",[te,k]=O(M),q=e=>{const{__scopeTooltip:o,delayDuration:t=ee,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:l}=e,a=s.useRef(!0),v=s.useRef(!1),i=s.useRef(0);return s.useEffect(()=>{const p=i.current;return()=>window.clearTimeout(p)},[]),d.jsx(te,{scope:o,isOpenDelayedRef:a,delayDuration:t,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:v,onPointerInTransitChange:s.useCallback(p=>{v.current=p},[]),disableHoverableContent:n,children:l})};q.displayName=M;var _="Tooltip",[oe,j]=O(_),$=e=>{const{__scopeTooltip:o,children:t,open:r,defaultOpen:n,onOpenChange:l,disableHoverableContent:a,delayDuration:v}=e,i=k(_,e.__scopeTooltip),p=D(o),[c,f]=s.useState(null),x=H.useId(),u=s.useRef(0),T=a??i.disableHoverableContent,m=v??i.delayDuration,h=s.useRef(!1),[C,y]=H.useControllableState({prop:r,defaultProp:n??!1,onChange:S=>{S?(i.onOpen(),document.dispatchEvent(new CustomEvent(L))):i.onClose(),l==null||l(S)},caller:_}),E=s.useMemo(()=>C?h.current?"delayed-open":"instant-open":"closed",[C]),P=s.useCallback(()=>{window.clearTimeout(u.current),u.current=0,h.current=!1,y(!0)},[y]),R=s.useCallback(()=>{window.clearTimeout(u.current),u.current=0,y(!1)},[y]),I=s.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>{h.current=!0,y(!0),u.current=0},m)},[m,y]);return s.useEffect(()=>()=>{u.current&&(window.clearTimeout(u.current),u.current=0)},[]),d.jsx(w.Root2,{...p,children:d.jsx(oe,{scope:o,contentId:x,open:C,stateAttribute:E,trigger:c,onTriggerChange:f,onTriggerEnter:s.useCallback(()=>{i.isOpenDelayedRef.current?I():P()},[i.isOpenDelayedRef,I,P]),onTriggerLeave:s.useCallback(()=>{T?R():(window.clearTimeout(u.current),u.current=0)},[R,T]),onOpen:P,onClose:R,disableHoverableContent:T,children:t})})};$.displayName=_;var A="TooltipTrigger",F=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=j(A,t),l=k(A,t),a=D(t),v=s.useRef(null),i=N.useComposedRefs(o,v,n.onTriggerChange),p=s.useRef(!1),c=s.useRef(!1),f=s.useCallback(()=>p.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),d.jsx(w.Anchor,{asChild:!0,...a,children:d.jsx(g.Primitive.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:i,onPointerMove:g.composeEventHandlers(e.onPointerMove,x=>{x.pointerType!=="touch"&&!c.current&&!l.isPointerInTransitRef.current&&(n.onTriggerEnter(),c.current=!0)}),onPointerLeave:g.composeEventHandlers(e.onPointerLeave,()=>{n.onTriggerLeave(),c.current=!1}),onPointerDown:g.composeEventHandlers(e.onPointerDown,()=>{n.open&&n.onClose(),p.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:g.composeEventHandlers(e.onFocus,()=>{p.current||n.onOpen()}),onBlur:g.composeEventHandlers(e.onBlur,n.onClose),onClick:g.composeEventHandlers(e.onClick,n.onClose)})})});F.displayName=A;var re="TooltipPortal",[be,ne]=O(re,{forceMount:void 0}),b="TooltipContent",G=s.forwardRef((e,o)=>{const t=ne(b,e.__scopeTooltip),{forceMount:r=t.forceMount,side:n="top",...l}=e,a=j(b,e.__scopeTooltip);return d.jsx(g.Presence,{present:r||a.open,children:a.disableHoverableContent?d.jsx(B,{side:n,...l,ref:o}):d.jsx(se,{side:n,...l,ref:o})})}),se=s.forwardRef((e,o)=>{const t=j(b,e.__scopeTooltip),r=k(b,e.__scopeTooltip),n=s.useRef(null),l=N.useComposedRefs(o,n),[a,v]=s.useState(null),{trigger:i,onClose:p}=t,c=n.current,{onPointerInTransitChange:f}=r,x=s.useCallback(()=>{v(null),f(!1)},[f]),u=s.useCallback((T,m)=>{const h=T.currentTarget,C={x:T.clientX,y:T.clientY},y=ue(C,h.getBoundingClientRect()),E=de(C,y),P=pe(m.getBoundingClientRect()),R=ve([...E,...P]);v(R),f(!0)},[f]);return s.useEffect(()=>()=>x(),[x]),s.useEffect(()=>{if(i&&c){const T=h=>u(h,c),m=h=>u(h,i);return i.addEventListener("pointerleave",T),c.addEventListener("pointerleave",m),()=>{i.removeEventListener("pointerleave",T),c.removeEventListener("pointerleave",m)}}},[i,c,u,x]),s.useEffect(()=>{if(a){const T=m=>{const h=m.target,C={x:m.clientX,y:m.clientY},y=(i==null?void 0:i.contains(h))||(c==null?void 0:c.contains(h)),E=!fe(C,a);y?x():E&&(x(),p())};return document.addEventListener("pointermove",T),()=>document.removeEventListener("pointermove",T)}},[i,c,a,p,x]),d.jsx(B,{...e,ref:l})}),[ie,ae]=O(_,{isInside:!1}),le=Z("TooltipContent"),B=s.forwardRef((e,o)=>{const{__scopeTooltip:t,children:r,"aria-label":n,onEscapeKeyDown:l,onPointerDownOutside:a,...v}=e,i=j(b,t),p=D(t),{onClose:c}=i;return s.useEffect(()=>(document.addEventListener(L,c),()=>document.removeEventListener(L,c)),[c]),s.useEffect(()=>{if(i.trigger){const f=x=>{const u=x.target;u!=null&&u.contains(i.trigger)&&c()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[i.trigger,c]),d.jsx(X.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:c,children:d.jsxs(w.Content,{"data-state":i.stateAttribute,...p,...v,ref:o,style:{...v.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:[d.jsx(le,{children:r}),d.jsx(ie,{scope:t,isInside:!0,children:d.jsx(K.Root,{id:i.contentId,role:"tooltip",children:n||r})})]})})});G.displayName=b;var z="TooltipArrow",ce=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=D(t);return ae(z,t).isInside?null:d.jsx(w.Arrow,{...n,...r,ref:o})});ce.displayName=z;function ue(e,o){const t=Math.abs(o.top-e.y),r=Math.abs(o.bottom-e.y),n=Math.abs(o.right-e.x),l=Math.abs(o.left-e.x);switch(Math.min(t,r,n,l)){case l:return"left";case n:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function de(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 pe(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 fe(e,o){const{x:t,y:r}=e;let n=!1;for(let l=0,a=o.length-1;l<o.length;a=l++){const v=o[l],i=o[a],p=v.x,c=v.y,f=i.x,x=i.y;c>r!=x>r&&t<(f-p)*(r-c)/(x-c)+p&&(n=!n)}return n}function ve(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),xe(o)}function xe(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 l=o[o.length-1],a=o[o.length-2];if((l.x-a.x)*(n.y-a.y)>=(l.y-a.y)*(n.x-a.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 l=t[t.length-1],a=t[t.length-2];if((l.x-a.x)*(n.y-a.y)>=(l.y-a.y)*(n.x-a.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 Te=q,he=$,me=F,U=G;const ye=Te,ge=he,Ce=me,V=s.forwardRef(({className:e,sideOffset:o=4,...t},r)=>d.jsx(U,{ref:r,sideOffset:o,className:W.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",e),...t}));V.displayName=U.displayName;exports.Tooltip=ge;exports.TooltipContent=V;exports.TooltipProvider=ye;exports.TooltipTrigger=Ce; //# sourceMappingURL=tooltip-CsZB0nVr.cjs.js.map