{"version":3,"file":"Transition.cjs","names":["useMantineEnv","useTransition","Activity","getTransitionStyles"],"sources":["../../../src/components/Transition/Transition.tsx"],"sourcesContent":["import { Activity } from 'react';\nimport { useMantineEnv } from '../../core';\nimport { getTransitionStyles } from './get-transition-styles/get-transition-styles';\nimport { MantineTransition } from './transitions';\nimport { useTransition } from './use-transition';\n\nexport interface TransitionProps {\n  /** If set, the element is kept in the DOM when hidden. React 19 `Activity` is used to preserve state while the element is not visible. */\n  keepMounted?: boolean;\n\n  /** Transition name or object */\n  transition?: MantineTransition;\n\n  /** Transition duration in ms @default 250 */\n  duration?: number;\n\n  /** Exit transition duration in ms @default 250 */\n  exitDuration?: number;\n\n  /** Transition timing function @default theme.transitionTimingFunction */\n  timingFunction?: string;\n\n  /** Determines whether component should be mounted to the DOM */\n  mounted: boolean;\n\n  /** Render function with transition styles argument */\n  children: (styles: React.CSSProperties) => React.JSX.Element;\n\n  /** Called when exit transition ends */\n  onExited?: () => void;\n\n  /** Called when exit transition starts */\n  onExit?: () => void;\n\n  /** Called when enter transition starts */\n  onEnter?: () => void;\n\n  /** Called when enter transition ends */\n  onEntered?: () => void;\n\n  /** Delay in ms before enter transition starts */\n  enterDelay?: number;\n\n  /** Delay in ms before exit transition starts */\n  exitDelay?: number;\n}\n\nexport type TransitionOverride = Partial<Omit<TransitionProps, 'mounted'>>;\n\nexport function Transition({\n  keepMounted,\n  transition = 'fade',\n  duration = 250,\n  exitDuration = duration,\n  mounted,\n  children,\n  timingFunction = 'ease',\n  onExit,\n  onEntered,\n  onEnter,\n  onExited,\n  enterDelay,\n  exitDelay,\n}: TransitionProps) {\n  const env = useMantineEnv();\n  const { transitionDuration, transitionStatus, transitionTimingFunction } = useTransition({\n    mounted,\n    exitDuration,\n    duration,\n    timingFunction,\n    onExit,\n    onEntered,\n    onEnter,\n    onExited,\n    enterDelay,\n    exitDelay,\n  });\n\n  if (env === 'test') {\n    return mounted ? <>{children({})}</> : keepMounted ? children({ display: 'none' }) : null;\n  }\n\n  if (transitionDuration === 0) {\n    if (keepMounted) {\n      return <Activity mode={mounted ? 'visible' : 'hidden'}>{children({})}</Activity>;\n    }\n    return mounted ? <>{children({})}</> : null;\n  }\n\n  const isExited = transitionStatus === 'exited';\n\n  if (keepMounted) {\n    return (\n      <Activity mode={isExited ? 'hidden' : 'visible'}>\n        {children(\n          isExited\n            ? {}\n            : getTransitionStyles({\n                transition,\n                duration: transitionDuration,\n                state: transitionStatus,\n                timingFunction: transitionTimingFunction,\n              })\n        )}\n      </Activity>\n    );\n  }\n\n  return isExited ? null : (\n    <>\n      {children(\n        getTransitionStyles({\n          transition,\n          duration: transitionDuration,\n          state: transitionStatus,\n          timingFunction: transitionTimingFunction,\n        })\n      )}\n    </>\n  );\n}\n\nTransition.displayName = '@mantine/core/Transition';\n\nexport namespace Transition {\n  export type Props = TransitionProps;\n  export type Override = TransitionOverride;\n}\n"],"mappings":";;;;;;;;AAiDA,SAAgB,WAAW,EACzB,aACA,aAAa,QACb,WAAW,KACX,eAAe,UACf,SACA,UACA,iBAAiB,QACjB,QACA,WACA,SACA,UACA,YACA,aACkB;CAClB,MAAM,MAAMA,wBAAAA,eAAe;CAC3B,MAAM,EAAE,oBAAoB,kBAAkB,6BAA6BC,uBAAAA,cAAc;EACvF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,KAAI,QAAQ,OACV,QAAO,UAAU,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAA,UAAG,SAAS,EAAE,CAAC,EAAI,CAAA,GAAG,cAAc,SAAS,EAAE,SAAS,QAAQ,CAAC,GAAG;AAGvF,KAAI,uBAAuB,GAAG;AAC5B,MAAI,YACF,QAAO,iBAAA,GAAA,kBAAA,KAACC,MAAAA,UAAD;GAAU,MAAM,UAAU,YAAY;aAAW,SAAS,EAAE,CAAC;GAAY,CAAA;AAElF,SAAO,UAAU,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAA,UAAG,SAAS,EAAE,CAAC,EAAI,CAAA,GAAG;;CAGzC,MAAM,WAAW,qBAAqB;AAEtC,KAAI,YACF,QACE,iBAAA,GAAA,kBAAA,KAACA,MAAAA,UAAD;EAAU,MAAM,WAAW,WAAW;YACnC,SACC,WACI,EAAE,GACFC,8BAAAA,oBAAoB;GAClB;GACA,UAAU;GACV,OAAO;GACP,gBAAgB;GACjB,CAAC,CACP;EACQ,CAAA;AAIf,QAAO,WAAW,OAChB,iBAAA,GAAA,kBAAA,KAAA,kBAAA,UAAA,EAAA,UACG,SACCA,8BAAAA,oBAAoB;EAClB;EACA,UAAU;EACV,OAAO;EACP,gBAAgB;EACjB,CAAC,CACH,EACA,CAAA;;AAIP,WAAW,cAAc"}