UNPKG

dgz-ui-shared

Version:

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

2 lines (1 loc) 8.7 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("../../jsx-runtime-DUiatUiq.cjs"),s=require("../../index-DqTIeHVj-DlSOwhuZ.cjs"),X=require("react"),T=require("../../index-VIo8j85K-CmrJh9Wc.cjs"),G=require("../../index-CYIFqWxx-DM9vqAQw.cjs"),U=require("../../utils-B6fNqzRf-BNysSCt9.cjs");function W(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,o.get?o:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const i=W(X);var[_,ve]=s.j("Tooltip",[T.oo]),k=T.oo(),H="TooltipProvider",J=700,D="tooltip.open",[Q,M]=_(H),S=t=>{const{__scopeTooltip:n,delayDuration:e=J,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:c}=t,l=i.useRef(!0),x=i.useRef(!1),a=i.useRef(0);return i.useEffect(()=>{const p=a.current;return()=>window.clearTimeout(p)},[]),s.ae.jsx(Q,{scope:n,isOpenDelayedRef:l,delayDuration:e,onOpen:i.useCallback(()=>{window.clearTimeout(a.current),l.current=!1},[]),onClose:i.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>l.current=!0,o)},[o]),isPointerInTransitRef:x,onPointerInTransitChange:i.useCallback(p=>{x.current=p},[]),disableHoverableContent:r,children:c})};S.displayName=H;var R="Tooltip",[Z,O]=_(R),$=t=>{const{__scopeTooltip:n,children:e,open:o,defaultOpen:r,onOpenChange:c,disableHoverableContent:l,delayDuration:x}=t,a=M(R,t.__scopeTooltip),p=k(n),[u,f]=i.useState(null),y=s.g(),d=i.useRef(0),g=l??a.disableHoverableContent,v=x??a.delayDuration,h=i.useRef(!1),[b,m]=s.y({prop:o,defaultProp:r??!1,onChange:q=>{q?(a.onOpen(),document.dispatchEvent(new CustomEvent(D))):a.onClose(),c==null||c(q)},caller:R}),C=i.useMemo(()=>b?h.current?"delayed-open":"instant-open":"closed",[b]),E=i.useCallback(()=>{window.clearTimeout(d.current),d.current=0,h.current=!1,m(!0)},[m]),j=i.useCallback(()=>{window.clearTimeout(d.current),d.current=0,m(!1)},[m]),N=i.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>{h.current=!0,m(!0),d.current=0},v)},[v,m]);return i.useEffect(()=>()=>{d.current&&(window.clearTimeout(d.current),d.current=0)},[]),s.ae.jsx(T.io,{...p,children:s.ae.jsx(Z,{scope:n,contentId:y,open:b,stateAttribute:C,trigger:u,onTriggerChange:f,onTriggerEnter:i.useCallback(()=>{a.isOpenDelayedRef.current?N():E()},[a.isOpenDelayedRef,N,E]),onTriggerLeave:i.useCallback(()=>{g?j():(window.clearTimeout(d.current),d.current=0)},[j,g]),onOpen:E,onClose:j,disableHoverableContent:g,children:e})})};$.displayName=R;var L="TooltipTrigger",z=i.forwardRef((t,n)=>{const{__scopeTooltip:e,...o}=t,r=O(L,e),c=M(L,e),l=k(e),x=i.useRef(null),a=s.x(n,x,r.onTriggerChange),p=i.useRef(!1),u=i.useRef(!1),f=i.useCallback(()=>p.current=!1,[]);return i.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),s.ae.jsx(T.ro,{asChild:!0,...l,children:s.ae.jsx(s.h.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:a,onPointerMove:s.y$1(t.onPointerMove,y=>{y.pointerType!=="touch"&&!u.current&&!c.isPointerInTransitRef.current&&(r.onTriggerEnter(),u.current=!0)}),onPointerLeave:s.y$1(t.onPointerLeave,()=>{r.onTriggerLeave(),u.current=!1}),onPointerDown:s.y$1(t.onPointerDown,()=>{r.open&&r.onClose(),p.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:s.y$1(t.onFocus,()=>{p.current||r.onOpen()}),onBlur:s.y$1(t.onBlur,r.onClose),onClick:s.y$1(t.onClick,r.onClose)})})});z.displayName=L;var ee="TooltipPortal",[me,te]=_(ee,{forceMount:void 0}),w="TooltipContent",B=i.forwardRef((t,n)=>{const e=te(w,t.__scopeTooltip),{forceMount:o=e.forceMount,side:r="top",...c}=t,l=O(w,t.__scopeTooltip);return s.ae.jsx(s.R,{present:o||l.open,children:l.disableHoverableContent?s.ae.jsx(A,{side:r,...c,ref:n}):s.ae.jsx(ne,{side:r,...c,ref:n})})}),ne=i.forwardRef((t,n)=>{const e=O(w,t.__scopeTooltip),o=M(w,t.__scopeTooltip),r=i.useRef(null),c=s.x(n,r),[l,x]=i.useState(null),{trigger:a,onClose:p}=e,u=r.current,{onPointerInTransitChange:f}=o,y=i.useCallback(()=>{x(null),f(!1)},[f]),d=i.useCallback((g,v)=>{const h=g.currentTarget,b={x:g.clientX,y:g.clientY},m=se(b,h.getBoundingClientRect()),C=le(b,m),E=ce(v.getBoundingClientRect()),j=de([...C,...E]);x(j),f(!0)},[f]);return i.useEffect(()=>()=>y(),[y]),i.useEffect(()=>{if(a&&u){const g=h=>d(h,u),v=h=>d(h,a);return a.addEventListener("pointerleave",g),u.addEventListener("pointerleave",v),()=>{a.removeEventListener("pointerleave",g),u.removeEventListener("pointerleave",v)}}},[a,u,d,y]),i.useEffect(()=>{if(l){const g=v=>{const h=v.target,b={x:v.clientX,y:v.clientY},m=(a==null?void 0:a.contains(h))||(u==null?void 0:u.contains(h)),C=!ue(b,l);m?y():C&&(y(),p())};return document.addEventListener("pointermove",g),()=>document.removeEventListener("pointermove",g)}},[a,u,l,p,y]),s.ae.jsx(A,{...t,ref:c})}),[oe,re]=_(R,{isInside:!1}),ie=s._("TooltipContent"),A=i.forwardRef((t,n)=>{const{__scopeTooltip:e,children:o,"aria-label":r,onEscapeKeyDown:c,onPointerDownOutside:l,...x}=t,a=O(w,e),p=k(e),{onClose:u}=a;return i.useEffect(()=>(document.addEventListener(D,u),()=>document.removeEventListener(D,u)),[u]),i.useEffect(()=>{if(a.trigger){const f=y=>{const d=y.target;d!=null&&d.contains(a.trigger)&&u()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[a.trigger,u]),s.ae.jsx(s.M,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:f=>f.preventDefault(),onDismiss:u,children:s.ae.jsxs(T.so,{"data-state":a.stateAttribute,...p,...x,ref:n,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:[s.ae.jsx(ie,{children:o}),s.ae.jsx(oe,{scope:e,isInside:!0,children:s.ae.jsx(G.n,{id:a.contentId,role:"tooltip",children:r||o})})]})})});B.displayName=w;var F="TooltipArrow",ae=i.forwardRef((t,n)=>{const{__scopeTooltip:e,...o}=t,r=k(e);return re(F,e).isInside?null:s.ae.jsx(T.co,{...r,...o,ref:n})});ae.displayName=F;function se(t,n){const e=Math.abs(n.top-t.y),o=Math.abs(n.bottom-t.y),r=Math.abs(n.right-t.x),c=Math.abs(n.left-t.x);switch(Math.min(e,o,r,c)){case c:return"left";case r:return"right";case e:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function le(t,n,e=5){const o=[];switch(n){case"top":o.push({x:t.x-e,y:t.y+e},{x:t.x+e,y:t.y+e});break;case"bottom":o.push({x:t.x-e,y:t.y-e},{x:t.x+e,y:t.y-e});break;case"left":o.push({x:t.x+e,y:t.y-e},{x:t.x+e,y:t.y+e});break;case"right":o.push({x:t.x-e,y:t.y-e},{x:t.x-e,y:t.y+e});break}return o}function ce(t){const{top:n,right:e,bottom:o,left:r}=t;return[{x:r,y:n},{x:e,y:n},{x:e,y:o},{x:r,y:o}]}function ue(t,n){const{x:e,y:o}=t;let r=!1;for(let c=0,l=n.length-1;c<n.length;l=c++){const x=n[c],a=n[l],p=x.x,u=x.y,f=a.x,y=a.y;u>o!=y>o&&e<(f-p)*(o-u)/(y-u)+p&&(r=!r)}return r}function de(t){const n=t.slice();return n.sort((e,o)=>e.x<o.x?-1:e.x>o.x?1:e.y<o.y?-1:e.y>o.y?1:0),pe(n)}function pe(t){if(t.length<=1)return t.slice();const n=[];for(let o=0;o<t.length;o++){const r=t[o];for(;n.length>=2;){const c=n[n.length-1],l=n[n.length-2];if((c.x-l.x)*(r.y-l.y)>=(c.y-l.y)*(r.x-l.x))n.pop();else break}n.push(r)}n.pop();const e=[];for(let o=t.length-1;o>=0;o--){const r=t[o];for(;e.length>=2;){const c=e[e.length-1],l=e[e.length-2];if((c.x-l.x)*(r.y-l.y)>=(c.y-l.y)*(r.x-l.x))e.pop();else break}e.push(r)}return e.pop(),n.length===1&&e.length===1&&n[0].x===e[0].x&&n[0].y===e[0].y?n:n.concat(e)}var fe=S,xe=$,ye=z,K=B;const ge=fe,Y=xe,V=ye,I=i.forwardRef(({className:t,sideOffset:n=4,...e},o)=>s.ae.jsx(K,{ref:o,sideOffset:n,className:U.mo("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}));I.displayName=K.displayName;const he=({content:t,children:n,show:e=!0,...o})=>e?P.jsxRuntimeExports.jsxs(Y,{children:[P.jsxRuntimeExports.jsx(I,{...o,children:t}),P.jsxRuntimeExports.jsx(V,{children:n})]}):n;exports.MyTooltip=he;exports.Tooltip=Y;exports.TooltipContent=I;exports.TooltipProvider=ge;exports.TooltipTrigger=V;