react-cm-ui
Version:
React UI for Healthy Church
136 lines (132 loc) • 2.96 kB
TypeScript
import React from 'react';
import {
AsType,
ButtonType,
ColorType,
VariantType,
} from './models';
export interface ButtonPropTypes {
as?: AsType;
/**
* Primary content.
*/
children: React.ReactNode;
/**
* Additional classes.
*/
className?: string;
/**
* Override or extend the styles applied to ButtonDropdown.
*/
classes?: {
colorActive?: string;
colorDefault?: string;
colorError?: string;
colorLink?: string;
colorPrimary?: string;
colorSecondary?: string;
colorSuccess?: string;
colorWarning?: string;
compact?: string;
contained?: string;
disabled?: string;
fixedWidth?: string;
fullWidth?: string;
icon?: string;
innerContainer?: string;
inverse?: string;
outlined?: string;
pill?: string;
relax?: string;
root?: string;
text?: string;
transparent?: string;
};
/**
* Color of the button.
*/
color?: ColorType;
/**
* A button can reduce its padding.
*/
compact?: boolean;
/**
* A button can be disabled.
*/
disabled?: boolean;
/**
* The Button will be resized to its parent container's width.
*/
fullWidth?: boolean;
/**
* The URL that the hyperlink points to.
*/
href?: string;
/**
* If `true`, the button will be a square, housing the icon child.
*/
icon?: boolean;
/**
* Assign the button an id attribute value.
*/
id?: string;
/**
* Allows for style overrides of the Button's inner container.
*/
innerStyle?: React.CSSProperties;
/**
* A button can be formatted to appear on dark backgrounds better.
*/
inverse?: boolean;
/**
* The onClick event handler.
*/
onClick?: (event: React.MouseEvent<any>) => void;
/**
* A button can be outlined.
*/
outline?: boolean;
/**
* Set a button with a pill like form.
*/
pill?: boolean;
/**
* A button can relax its padding.
*/
relax?: boolean;
/**
* A button can relax its padding.
*/
style?: React.CSSProperties;
/**
* Where to display the linked URL.
*/
target?: '_blank';
/**
* If `true`, only the button's text is shown.
*/
text?: boolean;
/**
* The title attribute.
*/
title?: string;
/**
* Set transparent styles.
*/
transparent?: boolean;
/**
* The default behavior of the button.
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type
*/
type?: ButtonType;
/**
* The variant to use.
*/
variant?: VariantType;
/**
* Set a fixed width.
*/
width?: number | string;
}
declare const Button: React.ComponentType<ButtonPropTypes>;
export default Button;