import { ReactNode, ButtonHTMLAttributes } from 'react'; import { Theme } from '../../../models/Theme'; /** * Size variants for the fullscreen button */ export type FullscreenButtonSize = 'small' | 'medium' | 'large'; /** * Props interface for the FullscreenButton component * Extends standard HTML button attributes for maximum flexibility */ export interface FullscreenButtonProps extends Omit, 'onClick' | 'onKeyDown'> { /** * Whether the element is currently in fullscreen mode * @default false */ isFullscreen?: boolean; /** * Callback function triggered when the fullscreen state should toggle */ onToggle?: (() => void) | ((event?: any) => void); /** * Theme configuration for styling */ theme: Theme; /** * Whether the button is disabled * @default false */ disabled?: boolean; /** * Size variant of the button * @default 'medium' */ size?: FullscreenButtonSize; /** * Custom CSS class name */ className?: string; /** * Custom aria-label for accessibility * If not provided, defaults to "Enter fullscreen" or "Exit fullscreen" */ ariaLabel?: string; /** * Custom title attribute for tooltip * If not provided, defaults to appropriate fullscreen action with keyboard hint */ title?: string; /** * Test ID for testing purposes * @default 'fullscreen-button' */ testId?: string; /** * Custom children to override default icons * If not provided, will use MaximizeIcon or MinimizeIcon based on isFullscreen */ children?: ReactNode; } /** * Styled component props for internal use */ export interface FullscreenButtonStyleProps { theme: Theme; $size: FullscreenButtonSize; $isFullscreen: boolean; } //# sourceMappingURL=fullscreen-button.model.d.ts.map