import { Box, Collapse, Fade, Grow, Slide, Zoom } from '@mui/material'; import { PropsWithChildren, forwardRef } from 'react'; type TransitionsProps = PropsWithChildren<{ type?: 'grow' | 'fade' | 'collapse' | 'slide' | 'zoom'; position?: 'top-left' | 'top-right' | 'top' | 'bottom-left' | 'bottom-right' | 'bottom'; direction?: 'up' | 'down' | 'left' | 'right'; }>; const Transitions = forwardRef( ({ children, position = 'top-left', type = 'grow', direction = 'up', ...others }: TransitionsProps, ref) => { let positionSX = { transformOrigin: '0 0 0' }; switch (position) { case 'top-right': positionSX = { transformOrigin: 'top right' }; break; case 'top': positionSX = { transformOrigin: 'top' }; break; case 'bottom-left': positionSX = { transformOrigin: 'bottom left' }; break; case 'bottom-right': positionSX = { transformOrigin: 'bottom right' }; break; case 'bottom': positionSX = { transformOrigin: 'bottom' }; break; case 'top-left': default: positionSX = { transformOrigin: '0 0 0' }; break; } return ( {type === 'grow' && ( {children} )} {type === 'collapse' && ( {children} )} {type === 'fade' && ( {children} )} {type === 'slide' && ( {children} )} {type === 'zoom' && ( {children} )} ); } ); const PopupTransition = forwardRef(function Transition(props, ref) { // @ts-ignore return ; }); export { PopupTransition, Transitions };