@atlaskit/button
Version:
A button triggers an event or action. They let users know what will happen next.
23 lines (22 loc) • 866 B
TypeScript
import { type CSSObject } from '@emotion/react';
import { type ThemeModes } from '@atlaskit/theme/types';
import { type BaseProps } from '../types';
export type ThemeTokens = {
buttonStyles: CSSObject;
spinnerStyles: CSSObject;
};
export type InteractionState = 'disabled' | 'focusSelected' | 'selected' | 'active' | 'hover' | 'focus' | 'default';
export type CustomThemeButtonOwnProps = {
isLoading?: boolean;
/**
* Slow + discouraged custom theme API
* See custom theme guide for usage details
*/
theme?: (current: (props: ThemeProps) => ThemeTokens, props: ThemeProps) => ThemeTokens;
};
export type CustomThemeButtonProps = Omit<BaseProps, 'overlay'> & CustomThemeButtonOwnProps;
export type ThemeProps = Partial<CustomThemeButtonProps> & {
state: InteractionState;
iconIsOnlyChild?: boolean;
mode?: ThemeModes;
};