import { type EventEmitter } from '../../stencil-public-runtime'; import { type FormValidationState } from '../../shared/utils/form'; import { type FormValidationChangeDetail } from '../../shared/utils/validator'; import type { RadioValidator } from './radio.types'; /** * ## Design System * * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/radio?tab=designer). * * @category Formulários * @status stable * @slot default - Slot para o rótulo do rádio, como alternativa à propriedade label. * @slot feedback - Mensagem de validação, normalmente um `br-message`. * * @part container - Contêiner visual do radio. * @part radio-input - Elemento input nativo do radio. * @part radio-label - Rótulo do radio. * @part feedback - Contêiner da mensagem de validação. */ export declare class Radio { elementInternals: ElementInternals; formDisabledCallback(disabled: boolean): void; formResetCallback(): void; formStateRestoreCallback(state: string | File | FormData | null): void; /** * Referência ao elemento host do componente. * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente. */ el: HTMLBrRadioElement; formDisabled: boolean; updateTrigger: number; /** Indica se o slot de feedback possui conteúdo fornecido pelo consumidor. */ hasFeedbackSlot: boolean; /** Mensagem definida pela Constraint Validation API. */ customValidationMessage: string; validatorMessage: string | null; isValidating: boolean; groupManaged: boolean; groupDisabled: boolean; groupTabIndex: number; /** * Define o estado de seleção do radio. * Se definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado. */ checked: boolean; /** * Permite desmarcar o radio ao clicar duas vezes sobre ele. * Por padrão, um radio selecionado permanece marcado ao receber um segundo clique. */ readonly uncheckOnDoubleClick: boolean; /** * Desativa o radio, tornando-o não interativo. */ readonly disabled: boolean; /** * Se verdadeiro, o radio é obrigatório e uma opção deve ser selecionada antes que o formulário possa ser enviado. */ readonly required: boolean; /** Regra síncrona ou assíncrona aplicada ao estado booleano do radio. */ readonly validator?: RadioValidator; /** * Indica a validade do radio. * Se não for especificado, o valor padrão é `null`, indicando que a validade não foi definida. */ readonly state: 'valid' | 'invalid'; /** Estado de feedback canônico. Quando informado, tem precedência sobre `state`. */ readonly feedbackState?: 'valid' | 'invalid'; /** * Define se o label associado ao radio deve ser oculto. * Se definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional. * @deprecated Use `labelHidden`. */ readonly hasHiddenLabel: boolean; /** Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`. */ readonly labelHidden?: boolean; /** * Identificador único; gerado automaticamente quando omitido. */ readonly customId: string; /** * Define o nome do radio, que é utilizado para agrupar radios em formulários e identificar o campo. * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários. */ readonly name: string; /** * Texto descritivo exibido à direita do radio. * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado. */ readonly label: string; /** * Define o valor associado ao radio quando ele faz parte de um formulário nativo (`
`). * Esse valor é enviado com o formulário quando o radio está selecionado. * **Nota:** Esta propriedade não deve ser utilizada para determinar se o radio está selecionado; para verificar o estado de seleção, use a propriedade `checked`. */ readonly value: string; checkedChanged(): void; handleRadioGroupState(event: CustomEvent<{ managed: boolean; disabled: boolean; tabIndex: number; }>): void; /** * Disparado depois que o valor do `checked` foi alterado. * @deprecated Use `input`/`change` e leia `event.target.checked`. */ checkedChange: EventEmitter; /** Emitido ao iniciar e concluir a validação customizada. */ brRadioValidationChange: EventEmitter; componentWillLoad(): void; componentDidLoad(): void; componentDidUpdate(): void; /** * Mantém o protocolo legado de sincronização por `checkedChange`. * @deprecated A coordenação interna agora é limitada à raiz DOM do grupo. */ handleCheckedChange(event: CustomEvent): void; /** * Navega e seleciona o próximo/anterior rádio habilitado no grupo via teclas de seta. * Ativado por 'keydown', move a seleção entre rádios do mesmo 'name' * usando as setas, partindo do rádio atualmente checado. * @param {KeyboardEvent} event O evento de teclado. * @listens keydown */ handleKeyDown(event: KeyboardEvent): void; /** * Retorna `true` se o valor do radio for válido, caso contrário `false`. * Se o radio for inválido, dispara um evento 'invalid'. */ checkValidity(): Promise; /** * Retorna `true` se o valor do radio for válido, caso contrário `false`. * Se for inválido, exibe a mensagem de erro padrão do navegador. */ reportValidity(): Promise; /** * Define uma mensagem de validação customizada para o radio. * Se a mensagem for uma string vazia, o erro customizado é limpo. */ setCustomValidity(message: string): Promise; /** Executa o validator do radio e retorna se o valor atual é válido. */ validate(): Promise; /** Retorna um snapshot serializável da Constraint Validation API. */ getValidationState(): Promise; /** * Inverte o valor da prop `checked` * @deprecated Atualize a propriedade `checked` diretamente. */ toggleChecked(): Promise; /** * Move o foco para o input radio nativo interno. */ setFocus(): Promise; /** * Referência nativa do input radio para acessar a API de validação */ private nativeInput?; private validationRunId; private initialChecked; private syncFormState; private isDisabled; private isManagedByGroup; private isStandalonePeer; private updateValidity; private getCssClassMap; /** * Handler para o event `click` * @param event Objeto Event */ private readonly onClick; private readonly onInput; /** * Handler para o evento `change` */ private readonly onChange; handleDoubleClick(): void; private computeTabIndex; private syncGroupTabStops; render(): any; }