analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
74 lines • 2.37 kB
TypeScript
import { ButtonHTMLAttributes, ReactNode } from 'react';
/**
* IconButton component props interface
*/
export type IconButtonProps = {
/** Ícone a ser exibido no botão */
icon: ReactNode;
/** Tamanho do botão */
size?: 'sm' | 'md';
/** Estado de seleção/ativo do botão - permanece ativo até ser clicado novamente ou outro botão ser ativado */
active?: boolean;
/** Additional CSS classes to apply */
className?: string;
} & ButtonHTMLAttributes<HTMLButtonElement>;
/**
* IconButton component for Analytica Ensino platforms
*
* Um botão compacto apenas com ícone, ideal para menus dropdown,
* barras de ferramentas e ações secundárias.
* Oferece dois tamanhos com estilo consistente.
* Estado ativo permanece até ser clicado novamente ou outro botão ser ativado.
* Suporta forwardRef para acesso programático ao elemento DOM.
*
* @param icon - O ícone a ser exibido no botão
* @param size - Tamanho do botão (sm, md)
* @param active - Estado ativo/selecionado do botão
* @param className - Classes CSS adicionais
* @param props - Todos os outros atributos HTML padrão de button
* @returns Um elemento button compacto estilizado apenas com ícone
*
* @example
* ```tsx
* <IconButton
* icon={<MoreVerticalIcon />}
* size="sm"
* onClick={() => openMenu()}
* />
* ```
*
* @example
* ```tsx
* // Botão ativo em uma barra de ferramentas - permanece ativo até outro clique
* <IconButton
* icon={<BoldIcon />}
* active={isBold}
* onClick={toggleBold}
* />
* ```
*
* @example
* ```tsx
* // Usando ref para controle programático
* const buttonRef = useRef<HTMLButtonElement>(null);
*
* <IconButton
* ref={buttonRef}
* icon={<EditIcon />}
* size="md"
* onClick={() => startEditing()}
* />
* ```
*/
declare const IconButton: import("react").ForwardRefExoticComponent<{
/** Ícone a ser exibido no botão */
icon: ReactNode;
/** Tamanho do botão */
size?: "sm" | "md";
/** Estado de seleção/ativo do botão - permanece ativo até ser clicado novamente ou outro botão ser ativado */
active?: boolean;
/** Additional CSS classes to apply */
className?: string;
} & ButtonHTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>;
export default IconButton;
//# sourceMappingURL=IconButton.d.ts.map