import React from 'react';
import styled, { keyframes } from 'styled-components';
import type { JSX, PropsWithChildren } from 'react';
import type { MenuItemsAnimation } from '@redocly/theme/core/types';
export type MenuContainerProps = PropsWithChildren<{
growContent?: boolean;
className?: string;
hidden?: boolean;
animation?: MenuItemsAnimation;
}>;
export function MenuContainer(props: MenuContainerProps): JSX.Element {
return ;
}
const slideInRightAnimation = keyframes`
0% {
transform: translateX(100%)
}
100% {
transform: translateX(0%)
}
`;
const slideInLeftAnimation = keyframes`
0% {
transform: translateX(-100%)
}
100% {
transform: translateX(0%)
}
`;
const MenuContainerComponent = styled.div.attrs(
({ growContent, className, animation }) => ({
growContent: growContent === undefined ? true : growContent,
className,
animation,
}),
)`
animation-name: ${({ animation }) =>
animation === 'slideInRight'
? slideInRightAnimation
: animation === 'slideInLeft'
? slideInLeftAnimation
: 'none'};
animation-fill-mode: forwards;
animation-duration: 0.3s;
animation-timing-function: ease;
position: relative;
overflow-y: auto;
flex-grow: ${({ growContent }) => (growContent ? 1 : 0)};
padding-top: var(--menu-container-padding-top);
display: ${({ hidden }) => (hidden ? 'none' : 'block')};
overscroll-behavior: contain;
`;