UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

74 lines 2.37 kB
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