@data-slot/hover-card 0.2.123 → 0.2.125

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`top`,`right`,`bottom`,`left`],n=[`start`,`center`,`end`];let r=0;const i=new Set,a=new Set,o=(e,t)=>{if(!e)return!1;for(let n of i)if(n!==t&&n.contains(e))return!0;return!1},s=(e,t)=>{for(let n of a)n(e,t)};function c(c,l={}){let u=(0,e.getPart)(c,`hover-card-trigger`),d=(0,e.getPart)(c,`hover-card-content`),f=(0,e.getPart)(c,`hover-card-positioner`),p=f&&d&&f.contains(d)?f:null,m=(0,e.getPart)(c,`hover-card-portal`),ee=m&&p&&m.contains(p)?m:null;if(!u||!d)throw Error(`Hover-card requires trigger and content slots`);let te=l.open!==void 0,ne=l.defaultOpen??(0,e.getDataBool)(c,`defaultOpen`)??!1,h=l.delay??(0,e.getDataNumber)(c,`delay`)??700,g=l.skipDelayDuration??(0,e.getDataNumber)(c,`skipDelayDuration`)??300,_=l.closeDelay??(0,e.getDataNumber)(c,`closeDelay`)??300,re=l.onOpenChange,ie=l.closeOnClickOutside??(0,e.getDataBool)(c,`closeOnClickOutside`)??!0,v=l.closeOnEscape??(0,e.getDataBool)(c,`closeOnEscape`)??!0,y=l.portal??(0,e.getDataBool)(d,`portal`)??(0,e.getDataBool)(c,`portal`)??!0,b=(t,n)=>(0,e.getDataEnum)(d,t,n)??(p?(0,e.getDataEnum)(p,t,n):void 0)??(0,e.getDataEnum)(c,t,n),x=t=>(0,e.getDataNumber)(d,t)??(p?(0,e.getDataNumber)(p,t):void 0)??(0,e.getDataNumber)(c,t),ae=t=>(0,e.getDataBool)(d,t)??(p?(0,e.getDataBool)(p,t):void 0)??(0,e.getDataBool)(c,t),S=l.side??b(`side`,t)??`bottom`,C=l.align??b(`align`,n)??`center`,w=l.sideOffset??x(`sideOffset`)??4,oe=l.alignOffset??x(`alignOffset`)??0,T=l.avoidCollisions??ae(`avoidCollisions`)??!0,E=l.collisionPadding??x(`collisionPadding`)??8,D=l.open??ne,O=!1,k=!1,A=!1,j=!1,M=!1,N=null,P=null,F=-1/0,I=-1/0,L=[],R=(0,e.createPortalLifecycle)({content:d,root:c,enabled:y,wrapperSlot:p?void 0:`hover-card-positioner`,container:p??void 0,mountTarget:p?ee??p:void 0}),se=(0,e.ensureId)(d,`hover-card-content`);u.setAttribute(`aria-haspopup`,`dialog`),u.setAttribute(`aria-controls`,se),d.setAttribute(`data-side`,S),d.setAttribute(`data-align`,C);let z=()=>u.hasAttribute(`disabled`)||u.getAttribute(`aria-disabled`)===`true`,B=()=>{N&&=(clearTimeout(N),null)},V=()=>{P&&=(clearTimeout(P),null)},H=()=>{B(),V()},U=(t,n)=>{(0,e.emit)(c,`hover-card:change`,{open:t,reason:n,trigger:u,content:d}),re?.(t)},W=()=>{let t=R.container,n=c.ownerDocument.defaultView??window,r=u.getBoundingClientRect(),i=(0,e.computeFloatingPosition)({anchorRect:r,contentRect:(0,e.measurePopupContentRect)(d),side:S,align:C,sideOffset:w,alignOffset:oe,avoidCollisions:T,collisionPadding:E}),a=(0,e.computeFloatingTransformOrigin)({side:i.side,align:i.align,anchorRect:r,popupX:i.x,popupY:i.y});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${i.x+n.scrollX}px, ${i.y+n.scrollY}px, 0)`,t.style.setProperty(`--transform-origin`,a),t.style.willChange=`transform`,t.style.margin=`0`,d.setAttribute(`data-side`,i.side),d.setAttribute(`data-align`,i.align),t!==d&&(t.setAttribute(`data-side`,i.side),t.setAttribute(`data-align`,i.align))},G=e=>{let t=R.container;if(c.setAttribute(`data-state`,e),d.setAttribute(`data-state`,e),t!==d&&t.setAttribute(`data-state`,e),e===`open`){c.setAttribute(`data-open`,``),d.setAttribute(`data-open`,``),t!==d&&t.setAttribute(`data-open`,``),O?(c.setAttribute(`data-instant`,``),d.setAttribute(`data-instant`,``),t!==d&&t.setAttribute(`data-instant`,``)):(c.removeAttribute(`data-instant`),d.removeAttribute(`data-instant`),t!==d&&t.removeAttribute(`data-instant`)),c.removeAttribute(`data-closed`),d.removeAttribute(`data-closed`),t!==d&&t.removeAttribute(`data-closed`);return}c.setAttribute(`data-closed`,``),d.setAttribute(`data-closed`,``),t!==d&&t.setAttribute(`data-closed`,``),O?(c.setAttribute(`data-instant`,``),d.setAttribute(`data-instant`,``),t!==d&&t.setAttribute(`data-instant`,``)):(c.removeAttribute(`data-instant`),d.removeAttribute(`data-instant`),t!==d&&t.removeAttribute(`data-instant`)),c.removeAttribute(`data-open`),d.removeAttribute(`data-open`),t!==d&&t.removeAttribute(`data-open`)},K=(0,e.createPresenceLifecycle)({element:d,onExitComplete:()=>{k||(R.restore(),d.hidden=!0)}}),q=(0,e.createPositionSync)({observedElements:[u,d],isActive:()=>D,ancestorScroll:!1,onUpdate:W}),J=(t,n,i=!1)=>{D!==t&&(!t&&D&&g>0&&(r=Date.now()+g),O=i,D=t,(0,e.setAria)(u,`expanded`,D),t?(R.mount(),d.hidden=!1,G(`open`),K.enter(),W(),q.start(),q.update()):(G(`closed`),K.exit(),q.stop()),U(D,n))},Y=(e,t,n=!1)=>{if(D!==e){if(te){U(e,t);return}J(e,t,n)}},X=(e,t,n=!1)=>{J(e,t,n)},Z=(e,t)=>{e===u||!D||(H(),A=!1,j=!1,M=!1,Y(!1,t,!0))};i.add(u),a.add(Z),L.push(()=>{a.delete(Z),i.delete(u)});let Q=e=>{if(V(),B(),g>0&&Date.now()<r){Y(!0,e,!0);return}if(h<=0){Y(!0,e);return}N=setTimeout(()=>{N=null,Y(!0,e)},h)},ce=e=>{if(B(),V(),_<=0){Y(!1,e);return}P=setTimeout(()=>{P=null,Y(!1,e)},_)},$=e=>{A||j||M||ce(e)};return(0,e.setAria)(u,`expanded`,D),G(D?`open`:`closed`),d.hidden=!D,D&&(R.mount(),K.enter(),d.hidden=!1,W(),q.start(),q.update()),L.push((0,e.on)(c.ownerDocument,`keydown`,e=>{e.key===`Tab`&&(F=Date.now())},{capture:!0}),(0,e.on)(c.ownerDocument,`pointerdown`,()=>{F=-1/0,I=-1/0},{capture:!0}),(0,e.on)(c.ownerDocument,`pointermove`,e=>{e.pointerType!==`touch`&&(I=Date.now())},{capture:!0}),(0,e.on)(u,`pointerenter`,e=>{e.pointerType!==`touch`&&(A=!0,!z()&&(Date.now()-I>250||(s(u,`pointer`),Q(`pointer`))))}),(0,e.on)(u,`pointermove`,e=>{e.pointerType!==`touch`&&(!A||z()||D||N||(s(u,`pointer`),Q(`pointer`)))}),(0,e.on)(u,`pointerleave`,e=>{if(e.pointerType===`touch`)return;A=!1;let t=e.relatedTarget;if(!(t&&d.contains(t))){if(o(t,u)){Y(!1,`pointer`,!0);return}$(`pointer`)}})),L.push((0,e.on)(d,`pointerenter`,e=>{e.pointerType!==`touch`&&(j=!0,V())}),(0,e.on)(d,`pointerleave`,e=>{if(e.pointerType===`touch`)return;j=!1;let t=e.relatedTarget;if(!(t&&u.contains(t))){if(o(t,u)){Y(!1,`pointer`,!0);return}$(`pointer`)}})),L.push((0,e.on)(u,`focusin`,()=>{z()||Date.now()-F>750||(M=!0,s(u,`focus`),Q(`focus`))}),(0,e.on)(u,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(u.contains(t)||d.contains(t)))){if(M=!1,o(t,u)){Y(!1,`blur`,!0);return}$(`blur`)}}),(0,e.on)(d,`focusin`,()=>{M=!0,V()}),(0,e.on)(d,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(u.contains(t)||d.contains(t)))){if(M=!1,o(t,u)){Y(!1,`blur`,!0);return}$(`blur`)}})),L.push((0,e.createDismissLayer)({root:c,isOpen:()=>D,onDismiss:()=>Y(!1,`dismiss`),closeOnClickOutside:ie,closeOnEscape:v})),L.push((0,e.on)(c,`hover-card:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&X(n,`api`)})),{open:()=>{z()||(H(),Y(!0,`api`))},close:()=>{H(),Y(!1,`api`)},toggle:()=>{H(),!(!D&&z())&&Y(!D,`api`)},setOpen:e=>{H(),X(e,`api`)},get isOpen(){return D},destroy:()=>{k=!0,H(),q.stop(),K.cleanup(),R.cleanup(),L.forEach(e=>e()),L.length=0}}}const l=new WeakSet;function u(t=document){let n=[];for(let r of(0,e.getRoots)(t,`hover-card`))l.has(r)||(l.add(r),n.push(c(r)));return n}exports.create=u,exports.createHoverCard=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`top`,`right`,`bottom`,`left`],n=[`start`,`center`,`end`];let r=0;const i=new Set,a=new Set,o=(e,t)=>{if(!e)return!1;for(let n of i)if(n!==t&&n.contains(e))return!0;return!1},s=(e,t)=>{for(let n of a)n(e,t)},c=`@data-slot/hover-card`;function l(l,u={}){let d=(0,e.reuseRootBinding)(l,c,`[@data-slot/hover-card] createHoverCard() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(d)return d;let f=(0,e.getPart)(l,`hover-card-trigger`),p=(0,e.getPart)(l,`hover-card-content`),m=(0,e.getPart)(l,`hover-card-positioner`),h=m&&p&&m.contains(p)?m:null,g=(0,e.getPart)(l,`hover-card-portal`),ee=g&&h&&g.contains(h)?g:null;if(!f||!p)throw Error(`Hover-card requires trigger and content slots`);let te=u.open!==void 0,_=u.defaultOpen??(0,e.getDataBool)(l,`defaultOpen`)??!1,v=u.delay??(0,e.getDataNumber)(l,`delay`)??700,y=u.skipDelayDuration??(0,e.getDataNumber)(l,`skipDelayDuration`)??300,b=u.closeDelay??(0,e.getDataNumber)(l,`closeDelay`)??300,ne=u.onOpenChange,re=u.closeOnClickOutside??(0,e.getDataBool)(l,`closeOnClickOutside`)??!0,ie=u.closeOnEscape??(0,e.getDataBool)(l,`closeOnEscape`)??!0,ae=u.portal??(0,e.getDataBool)(p,`portal`)??(0,e.getDataBool)(l,`portal`)??!0,x=(t,n)=>(0,e.getDataEnum)(p,t,n)??(h?(0,e.getDataEnum)(h,t,n):void 0)??(0,e.getDataEnum)(l,t,n),S=t=>(0,e.getDataNumber)(p,t)??(h?(0,e.getDataNumber)(h,t):void 0)??(0,e.getDataNumber)(l,t),C=t=>(0,e.getDataBool)(p,t)??(h?(0,e.getDataBool)(h,t):void 0)??(0,e.getDataBool)(l,t),w=u.side??x(`side`,t)??`bottom`,T=u.align??x(`align`,n)??`center`,oe=u.sideOffset??S(`sideOffset`)??4,se=u.alignOffset??S(`alignOffset`)??0,ce=u.avoidCollisions??C(`avoidCollisions`)??!0,le=u.collisionPadding??S(`collisionPadding`)??8,E=u.open??_,D=!1,O=!1,k=!1,A=!1,j=!1,M=null,N=null,P=-1/0,F=-1/0,I=[],L=(0,e.createPortalLifecycle)({content:p,root:l,enabled:ae,wrapperSlot:h?void 0:`hover-card-positioner`,container:h??void 0,mountTarget:h?ee??h:void 0}),ue=(0,e.ensureId)(p,`hover-card-content`);f.setAttribute(`aria-haspopup`,`dialog`),f.setAttribute(`aria-controls`,ue),p.setAttribute(`data-side`,w),p.setAttribute(`data-align`,T);let R=()=>f.hasAttribute(`disabled`)||f.getAttribute(`aria-disabled`)===`true`,z=()=>{M&&=(clearTimeout(M),null)},B=()=>{N&&=(clearTimeout(N),null)},V=()=>{z(),B()},H=(t,n)=>{(0,e.emit)(l,`hover-card:change`,{open:t,reason:n,trigger:f,content:p}),ne?.(t)},U=()=>{let t=L.container,n=l.ownerDocument.defaultView??window,r=f.getBoundingClientRect(),i=(0,e.computeFloatingPosition)({anchorRect:r,contentRect:(0,e.measurePopupContentRect)(p),side:w,align:T,sideOffset:oe,alignOffset:se,avoidCollisions:ce,collisionPadding:le}),a=(0,e.computeFloatingTransformOrigin)({side:i.side,align:i.align,anchorRect:r,popupX:i.x,popupY:i.y});t.style.position=`absolute`,t.style.top=`0px`,t.style.left=`0px`,t.style.transform=`translate3d(${i.x+n.scrollX}px, ${i.y+n.scrollY}px, 0)`,t.style.setProperty(`--transform-origin`,a),t.style.willChange=`transform`,t.style.margin=`0`,p.setAttribute(`data-side`,i.side),p.setAttribute(`data-align`,i.align),t!==p&&(t.setAttribute(`data-side`,i.side),t.setAttribute(`data-align`,i.align))},W=e=>{let t=L.container;if(l.setAttribute(`data-state`,e),p.setAttribute(`data-state`,e),t!==p&&t.setAttribute(`data-state`,e),e===`open`){l.setAttribute(`data-open`,``),p.setAttribute(`data-open`,``),t!==p&&t.setAttribute(`data-open`,``),D?(l.setAttribute(`data-instant`,``),p.setAttribute(`data-instant`,``),t!==p&&t.setAttribute(`data-instant`,``)):(l.removeAttribute(`data-instant`),p.removeAttribute(`data-instant`),t!==p&&t.removeAttribute(`data-instant`)),l.removeAttribute(`data-closed`),p.removeAttribute(`data-closed`),t!==p&&t.removeAttribute(`data-closed`);return}l.setAttribute(`data-closed`,``),p.setAttribute(`data-closed`,``),t!==p&&t.setAttribute(`data-closed`,``),D?(l.setAttribute(`data-instant`,``),p.setAttribute(`data-instant`,``),t!==p&&t.setAttribute(`data-instant`,``)):(l.removeAttribute(`data-instant`),p.removeAttribute(`data-instant`),t!==p&&t.removeAttribute(`data-instant`)),l.removeAttribute(`data-open`),p.removeAttribute(`data-open`),t!==p&&t.removeAttribute(`data-open`)},G=(0,e.createPresenceLifecycle)({element:p,onExitComplete:()=>{O||(L.restore(),p.hidden=!0)}}),K=(0,e.createPositionSync)({observedElements:[f,p],isActive:()=>E,ancestorScroll:!1,onUpdate:U}),q=(t,n,i=!1)=>{E!==t&&(!t&&E&&y>0&&(r=Date.now()+y),D=i,E=t,(0,e.setAria)(f,`expanded`,E),t?(L.mount(),p.hidden=!1,W(`open`),G.enter(),U(),K.start(),K.update()):(W(`closed`),G.exit(),K.stop()),H(E,n))},J=(e,t,n=!1)=>{if(E!==e){if(te){H(e,t);return}q(e,t,n)}},Y=(e,t,n=!1)=>{q(e,t,n)},X=(e,t)=>{e===f||!E||(V(),k=!1,A=!1,j=!1,J(!1,t,!0))};i.add(f),a.add(X),I.push(()=>{a.delete(X),i.delete(f)});let Z=e=>{if(B(),z(),y>0&&Date.now()<r){J(!0,e,!0);return}if(v<=0){J(!0,e);return}M=setTimeout(()=>{M=null,J(!0,e)},v)},de=e=>{if(z(),B(),b<=0){J(!1,e);return}N=setTimeout(()=>{N=null,J(!1,e)},b)},Q=e=>{k||A||j||de(e)};(0,e.setAria)(f,`expanded`,E),W(E?`open`:`closed`),p.hidden=!E,E&&(L.mount(),G.enter(),p.hidden=!1,U(),K.start(),K.update()),I.push((0,e.on)(l.ownerDocument,`keydown`,e=>{e.key===`Tab`&&(P=Date.now())},{capture:!0}),(0,e.on)(l.ownerDocument,`pointerdown`,()=>{P=-1/0,F=-1/0},{capture:!0}),(0,e.on)(l.ownerDocument,`pointermove`,e=>{e.pointerType!==`touch`&&(F=Date.now())},{capture:!0}),(0,e.on)(f,`pointerenter`,e=>{e.pointerType!==`touch`&&(k=!0,!R()&&(Date.now()-F>250||(s(f,`pointer`),Z(`pointer`))))}),(0,e.on)(f,`pointermove`,e=>{e.pointerType!==`touch`&&(!k||R()||E||M||(s(f,`pointer`),Z(`pointer`)))}),(0,e.on)(f,`pointerleave`,e=>{if(e.pointerType===`touch`)return;k=!1;let t=e.relatedTarget;if(!(t&&p.contains(t))){if(o(t,f)){J(!1,`pointer`,!0);return}Q(`pointer`)}})),I.push((0,e.on)(p,`pointerenter`,e=>{e.pointerType!==`touch`&&(A=!0,B())}),(0,e.on)(p,`pointerleave`,e=>{if(e.pointerType===`touch`)return;A=!1;let t=e.relatedTarget;if(!(t&&f.contains(t))){if(o(t,f)){J(!1,`pointer`,!0);return}Q(`pointer`)}})),I.push((0,e.on)(f,`focusin`,()=>{R()||Date.now()-P>750||(j=!0,s(f,`focus`),Z(`focus`))}),(0,e.on)(f,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(f.contains(t)||p.contains(t)))){if(j=!1,o(t,f)){J(!1,`blur`,!0);return}Q(`blur`)}}),(0,e.on)(p,`focusin`,()=>{j=!0,B()}),(0,e.on)(p,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(f.contains(t)||p.contains(t)))){if(j=!1,o(t,f)){J(!1,`blur`,!0);return}Q(`blur`)}})),I.push((0,e.createDismissLayer)({root:l,isOpen:()=>E,onDismiss:()=>J(!1,`dismiss`),closeOnClickOutside:re,closeOnEscape:ie})),I.push((0,e.on)(l,`hover-card:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&Y(n,`api`)}));let $={open:()=>{R()||(V(),J(!0,`api`))},close:()=>{V(),J(!1,`api`)},toggle:()=>{V(),!(!E&&R())&&J(!E,`api`)},setOpen:e=>{V(),Y(e,`api`)},get isOpen(){return E},destroy:()=>{O=!0,V(),K.stop(),G.cleanup(),L.cleanup(),I.forEach(e=>e()),I.length=0,(0,e.clearRootBinding)(l,c,$)}};return(0,e.setRootBinding)(l,c,$),$}function u(t=document){let n=[];for(let r of(0,e.getRoots)(t,`hover-card`))(0,e.hasRootBinding)(r,c)||n.push(l(r));return n}exports.create=u,exports.createHoverCard=l;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{computeFloatingPosition as e,computeFloatingTransformOrigin as t,createDismissLayer as n,createPortalLifecycle as r,createPositionSync as i,createPresenceLifecycle as a,emit as o,ensureId as ee,getDataBool as s,getDataEnum as c,getDataNumber as l,getPart as u,getRoots as d,measurePopupContentRect as te,on as f,setAria as p}from"@data-slot/core";const ne=[`top`,`right`,`bottom`,`left`],re=[`start`,`center`,`end`];let m=0;const h=new Set,g=new Set,_=(e,t)=>{if(!e)return!1;for(let n of h)if(n!==t&&n.contains(e))return!0;return!1},v=(e,t)=>{for(let n of g)n(e,t)};function y(d,y={}){let b=u(d,`hover-card-trigger`),x=u(d,`hover-card-content`),S=u(d,`hover-card-positioner`),C=S&&x&&S.contains(x)?S:null,w=u(d,`hover-card-portal`),ie=w&&C&&w.contains(C)?w:null;if(!b||!x)throw Error(`Hover-card requires trigger and content slots`);let ae=y.open!==void 0,oe=y.defaultOpen??s(d,`defaultOpen`)??!1,T=y.delay??l(d,`delay`)??700,E=y.skipDelayDuration??l(d,`skipDelayDuration`)??300,D=y.closeDelay??l(d,`closeDelay`)??300,se=y.onOpenChange,ce=y.closeOnClickOutside??s(d,`closeOnClickOutside`)??!0,le=y.closeOnEscape??s(d,`closeOnEscape`)??!0,ue=y.portal??s(x,`portal`)??s(d,`portal`)??!0,O=(e,t)=>c(x,e,t)??(C?c(C,e,t):void 0)??c(d,e,t),k=e=>l(x,e)??(C?l(C,e):void 0)??l(d,e),de=e=>s(x,e)??(C?s(C,e):void 0)??s(d,e),fe=y.side??O(`side`,ne)??`bottom`,pe=y.align??O(`align`,re)??`center`,me=y.sideOffset??k(`sideOffset`)??4,he=y.alignOffset??k(`alignOffset`)??0,ge=y.avoidCollisions??de(`avoidCollisions`)??!0,_e=y.collisionPadding??k(`collisionPadding`)??8,A=y.open??oe,j=!1,M=!1,N=!1,P=!1,F=!1,I=null,L=null,R=-1/0,z=-1/0,B=[],V=r({content:x,root:d,enabled:ue,wrapperSlot:C?void 0:`hover-card-positioner`,container:C??void 0,mountTarget:C?ie??C:void 0}),ve=ee(x,`hover-card-content`);b.setAttribute(`aria-haspopup`,`dialog`),b.setAttribute(`aria-controls`,ve),x.setAttribute(`data-side`,fe),x.setAttribute(`data-align`,pe);let H=()=>b.hasAttribute(`disabled`)||b.getAttribute(`aria-disabled`)===`true`,U=()=>{I&&=(clearTimeout(I),null)},W=()=>{L&&=(clearTimeout(L),null)},G=()=>{U(),W()},K=(e,t)=>{o(d,`hover-card:change`,{open:e,reason:t,trigger:b,content:x}),se?.(e)},q=()=>{let n=V.container,r=d.ownerDocument.defaultView??window,i=b.getBoundingClientRect(),a=e({anchorRect:i,contentRect:te(x),side:fe,align:pe,sideOffset:me,alignOffset:he,avoidCollisions:ge,collisionPadding:_e}),o=t({side:a.side,align:a.align,anchorRect:i,popupX:a.x,popupY:a.y});n.style.position=`absolute`,n.style.top=`0px`,n.style.left=`0px`,n.style.transform=`translate3d(${a.x+r.scrollX}px, ${a.y+r.scrollY}px, 0)`,n.style.setProperty(`--transform-origin`,o),n.style.willChange=`transform`,n.style.margin=`0`,x.setAttribute(`data-side`,a.side),x.setAttribute(`data-align`,a.align),n!==x&&(n.setAttribute(`data-side`,a.side),n.setAttribute(`data-align`,a.align))},J=e=>{let t=V.container;if(d.setAttribute(`data-state`,e),x.setAttribute(`data-state`,e),t!==x&&t.setAttribute(`data-state`,e),e===`open`){d.setAttribute(`data-open`,``),x.setAttribute(`data-open`,``),t!==x&&t.setAttribute(`data-open`,``),j?(d.setAttribute(`data-instant`,``),x.setAttribute(`data-instant`,``),t!==x&&t.setAttribute(`data-instant`,``)):(d.removeAttribute(`data-instant`),x.removeAttribute(`data-instant`),t!==x&&t.removeAttribute(`data-instant`)),d.removeAttribute(`data-closed`),x.removeAttribute(`data-closed`),t!==x&&t.removeAttribute(`data-closed`);return}d.setAttribute(`data-closed`,``),x.setAttribute(`data-closed`,``),t!==x&&t.setAttribute(`data-closed`,``),j?(d.setAttribute(`data-instant`,``),x.setAttribute(`data-instant`,``),t!==x&&t.setAttribute(`data-instant`,``)):(d.removeAttribute(`data-instant`),x.removeAttribute(`data-instant`),t!==x&&t.removeAttribute(`data-instant`)),d.removeAttribute(`data-open`),x.removeAttribute(`data-open`),t!==x&&t.removeAttribute(`data-open`)},Y=a({element:x,onExitComplete:()=>{M||(V.restore(),x.hidden=!0)}}),X=i({observedElements:[b,x],isActive:()=>A,ancestorScroll:!1,onUpdate:q}),ye=(e,t,n=!1)=>{A!==e&&(!e&&A&&E>0&&(m=Date.now()+E),j=n,A=e,p(b,`expanded`,A),e?(V.mount(),x.hidden=!1,J(`open`),Y.enter(),q(),X.start(),X.update()):(J(`closed`),Y.exit(),X.stop()),K(A,t))},Z=(e,t,n=!1)=>{if(A!==e){if(ae){K(e,t);return}ye(e,t,n)}},be=(e,t,n=!1)=>{ye(e,t,n)},xe=(e,t)=>{e===b||!A||(G(),N=!1,P=!1,F=!1,Z(!1,t,!0))};h.add(b),g.add(xe),B.push(()=>{g.delete(xe),h.delete(b)});let Q=e=>{if(W(),U(),E>0&&Date.now()<m){Z(!0,e,!0);return}if(T<=0){Z(!0,e);return}I=setTimeout(()=>{I=null,Z(!0,e)},T)},Se=e=>{if(U(),W(),D<=0){Z(!1,e);return}L=setTimeout(()=>{L=null,Z(!1,e)},D)},$=e=>{N||P||F||Se(e)};return p(b,`expanded`,A),J(A?`open`:`closed`),x.hidden=!A,A&&(V.mount(),Y.enter(),x.hidden=!1,q(),X.start(),X.update()),B.push(f(d.ownerDocument,`keydown`,e=>{e.key===`Tab`&&(R=Date.now())},{capture:!0}),f(d.ownerDocument,`pointerdown`,()=>{R=-1/0,z=-1/0},{capture:!0}),f(d.ownerDocument,`pointermove`,e=>{e.pointerType!==`touch`&&(z=Date.now())},{capture:!0}),f(b,`pointerenter`,e=>{e.pointerType!==`touch`&&(N=!0,!H()&&(Date.now()-z>250||(v(b,`pointer`),Q(`pointer`))))}),f(b,`pointermove`,e=>{e.pointerType!==`touch`&&(!N||H()||A||I||(v(b,`pointer`),Q(`pointer`)))}),f(b,`pointerleave`,e=>{if(e.pointerType===`touch`)return;N=!1;let t=e.relatedTarget;if(!(t&&x.contains(t))){if(_(t,b)){Z(!1,`pointer`,!0);return}$(`pointer`)}})),B.push(f(x,`pointerenter`,e=>{e.pointerType!==`touch`&&(P=!0,W())}),f(x,`pointerleave`,e=>{if(e.pointerType===`touch`)return;P=!1;let t=e.relatedTarget;if(!(t&&b.contains(t))){if(_(t,b)){Z(!1,`pointer`,!0);return}$(`pointer`)}})),B.push(f(b,`focusin`,()=>{H()||Date.now()-R>750||(F=!0,v(b,`focus`),Q(`focus`))}),f(b,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(b.contains(t)||x.contains(t)))){if(F=!1,_(t,b)){Z(!1,`blur`,!0);return}$(`blur`)}}),f(x,`focusin`,()=>{F=!0,W()}),f(x,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(b.contains(t)||x.contains(t)))){if(F=!1,_(t,b)){Z(!1,`blur`,!0);return}$(`blur`)}})),B.push(n({root:d,isOpen:()=>A,onDismiss:()=>Z(!1,`dismiss`),closeOnClickOutside:ce,closeOnEscape:le})),B.push(f(d,`hover-card:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&be(n,`api`)})),{open:()=>{H()||(G(),Z(!0,`api`))},close:()=>{G(),Z(!1,`api`)},toggle:()=>{G(),!(!A&&H())&&Z(!A,`api`)},setOpen:e=>{G(),be(e,`api`)},get isOpen(){return A},destroy:()=>{M=!0,G(),X.stop(),Y.cleanup(),V.cleanup(),B.forEach(e=>e()),B.length=0}}}const b=new WeakSet;function x(e=document){let t=[];for(let n of d(e,`hover-card`))b.has(n)||(b.add(n),t.push(y(n)));return t}export{x as create,y as createHoverCard};
1
+ import{clearRootBinding as e,computeFloatingPosition as t,computeFloatingTransformOrigin as n,createDismissLayer as r,createPortalLifecycle as i,createPositionSync as a,createPresenceLifecycle as o,emit as ee,ensureId as te,getDataBool as s,getDataEnum as c,getDataNumber as l,getPart as u,getRoots as d,hasRootBinding as f,measurePopupContentRect as ne,on as p,reuseRootBinding as re,setAria as m,setRootBinding as ie}from"@data-slot/core";const ae=[`top`,`right`,`bottom`,`left`],oe=[`start`,`center`,`end`];let se=0;const h=new Set,g=new Set,_=(e,t)=>{if(!e)return!1;for(let n of h)if(n!==t&&n.contains(e))return!0;return!1},v=(e,t)=>{for(let n of g)n(e,t)},y=`@data-slot/hover-card`;function b(d,f={}){let b=re(d,y,`[@data-slot/hover-card] createHoverCard() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(b)return b;let x=u(d,`hover-card-trigger`),S=u(d,`hover-card-content`),C=u(d,`hover-card-positioner`),w=C&&S&&C.contains(S)?C:null,T=u(d,`hover-card-portal`),ce=T&&w&&T.contains(w)?T:null;if(!x||!S)throw Error(`Hover-card requires trigger and content slots`);let le=f.open!==void 0,ue=f.defaultOpen??s(d,`defaultOpen`)??!1,de=f.delay??l(d,`delay`)??700,E=f.skipDelayDuration??l(d,`skipDelayDuration`)??300,fe=f.closeDelay??l(d,`closeDelay`)??300,pe=f.onOpenChange,me=f.closeOnClickOutside??s(d,`closeOnClickOutside`)??!0,he=f.closeOnEscape??s(d,`closeOnEscape`)??!0,ge=f.portal??s(S,`portal`)??s(d,`portal`)??!0,_e=(e,t)=>c(S,e,t)??(w?c(w,e,t):void 0)??c(d,e,t),D=e=>l(S,e)??(w?l(w,e):void 0)??l(d,e),ve=e=>s(S,e)??(w?s(w,e):void 0)??s(d,e),ye=f.side??_e(`side`,ae)??`bottom`,O=f.align??_e(`align`,oe)??`center`,be=f.sideOffset??D(`sideOffset`)??4,xe=f.alignOffset??D(`alignOffset`)??0,Se=f.avoidCollisions??ve(`avoidCollisions`)??!0,Ce=f.collisionPadding??D(`collisionPadding`)??8,k=f.open??ue,A=!1,j=!1,M=!1,N=!1,P=!1,F=null,I=null,L=-1/0,R=-1/0,z=[],B=i({content:S,root:d,enabled:ge,wrapperSlot:w?void 0:`hover-card-positioner`,container:w??void 0,mountTarget:w?ce??w:void 0}),we=te(S,`hover-card-content`);x.setAttribute(`aria-haspopup`,`dialog`),x.setAttribute(`aria-controls`,we),S.setAttribute(`data-side`,ye),S.setAttribute(`data-align`,O);let V=()=>x.hasAttribute(`disabled`)||x.getAttribute(`aria-disabled`)===`true`,H=()=>{F&&=(clearTimeout(F),null)},U=()=>{I&&=(clearTimeout(I),null)},W=()=>{H(),U()},Te=(e,t)=>{ee(d,`hover-card:change`,{open:e,reason:t,trigger:x,content:S}),pe?.(e)},G=()=>{let e=B.container,r=d.ownerDocument.defaultView??window,i=x.getBoundingClientRect(),a=t({anchorRect:i,contentRect:ne(S),side:ye,align:O,sideOffset:be,alignOffset:xe,avoidCollisions:Se,collisionPadding:Ce}),o=n({side:a.side,align:a.align,anchorRect:i,popupX:a.x,popupY:a.y});e.style.position=`absolute`,e.style.top=`0px`,e.style.left=`0px`,e.style.transform=`translate3d(${a.x+r.scrollX}px, ${a.y+r.scrollY}px, 0)`,e.style.setProperty(`--transform-origin`,o),e.style.willChange=`transform`,e.style.margin=`0`,S.setAttribute(`data-side`,a.side),S.setAttribute(`data-align`,a.align),e!==S&&(e.setAttribute(`data-side`,a.side),e.setAttribute(`data-align`,a.align))},K=e=>{let t=B.container;if(d.setAttribute(`data-state`,e),S.setAttribute(`data-state`,e),t!==S&&t.setAttribute(`data-state`,e),e===`open`){d.setAttribute(`data-open`,``),S.setAttribute(`data-open`,``),t!==S&&t.setAttribute(`data-open`,``),A?(d.setAttribute(`data-instant`,``),S.setAttribute(`data-instant`,``),t!==S&&t.setAttribute(`data-instant`,``)):(d.removeAttribute(`data-instant`),S.removeAttribute(`data-instant`),t!==S&&t.removeAttribute(`data-instant`)),d.removeAttribute(`data-closed`),S.removeAttribute(`data-closed`),t!==S&&t.removeAttribute(`data-closed`);return}d.setAttribute(`data-closed`,``),S.setAttribute(`data-closed`,``),t!==S&&t.setAttribute(`data-closed`,``),A?(d.setAttribute(`data-instant`,``),S.setAttribute(`data-instant`,``),t!==S&&t.setAttribute(`data-instant`,``)):(d.removeAttribute(`data-instant`),S.removeAttribute(`data-instant`),t!==S&&t.removeAttribute(`data-instant`)),d.removeAttribute(`data-open`),S.removeAttribute(`data-open`),t!==S&&t.removeAttribute(`data-open`)},q=o({element:S,onExitComplete:()=>{j||(B.restore(),S.hidden=!0)}}),J=a({observedElements:[x,S],isActive:()=>k,ancestorScroll:!1,onUpdate:G}),Ee=(e,t,n=!1)=>{k!==e&&(!e&&k&&E>0&&(se=Date.now()+E),A=n,k=e,m(x,`expanded`,k),e?(B.mount(),S.hidden=!1,K(`open`),q.enter(),G(),J.start(),J.update()):(K(`closed`),q.exit(),J.stop()),Te(k,t))},Y=(e,t,n=!1)=>{if(k!==e){if(le){Te(e,t);return}Ee(e,t,n)}},X=(e,t,n=!1)=>{Ee(e,t,n)},De=(e,t)=>{e===x||!k||(W(),M=!1,N=!1,P=!1,Y(!1,t,!0))};h.add(x),g.add(De),z.push(()=>{g.delete(De),h.delete(x)});let Z=e=>{if(U(),H(),E>0&&Date.now()<se){Y(!0,e,!0);return}if(de<=0){Y(!0,e);return}F=setTimeout(()=>{F=null,Y(!0,e)},de)},Oe=e=>{if(H(),U(),fe<=0){Y(!1,e);return}I=setTimeout(()=>{I=null,Y(!1,e)},fe)},Q=e=>{M||N||P||Oe(e)};m(x,`expanded`,k),K(k?`open`:`closed`),S.hidden=!k,k&&(B.mount(),q.enter(),S.hidden=!1,G(),J.start(),J.update()),z.push(p(d.ownerDocument,`keydown`,e=>{e.key===`Tab`&&(L=Date.now())},{capture:!0}),p(d.ownerDocument,`pointerdown`,()=>{L=-1/0,R=-1/0},{capture:!0}),p(d.ownerDocument,`pointermove`,e=>{e.pointerType!==`touch`&&(R=Date.now())},{capture:!0}),p(x,`pointerenter`,e=>{e.pointerType!==`touch`&&(M=!0,!V()&&(Date.now()-R>250||(v(x,`pointer`),Z(`pointer`))))}),p(x,`pointermove`,e=>{e.pointerType!==`touch`&&(!M||V()||k||F||(v(x,`pointer`),Z(`pointer`)))}),p(x,`pointerleave`,e=>{if(e.pointerType===`touch`)return;M=!1;let t=e.relatedTarget;if(!(t&&S.contains(t))){if(_(t,x)){Y(!1,`pointer`,!0);return}Q(`pointer`)}})),z.push(p(S,`pointerenter`,e=>{e.pointerType!==`touch`&&(N=!0,U())}),p(S,`pointerleave`,e=>{if(e.pointerType===`touch`)return;N=!1;let t=e.relatedTarget;if(!(t&&x.contains(t))){if(_(t,x)){Y(!1,`pointer`,!0);return}Q(`pointer`)}})),z.push(p(x,`focusin`,()=>{V()||Date.now()-L>750||(P=!0,v(x,`focus`),Z(`focus`))}),p(x,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(x.contains(t)||S.contains(t)))){if(P=!1,_(t,x)){Y(!1,`blur`,!0);return}Q(`blur`)}}),p(S,`focusin`,()=>{P=!0,U()}),p(S,`focusout`,e=>{let t=e.relatedTarget;if(!(t&&(x.contains(t)||S.contains(t)))){if(P=!1,_(t,x)){Y(!1,`blur`,!0);return}Q(`blur`)}})),z.push(r({root:d,isOpen:()=>k,onDismiss:()=>Y(!1,`dismiss`),closeOnClickOutside:me,closeOnEscape:he})),z.push(p(d,`hover-card:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&X(n,`api`)}));let $={open:()=>{V()||(W(),Y(!0,`api`))},close:()=>{W(),Y(!1,`api`)},toggle:()=>{W(),!(!k&&V())&&Y(!k,`api`)},setOpen:e=>{W(),X(e,`api`)},get isOpen(){return k},destroy:()=>{j=!0,W(),J.stop(),q.cleanup(),B.cleanup(),z.forEach(e=>e()),z.length=0,e(d,y,$)}};return ie(d,y,$),$}function x(e=document){let t=[];for(let n of d(e,`hover-card`))f(n,y)||t.push(b(n));return t}export{x as create,b as createHoverCard};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/hover-card",
3
- "version": "0.2.123",
3
+ "version": "0.2.125",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -35,6 +35,6 @@
35
35
  ],
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
- "@data-slot/core": "0.2.123"
38
+ "@data-slot/core": "0.2.125"
39
39
  }
40
40
  }