import type { BrDensity } from '../global.types'; /** * Para a documentação completa, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/magic-button?tab=designer). * * @category Ações * @status stable * @slot default - Conteúdo interno do botão (texto ou ícone). * @slot icon - Ícone customizado do botão. Quando utilizado, a prop `icon` é ignorada. * * @part container - Wrapper principal do magic-button. * @part button - Elemento button interno. */ export declare class MagicButton { /** * Referência ao elemento host do componente. * Utilize esta propriedade para acessar e manipular o elemento DOM associado ao componente. */ el: HTMLBrMagicButtonElement; /** * Identificador único do componente. * Quando omitido, um valor é gerado automaticamente. * * > **Padrão:** valor único gerado por generateUniqueId(). * */ customId: string; /** * Texto do rótulo do botão. * Utilizado como conteúdo principal quando presente. */ label: string; /** * Nome do ícone a ser exibido. * Deve corresponder a um ícone disponível no sistema de ícones. */ icon: string; /** * Define a densidade visual do componente. * * - `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento). * - `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos. * - `large`: Baixa densidade (componente maior, mais espaçamento e altura). * */ density: BrDensity; /** * Define se o botão terá formato circular. * Aplica contorno arredondado completo quando `true` e não houver `label`. */ circle: boolean; /** * Define o rótulo acessível usado por tecnologias assistivas. * */ ariaLabel: string; /** * Gera o mapeamento de classes CSS baseado nas propriedades de densidade. * @returns Mapa de classes CSS para o container do botão mágico. */ private getCssClassMap; /** * Gera o mapeamento de classes CSS para aplicar o estilo de botão circular. * @returns Mapa contendo a classe `circle` quando aplicável. */ private getCircleClass; /** * Retorna a classe de CSS para posicionar ícone e label juntos. * @returns `label-icon` quando houver `label` e `icon`; string vazia caso contrário. */ private getLabelIconClass; /** * Renderiza o componente. */ render(): any; }