@primer/react-brand
Version:
Primer Brand is a GitHub's design system for creating React-based marketing websites and digital experiences.
119 lines (118 loc) • 5.14 kB
TypeScript
import React from 'react';
import { TextProps } from '../';
import type { BaseProps } from '../component-helpers';
/**
* Design tokens
*/
import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/statistic/base.css';
export declare const StatisticSizes: readonly ["small", "medium", "large"];
export declare const StatisticSpacingValues: readonly ["none", "condensed", "normal", "spacious"];
type StatisticSpacingValues = (typeof StatisticSpacingValues)[number];
export type StatisticSize = (typeof StatisticSizes)[number];
type ResponsiveMap<T> = {
narrow?: T;
regular?: T;
wide?: T;
};
export type StatisticProps = BaseProps<HTMLAnchorElement> & {
/**
* The size of the Statistic
*/
size?: StatisticSize;
/**
* Adding padding to all internal sides of the component
*/
padding?: StatisticSpacingValues | ResponsiveMap<StatisticSpacingValues>;
/**
* Specify alternative appearance
*/
variant?: 'default' | 'boxed';
/**
* Escape-hatch for inserting custom React components.
* Warning:
* This prop isn't advertised in our docs but remains part of the public API for edge-cases.
* Need to use this prop? Please check in with #primer-brand first to confirm correct usage.
*/
leadingComponent?: React.FunctionComponent;
/**
* Escape-hatch for inserting custom React components.
* Warning:
* This prop isn't advertised in our docs but remains part of the public API for edge-cases.
* Need to use this prop? Please check in with #primer-brand first to confirm correct usage.
*/
trailingComponent?: React.FunctionComponent;
/**
* Optional attirbute for testing
*/
['data-testid']?: string;
} & BaseProps<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>;
type StatisticDescriptionProps = BaseProps<HTMLSpanElement> & Omit<TextProps, 'variant' | 'as'> & {
variant?: 'default' | 'muted' | 'accent';
};
/**
* Use the statistic component display concise numerical information
* @see https://primer.style/brand/components/Statistic
*/
export declare const Statistic: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<StatisticProps>, "ref"> & React.RefAttributes<HTMLDivElement>> & {
Heading: React.ForwardRefExoticComponent<(Omit<{
font?: import("../").TextFontVariants;
size?: typeof import("../").TextSizes[number];
variant?: typeof import("../").TextVariants[number];
weight?: import("../").TextWeightVariants | import("../").ResponsiveWeightMap;
align?: "start" | "center" | "end";
hasAntiAliasing?: boolean;
} & {
as?: typeof import("../").TextTags[number];
} & React.HTMLAttributes<HTMLParagraphElement> & BaseProps<HTMLParagraphElement> & {
as?: "p";
}, "ref"> | Omit<{
font?: import("../").TextFontVariants;
size?: typeof import("../").TextSizes[number];
variant?: typeof import("../").TextVariants[number];
weight?: import("../").TextWeightVariants | import("../").ResponsiveWeightMap;
align?: "start" | "center" | "end";
hasAntiAliasing?: boolean;
} & {
as?: typeof import("../").TextTags[number];
} & React.HTMLAttributes<HTMLSpanElement> & BaseProps<HTMLSpanElement> & {
as?: "span";
}, "ref"> | Omit<{
font?: import("../").TextFontVariants;
size?: typeof import("../").TextSizes[number];
variant?: typeof import("../").TextVariants[number];
weight?: import("../").TextWeightVariants | import("../").ResponsiveWeightMap;
align?: "start" | "center" | "end";
hasAntiAliasing?: boolean;
} & {
as?: typeof import("../").TextTags[number];
} & React.HTMLAttributes<HTMLDivElement> & BaseProps<HTMLDivElement> & {
as?: "div";
}, "ref"> | Omit<{
font?: import("../").TextFontVariants;
size?: typeof import("../").TextSizes[number];
variant?: typeof import("../").TextVariants[number];
weight?: import("../").TextWeightVariants | import("../").ResponsiveWeightMap;
align?: "start" | "center" | "end";
hasAntiAliasing?: boolean;
} & {
as?: typeof import("../").TextTags[number];
} & React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {
as?: "strong";
}, "ref"> | Omit<{
font?: import("../").TextFontVariants;
size?: typeof import("../").TextSizes[number];
variant?: typeof import("../").TextVariants[number];
weight?: import("../").TextWeightVariants | import("../").ResponsiveWeightMap;
align?: "start" | "center" | "end";
hasAntiAliasing?: boolean;
} & {
as?: typeof import("../").TextTags[number];
} & React.HTMLAttributes<HTMLElement> & BaseProps<HTMLElement> & {
as?: "em";
}, "ref">) & React.RefAttributes<HTMLParagraphElement>>;
Description: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<StatisticDescriptionProps>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
testIds: {
root: string;
};
};
export {};