analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
58 lines (55 loc) • 1.68 kB
TypeScript
import * as react from 'react';
import { ReactNode, ButtonHTMLAttributes } from 'react';
/**
* SelectionButton component for Analytica Ensino platforms
*
* Um botão com ícone e texto para ações e navegação com estado de seleção.
* Ideal para filtros, tags, categorias, seleção de tipos, etc.
* Suporta forwardRef para acesso programático ao elemento DOM.
*
* @param icon - O ícone a ser exibido no botão
* @param label - O texto/label a ser exibido
* @param selected - Estado de seleção do botão
* @param className - Classes CSS adicionais
* @param props - Todos os outros atributos HTML padrão de button
* @returns Um elemento button estilizado
*
* @example
* ```tsx
* <SelectionButton
* icon={<TagIcon />}
* label="Categoria"
* selected={false}
* onClick={() => handleSelection()}
* />
* ```
*
* @example
* ```tsx
* // Usando ref para foco programático
* const buttonRef = useRef<HTMLButtonElement>(null);
*
* const handleFocus = () => {
* buttonRef.current?.focus();
* };
*
* <SelectionButton
* ref={buttonRef}
* icon={<TagIcon />}
* label="Categoria"
* selected={isSelected}
* onClick={() => setSelected(!isSelected)}
* />
* ```
*/
declare const SelectionButton: react.ForwardRefExoticComponent<{
/** Ícone a ser exibido no botão */
icon: ReactNode;
/** Texto/label a ser exibido ao lado do ícone */
label: string;
/** Estado de seleção do botão */
selected?: boolean;
/** Additional CSS classes to apply */
className?: string;
} & ButtonHTMLAttributes<HTMLButtonElement> & react.RefAttributes<HTMLButtonElement>>;
export { SelectionButton as default };