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 & CustomThemeButtonOwnProps; export type ThemeProps = Partial & { state: InteractionState; iconIsOnlyChild?: boolean; mode?: ThemeModes; };