@xcritical/button
Version:
95 lines (73 loc) • 2.85 kB
TypeScript
import { CSSObject } from 'styled-components';
import { ICSSProperties } from '@xcritical/theme';
import { ITheme } from '@xcritical/theme';
import { IThemeBase } from '@xcritical/theme';
import { IThemeNamespace } from '@xcritical/theme';
import { default as React_2 } from 'react';
declare const Button: React_2.MemoExoticComponent<React_2.ForwardRefExoticComponent<Pick<IButtonProps, keyof IButtonProps> & React_2.RefAttributes<HTMLButtonElement>>>;
export default Button;
export declare const ButtonGroup: React_2.FC<IButtonGroup>;
export declare type ButtonGroupTheme = ITheme<CSSObject>;
export declare const buttonGroupThemeNamespace = "@xcritical\\button-group";
export declare type ButtonTags = 'button' | 'span' | 'a';
export declare type ButtonTheme = ITheme<IBaseButtonTheme>;
export declare const buttonThemeNamespace = "@xcritical\\button";
export declare interface IBaseButtonTheme extends ICSSProperties {
prefixSpacing?: number;
postfixSpacing?: number;
boxShadowColor?: string;
buttonContentWrapper?: IThemeBase<ICSSProperties>;
buttonContent?: IThemeBase<ICSSProperties>;
_outline?: ICSSProperties;
}
export declare interface IButtonAppearanceProps {
theme?: IThemeNamespace<ButtonTheme>;
appearance?: string;
baseAppearance?: string;
}
export declare interface IButtonGroup {
theme?: IThemeNamespace<ButtonGroupTheme>;
className?: string;
}
export declare interface IButtonProps extends IButtonAppearanceProps, IIsRTL, ISpacing, IShouldFitContent, IOnlyButtonProps {
[key: string]: any;
}
export declare interface IContentProps extends IIsRTL, IInnerComponentAppearanceProps {
textPosition?: string;
}
export declare type ICSSWideKeyword = 'initial' | 'inherit' | 'unset';
export declare interface IInnerComponentAppearanceProps {
theme: IThemeNamespace<ButtonTheme>;
appearance: string;
baseAppearance: string;
}
export declare interface IIsRTL {
isRTL?: boolean;
}
export declare interface IOnlyButtonProps {
prefix?: React_2.ReactNode;
postfix?: React_2.ReactNode;
shouldAllowMultiline?: boolean;
ghost?: boolean;
href?: string;
selected?: boolean;
textPosition?: string;
height?: string;
component?: React_2.ElementType;
}
export declare interface IPrefixProps extends IInnerComponentAppearanceProps, IIsRTL {
}
export declare interface IShouldFitContent {
shouldFitContent?: boolean;
}
export declare interface ISpacing {
spacing?: 'compact' | 'default' | 'none';
}
export declare interface IStyledButtonProps extends IButtonProps {
baseAppearance: string;
appearance: string;
spacing: 'compact' | 'default' | 'none';
ghost: boolean;
shouldFitContent: boolean;
}
export { }