UNPKG

@xcritical/button

Version:
95 lines (73 loc) 2.85 kB
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 { }