import React from 'react'; import MuiIconButton from '@mui/material/IconButton'; import type { IconButtonProps as MuiIconButtonProps } from '@mui/material/IconButton'; // ─── Types ─────────────────────────────────────────────────────────────────── /** Props for the FA IconButton component */ export interface IconButtonProps extends MuiIconButtonProps {} // ─── Component ─────────────────────────────────────────────────────────────── /** * Icon-only button for the FA design system. * * Square button containing a single icon — used for close buttons, menu * toggles, toolbar actions, and anywhere a text label would be redundant. * Wraps MUI IconButton with FA brand tokens and consistent sizing. * * Sizes use the same height scale as Button: * - `small` — 32px (compact toolbars, card actions) * - `medium` — 40px (default, general actions) * - `large` — 48px (mobile CTAs, meets 44px touch target) * * **Accessibility**: Always provide an `aria-label` prop. Icon-only * buttons have no visible text, so screen readers rely entirely on * the aria-label to announce the action. * ```tsx * * * * ``` */ export const IconButton = React.forwardRef( (props, ref) => { return ; }, ); IconButton.displayName = 'IconButton'; export default IconButton;