UNPKG

ivt

Version:

Ivt Components Library

3 lines (2 loc) 5.34 kB
import*as e from"react";import t from"react";import{c as r}from"./index-DVnblQ-a.mjs";import{c as o}from"./index-Dr5ObK3L.mjs";import{u as n}from"./index-BOUg6o32.mjs";import{u as a}from"./index-C-j8pU3U.mjs";import{c as i,R as s,A as c,C as d,a as l}from"./index-DtZD7YmJ.mjs";import{P as u,D as p}from"./index-C_Mk3Jfk.mjs";import{P as f}from"./index-1xuBLrml.mjs";import{P as m}from"./index-DiPp8h7C.mjs";import{jsx as h}from"react/jsx-runtime";import{c as v}from"./utils-C-nkZ_Ir.mjs";var C,w="HoverCard",[g,x]=o(w,[i]),P=i(),[E,O]=g(w),R=t=>{const{__scopeHoverCard:r,children:o,open:a,defaultOpen:i,onOpenChange:c,openDelay:d=700,closeDelay:l=300}=t,u=P(r),p=e.useRef(0),f=e.useRef(0),m=e.useRef(!1),v=e.useRef(!1),[C,g]=n({prop:a,defaultProp:i??!1,onChange:c,caller:w}),x=e.useCallback(()=>{clearTimeout(f.current),p.current=window.setTimeout(()=>g(!0),d)},[d,g]),O=e.useCallback(()=>{clearTimeout(p.current),m.current||v.current||(f.current=window.setTimeout(()=>g(!1),l))},[l,g]),R=e.useCallback(()=>g(!1),[g]);return e.useEffect(()=>()=>{clearTimeout(p.current),clearTimeout(f.current)},[]),h(E,{scope:r,open:C,onOpenChange:g,onOpen:x,onClose:O,onDismiss:R,hasSelectionRef:m,isPointerDownOnContentRef:v,children:h(s,{...u,children:o})})};R.displayName=w;var b="HoverCardTrigger",S=e.forwardRef((e,t)=>{const{__scopeHoverCard:o,...n}=e,a=O(b,o),i=P(o);return h(c,{asChild:!0,...i,children:h(m.a,{"data-state":a.open?"open":"closed",...n,ref:t,onPointerEnter:r(e.onPointerEnter,F(a.onOpen)),onPointerLeave:r(e.onPointerLeave,F(a.onClose)),onFocus:r(e.onFocus,a.onOpen),onBlur:r(e.onBlur,a.onClose),onTouchStart:r(e.onTouchStart,e=>e.preventDefault())})})});S.displayName=b;var y="HoverCardPortal",[D,T]=g(y,{forceMount:void 0}),_=e=>{const{__scopeHoverCard:t,forceMount:r,children:o,container:n}=e,a=O(y,t);return h(D,{scope:t,forceMount:r,children:h(f,{present:r||a.open,children:h(u,{asChild:!0,container:n,children:o})})})};_.displayName=y;var H="HoverCardContent",N=e.forwardRef((e,t)=>{const o=T(H,e.__scopeHoverCard),{forceMount:n=o.forceMount,...a}=e,i=O(H,e.__scopeHoverCard);return h(f,{present:n||i.open,children:h(j,{"data-state":i.open?"open":"closed",...a,onPointerEnter:r(e.onPointerEnter,F(i.onOpen)),onPointerLeave:r(e.onPointerLeave,F(i.onClose)),ref:t})})});N.displayName=H;var j=e.forwardRef((t,o)=>{const{__scopeHoverCard:n,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:c,onInteractOutside:l,...u}=t,f=O(H,n),m=P(n),v=e.useRef(null),w=a(o,v),[g,x]=e.useState(!1);return e.useEffect(()=>{if(g){const e=document.body;return C=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=C,e.style.webkitUserSelect=C}}},[g]),e.useEffect(()=>{if(v.current){const e=()=>{x(!1),f.isPointerDownOnContentRef.current=!1,setTimeout(()=>{""!==document.getSelection()?.toString()&&(f.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),f.hasSelectionRef.current=!1,f.isPointerDownOnContentRef.current=!1}}},[f.isPointerDownOnContentRef,f.hasSelectionRef]),e.useEffect(()=>{if(v.current){(function(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;r.nextNode();)t.push(r.currentNode);return t})(v.current).forEach(e=>e.setAttribute("tabindex","-1"))}}),h(p,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:r(c,e=>{e.preventDefault()}),onDismiss:f.onDismiss,children:h(d,{...m,...u,onPointerDown:r(u.onPointerDown,e=>{e.currentTarget.contains(e.target)&&x(!0),f.hasSelectionRef.current=!1,f.isPointerDownOnContentRef.current=!0}),ref:w,style:{...u.style,userSelect:g?"text":void 0,WebkitUserSelect:g?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})});function F(e){return t=>"touch"===t.pointerType?void 0:e()}e.forwardRef((e,t)=>{const{__scopeHoverCard:r,...o}=e,n=P(r);return h(l,{...n,...o,ref:t})}).displayName="HoverCardArrow";var L=R,k=S,I=_,M=N;function A({...e}){return t.createElement(L,{"data-slot":"hover-card",...e})}function U({...e}){return t.createElement(k,{"data-slot":"hover-card-trigger",...e})}function z({className:e,align:r="center",sideOffset:o=4,...n}){return t.createElement(I,{"data-slot":"hover-card-portal"},t.createElement(M,{"data-slot":"hover-card-content",align:r,sideOffset:o,className:v("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 w-64 rounded-md border p-4 shadow-md outline-hidden",e),...n}))}export{A as H,U as a,z as b}; //# sourceMappingURL=hover-card-Bxo5Wv81.mjs.map