UNPKG

@patreon/studio

Version:

Patreon Studio Design System

18 lines (17 loc) 2.87 kB
import type { BodyFontSizeToken, BodyFontStackToken, BodyFontWeightToken, BodyLetterSpacingToken, BodyLineHeightToken, DataBodyFontSizeToken, DataBodyFontStackToken, DataBodyFontWeightToken, DataBodyFontWidthToken, DataBodyLetterSpacingToken, DataBodyLineHeightToken, DataDisplayFontSizeToken, DataDisplayFontStackToken, DataDisplayFontWeightToken, DataDisplayFontWidthToken, DataDisplayLetterSpacingToken, DataDisplayLineHeightToken, DataHeadingFontSizeToken, DataHeadingFontStackToken, DataHeadingFontWeightToken, DataHeadingFontWidthToken, DataHeadingLetterSpacingToken, DataHeadingLineHeightToken, DisplayFontSizeToken, DisplayFontStackToken, DisplayFontWeightToken, DisplayLetterSpacingToken, DisplayLineHeightToken, FontSizeToken, FontStackToken, FontWeightToken, FontWidthToken, HeadingFontSizeToken, HeadingFontStackToken, HeadingFontWeightToken, HeadingLetterSpacingToken, HeadingLineHeightToken, LetterSpacingToken, LineHeightToken } 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; } type BodyTypographyBundle = ConfigurableTypographyBundle<BodyFontStackToken, BodyFontSizeToken, BodyFontWeightToken, BodyLetterSpacingToken, BodyLineHeightToken, never>; type HeadingTypographyBundle = ConfigurableTypographyBundle<HeadingFontStackToken, HeadingFontSizeToken, HeadingFontWeightToken, HeadingLetterSpacingToken, HeadingLineHeightToken, never>; type DisplayTypographyBundle = ConfigurableTypographyBundle<DisplayFontStackToken, DisplayFontSizeToken, DisplayFontWeightToken, DisplayLetterSpacingToken, DisplayLineHeightToken, never>; type DataBodyTypographyBundle = ConfigurableTypographyBundle<DataBodyFontStackToken, DataBodyFontSizeToken, DataBodyFontWeightToken, DataBodyLetterSpacingToken, DataBodyLineHeightToken, DataBodyFontWidthToken>; type DataHeadingTypographyBundle = ConfigurableTypographyBundle<DataHeadingFontStackToken, DataHeadingFontSizeToken, DataHeadingFontWeightToken, DataHeadingLetterSpacingToken, DataHeadingLineHeightToken, DataHeadingFontWidthToken>; type DataDisplayTypographyBundle = ConfigurableTypographyBundle<DataDisplayFontStackToken, DataDisplayFontSizeToken, DataDisplayFontWeightToken, DataDisplayLetterSpacingToken, DataDisplayLineHeightToken, DataDisplayFontWidthToken>; export type CustomTypographyBundle = BodyTypographyBundle | HeadingTypographyBundle | DisplayTypographyBundle | DataBodyTypographyBundle | DataHeadingTypographyBundle | DataDisplayTypographyBundle; export {};