@data-slot/core 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`});const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=Symbol.for(`data-slot.root-bindings`),i=Symbol.for(`data-slot.root-binding-warnings`),a=(e,t=!1)=>{let n=e,i=n[r];return!i&&t&&(i=new Map,n[r]=i),i},o=(e,t=!1)=>{let n=e,r=n[i];return!r&&t&&(r=new Set,n[i]=r),r};function s(e,t){return a(e)?.get(t)}function c(e,t,n){return a(e,!0).set(t,n),n}function l(e,t,n){let i=a(e);return!i?.has(t)||arguments.length>=3&&i.get(t)!==n?!1:(i.delete(t),i.size===0&&delete e[r],!0)}function u(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=o(e,!0);r.has(t)||(r.add(t),console.warn(n))}const d=new WeakMap;function f(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=d.get(e);r||(r=new Set,d.set(e,r)),!r.has(t)&&(r.add(t),console.warn(`[@data-slot] ${n}`))}function p(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function m(e,t){for(let n of p(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function h(e,t){return p(t).some(t=>e.hasAttribute(t))}const g=new Set([``,`true`,`1`,`yes`]),_=new Set([`false`,`0`,`no`]);function v(e,t){if(!h(e,t))return;let n=m(e,t);if(n===null)return;let r=n.toLowerCase();if(g.has(r))return!0;if(_.has(r))return!1;f(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function y(e,t){let n=m(e,t);if(n===null||n===``)return;let r=Number(n);if(Number.isNaN(r)||!Number.isFinite(r)){f(e,t,`Invalid number value "${n}" for data-${t}.`);return}return r}function b(e,t){if(h(e,t))return m(e,t)??void 0}function x(e,t,n){let r=m(e,t);if(r!==null){if(n.includes(r))return r;f(e,t,`Invalid value "${r}" for data-${t}. Expected one of: ${n.join(`, `)}.`)}}const S=new WeakMap,C=Symbol.for(`data-slot.portal-owner`),w=e=>e[C]??S.get(e),ee=(e,t)=>{S.set(e,t),e[C]=t},te=e=>{S.delete(e),delete e[C]};function T(e,t){return E(e,t,new Set)}function E(e,t,n){if(!t)return!1;let r=t instanceof Element?t:t.parentElement;if(!r)return!1;if(e.contains(r))return!0;let i=r;for(;i;){let t=w(i);if(t&&!n.has(t)&&(n.add(t),E(e,t,n)))return!0;i=i.parentElement}return!1}function D(e,t,n){if(n.portaled)return;let r=(t.ownerDocument??document)?.body;r&&(n.originalParent=e.parentNode,n.originalNextSibling=e.nextSibling,ee(e,t),r.appendChild(e),n.portaled=!0)}function O(e,t){if(!t.portaled)return;te(e);let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.portaled=!1,t.originalParent=null,t.originalNextSibling=null}let k=0;const A=(e,t)=>e.id||=`${t}-${++k}`,ne=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},re=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,A(t,`title`)),n&&e.setAttribute(`aria-describedby`,A(n,`desc`))};function j(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const M=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),N=(...e)=>t=>{for(let n of e){if(t.defaultPrevented)break;n?.(t)}};let P=0,F=``,I=``;function ie(){if(P===0){let e=document.documentElement;F=e.style.overflow,I=e.style.scrollbarGutter,e.style.overflow=`hidden`,e.style.scrollbarGutter=`stable`}P++}function ae(){if(P=Math.max(0,P-1),P===0){let e=document.documentElement;e.style.overflow=F,e.style.scrollbarGutter=I}}const oe=[`top`,`right`,`bottom`,`left`],L=e=>{let t=window.visualViewport,n=e.viewportWidth??t?.width,r=e.viewportHeight??t?.height;if(n==null||r==null)throw Error(`computeFloatingPosition requires window.visualViewport when viewport dimensions are not provided`);return{x:t?.offsetLeft??0,y:t?.offsetTop??0,width:n,height:r}},R=(e,t,n,r,i,a)=>{let o=0,s=0;return e===`top`?s=n.top-r.height-i:e===`bottom`?s=n.bottom+i:o=e===`left`?n.left-r.width-i:n.right+i,e===`top`||e===`bottom`?o=t===`start`?n.left+a:t===`center`?n.left+n.width/2-r.width/2+a:n.right-r.width-a:s=t===`start`?n.top+a:t===`center`?n.top+n.height/2-r.height/2+a:n.bottom-r.height-a,{x:o,y:s}},z=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},B=(e,t,n)=>{let r=z(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}},V=e=>{let t=B(e.side,e.align,e.anchorRect);return`${t.x-e.popupX}px ${t.y-e.popupY}px`};function H(e){let t=e.getBoundingClientRect(),n=e.offsetWidth>0?e.offsetWidth:t.width,r=e.offsetHeight>0?e.offsetHeight:t.height;return{top:t.top,left:t.left,right:t.left+n,bottom:t.top+r,width:n,height:r}}const U=e=>{if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}},W=(e,t,n,r,i)=>{let a=r.x+i,o=r.x+r.width-i,s=r.y+i,c=r.y+r.height-i;return e===`top`?Math.max(0,s-t.y):e===`bottom`?Math.max(0,t.y+n.height-c):e===`left`?Math.max(0,a-t.x):Math.max(0,t.x+n.width-o)},G=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),K=(e,t,n,r)=>t>n&&e<r,se=e=>e===`top`||e===`bottom`;function ce(e){let t=L(e),n=e.allowedSides?.length?[...new Set(e.allowedSides)]:[...oe],r=n.includes(e.side)?e.side:n[0],i=r,a=R(i,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset);if(e.avoidCollisions){let o=t.x+e.collisionPadding;t.x+t.width-e.collisionPadding;let s=t.y+e.collisionPadding;t.y+t.height-e.collisionPadding;let c=K(e.anchorRect.left,e.anchorRect.right,t.x,t.x+t.width),l=K(e.anchorRect.top,e.anchorRect.bottom,t.y,t.y+t.height);if(se(r)?l:c){let o=[r,...n.filter(e=>e!==r)],s=i,c=a,l=1/0;for(let n of o){let r=R(n,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset),i=W(n,r,e.contentRect,t,e.collisionPadding);if(i<=0){s=n,c=r,l=i;break}i<l&&(s=n,c=r,l=i)}i=s,a=c}let u=t.x+t.width-e.contentRect.width-e.collisionPadding,d=t.y+t.height-e.contentRect.height-e.collisionPadding;c&&(a.x=G(a.x,o,u)),l&&(a.y=G(a.y,s,d))}return{x:a.x,y:a.y,side:i,align:e.align}}function le(e,t,n=4){if(t.clientHeight<=0)return;let r=Math.max(0,t.scrollHeight-t.clientHeight);if(r<=0)return;let i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=i.top-a.top+t.scrollTop,s=o+i.height,c=t.scrollTop+n,l=t.scrollTop+t.clientHeight-n,u=t.scrollTop;o<c?u=o-n:s>l&&(u=s-t.clientHeight+n),u=Math.min(Math.max(u,0),r),u!==t.scrollTop&&(t.scrollTop=u)}const q=e=>({x:e.x,y:e.y,width:e.width,height:e.height}),J=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,ue=e=>{let t=getComputedStyle(e),n=`${t.overflow}${t.overflowX}${t.overflowY}`;return/(auto|scroll|overlay)/.test(n)},de=(e,t)=>{let n=new Set([e]),r=e.parentNode;for(;r;){if(r instanceof Element){ue(r)&&n.add(r),r=r.parentNode;continue}if(r instanceof Document){r.scrollingElement&&n.add(r.scrollingElement),n.add(r),r.defaultView&&(n.add(r.defaultView),r.defaultView.visualViewport&&n.add(r.defaultView.visualViewport));break}r=null}return n.add(t),t.visualViewport&&n.add(t.visualViewport),[...n]},fe=(e,t,n)=>{let r=null,i=null,a=()=>{i!==null&&(n.clearTimeout(i),i=null),r?.disconnect(),r=null},o=(s=!1,c=1)=>{a();let l=e.getBoundingClientRect();if(s||t(),!l.width||!l.height)return;let u=e.ownerDocument.documentElement,d=Math.floor(l.top),f=Math.floor(u.clientWidth-(l.left+l.width)),p=Math.floor(u.clientHeight-(l.top+l.height)),m=Math.floor(l.left),h=`${-d}px ${-f}px ${-p}px ${-m}px`,g=Math.max(0,Math.min(1,c))||1,_=!0;r=new IntersectionObserver(t=>{let r=t[0]?.intersectionRatio??1;if(r!==g){if(!_){o();return}r?o(!1,r):i=n.setTimeout(()=>{o(!1,1e-7)},1e3)}if(r===1&&!J(q(l),q(e.getBoundingClientRect()))){o();return}_=!1},{rootMargin:h,threshold:g}),r.observe(e)};return o(!0),a};function pe(e){let t=e.win??window,n=e.isActive??(()=>!0),r=e.observedElements??[],i=e.ancestorScroll??!0,a=e.ancestorResize??!0,o=e.elementResize??typeof ResizeObserver<`u`,s=e.layoutShift??!1,c=e.animationFrame??!1,l=null,u=null,d=!1,f=null,p=null,m=[],h=()=>{l===null&&(l=t.requestAnimationFrame(()=>{l=null,n()&&e.onUpdate()}))},g=()=>h(),_=t=>{e.ignoreScrollTarget?.(t.target)||h()},v=()=>{let e=new Set,n=r.length?r:[];if(n.length===0)return e.add(t),t.visualViewport&&e.add(t.visualViewport),[...e];for(let r of n)for(let n of de(r,t))e.add(n);return[...e]},y=e=>{let n=new Set([t]);t.visualViewport&&n.add(t.visualViewport);for(let r of e)(r===t||r===t.visualViewport)&&n.add(r);return[...n]};return{start:()=>{if(d)return;d=!0;let e=v(),n=y(e);if(i)for(let t of e)t.addEventListener(`scroll`,_,{passive:!0}),m.push(()=>t.removeEventListener(`scroll`,_));if(a)for(let e of n)e.addEventListener(`resize`,g),m.push(()=>e.removeEventListener(`resize`,g));if(o&&typeof ResizeObserver<`u`){f=new ResizeObserver(g);for(let e of r)f.observe(e)}let l=r[0]??null;if(s&&l&&typeof IntersectionObserver<`u`&&(p=fe(l,h,t)),c&&l){let e=q(l.getBoundingClientRect()),n=()=>{if(!d)return;let r=q(l.getBoundingClientRect());J(e,r)||h(),e=r,u=t.requestAnimationFrame(n)};u=t.requestAnimationFrame(n)}},stop:()=>{d&&(d=!1,l!==null&&(t.cancelAnimationFrame(l),l=null),u!==null&&(t.cancelAnimationFrame(u),u=null),m.forEach(e=>e()),m=[],f?.disconnect(),f=null,p?.(),p=null)},update:h}}const Y=new WeakMap,X=(e,t)=>{let n=t.isOpen();return n&&!t.wasOpen&&(e.openSequence+=1,t.openOrder=e.openSequence),t.wasOpen=n,n},Z=(e,t)=>{let n=null;for(let r of e.layers)X(e,r)&&(t&&!t(r)||(!n||r.openOrder>n.openOrder)&&(n=r));return n},me=e=>{let t=e.defaultView??window,n={layers:[],openSequence:0,pendingTouchOutside:!1,pendingIframeBlur:null,cleanup:()=>{}},r=()=>{n.pendingIframeBlur!=null&&(t.clearTimeout(n.pendingIframeBlur),n.pendingIframeBlur=null)},i=j(e,`pointerdown`,e=>{let t=e.target,r=Z(n);if(!r||!r.closeOnClickOutside||r.isInside(t)){n.pendingTouchOutside=!1;return}if(e.pointerType===`touch`){n.pendingTouchOutside=!0;return}n.pendingTouchOutside=!1,r.onDismiss()}),a=j(e,`click`,e=>{if(!n.pendingTouchOutside)return;n.pendingTouchOutside=!1;let t=e.target,r=Z(n);!r||!r.closeOnClickOutside||r.isInside(t)||r.onDismiss()}),o=j(e,`pointercancel`,()=>{n.pendingTouchOutside=!1}),s=j(t,`blur`,()=>{Z(n,e=>e.closeOnClickOutside)&&(n.pendingTouchOutside=!1,r(),n.pendingIframeBlur=t.setTimeout(()=>{n.pendingIframeBlur=null;let r=Z(n,e=>e.closeOnClickOutside);if(!r)return;let i=t.HTMLIFrameElement,a=e.activeElement;!i||!(a instanceof i)||r.isInside(a)||r.onDismiss()},0))}),c=j(e,`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=e.target,r=Z(n,e=>e.closeOnEscape&&e.isInside(t))??Z(n,e=>e.closeOnEscape);r&&(r.preventEscapeDefault&&e.preventDefault(),r.onDismiss())});return n.cleanup=()=>{i(),a(),o(),s(),c(),r(),n.pendingTouchOutside=!1,n.layers.length=0},n},he=e=>{let t=Y.get(e);if(t)return t;let n=me(e);return Y.set(e,n),n};function ge(e){let t=e.root.ownerDocument??document,n=he(t),r={isOpen:e.isOpen,onDismiss:e.onDismiss,isInside:e.isInside??(t=>T(e.root,t)),closeOnClickOutside:e.closeOnClickOutside??!0,closeOnEscape:e.closeOnEscape??!0,preventEscapeDefault:e.preventEscapeDefault??!0,wasOpen:!1,openOrder:0};return X(n,r)&&(r.wasOpen=!0),n.layers.push(r),()=>{let e=n.layers.indexOf(r);e!==-1&&n.layers.splice(e,1),n.layers.length===0&&(n.cleanup(),Y.delete(t))}}function _e(e){let t=e.enabled??!0,n=e.wrapperSlot,r=e.container,i=e.mountTarget??r??e.content,a=e.state??{originalParent:null,originalNextSibling:null,portaled:!1},o=e.root.ownerDocument??document,s=null,c=()=>{if(s)return s;let e=o.createElement(`div`);return n&&(e.setAttribute(`data-slot`,n),e.style.isolation=`isolate`,e.style.zIndex=`50`),s=e,e},l=()=>{if(a.portaled)return;let t=e.content.parentNode;if(!t)return;let n=c();t.insertBefore(n,e.content),n.appendChild(e.content),D(n,e.root,a)},u=()=>{a.portaled||i.isConnected&&D(i,e.root,a)},d=()=>{if(!a.portaled)return;let t=s;if(!t)return;O(t,a);let n=t.parentNode;n&&n.isConnected?(n.insertBefore(e.content,t),t.remove()):e.content.remove()},f=()=>{a.portaled&&O(i,a)};return{state:a,get container(){return r||(t&&n&&a.portaled&&s?s:e.content)},mount:()=>{if(t){if(r||e.mountTarget){u();return}n?l():D(e.content,e.root,a)}},restore:()=>{if(t){if(r||e.mountTarget){f();return}n?d():O(e.content,a)}},cleanup:()=>{if(t){if(r||e.mountTarget){f();return}n?d():O(e.content,a)}}}}const Q=e=>{let t=e.trim().toLowerCase();if(!t)return 0;if(t.endsWith(`ms`)){let e=Number(t.slice(0,-2).trim());return Number.isFinite(e)?e:0}if(t.endsWith(`s`)){let e=Number(t.slice(0,-1).trim());return Number.isFinite(e)?e*1e3:0}let n=Number(t);return Number.isFinite(n)?n:0},$=(e,t)=>{let n=e.split(`,`),r=t.split(`,`),i=Math.max(n.length,r.length),a=0;for(let e=0;e<i;e++){let t=Q(n[e]??n[n.length-1]??`0`),i=Q(r[e]??r[r.length-1]??`0`);a=Math.max(a,t+i)}return a},ve=e=>{let t=getComputedStyle(e),n=$(t.transitionDuration,t.transitionDelay),r=$(t.animationDuration,t.animationDelay);return Math.max(n,r)};function ye(e){let t=e.win??window,n=!1,r=null,i=null,a=null,o=null,s=[],c=()=>{a!==null&&(t.cancelAnimationFrame(a),a=null),o!==null&&(t.clearTimeout(o),o=null),s.forEach(e=>e()),s=[]},l=()=>{c(),n=!1,e.element.removeAttribute(`data-ending-style`)},u=()=>{r!==null&&(t.cancelAnimationFrame(r),r=null),i!==null&&(t.cancelAnimationFrame(i),i=null),e.element.removeAttribute(`data-starting-style`)},d=()=>{n&&(c(),n=!1,e.element.removeAttribute(`data-ending-style`),e.onExitComplete())};return{get isExiting(){return n},enter:()=>{l(),u(),e.element.setAttribute(`data-starting-style`,``),r=t.requestAnimationFrame(()=>{r=null,i=t.requestAnimationFrame(()=>{i=null,e.element.removeAttribute(`data-starting-style`)})})},exit:()=>{l(),u(),n=!0,e.element.setAttribute(`data-ending-style`,``);let r=ve(e.element);if(r>0){let n=t=>{t.target===e.element&&d()};e.element.addEventListener(`transitionend`,n),e.element.addEventListener(`animationend`,n),s.push(()=>e.element.removeEventListener(`transitionend`,n)),s.push(()=>e.element.removeEventListener(`animationend`,n)),o=t.setTimeout(()=>{o=null,d()},Math.ceil(r)+50)}else a=t.requestAnimationFrame(()=>{a=null,d()})},cleanup:()=>{l(),u()}}}exports.clearRootBinding=l,exports.composeHandlers=N,exports.computeFloatingPosition=ce,exports.computeFloatingTransformOrigin=V,exports.containsWithPortals=T,exports.createDismissLayer=ge,exports.createPortalLifecycle=_e,exports.createPositionSync=pe,exports.createPresenceLifecycle=ye,exports.emit=M,exports.ensureId=A,exports.ensureItemVisibleInContainer=le,exports.focusElement=U,exports.getDataBool=v,exports.getDataEnum=x,exports.getDataNumber=y,exports.getDataString=b,exports.getFloatingTransformOriginAnchor=B,exports.getPart=e,exports.getParts=t,exports.getRootBinding=s,exports.getRoots=n,exports.linkLabelledBy=re,exports.lockScroll=ie,exports.measurePopupContentRect=H,exports.on=j,exports.portalToBody=D,exports.restorePortal=O,exports.setAria=ne,exports.setRootBinding=c,exports.unlockScroll=ae,exports.warnRootBindingOnce=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=Symbol.for(`data-slot.root-bindings`),i=Symbol.for(`data-slot.root-binding-warnings`),a=(e,t=!1)=>{let n=e,i=n[r];return!i&&t&&(i=new Map,n[r]=i),i},o=(e,t=!1)=>{let n=e,r=n[i];return!r&&t&&(r=new Set,n[i]=r),r};function s(e,t){return a(e)?.get(t)}function c(e,t){return a(e)?.has(t)??!1}function l(e,t,n){return a(e,!0).set(t,n),n}function u(e,t,n){let i=a(e);return!i?.has(t)||arguments.length>=3&&i.get(t)!==n?!1:(i.delete(t),i.size===0&&delete e[r],!0)}function d(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=o(e,!0);r.has(t)||(r.add(t),console.warn(n))}function f(e,t,n){let r=s(e,t);return r!==void 0&&d(e,t,n),r}const p=new WeakMap;function m(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=p.get(e);r||(r=new Set,p.set(e,r)),!r.has(t)&&(r.add(t),console.warn(`[@data-slot] ${n}`))}function h(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function g(e,t){for(let n of h(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function _(e,t){return h(t).some(t=>e.hasAttribute(t))}const v=new Set([``,`true`,`1`,`yes`]),y=new Set([`false`,`0`,`no`]);function b(e,t){if(!_(e,t))return;let n=g(e,t);if(n===null)return;let r=n.toLowerCase();if(v.has(r))return!0;if(y.has(r))return!1;m(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function x(e,t){let n=g(e,t);if(n===null||n===``)return;let r=Number(n);if(Number.isNaN(r)||!Number.isFinite(r)){m(e,t,`Invalid number value "${n}" for data-${t}.`);return}return r}function ee(e,t){if(_(e,t))return g(e,t)??void 0}function te(e,t,n){let r=g(e,t);if(r!==null){if(n.includes(r))return r;m(e,t,`Invalid value "${r}" for data-${t}. Expected one of: ${n.join(`, `)}.`)}}const S=new WeakMap,C=Symbol.for(`data-slot.portal-owner`),ne=e=>e[C]??S.get(e),re=(e,t)=>{S.set(e,t),e[C]=t},ie=e=>{S.delete(e),delete e[C]};function w(e,t){return T(e,t,new Set)}function T(e,t,n){if(!t)return!1;let r=t instanceof Element?t:t.parentElement;if(!r)return!1;if(e.contains(r))return!0;let i=r;for(;i;){let t=ne(i);if(t&&!n.has(t)&&(n.add(t),T(e,t,n)))return!0;i=i.parentElement}return!1}function E(e,t,n){if(n.portaled)return;let r=(t.ownerDocument??document)?.body;r&&(n.originalParent=e.parentNode,n.originalNextSibling=e.nextSibling,re(e,t),r.appendChild(e),n.portaled=!0)}function D(e,t){if(!t.portaled)return;ie(e);let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.portaled=!1,t.originalParent=null,t.originalNextSibling=null}let O=0;const k=(e,t)=>e.id||=`${t}-${++O}`,ae=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},oe=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,k(t,`title`)),n&&e.setAttribute(`aria-describedby`,k(n,`desc`))};function A(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const se=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),ce=(...e)=>t=>{for(let n of e){if(t.defaultPrevented)break;n?.(t)}};let j=0,M=``,N=``;function le(){if(j===0){let e=document.documentElement;M=e.style.overflow,N=e.style.scrollbarGutter,e.style.overflow=`hidden`,e.style.scrollbarGutter=`stable`}j++}function P(){if(j=Math.max(0,j-1),j===0){let e=document.documentElement;e.style.overflow=M,e.style.scrollbarGutter=N}}const F=[`top`,`right`,`bottom`,`left`],I=e=>{let t=window.visualViewport,n=e.viewportWidth??t?.width,r=e.viewportHeight??t?.height;if(n==null||r==null)throw Error(`computeFloatingPosition requires window.visualViewport when viewport dimensions are not provided`);return{x:t?.offsetLeft??0,y:t?.offsetTop??0,width:n,height:r}},L=(e,t,n,r,i,a)=>{let o=0,s=0;return e===`top`?s=n.top-r.height-i:e===`bottom`?s=n.bottom+i:o=e===`left`?n.left-r.width-i:n.right+i,e===`top`||e===`bottom`?o=t===`start`?n.left+a:t===`center`?n.left+n.width/2-r.width/2+a:n.right-r.width-a:s=t===`start`?n.top+a:t===`center`?n.top+n.height/2-r.height/2+a:n.bottom-r.height-a,{x:o,y:s}},R=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},z=(e,t,n)=>{let r=R(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}},B=e=>{let t=z(e.side,e.align,e.anchorRect);return`${t.x-e.popupX}px ${t.y-e.popupY}px`};function V(e){let t=e.getBoundingClientRect(),n=e.offsetWidth>0?e.offsetWidth:t.width,r=e.offsetHeight>0?e.offsetHeight:t.height;return{top:t.top,left:t.left,right:t.left+n,bottom:t.top+r,width:n,height:r}}const H=e=>{if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}},U=(e,t,n,r,i)=>{let a=r.x+i,o=r.x+r.width-i,s=r.y+i,c=r.y+r.height-i;return e===`top`?Math.max(0,s-t.y):e===`bottom`?Math.max(0,t.y+n.height-c):e===`left`?Math.max(0,a-t.x):Math.max(0,t.x+n.width-o)},W=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),G=(e,t,n,r)=>t>n&&e<r,ue=e=>e===`top`||e===`bottom`;function de(e){let t=I(e),n=e.allowedSides?.length?[...new Set(e.allowedSides)]:[...F],r=n.includes(e.side)?e.side:n[0],i=r,a=L(i,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset);if(e.avoidCollisions){let o=t.x+e.collisionPadding;t.x+t.width-e.collisionPadding;let s=t.y+e.collisionPadding;t.y+t.height-e.collisionPadding;let c=G(e.anchorRect.left,e.anchorRect.right,t.x,t.x+t.width),l=G(e.anchorRect.top,e.anchorRect.bottom,t.y,t.y+t.height);if(ue(r)?l:c){let o=[r,...n.filter(e=>e!==r)],s=i,c=a,l=1/0;for(let n of o){let r=L(n,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset),i=U(n,r,e.contentRect,t,e.collisionPadding);if(i<=0){s=n,c=r,l=i;break}i<l&&(s=n,c=r,l=i)}i=s,a=c}let u=t.x+t.width-e.contentRect.width-e.collisionPadding,d=t.y+t.height-e.contentRect.height-e.collisionPadding;c&&(a.x=W(a.x,o,u)),l&&(a.y=W(a.y,s,d))}return{x:a.x,y:a.y,side:i,align:e.align}}function fe(e,t,n=4){if(t.clientHeight<=0)return;let r=Math.max(0,t.scrollHeight-t.clientHeight);if(r<=0)return;let i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=i.top-a.top+t.scrollTop,s=o+i.height,c=t.scrollTop+n,l=t.scrollTop+t.clientHeight-n,u=t.scrollTop;o<c?u=o-n:s>l&&(u=s-t.clientHeight+n),u=Math.min(Math.max(u,0),r),u!==t.scrollTop&&(t.scrollTop=u)}const K=e=>({x:e.x,y:e.y,width:e.width,height:e.height}),q=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,pe=e=>{let t=getComputedStyle(e),n=`${t.overflow}${t.overflowX}${t.overflowY}`;return/(auto|scroll|overlay)/.test(n)},me=(e,t)=>{let n=new Set([e]),r=e.parentNode;for(;r;){if(r instanceof Element){pe(r)&&n.add(r),r=r.parentNode;continue}if(r instanceof Document){r.scrollingElement&&n.add(r.scrollingElement),n.add(r),r.defaultView&&(n.add(r.defaultView),r.defaultView.visualViewport&&n.add(r.defaultView.visualViewport));break}r=null}return n.add(t),t.visualViewport&&n.add(t.visualViewport),[...n]},he=(e,t,n)=>{let r=null,i=null,a=()=>{i!==null&&(n.clearTimeout(i),i=null),r?.disconnect(),r=null},o=(s=!1,c=1)=>{a();let l=e.getBoundingClientRect();if(s||t(),!l.width||!l.height)return;let u=e.ownerDocument.documentElement,d=Math.floor(l.top),f=Math.floor(u.clientWidth-(l.left+l.width)),p=Math.floor(u.clientHeight-(l.top+l.height)),m=Math.floor(l.left),h=`${-d}px ${-f}px ${-p}px ${-m}px`,g=Math.max(0,Math.min(1,c))||1,_=!0;r=new IntersectionObserver(t=>{let r=t[0]?.intersectionRatio??1;if(r!==g){if(!_){o();return}r?o(!1,r):i=n.setTimeout(()=>{o(!1,1e-7)},1e3)}if(r===1&&!q(K(l),K(e.getBoundingClientRect()))){o();return}_=!1},{rootMargin:h,threshold:g}),r.observe(e)};return o(!0),a};function ge(e){let t=e.win??window,n=e.isActive??(()=>!0),r=e.observedElements??[],i=e.ancestorScroll??!0,a=e.ancestorResize??!0,o=e.elementResize??typeof ResizeObserver<`u`,s=e.layoutShift??!1,c=e.animationFrame??!1,l=null,u=null,d=!1,f=null,p=null,m=[],h=()=>{l===null&&(l=t.requestAnimationFrame(()=>{l=null,n()&&e.onUpdate()}))},g=()=>h(),_=t=>{e.ignoreScrollTarget?.(t.target)||h()},v=()=>{let e=new Set,n=r.length?r:[];if(n.length===0)return e.add(t),t.visualViewport&&e.add(t.visualViewport),[...e];for(let r of n)for(let n of me(r,t))e.add(n);return[...e]},y=e=>{let n=new Set([t]);t.visualViewport&&n.add(t.visualViewport);for(let r of e)(r===t||r===t.visualViewport)&&n.add(r);return[...n]};return{start:()=>{if(d)return;d=!0;let e=v(),n=y(e);if(i)for(let t of e)t.addEventListener(`scroll`,_,{passive:!0}),m.push(()=>t.removeEventListener(`scroll`,_));if(a)for(let e of n)e.addEventListener(`resize`,g),m.push(()=>e.removeEventListener(`resize`,g));if(o&&typeof ResizeObserver<`u`){f=new ResizeObserver(g);for(let e of r)f.observe(e)}let l=r[0]??null;if(s&&l&&typeof IntersectionObserver<`u`&&(p=he(l,h,t)),c&&l){let e=K(l.getBoundingClientRect()),n=()=>{if(!d)return;let r=K(l.getBoundingClientRect());q(e,r)||h(),e=r,u=t.requestAnimationFrame(n)};u=t.requestAnimationFrame(n)}},stop:()=>{d&&(d=!1,l!==null&&(t.cancelAnimationFrame(l),l=null),u!==null&&(t.cancelAnimationFrame(u),u=null),m.forEach(e=>e()),m=[],f?.disconnect(),f=null,p?.(),p=null)},update:h}}const J=new WeakMap,Y=(e,t)=>{let n=t.isOpen();return n&&!t.wasOpen&&(e.openSequence+=1,t.openOrder=e.openSequence),t.wasOpen=n,n},X=(e,t)=>{let n=null;for(let r of e.layers)Y(e,r)&&(t&&!t(r)||(!n||r.openOrder>n.openOrder)&&(n=r));return n},_e=e=>{let t=e.defaultView??window,n={layers:[],openSequence:0,pendingTouchOutside:!1,pendingIframeBlur:null,cleanup:()=>{}},r=()=>{n.pendingIframeBlur!=null&&(t.clearTimeout(n.pendingIframeBlur),n.pendingIframeBlur=null)},i=A(e,`pointerdown`,e=>{let t=e.target,r=X(n);if(!r||!r.closeOnClickOutside||r.isInside(t)){n.pendingTouchOutside=!1;return}if(e.pointerType===`touch`){n.pendingTouchOutside=!0;return}n.pendingTouchOutside=!1,r.onDismiss()}),a=A(e,`click`,e=>{if(!n.pendingTouchOutside)return;n.pendingTouchOutside=!1;let t=e.target,r=X(n);!r||!r.closeOnClickOutside||r.isInside(t)||r.onDismiss()}),o=A(e,`pointercancel`,()=>{n.pendingTouchOutside=!1}),s=A(t,`blur`,()=>{X(n,e=>e.closeOnClickOutside)&&(n.pendingTouchOutside=!1,r(),n.pendingIframeBlur=t.setTimeout(()=>{n.pendingIframeBlur=null;let r=X(n,e=>e.closeOnClickOutside);if(!r)return;let i=t.HTMLIFrameElement,a=e.activeElement;!i||!(a instanceof i)||r.isInside(a)||r.onDismiss()},0))}),c=A(e,`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=e.target,r=X(n,e=>e.closeOnEscape&&e.isInside(t))??X(n,e=>e.closeOnEscape);r&&(r.preventEscapeDefault&&e.preventDefault(),r.onDismiss())});return n.cleanup=()=>{i(),a(),o(),s(),c(),r(),n.pendingTouchOutside=!1,n.layers.length=0},n},ve=e=>{let t=J.get(e);if(t)return t;let n=_e(e);return J.set(e,n),n};function Z(e){let t=e.root.ownerDocument??document,n=ve(t),r={isOpen:e.isOpen,onDismiss:e.onDismiss,isInside:e.isInside??(t=>w(e.root,t)),closeOnClickOutside:e.closeOnClickOutside??!0,closeOnEscape:e.closeOnEscape??!0,preventEscapeDefault:e.preventEscapeDefault??!0,wasOpen:!1,openOrder:0};return Y(n,r)&&(r.wasOpen=!0),n.layers.push(r),()=>{let e=n.layers.indexOf(r);e!==-1&&n.layers.splice(e,1),n.layers.length===0&&(n.cleanup(),J.delete(t))}}function ye(e){let t=e.enabled??!0,n=e.wrapperSlot,r=e.container,i=e.mountTarget??r??e.content,a=e.state??{originalParent:null,originalNextSibling:null,portaled:!1},o=e.root.ownerDocument??document,s=null,c=()=>{if(s)return s;let e=o.createElement(`div`);return n&&(e.setAttribute(`data-slot`,n),e.style.isolation=`isolate`,e.style.zIndex=`50`),s=e,e},l=()=>{if(a.portaled)return;let t=e.content.parentNode;if(!t)return;let n=c();t.insertBefore(n,e.content),n.appendChild(e.content),E(n,e.root,a)},u=()=>{a.portaled||i.isConnected&&E(i,e.root,a)},d=()=>{if(!a.portaled)return;let t=s;if(!t)return;D(t,a);let n=t.parentNode;n&&n.isConnected?(n.insertBefore(e.content,t),t.remove()):e.content.remove()},f=()=>{a.portaled&&D(i,a)};return{state:a,get container(){return r||(t&&n&&a.portaled&&s?s:e.content)},mount:()=>{if(t){if(r||e.mountTarget){u();return}n?l():E(e.content,e.root,a)}},restore:()=>{if(t){if(r||e.mountTarget){f();return}n?d():D(e.content,a)}},cleanup:()=>{if(t){if(r||e.mountTarget){f();return}n?d():D(e.content,a)}}}}const Q=e=>{let t=e.trim().toLowerCase();if(!t)return 0;if(t.endsWith(`ms`)){let e=Number(t.slice(0,-2).trim());return Number.isFinite(e)?e:0}if(t.endsWith(`s`)){let e=Number(t.slice(0,-1).trim());return Number.isFinite(e)?e*1e3:0}let n=Number(t);return Number.isFinite(n)?n:0},$=(e,t)=>{let n=e.split(`,`),r=t.split(`,`),i=Math.max(n.length,r.length),a=0;for(let e=0;e<i;e++){let t=Q(n[e]??n[n.length-1]??`0`),i=Q(r[e]??r[r.length-1]??`0`);a=Math.max(a,t+i)}return a},be=e=>{let t=getComputedStyle(e),n=$(t.transitionDuration,t.transitionDelay),r=$(t.animationDuration,t.animationDelay);return Math.max(n,r)};function xe(e){let t=e.win??window,n=!1,r=null,i=null,a=null,o=null,s=[],c=()=>{a!==null&&(t.cancelAnimationFrame(a),a=null),o!==null&&(t.clearTimeout(o),o=null),s.forEach(e=>e()),s=[]},l=()=>{c(),n=!1,e.element.removeAttribute(`data-ending-style`)},u=()=>{r!==null&&(t.cancelAnimationFrame(r),r=null),i!==null&&(t.cancelAnimationFrame(i),i=null),e.element.removeAttribute(`data-starting-style`)},d=()=>{n&&(c(),n=!1,e.element.removeAttribute(`data-ending-style`),e.onExitComplete())};return{get isExiting(){return n},enter:()=>{l(),u(),e.element.setAttribute(`data-starting-style`,``),r=t.requestAnimationFrame(()=>{r=null,i=t.requestAnimationFrame(()=>{i=null,e.element.removeAttribute(`data-starting-style`)})})},exit:()=>{l(),u(),n=!0,e.element.setAttribute(`data-ending-style`,``);let r=be(e.element);if(r>0){let n=t=>{t.target===e.element&&d()};e.element.addEventListener(`transitionend`,n),e.element.addEventListener(`animationend`,n),s.push(()=>e.element.removeEventListener(`transitionend`,n)),s.push(()=>e.element.removeEventListener(`animationend`,n)),o=t.setTimeout(()=>{o=null,d()},Math.ceil(r)+50)}else a=t.requestAnimationFrame(()=>{a=null,d()})},cleanup:()=>{l(),u()}}}exports.clearRootBinding=u,exports.composeHandlers=ce,exports.computeFloatingPosition=de,exports.computeFloatingTransformOrigin=B,exports.containsWithPortals=w,exports.createDismissLayer=Z,exports.createPortalLifecycle=ye,exports.createPositionSync=ge,exports.createPresenceLifecycle=xe,exports.emit=se,exports.ensureId=k,exports.ensureItemVisibleInContainer=fe,exports.focusElement=H,exports.getDataBool=b,exports.getDataEnum=te,exports.getDataNumber=x,exports.getDataString=ee,exports.getFloatingTransformOriginAnchor=z,exports.getPart=e,exports.getParts=t,exports.getRootBinding=s,exports.getRoots=n,exports.hasRootBinding=c,exports.linkLabelledBy=oe,exports.lockScroll=le,exports.measurePopupContentRect=V,exports.on=A,exports.portalToBody=E,exports.restorePortal=D,exports.reuseRootBinding=f,exports.setAria=ae,exports.setRootBinding=l,exports.unlockScroll=P,exports.warnRootBindingOnce=d;
package/dist/index.d.cts CHANGED
@@ -12,9 +12,11 @@ declare const getParts: <T extends Element = Element>(root: Element, slot: strin
12
12
  */
13
13
  declare const getRoots: <T extends Element = Element>(scope: ParentNode, slot: string) => T[];
14
14
  declare function getRootBinding<T>(root: Element, key: string): T | undefined;
15
+ declare function hasRootBinding(root: Element, key: string): boolean;
15
16
  declare function setRootBinding<T>(root: Element, key: string, value: T): T;
16
17
  declare function clearRootBinding<T>(root: Element, key: string, value?: T): boolean;
17
18
  declare function warnRootBindingOnce(root: Element, key: string, message: string): void;
19
+ declare function reuseRootBinding<T>(root: Element, key: string, message: string): T | undefined;
18
20
  /**
19
21
  * Parse a boolean data attribute.
20
22
  * - Present with no value, "true", "1", "yes" → true
@@ -224,4 +226,4 @@ interface PresenceLifecycleController {
224
226
  }
225
227
  declare function createPresenceLifecycle(options: PresenceLifecycleOptions): PresenceLifecycleController;
226
228
  //#endregion
227
- export { type ComputeFloatingPositionInput, type ComputeFloatingTransformOriginInput, type DismissLayerOptions, type FloatingPosition, type FloatingTransformOriginAnchor, type PopupAlign, type PopupPlacementOptions, type PopupSide, type PortalLifecycleController, type PortalLifecycleOptions, type PortalState, type PositionSyncController, type PositionSyncOptions, type PresenceLifecycleController, type PresenceLifecycleOptions, clearRootBinding, composeHandlers, computeFloatingPosition, computeFloatingTransformOrigin, containsWithPortals, createDismissLayer, createPortalLifecycle, createPositionSync, createPresenceLifecycle, emit, ensureId, ensureItemVisibleInContainer, focusElement, getDataBool, getDataEnum, getDataNumber, getDataString, getFloatingTransformOriginAnchor, getPart, getParts, getRootBinding, getRoots, linkLabelledBy, lockScroll, measurePopupContentRect, on, portalToBody, restorePortal, setAria, setRootBinding, unlockScroll, warnRootBindingOnce };
229
+ export { type ComputeFloatingPositionInput, type ComputeFloatingTransformOriginInput, type DismissLayerOptions, type FloatingPosition, type FloatingTransformOriginAnchor, type PopupAlign, type PopupPlacementOptions, type PopupSide, type PortalLifecycleController, type PortalLifecycleOptions, type PortalState, type PositionSyncController, type PositionSyncOptions, type PresenceLifecycleController, type PresenceLifecycleOptions, clearRootBinding, composeHandlers, computeFloatingPosition, computeFloatingTransformOrigin, containsWithPortals, createDismissLayer, createPortalLifecycle, createPositionSync, createPresenceLifecycle, emit, ensureId, ensureItemVisibleInContainer, focusElement, getDataBool, getDataEnum, getDataNumber, getDataString, getFloatingTransformOriginAnchor, getPart, getParts, getRootBinding, getRoots, hasRootBinding, linkLabelledBy, lockScroll, measurePopupContentRect, on, portalToBody, restorePortal, reuseRootBinding, setAria, setRootBinding, unlockScroll, warnRootBindingOnce };
package/dist/index.d.ts CHANGED
@@ -12,9 +12,11 @@ declare const getParts: <T extends Element = Element>(root: Element, slot: strin
12
12
  */
13
13
  declare const getRoots: <T extends Element = Element>(scope: ParentNode, slot: string) => T[];
14
14
  declare function getRootBinding<T>(root: Element, key: string): T | undefined;
15
+ declare function hasRootBinding(root: Element, key: string): boolean;
15
16
  declare function setRootBinding<T>(root: Element, key: string, value: T): T;
16
17
  declare function clearRootBinding<T>(root: Element, key: string, value?: T): boolean;
17
18
  declare function warnRootBindingOnce(root: Element, key: string, message: string): void;
19
+ declare function reuseRootBinding<T>(root: Element, key: string, message: string): T | undefined;
18
20
  /**
19
21
  * Parse a boolean data attribute.
20
22
  * - Present with no value, "true", "1", "yes" → true
@@ -224,4 +226,4 @@ interface PresenceLifecycleController {
224
226
  }
225
227
  declare function createPresenceLifecycle(options: PresenceLifecycleOptions): PresenceLifecycleController;
226
228
  //#endregion
227
- export { type ComputeFloatingPositionInput, type ComputeFloatingTransformOriginInput, type DismissLayerOptions, type FloatingPosition, type FloatingTransformOriginAnchor, type PopupAlign, type PopupPlacementOptions, type PopupSide, type PortalLifecycleController, type PortalLifecycleOptions, type PortalState, type PositionSyncController, type PositionSyncOptions, type PresenceLifecycleController, type PresenceLifecycleOptions, clearRootBinding, composeHandlers, computeFloatingPosition, computeFloatingTransformOrigin, containsWithPortals, createDismissLayer, createPortalLifecycle, createPositionSync, createPresenceLifecycle, emit, ensureId, ensureItemVisibleInContainer, focusElement, getDataBool, getDataEnum, getDataNumber, getDataString, getFloatingTransformOriginAnchor, getPart, getParts, getRootBinding, getRoots, linkLabelledBy, lockScroll, measurePopupContentRect, on, portalToBody, restorePortal, setAria, setRootBinding, unlockScroll, warnRootBindingOnce };
229
+ export { type ComputeFloatingPositionInput, type ComputeFloatingTransformOriginInput, type DismissLayerOptions, type FloatingPosition, type FloatingTransformOriginAnchor, type PopupAlign, type PopupPlacementOptions, type PopupSide, type PortalLifecycleController, type PortalLifecycleOptions, type PortalState, type PositionSyncController, type PositionSyncOptions, type PresenceLifecycleController, type PresenceLifecycleOptions, clearRootBinding, composeHandlers, computeFloatingPosition, computeFloatingTransformOrigin, containsWithPortals, createDismissLayer, createPortalLifecycle, createPositionSync, createPresenceLifecycle, emit, ensureId, ensureItemVisibleInContainer, focusElement, getDataBool, getDataEnum, getDataNumber, getDataString, getFloatingTransformOriginAnchor, getPart, getParts, getRootBinding, getRoots, hasRootBinding, linkLabelledBy, lockScroll, measurePopupContentRect, on, portalToBody, restorePortal, reuseRootBinding, setAria, setRootBinding, unlockScroll, warnRootBindingOnce };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=Symbol.for(`data-slot.root-bindings`),i=Symbol.for(`data-slot.root-binding-warnings`),a=(e,t=!1)=>{let n=e,i=n[r];return!i&&t&&(i=new Map,n[r]=i),i},o=(e,t=!1)=>{let n=e,r=n[i];return!r&&t&&(r=new Set,n[i]=r),r};function s(e,t){return a(e)?.get(t)}function c(e,t,n){return a(e,!0).set(t,n),n}function l(e,t,n){let i=a(e);return!i?.has(t)||arguments.length>=3&&i.get(t)!==n?!1:(i.delete(t),i.size===0&&delete e[r],!0)}function u(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=o(e,!0);r.has(t)||(r.add(t),console.warn(n))}const d=new WeakMap;function f(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=d.get(e);r||(r=new Set,d.set(e,r)),!r.has(t)&&(r.add(t),console.warn(`[@data-slot] ${n}`))}function p(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function m(e,t){for(let n of p(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function h(e,t){return p(t).some(t=>e.hasAttribute(t))}const g=new Set([``,`true`,`1`,`yes`]),_=new Set([`false`,`0`,`no`]);function v(e,t){if(!h(e,t))return;let n=m(e,t);if(n===null)return;let r=n.toLowerCase();if(g.has(r))return!0;if(_.has(r))return!1;f(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function y(e,t){let n=m(e,t);if(n===null||n===``)return;let r=Number(n);if(Number.isNaN(r)||!Number.isFinite(r)){f(e,t,`Invalid number value "${n}" for data-${t}.`);return}return r}function b(e,t){if(h(e,t))return m(e,t)??void 0}function x(e,t,n){let r=m(e,t);if(r!==null){if(n.includes(r))return r;f(e,t,`Invalid value "${r}" for data-${t}. Expected one of: ${n.join(`, `)}.`)}}const S=new WeakMap,C=Symbol.for(`data-slot.portal-owner`),w=e=>e[C]??S.get(e),ee=(e,t)=>{S.set(e,t),e[C]=t},te=e=>{S.delete(e),delete e[C]};function T(e,t){return E(e,t,new Set)}function E(e,t,n){if(!t)return!1;let r=t instanceof Element?t:t.parentElement;if(!r)return!1;if(e.contains(r))return!0;let i=r;for(;i;){let t=w(i);if(t&&!n.has(t)&&(n.add(t),E(e,t,n)))return!0;i=i.parentElement}return!1}function D(e,t,n){if(n.portaled)return;let r=(t.ownerDocument??document)?.body;r&&(n.originalParent=e.parentNode,n.originalNextSibling=e.nextSibling,ee(e,t),r.appendChild(e),n.portaled=!0)}function O(e,t){if(!t.portaled)return;te(e);let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.portaled=!1,t.originalParent=null,t.originalNextSibling=null}let k=0;const A=(e,t)=>e.id||=`${t}-${++k}`,ne=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},re=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,A(t,`title`)),n&&e.setAttribute(`aria-describedby`,A(n,`desc`))};function j(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const M=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),N=(...e)=>t=>{for(let n of e){if(t.defaultPrevented)break;n?.(t)}};let P=0,F=``,I=``;function ie(){if(P===0){let e=document.documentElement;F=e.style.overflow,I=e.style.scrollbarGutter,e.style.overflow=`hidden`,e.style.scrollbarGutter=`stable`}P++}function ae(){if(P=Math.max(0,P-1),P===0){let e=document.documentElement;e.style.overflow=F,e.style.scrollbarGutter=I}}const oe=[`top`,`right`,`bottom`,`left`],L=e=>{let t=window.visualViewport,n=e.viewportWidth??t?.width,r=e.viewportHeight??t?.height;if(n==null||r==null)throw Error(`computeFloatingPosition requires window.visualViewport when viewport dimensions are not provided`);return{x:t?.offsetLeft??0,y:t?.offsetTop??0,width:n,height:r}},R=(e,t,n,r,i,a)=>{let o=0,s=0;return e===`top`?s=n.top-r.height-i:e===`bottom`?s=n.bottom+i:o=e===`left`?n.left-r.width-i:n.right+i,e===`top`||e===`bottom`?o=t===`start`?n.left+a:t===`center`?n.left+n.width/2-r.width/2+a:n.right-r.width-a:s=t===`start`?n.top+a:t===`center`?n.top+n.height/2-r.height/2+a:n.bottom-r.height-a,{x:o,y:s}},z=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},B=(e,t,n)=>{let r=z(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}},V=e=>{let t=B(e.side,e.align,e.anchorRect);return`${t.x-e.popupX}px ${t.y-e.popupY}px`};function H(e){let t=e.getBoundingClientRect(),n=e.offsetWidth>0?e.offsetWidth:t.width,r=e.offsetHeight>0?e.offsetHeight:t.height;return{top:t.top,left:t.left,right:t.left+n,bottom:t.top+r,width:n,height:r}}const U=e=>{if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}},W=(e,t,n,r,i)=>{let a=r.x+i,o=r.x+r.width-i,s=r.y+i,c=r.y+r.height-i;return e===`top`?Math.max(0,s-t.y):e===`bottom`?Math.max(0,t.y+n.height-c):e===`left`?Math.max(0,a-t.x):Math.max(0,t.x+n.width-o)},G=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),K=(e,t,n,r)=>t>n&&e<r,se=e=>e===`top`||e===`bottom`;function ce(e){let t=L(e),n=e.allowedSides?.length?[...new Set(e.allowedSides)]:[...oe],r=n.includes(e.side)?e.side:n[0],i=r,a=R(i,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset);if(e.avoidCollisions){let o=t.x+e.collisionPadding;t.x+t.width-e.collisionPadding;let s=t.y+e.collisionPadding;t.y+t.height-e.collisionPadding;let c=K(e.anchorRect.left,e.anchorRect.right,t.x,t.x+t.width),l=K(e.anchorRect.top,e.anchorRect.bottom,t.y,t.y+t.height);if(se(r)?l:c){let o=[r,...n.filter(e=>e!==r)],s=i,c=a,l=1/0;for(let n of o){let r=R(n,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset),i=W(n,r,e.contentRect,t,e.collisionPadding);if(i<=0){s=n,c=r,l=i;break}i<l&&(s=n,c=r,l=i)}i=s,a=c}let u=t.x+t.width-e.contentRect.width-e.collisionPadding,d=t.y+t.height-e.contentRect.height-e.collisionPadding;c&&(a.x=G(a.x,o,u)),l&&(a.y=G(a.y,s,d))}return{x:a.x,y:a.y,side:i,align:e.align}}function le(e,t,n=4){if(t.clientHeight<=0)return;let r=Math.max(0,t.scrollHeight-t.clientHeight);if(r<=0)return;let i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=i.top-a.top+t.scrollTop,s=o+i.height,c=t.scrollTop+n,l=t.scrollTop+t.clientHeight-n,u=t.scrollTop;o<c?u=o-n:s>l&&(u=s-t.clientHeight+n),u=Math.min(Math.max(u,0),r),u!==t.scrollTop&&(t.scrollTop=u)}const q=e=>({x:e.x,y:e.y,width:e.width,height:e.height}),J=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,ue=e=>{let t=getComputedStyle(e),n=`${t.overflow}${t.overflowX}${t.overflowY}`;return/(auto|scroll|overlay)/.test(n)},de=(e,t)=>{let n=new Set([e]),r=e.parentNode;for(;r;){if(r instanceof Element){ue(r)&&n.add(r),r=r.parentNode;continue}if(r instanceof Document){r.scrollingElement&&n.add(r.scrollingElement),n.add(r),r.defaultView&&(n.add(r.defaultView),r.defaultView.visualViewport&&n.add(r.defaultView.visualViewport));break}r=null}return n.add(t),t.visualViewport&&n.add(t.visualViewport),[...n]},fe=(e,t,n)=>{let r=null,i=null,a=()=>{i!==null&&(n.clearTimeout(i),i=null),r?.disconnect(),r=null},o=(s=!1,c=1)=>{a();let l=e.getBoundingClientRect();if(s||t(),!l.width||!l.height)return;let u=e.ownerDocument.documentElement,d=Math.floor(l.top),f=Math.floor(u.clientWidth-(l.left+l.width)),p=Math.floor(u.clientHeight-(l.top+l.height)),m=Math.floor(l.left),h=`${-d}px ${-f}px ${-p}px ${-m}px`,g=Math.max(0,Math.min(1,c))||1,_=!0;r=new IntersectionObserver(t=>{let r=t[0]?.intersectionRatio??1;if(r!==g){if(!_){o();return}r?o(!1,r):i=n.setTimeout(()=>{o(!1,1e-7)},1e3)}if(r===1&&!J(q(l),q(e.getBoundingClientRect()))){o();return}_=!1},{rootMargin:h,threshold:g}),r.observe(e)};return o(!0),a};function pe(e){let t=e.win??window,n=e.isActive??(()=>!0),r=e.observedElements??[],i=e.ancestorScroll??!0,a=e.ancestorResize??!0,o=e.elementResize??typeof ResizeObserver<`u`,s=e.layoutShift??!1,c=e.animationFrame??!1,l=null,u=null,d=!1,f=null,p=null,m=[],h=()=>{l===null&&(l=t.requestAnimationFrame(()=>{l=null,n()&&e.onUpdate()}))},g=()=>h(),_=t=>{e.ignoreScrollTarget?.(t.target)||h()},v=()=>{let e=new Set,n=r.length?r:[];if(n.length===0)return e.add(t),t.visualViewport&&e.add(t.visualViewport),[...e];for(let r of n)for(let n of de(r,t))e.add(n);return[...e]},y=e=>{let n=new Set([t]);t.visualViewport&&n.add(t.visualViewport);for(let r of e)(r===t||r===t.visualViewport)&&n.add(r);return[...n]};return{start:()=>{if(d)return;d=!0;let e=v(),n=y(e);if(i)for(let t of e)t.addEventListener(`scroll`,_,{passive:!0}),m.push(()=>t.removeEventListener(`scroll`,_));if(a)for(let e of n)e.addEventListener(`resize`,g),m.push(()=>e.removeEventListener(`resize`,g));if(o&&typeof ResizeObserver<`u`){f=new ResizeObserver(g);for(let e of r)f.observe(e)}let l=r[0]??null;if(s&&l&&typeof IntersectionObserver<`u`&&(p=fe(l,h,t)),c&&l){let e=q(l.getBoundingClientRect()),n=()=>{if(!d)return;let r=q(l.getBoundingClientRect());J(e,r)||h(),e=r,u=t.requestAnimationFrame(n)};u=t.requestAnimationFrame(n)}},stop:()=>{d&&(d=!1,l!==null&&(t.cancelAnimationFrame(l),l=null),u!==null&&(t.cancelAnimationFrame(u),u=null),m.forEach(e=>e()),m=[],f?.disconnect(),f=null,p?.(),p=null)},update:h}}const Y=new WeakMap,X=(e,t)=>{let n=t.isOpen();return n&&!t.wasOpen&&(e.openSequence+=1,t.openOrder=e.openSequence),t.wasOpen=n,n},Z=(e,t)=>{let n=null;for(let r of e.layers)X(e,r)&&(t&&!t(r)||(!n||r.openOrder>n.openOrder)&&(n=r));return n},me=e=>{let t=e.defaultView??window,n={layers:[],openSequence:0,pendingTouchOutside:!1,pendingIframeBlur:null,cleanup:()=>{}},r=()=>{n.pendingIframeBlur!=null&&(t.clearTimeout(n.pendingIframeBlur),n.pendingIframeBlur=null)},i=j(e,`pointerdown`,e=>{let t=e.target,r=Z(n);if(!r||!r.closeOnClickOutside||r.isInside(t)){n.pendingTouchOutside=!1;return}if(e.pointerType===`touch`){n.pendingTouchOutside=!0;return}n.pendingTouchOutside=!1,r.onDismiss()}),a=j(e,`click`,e=>{if(!n.pendingTouchOutside)return;n.pendingTouchOutside=!1;let t=e.target,r=Z(n);!r||!r.closeOnClickOutside||r.isInside(t)||r.onDismiss()}),o=j(e,`pointercancel`,()=>{n.pendingTouchOutside=!1}),s=j(t,`blur`,()=>{Z(n,e=>e.closeOnClickOutside)&&(n.pendingTouchOutside=!1,r(),n.pendingIframeBlur=t.setTimeout(()=>{n.pendingIframeBlur=null;let r=Z(n,e=>e.closeOnClickOutside);if(!r)return;let i=t.HTMLIFrameElement,a=e.activeElement;!i||!(a instanceof i)||r.isInside(a)||r.onDismiss()},0))}),c=j(e,`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=e.target,r=Z(n,e=>e.closeOnEscape&&e.isInside(t))??Z(n,e=>e.closeOnEscape);r&&(r.preventEscapeDefault&&e.preventDefault(),r.onDismiss())});return n.cleanup=()=>{i(),a(),o(),s(),c(),r(),n.pendingTouchOutside=!1,n.layers.length=0},n},he=e=>{let t=Y.get(e);if(t)return t;let n=me(e);return Y.set(e,n),n};function ge(e){let t=e.root.ownerDocument??document,n=he(t),r={isOpen:e.isOpen,onDismiss:e.onDismiss,isInside:e.isInside??(t=>T(e.root,t)),closeOnClickOutside:e.closeOnClickOutside??!0,closeOnEscape:e.closeOnEscape??!0,preventEscapeDefault:e.preventEscapeDefault??!0,wasOpen:!1,openOrder:0};return X(n,r)&&(r.wasOpen=!0),n.layers.push(r),()=>{let e=n.layers.indexOf(r);e!==-1&&n.layers.splice(e,1),n.layers.length===0&&(n.cleanup(),Y.delete(t))}}function _e(e){let t=e.enabled??!0,n=e.wrapperSlot,r=e.container,i=e.mountTarget??r??e.content,a=e.state??{originalParent:null,originalNextSibling:null,portaled:!1},o=e.root.ownerDocument??document,s=null,c=()=>{if(s)return s;let e=o.createElement(`div`);return n&&(e.setAttribute(`data-slot`,n),e.style.isolation=`isolate`,e.style.zIndex=`50`),s=e,e},l=()=>{if(a.portaled)return;let t=e.content.parentNode;if(!t)return;let n=c();t.insertBefore(n,e.content),n.appendChild(e.content),D(n,e.root,a)},u=()=>{a.portaled||i.isConnected&&D(i,e.root,a)},d=()=>{if(!a.portaled)return;let t=s;if(!t)return;O(t,a);let n=t.parentNode;n&&n.isConnected?(n.insertBefore(e.content,t),t.remove()):e.content.remove()},f=()=>{a.portaled&&O(i,a)};return{state:a,get container(){return r||(t&&n&&a.portaled&&s?s:e.content)},mount:()=>{if(t){if(r||e.mountTarget){u();return}n?l():D(e.content,e.root,a)}},restore:()=>{if(t){if(r||e.mountTarget){f();return}n?d():O(e.content,a)}},cleanup:()=>{if(t){if(r||e.mountTarget){f();return}n?d():O(e.content,a)}}}}const Q=e=>{let t=e.trim().toLowerCase();if(!t)return 0;if(t.endsWith(`ms`)){let e=Number(t.slice(0,-2).trim());return Number.isFinite(e)?e:0}if(t.endsWith(`s`)){let e=Number(t.slice(0,-1).trim());return Number.isFinite(e)?e*1e3:0}let n=Number(t);return Number.isFinite(n)?n:0},$=(e,t)=>{let n=e.split(`,`),r=t.split(`,`),i=Math.max(n.length,r.length),a=0;for(let e=0;e<i;e++){let t=Q(n[e]??n[n.length-1]??`0`),i=Q(r[e]??r[r.length-1]??`0`);a=Math.max(a,t+i)}return a},ve=e=>{let t=getComputedStyle(e),n=$(t.transitionDuration,t.transitionDelay),r=$(t.animationDuration,t.animationDelay);return Math.max(n,r)};function ye(e){let t=e.win??window,n=!1,r=null,i=null,a=null,o=null,s=[],c=()=>{a!==null&&(t.cancelAnimationFrame(a),a=null),o!==null&&(t.clearTimeout(o),o=null),s.forEach(e=>e()),s=[]},l=()=>{c(),n=!1,e.element.removeAttribute(`data-ending-style`)},u=()=>{r!==null&&(t.cancelAnimationFrame(r),r=null),i!==null&&(t.cancelAnimationFrame(i),i=null),e.element.removeAttribute(`data-starting-style`)},d=()=>{n&&(c(),n=!1,e.element.removeAttribute(`data-ending-style`),e.onExitComplete())};return{get isExiting(){return n},enter:()=>{l(),u(),e.element.setAttribute(`data-starting-style`,``),r=t.requestAnimationFrame(()=>{r=null,i=t.requestAnimationFrame(()=>{i=null,e.element.removeAttribute(`data-starting-style`)})})},exit:()=>{l(),u(),n=!0,e.element.setAttribute(`data-ending-style`,``);let r=ve(e.element);if(r>0){let n=t=>{t.target===e.element&&d()};e.element.addEventListener(`transitionend`,n),e.element.addEventListener(`animationend`,n),s.push(()=>e.element.removeEventListener(`transitionend`,n)),s.push(()=>e.element.removeEventListener(`animationend`,n)),o=t.setTimeout(()=>{o=null,d()},Math.ceil(r)+50)}else a=t.requestAnimationFrame(()=>{a=null,d()})},cleanup:()=>{l(),u()}}}export{l as clearRootBinding,N as composeHandlers,ce as computeFloatingPosition,V as computeFloatingTransformOrigin,T as containsWithPortals,ge as createDismissLayer,_e as createPortalLifecycle,pe as createPositionSync,ye as createPresenceLifecycle,M as emit,A as ensureId,le as ensureItemVisibleInContainer,U as focusElement,v as getDataBool,x as getDataEnum,y as getDataNumber,b as getDataString,B as getFloatingTransformOriginAnchor,e as getPart,t as getParts,s as getRootBinding,n as getRoots,re as linkLabelledBy,ie as lockScroll,H as measurePopupContentRect,j as on,D as portalToBody,O as restorePortal,ne as setAria,c as setRootBinding,ae as unlockScroll,u as warnRootBindingOnce};
1
+ const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],n=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)],r=Symbol.for(`data-slot.root-bindings`),i=Symbol.for(`data-slot.root-binding-warnings`),a=(e,t=!1)=>{let n=e,i=n[r];return!i&&t&&(i=new Map,n[r]=i),i},o=(e,t=!1)=>{let n=e,r=n[i];return!r&&t&&(r=new Set,n[i]=r),r};function s(e,t){return a(e)?.get(t)}function c(e,t){return a(e)?.has(t)??!1}function l(e,t,n){return a(e,!0).set(t,n),n}function u(e,t,n){let i=a(e);return!i?.has(t)||arguments.length>=3&&i.get(t)!==n?!1:(i.delete(t),i.size===0&&delete e[r],!0)}function d(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=o(e,!0);r.has(t)||(r.add(t),console.warn(n))}function f(e,t,n){let r=s(e,t);return r!==void 0&&d(e,t,n),r}const p=new WeakMap;function m(e,t,n){if(typeof process<`u`&&process.env?.NODE_ENV===`production`)return;let r=p.get(e);r||(r=new Set,p.set(e,r)),!r.has(t)&&(r.add(t),console.warn(`[@data-slot] ${n}`))}function h(e){let t=`data-${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}`,n=`data-${e}`;return t===n?[t]:[t,n]}function g(e,t){for(let n of h(t))if(e.hasAttribute(n))return e.getAttribute(n);return null}function _(e,t){return h(t).some(t=>e.hasAttribute(t))}const v=new Set([``,`true`,`1`,`yes`]),y=new Set([`false`,`0`,`no`]);function b(e,t){if(!_(e,t))return;let n=g(e,t);if(n===null)return;let r=n.toLowerCase();if(v.has(r))return!0;if(y.has(r))return!1;m(e,t,`Invalid boolean value "${n}" for data-${t}. Expected: true/false/1/0/yes/no or empty.`)}function x(e,t){let n=g(e,t);if(n===null||n===``)return;let r=Number(n);if(Number.isNaN(r)||!Number.isFinite(r)){m(e,t,`Invalid number value "${n}" for data-${t}.`);return}return r}function ee(e,t){if(_(e,t))return g(e,t)??void 0}function te(e,t,n){let r=g(e,t);if(r!==null){if(n.includes(r))return r;m(e,t,`Invalid value "${r}" for data-${t}. Expected one of: ${n.join(`, `)}.`)}}const S=new WeakMap,C=Symbol.for(`data-slot.portal-owner`),ne=e=>e[C]??S.get(e),re=(e,t)=>{S.set(e,t),e[C]=t},ie=e=>{S.delete(e),delete e[C]};function w(e,t){return T(e,t,new Set)}function T(e,t,n){if(!t)return!1;let r=t instanceof Element?t:t.parentElement;if(!r)return!1;if(e.contains(r))return!0;let i=r;for(;i;){let t=ne(i);if(t&&!n.has(t)&&(n.add(t),T(e,t,n)))return!0;i=i.parentElement}return!1}function E(e,t,n){if(n.portaled)return;let r=(t.ownerDocument??document)?.body;r&&(n.originalParent=e.parentNode,n.originalNextSibling=e.nextSibling,re(e,t),r.appendChild(e),n.portaled=!0)}function D(e,t){if(!t.portaled)return;ie(e);let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.portaled=!1,t.originalParent=null,t.originalNextSibling=null}let O=0;const k=(e,t)=>e.id||=`${t}-${++O}`,ae=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},oe=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,k(t,`title`)),n&&e.setAttribute(`aria-describedby`,k(n,`desc`))};function A(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}const se=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),ce=(...e)=>t=>{for(let n of e){if(t.defaultPrevented)break;n?.(t)}};let j=0,M=``,N=``;function le(){if(j===0){let e=document.documentElement;M=e.style.overflow,N=e.style.scrollbarGutter,e.style.overflow=`hidden`,e.style.scrollbarGutter=`stable`}j++}function P(){if(j=Math.max(0,j-1),j===0){let e=document.documentElement;e.style.overflow=M,e.style.scrollbarGutter=N}}const F=[`top`,`right`,`bottom`,`left`],I=e=>{let t=window.visualViewport,n=e.viewportWidth??t?.width,r=e.viewportHeight??t?.height;if(n==null||r==null)throw Error(`computeFloatingPosition requires window.visualViewport when viewport dimensions are not provided`);return{x:t?.offsetLeft??0,y:t?.offsetTop??0,width:n,height:r}},L=(e,t,n,r,i,a)=>{let o=0,s=0;return e===`top`?s=n.top-r.height-i:e===`bottom`?s=n.bottom+i:o=e===`left`?n.left-r.width-i:n.right+i,e===`top`||e===`bottom`?o=t===`start`?n.left+a:t===`center`?n.left+n.width/2-r.width/2+a:n.right-r.width-a:s=t===`start`?n.top+a:t===`center`?n.top+n.height/2-r.height/2+a:n.bottom-r.height-a,{x:o,y:s}},R=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},z=(e,t,n)=>{let r=R(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}},B=e=>{let t=z(e.side,e.align,e.anchorRect);return`${t.x-e.popupX}px ${t.y-e.popupY}px`};function V(e){let t=e.getBoundingClientRect(),n=e.offsetWidth>0?e.offsetWidth:t.width,r=e.offsetHeight>0?e.offsetHeight:t.height;return{top:t.top,left:t.left,right:t.left+n,bottom:t.top+r,width:n,height:r}}const H=e=>{if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}},U=(e,t,n,r,i)=>{let a=r.x+i,o=r.x+r.width-i,s=r.y+i,c=r.y+r.height-i;return e===`top`?Math.max(0,s-t.y):e===`bottom`?Math.max(0,t.y+n.height-c):e===`left`?Math.max(0,a-t.x):Math.max(0,t.x+n.width-o)},W=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),G=(e,t,n,r)=>t>n&&e<r,ue=e=>e===`top`||e===`bottom`;function de(e){let t=I(e),n=e.allowedSides?.length?[...new Set(e.allowedSides)]:[...F],r=n.includes(e.side)?e.side:n[0],i=r,a=L(i,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset);if(e.avoidCollisions){let o=t.x+e.collisionPadding;t.x+t.width-e.collisionPadding;let s=t.y+e.collisionPadding;t.y+t.height-e.collisionPadding;let c=G(e.anchorRect.left,e.anchorRect.right,t.x,t.x+t.width),l=G(e.anchorRect.top,e.anchorRect.bottom,t.y,t.y+t.height);if(ue(r)?l:c){let o=[r,...n.filter(e=>e!==r)],s=i,c=a,l=1/0;for(let n of o){let r=L(n,e.align,e.anchorRect,e.contentRect,e.sideOffset,e.alignOffset),i=U(n,r,e.contentRect,t,e.collisionPadding);if(i<=0){s=n,c=r,l=i;break}i<l&&(s=n,c=r,l=i)}i=s,a=c}let u=t.x+t.width-e.contentRect.width-e.collisionPadding,d=t.y+t.height-e.contentRect.height-e.collisionPadding;c&&(a.x=W(a.x,o,u)),l&&(a.y=W(a.y,s,d))}return{x:a.x,y:a.y,side:i,align:e.align}}function fe(e,t,n=4){if(t.clientHeight<=0)return;let r=Math.max(0,t.scrollHeight-t.clientHeight);if(r<=0)return;let i=e.getBoundingClientRect(),a=t.getBoundingClientRect(),o=i.top-a.top+t.scrollTop,s=o+i.height,c=t.scrollTop+n,l=t.scrollTop+t.clientHeight-n,u=t.scrollTop;o<c?u=o-n:s>l&&(u=s-t.clientHeight+n),u=Math.min(Math.max(u,0),r),u!==t.scrollTop&&(t.scrollTop=u)}const K=e=>({x:e.x,y:e.y,width:e.width,height:e.height}),q=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,pe=e=>{let t=getComputedStyle(e),n=`${t.overflow}${t.overflowX}${t.overflowY}`;return/(auto|scroll|overlay)/.test(n)},me=(e,t)=>{let n=new Set([e]),r=e.parentNode;for(;r;){if(r instanceof Element){pe(r)&&n.add(r),r=r.parentNode;continue}if(r instanceof Document){r.scrollingElement&&n.add(r.scrollingElement),n.add(r),r.defaultView&&(n.add(r.defaultView),r.defaultView.visualViewport&&n.add(r.defaultView.visualViewport));break}r=null}return n.add(t),t.visualViewport&&n.add(t.visualViewport),[...n]},he=(e,t,n)=>{let r=null,i=null,a=()=>{i!==null&&(n.clearTimeout(i),i=null),r?.disconnect(),r=null},o=(s=!1,c=1)=>{a();let l=e.getBoundingClientRect();if(s||t(),!l.width||!l.height)return;let u=e.ownerDocument.documentElement,d=Math.floor(l.top),f=Math.floor(u.clientWidth-(l.left+l.width)),p=Math.floor(u.clientHeight-(l.top+l.height)),m=Math.floor(l.left),h=`${-d}px ${-f}px ${-p}px ${-m}px`,g=Math.max(0,Math.min(1,c))||1,_=!0;r=new IntersectionObserver(t=>{let r=t[0]?.intersectionRatio??1;if(r!==g){if(!_){o();return}r?o(!1,r):i=n.setTimeout(()=>{o(!1,1e-7)},1e3)}if(r===1&&!q(K(l),K(e.getBoundingClientRect()))){o();return}_=!1},{rootMargin:h,threshold:g}),r.observe(e)};return o(!0),a};function ge(e){let t=e.win??window,n=e.isActive??(()=>!0),r=e.observedElements??[],i=e.ancestorScroll??!0,a=e.ancestorResize??!0,o=e.elementResize??typeof ResizeObserver<`u`,s=e.layoutShift??!1,c=e.animationFrame??!1,l=null,u=null,d=!1,f=null,p=null,m=[],h=()=>{l===null&&(l=t.requestAnimationFrame(()=>{l=null,n()&&e.onUpdate()}))},g=()=>h(),_=t=>{e.ignoreScrollTarget?.(t.target)||h()},v=()=>{let e=new Set,n=r.length?r:[];if(n.length===0)return e.add(t),t.visualViewport&&e.add(t.visualViewport),[...e];for(let r of n)for(let n of me(r,t))e.add(n);return[...e]},y=e=>{let n=new Set([t]);t.visualViewport&&n.add(t.visualViewport);for(let r of e)(r===t||r===t.visualViewport)&&n.add(r);return[...n]};return{start:()=>{if(d)return;d=!0;let e=v(),n=y(e);if(i)for(let t of e)t.addEventListener(`scroll`,_,{passive:!0}),m.push(()=>t.removeEventListener(`scroll`,_));if(a)for(let e of n)e.addEventListener(`resize`,g),m.push(()=>e.removeEventListener(`resize`,g));if(o&&typeof ResizeObserver<`u`){f=new ResizeObserver(g);for(let e of r)f.observe(e)}let l=r[0]??null;if(s&&l&&typeof IntersectionObserver<`u`&&(p=he(l,h,t)),c&&l){let e=K(l.getBoundingClientRect()),n=()=>{if(!d)return;let r=K(l.getBoundingClientRect());q(e,r)||h(),e=r,u=t.requestAnimationFrame(n)};u=t.requestAnimationFrame(n)}},stop:()=>{d&&(d=!1,l!==null&&(t.cancelAnimationFrame(l),l=null),u!==null&&(t.cancelAnimationFrame(u),u=null),m.forEach(e=>e()),m=[],f?.disconnect(),f=null,p?.(),p=null)},update:h}}const J=new WeakMap,Y=(e,t)=>{let n=t.isOpen();return n&&!t.wasOpen&&(e.openSequence+=1,t.openOrder=e.openSequence),t.wasOpen=n,n},X=(e,t)=>{let n=null;for(let r of e.layers)Y(e,r)&&(t&&!t(r)||(!n||r.openOrder>n.openOrder)&&(n=r));return n},_e=e=>{let t=e.defaultView??window,n={layers:[],openSequence:0,pendingTouchOutside:!1,pendingIframeBlur:null,cleanup:()=>{}},r=()=>{n.pendingIframeBlur!=null&&(t.clearTimeout(n.pendingIframeBlur),n.pendingIframeBlur=null)},i=A(e,`pointerdown`,e=>{let t=e.target,r=X(n);if(!r||!r.closeOnClickOutside||r.isInside(t)){n.pendingTouchOutside=!1;return}if(e.pointerType===`touch`){n.pendingTouchOutside=!0;return}n.pendingTouchOutside=!1,r.onDismiss()}),a=A(e,`click`,e=>{if(!n.pendingTouchOutside)return;n.pendingTouchOutside=!1;let t=e.target,r=X(n);!r||!r.closeOnClickOutside||r.isInside(t)||r.onDismiss()}),o=A(e,`pointercancel`,()=>{n.pendingTouchOutside=!1}),s=A(t,`blur`,()=>{X(n,e=>e.closeOnClickOutside)&&(n.pendingTouchOutside=!1,r(),n.pendingIframeBlur=t.setTimeout(()=>{n.pendingIframeBlur=null;let r=X(n,e=>e.closeOnClickOutside);if(!r)return;let i=t.HTMLIFrameElement,a=e.activeElement;!i||!(a instanceof i)||r.isInside(a)||r.onDismiss()},0))}),c=A(e,`keydown`,e=>{if(e.key!==`Escape`||e.defaultPrevented)return;let t=e.target,r=X(n,e=>e.closeOnEscape&&e.isInside(t))??X(n,e=>e.closeOnEscape);r&&(r.preventEscapeDefault&&e.preventDefault(),r.onDismiss())});return n.cleanup=()=>{i(),a(),o(),s(),c(),r(),n.pendingTouchOutside=!1,n.layers.length=0},n},ve=e=>{let t=J.get(e);if(t)return t;let n=_e(e);return J.set(e,n),n};function Z(e){let t=e.root.ownerDocument??document,n=ve(t),r={isOpen:e.isOpen,onDismiss:e.onDismiss,isInside:e.isInside??(t=>w(e.root,t)),closeOnClickOutside:e.closeOnClickOutside??!0,closeOnEscape:e.closeOnEscape??!0,preventEscapeDefault:e.preventEscapeDefault??!0,wasOpen:!1,openOrder:0};return Y(n,r)&&(r.wasOpen=!0),n.layers.push(r),()=>{let e=n.layers.indexOf(r);e!==-1&&n.layers.splice(e,1),n.layers.length===0&&(n.cleanup(),J.delete(t))}}function ye(e){let t=e.enabled??!0,n=e.wrapperSlot,r=e.container,i=e.mountTarget??r??e.content,a=e.state??{originalParent:null,originalNextSibling:null,portaled:!1},o=e.root.ownerDocument??document,s=null,c=()=>{if(s)return s;let e=o.createElement(`div`);return n&&(e.setAttribute(`data-slot`,n),e.style.isolation=`isolate`,e.style.zIndex=`50`),s=e,e},l=()=>{if(a.portaled)return;let t=e.content.parentNode;if(!t)return;let n=c();t.insertBefore(n,e.content),n.appendChild(e.content),E(n,e.root,a)},u=()=>{a.portaled||i.isConnected&&E(i,e.root,a)},d=()=>{if(!a.portaled)return;let t=s;if(!t)return;D(t,a);let n=t.parentNode;n&&n.isConnected?(n.insertBefore(e.content,t),t.remove()):e.content.remove()},f=()=>{a.portaled&&D(i,a)};return{state:a,get container(){return r||(t&&n&&a.portaled&&s?s:e.content)},mount:()=>{if(t){if(r||e.mountTarget){u();return}n?l():E(e.content,e.root,a)}},restore:()=>{if(t){if(r||e.mountTarget){f();return}n?d():D(e.content,a)}},cleanup:()=>{if(t){if(r||e.mountTarget){f();return}n?d():D(e.content,a)}}}}const Q=e=>{let t=e.trim().toLowerCase();if(!t)return 0;if(t.endsWith(`ms`)){let e=Number(t.slice(0,-2).trim());return Number.isFinite(e)?e:0}if(t.endsWith(`s`)){let e=Number(t.slice(0,-1).trim());return Number.isFinite(e)?e*1e3:0}let n=Number(t);return Number.isFinite(n)?n:0},$=(e,t)=>{let n=e.split(`,`),r=t.split(`,`),i=Math.max(n.length,r.length),a=0;for(let e=0;e<i;e++){let t=Q(n[e]??n[n.length-1]??`0`),i=Q(r[e]??r[r.length-1]??`0`);a=Math.max(a,t+i)}return a},be=e=>{let t=getComputedStyle(e),n=$(t.transitionDuration,t.transitionDelay),r=$(t.animationDuration,t.animationDelay);return Math.max(n,r)};function xe(e){let t=e.win??window,n=!1,r=null,i=null,a=null,o=null,s=[],c=()=>{a!==null&&(t.cancelAnimationFrame(a),a=null),o!==null&&(t.clearTimeout(o),o=null),s.forEach(e=>e()),s=[]},l=()=>{c(),n=!1,e.element.removeAttribute(`data-ending-style`)},u=()=>{r!==null&&(t.cancelAnimationFrame(r),r=null),i!==null&&(t.cancelAnimationFrame(i),i=null),e.element.removeAttribute(`data-starting-style`)},d=()=>{n&&(c(),n=!1,e.element.removeAttribute(`data-ending-style`),e.onExitComplete())};return{get isExiting(){return n},enter:()=>{l(),u(),e.element.setAttribute(`data-starting-style`,``),r=t.requestAnimationFrame(()=>{r=null,i=t.requestAnimationFrame(()=>{i=null,e.element.removeAttribute(`data-starting-style`)})})},exit:()=>{l(),u(),n=!0,e.element.setAttribute(`data-ending-style`,``);let r=be(e.element);if(r>0){let n=t=>{t.target===e.element&&d()};e.element.addEventListener(`transitionend`,n),e.element.addEventListener(`animationend`,n),s.push(()=>e.element.removeEventListener(`transitionend`,n)),s.push(()=>e.element.removeEventListener(`animationend`,n)),o=t.setTimeout(()=>{o=null,d()},Math.ceil(r)+50)}else a=t.requestAnimationFrame(()=>{a=null,d()})},cleanup:()=>{l(),u()}}}export{u as clearRootBinding,ce as composeHandlers,de as computeFloatingPosition,B as computeFloatingTransformOrigin,w as containsWithPortals,Z as createDismissLayer,ye as createPortalLifecycle,ge as createPositionSync,xe as createPresenceLifecycle,se as emit,k as ensureId,fe as ensureItemVisibleInContainer,H as focusElement,b as getDataBool,te as getDataEnum,x as getDataNumber,ee as getDataString,z as getFloatingTransformOriginAnchor,e as getPart,t as getParts,s as getRootBinding,n as getRoots,c as hasRootBinding,oe as linkLabelledBy,le as lockScroll,V as measurePopupContentRect,A as on,E as portalToBody,D as restorePortal,f as reuseRootBinding,ae as setAria,l as setRootBinding,P as unlockScroll,d as warnRootBindingOnce};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/core",
3
- "version": "0.2.123",
3
+ "version": "0.2.125",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",