import{r as s,b9 as W,j as R,ba as A,bb as I,bc as D,bd as H,be as K,bf as U}from"./index-oAPVDf-r.js";function v(e,o){if(typeof e=="function")return e(o);e!=null&&(e.current=o)}function B(...e){return o=>{let t=!1;const r=e.map(i=>{const n=v(i,o);return!t&&typeof n=="function"&&(t=!0),n});if(t)return()=>{for(let i=0;i{const{width:f,height:m,top:u,left:a,right:p}=h.current;if(o||!n.current||!f||!m)return;const C=t==="left"?`left: ${a}`:`right: ${p}`;n.current.dataset.motionPopId=i;const l=document.createElement("style");g&&(l.nonce=g);const b=r??document.head;return b.appendChild(l),l.sheet&&l.sheet.insertRule(` [data-motion-pop-id="${i}"] { position: absolute !important; width: ${f}px !important; height: ${m}px !important; ${C}px !important; top: ${u}px !important; } `),()=>{b.contains(l)&&b.removeChild(l)}},[o]),R.jsx(G,{isPresent:o,childRef:n,sizeRef:h,children:s.cloneElement(e,{ref:E})})}const V=({children:e,initial:o,isPresent:t,onExitComplete:r,custom:i,presenceAffectsLayout:n,mode:h,anchorX:g,root:E})=>{const f=I(X),m=s.useId();let u=!0,a=s.useMemo(()=>(u=!1,{id:m,initial:o,isPresent:t,custom:i,onExitComplete:p=>{f.set(p,!0);for(const C of f.values())if(!C)return;r&&r()},register:p=>(f.set(p,!1),()=>f.delete(p))}),[t,f,r]);return n&&u&&(a={...a}),s.useMemo(()=>{f.forEach((p,C)=>f.set(C,!1))},[t]),s.useEffect(()=>{!t&&!f.size&&r&&r()},[t]),h==="popLayout"&&(e=R.jsx(T,{isPresent:t,anchorX:g,root:E,children:e})),R.jsx(D.Provider,{value:a,children:e})};function X(){return new Map}const P=e=>e.key||"";function z(e){const o=[];return s.Children.forEach(e,t=>{s.isValidElement(t)&&o.push(t)}),o}const q=({children:e,custom:o,initial:t=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:n="sync",propagate:h=!1,anchorX:g="left",root:E})=>{const[f,m]=H(h),u=s.useMemo(()=>z(e),[e]),a=h&&!f?[]:u.map(P),p=s.useRef(!0),C=s.useRef(u),l=I(()=>new Map),[b,L]=s.useState(u),[x,$]=s.useState(u);K(()=>{p.current=!1,C.current=u;for(let d=0;d{const c=P(d),y=h&&!f?!1:u===x||a.includes(c),j=()=>{if(l.has(c))l.set(c,!0);else return;let k=!0;l.forEach(S=>{S||(k=!1)}),k&&(M==null||M(),$(C.current),h&&(m==null||m()),r&&r())};return R.jsx(V,{isPresent:y,initial:!p.current||t?void 0:!1,custom:o,presenceAffectsLayout:i,mode:n,root:E,onExitComplete:y?void 0:j,anchorX:g,children:d},c)})})};export{q as A};