import React from 'react';
import styled, { css } from 'styled-components';
import type { PropsWithChildren, JSX } from 'react';
import { GenericIcon } from '@redocly/theme/icons/GenericIcon/GenericIcon';
export type BadgeProps = PropsWithChildren<{
deprecated?: boolean;
color?: string;
key?: string;
className?: string;
icon?: string;
}>;
export function Badge({ icon, children, ...props }: BadgeProps): JSX.Element {
return (
{icon ? : null}
{children}
);
}
const BadgeComponent = styled.span`
display: inline-block;
padding: 0 var(--spacing-xs);
vertical-align: middle;
line-height: var(--line-height-base);
color: var(--badge-text-color);
background-color: ${({ color }) => color || 'var(--badge-bg-color)'};
border-radius: var(--badge-border-radius);
margin: 0 0 0 0.5em;
font-size: var(--font-size-base);
font-weight: var(--font-weight-regular);
${({ deprecated }) =>
deprecated &&
css`
color: var(--badge-deprecated-text-color);
background-color: var(--badge-deprecated-bg-color);
border-radius: var(--badge-deprecated-border-radius);
`}
`;
const BadgeIcon = styled(GenericIcon)`
--icon-width: var(--font-size-sm);
--icon-height: var(--font-size-sm);
margin-right: var(--spacing-xxs);
flex-shrink: 0;
vertical-align: middle;
`;