{"version":3,"file":"withTransition.mjs","sources":["../../../packages/transition/withTransition.tsx"],"sourcesContent":["import {\n  ComponentType,\n  ForwardedRef,\n  forwardRef,\n  ForwardRefExoticComponent,\n  PropsWithoutRef,\n  RefAttributes,\n} from 'react'\nimport { Transition } from 'react-transition-group'\nimport { useMergeRefs } from '../hooks/index.js'\nimport { DEFAULT_DURATION } from './constants.js'\nimport { TransitionWrapperProps, TransitionInnerProps } from './types.js'\n\ntype WrappedProps<T> = Omit<T, keyof TransitionInnerProps> &\n  TransitionWrapperProps\n\nexport function withTransition<\n  P extends TransitionInnerProps,\n  E extends HTMLElement,\n>(\n  Component: ComponentType<P>,\n): ForwardRefExoticComponent<\n  PropsWithoutRef<WrappedProps<P>> & RefAttributes<E>\n> {\n  function Wrapped(\n    {\n      in: state = false,\n      timeout = DEFAULT_DURATION,\n      mountOnEnter = true,\n      unmountOnExit = true,\n      appear = true,\n      enter = true,\n      exit = true,\n      addEndListener,\n      onEnter,\n      onEntering,\n      onEntered,\n      onExit,\n      onExiting,\n      onExited,\n      ...rest\n    }: WrappedProps<P>,\n    externalRef: ForwardedRef<E>,\n  ) {\n    const transitionProps = {\n      in: state,\n      timeout,\n      mountOnEnter,\n      unmountOnExit,\n      appear,\n      enter,\n      exit,\n      addEndListener,\n      onEnter,\n      onEntering,\n      onEntered,\n      onExit,\n      onExiting,\n      onExited,\n    }\n\n    const ref = useMergeRefs([externalRef])\n\n    return (\n      <Transition {...transitionProps} nodeRef={ref}>\n        {(status) => (\n          <Component\n            {...(rest as P)}\n            duration={timeout}\n            transitionStatus={status}\n            ref={ref}\n          />\n        )}\n      </Transition>\n    )\n  }\n\n  return forwardRef(Wrapped)\n}\n"],"names":["withTransition","Component","Wrapped","_ref","externalRef","in","state","timeout","DEFAULT_DURATION","mountOnEnter","unmountOnExit","appear","enter","exit","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","rest","transitionProps","ref","useMergeRefs","_jsx","Transition","nodeRef","children","status","duration","transitionStatus","forwardRef"],"mappings":";;;;;;;;;;;;;;;AAgBO,SAASA,cAAcA,CAI5BC,SAA2B,EAG3B;AACA,EAAA,SAASC,OAAOA,CAAAC,IAAA,EAkBdC,WAA4B,EAC5B;IAAA,IAlBA;MACEC,EAAE,EAAEC,KAAK,GAAG,KAAK;AACjBC,MAAAA,OAAO,GAAGC,gBAAgB;AAC1BC,MAAAA,YAAY,GAAG,IAAI;AACnBC,MAAAA,aAAa,GAAG,IAAI;AACpBC,MAAAA,MAAM,GAAG,IAAI;AACbC,MAAAA,KAAK,GAAG,IAAI;AACZC,MAAAA,IAAI,GAAG,IAAI;MACXC,cAAc;MACdC,OAAO;MACPC,UAAU;MACVC,SAAS;MACTC,MAAM;MACNC,SAAS;MACTC,QAAQ;MACR,GAAGC,IAAAA;AACY,KAAC,GAAAlB,IAAA,CAAA;AAGlB,IAAA,MAAMmB,eAAe,GAAG;AACtBjB,MAAAA,EAAE,EAAEC,KAAK;MACTC,OAAO;MACPE,YAAY;MACZC,aAAa;MACbC,MAAM;MACNC,KAAK;MACLC,IAAI;MACJC,cAAc;MACdC,OAAO;MACPC,UAAU;MACVC,SAAS;MACTC,MAAM;MACNC,SAAS;AACTC,MAAAA,QAAAA;KACD,CAAA;AAED,IAAA,MAAMG,GAAG,GAAGC,YAAY,CAAC,CAACpB,WAAW,CAAC,CAAC,CAAA;IAEvC,oBACEqB,GAAA,CAACC,UAAU,EAAA;AAAA,MAAA,GAAKJ,eAAe;AAAEK,MAAAA,OAAO,EAAEJ,GAAI;AAAAK,MAAAA,QAAA,EAC1CC,MAAM,iBACNJ,GAAA,CAACxB,SAAS,EAAA;AAAA,QAAA,GACHoB,IAAI;AACTS,QAAAA,QAAQ,EAAEvB,OAAQ;AAClBwB,QAAAA,gBAAgB,EAAEF,MAAO;AACzBN,QAAAA,GAAG,EAAEA,GAAAA;OACN,CAAA;AACF,KACS,CAAC,CAAA;AAEjB,GAAA;EAEA,oBAAOS,UAAU,CAAC9B,OAAO,CAAC,CAAA;AAC5B;;;;"}