import { createElement, HTMLAttributes } from 'react';
import { TStyle, useClassnames } from '../../../../hooks/use-classnames';
import { typographyColor } from '../types';
import style from '../index.module.pcss';
export const typographyTitleTags = ['h1', 'h2', 'h3', 'h4'] as const;
export type TTypographyTitleTags = typeof typographyTitleTags[number];
export type TTypographyTitleColor = typeof typographyColor[number];
export interface IProps extends Omit, 'className'> {
readonly className?: TStyle | string,
readonly tagName?: TTypographyTitleTags,
readonly presetColor?: TTypographyTitleColor
}
export const Title = ({ tagName = 'h1', presetColor = 'basic', className, ...attrs }: IProps) => {
const cn = useClassnames(style, className, true);
return createElement(tagName, {
...attrs,
className: cn('typography', {
[`typography_size-${tagName}`]: tagName,
[`typography_color-${presetColor}`]: presetColor,
'typography_no-spacing': typeof tagName === 'string'
})
});
};