@patreon/studio
Version:
Patreon Studio Design System
18 lines (17 loc) • 2.93 kB
TypeScript
import type { FontStackToken, FontSizeToken, FontWeightToken, LetterSpacingToken, LineHeightToken, FontWidthToken, BodyFontStackToken, BodyFontSizeToken, BodyFontWeightToken, BodyLetterSpacingToken, BodyLineHeightToken, HeadingFontStackToken, HeadingFontSizeToken, HeadingFontWeightToken, HeadingLetterSpacingToken, HeadingLineHeightToken, DisplayFontStackToken, DisplayFontSizeToken, DisplayFontWeightToken, DisplayLetterSpacingToken, DisplayLineHeightToken, DataBodyFontStackToken, DataBodyFontSizeToken, DataBodyFontWeightToken, DataBodyLetterSpacingToken, DataBodyLineHeightToken, DataBodyFontWidthToken, DataHeadingFontStackToken, DataHeadingFontSizeToken, DataHeadingFontWeightToken, DataHeadingLetterSpacingToken, DataHeadingLineHeightToken, DataHeadingFontWidthToken, DataDisplayFontStackToken, DataDisplayFontSizeToken, DataDisplayFontWeightToken, DataDisplayLetterSpacingToken, DataDisplayLineHeightToken, DataDisplayFontWidthToken } from '../../types/tokens';
interface ConfigurableTypographyBundle<FontStack extends FontStackToken, FontSizes extends FontSizeToken, FontWeights extends FontWeightToken, LetterSpacing extends LetterSpacingToken, LineHeight extends LineHeightToken, FontWidth extends FontWidthToken | never> {
fontStack: FontStack;
fontSize: FontSizes | string;
fontWeight: FontWeights | string;
letterSpacing: LetterSpacing | string;
lineHeight: LineHeight | string;
fontWidth?: FontWidth;
}
declare type BodyTypographyBundle = ConfigurableTypographyBundle<BodyFontStackToken, BodyFontSizeToken, BodyFontWeightToken, BodyLetterSpacingToken, BodyLineHeightToken, never>;
declare type HeadingTypographyBundle = ConfigurableTypographyBundle<HeadingFontStackToken, HeadingFontSizeToken, HeadingFontWeightToken, HeadingLetterSpacingToken, HeadingLineHeightToken, never>;
declare type DisplayTypographyBundle = ConfigurableTypographyBundle<DisplayFontStackToken, DisplayFontSizeToken, DisplayFontWeightToken, DisplayLetterSpacingToken, DisplayLineHeightToken, never>;
declare type DataBodyTypographyBundle = ConfigurableTypographyBundle<DataBodyFontStackToken, DataBodyFontSizeToken, DataBodyFontWeightToken, DataBodyLetterSpacingToken, DataBodyLineHeightToken, DataBodyFontWidthToken>;
declare type DataHeadingTypographyBundle = ConfigurableTypographyBundle<DataHeadingFontStackToken, DataHeadingFontSizeToken, DataHeadingFontWeightToken, DataHeadingLetterSpacingToken, DataHeadingLineHeightToken, DataHeadingFontWidthToken>;
declare type DataDisplayTypographyBundle = ConfigurableTypographyBundle<DataDisplayFontStackToken, DataDisplayFontSizeToken, DataDisplayFontWeightToken, DataDisplayLetterSpacingToken, DataDisplayLineHeightToken, DataDisplayFontWidthToken>;
export declare type CustomTypographyBundle = BodyTypographyBundle | HeadingTypographyBundle | DisplayTypographyBundle | DataBodyTypographyBundle | DataHeadingTypographyBundle | DataDisplayTypographyBundle;
export {};