import type { FunctionComponent, HTMLAttributes, ReactElement, RefAttributes } from 'react';
import type { SpacingProps } from '../../mixins';
import { AsProps } from '../..';
export interface BoldProps {
/**
* Полужирное начертание.
*/
bold?: boolean;
medium?: never | false;
extraBold?: never | false;
}
export interface MediumProps {
/**
* Среднее начертание.
*/
medium?: boolean;
bold?: never | false;
extraBold?: never | false;
}
export interface ExtraBoldProps {
/**
* Жирное начертание.
*/
extraBold?: boolean;
bold?: never | false;
medium?: never | false;
}
type FontWeightProps = MediumProps | BoldProps | ExtraBoldProps;
export type FontProps = {
/**
* Не переносить строки.
*/
noWrap?: boolean;
/**
* Переносить слова.
*/
breakWord?: boolean;
/**
* Кастомный цвет текста.
*/
color?: string;
/**
* Размер текста.
*/
size?: string;
/**
* Делает цифровые значения моноширинным.
*/
isNumeric?: boolean;
/**
* Определяет стиль шрифта как italic
*/
isItalic?: boolean;
} & SpacingProps & FontWeightProps & AsProps & HTMLAttributes & {
as?: keyof AllowedTextHTMLElements;
};
export interface AllowedTextHTMLElements {
div: JSX.IntrinsicElements['div'];
p: JSX.IntrinsicElements['p'];
span: JSX.IntrinsicElements['span'];
i: JSX.IntrinsicElements['i'];
b: JSX.IntrinsicElements['b'];
strong: JSX.IntrinsicElements['strong'];
label: JSX.IntrinsicElements['label'];
h1: JSX.IntrinsicElements['h1'];
h2: JSX.IntrinsicElements['h2'];
h3: JSX.IntrinsicElements['h3'];
h4: JSX.IntrinsicElements['h4'];
h5: JSX.IntrinsicElements['h5'];
h6: JSX.IntrinsicElements['h6'];
legend: JSX.IntrinsicElements['legend'];
ol: JSX.IntrinsicElements['ol'];
ul: JSX.IntrinsicElements['ul'];
li: JSX.IntrinsicElements['li'];
blockquote: JSX.IntrinsicElements['blockquote'];
em: JSX.IntrinsicElements['em'];
small: JSX.IntrinsicElements['small'];
s: JSX.IntrinsicElements['s'];
u: JSX.IntrinsicElements['u'];
mark: JSX.IntrinsicElements['mark'];
sub: JSX.IntrinsicElements['sub'];
sup: JSX.IntrinsicElements['sup'];
code: JSX.IntrinsicElements['code'];
pre: JSX.IntrinsicElements['pre'];
q: JSX.IntrinsicElements['q'];
figcaption: JSX.IntrinsicElements['figcaption'];
address: JSX.IntrinsicElements['address'];
abbr: JSX.IntrinsicElements['abbr'];
cite: JSX.IntrinsicElements['cite'];
kbd: JSX.IntrinsicElements['kbd'];
samp: JSX.IntrinsicElements['samp'];
var: JSX.IntrinsicElements['var'];
del: JSX.IntrinsicElements['del'];
ins: JSX.IntrinsicElements['ins'];
dfn: JSX.IntrinsicElements['dfn'];
time: JSX.IntrinsicElements['time'];
data: JSX.IntrinsicElements['data'];
bdi: JSX.IntrinsicElements['bdi'];
bdo: JSX.IntrinsicElements['bdo'];
dt: JSX.IntrinsicElements['dt'];
dd: JSX.IntrinsicElements['dd'];
}
export type TypographyComponent = (props: (K extends unknown ? Omit & {
as?: T;
} : never) & RefAttributes) => ReactElement | null;
export declare const typographyComponent: >(comp: FunctionComponent) => TypographyComponent;
export {};
//# sourceMappingURL=Typography.types.d.ts.map