@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
49 lines (48 loc) • 1.98 kB
TypeScript
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { Theme, ButtonProps } from '../button/Button';
import { IconSize } from '@douyinfe/semi-icons';
import '@douyinfe/semi-foundation/lib/cjs/button/iconButton.css';
export type HorizontalPaddingType = 'left' | 'right';
export interface IconButtonProps extends ButtonProps {
icon?: React.ReactNode;
iconPosition?: 'left' | 'right';
iconSize?: IconSize;
iconStyle?: React.CSSProperties;
loading?: boolean;
theme?: Theme;
style?: React.CSSProperties;
className?: string;
disabled?: boolean;
noHorizontalPadding?: boolean | HorizontalPaddingType | HorizontalPaddingType[];
prefixCls?: string;
contentClassName?: string;
}
declare class IconButton extends PureComponent<IconButtonProps> {
static defaultProps: {
iconPosition: "left";
prefixCls: string;
loading: boolean;
noHorizontalPadding: boolean;
onMouseEnter: (...args: any[]) => void;
onMouseLeave: (...args: any[]) => void;
};
static elementType: string;
static propTypes: {
iconStyle: PropTypes.Requireable<object>;
style: PropTypes.Requireable<object>;
loading: PropTypes.Requireable<boolean>;
prefixCls: PropTypes.Requireable<string>;
icon: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
iconSize: PropTypes.Requireable<string>;
noHorizontalPadding: PropTypes.Requireable<NonNullable<string | boolean | any[]>>;
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
theme: PropTypes.Requireable<string>;
iconPosition: PropTypes.Requireable<"left" | "right">;
className: PropTypes.Requireable<string>;
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
};
render(): React.JSX.Element;
}
export default IconButton;