UNPKG

analytica-frontend-lib

Version:

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

58 lines (55 loc) 1.68 kB
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 };