import{r as e,j as t}from"./jsx-runtime-BnbLqBWP.js";import{P as n,d as r}from"./index-CE9avnvM.js";import{u as s}from"./index-BYVAcnYn.js";import{g as o}from"./index-C4j0XBvN.js";function i(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function u(t){const n=e.useRef(t);return e.useEffect((()=>{n.current=t})),e.useMemo((()=>(...e)=>n.current?.(...e)),[])}var a,c="dismissableLayer.update",d="dismissableLayer.pointerDownOutside",l="dismissableLayer.focusOutside",f=e.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),m=e.forwardRef(((r,o)=>{const{disableOutsidePointerEvents:m=!1,onEscapeKeyDown:p,onPointerDownOutside:y,onFocusOutside:b,onInteractOutside:O,onDismiss:w,...P}=r,g=e.useContext(f),[h,N]=e.useState(null),D=h?.ownerDocument??globalThis?.document,[,L]=e.useState({}),C=s(o,(e=>N(e))),T=Array.from(g.layers),[R]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),M=T.indexOf(R),x=h?T.indexOf(h):-1,S=g.layersWithOutsidePointerEventsDisabled.size>0,j=x>=M,A=function(t,n=globalThis?.document){const r=u(t),s=e.useRef(!1),o=e.useRef((()=>{}));return e.useEffect((()=>{const e=e=>{if(e.target&&!s.current){let t=function(){E(d,r,s,{discrete:!0})};const s={originalEvent:e};"touch"===e.pointerType?(n.removeEventListener("click",o.current),o.current=t,n.addEventListener("click",o.current,{once:!0})):t()}else n.removeEventListener("click",o.current);s.current=!1},t=window.setTimeout((()=>{n.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(t),n.removeEventListener("pointerdown",e),n.removeEventListener("click",o.current)}}),[n,r]),{onPointerDownCapture:()=>s.current=!0}}((e=>{const t=e.target,n=[...g.branches].some((e=>e.contains(t)));j&&!n&&(y?.(e),O?.(e),e.defaultPrevented||w?.())}),D),I=function(t,n=globalThis?.document){const r=u(t),s=e.useRef(!1);return e.useEffect((()=>{const e=e=>{if(e.target&&!s.current){E(l,r,{originalEvent:e},{discrete:!1})}};return n.addEventListener("focusin",e),()=>n.removeEventListener("focusin",e)}),[n,r]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}((e=>{const t=e.target;[...g.branches].some((e=>e.contains(t)))||(b?.(e),O?.(e),e.defaultPrevented||w?.())}),D);return function(t,n=globalThis?.document){const r=u(t);e.useEffect((()=>{const e=e=>{"Escape"===e.key&&r(e)};return n.addEventListener("keydown",e,{capture:!0}),()=>n.removeEventListener("keydown",e,{capture:!0})}),[r,n])}((e=>{x===g.layers.size-1&&(p?.(e),!e.defaultPrevented&&w&&(e.preventDefault(),w()))}),D),e.useEffect((()=>{if(h)return m&&(0===g.layersWithOutsidePointerEventsDisabled.size&&(a=D.body.style.pointerEvents,D.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(h)),g.layers.add(h),v(),()=>{m&&1===g.layersWithOutsidePointerEventsDisabled.size&&(D.body.style.pointerEvents=a)}}),[h,D,m,g]),e.useEffect((()=>()=>{h&&(g.layers.delete(h),g.layersWithOutsidePointerEventsDisabled.delete(h),v())}),[h,g]),e.useEffect((()=>{const e=()=>L({});return document.addEventListener(c,e),()=>document.removeEventListener(c,e)}),[]),t.jsx(n.div,{...P,ref:C,style:{pointerEvents:S?j?"auto":"none":void 0,...r.style},onFocusCapture:i(r.onFocusCapture,I.onFocusCapture),onBlurCapture:i(r.onBlurCapture,I.onBlurCapture),onPointerDownCapture:i(r.onPointerDownCapture,A.onPointerDownCapture)})}));m.displayName="DismissableLayer";var p=e.forwardRef(((r,o)=>{const i=e.useContext(f),u=e.useRef(null),a=s(o,u);return e.useEffect((()=>{const e=u.current;if(e)return i.branches.add(e),()=>{i.branches.delete(e)}}),[i.branches]),t.jsx(n.div,{...r,ref:a})}));function v(){const e=new CustomEvent(c);document.dispatchEvent(e)}function E(e,t,n,{discrete:s}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),s?r(o,i):o.dispatchEvent(i)}p.displayName="DismissableLayerBranch";var y=m,b=p,O=Boolean(globalThis?.document)?e.useLayoutEffect:()=>{},w=e.forwardRef(((r,s)=>{const{container:i,...u}=r,[a,c]=e.useState(!1);O((()=>c(!0)),[]);const d=i||a&&globalThis?.document?.body;return d?o.createPortal(t.jsx(n.div,{...u,ref:s}),d):null}));w.displayName="Portal";var P=t=>{const{present:n,children:r}=t,o=function(t){const[n,r]=e.useState(),s=e.useRef({}),o=e.useRef(t),i=e.useRef("none"),u=t?"mounted":"unmounted",[a,c]=function(t,n){return e.useReducer(((e,t)=>n[e][t]??e),t)}(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return e.useEffect((()=>{const e=g(s.current);i.current="mounted"===a?e:"none"}),[a]),O((()=>{const e=s.current,n=o.current;if(n!==t){const r=i.current,s=g(e);if(t)c("MOUNT");else if("none"===s||"none"===e?.display)c("UNMOUNT");else{c(n&&r!==s?"ANIMATION_OUT":"UNMOUNT")}o.current=t}}),[t,c]),O((()=>{if(n){let e;const t=n.ownerDocument.defaultView??window,r=r=>{const i=g(s.current).includes(r.animationName);if(r.target===n&&i&&(c("ANIMATION_END"),!o.current)){const r=n.style.animationFillMode;n.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=r)}))}},u=e=>{e.target===n&&(i.current=g(s.current))};return n.addEventListener("animationstart",u),n.addEventListener("animationcancel",r),n.addEventListener("animationend",r),()=>{t.clearTimeout(e),n.removeEventListener("animationstart",u),n.removeEventListener("animationcancel",r),n.removeEventListener("animationend",r)}}c("ANIMATION_END")}),[n,c]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:e.useCallback((e=>{e&&(s.current=getComputedStyle(e)),r(e)}),[])}}(n),i="function"==typeof r?r({present:o.isPresent}):e.Children.only(r),u=s(o.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(i));return"function"==typeof r||o.isPresent?e.cloneElement(i,{ref:u}):null};function g(e){return e?.animationName||"none"}function h({prop:t,defaultProp:n,onChange:r=()=>{}}){const[s,o]=function({defaultProp:t,onChange:n}){const r=e.useState(t),[s]=r,o=e.useRef(s),i=u(n);return e.useEffect((()=>{o.current!==s&&(i(s),o.current=s)}),[s,o,i]),r}({defaultProp:n,onChange:r}),i=void 0!==t,a=i?t:s,c=u(r);return[a,e.useCallback((e=>{if(i){const n="function"==typeof e?e(t):e;n!==t&&c(n)}else o(e)}),[i,t,o,c])]}P.displayName="Presence";export{b as B,m as D,P,y as R,w as a,u as b,i as c,O as d,h as u};