analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
58 lines (55 loc) • 1.66 kB
TypeScript
import * as react from 'react';
import { ReactNode, ButtonHTMLAttributes } from 'react';
/**
* NavButton component for Analytica Ensino platforms
*
* Um botão de navegação com ícone e texto para navegação principal.
* Ideal para menus de navegação, sidebar, tabs de navegação, 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 para navegação
*
* @example
* ```tsx
* <NavButton
* icon={<HomeIcon />}
* label="Início"
* selected={false}
* onClick={() => navigate('/')}
* />
* ```
*
* @example
* ```tsx
* // Usando ref para foco programático
* const buttonRef = useRef<HTMLButtonElement>(null);
*
* const handleFocus = () => {
* buttonRef.current?.focus();
* };
*
* <NavButton
* ref={buttonRef}
* icon={<HomeIcon />}
* label="Dashboard"
* selected={isActive}
* onClick={() => setActiveTab('dashboard')}
* />
* ```
*/
declare const NavButton: 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 { NavButton as default };