import{r,p as ne,R as C,q as Ee}from"./chunk-WWGJGFF6-CIhJDzEq.js";import{p as le,n as x,a as ie,s as _,Y as B,y as se,o as T,K as ae,A as ye,b as Fe,c as Se,C as w,u as ue,m as Te,t as Re}from"./use-sync-refs-D37Z6vRy.js";function $e(e=0){let[n,t]=r.useState(e),l=r.useCallback(i=>t(i),[]),f=r.useCallback(i=>t(a=>a|i),[]),v=r.useCallback(i=>(n&i)===i,[n]),o=r.useCallback(i=>t(a=>a&~i),[]),c=r.useCallback(i=>t(a=>a^i),[]);return{flags:n,setFlag:l,addFlag:f,hasFlag:v,removeFlag:o,toggleFlag:c}}var we={},te,re;typeof ne<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((te=ne==null?void 0:we)==null?void 0:te.NODE_ENV)==="test"&&typeof((re=Element?.prototype)==null?void 0:re.getAnimations)>"u"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
`)),[]});var Ae=(e=>(e[e.None=0]="None",e[e.Closed=1]="Closed",e[e.Enter=2]="Enter",e[e.Leave=4]="Leave",e))(Ae||{});function xe(e){let n={};for(let t in e)e[t]===!0&&(n[`data-${t}`]="");return n}function Pe(e,n,t,l){let[f,v]=r.useState(t),{hasFlag:o,addFlag:c,removeFlag:i}=$e(e&&f?3:0),a=r.useRef(!1),m=r.useRef(!1),y=le();return x(()=>{var b;if(e){if(t&&v(!0),!n){t&&c(3);return}return(b=l?.start)==null||b.call(l,t),Oe(n,{inFlight:a,prepare(){m.current?m.current=!1:m.current=a.current,a.current=!0,!m.current&&(t?(c(3),i(4)):(c(4),i(2)))},run(){m.current?t?(i(3),c(4)):(i(4),c(3)):t?i(1):c(1)},done(){var u;m.current&&ke(n)||(a.current=!1,i(7),t||v(!1),(u=l?.end)==null||u.call(l,t))}})}},[e,t,n,y]),e?[f,{closed:o(1),enter:o(2),leave:o(4),transition:o(2)||o(4)}]:[t,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function Oe(e,{prepare:n,run:t,done:l,inFlight:f}){let v=ie();return Ne(e,{prepare:n,inFlight:f}),v.nextFrame(()=>{t(),v.requestAnimationFrame(()=>{v.add(He(e,l))})}),v.dispose}function He(e,n){var t,l;let f=ie();if(!e)return f.dispose;let v=!1;f.add(()=>{v=!0});let o=(l=(t=e.getAnimations)==null?void 0:t.call(e).filter(c=>c instanceof CSSTransition))!=null?l:[];return o.length===0?(n(),f.dispose):(Promise.allSettled(o.map(c=>c.finished)).then(()=>{v||n()}),f.dispose)}function Ne(e,{inFlight:n,prepare:t}){if(n!=null&&n.current){t();return}let l=e.style.transition;e.style.transition="none",t(),e.offsetHeight,e.style.transition=l}function ke(e){var n,t;return((t=(n=e.getAnimations)==null?void 0:n.call(e))!=null?t:[]).some(l=>l instanceof CSSTransition&&l.playState!=="finished")}let U=r.createContext(null);U.displayName="OpenClosedContext";var A=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(A||{});function oe(){return r.useContext(U)}function Le({value:e,children:n}){return C.createElement(U.Provider,{value:e},n)}function Be({children:e}){return C.createElement(U.Provider,{value:null},e)}function je(){let e=typeof document>"u";return(n=>n.useSyncExternalStore)(Ee)(()=>()=>{},()=>!1,()=>!e)}function ce(){let e=je(),[n,t]=r.useState(_.isHandoffComplete);return n&&_.isHandoffComplete===!1&&t(!1),r.useEffect(()=>{n!==!0&&t(!0)},[n]),r.useEffect(()=>_.handoff(),[]),e?!1:n}function Ue(){let e=r.useRef(!1);return x(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function de(e){var n;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!Fe((n=e.as)!=null?n:ve)||C.Children.count(e.children)===1}let D=r.createContext(null);D.displayName="TransitionContext";var De=(e=>(e.Visible="visible",e.Hidden="hidden",e))(De||{});function Me(){let e=r.useContext(D);if(e===null)throw new Error("A is used but it is missing a parent or .");return e}function Ie(){let e=r.useContext(M);if(e===null)throw new Error("A is used but it is missing a parent or .");return e}let M=r.createContext(null);M.displayName="NestingContext";function I(e){return"children"in e?I(e.children):e.current.filter(({el:n})=>n.current!==null).filter(({state:n})=>n==="visible").length>0}function fe(e,n){let t=Se(e),l=r.useRef([]),f=Ue(),v=le(),o=T((u,s=w.Hidden)=>{let p=l.current.findIndex(({el:d})=>d===u);p!==-1&&(ue(s,{[w.Unmount](){l.current.splice(p,1)},[w.Hidden](){l.current[p].state="hidden"}}),v.microTask(()=>{var d;!I(l)&&f.current&&((d=t.current)==null||d.call(t))}))}),c=T(u=>{let s=l.current.find(({el:p})=>p===u);return s?s.state!=="visible"&&(s.state="visible"):l.current.push({el:u,state:"visible"}),()=>o(u,w.Unmount)}),i=r.useRef([]),a=r.useRef(Promise.resolve()),m=r.useRef({enter:[],leave:[]}),y=T((u,s,p)=>{i.current.splice(0),n&&(n.chains.current[s]=n.chains.current[s].filter(([d])=>d!==u)),n?.chains.current[s].push([u,new Promise(d=>{i.current.push(d)})]),n?.chains.current[s].push([u,new Promise(d=>{Promise.all(m.current[s].map(([R,P])=>P)).then(()=>d())})]),s==="enter"?a.current=a.current.then(()=>n?.wait.current).then(()=>p(s)):p(s)}),b=T((u,s,p)=>{Promise.all(m.current[s].splice(0).map(([d,R])=>R)).then(()=>{var d;(d=i.current.shift())==null||d()}).then(()=>p(s))});return r.useMemo(()=>({children:l,register:c,unregister:o,onStart:y,onStop:b,wait:a,chains:m}),[c,o,l,y,b,m,a])}let ve=r.Fragment,pe=ye.RenderStrategy;function Ke(e,n){var t,l;let{transition:f=!0,beforeEnter:v,afterEnter:o,beforeLeave:c,afterLeave:i,enter:a,enterFrom:m,enterTo:y,entered:b,leave:u,leaveFrom:s,leaveTo:p,...d}=e,[R,P]=r.useState(null),h=r.useRef(null),S=de(e),$=se(...S?[h,n,P]:n===null?[]:[n]),G=(t=d.unmount)==null||t?w.Unmount:w.Hidden,{show:E,appear:Q,initial:X}=Me(),[F,K]=r.useState(E?"visible":"hidden"),Z=Ie(),{register:N,unregister:k}=Z;x(()=>N(h),[N,h]),x(()=>{if(G===w.Hidden&&h.current){if(E&&F!=="visible"){K("visible");return}return ue(F,{hidden:()=>k(h),visible:()=>N(h)})}},[F,h,N,k,E,G]);let V=ce();x(()=>{if(S&&V&&F==="visible"&&h.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[h,F,V,S]);let he=X&&!Q,J=Q&&E&&X,q=r.useRef(!1),L=fe(()=>{q.current||(K("hidden"),k(h))},Z),W=T(Y=>{q.current=!0;let j=Y?"enter":"leave";L.onStart(h,j,H=>{H==="enter"?v?.():H==="leave"&&c?.()})}),ee=T(Y=>{let j=Y?"enter":"leave";q.current=!1,L.onStop(h,j,H=>{H==="enter"?o?.():H==="leave"&&i?.()}),j==="leave"&&!I(L)&&(K("hidden"),k(h))});r.useEffect(()=>{S&&f||(W(E),ee(E))},[E,S,f]);let ge=!(!f||!S||!V||he),[,g]=Pe(ge,R,E,{start:W,end:ee}),Ce=Te({ref:$,className:((l=Re(d.className,J&&a,J&&m,g.enter&&a,g.enter&&g.closed&&m,g.enter&&!g.closed&&y,g.leave&&u,g.leave&&!g.closed&&s,g.leave&&g.closed&&p,!g.transition&&E&&b))==null?void 0:l.trim())||void 0,...xe(g)}),O=0;F==="visible"&&(O|=A.Open),F==="hidden"&&(O|=A.Closed),E&&F==="hidden"&&(O|=A.Opening),!E&&F==="visible"&&(O|=A.Closing);let be=ae();return C.createElement(M.Provider,{value:L},C.createElement(Le,{value:O},be({ourProps:Ce,theirProps:d,defaultTag:ve,features:pe,visible:F==="visible",name:"Transition.Child"})))}function Ve(e,n){let{show:t,appear:l=!1,unmount:f=!0,...v}=e,o=r.useRef(null),c=de(e),i=se(...c?[o,n]:n===null?[]:[n]);ce();let a=oe();if(t===void 0&&a!==null&&(t=(a&A.Open)===A.Open),t===void 0)throw new Error("A is used but it is missing a `show={true | false}` prop.");let[m,y]=r.useState(t?"visible":"hidden"),b=fe(()=>{t||y("hidden")}),[u,s]=r.useState(!0),p=r.useRef([t]);x(()=>{u!==!1&&p.current[p.current.length-1]!==t&&(p.current.push(t),s(!1))},[p,t]);let d=r.useMemo(()=>({show:t,appear:l,initial:u}),[t,l,u]);x(()=>{t?y("visible"):!I(b)&&o.current!==null&&y("hidden")},[t,b]);let R={unmount:f},P=T(()=>{var $;u&&s(!1),($=e.beforeEnter)==null||$.call(e)}),h=T(()=>{var $;u&&s(!1),($=e.beforeLeave)==null||$.call(e)}),S=ae();return C.createElement(M.Provider,{value:b},C.createElement(D.Provider,{value:d},S({ourProps:{...R,as:r.Fragment,children:C.createElement(me,{ref:i,...R,...v,beforeEnter:P,beforeLeave:h})},theirProps:{},defaultTag:r.Fragment,features:pe,visible:m==="visible",name:"Transition"})))}function qe(e,n){let t=r.useContext(D)!==null,l=oe()!==null;return C.createElement(C.Fragment,null,!t&&l?C.createElement(z,{ref:n,...e}):C.createElement(me,{ref:n,...e}))}let z=B(Ve),me=B(Ke),Ye=B(qe),Ge=Object.assign(z,{Child:Ye,Root:z});export{Ge as K,Pe as N,Ye as O,Le as c,Ue as f,A as i,ce as l,Be as s,oe as u,xe as x};