/** @jsxImportSource @emotion/react */ import { css } from '@emotion/react'; import { ReactNode } from 'react'; import { useTheme } from '../../context/MagicBellThemeContext.js'; import { toRGBA } from '../../lib/color.js'; import { cleanslate } from '../Styled/index.js'; export interface Props { children: ReactNode; } /** * Header for the notification inbox. It renders a "Mark All Read" button, * which invokes the `onAllRead` callback. * * The component must be wrapped in a {@link MagicBellThemeProvider} component. * * @example * Title */ export default function StyledHeader({ children }: Props) { const theme = useTheme(); const { header: headerTheme } = theme; const style = css` align-items: center; background: ${toRGBA(headerTheme.backgroundColor, headerTheme.backgroundOpacity)} !important; color: ${headerTheme.textColor}; display: flex; font-family: ${headerTheme.fontFamily} !important; font-size: ${headerTheme.fontSize} !important; justify-content: space-between; text-align: ${headerTheme.textAlign} !important; text-transform: ${headerTheme.textTransform} !important; padding: ${headerTheme.padding} !important; flex-shrink: 0 !important; border-bottom: ${headerTheme.borderColor ? `1px solid ${headerTheme.borderColor} !important` : undefined}; font-weight: ${headerTheme.fontWeight}; height: ${headerTheme.fontSize} !important; &:first-of-type { border-radius: ${headerTheme.borderRadius} ${headerTheme.borderRadius} 0 0 !important; } &:last-of-type { border-radius: 0 0 ${headerTheme.borderRadius} ${headerTheme.borderRadius}!important; } & button:hover { opacity: 0.8; } & button:active { opacity: 0.9; } & button:focus { outline: none; } & button:focus-visible { outline: 2px ${headerTheme.textColor} auto !important; } `; return
{children}
; }