@govbr-ds/webcomponents
Version:
Biblioteca de Web Components baseado no GovBR-DS
125 lines (124 loc) • 4.83 kB
TypeScript
import { EventEmitter } from '../../stencil-public-runtime';
/**
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).
*
* @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).
*
* @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.
*
* @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.
*/
export declare class Item {
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrItemElement;
elementInternals: ElementInternals;
/**
* Desativa o item, tornando-o não interativo.
*/
readonly disabled: boolean;
/**
* Identificador único.
* Caso não seja fornecido, um ID gerado automaticamente será usado.
*/
readonly customId: string;
/**
* Indica se o item está no estado ativo.
* Se definido como verdadeiro, o item será exibido como ativo.
*/
readonly isActive: boolean;
/**
* Indica se o item está no estado selecionado.
* Se definido como verdadeiro, o item será exibido como selecionado.
*/
readonly isSelected: boolean;
/**
* Marca o item como interativo, permitindo que toda a superfície do item seja clicável.
*/
readonly isInteractive: boolean;
/**
* URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.
*/
readonly href?: string;
/**
* Define o alvo do link quando `href` está presente. Pode ser:
* - `_blank` para abrir em uma nova aba,
* - `_self` para abrir na mesma aba,
* - `_parent` para abrir na aba pai,
* - `_top` para abrir na aba superior.
*/
readonly target?: '_blank' | '_self' | '_parent' | '_top';
/**
* Quando definido como `true`, o item será tratado como um botão.
*/
readonly isButton: boolean;
/**
* Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:
* - `'submit'` para enviar um formulário,
* - `'reset'` para redefinir um formulário,
* - `'button'` para um botão padrão.
*/
type: 'submit' | 'reset' | 'button';
/**
* Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.
*/
readonly value?: string;
/**
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
*/
readonly density: 'large' | 'medium' | 'small';
hasSlotDefault: boolean;
hasSlotStart: boolean;
hasSlotEnd: boolean;
selectedValue: boolean;
private hasRadios;
private focusableElement?;
handleRadioChange(): void;
handleCheckboxChange(event: Event): void;
/**
* Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).
* Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.
*/
brDidClick: EventEmitter;
/**
* Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.
*/
brDidSelect: EventEmitter<{
selected: boolean;
}>;
componentWillLoad(): void;
private hasSlotContentDefault;
private hasSlotContent;
private getCssClassMap;
private getTagType;
private getAttributes;
private updateCheckboxSelectionState;
private updateRadioSelectionState;
/**
* Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:
* - quando o item é um link (href definido)
* - quando o item está desabilitado
* Isso permite a seleção de texto normal em botões ou itens de leitura.
*/
private handleMouseDown;
private isClickInsideInteractiveElement;
private updateCheckboxes;
private readonly handleClick;
/**
* Método usado para associar ao evento onKeyDown no JSX
* Evita problemas de lint com arrow functions ou bind() no JSX
*/
private readonly handleKeydownEvent;
/**
* Manipula o evento keydown internamente
*/
private handleKeydown;
/**
* Define o foco no elemento interno do componente.
* Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
*/
setFocus(): Promise<void>;
render(): any;
}