import { ReactElement, ReactNode } from 'react';
import styled from 'styled-components';
import { spacing } from '../../../spacing';
import { ThemeColors } from '../../../style/theme';
const Container = styled.div`
display: flex;
flex-direction: row;
flex: 1;
overflow: hidden;
color: ${(props) => props.theme.textPrimary};
`;
const FillAvailableFlexBox = styled.div`
flex: 1;
width: 100%;
box-sizing: border-box;
overflow: hidden;
`;
const sectionDistance = spacing.r2;
const ContextWrapper = styled.div<{
background?: ThemeColors;
}>`
background: ${(props) =>
props.background ? props.theme[props.background] : 'initial'};
height: 2.5rem;
min-height: 2.5rem;
max-height: 2.5rem;
box-sizing: border-box;
display: flex;
align-items: center;
width: 100%;
`;
const ContextContainer = ({
children,
background,
...rest
}: {
background?: ThemeColors;
children: ReactElement | ReactElement[];
}) => (
{children}
);
const OverallSummaryContainer = styled.div<{
noPadding?: boolean;
hasTopMargin?: boolean;
noBottomMargin?: boolean;
background?: ThemeColors;
}>`
background: ${(props) => props.theme[props.background || 'backgroundLevel2']};
min-height: 6rem;
padding: ${({ noPadding }) => (noPadding ? '0' : '0 1rem')};
margin-bottom: ${({ noBottomMargin }) =>
noBottomMargin ? '0' : sectionDistance};
margin-top: ${({ hasTopMargin }) => (hasTopMargin ? '1rem' : '0')};
box-sizing: border-box;
display: flex;
align-items: center;
`;
const OverallSummary = ({
children,
noPadding,
noBottomMargin,
hasTopMargin,
background,
...rest
}: {
children: any;
noPadding?: boolean;
noBottomMargin?: boolean;
hasTopMargin?: boolean;
background?: ThemeColors;
}) => (
{children}
);
const MainContentContainer = styled.div<{
hasPadding?: boolean;
hasTopMargin?: boolean;
background?: ThemeColors;
}>`
display: flex;
flex: 1;
padding: ${(props) => (props.hasPadding ? '1rem' : 'initial')};
margin-top: ${({ hasTopMargin }) => (hasTopMargin ? '1rem' : '0')};
background: ${(props) => props.theme[props.background || 'backgroundLevel3']};
overflow: hidden;
`;
const MainContent = ({
children,
hasPadding,
background,
hasTopMargin,
...rest
}: {
children: ReactNode;
hasPadding?: boolean;
hasTopMargin?: boolean;
background?: ThemeColors;
}) => (
{children}
);
const AppChildrenContainer = styled.div<{
hasPadding?: boolean;
}>`
flex: 1;
display: flex;
flex-direction: column;
padding: ${(props) => (props.hasPadding ? '0 1rem' : 'initial')};
width: 100%;
box-sizing: border-box;
`;
function AppContainer({
children,
sidebarNavigation,
hasPadding,
...rest
}: {
children: ReactElement | ReactElement[];
sidebarNavigation?: ReactElement;
hasPadding?: boolean;
}) {
return (
{sidebarNavigation}
{children}
);
}
AppContainer.ContextContainer = ContextContainer;
AppContainer.OverallSummary = OverallSummary;
AppContainer.MainContent = MainContent;
AppContainer.sectionDistance = sectionDistance;
export { AppContainer };