/** * Define a densidade visual padrão utilizada em componentes do Design System. * * - `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). * * Usada em props como `density` para ajustar o tamanho visual do componente. */ export type BrDensity = 'small' | 'medium' | 'large'; /** * Define os valores aceitos para o destino (`target`) de links e âncoras. * * - `_blank`: Abre em nova aba ou janela. * - `_self`: Abre no mesmo frame (padrão). * - `_parent`: Abre no frame pai. * - `_top`: Abre no frame superior. * * Usada em props como `target` para componentes de navegação. */ export type BrLinkTarget = '_blank' | '_self' | '_parent' | '_top'; /** * Define como componentes com link lidam com navegação. * * - `native`: preserva o comportamento padrão do navegador, mantendo semântica HTML/W3C. * - `event`: emite um evento cancelável para o consumidor integrar com roteadores SPA. */ export type BrNavigationMode = 'native' | 'event'; /** * Payload emitido por eventos de navegação dos componentes. * * `href` contém o destino real renderizado no link. `event` contém o MouseEvent original, * permitindo ao consumidor inspecionar o clique quando necessário. */ export interface BrNavigateDetail { event: MouseEvent; href: string; } /** * Define os estados semânticos de feedback visual compartilhados entre componentes. * * - `info`: Informação neutra. * - `warning`: Atenção ou alerta. * - `danger`: Erro ou estado crítico. * - `success`: Sucesso ou confirmação. * * Usada em props como `state` ou `feedback` para indicar o status do componente. */ export type BrFeedbackState = 'info' | 'warning' | 'danger' | 'success'; /** * Define os tipos de ação aceitos por botões nativos em formulários. * * - `button`: botão sem ação padrão de formulário. * - `submit`: envia o formulário associado. * - `reset`: restaura os campos do formulário associado. */ export type BrButtonType = 'button' | 'submit' | 'reset'; /** * Define os estados de validação compartilhados por campos de formulário. * * - `valid`: campo válido. * - `invalid`: campo inválido. */ export type BrValidationState = 'valid' | 'invalid'; /** * Define orientação de layout em componentes que suportam eixo horizontal/vertical. */ export type BrOrientation = 'horizontal' | 'vertical'; /** * Define o modo de progressão entre etapas em componentes multi-step. * * - `linear`: exige sequência de etapas. * - `nonlinear`: permite navegação livre. */ export type BrProgressionType = 'linear' | 'nonlinear'; /** * API pública exposta pelo componente Tooltip para controle imperativo externo. * * Permite associar elemento de disparo, exibir e ocultar o tooltip via métodos. * * @property setTriggerElement Define o elemento que dispara o tooltip. * @property showTooltip Exibe o tooltip programaticamente. * @property hideTooltip Oculta o tooltip programaticamente. */ export type TooltipApi = HTMLBrTooltipElement & { /** * Define o elemento de disparo do tooltip. * @param element Elemento HTML ou null para remover. */ setTriggerElement: (element: HTMLElement | null) => Promise; /** * Exibe o tooltip programaticamente. */ showTooltip: () => Promise; /** * Oculta o tooltip programaticamente. */ hideTooltip: () => Promise; };