@patreon/studio
Version:
Patreon Studio Design System
84 lines (83 loc) • 2.24 kB
TypeScript
import type { IconProps } from 'components/Icon/types';
import type { LoadingSpinnerProps } from '../LoadingSpinner/types';
import type { ButtonProps } from './types';
export declare const getSpinnerColor: ({ variant, unfilled, }: Pick<ButtonProps, 'variant' | 'unfilled'>) => Required<LoadingSpinnerProps>['color'];
export interface SizeProps extends Pick<ButtonProps, 'size' | 'icon' | 'disclosureIcon'> {
isMobile: boolean;
hasLabel?: boolean;
}
export declare const getDimensions: ({ size, isMobile }: SizeProps) => "28px" | "32px" | "36px" | "40px" | "64px" | "44px" | "52px";
export declare const paddingMap: {
labelOnly: {
mobile: {
xs: string;
sm: string;
md: string;
lg: string;
};
desktop: {
xs: string;
sm: string;
md: string;
lg: string;
};
};
labelAndIcon: {
mobile: {
xs: string;
sm: string;
md: string;
lg: string;
};
desktop: {
xs: string;
sm: string;
md: string;
lg: string;
};
};
disclosureAndLabel: {
mobile: {
xs: string;
sm: string;
md: string;
lg: string;
};
desktop: {
xs: string;
sm: string;
md: string;
lg: string;
};
};
iconAndDisclosureOnly: {
mobile: {
xs: string;
sm: string;
md: string;
lg: string;
};
desktop: {
xs: string;
sm: string;
md: string;
lg: string;
};
};
iconLabelAndDisclosure: {
mobile: {
xs: string;
sm: string;
md: string;
lg: string;
};
desktop: {
xs: string;
sm: string;
md: string;
lg: string;
};
};
};
export declare const getPadding: ({ size, isMobile, hasLabel, icon, disclosureIcon }: SizeProps) => string;
export declare const getIconSize: (size?: ButtonProps['size']) => Required<IconProps>['size'];