import { css } from '@emotion/react';
import { theme, typography, shadows } from '@expo/styleguide';
import { borderRadius, spacing } from '@expo/styleguide-base';
import type { PropsWithChildren } from 'react';
import { TableHeaders } from './TableHeaders';
import { TableLayout, TextAlign } from './types';
type TableProps = PropsWithChildren<{
headers?: string[];
headersAlign?: TextAlign[];
layout?: TableLayout;
}>;
export const Table = ({
children,
headers = [],
headersAlign,
layout = TableLayout.Auto,
}: TableProps) => (
{headers.length ? (
<>
{children}
>
) : (
children
)}
);
export const tableWrapperStyle = css({
border: `1px solid ${theme.border.default}`,
borderRadius: borderRadius.md,
overflowY: 'hidden',
overflowX: 'auto',
marginBottom: spacing[4],
boxShadow: shadows.xs,
'::-webkit-scrollbar': {
height: 6,
},
'::-webkit-scrollbar-track': {
background: theme.background.default,
borderBottomLeftRadius: borderRadius.md,
borderBottomRightRadius: borderRadius.md,
},
'::-webkit-scrollbar-thumb': {
background: theme.background.element,
borderRadius: borderRadius.md,
':hover': {
background: theme.background.hover,
},
},
});
const tableStyle = css({
...typography.fontSizes[14],
width: '100%',
border: 0,
borderRadius: 0,
marginBottom: 0,
borderCollapse: 'collapse',
color: theme.text.default,
'blockquote div, li, p, strong': {
...typography.fontSizes[14],
},
'blockquote code': {
padding: `0 ${spacing[1]}px`,
},
});