{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "components/avatar.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-avatar` representa uma pessoa ou entidade de forma compacta: mostra uma foto, a primeira letra de um nome ou um ícone de usuário.\n\n### Como o conteúdo é escolhido\n\n1. Com `iconic`, mostra sempre o ícone de usuário.\n2. Com `text`, mostra a primeira letra do texto em maiúscula.\n3. Com `src`, mostra a imagem. Se ela não carregar, mostra o ícone.\n4. Sem nenhum deles, mostra o ícone.\n\n```html\n<br-avatar src=\"/fotos/maria.jpg\" alt=\"Foto de Maria Souza\"></br-avatar>\n<br-avatar text=\"Maria\"></br-avatar>\n<br-avatar iconic></br-avatar>\n```\n\nPara indicar disponibilidade, ative `status`. A cor fica em `status-bg-color` e o texto lido pelo leitor de tela, em `status-label`. Para outro indicador, use o slot `status`.\n\n### Quando usar\n\n- Identificar a pessoa autenticada no cabeçalho ou no menu.\n- Mostrar autores, contatos ou participantes em listas.\n\n### Quando evitar\n\n- Imagens grandes ou ilustrativas: use `<img>`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/avatar?tab=designer).",
          "name": "Avatar",
          "cssParts": [
            {
              "description": "Elemento externo do avatar.",
              "name": "container"
            },
            {
              "description": "Conteúdo interno do avatar (imagem, ícone ou texto).",
              "name": "content"
            },
            {
              "description": "Indicador de status posicionado sobre o avatar.",
              "name": "status"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo customizado para o indicador de status. Quando usado, substitui a tag padrão.",
              "name": "status"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrAvatarElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasError",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica falha no carregamento da imagem para acionar fallback visual."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "AvatarDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\nDeve ser uma URL válida que aponta para a imagem desejada."
            },
            {
              "kind": "field",
              "name": "alt",
              "type": {
                "text": "string"
              },
              "default": "'Foto de perfil do usuário'",
              "description": "Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.\nDeve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\"."
            },
            {
              "kind": "field",
              "name": "isIconic",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).\nÚtil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.",
              "deprecated": "Use `iconic`."
            },
            {
              "kind": "field",
              "name": "iconic",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe a variação icônica. Quando informada, tem precedência sobre `isIconic`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "text",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Conteúdo textual do avatar.\nApenas o primeiro caractere será exibido em maiúscula."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "bgColor",
              "type": {
                "text": "string"
              },
              "default": "'#DBE8FB'",
              "description": "Permite definir a cor de fundo do componente.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não especificada, usa a cor padrão do tema."
            },
            {
              "kind": "field",
              "name": "status",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe um indicador de status no avatar."
            },
            {
              "kind": "field",
              "name": "statusBgColor",
              "type": {
                "text": "string"
              },
              "default": "'rgb(22, 136, 33)'",
              "description": "Cor de fundo do indicador de status padrão."
            },
            {
              "kind": "field",
              "name": "statusLabel",
              "type": {
                "text": "string"
              },
              "default": "'Status do usuário'",
              "description": "Rótulo acessível do indicador de status padrão."
            },
            {
              "kind": "field",
              "name": "statusSize",
              "type": {
                "text": "string"
              },
              "default": "'12px'",
              "description": "Tamanho do indicador de status padrão."
            },
            {
              "kind": "field",
              "name": "statusPosition",
              "type": {
                "text": "AvatarStatusPosition"
              },
              "default": "'top-right'",
              "description": "Posição do indicador de status sobre o avatar. Aceita `top-right`, `bottom-right`, `top-left` ou `bottom-left`.\nValores inválidos usam `top-right`.",
              "parsedType": {
                "text": "'top-right' | 'bottom-right' | 'top-left' | 'bottom-left'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveStatusPosition",
              "type": {
                "text": "AvatarStatusPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'top-right' | 'bottom-right' | 'top-left' | 'bottom-left'"
              }
            },
            {
              "kind": "method",
              "name": "handleDensityChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "AvatarDensity"
                  }
                }
              ],
              "description": "Observa mudanças na propriedade density para validação e sincronização com atributo DOM.\nGarante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host."
            },
            {
              "kind": "method",
              "name": "handleBackgroundColorChange"
            },
            {
              "kind": "method",
              "name": "setFocus",
              "description": "Move o foco programaticamente para o avatar."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Gera um mapa de classes CSS com base nas propriedades do componente."
            },
            {
              "kind": "method",
              "name": "hasContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "String a ser verificada"
                }
              ],
              "description": "Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco)."
            },
            {
              "kind": "method",
              "name": "hasStatusSlot",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleImageError",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getContentClasses",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Obtém as classes CSS para o elemento content."
            },
            {
              "kind": "method",
              "name": "setCustomBackgroundColor",
              "privacy": "private",
              "description": "Define a variável CSS para cor de fundo personalizada para o avatar texto."
            },
            {
              "kind": "method",
              "name": "getAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Gera aria-label apropriado baseado no tipo de avatar\nPrioriza aria-label do host, senão gera automaticamente"
            },
            {
              "kind": "method",
              "name": "renderTextAvatar",
              "privacy": "private",
              "description": "Renderiza o avatar do tipo 'letra/texto'.\nExibe a primeira letra do texto em maiúscula."
            },
            {
              "kind": "method",
              "name": "renderImageAvatar",
              "privacy": "private",
              "description": "Renderiza o avatar do tipo 'fotográfico/imagem'.\nExibe uma imagem carregada via URL."
            },
            {
              "kind": "method",
              "name": "renderIconAvatar",
              "privacy": "private",
              "description": "Renderiza o avatar do tipo 'icônico'.\nExibe um ícone padrão (fa-solid:user) posicionado na base do avatar."
            },
            {
              "kind": "method",
              "name": "renderAvatar",
              "privacy": "private",
              "description": "Método principal de renderização do avatar.\nPrioridade: isIconic > texto > imagem > ícone (padrão)"
            },
            {
              "kind": "method",
              "name": "renderStatus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "AvatarDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "src",
              "fieldName": "src",
              "default": "''",
              "description": "URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\nDeve ser uma URL válida que aponta para a imagem desejada."
            },
            {
              "name": "alt",
              "fieldName": "alt",
              "default": "'Foto de perfil do usuário'",
              "description": "Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.\nDeve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\"."
            },
            {
              "name": "is-iconic",
              "fieldName": "isIconic",
              "default": "false",
              "description": "Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).\nÚtil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível."
            },
            {
              "name": "iconic",
              "fieldName": "iconic",
              "description": "Exibe a variação icônica. Quando informada, tem precedência sobre `isIconic`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "text",
              "fieldName": "text",
              "default": "''",
              "description": "Conteúdo textual do avatar.\nApenas o primeiro caractere será exibido em maiúscula."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "bg-color",
              "fieldName": "bgColor",
              "default": "'#DBE8FB'",
              "description": "Permite definir a cor de fundo do componente.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não especificada, usa a cor padrão do tema."
            },
            {
              "name": "status",
              "fieldName": "status",
              "default": "false",
              "description": "Exibe um indicador de status no avatar."
            },
            {
              "name": "status-bg-color",
              "fieldName": "statusBgColor",
              "default": "'rgb(22, 136, 33)'",
              "description": "Cor de fundo do indicador de status padrão."
            },
            {
              "name": "status-label",
              "fieldName": "statusLabel",
              "default": "'Status do usuário'",
              "description": "Rótulo acessível do indicador de status padrão."
            },
            {
              "name": "status-size",
              "fieldName": "statusSize",
              "default": "'12px'",
              "description": "Tamanho do indicador de status padrão."
            },
            {
              "name": "status-position",
              "fieldName": "statusPosition",
              "default": "'top-right'",
              "description": "Posição do indicador de status sobre o avatar. Aceita `top-right`, `bottom-right`, `top-left` ou `bottom-left`.\nValores inválidos usam `top-right`.",
              "type": {
                "text": "AvatarStatusPosition"
              },
              "parsedType": {
                "text": "'top-right' | 'bottom-right' | 'top-left' | 'bottom-left'"
              }
            }
          ],
          "tagName": "br-avatar",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Elemento externo do avatar."
            },
            {
              "name": "content",
              "description": "Conteúdo interno do avatar (imagem, ícone ou texto)."
            },
            {
              "name": "status",
              "description": "Indicador de status posicionado sobre o avatar."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Identidade",
          "categories": [
            "Identidade",
            "Conteúdo"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Avatar",
          "declaration": {
            "name": "Avatar",
            "module": "components/avatar.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-avatar",
          "declaration": {
            "name": "Avatar",
            "module": "components/avatar.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/breadcrumb.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-breadcrumb` mostra o caminho até a página atual e permite voltar aos níveis anteriores.\n\n### Como montar\n\n1. Declare um `br-breadcrumb-item` para cada nível, do início até a página atual.\n2. Use `home` no primeiro item para exibir o ícone de página inicial.\n3. Marque a página atual com `active`: ela aparece sem link e com `aria-current=\"page\"`.\n\n```html\n<br-breadcrumb>\n  <br-breadcrumb-item home label=\"Início\" href=\"/\"></br-breadcrumb-item>\n  <br-breadcrumb-item label=\"Serviços\" href=\"/servicos\"></br-breadcrumb-item>\n  <br-breadcrumb-item label=\"Emitir documento\" active></br-breadcrumb-item>\n</br-breadcrumb>\n```\n\nOs mesmos itens podem ser passados em `crumbs`, como array ou texto JSON. Quando falta espaço, os níveis intermediários são agrupados; `truncate-after` define a partir de quantos itens isso acontece.\n\n### Navegação em SPA\n\nCom `navigation-mode=\"event\"`, o clique em um item emite `brNavigate`. Cancele o evento e passe o endereço para o roteador:\n\n```js\nbreadcrumb.addEventListener('brNavigate', (event) => {\n  event.preventDefault();\n  router.push(event.detail.href);\n});\n```\n\n### Quando usar\n\n- Páginas com dois ou mais níveis de hierarquia.\n\n### Quando evitar\n\n- Navegação sem hierarquia.\n- Etapas de um processo: use `br-wizard` ou `br-step`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/breadcrumb?tab=designer).",
          "name": "Breadcrumb",
          "cssParts": [
            {
              "description": "Elemento nav do breadcrumb.",
              "name": "nav"
            },
            {
              "description": "Lista ordenada de itens do breadcrumb.",
              "name": "list"
            }
          ],
          "slots": [
            {
              "description": "Itens de breadcrumb declarados via elementos br-breadcrumb-item. O elemento br-crumb é aceito apenas por compatibilidade.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrBreadcrumbElement"
              }
            },
            {
              "kind": "field",
              "name": "contentWidth",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Largura interna dos itens do breadcrumb."
            },
            {
              "kind": "field",
              "name": "innerCrumbs",
              "type": {
                "text": "BreadcrumbItem[]"
              },
              "default": "[]",
              "description": "Lista interna de itens normalizados usada na renderização do breadcrumb."
            },
            {
              "kind": "field",
              "name": "isFolderOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado do botão 'Folder'.\nCaso a lista dropdown esteja oculta o ícone no botão será 'folder-plus'.\nCaso a lista dropdown esteja visível o ícone no botão será 'folder-minus'."
            },
            {
              "kind": "field",
              "name": "isSmallScreen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado isSmallScreen, usado para verificar a largura do container pai e aplicar as mudanças do formato mobile.\nNo formato mobile o breadcrumb apresenta um comportamento específico."
            },
            {
              "kind": "field",
              "name": "isTruncate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o breadcrumb deve truncar os itens por falta de espaço."
            },
            {
              "kind": "field",
              "name": "parentWidth",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Largura do container pai do breadcrumb."
            },
            {
              "kind": "field",
              "name": "showTooltip",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado oculto ou visível do tooltip."
            },
            {
              "kind": "field",
              "name": "tooltipText",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Define o posicionamento do tooltip na tela."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "homeUrl",
              "type": {
                "text": "string"
              },
              "default": "'/'",
              "description": "Caso não seja fornecido, o valor padrão será /.",
              "deprecated": "Use `homeHref`."
            },
            {
              "kind": "field",
              "name": "homeHref",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL padrão da página inicial. Quando informada, tem precedência sobre `homeUrl`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "truncateAfter",
              "type": {
                "text": "number | undefined"
              },
              "description": "Quantidade máxima de crumbs exibidos antes de ativar o modo truncado.\nQuando omitida, o truncamento continua sendo decidido apenas pelo espaço disponível.\nValores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "crumbs",
              "type": {
                "text": "string | BreadcrumbItem[]"
              },
              "description": "Fornece os nomes e links do breadcrumb.\nUse uma string JSON no atributo HTML ou um array de `BreadcrumbItem` por property binding.\nCada item deve ter `label` string e pode ter `href`, `target`, `home` e `active`.\nItens inválidos são ignorados; se nenhum item válido restar, usa `defaultCrumbs` e avisa no console.",
              "parsedType": {
                "text": "string | { label: string, href: string, target: '_blank' | '_self' | '_parent' | '_top', home: boolean, active: boolean }[]"
              },
              "example": "```js\nconst breadcrumb = document.querySelector('br-breadcrumb');\nbreadcrumb.crumbs = [\n  { label: 'Início', href: '/' },\n  { label: 'Serviço', active: true },\n];\n```"
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como os links do breadcrumb integram a navegação mantendo `href` real nos itens navegáveis.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "handleCrumbPropsChange"
            },
            {
              "kind": "field",
              "name": "slotElement",
              "type": {
                "text": "HTMLSlotElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "hasLoaded",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "defaultCrumbs",
              "type": {
                "text": "BreadcrumbItem[]"
              },
              "privacy": "private",
              "default": "[ { label: 'Página 01', href: '/pagina-01' }, { label: 'Página 02', href: '/pagina-02' }, { label: 'Página Atual', active: true }, ]"
            },
            {
              "kind": "field",
              "name": "floatingManager",
              "type": {
                "text": "FloatingUIManager | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "hoveredElement",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "tooltipElement",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "tooltipArrowElement",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "resizeObserver",
              "type": {
                "text": "ResizeObserver"
              },
              "privacy": "private",
              "description": "Atualiza o estado 'isSmallScreen' com base no tamanho do container pai, se menor que 570px."
            },
            {
              "kind": "field",
              "name": "widthCalculationFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "crumbKeys",
              "privacy": "private",
              "readonly": true,
              "default": "new WeakMap<object, string>()"
            },
            {
              "kind": "field",
              "name": "crumbKeySequence",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "effectiveHomeHref",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveTruncateAfter",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "shouldTruncateByCount",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "shouldRenderTruncated",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "normalizeTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "BreadcrumbTarget | undefined"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "optional": true,
                  "type": {
                    "text": "string | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "registerCrumbItems",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "truncateText",
              "privacy": "private",
              "parameters": [
                {
                  "name": "word",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Verifica se o texto do link contém mais de 20 caracteres e realiza o truncamento deste caso positivo.\nO número de caracteres pode ser configurado na variável 'truncateCharactersLimit'."
            },
            {
              "kind": "method",
              "name": "isTruncatedLabel",
              "privacy": "private",
              "parameters": [
                {
                  "name": "text",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleMouseOver",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MouseEvent | FocusEvent"
                  }
                },
                {
                  "name": "text",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Exibe o tooltip e define seu posicionamento, caso o usuário realize o 'mouse over'."
            },
            {
              "kind": "method",
              "name": "handleMouseOut",
              "privacy": "private",
              "description": "Esconde o tooltip caso o usuário realize o 'mouse out'."
            },
            {
              "kind": "field",
              "name": "handleNavigation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "positionTooltip",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "cleanupTooltipPosition",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getParsedItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "BreadcrumbItem[]"
                }
              },
              "description": "Converte de string para JSON o valor passado na propriedade 'crumbs'.\nRetorna o valor padrão do Breadcrumbs caso crumbs seja vazio ou inválido"
            },
            {
              "kind": "method",
              "name": "getCrumbKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "object"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleHomeClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ],
              "description": "Ao clicar no botão HOME, direciona o usuário para a URL configurada."
            },
            {
              "kind": "method",
              "name": "toggleFolder",
              "privacy": "private",
              "description": "Altera o estado do botão 'Folder', caso a lista dropdown esteja aberta ou fechada."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Define as classes CSS usadas no breadcrumb."
            },
            {
              "kind": "field",
              "name": "updateContainerSize",
              "privacy": "private",
              "description": "Atualiza os estados de largura do breadcrumb ao detectar mudanças no container pai."
            },
            {
              "kind": "method",
              "name": "calculateItemsWidth",
              "privacy": "private",
              "description": "Calcula a largura total dos itens do breadcrumb para determinar se precisa de truncamento."
            },
            {
              "kind": "method",
              "name": "renderHomeButton",
              "privacy": "private",
              "description": "Renderiza botão Home"
            },
            {
              "kind": "method",
              "name": "renderTruncateButton",
              "privacy": "private",
              "description": "Renderiza botão Folder no comportamento truncado"
            },
            {
              "kind": "method",
              "name": "renderBreadcrumbItems",
              "privacy": "private",
              "description": "Renderiza itens do Breadcrumb no comportamento mobile ou truncado"
            },
            {
              "kind": "method",
              "name": "renderCollapsedBreadcrumbItems",
              "privacy": "private",
              "parameters": [
                {
                  "name": "parsedItems",
                  "type": {
                    "text": "BreadcrumbItem[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderDesktopBreadcrumbItems",
              "privacy": "private",
              "parameters": [
                {
                  "name": "parsedItems",
                  "type": {
                    "text": "BreadcrumbItem[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderMobileActiveItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "parsedItems",
                  "type": {
                    "text": "BreadcrumbItem[]"
                  }
                }
              ],
              "description": "Renderiza item da página atual"
            },
            {
              "kind": "method",
              "name": "renderBreadcrumbList",
              "privacy": "private",
              "parameters": [
                {
                  "name": "parsedItems",
                  "type": {
                    "text": "BreadcrumbItem[]"
                  }
                }
              ],
              "description": "Renderiza lista dropdown contendo os itens do Breadcrumb"
            },
            {
              "kind": "method",
              "name": "shouldSkipFloatingListItem",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getListItemAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getListItemKeyDownHandler",
              "privacy": "private",
              "description": "Com o roving tabindex de `br-list` (apenas um item por vez alcançável via Tab),\no item de onde o usuário sai da lista via Tab pode ser qualquer um -- não mais\nnecessariamente o de índice `totalItems - 3` como antes, quando todo item era\num tab stop nativo e Tab sempre percorria a lista em ordem sequencial. Por isso\no handler de saída é anexado a todo item; `handleKeyDownOut` já valida internamente\nse a saída deve de fato ocorrer (`isFolderOpen && shouldRenderTruncated && !isSmallScreen`)."
            },
            {
              "kind": "method",
              "name": "renderBreadcrumbListItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "BreadcrumbItem"
                  }
                },
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderBreadcrumbLink",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "BreadcrumbItem"
                  }
                }
              ],
              "description": "Renderiza itens do Breadcrumb no formato desktop"
            },
            {
              "kind": "method",
              "name": "renderTooltip",
              "privacy": "private",
              "description": "Renderiza Tooltip"
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Controla navegação pelo teclado após lista de itens aberta\nDispara foco no primeiro item da lista flutuante"
            },
            {
              "kind": "method",
              "name": "handleKeyDownOut",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Ao finalizar navegação por teclado dentro da lista, dispara foco no item fora da lista flutuante"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "home-url",
              "fieldName": "homeUrl",
              "default": "'/'",
              "description": "Caso não seja fornecido, o valor padrão será /."
            },
            {
              "name": "home-href",
              "fieldName": "homeHref",
              "description": "URL padrão da página inicial. Quando informada, tem precedência sobre `homeUrl`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "truncate-after",
              "fieldName": "truncateAfter",
              "description": "Quantidade máxima de crumbs exibidos antes de ativar o modo truncado.\nQuando omitida, o truncamento continua sendo decidido apenas pelo espaço disponível.\nValores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "crumbs",
              "fieldName": "crumbs",
              "description": "Fornece os nomes e links do breadcrumb.\nUse uma string JSON no atributo HTML ou um array de `BreadcrumbItem` por property binding.\nCada item deve ter `label` string e pode ter `href`, `target`, `home` e `active`.\nItens inválidos são ignorados; se nenhum item válido restar, usa `defaultCrumbs` e avisa no console.",
              "type": {
                "text": "string | BreadcrumbItem[]"
              },
              "parsedType": {
                "text": "string | { label: string, href: string, target: '_blank' | '_self' | '_parent' | '_top', home: boolean, active: boolean }[]"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como os links do breadcrumb integram a navegação mantendo `href` real nos itens navegáveis.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-breadcrumb",
          "status": "stable",
          "csspart": [
            {
              "name": "nav",
              "description": "Elemento nav do breadcrumb."
            },
            {
              "name": "list",
              "description": "Lista ordenada de itens do breadcrumb."
            }
          ],
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Breadcrumb",
          "declaration": {
            "name": "Breadcrumb",
            "module": "components/breadcrumb.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-breadcrumb",
          "declaration": {
            "name": "Breadcrumb",
            "module": "components/breadcrumb.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/breadcrumb-item/breadcrumb-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa um nível do `br-breadcrumb`. Use somente dentro dele.\n\nInforme `label` e `href`. Use `home` no primeiro item e `active` na página atual. O conteúdo do item, quando houver, substitui o texto de `label`.\n\nVeja como montar a trilha na documentação do `br-breadcrumb`.",
          "name": "BreadcrumbItem",
          "slots": [
            {
              "description": "Conteúdo alternativo do rótulo. Quando usado, substitui o texto fornecido em `label`.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Rótulo do item."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL do item.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "string | undefined"
              },
              "description": "Contexto de navegação.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "home",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Identifica o item inicial."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Identifica a página atual."
            },
            {
              "kind": "method",
              "name": "handlePropsChange"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "Rótulo do item."
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL do item.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Contexto de navegação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "home",
              "fieldName": "home",
              "default": "false",
              "description": "Identifica o item inicial."
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Identifica a página atual."
            }
          ],
          "tagName": "br-breadcrumb-item",
          "events": [
            {
              "name": "brCrumbPropsChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Protocolo compatível com o listener atual do breadcrumb."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "BreadcrumbItem",
          "declaration": {
            "name": "BreadcrumbItem",
            "module": "components/breadcrumb-item/breadcrumb-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-breadcrumb-item",
          "declaration": {
            "name": "BreadcrumbItem",
            "module": "components/breadcrumb-item/breadcrumb-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/crumb/crumb.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Nome antigo do `br-breadcrumb-item`, mantido para compatibilidade. Funciona da mesma forma; em código novo, use `br-breadcrumb-item`.",
          "name": "Crumb",
          "slots": [
            {
              "description": "Conteúdo alternativo do rótulo do item de navegação.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Rótulo (texto) do crumb."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no crumb.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "string | undefined"
              },
              "description": "Define o alvo do link quando `href` está presente. (ex: _blank, _self).",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "home",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o crumb é o item inicial (Home)."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o crumb é a página atual ativa no breadcrumb."
            },
            {
              "kind": "method",
              "name": "handlePropsChange"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "Rótulo (texto) do crumb."
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no crumb.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Define o alvo do link quando `href` está presente. (ex: _blank, _self).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "home",
              "fieldName": "home",
              "default": "false",
              "description": "Define se o crumb é o item inicial (Home)."
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Define se o crumb é a página atual ativa no breadcrumb."
            }
          ],
          "deprecated": "Use `br-breadcrumb-item`.",
          "tagName": "br-crumb",
          "status": "deprecated",
          "see": [
            "br-breadcrumb-item"
          ],
          "events": [
            {
              "name": "brCrumbPropsChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento disparado quando as propriedades do crumb mudam.\nO componente pai (br-breadcrumb) escuta este evento para se atualizar."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Crumb",
          "declaration": {
            "name": "Crumb",
            "module": "components/crumb/crumb.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-crumb",
          "declaration": {
            "name": "Crumb",
            "module": "components/crumb/crumb.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/button.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-button` executa uma ação: salvar, enviar um formulário, abrir um modal, aplicar um filtro.\n\nO texto e o ícone vão dentro do botão. A aparência é definida por `emphasis` (`primary`, `secondary` ou `tertiary`) e `shape` (`circle`, `block` ou `pill`).\n\n```html\n<br-button emphasis=\"primary\" type=\"submit\">Enviar</br-button>\n\n<br-button shape=\"circle\" aria-label=\"Fechar\">\n  <br-icon src=\"/icones/fechar.svg\"></br-icon>\n</br-button>\n```\n\nO tipo padrão é `button`. Use `type=\"submit\"` ou `type=\"reset\"` para agir sobre o formulário em que o botão está. Durante uma operação demorada, ative `loading`.\n\n### Quando usar\n\n- Executar uma ação na página atual.\n- Abrir modal, menu ou painel.\n\n### Quando evitar\n\n- Para ir a outra página: use `br-link` ou `<a>`.\n- Para escolher entre opções: use `br-radio` ou `br-checkbox`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/button?tab=designer).",
          "name": "Button",
          "cssParts": [
            {
              "description": "Parte para o elemento button interno, usada para estilos customizados via ::part(button).",
              "name": "button"
            }
          ],
          "slots": [
            {
              "description": "Slot para o rótulo ou conteúdo do botão.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrButtonElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "nativeButton",
              "type": {
                "text": "HTMLButtonElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "ButtonColorMode | undefined"
              },
              "description": "Define se o botão usará um esquema de cores escuro. Valores inválidos são ignorados.",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "ButtonDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "emphasis",
              "type": {
                "text": "ButtonEmphasis | undefined"
              },
              "description": "Define a ênfase do botão, alterando sua aparência para criar hierarquia visual e destacar ações importantes. Valores inválidos são ignorados.",
              "parsedType": {
                "text": "'primary' | 'secondary' | 'tertiary'"
              }
            },
            {
              "kind": "field",
              "name": "isActive",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o botão está no estado ativo.\nSe definido como verdadeiro, o botão será exibido como ativo.",
              "deprecated": "Use `active`."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isLoading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Aplica o estado de \"progresso\" ao botão.\nO botão exibirá um indicador de carregamento ou progresso.",
              "deprecated": "Use `loading`."
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado de carregamento atual. Quando informado, tem precedência sobre `isLoading`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "shape",
              "type": {
                "text": "ButtonShape | undefined"
              },
              "description": "Define o formato do botão. Valores inválidos são ignorados.",
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "ButtonType | undefined"
              },
              "description": "Define o tipo de botão, especificando seu comportamento padrão.\nQuando omitido, usa `button`; valores inválidos também usam `button` e geram aviso no console.",
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Define o valor inicial do botão em um formulário.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "customTabIndex",
              "type": {
                "text": "number | undefined"
              },
              "description": "Define o índice de tabulação do botão.\nÚtil para remover o botão da sequência de tabulação (tabindex=\"-1\") quando ele é puramente decorativo ou o foco é gerenciado por um componente pai.\nAceita inteiros maiores ou iguais a -1; valores inválidos são ignorados.",
              "deprecated": "Use o atributo/propriedade nativo `tabIndex` do host.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveCustomTabIndex",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaPressed",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Define o estado de pressionado do botão.\nEste atributo é usado para indicar se o botão está atualmente pressionado ou não.\nÉ especialmente útil para botões que podem ser alternados entre os estados pressionado e não pressionado.\nO valor deve ser 'true' ou 'false'.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaExpanded",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Indica se um elemento controlado pelo botão está expandido ou recolhido.\nUse em botões que abrem menus, acordeões ou outros painéis expansíveis.\nO valor deve ser 'true' ou 'false'.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaControls",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Referência ao ID do elemento que o botão controla.\nUse em conjunto com `ariaExpanded` para relacionar o botão ao painel que ele expande/recolhe.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaHaspopup",
              "type": {
                "text": "AriaHasPopup | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Indica que o botão abre um menu, listbox, tree, grid ou dialog.\nOs valores permitidos são: 'true', 'menu', 'listbox', 'tree', 'grid' ou 'dialog'.\nValores inválidos são removidos do elemento interno.",
              "parsedType": {
                "text": "'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'"
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "ButtonColorMode | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveEmphasis",
              "type": {
                "text": "ButtonEmphasis | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'primary' | 'secondary' | 'tertiary'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveShape",
              "type": {
                "text": "ButtonShape | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveType",
              "type": {
                "text": "ButtonType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAriaHaspopup",
              "type": {
                "text": "AriaHasPopup | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Define se o botão usará um esquema de cores escuro. Valores inválidos são ignorados.",
              "type": {
                "text": "ButtonColorMode"
              },
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "ButtonDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "emphasis",
              "fieldName": "emphasis",
              "description": "Define a ênfase do botão, alterando sua aparência para criar hierarquia visual e destacar ações importantes. Valores inválidos são ignorados.",
              "type": {
                "text": "ButtonEmphasis"
              },
              "parsedType": {
                "text": "'primary' | 'secondary' | 'tertiary'"
              }
            },
            {
              "name": "is-active",
              "fieldName": "isActive",
              "default": "false",
              "description": "Indica se o botão está no estado ativo.\nSe definido como verdadeiro, o botão será exibido como ativo."
            },
            {
              "name": "active",
              "fieldName": "active",
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-loading",
              "fieldName": "isLoading",
              "default": "false",
              "description": "Aplica o estado de \"progresso\" ao botão.\nO botão exibirá um indicador de carregamento ou progresso."
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "description": "Estado de carregamento atual. Quando informado, tem precedência sobre `isLoading`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "shape",
              "fieldName": "shape",
              "description": "Define o formato do botão. Valores inválidos são ignorados.",
              "type": {
                "text": "ButtonShape"
              },
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "Define o tipo de botão, especificando seu comportamento padrão.\nQuando omitido, usa `button`; valores inválidos também usam `button` e geram aviso no console.",
              "type": {
                "text": "ButtonType"
              },
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Define o valor inicial do botão em um formulário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "custom-tab-index",
              "fieldName": "customTabIndex",
              "description": "Define o índice de tabulação do botão.\nÚtil para remover o botão da sequência de tabulação (tabindex=\"-1\") quando ele é puramente decorativo ou o foco é gerenciado por um componente pai.\nAceita inteiros maiores ou iguais a -1; valores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "aria-pressed",
              "fieldName": "ariaPressed",
              "default": "null",
              "description": "Define o estado de pressionado do botão.\nEste atributo é usado para indicar se o botão está atualmente pressionado ou não.\nÉ especialmente útil para botões que podem ser alternados entre os estados pressionado e não pressionado.\nO valor deve ser 'true' ou 'false'.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "aria-expanded",
              "fieldName": "ariaExpanded",
              "default": "null",
              "description": "Indica se um elemento controlado pelo botão está expandido ou recolhido.\nUse em botões que abrem menus, acordeões ou outros painéis expansíveis.\nO valor deve ser 'true' ou 'false'.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "aria-controls",
              "fieldName": "ariaControls",
              "default": "null",
              "description": "Referência ao ID do elemento que o botão controla.\nUse em conjunto com `ariaExpanded` para relacionar o botão ao painel que ele expande/recolhe.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "aria-haspopup",
              "fieldName": "ariaHaspopup",
              "default": "null",
              "description": "Indica que o botão abre um menu, listbox, tree, grid ou dialog.\nOs valores permitidos são: 'true', 'menu', 'listbox', 'tree', 'grid' ou 'dialog'.\nValores inválidos são removidos do elemento interno.",
              "type": {
                "text": "AriaHasPopup | null"
              },
              "parsedType": {
                "text": "'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'"
              }
            }
          ],
          "tagName": "br-button",
          "status": "stable",
          "csspart": {
            "name": "button",
            "description": "Parte para o elemento button interno, usada para estilos customizados via ::part(button)."
          },
          "events": [],
          "customElement": true,
          "category": "Ações",
          "categories": [
            "Ações",
            "Formulários"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Button",
          "declaration": {
            "name": "Button",
            "module": "components/button.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-button",
          "declaration": {
            "name": "Button",
            "module": "components/button.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/card.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-card` agrupa conteúdos sobre um mesmo assunto em um bloco destacado, como um serviço, uma notícia ou um resultado de busca.\n\nOrganize o conteúdo nos slots `media`, `header`, `content` e `footer`, ou coloque tudo no slot padrão.\n\n```html\n<br-card>\n  <img slot=\"media\" src=\"/imagens/servico.jpg\" alt=\"\" />\n  <h3 slot=\"header\">Carteira de Trabalho Digital</h3>\n  <p slot=\"content\">Consulte seus vínculos de emprego.</p>\n  <br-button slot=\"footer\" emphasis=\"secondary\">Acessar</br-button>\n</br-card>\n```\n\nUse `interactive` quando o card inteiro for clicável, para dar o retorno visual ao passar o mouse.\n\n### Quando usar\n\n- Blocos independentes exibidos em grade ou lista.\n- Conteúdo que combina imagem, título, texto e ações.\n\n### Quando evitar\n\n- Dados para comparar em linhas e colunas: use `br-table`.\n- Uma lista simples de textos ou links: use `br-list`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/card?tab=designer).",
          "name": "BrCard",
          "cssParts": [
            {
              "description": "Área principal do card.",
              "name": "wrapper"
            },
            {
              "description": "Área de mídia do card.",
              "name": "media"
            },
            {
              "description": "Área do cabeçalho.",
              "name": "header"
            },
            {
              "description": "Área do conteúdo principal.",
              "name": "content"
            },
            {
              "description": "Área do rodapé.",
              "name": "footer"
            }
          ],
          "slots": [
            {
              "description": "Slot para conteúdo livre do card, quando não usar a estrutura de slots nomeados.",
              "name": "default"
            },
            {
              "description": "Slot para conteúdo de mídia exibido antes do cabeçalho.",
              "name": "media"
            },
            {
              "description": "Slot para o conteúdo do cabeçalho do card.",
              "name": "header"
            },
            {
              "description": "Slot para o corpo principal do card ao usar a estrutura de slots.",
              "name": "content"
            },
            {
              "description": "Slot para o conteúdo do rodapé do card.",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCardElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "hover",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o card tem hover interativo.\nQuando true, o card terá efeitos visuais ao passar o mouse.",
              "deprecated": "Use `interactive`."
            },
            {
              "kind": "field",
              "name": "interactive",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Habilita indicação visual de interatividade. Quando informada, tem precedência sobre `hover`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "hasMedia",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasHeader",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFooter",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "slotObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "checkSlots",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getHeaderClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getContentClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getFooterClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "hover",
              "fieldName": "hover",
              "default": "false",
              "description": "Define se o card tem hover interativo.\nQuando true, o card terá efeitos visuais ao passar o mouse."
            },
            {
              "name": "interactive",
              "fieldName": "interactive",
              "description": "Habilita indicação visual de interatividade. Quando informada, tem precedência sobre `hover`.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-card",
          "status": "stable",
          "csspart": [
            {
              "name": "wrapper",
              "description": "Área principal do card."
            },
            {
              "name": "media",
              "description": "Área de mídia do card."
            },
            {
              "name": "header",
              "description": "Área do cabeçalho."
            },
            {
              "name": "content",
              "description": "Área do conteúdo principal."
            },
            {
              "name": "footer",
              "description": "Área do rodapé."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Layout",
          "categories": [
            "Layout",
            "Conteúdo"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "BrCard",
          "declaration": {
            "name": "BrCard",
            "module": "components/card.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-card",
          "declaration": {
            "name": "BrCard",
            "module": "components/card.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/carousel.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-carousel` mostra uma sequência de slides, um por vez, com botões de anterior e próximo e indicadores de posição.\n\nColoque cada slide em um `br-carousel-page` e dê um nome ao carrossel com `aria-label`.\n\n```html\n<br-carousel aria-label=\"Destaques\">\n  <br-carousel-page>\n    <img src=\"/imagens/campanha.jpg\" alt=\"Campanha de vacinação\" />\n  </br-carousel-page>\n  <br-carousel-page>\n    <p>Atualize seu cadastro até 30 de junho.</p>\n  </br-carousel-page>\n</br-carousel>\n```\n\nPara ouvir a troca de slide, use `brCarouselPageChange`; `detail.activePage` começa em 1.\n\n### Quando usar\n\n- Imagens ou avisos com a mesma importância, em espaço limitado.\n\n### Quando evitar\n\n- Informação essencial para a tarefa: mostre tudo de uma vez, por exemplo em uma grade de `br-card`.\n- Etapas de um formulário: use `br-wizard` ou `br-step`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/carousel?tab=designer).",
          "name": "Carousel",
          "cssParts": [
            {
              "description": "Elemento raiz do carrossel. Recebe `role=\"region\"` e `aria-roledescription=\"carousel\"`.",
              "name": "container"
            },
            {
              "description": "Área do palco que contém os slides. Recebe `aria-live` e `aria-atomic`.",
              "name": "stage"
            },
            {
              "description": "Wrapper do botão de navegação para o slide anterior.",
              "name": "nav-prev"
            },
            {
              "description": "Wrapper do botão de navegação para o próximo slide.",
              "name": "nav-next"
            },
            {
              "description": "Wrapper do indicador de páginas. - Quando `indicatorType=\"simple\"`: renderiza `br-step` em `mode=\"tablist\"`. - Quando `indicatorType=\"textual\"`: renderiza um `span[aria-live]` com \"X/N\".",
              "name": "indicator"
            },
            {
              "description": "Wrapper do botão de play/pause. Presente apenas quando `autoPlay=true`.",
              "name": "play-button"
            }
          ],
          "slots": [
            {
              "description": "Slot para os slides do carrossel. Aceita exclusivamente elementos `br-carousel-page`.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "activePage",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "isPlaying",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isRotating",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "`true` somente enquanto o timer de autoPlay está ativamente disparando.\nDifere de `isPlaying`: ao pausar por hover/foco, `isPlaying` permanece `true`\nmas `isRotating` torna-se `false`, liberando o `aria-live` para anunciar\nmudanças manuais de slide ao leitor de tela."
            },
            {
              "kind": "field",
              "name": "pages",
              "type": {
                "text": "HTMLBrCarouselPageElement[]"
              },
              "privacy": "private",
              "default": "[]",
              "description": "Lista de slides. Declarada como"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Rótulo acessível do carrossel.\nNão deve conter a palavra \"carrossel\" (W3C APG).\nAtribuído ao `aria-label` do container raiz."
            },
            {
              "kind": "field",
              "name": "navPosition",
              "type": {
                "text": "CarouselNavPosition"
              },
              "readonly": true,
              "default": "'outside'",
              "description": "Posição dos botões de navegação (prev/next) em relação ao palco.\n- `outside`: botões ficam nas laterais externas ao palco.\n- `inside`: botões ficam sobrepostos dentro do palco, ocupando toda a altura.",
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "kind": "field",
              "name": "indicatorType",
              "type": {
                "text": "CarouselIndicatorType"
              },
              "readonly": true,
              "default": "'simple'",
              "description": "Define o tipo de indicador de páginas renderizado.\n- `simple`: dots usando `br-step` em modo controller.\n- `textual`: texto \"X/N\" com `aria-live`.\n- `none`: sem indicador.",
              "parsedType": {
                "text": "'simple' | 'textual' | 'none'"
              }
            },
            {
              "kind": "field",
              "name": "indicatorPosition",
              "type": {
                "text": "CarouselIndicatorPosition"
              },
              "readonly": true,
              "default": "'outside'",
              "description": "Posição do indicador de páginas em relação ao palco.\nIgnorada quando `indicatorType=\"none\"`.\n- `outside`: indicador fica abaixo do palco.\n- `inside`: indicador fica sobreposto ao conteúdo.",
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "kind": "field",
              "name": "isCircular",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Habilita a navegação circular entre os slides.\nQuando true, os botões \"Anterior\" e \"Próximo\" permanecem sempre habilitados: avançar a partir do último slide retorna ao primeiro, e retroceder a partir do primeiro leva ao último.\nSe autoPlay estiver ativado, o comportamento circular será aplicado automaticamente, independentemente deste valor.",
              "deprecated": "Use `circular`."
            },
            {
              "kind": "field",
              "name": "circular",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Habilita navegação circular. Quando informada, tem precedência sobre `isCircular`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "autoPlay",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Habilita reprodução automática.\nPausa em hover e foco (W3C). Ativa o loop circular automaticamente.\nNão recomendado em dispositivos móveis.",
              "deprecated": "Use `autoplay`."
            },
            {
              "kind": "field",
              "name": "autoplay",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Habilita reprodução automática. Quando informada, tem precedência sobre `autoPlay`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "interval",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "5000",
              "description": "Intervalo em milissegundos entre cada avanço automático.\nDeve ser um inteiro maior que 0; valores inválidos usam `5000`.\nSó tem efeito quando `autoPlay=true`."
            },
            {
              "kind": "field",
              "name": "direction",
              "type": {
                "text": "CarouselDirection"
              },
              "readonly": true,
              "default": "'right'",
              "description": "Direção de navegação automática do carrossel.\n- `left`: retrocede (vai para o slide anterior).\n- `right`: avança (vai para o próximo slide).\nSó tem efeito quando `autoPlay=true`.",
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "CarouselColorMode"
              },
              "readonly": true,
              "description": "Aplica esquema de cores escuro ao componente.",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "mobileNav",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe botões de navegação em dispositivos móveis.\nPor padrão os botões são ocultados no breakpoint `sm`."
            },
            {
              "kind": "field",
              "name": "minHeight",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Altura mínima do palco do carrossel.\nAceita qualquer valor CSS válido para `min-height` (ex.: `400px`, `50vh`)."
            },
            {
              "kind": "field",
              "name": "height",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Altura do carrossel.\nAceita qualquer valor CSS válido para `height` (ex.: `400px`, `50vh`)."
            },
            {
              "kind": "field",
              "name": "maxWidth",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Largura máxima do carrossel.\nQuando definido, o componente é centralizado horizontalmente.\nAceita qualquer valor CSS válido para `max-width` (ex.: `800px`, `64rem`)."
            },
            {
              "kind": "field",
              "name": "imageFit",
              "type": {
                "text": "CarouselImageFit"
              },
              "readonly": true,
              "default": "'cover'",
              "description": "Ajuste aplicado a imagens filhas diretas de `br-carousel-page`.",
              "parsedType": {
                "text": "'none' | 'contain' | 'cover' | 'fill' | 'scale-down'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavPosition",
              "type": {
                "text": "CarouselNavPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveIndicatorType",
              "type": {
                "text": "CarouselIndicatorType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'simple' | 'textual' | 'none'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveIndicatorPosition",
              "type": {
                "text": "CarouselIndicatorPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveDirection",
              "type": {
                "text": "CarouselDirection"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "CarouselColorMode | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveImageFit",
              "type": {
                "text": "CarouselImageFit"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'none' | 'contain' | 'cover' | 'fill' | 'scale-down'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveInterval",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "onActivePageChange",
              "parameters": [
                {
                  "name": "newVal",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "oldVal",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onTablistKeydown",
              "parameters": [
                {
                  "name": "e",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Navegação por teclado para o modo tablist (`indicatorType=\"simple\"`).\n\nO W3C APG Carousel Pattern especifica que, quando os controles de seleção de slide\nsão implementados como tabs, a interação de teclado segue o\nhttps://www.w3.org/WAI/ARIA/apg/patterns/tabs/ Tabs Pattern (W3C APG).\nEsse padrão define o comportamento de roving tabindex com as teclas:\n- `ArrowLeft` / `ArrowRight` (ou `ArrowUp` / `ArrowDown`): move o foco entre as tabs.\n- `Home`: move o foco para a primeira tab.\n- `End`: move o foco para a última tab.\n\nO handler está no `br-carousel` (e não no `br-step`) porque a lógica de\n`effectiveCircular` é uma responsabilidade do carrossel, mantendo uma única\nfonte de verdade para a navegação circular.\n\nO evento `keydown` é composto (`composed: true`), portanto borbulha através do\nshadow DOM do `br-step-item` até o host do `br-carousel`."
            },
            {
              "kind": "method",
              "name": "nextPage",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Avança para o próximo slide. Respeita a prop `isCircular` (ou ativo automaticamente com `autoPlay`)."
            },
            {
              "kind": "method",
              "name": "previousPage",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Retorna ao slide anterior. Respeita a prop `isCircular` (ou ativo automaticamente com `autoPlay`)."
            },
            {
              "kind": "method",
              "name": "goToPage",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Navega para o slide de número `index` (1 = primeiro slide, 2 = segundo, …).\nValores fora do intervalo válido são ignorados."
            },
            {
              "kind": "method",
              "name": "getActivePage",
              "return": {
                "type": {
                  "text": "Promise<number>"
                }
              },
              "description": "Retorna o número do slide atualmente ativo (1 = primeiro slide, 2 = segundo, …)."
            },
            {
              "kind": "method",
              "name": "play",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Inicia ou retoma a reprodução automática programaticamente."
            },
            {
              "kind": "method",
              "name": "pause",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Pausa a reprodução automática programaticamente."
            },
            {
              "kind": "method",
              "name": "getIsPlaying",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se a reprodução automática está ativa no momento."
            },
            {
              "kind": "field",
              "name": "stepRef",
              "type": {
                "text": "HTMLBrStepElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "autoPlayTimer",
              "type": {
                "text": "ReturnType<typeof setInterval> | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "isPausedByFocus",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isHovering",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Rastreia se o cursor está sobre o carrossel (para evitar retomar ao sair do foco enquanto hover ativo)."
            },
            {
              "kind": "field",
              "name": "isUserExplicitlyPlaying",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Quando true, o usuário iniciou explicitamente via botão — hover e foco não pausam a rotação."
            },
            {
              "kind": "field",
              "name": "stageRef",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "carouselSwipe",
              "type": {
                "text": "UniversalSwipe | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "slotEl",
              "type": {
                "text": "HTMLSlotElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "MOBILE_MQ",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "readonly": true,
              "default": "'(max-width: 576px)'",
              "parsedType": {
                "text": "'(max-width: 576px)'"
              }
            },
            {
              "kind": "field",
              "name": "mobileMediaQuery",
              "type": {
                "text": "MediaQueryList | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "reducedMotionMediaQuery",
              "type": {
                "text": "MediaQueryList | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "NAVIGATION_KEYS",
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "new Set(['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'])"
            },
            {
              "kind": "field",
              "name": "slideElements",
              "type": {
                "text": "HTMLBrCarouselPageElement[]"
              },
              "privacy": "private",
              "description": "Retorna os slides atribuídos ao slot do carrossel.\n\nUsa `slot.assignedElements()` quando o slot já está disponível (após `componentDidLoad`):\na API retorna diretamente a lista interna do browser.\n\nRecorre a `querySelectorAll` apenas em `componentWillLoad`, quando o shadow DOM\nainda não foi renderizado e `slotEl` é `null`.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "onSlotChange",
              "privacy": "private",
              "description": "Reatualiza a lista de slides e reinicializa os atributos quando o conteúdo\ndo slot muda (slides adicionados ou removidos dinamicamente)."
            },
            {
              "kind": "field",
              "name": "onBreakpointChange",
              "type": {
                "text": "(e: MediaQueryListEvent) => void"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onReducedMotionChange",
              "type": {
                "text": "(e: MediaQueryListEvent) => void"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onReducedMotionOverrideChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "prefersReducedMotion",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "initAutoPlay",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "slideId",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Retorna o ID único de um slide pelo índice (0-based).\nPrioriza o `customId` definido no próprio `br-carousel-page`, quando presente.\nCaso contrário, gera automaticamente no formato `{carousel-id}-slide-{n}`.\nUsado para vincular `controls-id` das tabs ao `id` do tabpanel correspondente."
            },
            {
              "kind": "field",
              "name": "effectiveCircular",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Circular efetivo: ativo quando `isCircular=true` OU quando `autoPlay=true`.\nUsar este getter em toda a lógica interna em vez de `this.isCircular` diretamente.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveAutoplay",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "positionSlides",
              "privacy": "private",
              "parameters": [
                {
                  "name": "activeIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Reposiciona todos os slides inativos com base no índice ativo.\nSlides após o ativo ficam à direita (100%), antes ficam à esquerda (-100%)."
            },
            {
              "kind": "method",
              "name": "initPages",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "goTo",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncStepIndicator",
              "privacy": "private",
              "parameters": [
                {
                  "name": "newVal",
                  "default": "this.activePage"
                },
                {
                  "name": "oldVal",
                  "default": "null",
                  "type": {
                    "text": "number | null"
                  }
                }
              ],
              "description": "Mantém o atributo `active` dos `br-step-item` filhos do `br-step` em sincronia\ncom o slide ativo. Recebe o novo e o antigo índice para otimizar a atualização (removendo o atributo apenas do item anterior, em vez de iterar por todos os itens).\nSe `oldVal` for `null`, atualiza todos os itens (caso de inicialização ou mudança completa de slides)."
            },
            {
              "kind": "method",
              "name": "getDataStage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CarouselDataStage"
                }
              }
            },
            {
              "kind": "method",
              "name": "scheduleInterval",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "clearTimer",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isPrevDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isNextDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "onMouseEnter",
              "privacy": "private",
              "description": "Handlers de eventos do DOM — mouse, foco e interação do usuário."
            },
            {
              "kind": "field",
              "name": "onMouseLeave",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onFocusIn",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onFocusOut",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onSwipeLeft",
              "privacy": "private",
              "description": "Swipe — configuração e limpeza de gestos touch/pointer em mobile."
            },
            {
              "kind": "field",
              "name": "onSwipeRight",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setupSwipeListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "cleanupSwipeListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resolveTablistKeyIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Calcula o índice alvo com base na tecla pressionada no modo tablist."
            },
            {
              "kind": "method",
              "name": "focusStepItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Move o foco para o `br-step-item` de índice `index`.\n\nEm modo tablist, a semântica ARIA (`role=\"tab\"`, `tabIndex`, `aria-selected`) é\naplicada diretamente no host do `br-step-item` — não no botão interno, que fica\ninerte. Por isso o foco vai para o próprio host, e o ring visual é controlado\nvia `:host(.role-tab:focus-visible)` no CSS do componente."
            },
            {
              "kind": "field",
              "name": "onStepChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onPrevClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onNextClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onPlayToggle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getHostStyle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderPlayButton",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderNavButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "direction",
                  "type": {
                    "text": "CarouselNavigationDirection"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderIndicator",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Rótulo acessível do carrossel.\nNão deve conter a palavra \"carrossel\" (W3C APG).\nAtribuído ao `aria-label` do container raiz.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "nav-position",
              "fieldName": "navPosition",
              "default": "'outside'",
              "description": "Posição dos botões de navegação (prev/next) em relação ao palco.\n- `outside`: botões ficam nas laterais externas ao palco.\n- `inside`: botões ficam sobrepostos dentro do palco, ocupando toda a altura.",
              "type": {
                "text": "CarouselNavPosition"
              },
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "name": "indicator-type",
              "fieldName": "indicatorType",
              "default": "'simple'",
              "description": "Define o tipo de indicador de páginas renderizado.\n- `simple`: dots usando `br-step` em modo controller.\n- `textual`: texto \"X/N\" com `aria-live`.\n- `none`: sem indicador.",
              "type": {
                "text": "CarouselIndicatorType"
              },
              "parsedType": {
                "text": "'simple' | 'textual' | 'none'"
              }
            },
            {
              "name": "indicator-position",
              "fieldName": "indicatorPosition",
              "default": "'outside'",
              "description": "Posição do indicador de páginas em relação ao palco.\nIgnorada quando `indicatorType=\"none\"`.\n- `outside`: indicador fica abaixo do palco.\n- `inside`: indicador fica sobreposto ao conteúdo.",
              "type": {
                "text": "CarouselIndicatorPosition"
              },
              "parsedType": {
                "text": "'outside' | 'inside'"
              }
            },
            {
              "name": "is-circular",
              "fieldName": "isCircular",
              "default": "false",
              "description": "Habilita a navegação circular entre os slides.\nQuando true, os botões \"Anterior\" e \"Próximo\" permanecem sempre habilitados: avançar a partir do último slide retorna ao primeiro, e retroceder a partir do primeiro leva ao último.\nSe autoPlay estiver ativado, o comportamento circular será aplicado automaticamente, independentemente deste valor.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "circular",
              "fieldName": "circular",
              "description": "Habilita navegação circular. Quando informada, tem precedência sobre `isCircular`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "auto-play",
              "fieldName": "autoPlay",
              "default": "false",
              "description": "Habilita reprodução automática.\nPausa em hover e foco (W3C). Ativa o loop circular automaticamente.\nNão recomendado em dispositivos móveis.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "autoplay",
              "fieldName": "autoplay",
              "description": "Habilita reprodução automática. Quando informada, tem precedência sobre `autoPlay`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "interval",
              "fieldName": "interval",
              "default": "5000",
              "description": "Intervalo em milissegundos entre cada avanço automático.\nDeve ser um inteiro maior que 0; valores inválidos usam `5000`.\nSó tem efeito quando `autoPlay=true`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "direction",
              "fieldName": "direction",
              "default": "'right'",
              "description": "Direção de navegação automática do carrossel.\n- `left`: retrocede (vai para o slide anterior).\n- `right`: avança (vai para o próximo slide).\nSó tem efeito quando `autoPlay=true`.",
              "type": {
                "text": "CarouselDirection"
              },
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Aplica esquema de cores escuro ao componente.",
              "type": {
                "text": "CarouselColorMode"
              },
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "name": "mobile-nav",
              "fieldName": "mobileNav",
              "default": "false",
              "description": "Exibe botões de navegação em dispositivos móveis.\nPor padrão os botões são ocultados no breakpoint `sm`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "min-height",
              "fieldName": "minHeight",
              "description": "Altura mínima do palco do carrossel.\nAceita qualquer valor CSS válido para `min-height` (ex.: `400px`, `50vh`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "description": "Altura do carrossel.\nAceita qualquer valor CSS válido para `height` (ex.: `400px`, `50vh`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "max-width",
              "fieldName": "maxWidth",
              "description": "Largura máxima do carrossel.\nQuando definido, o componente é centralizado horizontalmente.\nAceita qualquer valor CSS válido para `max-width` (ex.: `800px`, `64rem`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "image-fit",
              "fieldName": "imageFit",
              "default": "'cover'",
              "description": "Ajuste aplicado a imagens filhas diretas de `br-carousel-page`.",
              "type": {
                "text": "CarouselImageFit"
              },
              "parsedType": {
                "text": "'none' | 'contain' | 'cover' | 'fill' | 'scale-down'"
              }
            }
          ],
          "tagName": "br-carousel",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Elemento raiz do carrossel. Recebe `role=\"region\"` e `aria-roledescription=\"carousel\"`."
            },
            {
              "name": "stage",
              "description": "Área do palco que contém os slides. Recebe `aria-live` e `aria-atomic`."
            },
            {
              "name": "nav-prev",
              "description": "Wrapper do botão de navegação para o slide anterior."
            },
            {
              "name": "nav-next",
              "description": "Wrapper do botão de navegação para o próximo slide."
            },
            {
              "name": "indicator",
              "description": "Wrapper do indicador de páginas. - Quando `indicatorType=\"simple\"`: renderiza `br-step` em `mode=\"tablist\"`. - Quando `indicatorType=\"textual\"`: renderiza um `span[aria-live]` com \"X/N\"."
            },
            {
              "name": "play-button",
              "description": "Wrapper do botão de play/pause. Presente apenas quando `autoPlay=true`."
            }
          ],
          "events": [
            {
              "name": "brDidPageChange",
              "type": {
                "text": "EventEmitter<CarouselPageChangeDetail>"
              },
              "description": "Emitido quando o slide ativo muda.\nDisparado por clique nos botões de navegação, clique no indicador de step,\ngesto swipe (apenas em mobile, breakpoint < 576px) ou avanço automático.\n`activePage` é 1-based: o primeiro slide emite `1`, o segundo `2`, e assim por diante."
            },
            {
              "name": "brCarouselPageChange",
              "type": {
                "text": "EventEmitter<CarouselPageChangeDetail>"
              },
              "description": "Evento emitido quando o slide ativo muda."
            },
            {
              "name": "brDidAutoPlayStart",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando a reprodução automática é iniciada ou retomada."
            },
            {
              "name": "brCarouselAutoplayStart",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando a reprodução automática começa."
            },
            {
              "name": "brDidAutoPlayPause",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando a reprodução automática é pausada."
            },
            {
              "name": "brCarouselAutoplayPause",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando a reprodução automática é pausada."
            }
          ],
          "customElement": true,
          "category": "Conteúdo",
          "categories": [
            "Conteúdo",
            "Navegação"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Carousel",
          "declaration": {
            "name": "Carousel",
            "module": "components/carousel.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-carousel",
          "declaration": {
            "name": "Carousel",
            "module": "components/carousel.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/carousel-page/carousel-page.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa um slide do `br-carousel`. Use somente dentro dele.\n\nColoque no slide a imagem, o texto e as ações. Para começar em um slide que não seja o primeiro, marque-o com `active`; depois disso, o `br-carousel` controla o slide ativo.",
          "name": "CarouselPage",
          "cssParts": [
            {
              "description": "Wrapper interno do conteúdo do slide.",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Qualquer conteúdo: imagens, textos, cards, vídeos, outros componentes do Design System.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "isActive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "panelRole",
              "type": {
                "text": "'group' | 'tabpanel'"
              },
              "privacy": "private",
              "default": "'group'",
              "description": "Role ARIA interna do slide.\n- `group`: padrão W3C para carrossel básico/agrupado.\n- `tabpanel`: definido automaticamente quando o pai `br-carousel`\n  usa `indicatorType=\"simple\"`, conforme o padrão W3C.\nDerivado automaticamente de `indicator-type` do `br-carousel` pai.",
              "parsedType": {
                "text": "'group' | 'tabpanel'"
              }
            },
            {
              "kind": "field",
              "name": "slideLabel",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Identificador único customizável do slide.\nQuando definido, é aplicado diretamente ao atributo `id` do elemento host,\ngarantindo que referências ARIA externas, testes automatizados e âncoras funcionem corretamente.\nO `br-carousel` pai detecta este valor e usa-o também no `controls-id` do indicador de tabs,\nmantendo o vínculo ARIA entre tab e tabpanel automaticamente.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marca este slide como visível e acessível.\nPode ser usado declarativamente no HTML para definir o slide inicial:\nEm runtime, o `br-carousel` pai gerencia o estado via `setActive()`."
            },
            {
              "kind": "method",
              "name": "onActiveChange",
              "parameters": [
                {
                  "name": "newVal",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setLabel",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "defaultLabel",
                  "type": {
                    "text": "string"
                  },
                  "description": "Label de fallback gerado pelo `br-carousel` (ex: `\"Slide 2 de 4\"`)."
                }
              ],
              "description": "Define o label acessível (`aria-label`) do slide.\n\nChamado pelo `br-carousel` pai para aplicar o label gerado automaticamente\ncom base na posição do slide (ex: `\"Slide 1 de 3\"`).\n\nO `aria-label` declarado diretamente no elemento tem prioridade:\nse o consumidor definir `aria-label` no HTML ou via `setAttribute`,\nesse valor será mantido e o parâmetro `defaultLabel` será ignorado."
            },
            {
              "kind": "method",
              "name": "setActive",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "active",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Ativa ou desativa o slide."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único customizável do slide.\nQuando definido, é aplicado diretamente ao atributo `id` do elemento host,\ngarantindo que referências ARIA externas, testes automatizados e âncoras funcionem corretamente.\nO `br-carousel` pai detecta este valor e usa-o também no `controls-id` do indicador de tabs,\nmantendo o vínculo ARIA entre tab e tabpanel automaticamente.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Marca este slide como visível e acessível.\nPode ser usado declarativamente no HTML para definir o slide inicial:\nEm runtime, o `br-carousel` pai gerencia o estado via `setActive()`.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-carousel-page",
          "csspart": {
            "name": "content",
            "description": "Wrapper interno do conteúdo do slide."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CarouselPage",
          "declaration": {
            "name": "CarouselPage",
            "module": "components/carousel-page/carousel-page.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-carousel-page",
          "declaration": {
            "name": "CarouselPage",
            "module": "components/carousel-page/carousel-page.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/checkbox.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-checkbox` marca ou desmarca uma opção independente. Funciona em formulários como um `<input type=\"checkbox\">`: é enviado com `name` e `value` quando está marcado.\n\n```html\n<br-checkbox name=\"termos\" value=\"aceito\" label=\"Li e aceito os termos\" required></br-checkbox>\n```\n\nUse `indeterminate` para indicar seleção parcial, por exemplo em um \"selecionar todos\" quando só parte dos itens está marcada.\n\n### Quando usar\n\n- Opções em que escolher uma não impede escolher outra.\n- Confirmar uma condição, como aceitar termos.\n\n### Quando evitar\n\n- Só uma opção pode ser escolhida: use `br-radio-group`.\n- A mudança vale na hora, sem enviar formulário: use `br-switch`.\n- Muitas opções em pouco espaço: use `br-select` com `multiple`.\n\nPara várias opções da mesma pergunta, agrupe-as em um `br-checkbox-group`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/checkbox?tab=designer).",
          "name": "Checkbox",
          "cssParts": [
            {
              "description": "Contêiner visual do checkbox.",
              "name": "container"
            },
            {
              "description": "Elemento input nativo do checkbox.",
              "name": "input"
            },
            {
              "description": "Rótulo do checkbox.",
              "name": "label"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Slot para o rótulo do checkbox, como alternativa à propriedade label.",
              "name": "default"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCheckboxElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla o estado de disabled herdado do form/fieldset pai."
            },
            {
              "kind": "field",
              "name": "groupDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado `disabled` herdado de um `br-checkbox-group`."
            },
            {
              "kind": "field",
              "name": "numberOfChildren",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Define o número de checkboxes filhos em um grupo de checkboxes."
            },
            {
              "kind": "field",
              "name": "slotDefault",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot default possui conteúdo."
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot de feedback possui conteúdo fornecido pelo consumidor."
            },
            {
              "kind": "field",
              "name": "manualValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Mensagem definida pela Constraint Validation API."
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado intermediário do checkbox.\nQuando verdadeiro, exibe uma marcação parcial visual que indica seleção parcial.\nÚtil para representar grupos onde alguns itens estão selecionados, mas não todos.\nAo clicar no checkbox neste estado, ele será automaticamente alterado para marcado."
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado de seleção do checkbox.\nSe definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o checkbox, tornando-o não interativo."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o checkbox é obrigatório e deve ser marcado antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "CheckboxValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do checkbox.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst checkbox = document.querySelector('br-checkbox');\ncheckbox.validator = (checked) => checked ? null : 'Confirme para continuar';\n```"
            },
            {
              "kind": "field",
              "name": "hasHiddenLabel",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Define se o label associado ao checkbox deve ser oculto.\nSe definido como verdadeiro, o texto do label será oculto, mas o checkbox ainda estará visível e funcional.",
              "deprecated": "Use `labelHidden`."
            },
            {
              "kind": "field",
              "name": "labelHidden",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "description": "Texto descritivo exibido à direita do checkbox.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o nome do checkbox, que é utilizado para agrupar checkboxes em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários."
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "readonly": true,
              "description": "Indica a validade do checkbox.\nSe não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.",
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "readonly": true,
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o valor associado ao checkbox quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o checkbox está selecionado.\n**Nota:** Esta propriedade não deve ser utilizada para determinar se o checkbox está selecionado; para verificar o estado de seleção, use a propriedade `checked`."
            },
            {
              "kind": "field",
              "name": "isFather",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Indica se o checkbox é pai de um grupo de checkboxes.",
              "deprecated": "Configure seleção coletiva em `br-checkbox-group`/`br-checkgroup`."
            },
            {
              "kind": "method",
              "name": "handleIndeterminateWatch",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCheckedWatch",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInternalSyncRequest"
            },
            {
              "kind": "method",
              "name": "handleCheckboxGroupState",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ managed: boolean; disabled: boolean }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncNativeInputState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "indeterminate",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "checked",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDisabledWatch"
            },
            {
              "kind": "method",
              "name": "dispatchInternalStateChange",
              "privacy": "private",
              "description": "Notifica somente coordenadores internos sobre mudanças de estado. O\nprotocolo não substitui `input`/`change` públicos e não é documentado no\nCEM para não transformar uma sincronização interna em API de consumo."
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do checkbox for válido, caso contrário `false`.\nSe o checkbox for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do checkbox for válido, caso contrário `false`.\nSe for inválido, exibe a mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define uma mensagem de validação customizada para o checkbox.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do checkbox e retorna se o valor atual é válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "setIndeterminate",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Novo valor para o estado indeterminado."
                }
              ],
              "description": "Define o estado indeterminado do checkbox."
            },
            {
              "kind": "method",
              "name": "toggleChecked",
              "description": "Inverte o valor da prop `checked`",
              "deprecated": "Atualize a propriedade `checked` diretamente."
            },
            {
              "kind": "method",
              "name": "setNumberOfChildren",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  },
                  "description": "Número de checkboxes filhos."
                }
              ],
              "description": "Define o número de checkboxes filhos em um grupo de checkboxes."
            },
            {
              "kind": "field",
              "name": "initialChecked",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "initialIndeterminate",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private",
              "description": "Referência nativa do input checkbox para acessar a API de validação"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncGroupDisabledFromParent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hasSlotContentDefault",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "method",
              "name": "getAriaCheckedValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleCheckedInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleCheckedChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "default": "false",
              "description": "Define o estado intermediário do checkbox.\nQuando verdadeiro, exibe uma marcação parcial visual que indica seleção parcial.\nÚtil para representar grupos onde alguns itens estão selecionados, mas não todos.\nAo clicar no checkbox neste estado, ele será automaticamente alterado para marcado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "checked",
              "fieldName": "checked",
              "default": "false",
              "description": "Define o estado de seleção do checkbox.\nSe definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o checkbox, tornando-o não interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o checkbox é obrigatório e deve ser marcado antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do checkbox.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "type": {
                "text": "CheckboxValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "has-hidden-label",
              "fieldName": "hasHiddenLabel",
              "default": "false",
              "description": "Define se o label associado ao checkbox deve ser oculto.\nSe definido como verdadeiro, o texto do label será oculto, mas o checkbox ainda estará visível e funcional.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label-hidden",
              "fieldName": "labelHidden",
              "description": "Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo exibido à direita do checkbox.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Define o nome do checkbox, que é utilizado para agrupar checkboxes em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Indica a validade do checkbox.\nSe não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Define o valor associado ao checkbox quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o checkbox está selecionado.\n**Nota:** Esta propriedade não deve ser utilizada para determinar se o checkbox está selecionado; para verificar o estado de seleção, use a propriedade `checked`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-father",
              "fieldName": "isFather",
              "default": "false",
              "description": "Indica se o checkbox é pai de um grupo de checkboxes.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-checkbox",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual do checkbox."
            },
            {
              "name": "input",
              "description": "Elemento input nativo do checkbox."
            },
            {
              "name": "label",
              "description": "Rótulo do checkbox."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "see": [
            "br-checkbox-group"
          ],
          "events": [
            {
              "name": "checkedChange",
              "type": {
                "text": "EventEmitter<boolean>"
              },
              "description": "Disparado depois que o valor do `checked` foi alterado.",
              "deprecated": "Use `input`/`change` e leia `event.target.checked`."
            },
            {
              "name": "indeterminateChange",
              "type": {
                "text": "EventEmitter<boolean>"
              },
              "description": "Disparado depois que o valor do `indeterminate` foi alterado."
            },
            {
              "name": "brCheckboxValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Checkbox",
          "declaration": {
            "name": "Checkbox",
            "module": "components/checkbox.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-checkbox",
          "declaration": {
            "name": "Checkbox",
            "module": "components/checkbox.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/checkbox-group.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-checkbox-group` reúne checkboxes da mesma pergunta e adiciona um checkbox \"Selecionar tudo\" no topo.\n\nO \"Selecionar tudo\" marca ou desmarca todas as opções e fica em estado parcial quando só algumas estão marcadas. O `label` vira a legenda do grupo para leitores de tela.\n\n```html\n<br-checkbox-group label=\"Receber notificações por\">\n  <br-checkbox name=\"canais\" value=\"email\" label=\"E-mail\"></br-checkbox>\n  <br-checkbox name=\"canais\" value=\"sms\" label=\"SMS\"></br-checkbox>\n  <br-checkbox name=\"canais\" value=\"app\" label=\"Aplicativo\"></br-checkbox>\n</br-checkbox-group>\n```\n\nUse `orientation=\"horizontal\"` para as opções lado a lado, e `select-all-label` e `unselect-all-label` para trocar os textos do \"Selecionar tudo\".\n\n### Quando usar\n\n- Várias opções independentes que respondem à mesma pergunta.\n\n### Quando evitar\n\n- Um único checkbox, como aceite de termos: use só o `br-checkbox`.\n- Apenas uma opção pode ser escolhida: use `br-radio-group`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/checkgroup?tab=designer).",
          "name": "CheckboxGroup",
          "slots": [
            {
              "description": "Slot para adicionar os checkboxes controlados pelo grupo.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado de seleção do controlador do grupo."
            },
            {
              "kind": "field",
              "name": "isIndeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado indeterminado do controlador do grupo."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desabilita o controlador e os checkboxes contidos no grupo."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto descritivo do grupo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "unselectAllLabel",
              "type": {
                "text": "string"
              },
              "default": "'Desselecionar tudo'",
              "description": "Rótulo para desmarcar todos os checkboxes."
            },
            {
              "kind": "field",
              "name": "selectAllLabel",
              "type": {
                "text": "string"
              },
              "default": "'Selecionar tudo'",
              "description": "Rótulo para marcar todos os checkboxes."
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado indeterminado inicial do grupo."
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "readonly": true,
              "default": "'vertical'",
              "description": "Orientação visual das opções. Valores inválidos usam `vertical`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "readonly": true,
              "description": "Identificador único do controlador."
            },
            {
              "kind": "field",
              "name": "syncingChildren",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "controller",
              "type": {
                "text": "HTMLBrCheckboxElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "structureObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "managedChildren",
              "privacy": "private",
              "default": "new Set<HTMLBrCheckboxElement>()"
            },
            {
              "kind": "field",
              "name": "reconciler",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleDisabledChange"
            },
            {
              "kind": "method",
              "name": "handleChildChange",
              "parameters": [
                {
                  "name": "event",
                  "optional": true,
                  "type": {
                    "text": "CustomEvent<boolean>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInternalChildStateChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleStructureChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "dispatchGroupState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "checkbox",
                  "type": {
                    "text": "HTMLBrCheckboxElement"
                  }
                },
                {
                  "name": "managed",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncManagedChildren",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "releaseManagedChildren",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getSlotElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLSlotElement | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getChildCheckboxes",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrCheckboxElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "getEventCheckboxTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrCheckboxElement | undefined"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isParentCheckbox",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLBrCheckboxElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isCheckboxDisabledOrReadonly",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "checkbox",
                  "type": {
                    "text": "HTMLBrCheckboxElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isCheckboxChecked",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "checkbox",
                  "type": {
                    "text": "HTMLBrCheckboxElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isCheckboxIndeterminate",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "checkbox",
                  "type": {
                    "text": "HTMLBrCheckboxElement"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleParentChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "updateGroupState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncControllerState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setParentState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "checked",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "indeterminate",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setNumberOfChildren",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita o controlador e os checkboxes contidos no grupo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo do grupo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unselect-all-label",
              "fieldName": "unselectAllLabel",
              "default": "'Desselecionar tudo'",
              "description": "Rótulo para desmarcar todos os checkboxes."
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "default": "'Selecionar tudo'",
              "description": "Rótulo para marcar todos os checkboxes."
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "default": "false",
              "description": "Define o estado indeterminado inicial do grupo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "default": "'vertical'",
              "description": "Orientação visual das opções. Valores inválidos usam `vertical`.",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do controlador."
            }
          ],
          "tagName": "br-checkbox-group",
          "status": "stable",
          "see": [
            "br-checkbox",
            "br-checkgroup"
          ],
          "events": [],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CheckboxGroup",
          "declaration": {
            "name": "CheckboxGroup",
            "module": "components/checkbox-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-checkbox-group",
          "declaration": {
            "name": "CheckboxGroup",
            "module": "components/checkbox-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/checkgroup.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Nome antigo do `br-checkbox-group`, mantido para compatibilidade. Em código novo, use `br-checkbox-group`.",
          "name": "Checkgroup",
          "slots": [
            {
              "description": "Slot para adicionar os checkboxes controlados pelo grupo.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto descritivo do grupo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "labelSelecionado",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo legado para desmarcar todos.",
              "deprecated": "Use `unselectAllLabel`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "unselectAllLabel",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo para desmarcar todos.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "labelDesselecionado",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo legado para marcar todos.",
              "deprecated": "Use `selectAllLabel`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "selectAllLabel",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo para marcar todos.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado indeterminado inicial."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Identificador legado do controlador.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desabilita o controlador e os checkboxes contidos no grupo."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo do grupo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label-selecionado",
              "fieldName": "labelSelecionado",
              "description": "Rótulo legado para desmarcar todos.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unselect-all-label",
              "fieldName": "unselectAllLabel",
              "description": "Rótulo para desmarcar todos.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label-desselecionado",
              "fieldName": "labelDesselecionado",
              "description": "Rótulo legado para marcar todos.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "description": "Rótulo para marcar todos.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "default": "false",
              "description": "Estado indeterminado inicial.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador legado do controlador.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita o controlador e os checkboxes contidos no grupo.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "deprecated": "Use `br-checkbox-group`.",
          "tagName": "br-checkgroup",
          "status": "deprecated",
          "see": [
            "br-checkbox-group"
          ],
          "events": [],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Checkgroup",
          "declaration": {
            "name": "Checkgroup",
            "module": "components/checkgroup.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-checkgroup",
          "declaration": {
            "name": "Checkgroup",
            "module": "components/checkgroup.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/collapse.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-collapse` mostra e esconde um bloco de conteúdo ao clicar no título. Funciona como um `<details>`.\n\n```html\n<br-collapse>\n  <span slot=\"trigger\">Quem pode solicitar?</span>\n  <p>Qualquer pessoa com CPF regular.</p>\n</br-collapse>\n```\n\nUse `open` para começar aberto. Para que só um item fique aberto por vez (sanfona), dê o mesmo `accordion-group` a todos:\n\n```html\n<br-collapse accordion-group=\"faq\">…</br-collapse>\n<br-collapse accordion-group=\"faq\">…</br-collapse>\n```\n\nOs ícones de abrir e fechar podem ser trocados por `icon-to-show` e `icon-to-hide`, como propriedade ou como slot.\n\n### Quando usar\n\n- Perguntas frequentes e conteúdos longos divididos em tópicos.\n- Seções opcionais de um formulário longo.\n\n### Quando evitar\n\n- Informação essencial, que precisa ficar sempre visível.\n- Alternar entre visões diferentes da mesma tela: use `br-tab`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/collapse?tab=designer).",
          "name": "Collapse",
          "cssParts": [
            {
              "description": "Elemento details nativo do collapse.",
              "name": "details"
            },
            {
              "description": "Acionador (summary) do collapse.",
              "name": "trigger"
            },
            {
              "description": "Área de conteúdo expansível.",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Slot para o conteúdo expansível exibido ao abrir o collapse.",
              "name": "default"
            },
            {
              "description": "Slot para personalizar o acionador (texto, ícones, imagens, etc.).",
              "name": "trigger"
            },
            {
              "description": "Ícone exibido quando o conteúdo está oculto (ex.: `<i slot=\"icon-to-show\" class=\"fas fa-plus\"></i>`). Forma preferida para ícones por classe CSS; tem precedência sobre a prop `iconToShow`.",
              "name": "icon-to-show"
            },
            {
              "description": "Ícone exibido quando o conteúdo está visível. Forma preferida para ícones por classe CSS; tem precedência sobre a prop `iconToHide`.",
              "name": "icon-to-hide"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "itemCount",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "suppressNextCustomEvent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCollapseElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla se o collapse está aberto."
            },
            {
              "kind": "field",
              "name": "divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o componente possui um divisor (divider) inferior."
            },
            {
              "kind": "field",
              "name": "accordionGroup",
              "type": {
                "text": "string | undefined"
              },
              "default": "null",
              "description": "Identifica o grupo de accordion; quando informado, mantém apenas um item aberto por vez entre os irmãos\ndo mesmo pai imediato.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "iconToShow",
              "type": {
                "text": "string"
              },
              "default": "'fa6-solid:chevron-down'",
              "description": "Identificador Iconify do ícone exibido quando o conteúdo está oculto. O valor padrão usa o registro SVG local.\nPara ícones por classe CSS, use o slot `icon-to-show`."
            },
            {
              "kind": "field",
              "name": "iconToHide",
              "type": {
                "text": "string"
              },
              "default": "'fa6-solid:chevron-up'",
              "description": "Identificador Iconify do ícone exibido quando o conteúdo está visível. O valor padrão usa o registro SVG local.\nPara ícones por classe CSS, use o slot `icon-to-hide`."
            },
            {
              "kind": "field",
              "name": "iconPosition",
              "type": {
                "text": "CollapseIconPosition"
              },
              "default": "'right'",
              "description": "Define a posição do ícone no acionador: 'left' ou 'right'.",
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "useIcons",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Controla se o identificador visual de expansão/retração será renderizado."
            },
            {
              "kind": "field",
              "name": "expansionDirection",
              "type": {
                "text": "CollapseExpansionDirection"
              },
              "default": "'down'",
              "description": "Direção em que o conteúdo é expandido e para a qual o ícone aponta.",
              "parsedType": {
                "text": "'left' | 'right' | 'down' | 'up'"
              }
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "CollapseColorMode"
              },
              "default": "'light'",
              "description": "Tema visual do Collapse/Accordion.",
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "triggerVariant",
              "type": {
                "text": "CollapseTriggerVariant"
              },
              "default": "'surface'",
              "description": "Forma visual do acionador sem alterar sua semântica nativa.",
              "parsedType": {
                "text": "'button' | 'surface' | 'text'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "CollapseColorMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveExpansionDirection",
              "type": {
                "text": "CollapseExpansionDirection"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'down' | 'up'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveIconPosition",
              "type": {
                "text": "CollapseIconPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTriggerVariant",
              "type": {
                "text": "CollapseTriggerVariant"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'button' | 'surface' | 'text'"
              }
            },
            {
              "kind": "method",
              "name": "updateItemCount",
              "privacy": "private",
              "parameters": [
                {
                  "name": "slot",
                  "optional": true,
                  "type": {
                    "text": "HTMLSlotElement | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "openCollapse",
              "description": "Abre o collapse programaticamente.",
              "deprecated": "Atualize a propriedade `open`."
            },
            {
              "kind": "method",
              "name": "closeCollapse",
              "description": "Fecha o collapse programaticamente.",
              "deprecated": "Atualize a propriedade `open`."
            },
            {
              "kind": "method",
              "name": "toggle",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Alterna o estado aberto.\nO elemento também redispara o evento nativo `toggle` no host; essa ocorrência é sintética (`isTrusted === false`)."
            },
            {
              "kind": "method",
              "name": "syncDetailsWithOpen",
              "privacy": "private",
              "description": "Mantém o estado do <details> alinhado com a prop open."
            },
            {
              "kind": "field",
              "name": "handleCollapse",
              "privacy": "private",
              "description": "Atualiza estado e emite eventos quando o <details> abre ou fecha."
            },
            {
              "kind": "method",
              "name": "emitOpen",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "emitClose",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "closeOthersInGroup",
              "privacy": "private",
              "description": "Fecha outros collapses abertos no mesmo accordion, buscando apenas no pai imediato."
            },
            {
              "kind": "method",
              "name": "renderIcon",
              "privacy": "private",
              "description": "Seleciona o ícone conforme o estado atual."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o <details> com acionador e conteúdo expansível."
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "default": "false",
              "description": "Controla se o collapse está aberto."
            },
            {
              "name": "divider",
              "fieldName": "divider",
              "default": "false",
              "description": "Indica se o componente possui um divisor (divider) inferior."
            },
            {
              "name": "accordion-group",
              "fieldName": "accordionGroup",
              "default": "null",
              "description": "Identifica o grupo de accordion; quando informado, mantém apenas um item aberto por vez entre os irmãos\ndo mesmo pai imediato.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon-to-show",
              "fieldName": "iconToShow",
              "default": "'fa6-solid:chevron-down'",
              "description": "Identificador Iconify do ícone exibido quando o conteúdo está oculto. O valor padrão usa o registro SVG local.\nPara ícones por classe CSS, use o slot `icon-to-show`."
            },
            {
              "name": "icon-to-hide",
              "fieldName": "iconToHide",
              "default": "'fa6-solid:chevron-up'",
              "description": "Identificador Iconify do ícone exibido quando o conteúdo está visível. O valor padrão usa o registro SVG local.\nPara ícones por classe CSS, use o slot `icon-to-hide`."
            },
            {
              "name": "icon-position",
              "fieldName": "iconPosition",
              "default": "'right'",
              "description": "Define a posição do ícone no acionador: 'left' ou 'right'.",
              "type": {
                "text": "CollapseIconPosition"
              },
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "name": "use-icons",
              "fieldName": "useIcons",
              "default": "true",
              "description": "Controla se o identificador visual de expansão/retração será renderizado."
            },
            {
              "name": "expansion-direction",
              "fieldName": "expansionDirection",
              "default": "'down'",
              "description": "Direção em que o conteúdo é expandido e para a qual o ícone aponta.",
              "type": {
                "text": "CollapseExpansionDirection"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'down' | 'up'"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "default": "'light'",
              "description": "Tema visual do Collapse/Accordion.",
              "type": {
                "text": "CollapseColorMode"
              },
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "name": "trigger-variant",
              "fieldName": "triggerVariant",
              "default": "'surface'",
              "description": "Forma visual do acionador sem alterar sua semântica nativa.",
              "type": {
                "text": "CollapseTriggerVariant"
              },
              "parsedType": {
                "text": "'button' | 'surface' | 'text'"
              }
            }
          ],
          "tagName": "br-collapse",
          "status": "stable",
          "csspart": [
            {
              "name": "details",
              "description": "Elemento details nativo do collapse."
            },
            {
              "name": "trigger",
              "description": "Acionador (summary) do collapse."
            },
            {
              "name": "content",
              "description": "Área de conteúdo expansível."
            }
          ],
          "see": [
            "br-list"
          ],
          "events": [
            {
              "name": "brDidOpen",
              "type": {
                "text": "EventEmitter<CollapseChangeDetail>"
              },
              "description": "Emitido ao expandir, com o identificador e o grupo de accordion.",
              "deprecated": "Use `brCollapseOpen`."
            },
            {
              "name": "brCollapseOpen",
              "type": {
                "text": "EventEmitter<CollapseChangeDetail>"
              },
              "description": "Evento emitido ao expandir."
            },
            {
              "name": "brDidClose",
              "type": {
                "text": "EventEmitter<CollapseChangeDetail>"
              },
              "description": "Emitido ao recolher, com o identificador e o grupo de accordion.",
              "deprecated": "Use `brCollapseClose`."
            },
            {
              "name": "brCollapseClose",
              "type": {
                "text": "EventEmitter<CollapseChangeDetail>"
              },
              "description": "Evento emitido ao recolher."
            }
          ],
          "customElement": true,
          "category": "Conteúdo",
          "categories": [
            "Conteúdo",
            "Ações"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Collapse",
          "declaration": {
            "name": "Collapse",
            "module": "components/collapse.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-collapse",
          "declaration": {
            "name": "Collapse",
            "module": "components/collapse.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-cookiebar` avisa sobre o uso de cookies e registra o consentimento da pessoa, por categoria e por cookie.\n\nEle aparece como uma barra no rodapé (`mode=\"default\"`) e abre um painel com as categorias quando a pessoa escolhe \"Definir Cookies\" (`mode=\"open\"`).\n\n### Como usar\n\n1. Escreva o texto da barra em `info-text`.\n2. Coloque o título e a introdução do painel em um `br-cookiebar-header`.\n3. Crie um `br-cookiebar-group` por categoria e, dentro dele, um `br-cookiebar-cookie` por cookie. Use `group-opt-out=\"false\"` nas categorias que não podem ser desativadas.\n4. Adicione os links de política em `br-cookiebar-link`, no slot `links`.\n5. Ouça `brCookiebarResponse` para salvar a escolha e ative `show` somente enquanto não houver escolha salva.\n\n```html\n<br-cookiebar info-text=\"Usamos cookies para melhorar sua experiência.\">\n  <br-cookiebar-header slot=\"header\" main-title=\"Aviso de cookies\" entry-text=\"Escolha quais cookies aceitar.\"></br-cookiebar-header>\n\n  <br-cookiebar-group group-id=\"necessarios\" group-name=\"Necessários\" group-text=\"Essenciais para o site funcionar.\" group-opt-out=\"false\">\n    <br-cookiebar-cookie cookie-id=\"sessao\" cookie-name=\"sessao\" expires=\"Ao fechar o navegador\" domain=\"exemplo.gov.br\" enterprise=\"Próprio\" purpose=\"Manter a sessão\" description=\"Identifica a sessão de acesso.\"></br-cookiebar-cookie>\n  </br-cookiebar-group>\n\n  <br-cookiebar-link slot=\"links\" name=\"Política de privacidade\" href=\"/privacidade\"></br-cookiebar-link>\n</br-cookiebar>\n```\n\n```js\nconst cookiebar = document.querySelector('br-cookiebar');\ncookiebar.show = !localStorage.getItem('consentimento');\ncookiebar.addEventListener('brCookiebarResponse', (event) => {\n  localStorage.setItem('consentimento', JSON.stringify(event.detail));\n});\n```\n\n`event.detail` traz o estado de cada categoria (`cookieGroups`) e de cada cookie (`cookieList`). Para reabrir o painel depois, por exemplo num link \"Preferências de cookies\", chame `openPanel()`.\n\n### Quando evitar\n\n- Avisos que não tratam de consentimento: use `br-message` ou `br-notification`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/cookiebar?tab=designer).",
          "name": "Cookiebar",
          "cssParts": [
            {
              "description": "Container raiz do componente.",
              "name": "container"
            },
            {
              "description": "Painel fechado (modo default).",
              "name": "default-panel"
            },
            {
              "description": "Painel expandido (modo open).",
              "name": "open-panel"
            },
            {
              "description": "Cabeçalho do painel aberto.",
              "name": "header"
            },
            {
              "description": "Corpo do painel aberto (com rolagem).",
              "name": "body"
            },
            {
              "description": "Rodapé com botões de ação.",
              "name": "footer"
            },
            {
              "description": "Camada de sobreposição opcional.",
              "name": "scrim"
            }
          ],
          "slots": [
            {
              "description": "Recebe os subcomponentes `br-cookiebar-group`, `br-cookiebar-note-group` e `br-cookiebar-note`.",
              "name": "default"
            },
            {
              "description": "Recebe `br-cookiebar-header` ou HTML livre.",
              "name": "header"
            },
            {
              "description": "Recebe links complementares (`br-cookiebar-link` ou elementos `<a>` livres).",
              "name": "links"
            },
            {
              "description": "Recebe botões de ação. Se vazio, o componente renderiza os botões padrão.",
              "name": "actions"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarElement"
              }
            },
            {
              "kind": "field",
              "name": "openPanelDescription",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Descrição do painel `open` espelhada no Shadow DOM para uso em `aria-describedby`.\nDerivada do `entryText` do `br-cookiebar-header` filho (quando presente).\nNecessária porque `aria-describedby` não cruza o limite shadow/light DOM."
            },
            {
              "kind": "field",
              "name": "hasActionsSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se há conteúdo no slot `actions`. Controla a exibição da área de ações."
            },
            {
              "kind": "field",
              "name": "hasHeaderSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se há conteúdo no slot `header`. Controla a exibição da área de cabeçalho."
            },
            {
              "kind": "field",
              "name": "hasLinksSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se há conteúdo no slot `links`. Controla a exibição da área de links."
            },
            {
              "kind": "field",
              "name": "isMobile",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o viewport está no breakpoint mobile (x-small, ≤575px)."
            },
            {
              "kind": "field",
              "name": "openLiveAnnouncement",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Texto anunciado pela região `aria-live` ao exibir o painel default.\nMantido em elemento sr-only separado para não interferir com o foco do container."
            },
            {
              "kind": "field",
              "name": "selectAllState",
              "type": {
                "text": "CookiebarSelectionState"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estado atual do checkbox \"Selecionar tudo\": `true`, `false` ou `'indeterminate'`.",
              "parsedType": {
                "text": "false | true | 'indeterminate'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único; gerado automaticamente quando omitido."
            },
            {
              "kind": "field",
              "name": "show",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla a visibilidade do componente.\nO consumidor é responsável por definir este valor com base na persistência do consentimento\n(ex: verificar se já existe um cookie de consentimento salvo)."
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "CookiebarMode"
              },
              "default": "'default'",
              "description": "Estado visual atual do painel. Valores inválidos usam `default`.\n- `default`: barra inferior com texto e botões.\n- `open`: painel de tela cheia com grupos de cookies configuráveis.",
              "parsedType": {
                "text": "'default' | 'open'"
              }
            },
            {
              "kind": "field",
              "name": "allOptOut",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Define se o cookiebar opera no padrão opt-out (`true`, recomendado) ou opt-in (`false`).\n- **opt-out** (`true`): botão secundário \"Definir Cookies\"; usuário pode configurar cookies.\n- **opt-in** (`false`): botão secundário \"Ver Política de Cookies\"; painel é somente leitura."
            },
            {
              "kind": "field",
              "name": "infoText",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto informativo exibido na barra inferior (modo default), descrevendo a política de cookies."
            },
            {
              "kind": "field",
              "name": "acceptButton",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Aceitar'",
              "description": "Texto do botão primário de aceite. Padrão: `Aceitar`."
            },
            {
              "kind": "field",
              "name": "rejectButton",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Rejeitar não obrigatórios'",
              "description": "Texto do botão de rejeição dos cookies não obrigatórios.\nExibido apenas quando `show-reject-button=\"true\"`."
            },
            {
              "kind": "field",
              "name": "showRejectButton",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Quando `true`, exibe o botão \"Rejeitar não obrigatórios\" nos painéis default e open.\nCookies de grupos com `group-opt-out=\"false\"` (sempre ativos) não são afetados."
            },
            {
              "kind": "field",
              "name": "optOutButton",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Definir Cookies'",
              "description": "Texto do botão secundário quando `all-opt-out=\"true\"`."
            },
            {
              "kind": "field",
              "name": "optInButton",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Ver Política de Cookies'",
              "description": "Texto do botão secundário quando `all-opt-out=\"false\"`."
            },
            {
              "kind": "field",
              "name": "closeLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Fechar'",
              "description": "`aria-label` do botão fechar exibido no canto do painel expandido (`mode=\"open\"`).\nPermite traduzir o rótulo para outros idiomas."
            },
            {
              "kind": "field",
              "name": "panelLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Configurações de cookies'",
              "description": "`aria-label` do painel expandido (`mode=\"open\"`), que possui `role=\"dialog\"`.\nLeitores de tela anunciam este texto ao entrar no diálogo modal de configuração de cookies.\nDeve descrever o propósito do diálogo de forma sucinta (ex: \"Configurações de cookies\")."
            },
            {
              "kind": "field",
              "name": "defaultPanelLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Aviso de cookies'",
              "description": "`aria-label` da barra de aviso de cookies (`mode=\"default\"`).\nDeve descrever o propósito da região de forma sucinta (ex: \"Aviso de cookies\")."
            },
            {
              "kind": "field",
              "name": "cookieGroupsLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Classes de cookies'",
              "description": "Rótulo do título da seção de grupos de cookies."
            },
            {
              "kind": "field",
              "name": "linksLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Links complementares'",
              "description": "`aria-label` do elemento `<nav>` que envolve os links complementares no painel expandido.\nPermite traduzir o rótulo para outros idiomas."
            },
            {
              "kind": "field",
              "name": "selectAll",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado inicial do checkbox \"Selecionar tudo\".\nQuando `true`, todos os grupos opt-out iniciam selecionados."
            },
            {
              "kind": "field",
              "name": "selectAllLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Selecionar tudo'",
              "description": "Texto do checkbox geral quando está totalmente selecionado (ação: desselecionar)."
            },
            {
              "kind": "field",
              "name": "unselectAllLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Desselecionar tudo'",
              "description": "Texto do checkbox geral quando está desmarcado ou indeterminado (ação: selecionar)."
            },
            {
              "kind": "field",
              "name": "allAlertMessage",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Mensagem exibida abaixo do checkbox geral quando está desmarcado ou com seleção parcial.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "scrim",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Quando `true`, exibe uma camada semitransparente (scrim) sobre o conteúdo da página\nabaixo do painel default, sinalizando que o cookiebar requer atenção.\n\n**Efeito no foco:** com `scrim=true`, o atributo `inert` é aplicado nos irmãos do\ncookiebar no DOM, prendendo o foco e o cursor virtual do leitor de tela dentro do\npainel default enquanto ele estiver visível. Com `scrim=false` (padrão), nenhum trap\né ativado — o usuário pode navegar livremente pela página, em conformidade com\nWCAG 2.1.2 (No Keyboard Trap). Use `scrim=true` apenas quando o cenário de negócio\nexigir que a decisão sobre cookies seja tomada antes de qualquer outra interação.\n\nNo modo `open` (diálogo modal), o `inert` é aplicado independentemente do valor de `scrim`."
            },
            {
              "kind": "method",
              "name": "handleShowChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Observa mudanças em `show`.\nAo exibir o componente, garante que o modo inicial seja sempre `default` e emite `brCookiebarShow`.\nCom `scrim=true`, aplica `inert` nos irmãos e registra o trap de foco.\nCom `scrim=false`, o usuário pode navegar livremente pela página (WCAG 2.1.2).\nAo ocultar, emite `brCookiebarHide`."
            },
            {
              "kind": "method",
              "name": "handleModeChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "CookiebarMode"
                  }
                }
              ],
              "description": "Observa mudanças em `mode`.\nAo entrar em modo `open`, emite `brCookiebarOpen`, aplica `inert` nos irmãos e move o foco\npara o botão fechar (trap focus modal).\nAo sair do modo `open`, emite `brCookiebarClose` e — se `scrim=true` — reaplica `inert`\ne o listener de trap para o painel default. Sem scrim, nenhum trap é ativado."
            },
            {
              "kind": "method",
              "name": "handleScrimChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectAllPropChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Observa mudanças externas na prop `selectAll`.\nSincroniza o estado interno do checkbox e propaga o valor para todos os grupos opt-out."
            },
            {
              "kind": "method",
              "name": "handleGroupChange",
              "description": "Escuta o evento `brCookiebarGroupChange` emitido por qualquer `br-cookiebar-group` filho.\nApenas recalcula o estado visual do checkbox \"Selecionar tudo\" — não emite `brCookiebarResponse`.\nO evento de resposta completo é emitido somente ao clicar em Aceitar ou Rejeitar."
            },
            {
              "kind": "method",
              "name": "openDefault",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Exibe o cookiebar no modo `default` (barra inferior)."
            },
            {
              "kind": "method",
              "name": "openPanel",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Exibe o cookiebar diretamente no modo `open` (painel de tela cheia)."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Oculta o cookiebar."
            },
            {
              "kind": "method",
              "name": "getSelectedCookies",
              "return": {
                "type": {
                  "text": "Promise<CookiebarOutputData>"
                }
              },
              "description": "Retorna o JSON com o estado atual de seleção de todos os grupos e cookies."
            },
            {
              "kind": "field",
              "name": "pageTriggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento focado na página antes do cookiebar aparecer.\nRestaurado quando o componente é ocultado (`show` → false).\nReferência: WCAG 2.4.3."
            },
            {
              "kind": "field",
              "name": "triggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento que disparou a abertura do painel `open` — restaurado ao fechar o diálogo.\nReferência: WCAG 2.4.3."
            },
            {
              "kind": "field",
              "name": "defaultPanelRef",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Referência ao painel default — usada para mover o foco ao abrir no modo `default`."
            },
            {
              "kind": "field",
              "name": "pendingFocusDefault",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Flag que sinaliza intenção de focar o painel default após o próximo render.\nDefinida nos `@Watch` e consumida em `componentDidUpdate`, garantindo que\n`defaultPanelRef` já esteja disponível no DOM."
            },
            {
              "kind": "field",
              "name": "pendingFocusOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Flag que sinaliza intenção de focar o botão fechar do painel `open` após o próximo render.\nDefinida em `trapFocus()` e consumida em `componentDidUpdate`, garantindo que\no botão fechar já esteja disponível no DOM antes de receber o foco."
            },
            {
              "kind": "field",
              "name": "openAnnouncementFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "breakpointObserver",
              "type": {
                "text": "BreakpointObserver | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Instância do observador de breakpoint para detecção de mobile."
            },
            {
              "kind": "field",
              "name": "inertedElements",
              "type": {
                "text": "Element[]"
              },
              "privacy": "private",
              "default": "[]",
              "description": "Lista de elementos que receberam `inert` ao abrir o painel.\nArmazenada para restaurar o estado original ao fechar."
            },
            {
              "kind": "field",
              "name": "nativeDialogRef",
              "type": {
                "text": "HTMLDialogElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "globalKeydownAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "slotChangeHandlers",
              "privacy": "private",
              "default": "new Map<HTMLSlotElement, EventListener>()"
            },
            {
              "kind": "field",
              "name": "liveAnnouncement",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "syncGlobalKeydownListener",
              "privacy": "private",
              "parameters": [
                {
                  "name": "shouldAttach",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "usesNativeDialog",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "usesNativeTopLayer",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "syncNativeDialog",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNativeCancel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "checkSlots",
              "privacy": "private",
              "description": "Verifica quais slots (`header`, `links`, `actions`) possuem conteúdo e atualiza os estados correspondentes."
            },
            {
              "kind": "method",
              "name": "getGroupElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrCookiebarGroupElement[]"
                }
              },
              "description": "Retorna todos os `br-cookiebar-group` filhos no Light DOM."
            },
            {
              "kind": "method",
              "name": "buildOpenPanelDescription",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Deriva a descrição do painel `open` a partir do `entryText` do `br-cookiebar-header` filho.\nUsado como conteúdo do elemento sr-only referenciado por `aria-describedby` no diálogo.\nRetorna string vazia quando não há header ou o conteúdo é livre (sem `entryText`)."
            },
            {
              "kind": "method",
              "name": "buildOpenAnnouncement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Monta o texto anunciado pela região `aria-live` ao entrar no modo `open`."
            },
            {
              "kind": "method",
              "name": "getOwnedHeaderElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrCookiebarHeaderElement | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "recalculateSelectAll",
              "privacy": "private",
              "description": "Recalcula o estado do checkbox \"Selecionar tudo\" com base nos grupos opt-out.\nGrupos `always-active` (`group-opt-out=\"false\"`) são ignorados no cálculo.\nDefine `selectAllState` como `true`, `false` ou `'indeterminate'`."
            },
            {
              "kind": "method",
              "name": "getGroupSelectionState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CookiebarSelectionState"
                }
              },
              "parameters": [
                {
                  "name": "group",
                  "type": {
                    "text": "HTMLBrCookiebarGroupElement"
                  }
                }
              ],
              "description": "Calcula a seleção de um grupo a partir de propriedades refletidas ou atributos iniciais."
            },
            {
              "kind": "method",
              "name": "propagateSelectAll",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Propaga um valor booleano para todos os grupos opt-out filhos,\natribuindo diretamente à propriedade JS para acionar o `@Watch('groupSelected')` de cada grupo."
            },
            {
              "kind": "method",
              "name": "buildOutputData",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CookiebarOutputData"
                }
              },
              "parameters": [
                {
                  "name": "policy",
                  "default": "'current'",
                  "type": {
                    "text": "'current' | 'reject'"
                  }
                }
              ],
              "description": "Monta o objeto `CookiebarOutputData` percorrendo todos os grupos e seus cookies\nvia atributos refletidos, retornando o estado atual de consentimento."
            },
            {
              "kind": "field",
              "name": "handleSelectAllChange",
              "privacy": "private",
              "description": "Atualiza `selectAllState` e propaga o novo valor para os grupos (sem emitir evento externo)."
            },
            {
              "kind": "field",
              "name": "handleAccept",
              "privacy": "private",
              "description": "Emite `brCookiebarAccept` (void) e em seguida `brCookiebarResponse` (payload completo),\nconstruído uma única vez, depois libera o trap de foco e oculta o componente."
            },
            {
              "kind": "field",
              "name": "handleReject",
              "privacy": "private",
              "description": "Rejeita todos os cookies opt-out: propaga `false` para grupos com `group-opt-out !== false`,\nrecalcula `selectAllState`, libera o trap de foco, emite `brCookiebarReject` (void) e\n`brCookiebarResponse` (payload completo, construído uma única vez), depois oculta o componente."
            },
            {
              "kind": "field",
              "name": "handleSecondaryButton",
              "privacy": "private",
              "description": "Manipula o clique no botão secundário:\n- **opt-out**: abre o painel de configuração de cookies.\n- **opt-in**: emite `brCookiebarPolicyClick` para o consumidor navegar à política."
            },
            {
              "kind": "field",
              "name": "handleClose",
              "privacy": "private",
              "description": "Fecha o painel aberto, retornando ao modo `default`."
            },
            {
              "kind": "field",
              "name": "handleBreakpointChange",
              "privacy": "private",
              "description": "Atualiza `isMobile` conforme o breakpoint corrente."
            },
            {
              "kind": "field",
              "name": "defaultFocusTrapHandler",
              "privacy": "private",
              "description": "Handler de trap de foco para o painel default.\nAtivado automaticamente pelo `scrim`: só prende o foco quando `scrim=true`,\nquando o modo é `default` e o componente está visível.\nReferência: WCAG 2.1.2."
            },
            {
              "kind": "method",
              "name": "focusDefaultPanel",
              "privacy": "private",
              "description": "Move o foco para o primeiro botão focável dentro do painel default.\nRecai no container do painel (`tabindex=\"-1\"`) se nenhum botão for encontrado."
            },
            {
              "kind": "method",
              "name": "focusOpenPanel",
              "privacy": "private",
              "description": "Move o foco para o botão fechar do painel expandido, que é o primeiro elemento\ninterativo do diálogo (WCAG 2.4.3 / padrão ARIA dialog).\nO botão fechar fica no cabeçalho, antes dos grupos e do rodapé, garantindo que\no leitor de tela anuncie \"Fechar, botão\" ao entrar no diálogo e permita ao usuário\npercorrer o conteúdo na ordem natural com Tab.\nRecai no container do painel (`tabindex=\"-1\"`) se o botão não for encontrado."
            },
            {
              "kind": "method",
              "name": "releaseDefaultFocusTrap",
              "privacy": "private",
              "parameters": [
                {
                  "name": "restoreFocus",
                  "default": "true"
                }
              ],
              "description": "Remove o listener de trap do painel default, restaura `inert` dos irmãos e,\nopcionalmente, restaura o foco no elemento que estava ativo antes do cookiebar aparecer."
            },
            {
              "kind": "method",
              "name": "releaseFocusTrap",
              "privacy": "private",
              "description": "Remove o `inert` dos irmãos e restaura o foco no elemento disparador.\nChamado em `handleClose`, `handleAccept` e `handleReject`."
            },
            {
              "kind": "method",
              "name": "applyInertSiblings",
              "privacy": "private",
              "description": "Aplica `inert` nos irmãos do cookiebar e nos irmãos de cada ancestral até o `<body>`.\nPreserva os elementos já rastreados em chamadas sucessivas para que uma transição\nentre os modos `default` e `open` não perca a referência necessária à restauração.\n\nPercorre a cadeia de ancestrais de baixo para cima e, em cada nível, inercia todos\nos irmãos do nó que contém o cookiebar. Como `inert` é herdado por todos os\ndescendentes, isso garante que nenhum elemento fora do cookiebar receba foco — via\nTab ou cursor virtual de leitor de tela — independentemente da profundidade de\naninhamento do cookiebar no DOM.\n\nReferência: WCAG 2.1.2 / ARIA dialog pattern."
            },
            {
              "kind": "method",
              "name": "restoreInertSiblings",
              "privacy": "private",
              "description": "Remove `inert` dos elementos que foram marcados por `applyInertSiblings`."
            },
            {
              "kind": "method",
              "name": "trapFocus",
              "privacy": "private",
              "description": "Ativa o trap de foco: salva o elemento disparador, inercia todos os\nfilhos diretos de `<body>` exceto o ancestral do cookiebar (bloqueando tab e\ncursor virtual do leitor de tela em toda a página) e sinaliza foco pendente.\nO foco efetivo no botão fechar do painel é delegado ao `componentDidUpdate`\nvia `pendingFocusOpen`, garantindo que o AT anuncie \"Fechar, botão\" ao entrar\nno diálogo e permita percorrer o conteúdo na ordem natural (WCAG 2.4.3).\nReferência: WCAG 2.1.2 / 2.4.3."
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private",
              "description": "Fecha o painel aberto ao pressionar Escape, apenas quando `show=true` e `mode=\"open\"`."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Gera o mapa de classes CSS do container raiz com base no `mode` atual."
            },
            {
              "kind": "field",
              "name": "effectiveMode",
              "type": {
                "text": "CookiebarMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'default' | 'open'"
              }
            },
            {
              "kind": "method",
              "name": "renderSelectAllCheckbox",
              "privacy": "private",
              "description": "Renderiza o checkbox \"Selecionar tudo\" com seu estado atual e a mensagem de alerta\nexibida quando nenhum ou apenas alguns grupos estão selecionados."
            },
            {
              "kind": "method",
              "name": "renderDefaultPanel",
              "privacy": "private",
              "description": "Renderiza o painel no modo `default` (barra inferior) com o texto informativo,\no scrim opcional e os botões de ação."
            },
            {
              "kind": "method",
              "name": "renderDefaultActions",
              "privacy": "private",
              "description": "Renderiza os botões padrão do modo `default` quando o slot `actions` não está preenchido.\nNo modo opt-out, exibe \"Definir Cookies\" + opcionalmente \"Rejeitar não obrigatórios\" + \"Aceitar\".\nNo modo opt-in, exibe \"Ver Política de Cookies\" + opcionalmente \"Rejeitar não obrigatórios\" + \"Aceitar\"."
            },
            {
              "kind": "field",
              "name": "actionShape",
              "type": {
                "text": "'block' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'block'"
              }
            },
            {
              "kind": "method",
              "name": "renderConsentActions",
              "privacy": "private",
              "description": "Renderiza as ações de consentimento compartilhadas pelos dois painéis."
            },
            {
              "kind": "method",
              "name": "renderCookieGroupsHeader",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSelectAllAlert",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderOpenPanel",
              "privacy": "private",
              "description": "Renderiza o painel no modo `open` (tela cheia) com as áreas B (cabeçalho),\nC (grupos de cookies), D (links complementares) e E (botão de aceite)."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único; gerado automaticamente quando omitido.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "show",
              "fieldName": "show",
              "default": "false",
              "description": "Controla a visibilidade do componente.\nO consumidor é responsável por definir este valor com base na persistência do consentimento\n(ex: verificar se já existe um cookie de consentimento salvo)."
            },
            {
              "name": "mode",
              "fieldName": "mode",
              "default": "'default'",
              "description": "Estado visual atual do painel. Valores inválidos usam `default`.\n- `default`: barra inferior com texto e botões.\n- `open`: painel de tela cheia com grupos de cookies configuráveis.",
              "type": {
                "text": "CookiebarMode"
              },
              "parsedType": {
                "text": "'default' | 'open'"
              }
            },
            {
              "name": "all-opt-out",
              "fieldName": "allOptOut",
              "default": "true",
              "description": "Define se o cookiebar opera no padrão opt-out (`true`, recomendado) ou opt-in (`false`).\n- **opt-out** (`true`): botão secundário \"Definir Cookies\"; usuário pode configurar cookies.\n- **opt-in** (`false`): botão secundário \"Ver Política de Cookies\"; painel é somente leitura.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "info-text",
              "fieldName": "infoText",
              "description": "Texto informativo exibido na barra inferior (modo default), descrevendo a política de cookies.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "accept-button",
              "fieldName": "acceptButton",
              "default": "'Aceitar'",
              "description": "Texto do botão primário de aceite. Padrão: `Aceitar`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "reject-button",
              "fieldName": "rejectButton",
              "default": "'Rejeitar não obrigatórios'",
              "description": "Texto do botão de rejeição dos cookies não obrigatórios.\nExibido apenas quando `show-reject-button=\"true\"`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "show-reject-button",
              "fieldName": "showRejectButton",
              "default": "false",
              "description": "Quando `true`, exibe o botão \"Rejeitar não obrigatórios\" nos painéis default e open.\nCookies de grupos com `group-opt-out=\"false\"` (sempre ativos) não são afetados.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "opt-out-button",
              "fieldName": "optOutButton",
              "default": "'Definir Cookies'",
              "description": "Texto do botão secundário quando `all-opt-out=\"true\"`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "opt-in-button",
              "fieldName": "optInButton",
              "default": "'Ver Política de Cookies'",
              "description": "Texto do botão secundário quando `all-opt-out=\"false\"`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "close-label",
              "fieldName": "closeLabel",
              "default": "'Fechar'",
              "description": "`aria-label` do botão fechar exibido no canto do painel expandido (`mode=\"open\"`).\nPermite traduzir o rótulo para outros idiomas.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "panel-label",
              "fieldName": "panelLabel",
              "default": "'Configurações de cookies'",
              "description": "`aria-label` do painel expandido (`mode=\"open\"`), que possui `role=\"dialog\"`.\nLeitores de tela anunciam este texto ao entrar no diálogo modal de configuração de cookies.\nDeve descrever o propósito do diálogo de forma sucinta (ex: \"Configurações de cookies\").",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "default-panel-label",
              "fieldName": "defaultPanelLabel",
              "default": "'Aviso de cookies'",
              "description": "`aria-label` da barra de aviso de cookies (`mode=\"default\"`).\nDeve descrever o propósito da região de forma sucinta (ex: \"Aviso de cookies\").",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "cookie-groups-label",
              "fieldName": "cookieGroupsLabel",
              "default": "'Classes de cookies'",
              "description": "Rótulo do título da seção de grupos de cookies.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "links-label",
              "fieldName": "linksLabel",
              "default": "'Links complementares'",
              "description": "`aria-label` do elemento `<nav>` que envolve os links complementares no painel expandido.\nPermite traduzir o rótulo para outros idiomas.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "select-all",
              "fieldName": "selectAll",
              "default": "false",
              "description": "Estado inicial do checkbox \"Selecionar tudo\".\nQuando `true`, todos os grupos opt-out iniciam selecionados.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "default": "'Selecionar tudo'",
              "description": "Texto do checkbox geral quando está totalmente selecionado (ação: desselecionar).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unselect-all-label",
              "fieldName": "unselectAllLabel",
              "default": "'Desselecionar tudo'",
              "description": "Texto do checkbox geral quando está desmarcado ou indeterminado (ação: selecionar).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "all-alert-message",
              "fieldName": "allAlertMessage",
              "description": "Mensagem exibida abaixo do checkbox geral quando está desmarcado ou com seleção parcial.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "scrim",
              "fieldName": "scrim",
              "default": "false",
              "description": "Quando `true`, exibe uma camada semitransparente (scrim) sobre o conteúdo da página\nabaixo do painel default, sinalizando que o cookiebar requer atenção.\n\n**Efeito no foco:** com `scrim=true`, o atributo `inert` é aplicado nos irmãos do\ncookiebar no DOM, prendendo o foco e o cursor virtual do leitor de tela dentro do\npainel default enquanto ele estiver visível. Com `scrim=false` (padrão), nenhum trap\né ativado — o usuário pode navegar livremente pela página, em conformidade com\nWCAG 2.1.2 (No Keyboard Trap). Use `scrim=true` apenas quando o cenário de negócio\nexigir que a decisão sobre cookies seja tomada antes de qualquer outra interação.\n\nNo modo `open` (diálogo modal), o `inert` é aplicado independentemente do valor de `scrim`.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-cookiebar",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Container raiz do componente."
            },
            {
              "name": "default-panel",
              "description": "Painel fechado (modo default)."
            },
            {
              "name": "open-panel",
              "description": "Painel expandido (modo open)."
            },
            {
              "name": "header",
              "description": "Cabeçalho do painel aberto."
            },
            {
              "name": "body",
              "description": "Corpo do painel aberto (com rolagem)."
            },
            {
              "name": "footer",
              "description": "Rodapé com botões de ação."
            },
            {
              "name": "scrim",
              "description": "Camada de sobreposição opcional."
            }
          ],
          "events": [
            {
              "name": "brCookiebarShow",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o componente se torna visível (`show` → true)."
            },
            {
              "name": "brCookiebarHide",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o componente é ocultado (`show` → false)."
            },
            {
              "name": "brCookiebarOpen",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o painel expande para modo open."
            },
            {
              "name": "brCookiebarClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o painel recolhe para modo default."
            },
            {
              "name": "brCookiebarAccept",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Sinal emitido quando o usuário clica em Aceitar.\nNão carrega payload — ouça `brCookiebarResponse` para obter o estado completo de consentimento."
            },
            {
              "name": "brCookiebarReject",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Sinal emitido quando o usuário clica em \"Rejeitar não obrigatórios\".\nNão carrega payload — ouça `brCookiebarResponse` para obter o estado completo de consentimento."
            },
            {
              "name": "brCookiebarResponse",
              "type": {
                "text": "EventEmitter<CookiebarOutputData>"
              },
              "description": "Emitido após `brCookiebarAccept` ou `brCookiebarReject`, com o estado final de consentimento.\nÉ o único evento que carrega `CookiebarOutputData` — use-o para persistir o consentimento\n(localStorage, cookie HTTP, API etc.).\nNão é disparado durante interações com checkboxes e switches internos."
            },
            {
              "name": "brCookiebarPolicyClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o usuário clica no botão secundário no modo opt-in (`allOptOut=false`).\nO consumidor é responsável por navegar para a página de Política de Cookies."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Sobreposições"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Cookiebar",
          "declaration": {
            "name": "Cookiebar",
            "module": "components/cookiebar.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar",
          "declaration": {
            "name": "Cookiebar",
            "module": "components/cookiebar.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-cookie/cookiebar-cookie.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Descreve um cookie dentro de um `br-cookiebar-group`: nome, validade, domínio, empresa responsável, finalidade e descrição.\n\nUse `cookie-opt-out=\"false\"` quando o cookie não puder ser desativado.",
          "name": "CookiebarCookie",
          "cssParts": [
            {
              "description": "Container principal do cookie.",
              "name": "card"
            },
            {
              "description": "Área que contém o switch de ativação.",
              "name": "switch"
            },
            {
              "description": "Wrapper interno com o switch, alerta e lista de itens.",
              "name": "details"
            }
          ],
          "slots": [
            {
              "description": "Área livre para inserir conteúdo personalizado abaixo dos itens do cookie.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarCookieElement"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "ID interno gerado automaticamente. Não é necessário informar."
            },
            {
              "kind": "field",
              "name": "cookieId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único do cookie. Usado internamente para montar o JSON de resposta."
            },
            {
              "kind": "field",
              "name": "cookieName",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome do cookie."
            },
            {
              "kind": "field",
              "name": "cookieOptOut",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Indica se o usuário pode desativar este cookie.\n- `true` (padrão): exibe o switch e permite desativar.\n- `false`: o cookie é sempre ativo e o switch não aparece."
            },
            {
              "kind": "field",
              "name": "cookieSelected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado atual do switch: ligado ou desligado."
            },
            {
              "kind": "field",
              "name": "expires",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Tempo de vida do cookie (ex: `30 minutos`, `1 ano`, `Sessão`)."
            },
            {
              "kind": "field",
              "name": "domain",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Domínio ao qual o cookie pertence (ex: `serpro.gov.br`)."
            },
            {
              "kind": "field",
              "name": "enterprise",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome da empresa responsável pelo cookie (ex: `Serpro`, `Google`)."
            },
            {
              "kind": "field",
              "name": "purpose",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Para que serve este cookie (ex: `Autenticação`, `Análise de tráfego`)."
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Descrição detalhada do cookie e como ele é utilizado."
            },
            {
              "kind": "field",
              "name": "alertMessage",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Mensagem exibida quando o switch é desligado, alertando sobre o impacto.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "switchOnLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Ligado'",
              "description": "Texto exibido no switch quando está ligado."
            },
            {
              "kind": "field",
              "name": "offLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Desligado'",
              "description": "Texto exibido no switch quando está desligado."
            },
            {
              "kind": "field",
              "name": "cookieNameLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Cookies'",
              "description": "Rótulo do item \"nome do cookie\" na lista."
            },
            {
              "kind": "field",
              "name": "expiresLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Vencimento'",
              "description": "Rótulo do item \"vencimento\" na lista."
            },
            {
              "kind": "field",
              "name": "domainLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Domínio'",
              "description": "Rótulo do item \"domínio\" na lista."
            },
            {
              "kind": "field",
              "name": "enterpriseLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Empresa'",
              "description": "Rótulo do item \"empresa\" na lista."
            },
            {
              "kind": "field",
              "name": "purposeLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Finalidade'",
              "description": "Rótulo do item \"finalidade\" na lista."
            },
            {
              "kind": "field",
              "name": "descriptionLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Descrição'",
              "description": "Rótulo do item \"descrição\" na lista."
            },
            {
              "kind": "field",
              "name": "extraLabel",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Rótulo de um campo extra opcional exibido ao final da lista de itens.\nUse junto com `extra-value` para adicionar uma informação personalizada\nsem precisar usar o slot.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "extraValue",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Valor do campo extra. Exibido ao lado do `extra-label`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "handleSelectedChange"
            },
            {
              "kind": "field",
              "name": "handleSwitchChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isParentGroupAlwaysActive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Retorna `true` quando o grupo pai (`br-cookiebar-group`) é sempre ativo (`group-opt-out=\"false\"`).\nNesse caso, independente do valor de `cookie-opt-out`, o switch deve ser ocultado\ne o cookie deve ser tratado como sempre selecionado no payload de resposta.",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "label",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "ID interno gerado automaticamente. Não é necessário informar.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "cookie-id",
              "fieldName": "cookieId",
              "description": "Identificador único do cookie. Usado internamente para montar o JSON de resposta.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "cookie-name",
              "fieldName": "cookieName",
              "description": "Nome do cookie.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "cookie-opt-out",
              "fieldName": "cookieOptOut",
              "default": "true",
              "description": "Indica se o usuário pode desativar este cookie.\n- `true` (padrão): exibe o switch e permite desativar.\n- `false`: o cookie é sempre ativo e o switch não aparece.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "cookie-selected",
              "fieldName": "cookieSelected",
              "default": "false",
              "description": "Estado atual do switch: ligado ou desligado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "expires",
              "fieldName": "expires",
              "description": "Tempo de vida do cookie (ex: `30 minutos`, `1 ano`, `Sessão`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "domain",
              "fieldName": "domain",
              "description": "Domínio ao qual o cookie pertence (ex: `serpro.gov.br`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "enterprise",
              "fieldName": "enterprise",
              "description": "Nome da empresa responsável pelo cookie (ex: `Serpro`, `Google`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "purpose",
              "fieldName": "purpose",
              "description": "Para que serve este cookie (ex: `Autenticação`, `Análise de tráfego`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Descrição detalhada do cookie e como ele é utilizado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "alert-message",
              "fieldName": "alertMessage",
              "description": "Mensagem exibida quando o switch é desligado, alertando sobre o impacto.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "on-label",
              "fieldName": "switchOnLabel",
              "default": "'Ligado'",
              "description": "Texto exibido no switch quando está ligado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "off-label",
              "fieldName": "offLabel",
              "default": "'Desligado'",
              "description": "Texto exibido no switch quando está desligado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "cookie-name-label",
              "fieldName": "cookieNameLabel",
              "default": "'Cookies'",
              "description": "Rótulo do item \"nome do cookie\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "expires-label",
              "fieldName": "expiresLabel",
              "default": "'Vencimento'",
              "description": "Rótulo do item \"vencimento\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "domain-label",
              "fieldName": "domainLabel",
              "default": "'Domínio'",
              "description": "Rótulo do item \"domínio\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "enterprise-label",
              "fieldName": "enterpriseLabel",
              "default": "'Empresa'",
              "description": "Rótulo do item \"empresa\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "purpose-label",
              "fieldName": "purposeLabel",
              "default": "'Finalidade'",
              "description": "Rótulo do item \"finalidade\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "description-label",
              "fieldName": "descriptionLabel",
              "default": "'Descrição'",
              "description": "Rótulo do item \"descrição\" na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "extra-label",
              "fieldName": "extraLabel",
              "description": "Rótulo de um campo extra opcional exibido ao final da lista de itens.\nUse junto com `extra-value` para adicionar uma informação personalizada\nsem precisar usar o slot.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "extra-value",
              "fieldName": "extraValue",
              "description": "Valor do campo extra. Exibido ao lado do `extra-label`.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-cookiebar-cookie",
          "csspart": [
            {
              "name": "card",
              "description": "Container principal do cookie."
            },
            {
              "name": "switch",
              "description": "Área que contém o switch de ativação."
            },
            {
              "name": "details",
              "description": "Wrapper interno com o switch, alerta e lista de itens."
            }
          ],
          "events": [
            {
              "name": "brCookiebarCookieChange",
              "type": {
                "text": "EventEmitter<{ cookieId: string; cookieSelected: boolean }>"
              },
              "description": "Emitido ao ligar/desligar o switch.\nBorbulha até o `br-cookiebar-group` pai para recalcular o estado do grupo."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarCookie",
          "declaration": {
            "name": "CookiebarCookie",
            "module": "components/cookiebar-cookie/cookiebar-cookie.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-cookie",
          "declaration": {
            "name": "CookiebarCookie",
            "module": "components/cookiebar-cookie/cookiebar-cookie.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-group/cookiebar-group.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Uma categoria de cookies dentro do `br-cookiebar`, como \"Necessários\" ou \"Estatísticas\". Contém um `br-cookiebar-cookie` para cada cookie.\n\nInforme `group-id`, `group-name` e `group-text`. Use `group-opt-out=\"false\"` quando a categoria não puder ser desativada: ela aparece como \"Sempre ativo\".",
          "name": "CookiebarGroup",
          "cssParts": [
            {
              "description": "Div raiz do grupo.",
              "name": "container"
            },
            {
              "description": "Linha de cabeçalho com nome, contadores e controles.",
              "name": "header"
            },
            {
              "description": "Área expansível que contém os cookies.",
              "name": "body"
            }
          ],
          "slots": [
            {
              "description": "Recebe os subcomponentes `br-cookiebar-cookie` do grupo.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarGroupElement"
              }
            },
            {
              "kind": "field",
              "name": "checkboxState",
              "type": {
                "text": "CookiebarSelectionState"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estado atual do checkbox: `true`, `false` ou `'indeterminate'` (seleção parcial).",
              "parsedType": {
                "text": "false | true | 'indeterminate'"
              }
            },
            {
              "kind": "field",
              "name": "liveAnnouncement",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Texto anunciado pela região `aria-live` quando o grupo é expandido.\nGarante que leitores de tela leiam o conteúdo ao abrir, contornando\na limitação de `<slot>` atravessando múltiplos shadow boundaries."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "ID interno gerado automaticamente. Não é necessário informar."
            },
            {
              "kind": "field",
              "name": "groupId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único do grupo. Usado internamente para montar o JSON de resposta."
            },
            {
              "kind": "field",
              "name": "groupName",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome exibido no cabeçalho do grupo (ex: `Desempenho`, `Marketing`)."
            },
            {
              "kind": "field",
              "name": "groupText",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto descritivo exibido abaixo do cabeçalho, explicando a finalidade do grupo."
            },
            {
              "kind": "field",
              "name": "groupOptOut",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Indica se o usuário pode desativar este grupo de cookies.\n- `true` (padrão): exibe checkbox e permite desativar.\n- `false`: exibe \"Sempre ativo\" e não permite desativar."
            },
            {
              "kind": "field",
              "name": "groupSelected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado de seleção do checkbox do grupo.\nPode ser controlado externamente pelo `br-cookiebar` (propagação top-down)\nou recalculado automaticamente a partir do estado dos cookies filhos (bottom-up)."
            },
            {
              "kind": "field",
              "name": "groupAlertMessage",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Mensagem exibida quando o grupo é desmarcado, alertando sobre o impacto.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "expanded",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla se a lista de cookies está visível."
            },
            {
              "kind": "field",
              "name": "selectAllGroupLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Selecionar toda classe'",
              "description": "Texto do checkbox quando o grupo está totalmente selecionado (ação: desselecionar)."
            },
            {
              "kind": "field",
              "name": "unselectAllGroupLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Desselecionar toda classe'",
              "description": "Texto do checkbox quando o grupo está desmarcado ou indeterminado (ação: selecionar)."
            },
            {
              "kind": "field",
              "name": "alwaysActiveLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Sempre ativo'",
              "description": "Texto exibido no lugar do checkbox quando `group-opt-out=\"false\"`."
            },
            {
              "kind": "method",
              "name": "handleGroupSelectedChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Observa mudanças externas em `groupSelected` (propagação top-down do `br-cookiebar`).\nPropaga o novo valor para todos os cookies opt-out filhos e atualiza os contadores.\nIgnorado quando a mudança é originada internamente pelo recálculo bottom-up."
            },
            {
              "kind": "method",
              "name": "handleCookieChange",
              "description": "Escuta o evento `brCookiebarCookieChange` emitido por qualquer `br-cookiebar-cookie` filho.\nRecalcula o estado do grupo (marcado / desmarcado / indeterminado) com base\nno estado atual de todos os cookies opt-out. Ignorado durante propagações top-down."
            },
            {
              "kind": "method",
              "name": "getState",
              "return": {
                "type": {
                  "text": "Promise<CookiebarSelectionState>"
                }
              },
              "description": "Retorna o estado atual de seleção do grupo:\n- `true`: todos os cookies opt-out estão selecionados.\n- `false`: nenhum cookie opt-out está selecionado.\n- `'indeterminate'`: seleção parcial."
            },
            {
              "kind": "method",
              "name": "announceGroupOpen",
              "privacy": "private",
              "description": "Popula a região `aria-live` com um resumo do grupo após a animação de abertura completar\n(`onBrDidOpen`), garantindo que o anúncio ocorra somente quando o conteúdo já é\nvisualmente acessível. Contorna a limitação de `<slot>` atravessando múltiplos\nshadow boundaries."
            },
            {
              "kind": "field",
              "name": "syncingSelection",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Quando `true`, suprime o listener `brCookiebarCookieChange` durante propagações\ntop-down (cookiebar → grupo → cookies) para evitar recálculo em loop."
            },
            {
              "kind": "method",
              "name": "getCookieElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrCookiebarCookieElement[]"
                }
              },
              "description": "Retorna apenas os `br-cookiebar-cookie` que são filhos diretos do grupo."
            },
            {
              "kind": "method",
              "name": "getCookieSummary",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CookieSummary"
                }
              },
              "description": "Lê os cookies uma vez e deriva os dados usados na sincronização e renderização."
            },
            {
              "kind": "method",
              "name": "syncSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "callback",
                  "type": {
                    "text": "() => void"
                  }
                }
              ],
              "description": "Executa uma sincronização sem reprocessar watches e eventos dos filhos."
            },
            {
              "kind": "method",
              "name": "applySelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "newState",
                  "type": {
                    "text": "CookiebarSelectionState"
                  }
                },
                {
                  "name": "propagate",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "emit",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Atualiza o estado do grupo, opcionalmente propagando e emitindo a mudança."
            },
            {
              "kind": "method",
              "name": "recalculateGroupState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "emit",
                  "default": "true"
                }
              ],
              "description": "Recalcula o estado do checkbox do grupo com base nos cookies opt-out filhos.\nDefine `checkboxState` como `true`, `false` ou `'indeterminate'` e expõe\no estado indeterminado via `data-indeterminate` para o `br-cookiebar` pai."
            },
            {
              "kind": "field",
              "name": "handleCheckboxChange",
              "privacy": "private",
              "description": "Manipula a interação direta do usuário com o checkbox do grupo.\nPropaga o novo valor para os cookies filhos e emite `brCookiebarGroupChange`."
            },
            {
              "kind": "field",
              "name": "handleToggle",
              "privacy": "private",
              "description": "Alterna a visibilidade da lista de cookies e emite `brCookiebarGroupToggle`."
            },
            {
              "kind": "field",
              "name": "handleHeaderKeydown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCookieSizeAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "summary",
                  "type": {
                    "text": "CookieSummary"
                  }
                }
              ],
              "description": "Gera o `aria-label` descritivo para o contador de cookies exibido no cabeçalho do grupo.\nO texto visual `(2/5)` não é legível por leitores de tela; este método fornece a versão\nsemântica equivalente (ex: \"2 de 5 cookies selecionados\" ou \"3 cookies\")."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderCheckboxOrBadge",
              "privacy": "private",
              "description": "Renderiza o checkbox (grupos opt-out) ou o badge \"Sempre ativo\" (grupos sempre ativos).\nO label do checkbox muda conforme o estado: selecionar quando desmarcado/indeterminado,\ndesselecionar quando totalmente marcado."
            },
            {
              "kind": "method",
              "name": "renderGroupInfo",
              "privacy": "private",
              "parameters": [
                {
                  "name": "summary",
                  "type": {
                    "text": "CookieSummary"
                  }
                }
              ],
              "description": "Renderização do group-info (nome + contador)"
            },
            {
              "kind": "method",
              "name": "renderGroupControls",
              "privacy": "private",
              "description": "Renderização do group-controls (checkbox/badge + botão expandir)"
            },
            {
              "kind": "method",
              "name": "renderGroupHeader",
              "privacy": "private",
              "parameters": [
                {
                  "name": "summary",
                  "type": {
                    "text": "CookieSummary"
                  }
                }
              ],
              "description": "Renderização do cabeçalho"
            },
            {
              "kind": "method",
              "name": "renderAlert",
              "privacy": "private",
              "description": "Renderização do alerta (visível apenas quando opt-out parcial/desmarcado)"
            },
            {
              "kind": "method",
              "name": "renderGroupBody",
              "privacy": "private",
              "description": "Renderização do corpo expansível (lista de cookies)"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "ID interno gerado automaticamente. Não é necessário informar.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "group-id",
              "fieldName": "groupId",
              "description": "Identificador único do grupo. Usado internamente para montar o JSON de resposta.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "group-name",
              "fieldName": "groupName",
              "description": "Nome exibido no cabeçalho do grupo (ex: `Desempenho`, `Marketing`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "group-text",
              "fieldName": "groupText",
              "description": "Texto descritivo exibido abaixo do cabeçalho, explicando a finalidade do grupo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "group-opt-out",
              "fieldName": "groupOptOut",
              "default": "true",
              "description": "Indica se o usuário pode desativar este grupo de cookies.\n- `true` (padrão): exibe checkbox e permite desativar.\n- `false`: exibe \"Sempre ativo\" e não permite desativar.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "group-selected",
              "fieldName": "groupSelected",
              "default": "false",
              "description": "Estado de seleção do checkbox do grupo.\nPode ser controlado externamente pelo `br-cookiebar` (propagação top-down)\nou recalculado automaticamente a partir do estado dos cookies filhos (bottom-up).",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "group-alert-message",
              "fieldName": "groupAlertMessage",
              "description": "Mensagem exibida quando o grupo é desmarcado, alertando sobre o impacto.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "expanded",
              "fieldName": "expanded",
              "default": "false",
              "description": "Controla se a lista de cookies está visível.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "select-all-group-label",
              "fieldName": "selectAllGroupLabel",
              "default": "'Selecionar toda classe'",
              "description": "Texto do checkbox quando o grupo está totalmente selecionado (ação: desselecionar).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unselect-all-group-label",
              "fieldName": "unselectAllGroupLabel",
              "default": "'Desselecionar toda classe'",
              "description": "Texto do checkbox quando o grupo está desmarcado ou indeterminado (ação: selecionar).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "always-active-label",
              "fieldName": "alwaysActiveLabel",
              "default": "'Sempre ativo'",
              "description": "Texto exibido no lugar do checkbox quando `group-opt-out=\"false\"`.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-cookiebar-group",
          "csspart": [
            {
              "name": "container",
              "description": "Div raiz do grupo."
            },
            {
              "name": "header",
              "description": "Linha de cabeçalho com nome, contadores e controles."
            },
            {
              "name": "body",
              "description": "Área expansível que contém os cookies."
            }
          ],
          "events": [
            {
              "name": "brCookiebarGroupChange",
              "type": {
                "text": "EventEmitter<{ groupId: string; groupSelected: CookiebarSelectionState }>"
              },
              "description": "Emitido quando o estado de seleção do grupo muda (por interação do usuário ou propagação).\nO `br-cookiebar` pai escuta este evento para recalcular o checkbox \"Selecionar todos\"."
            },
            {
              "name": "brCookiebarGroupToggle",
              "type": {
                "text": "EventEmitter<{ groupId: string; expanded: boolean }>"
              },
              "description": "Emitido ao expandir ou recolher a lista de cookies do grupo."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarGroup",
          "declaration": {
            "name": "CookiebarGroup",
            "module": "components/cookiebar-group/cookiebar-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-group",
          "declaration": {
            "name": "CookiebarGroup",
            "module": "components/cookiebar-group/cookiebar-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-header/cookiebar-header.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Título e texto de introdução do painel do `br-cookiebar`. Use no slot `header` do cookiebar.\n\nInforme `main-title`, `entry-text` e, se quiser, a data em `last-update`. Para outro layout, coloque seu próprio conteúdo dentro do componente.",
          "name": "CookiebarHeader",
          "cssParts": [
            {
              "description": "Div raiz do cabeçalho.",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo HTML personalizado que substitui o layout estruturado. Quando preenchido, as props `main-title`, `entry-text` e `last-update` são ignoradas.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarHeaderElement"
              }
            },
            {
              "kind": "field",
              "name": "slotDefault",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "ID interno gerado automaticamente. Não é necessário informar."
            },
            {
              "kind": "field",
              "name": "mainTitle",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Título principal exibido no topo do cabeçalho (ex: `Política de Cookies`).",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "entryText",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto introdutório exibido abaixo do título e da data, descrevendo a política.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "lastUpdate",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Data da última atualização da política de cookies.\nQuando não informada, a linha de data não é exibida.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "lastUpdateLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Última atualização'",
              "description": "Rótulo exibido antes da data de atualização."
            },
            {
              "kind": "method",
              "name": "hasSlotContentDefault",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "ID interno gerado automaticamente. Não é necessário informar.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "main-title",
              "fieldName": "mainTitle",
              "description": "Título principal exibido no topo do cabeçalho (ex: `Política de Cookies`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "entry-text",
              "fieldName": "entryText",
              "description": "Texto introdutório exibido abaixo do título e da data, descrevendo a política.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "last-update",
              "fieldName": "lastUpdate",
              "description": "Data da última atualização da política de cookies.\nQuando não informada, a linha de data não é exibida.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "last-update-label",
              "fieldName": "lastUpdateLabel",
              "default": "'Última atualização'",
              "description": "Rótulo exibido antes da data de atualização.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-cookiebar-header",
          "csspart": {
            "name": "container",
            "description": "Div raiz do cabeçalho."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarHeader",
          "declaration": {
            "name": "CookiebarHeader",
            "module": "components/cookiebar-header/cookiebar-header.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-header",
          "declaration": {
            "name": "CookiebarHeader",
            "module": "components/cookiebar-header/cookiebar-header.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-link/cookiebar-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Link do `br-cookiebar` para a política de privacidade ou os termos de uso. Use no slot `links` do cookiebar.\n\nInforme `name` e `href`. Em SPA, use `navigation-mode=\"event\"` e trate o evento `brNavigate`.",
          "name": "CookiebarLink",
          "cssParts": [
            {
              "description": "Elemento âncora (`<a>`) do link.",
              "name": "link"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarLinkElement"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "ID interno gerado automaticamente. Não é necessário informar."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto visível do link (ex: `Política de Privacidade`)."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "URL de destino do link."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'_self'",
              "description": "Define onde o link será aberto.\n- `_self` (padrão): abre na mesma aba.\n- `_blank`: abre em uma nova aba, com ícone de link externo e `rel=\"noopener noreferrer\"` automáticos."
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "readonly": true,
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "ID interno gerado automaticamente. Não é necessário informar.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Texto visível do link (ex: `Política de Privacidade`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL de destino do link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Define onde o link será aberto.\n- `_self` (padrão): abre na mesma aba.\n- `_blank`: abre em uma nova aba, com ícone de link externo e `rel=\"noopener noreferrer\"` automáticos.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-cookiebar-link",
          "csspart": {
            "name": "link",
            "description": "Elemento âncora (`<a>`) do link."
          },
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarLink",
          "declaration": {
            "name": "CookiebarLink",
            "module": "components/cookiebar-link/cookiebar-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-link",
          "declaration": {
            "name": "CookiebarLink",
            "module": "components/cookiebar-link/cookiebar-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-note/cookiebar-note.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Uma pergunta e resposta complementar no painel do `br-cookiebar`. Informe `question` e `answer`.\n\nPara reunir várias notas, coloque-as em um `br-cookiebar-note-group`.",
          "name": "CookiebarNote",
          "cssParts": [
            {
              "description": "Div raiz do item.",
              "name": "container"
            },
            {
              "description": "Parágrafo da pergunta.",
              "name": "question"
            },
            {
              "description": "Parágrafo da resposta.",
              "name": "answer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarNoteElement"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único; gerado automaticamente quando omitido."
            },
            {
              "kind": "field",
              "name": "question",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto da pergunta."
            },
            {
              "kind": "field",
              "name": "answer",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto da resposta."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único; gerado automaticamente quando omitido.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "question",
              "fieldName": "question",
              "description": "Texto da pergunta.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "answer",
              "fieldName": "answer",
              "description": "Texto da resposta.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-cookiebar-note",
          "csspart": [
            {
              "name": "container",
              "description": "Div raiz do item."
            },
            {
              "name": "question",
              "description": "Parágrafo da pergunta."
            },
            {
              "name": "answer",
              "description": "Parágrafo da resposta."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarNote",
          "declaration": {
            "name": "CookiebarNote",
            "module": "components/cookiebar-note/cookiebar-note.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-note",
          "declaration": {
            "name": "CookiebarNote",
            "module": "components/cookiebar-note/cookiebar-note.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/cookiebar-note-group/cookiebar-note-group.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Agrupa notas do `br-cookiebar` em uma seção que pode ser expandida. O título vem de `note-title`.\n\nColoque dentro dele elementos `br-cookiebar-note` ou outro conteúdo.",
          "name": "CookiebarNoteGroup",
          "cssParts": [
            {
              "description": "Div raiz do grupo.",
              "name": "container"
            },
            {
              "description": "Cabeçalho acessível que expande ou recolhe o conteúdo.",
              "name": "header"
            },
            {
              "description": "Área de conteúdo exibida quando o grupo está expandido.",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Recebe `br-cookiebar-note` ou qualquer conteúdo HTML livre.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrCookiebarNoteGroupElement"
              }
            },
            {
              "kind": "field",
              "name": "liveAnnouncement",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Texto anunciado pela região `aria-live` quando o grupo é expandido."
            },
            {
              "kind": "field",
              "name": "slotDefault",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se há conteúdo no slot. Quando `false`, o componente não é renderizado."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "ID interno gerado automaticamente. Não é necessário informar."
            },
            {
              "kind": "field",
              "name": "noteTitle",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Aviso sobre cookies'",
              "description": "Título exibido no cabeçalho da seção."
            },
            {
              "kind": "field",
              "name": "expanded",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se a seção começa expandida (`true`) ou recolhida (`false`, padrão)."
            },
            {
              "kind": "field",
              "name": "handleToggle",
              "privacy": "private",
              "description": "Alterna a visibilidade do conteúdo e emite `brCookiebarNoteGroupToggle`."
            },
            {
              "kind": "field",
              "name": "handleHeaderKeydown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderHeader",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderContent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "ID interno gerado automaticamente. Não é necessário informar.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "note-title",
              "fieldName": "noteTitle",
              "default": "'Aviso sobre cookies'",
              "description": "Título exibido no cabeçalho da seção.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "expanded",
              "fieldName": "expanded",
              "default": "false",
              "description": "Define se a seção começa expandida (`true`) ou recolhida (`false`, padrão).",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-cookiebar-note-group",
          "csspart": [
            {
              "name": "container",
              "description": "Div raiz do grupo."
            },
            {
              "name": "header",
              "description": "Cabeçalho acessível que expande ou recolhe o conteúdo."
            },
            {
              "name": "content",
              "description": "Área de conteúdo exibida quando o grupo está expandido."
            }
          ],
          "events": [
            {
              "name": "brCookiebarNoteGroupToggle",
              "type": {
                "text": "EventEmitter<{ expanded: boolean }>"
              },
              "description": "Emitido ao expandir ou recolher a seção."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CookiebarNoteGroup",
          "declaration": {
            "name": "CookiebarNoteGroup",
            "module": "components/cookiebar-note-group/cookiebar-note-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-cookiebar-note-group",
          "declaration": {
            "name": "CookiebarNoteGroup",
            "module": "components/cookiebar-note-group/cookiebar-note-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/datetime-picker.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-datetime-picker` é um campo para informar data, hora ou data e hora. A pessoa pode digitar ou escolher no calendário e nos controles de horário.\n\nEscolha o tipo em `mode`: `date`, `time` ou `datetime`. Para início e fim, use `selection-mode=\"range\"`.\n\n```html\n<br-datetime-picker mode=\"date\" name=\"nascimento\" required></br-datetime-picker>\n\n<br-datetime-picker mode=\"date\" selection-mode=\"range\" name=\"periodo\"></br-datetime-picker>\n```\n\n### Ler o valor\n\n| Onde | Formato |\n| --- | --- |\n| `value` | `Date` (ou `null`) |\n| `rangeValue` | `{ start, end }` com `Date` |\n| `serialized-value` e envio do formulário | `2026-05-20` (data), `14:30` (hora), `2026-05-20T14:30:00-03:00` (data e hora), `início/fim` (intervalo) |\n\nAtribua valores do tipo `Date` pelo JavaScript (`picker.value = new Date()`), não por atributo. Para restringir datas, use `min`, `max` e `disabled-dates`.\n\n### Quando usar\n\n- Formulários que pedem uma data, um horário ou um período.\n\n### Quando evitar\n\n- Para só exibir uma data: use texto formatado.\n- Para escolher várias datas soltas: o componente aceita uma data ou um intervalo.\n\nO calendário (`br-date-picker`), os controles de horário (`br-time-picker`) e o campo de texto (`br-datetime-input`) são criados pelo próprio componente; não é preciso declará-los.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/datetimepicker?tab=designer).",
          "name": "DatetimePicker",
          "cssParts": [
            {
              "description": "Parte para o container base do seletor.",
              "name": "container"
            },
            {
              "description": "Parte para o painel em forma de card que engloba o seletor.",
              "name": "panel"
            },
            {
              "description": "Container base do campo de entrada interno.",
              "name": "input-container"
            },
            {
              "description": "Campo textual interno.",
              "name": "input-field"
            },
            {
              "description": "Ícone de ação (calendário/relógio).",
              "name": "input-icon"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              },
              "description": "Fornece acesso à API de formulários nativos via ElementInternals."
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrDatetimePickerElement"
              },
              "description": "Referência ao elemento host do componente no DOM."
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "DatetimePickerMode"
              },
              "description": "Modo exibido pelo componente.\n\nValores: `date` | `time` | `datetime`.\nValores inválidos são normalizados para o padrão.",
              "default": "'datetime'",
              "parsedType": {
                "text": "'date' | 'time' | 'datetime'"
              }
            },
            {
              "kind": "field",
              "name": "locale",
              "type": {
                "text": "DatetimePickerLocale"
              },
              "description": "Locale usado para formatação e rótulos.",
              "default": "'pt-BR'",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Texto placeholder exibido no input."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Nome do campo para submissão em formulários nativos."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o campo é requerido para submissão do formulário."
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "Date | string | null"
              },
              "default": "null",
              "description": "Menor data/hora aceito (Date | string | null).",
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "Date | string | null"
              },
              "default": "null",
              "description": "Maior data/hora aceito (Date | string | null).",
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "DatetimePickerValidator | undefined"
              },
              "readonly": true,
              "description": "Validador customizado (síncrono ou assíncrono) para a seleção.\n\nRecebe `Date | DatetimePickerDateRange | null` como valor.",
              "default": "undefined",
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "kind": "field",
              "name": "selectionMode",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "default": "'single'",
              "description": "Tipo de seleção: `single` ou `range`.",
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "kind": "field",
              "name": "weekStartsOn",
              "type": {
                "text": "DatetimePickerWeekDayIndex"
              },
              "default": "0",
              "description": "Dia inicial da semana exibido no calendário (0 = Dom, 6 = Sáb).",
              "parsedType": {
                "text": "0 | 1 | 2 | 3 | 4 | 5 | 6"
              }
            },
            {
              "kind": "field",
              "name": "initialMoment",
              "type": {
                "text": "DatetimePickerInitialMoment"
              },
              "default": "null",
              "description": "Valor inicial da seleção: `'now' | Date | string | null`.",
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Valor selecionado pelo usuário (Date | null).\n\nPode ser controlado externamente e é refletido internamente."
            },
            {
              "kind": "field",
              "name": "serializedValue",
              "type": {
                "text": "string | undefined"
              },
              "description": "Representação serializada compatível com controles HTML.\n\nFormatos variam conforme `mode`. Em intervalos, usa `início/fim`.",
              "default": "undefined",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "rangeValue",
              "type": {
                "text": "DatetimePickerDateRange | undefined"
              },
              "description": "Intervalo controlado quando `selectionMode=\"range\"`.\n\nEm `datetime`, preserva as datas e horários informados; término anterior ao\ninício torna o controle inválido, sem reordenar ou avançar datas.",
              "default": "undefined",
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita toda a interação do componente."
            },
            {
              "kind": "field",
              "name": "disabledDates",
              "type": {
                "text": "DatetimePickerDisabledDates"
              },
              "default": "null",
              "description": "Datas indisponíveis para seleção. Aceita `Date[]`, `string` ou `null`.\n\nDatas inválidas são ignoradas. A comparação considera apenas o dia.",
              "parsedType": {
                "text": "string | string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }[]"
              }
            },
            {
              "kind": "field",
              "name": "fixedRowCount",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Mantém número fixo de linhas no calendário (6 semanas) quando `true`."
            },
            {
              "kind": "method",
              "name": "handleModeChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  },
                  "description": "Valor recebido via atributo/prop."
                }
              ],
              "description": "Revalida o modo sempre que a prop mudar."
            },
            {
              "kind": "method",
              "name": "handleRequiredChange",
              "description": "Revalida o estado do formulário quando required mudar."
            },
            {
              "kind": "method",
              "name": "handleConstraintChange"
            },
            {
              "kind": "method",
              "name": "handleDisabledChange",
              "description": "Exclui o valor do FormData enquanto o componente estiver desabilitado."
            },
            {
              "kind": "method",
              "name": "handleSelectionModeChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "DatetimePickerSelectionMode"
                  }
                }
              ],
              "description": "Reage a mudanças no modo de seleção e limpa intervalo quando necessário."
            },
            {
              "kind": "method",
              "name": "handleWeekStartsOnChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "DatetimePickerWeekDayIndex"
                  }
                }
              ],
              "description": "Revalida o dia inicial da semana sempre que a prop mudar."
            },
            {
              "kind": "method",
              "name": "handleInitialMomentChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "DatetimePickerInitialMoment"
                  },
                  "description": "Novo estado da prop."
                }
              ],
              "description": "Aplica ou limpa a seleção da data atual conforme o novo valor da prop."
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "Date | null"
                  }
                }
              ],
              "description": "Sincroniza alterações externas do valor com o estado visual e o formulário nativo."
            },
            {
              "kind": "method",
              "name": "handleSerializedValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Converte alterações externas no valor serializado sem mudar o tipo da prop legada `value`."
            },
            {
              "kind": "method",
              "name": "handleValueAsDateChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "Date | null"
                  }
                }
              ],
              "description": "Mantém `valueAsDate` e a prop legada `value` apontando para o mesmo estado observável."
            },
            {
              "kind": "method",
              "name": "handlePickerOpenChange",
              "parameters": [
                {
                  "name": "isOpen",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDisabledDatesChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "DatetimePickerDisabledDates"
                  },
                  "description": "Nova configuração recebida via prop."
                }
              ],
              "description": "Recalcula a lista de datas desabilitadas quando a prop mudar."
            },
            {
              "kind": "method",
              "name": "handleRangeValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback",
              "description": "Restaura o estado do componente quando o formulário é restaurado."
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  },
                  "description": "Estado serializado fornecido pelo navegador."
                }
              ],
              "description": "Restaura o estado do formulário (autofill / histórico)."
            },
            {
              "kind": "method",
              "name": "setDisabledDates",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "dates",
                  "type": {
                    "text": "DatetimePickerDisabledDate[] | null"
                  },
                  "description": "Lista de datas (`Date` | `string`) a bloquear, ou `null` para limpar."
                }
              ],
              "description": "Define programaticamente as datas desabilitadas.\n\nUse quando scripts externos precisam fornecer uma lista tipada de\ndatas a bloquear no calendário. Substitui a prop `disabledDates` para\natualizações imperativas."
            },
            {
              "kind": "method",
              "name": "setValue",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | string | null"
                  },
                  "description": "Date | string | null — valor a aplicar; `null` limpa a seleção."
                }
              ],
              "description": "Define o valor do componente de forma imperativa.\n\nAceita `Date`, string compatível com o `mode`, ou `null` para limpar a seleção.\nValidação de datas desabilitadas é aplicada antes da atribuição."
            },
            {
              "kind": "method",
              "name": "getValue",
              "return": {
                "type": {
                  "text": "Promise<Date | null>"
                }
              },
              "description": "Retorna uma cópia do valor selecionado atualmente."
            },
            {
              "kind": "method",
              "name": "clear",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Limpa valor e intervalo selecionados.\n\nRemove seleção atual e restaura a referência de navegação para a data atual."
            },
            {
              "kind": "method",
              "name": "open",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre o picker quando o componente estiver habilitado."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Fecha o picker."
            },
            {
              "kind": "method",
              "name": "toggle",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Alterna o estado de abertura do picker."
            },
            {
              "kind": "method",
              "name": "focusInput",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Move o foco para o input nativo interno."
            },
            {
              "kind": "method",
              "name": "setRange",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "Date | string | null"
                  },
                  "description": "Date | string | null — data inicial do intervalo."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "Date | string | null"
                  },
                  "description": "Date | string | null — data final do intervalo."
                }
              ],
              "description": "Define um intervalo no modo atual e ativa `selectionMode=\"range\"`.\n\nValida datas contra bloqueios e sincroniza estado visual e de formulário.\nEm `datetime`, mantém os limites informados e sinaliza intervalo inválido\nquando o término precede o início, sem ajustar datas automaticamente."
            },
            {
              "kind": "method",
              "name": "getRange",
              "return": {
                "type": {
                  "text": "Promise<{ start: Date | null; end: Date | null } | null>"
                }
              },
              "description": "Retorna o intervalo de datas selecionado quando em modo `selectionMode=\"range\"`."
            },
            {
              "kind": "method",
              "name": "isOpen",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Consulta se o picker está atualmente aberto."
            },
            {
              "kind": "method",
              "name": "resetToInitial",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Restaura o estado inicial atualmente registrado para reset."
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Permite que consumidores acionem validação nativa do formulário via host."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Permite exibir mensagens nativas de validação no host."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  },
                  "description": "string — mensagem de validação; string vazia remove a mensagem."
                }
              ],
              "description": "Define ou limpa uma mensagem de validade customizada."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator customizado (se houver) e valida o controle.\n\nEmite eventos de início/conclusão da validação e atualiza mensagens internas."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "ensureValidSelectionMode",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "DatetimePickerSelectionMode"
                  },
                  "description": "Modo informado pelo consumidor do componente."
                }
              ],
              "description": "Valida o modo de seleção e corrige para padrão se inválido."
            },
            {
              "kind": "method",
              "name": "initializeSelectionMode",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "initializeWeekStartsOn",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "ensureValidWeekStartsOn",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  },
                  "description": "unknown — valor recebido via prop/atributo a ser normalizado."
                }
              ],
              "description": "Valida o dia inicial da semana e corrige para padrão quando necessário."
            },
            {
              "kind": "method",
              "name": "clearRangeState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "initializeTimeRangeBoundaries",
              "privacy": "private",
              "parameters": [
                {
                  "name": "duringInitialization",
                  "default": "false"
                }
              ],
              "description": "Materializa os horários exibidos pelos dois timers como limites reais.\nAssim o range de horário já nasce completo, o input pode representá-lo na\nprimeira renderização e nenhum timer depende da referência do outro."
            },
            {
              "kind": "method",
              "name": "isRangeDateSelectionMode",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resolvePublicEventEmissionForRange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "range",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange"
                  },
                  "description": "DatetimePickerDateRange | undefined — estado parcial do range vindo do subcomponente."
                }
              ],
              "description": "Decide se um evento público deve ser emitido após atualização vinda de\nsubcomponentes (calendário/relógio).",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "resolveSelectedDateFromEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "range",
                  "type": {
                    "text": "DatetimePickerDateRange | undefined"
                  },
                  "description": "DatetimePickerDateRange | undefined — intervalo parcial (quando aplicável)."
                },
                {
                  "name": "value",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Date | null — valor principal vindo do subcomponente."
                }
              ],
              "description": "Resolve a data efetivamente selecionada no evento para validações e bloqueios.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "handleInputValidationChange",
              "privacy": "private",
              "description": "Handler disparado por `br-datetime-input` para propagar mensagens de\nvalidação do input interno para o estado do componente.",
              "parameters": [
                {
                  "description": "CustomEvent<{ valid: boolean; message: string }> — detalhe com `valid` e `message`.",
                  "name": "event"
                }
              ],
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "isRangeNavigationState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Date | null — valor principal do evento."
                },
                {
                  "name": "range",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange"
                  },
                  "description": "DatetimePickerDateRange | undefined — range parcial do evento."
                }
              ],
              "description": "Identifica navegação visual que preserva integralmente o range selecionado.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "handleUnchangedDateState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "range",
                  "type": {
                    "text": "DatetimePickerDateRange | undefined"
                  },
                  "description": "DatetimePickerDateRange | undefined — estado parcial do range."
                },
                {
                  "name": "shouldEmitPublicEvent",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "boolean — indica se o evento público deve ser emitido."
                }
              ],
              "description": "Consolida um evento cujo valor principal permaneceu inalterado."
            },
            {
              "kind": "method",
              "name": "emitPendingRangeChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "range",
                  "type": {
                    "text": "DatetimePickerDateRange | undefined"
                  },
                  "description": "DatetimePickerDateRange | undefined — snapshot parcial do range."
                },
                {
                  "name": "shouldEmitPublicEvent",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "boolean — se deve ser emitido publicamente."
                }
              ],
              "description": "Emite a seleção parcial de range quando os eventos públicos foram adiados\npara evitar duplicidade com listeners legados."
            },
            {
              "kind": "field",
              "name": "handleDateStateChange",
              "privacy": "private",
              "description": "Handler principal que consolida eventos de `br-date-picker` / `br-time-picker`.\nContém lógica de proteção contra valores desabilitados, navegação e emissão\nde eventos públicos apropriados.",
              "parameters": [
                {
                  "description": "CustomEvent<DatetimePickerDateState> — detalhe com `referenceDate`, `value` e `range`.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleRangeTimeStateChange",
              "privacy": "private",
              "description": "Atualiza somente o horário de um dos limites do intervalo.",
              "parameters": [
                {
                  "description": "'start' | 'end' — qual limite será atualizado.",
                  "name": "boundary"
                },
                {
                  "description": "CustomEvent<DatetimePickerDateState> — detalhe com novo `value`.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleRangeStartTimeStateChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleRangeEndTimeStateChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleTogglePicker",
              "privacy": "private",
              "description": "Alterna visibilidade do picker quando o input solicita.",
              "parameters": [
                {
                  "description": "Event — evento de toggle vindo do input.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleOutsideClick",
              "privacy": "private",
              "description": "Fecha o picker quando o clique acontece fora do host.",
              "parameters": [
                {
                  "description": "MouseEvent — clique ocorrido no documento.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "attachOutsideClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachOutsideClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "initializeMode",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "initializeDisabledDates",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncDisabledDates",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  },
                  "description": "Valor bruto recebido por prop/atributo ou método público."
                }
              ],
              "description": "Normaliza e aplica as datas desabilitadas, limpando valor atual quando necessário."
            },
            {
              "kind": "method",
              "name": "initializeDefaultValue",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyInitialMoment",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selection",
                  "type": {
                    "text": "DatetimePickerInitialMoment"
                  },
                  "description": "Configuração de seleção inicial."
                },
                {
                  "name": "shouldEmitEvents",
                  "default": "true"
                }
              ],
              "description": "Aplica a seleção inicial recebida, com normalização de valores inválidos."
            },
            {
              "kind": "method",
              "name": "isRangeRestoreMode",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "restoreRangeStateFromSerialized",
              "privacy": "private",
              "parameters": [
                {
                  "name": "serializedState",
                  "type": {
                    "text": "string"
                  },
                  "description": "string — valor serializado vindo do formulário."
                }
              ],
              "description": "Restaura estado de intervalo a partir do valor serializado do formulário."
            },
            {
              "kind": "method",
              "name": "restoreSingleStateFromSerialized",
              "privacy": "private",
              "parameters": [
                {
                  "name": "serializedState",
                  "type": {
                    "text": "string"
                  },
                  "description": "string — valor serializado vindo do formulário."
                }
              ],
              "description": "Restaura estado de seleção única a partir do valor serializado do formulário."
            },
            {
              "kind": "method",
              "name": "parseMethodValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | string | null"
                  },
                  "description": "Date | string | null — valor bruto recebido pelo método público."
                },
                {
                  "name": "mode",
                  "type": {
                    "text": "DatetimePickerMode"
                  },
                  "description": "DatetimePickerMode — modo atual para parsing de strings."
                }
              ],
              "description": "Converte entradas aceitas por métodos públicos em `Date | null`."
            },
            {
              "kind": "method",
              "name": "restoreSerializedValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "serializedValue",
                  "type": {
                    "text": "string"
                  },
                  "description": "string — valor serializado a ser restaurado."
                }
              ],
              "description": "Aplica a ponte serializada usando os mesmos parsers já usados por restore de formulário."
            },
            {
              "kind": "method",
              "name": "syncCanonicalValues",
              "privacy": "private",
              "description": "Atualiza os nomes padrão sem emitir eventos adicionais ou criar ciclos de watchers."
            },
            {
              "kind": "method",
              "name": "getSerializedValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna o mesmo valor que será submetido pelo ElementInternals."
            },
            {
              "kind": "method",
              "name": "sameDate",
              "privacy": "private",
              "parameters": [
                {
                  "name": "left",
                  "type": {
                    "text": "Date | null"
                  }
                },
                {
                  "name": "right",
                  "type": {
                    "text": "Date | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getNativeInputElement",
              "privacy": "private",
              "description": "Busca o input nativo interno para ações imperativas de foco.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "setComponentValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextValue",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Date | null — próximo valor a ser aplicado no componente."
                },
                {
                  "name": "shouldEmitPublicEvent",
                  "default": "true",
                  "description": "boolean — controla emissão de eventos públicos."
                }
              ],
              "description": "Atualiza estado interno, FormData e validação com uma única chamada.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "emitDateStateChange",
              "privacy": "private",
              "description": "Propaga o estado atual consolidado para consumidores externos do componente raiz."
            },
            {
              "kind": "method",
              "name": "emitCanonicalChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "rangeSnapshot",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange"
                  }
                }
              ],
              "description": "Emite o contrato público sem expor detalhes incidentais do estado interno."
            },
            {
              "kind": "method",
              "name": "serializeDateOnly",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Date — data a serializar (somente componente civil)."
                }
              ],
              "description": "Serializa uma data civil sem conversão para UTC ou mudança de dia.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "serializeRangeBoundary",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Date | null — limite a serializar."
                }
              ],
              "description": "Serializa um limite do intervalo conforme o modo sem expor objetos Date no payload."
            },
            {
              "kind": "method",
              "name": "buildRangeDatesState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Date — início do intervalo."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Date — fim do intervalo."
                }
              ],
              "description": "Expande o intervalo completo e marca quais dias estão desabilitados.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "restoreSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextValue",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Date | null — valor validado a ser restaurado como seleção."
                }
              ],
              "description": "Restaura seleção e data de referência a partir de uma data já validada."
            },
            {
              "kind": "method",
              "name": "setRangeState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextRange",
                  "type": {
                    "text": "DatetimePickerDateRange | undefined"
                  },
                  "description": "DatetimePickerDateRange | undefined — novo snapshot do intervalo."
                }
              ],
              "description": "Atualiza o estado local de intervalo a partir do evento do calendário."
            },
            {
              "kind": "method",
              "name": "updateFormInternals",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncFormValue",
              "privacy": "private",
              "description": "Atualiza o valor submetido no FormData do form-associated custom element."
            },
            {
              "kind": "method",
              "name": "getRangeOrderValidationMessage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Deriva o erro de ordenação sem modificar os limites escolhidos."
            },
            {
              "kind": "method",
              "name": "syncFormValidity",
              "privacy": "private",
              "description": "Espelha a regra de required no mecanismo nativo de validade."
            },
            {
              "kind": "method",
              "name": "parseConstraintValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | string | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "cloneDate",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "Date | null"
                  }
                }
              ],
              "description": "Duplica datas para evitar compartilhamento de referência mutável."
            },
            {
              "kind": "method",
              "name": "isDateDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "date",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data candidata à seleção."
                }
              ],
              "description": "Verifica se a data pertence ao conjunto de dias bloqueados."
            },
            {
              "kind": "method",
              "name": "ensureValidMode",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Modo informado pelo consumidor do componente."
                }
              ],
              "description": "Corrige valores inválidos para o modo padrão, preservando a consistência do estado refletido."
            },
            {
              "kind": "method",
              "name": "getModeRenderer",
              "privacy": "private",
              "description": "Resolve a função de renderização associada ao modo atual.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o conjunto de classes base aplicadas ao container do componente."
            },
            {
              "kind": "method",
              "name": "getSharedDateStateBindings",
              "privacy": "private",
              "description": "Agrupa os bindings compartilhados para evitar divergência entre data e horário."
            },
            {
              "kind": "field",
              "name": "handlePickerKeydown",
              "privacy": "private",
              "description": "Fecha o picker ao pressionar Escape, devolvendo o foco ao input interno.",
              "parameters": [
                {
                  "description": "Evento de teclado disparado em qualquer descendente do componente.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderInputField",
              "privacy": "private",
              "description": "Renderiza o campo de entrada responsável por abrir e sincronizar o picker."
            },
            {
              "kind": "method",
              "name": "renderDatePicker",
              "privacy": "private",
              "description": "Renderiza apenas o seletor de data."
            },
            {
              "kind": "method",
              "name": "renderTimePicker",
              "privacy": "private",
              "parameters": [
                {
                  "name": "boundary",
                  "optional": true,
                  "type": {
                    "text": "'start' | 'end'"
                  }
                }
              ],
              "description": "Renderiza um seletor de hora simples ou um limite do intervalo."
            },
            {
              "kind": "method",
              "name": "renderRangeTimePickers",
              "privacy": "private",
              "description": "Renderiza os horários inicial e final lado a lado no modo range."
            },
            {
              "kind": "method",
              "name": "renderDateTimePicker",
              "privacy": "private",
              "description": "Renderiza a combinação de data e horário no modo `datetime`."
            },
            {
              "kind": "method",
              "name": "renderDivider",
              "privacy": "private",
              "description": "Renderiza o separador visual entre data e hora no modo combinado."
            },
            {
              "kind": "method",
              "name": "renderPickerContent",
              "privacy": "private",
              "description": "Resolve o conteúdo interno conforme o modo atual do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderização principal do componente."
            }
          ],
          "attributes": [
            {
              "name": "mode",
              "fieldName": "mode",
              "default": "'datetime'",
              "description": "Modo exibido pelo componente.\n\nValores: `date` | `time` | `datetime`.\nValores inválidos são normalizados para o padrão.",
              "type": {
                "text": "DatetimePickerMode"
              },
              "parsedType": {
                "text": "'date' | 'time' | 'datetime'"
              }
            },
            {
              "name": "locale",
              "fieldName": "locale",
              "default": "'pt-BR'",
              "description": "Locale usado para formatação e rótulos.",
              "type": {
                "text": "DatetimePickerLocale"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "default": "''",
              "description": "Texto placeholder exibido no input.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "default": "''",
              "description": "Nome do campo para submissão em formulários nativos."
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Indica se o campo é requerido para submissão do formulário."
            },
            {
              "name": "min",
              "fieldName": "min",
              "default": "null",
              "description": "Menor data/hora aceito (Date | string | null).",
              "type": {
                "text": "Date | string | null"
              },
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "default": "null",
              "description": "Maior data/hora aceito (Date | string | null).",
              "type": {
                "text": "Date | string | null"
              },
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "default": "undefined",
              "description": "Validador customizado (síncrono ou assíncrono) para a seleção.\n\nRecebe `Date | DatetimePickerDateRange | null` como valor.",
              "type": {
                "text": "DatetimePickerValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "selection-mode",
              "fieldName": "selectionMode",
              "default": "'single'",
              "description": "Tipo de seleção: `single` ou `range`.",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "name": "week-starts-on",
              "fieldName": "weekStartsOn",
              "default": "0",
              "description": "Dia inicial da semana exibido no calendário (0 = Dom, 6 = Sáb).",
              "type": {
                "text": "DatetimePickerWeekDayIndex"
              },
              "parsedType": {
                "text": "0 | 1 | 2 | 3 | 4 | 5 | 6"
              }
            },
            {
              "name": "initial-moment",
              "fieldName": "initialMoment",
              "default": "null",
              "description": "Valor inicial da seleção: `'now' | Date | string | null`.",
              "type": {
                "text": "DatetimePickerInitialMoment"
              },
              "parsedType": {
                "text": "string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "null",
              "description": "Valor selecionado pelo usuário (Date | null).\n\nPode ser controlado externamente e é refletido internamente.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "serialized-value",
              "fieldName": "serializedValue",
              "default": "undefined",
              "description": "Representação serializada compatível com controles HTML.\n\nFormatos variam conforme `mode`. Em intervalos, usa `início/fim`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value-as-date",
              "fieldName": "valueAsDate",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "range-value",
              "fieldName": "rangeValue",
              "default": "undefined",
              "description": "Intervalo controlado quando `selectionMode=\"range\"`.\n\nEm `datetime`, preserva as datas e horários informados; término anterior ao\ninício torna o controle inválido, sem reordenar ou avançar datas.",
              "type": {
                "text": "DatetimePickerDateRange"
              },
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita toda a interação do componente."
            },
            {
              "name": "disabled-dates",
              "fieldName": "disabledDates",
              "default": "null",
              "description": "Datas indisponíveis para seleção. Aceita `Date[]`, `string` ou `null`.\n\nDatas inválidas são ignoradas. A comparação considera apenas o dia.",
              "type": {
                "text": "DatetimePickerDisabledDates"
              },
              "parsedType": {
                "text": "string | string | { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }[]"
              }
            },
            {
              "name": "fixed-row-count",
              "fieldName": "fixedRowCount",
              "default": "false",
              "description": "Mantém número fixo de linhas no calendário (6 semanas) quando `true`."
            }
          ],
          "tagName": "br-datetime-picker",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Parte para o container base do seletor."
            },
            {
              "name": "panel",
              "description": "Parte para o painel em forma de card que engloba o seletor."
            },
            {
              "name": "input-container",
              "description": "Container base do campo de entrada interno."
            },
            {
              "name": "input-field",
              "description": "Campo textual interno."
            },
            {
              "name": "input-icon",
              "description": "Ícone de ação (calendário/relógio)."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "events": [
            {
              "name": "dateStateChange",
              "type": {
                "text": "CustomEvent<DatetimePickerDateState>"
              },
              "description": "Evento público emitido quando a data de referência ou a seleção mudam.\n\nPayload (`DatetimePickerDateState`):\n- `referenceDate`: Date — data usada para navegação visual (mês/semana exibidos).\n- `value`: Date | null — valor selecionado atualmente."
            },
            {
              "name": "brDatetimePickerChange",
              "type": {
                "text": "CustomEvent<DatetimePickerChangeDetail>"
              },
              "description": "Evento emitido quando a seleção muda.\n\nPayload (`DatetimePickerChangeDetail`):\n- `mode`: DatetimePickerMode — modo atual do componente (`date` | `time` | `datetime`).\n- `selectionMode`: DatetimePickerSelectionMode — `single` ou `range`.\n- `value`: Date | null | DatetimePickerDateRange — seleção atual (tipo depende de `selectionMode`).\n- `serializedValue`: string | undefined — representação serializada para integração com formulários."
            },
            {
              "name": "valueChange",
              "type": {
                "text": "CustomEvent<Date | null>"
              },
              "description": "Evento emitido quando o valor selecionado muda.",
              "deprecated": "Use `brDatetimePickerChange` para receber a seleção completa e tipada.\n\nPayload (legacy): `Date | null` — valor selecionado."
            },
            {
              "name": "brDatetimePickerValidationChange",
              "type": {
                "text": "CustomEvent<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada.\n\nPayload (`FormValidationChangeDetail`):\n- `validating`: boolean — indica se a validação está em execução.\n- `valid`: boolean | null — resultado da validação (`null` enquanto valida).\n- `message`: string | null — mensagem de validação associada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários"
          ],
          "cssProperties": [
            {
              "name": "--br-datetime-picker-date-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-datetime-picker-datetime-range-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-datetime-picker-datetime-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-datetime-picker-time-range-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-datetime-picker-time-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-datetime-picker-width",
              "description": "Variável CSS pública do componente."
            }
          ]
        },
        {
          "kind": "variable",
          "name": "value"
        },
        {
          "kind": "variable",
          "name": "serializedValue"
        },
        {
          "kind": "variable",
          "name": "rangeUnderflow"
        },
        {
          "kind": "variable",
          "name": "rangeOverflow"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DatetimePicker",
          "declaration": {
            "name": "DatetimePicker",
            "module": "components/datetime-picker.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-datetime-picker",
          "declaration": {
            "name": "DatetimePicker",
            "module": "components/datetime-picker.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/date-picker/date-picker.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Calendário usado pelo `br-datetime-picker`. Também pode ser usado sozinho, quando a tela precisa de um calendário sempre visível.\n\nUsado sozinho, ele não tem campo de texto nem participa de formulário: a aplicação lê a seleção e cuida da validação.\n\n```html\n<br-date-picker id=\"agenda\"></br-date-picker>\n```\n\n```js\nconst calendario = document.querySelector('#agenda');\ncalendario.addEventListener('change', () => console.log(calendario.value));\n```\n\n- `value`: data selecionada (`Date`).\n- `referenceDate`: mês exibido.\n- `disabledDates`: datas que não podem ser escolhidas.\n- `selectionMode=\"range\"`: seleção de intervalo, lida em `rangeValue`.\n\nPara mudar o idioma, veja \"Idiomas\" na documentação do `br-datetime-picker`.",
          "name": "DatePicker",
          "cssParts": [
            {
              "description": "Parte para o container base do calendário.",
              "name": "container"
            },
            {
              "description": "Cabeçalho do calendário (contendo navegação e seleção de mês/ano).",
              "name": "header"
            },
            {
              "description": "Elemento de seleção do mês.",
              "name": "month-select"
            },
            {
              "description": "Elemento de entrada do ano.",
              "name": "year-input"
            },
            {
              "description": "Grade geral do calendário.",
              "name": "calendar"
            },
            {
              "description": "Container para os rótulos dos dias da semana.",
              "name": "weekdays"
            },
            {
              "description": "Rótulo individual do dia da semana.",
              "name": "weekday"
            },
            {
              "description": "Grade de dias do mês.",
              "name": "grid"
            },
            {
              "description": "Célula individual do dia no calendário.",
              "name": "day"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "weekStartsOn",
              "type": {
                "text": "WeekDayIndex"
              },
              "default": "0",
              "description": "Índice do dia em que a semana começa na interface do calendário.",
              "parsedType": {
                "text": "0 | 1 | 2 | 3 | 4 | 5 | 6"
              }
            },
            {
              "kind": "field",
              "name": "referenceDate",
              "type": {
                "text": "Date"
              },
              "default": "new Date()",
              "description": "Data usada como base visual para o mês atualmente exibido."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Data atualmente selecionada pelo usuário, ou `null` quando não há seleção."
            },
            {
              "kind": "field",
              "name": "selectionMode",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "default": "'single'",
              "description": "Define se a seleção ocorre por data única ou por intervalo.",
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "kind": "field",
              "name": "rangeStart",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Data inicial selecionada quando o calendário opera no modo de intervalo."
            },
            {
              "kind": "field",
              "name": "rangeEnd",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Data final selecionada quando o calendário opera no modo de intervalo."
            },
            {
              "kind": "field",
              "name": "rangeValue",
              "type": {
                "text": "DatetimePickerDateRange | undefined"
              },
              "description": "Intervalo controlado no modo `range`.\nQuando definido, mantém `rangeStart` e `rangeEnd` sincronizados.",
              "default": "undefined",
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação do calendário quando `true`."
            },
            {
              "kind": "field",
              "name": "disabledDates",
              "type": {
                "text": "Date[]"
              },
              "default": "[]",
              "description": "Lista de datas indisponíveis para seleção no calendário."
            },
            {
              "kind": "field",
              "name": "locale",
              "type": {
                "text": "string"
              },
              "description": "Locale usado para gerar nomes de meses e dias da semana.",
              "default": "DATETIME_PICKER_LOCALE.DEFAULT"
            },
            {
              "kind": "field",
              "name": "fixedRowCount",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Se `true`, o calendário sempre exibe 6 semanas (42 dias); caso contrário, adapta-se ao mês."
            },
            {
              "kind": "method",
              "name": "handleRangeValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Novo valor recebido via prop."
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "Date | null"
                  }
                }
              ],
              "description": "Sincroniza `focusedDate` quando o valor selecionado muda externamente."
            },
            {
              "kind": "method",
              "name": "handleWeekStartsOnChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  },
                  "description": "Novo valor recebido via prop."
                }
              ],
              "description": "Revalida a configuração quando o início da semana muda."
            },
            {
              "kind": "method",
              "name": "handleLocaleChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  },
                  "description": "Novo valor recebido via prop."
                }
              ],
              "description": "Revalida o locale quando a prop muda."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "week-starts-on",
              "fieldName": "weekStartsOn",
              "default": "0",
              "description": "Índice do dia em que a semana começa na interface do calendário.",
              "type": {
                "text": "WeekDayIndex"
              },
              "parsedType": {
                "text": "0 | 1 | 2 | 3 | 4 | 5 | 6"
              }
            },
            {
              "name": "reference-date",
              "fieldName": "referenceDate",
              "default": "new Date()",
              "description": "Data usada como base visual para o mês atualmente exibido.",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "null",
              "description": "Data atualmente selecionada pelo usuário, ou `null` quando não há seleção.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "selection-mode",
              "fieldName": "selectionMode",
              "default": "'single'",
              "description": "Define se a seleção ocorre por data única ou por intervalo.",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "name": "range-start",
              "fieldName": "rangeStart",
              "default": "null",
              "description": "Data inicial selecionada quando o calendário opera no modo de intervalo.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "range-end",
              "fieldName": "rangeEnd",
              "default": "null",
              "description": "Data final selecionada quando o calendário opera no modo de intervalo.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "range-value",
              "fieldName": "rangeValue",
              "default": "undefined",
              "description": "Intervalo controlado no modo `range`.\nQuando definido, mantém `rangeStart` e `rangeEnd` sincronizados.",
              "type": {
                "text": "DatetimePickerDateRange"
              },
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação do calendário quando `true`."
            },
            {
              "name": "disabled-dates",
              "fieldName": "disabledDates",
              "default": "[]",
              "description": "Lista de datas indisponíveis para seleção no calendário.",
              "type": {
                "text": "Date[]"
              }
            },
            {
              "name": "locale",
              "fieldName": "locale",
              "default": "DATETIME_PICKER_LOCALE.DEFAULT",
              "description": "Locale usado para gerar nomes de meses e dias da semana.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "fixed-row-count",
              "fieldName": "fixedRowCount",
              "default": "false",
              "description": "Se `true`, o calendário sempre exibe 6 semanas (42 dias); caso contrário, adapta-se ao mês."
            }
          ],
          "tagName": "br-date-picker",
          "csspart": [
            {
              "name": "container",
              "description": "Parte para o container base do calendário."
            },
            {
              "name": "header",
              "description": "Cabeçalho do calendário (contendo navegação e seleção de mês/ano)."
            },
            {
              "name": "month-select",
              "description": "Elemento de seleção do mês."
            },
            {
              "name": "year-input",
              "description": "Elemento de entrada do ano."
            },
            {
              "name": "calendar",
              "description": "Grade geral do calendário."
            },
            {
              "name": "weekdays",
              "description": "Container para os rótulos dos dias da semana."
            },
            {
              "name": "weekday",
              "description": "Rótulo individual do dia da semana."
            },
            {
              "name": "grid",
              "description": "Grade de dias do mês."
            },
            {
              "name": "day",
              "description": "Célula individual do dia no calendário."
            }
          ],
          "events": [
            {
              "name": "dateStateChange",
              "type": {
                "text": "EventEmitter<DatetimePickerDateState>"
              },
              "description": "Emite o estado consolidado do componente quando há mudança de referência/seleção.\n\nPayload (DatetimePickerDateState):"
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DatePicker",
          "declaration": {
            "name": "DatePicker",
            "module": "components/date-picker/date-picker.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-date-picker",
          "declaration": {
            "name": "DatePicker",
            "module": "components/date-picker/date-picker.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/datetime-input/datetime-input.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Campo de texto com máscara usado pelo `br-datetime-picker`. Interpreta a data ou a hora digitada e abre o calendário pelo botão do campo.\n\nÉ criado pelo `br-datetime-picker`; não é preciso declará-lo. Para um campo de data em formulário, use o `br-datetime-picker`.",
          "name": "DatetimeInput",
          "cssParts": [
            {
              "description": "Container do campo.",
              "name": "container"
            },
            {
              "description": "Elemento de entrada textual interno.",
              "name": "input"
            },
            {
              "description": "Ícone de ação (calendário/relógio).",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrDatetimeInputElement"
              },
              "description": "Referência ao elemento host do componente no DOM."
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Texto de placeholder exibido quando o campo estiver vazio."
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "DatetimePickerMode"
              },
              "default": "'datetime'",
              "description": "Modo de entrada que controla máscara, parser e formato exibido.",
              "parsedType": {
                "text": "'date' | 'time' | 'datetime'"
              }
            },
            {
              "kind": "field",
              "name": "referenceDate",
              "type": {
                "text": "Date"
              },
              "default": "new Date()",
              "description": "Data de referência usada para navegação e preenchimento de valores parciais."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Valor atualmente selecionado pelo componente."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla os estados de read-only ou bloqueio de formulário."
            },
            {
              "kind": "field",
              "name": "selectionMode",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "default": "'single'",
              "description": "Define o modo de seleção: `single` (valor único) ou `range` (intervalo).",
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "kind": "field",
              "name": "rangeStart",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Início do intervalo em `selectionMode === 'range'`."
            },
            {
              "kind": "field",
              "name": "rangeEnd",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Fim do intervalo em `selectionMode === 'range'`."
            },
            {
              "kind": "field",
              "name": "rangeValue",
              "type": {
                "text": "DatetimePickerDateRange | undefined"
              },
              "description": "Intervalo controlado no modo `range` como objeto `{ start, end }`.",
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            },
            {
              "kind": "method",
              "name": "handleRangeValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "DatetimePickerDateRange | undefined"
                  },
                  "description": "Novo intervalo ou `undefined`."
                }
              ],
              "description": "Watcher: sincroniza `rangeStart`/`rangeEnd` a partir de `rangeValue` controlado.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Novo valor recebido via prop."
                }
              ],
              "description": "Watcher: reage a mudanças externas em `value`, normalizando e sincronizando\no texto exibido no input.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleModeChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  },
                  "description": "Novo modo recebido via prop."
                }
              ],
              "description": "Watcher: aplica normalização do `mode` e atualiza a máscara/valor exibido.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleReferenceDateChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Nova data de referência recebida."
                }
              ],
              "description": "Watcher: valida `referenceDate` e resina o input quando não há seleção.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleRangeStartChange",
              "description": "Watcher: atualiza a representação textual quando o início do range muda.",
              "parameters": [
                {
                  "description": "Nova data inicial do range.",
                  "name": "newValue"
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleRangeEndChange",
              "description": "Watcher: atualiza a representação textual quando o fim do range muda.",
              "parameters": [
                {
                  "description": "Nova data final do range.",
                  "name": "newValue"
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleActionButtonClick",
              "privacy": "private",
              "description": "Handler do clique no botão de ação interno.",
              "parameters": [
                {
                  "description": "Ativação pública da ação do br-input.",
                  "name": "event"
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleInputBlur",
              "privacy": "private",
              "description": "Blur handler: consome o evento e confirma o conteúdo atual.",
              "parameters": [
                {
                  "description": "Evento de blur do input.",
                  "name": "event",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleInputCommit",
              "privacy": "private",
              "description": "Handler para commit disparado pelo `change` do `br-input`.",
              "parameters": [
                {
                  "description": "Evento de change.",
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "commitCurrentInput",
              "privacy": "private",
              "description": "Confirma o conteúdo atual evitando commits duplicados (blur + change).",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleInputChange",
              "privacy": "private",
              "description": "Atualiza o estado local com o valor digitado no campo.",
              "parameters": [
                {
                  "description": "Evento de input redistribuído pelo `br-input`.",
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getInputMask",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "description": "Retorna a máscara delegada ao `br-input` de acordo com o modo atual."
            },
            {
              "kind": "field",
              "name": "handleInputKeydown",
              "privacy": "private",
              "description": "Handler de teclado no campo de entrada.\n\nSuporta atalhos ARIA (Alt+ArrowDown / F4) para abrir/fechar o picker\ne Enter para confirmar a edição.",
              "parameters": [
                {
                  "description": "Evento de teclado.",
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getToggleAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna o rótulo acessível do botão de alternância do picker."
            },
            {
              "kind": "method",
              "name": "ensureValidMode",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.mode",
                  "type": {
                    "text": "string"
                  },
                  "description": "Modo informado externamente."
                }
              ],
              "description": "Normaliza e aplica um modo válido (`date` | `time` | `datetime`).",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "ensureValidReferenceDate",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.referenceDate",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data de referência recebida via prop."
                }
              ],
              "description": "Garante que `referenceDate` seja uma `Date` válida; caso contrário, normaliza.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "ensureValidValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "default": "this.value",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Valor recebido via prop."
                }
              ],
              "description": "Normaliza o valor selecionado para `Date` válido ou `null`.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "commitInputValue",
              "privacy": "private",
              "description": "Consolida o texto digitado, tenta analisar e emite o novo estado selecionado.\n\nTrata modos `single` e `range` e valida mensagens de erro apropriadas.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "emitInputValidation",
              "privacy": "private",
              "parameters": [
                {
                  "name": "valid",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Indica se a entrada é válida."
                },
                {
                  "name": "message",
                  "default": "''",
                  "description": "Mensagem de erro quando inválido.",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Emite o resultado da validação textual sem alterar o valor selecionado.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "isInputComplete",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de entrada a ser verificado."
                }
              ],
              "description": "Verifica se a entrada possui a quantidade de dígitos esperada para o modo atual."
            },
            {
              "kind": "method",
              "name": "getInputValidationMessage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de entrada a ser avaliado."
                }
              ],
              "description": "Retorna mensagem de validação contextual para uma entrada incompleta ou inválida."
            },
            {
              "kind": "method",
              "name": "getRangeValidationMessage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de intervalo informado no input."
                }
              ],
              "description": "Mensagem específica para o formato de intervalo do modo atual."
            },
            {
              "kind": "method",
              "name": "emitNativeValueChange",
              "privacy": "private",
              "description": "Dispara eventos nativos `input` e `change` para compatibilidade com forms.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "parseRangeInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "{ start: Date; end: Date } | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de intervalo informado no input."
                }
              ],
              "description": "Analisa o intervalo no formato `dd/MM/yyyy - dd/MM/yyyy`."
            },
            {
              "kind": "method",
              "name": "normalizeRangeBounds",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "{ start: Date; end: Date }"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data de início."
                },
                {
                  "name": "end",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data de término."
                }
              ],
              "description": "Normaliza os limites do intervalo para garantir ordem cronológica.\n\n- Em `time` e `datetime` mantém os limites informados.\n- Em `date` reordena caso necessário."
            },
            {
              "kind": "method",
              "name": "syncInputValueFromProps",
              "privacy": "private",
              "description": "Sincroniza o texto do input com as props `value`/`rangeStart`/`rangeEnd` e `mode`.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "formatDateByMode",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "date",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data a ser formatada para exibição no input."
                }
              ],
              "description": "Formata uma data de acordo com o modo atual do componente."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes CSS aplicado ao host do componente."
            },
            {
              "kind": "method",
              "name": "getInputIcon",
              "privacy": "private",
              "description": "Seleciona o ícone do campo conforme o modo de entrada ativo.",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "parseInputValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto informado pelo usuário no input."
                },
                {
                  "name": "base",
                  "default": "this.value ?? this.referenceDate ?? toDate(new Date())",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data base usada para completar valores parciais.",
                  "optional": true
                }
              ],
              "description": "Converte o texto digitado em `Date` com base no modo configurado."
            },
            {
              "kind": "method",
              "name": "parseDateInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de data digitado pelo usuário."
                },
                {
                  "name": "base",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data base usada para completar informações de tempo."
                }
              ],
              "description": "Faz parse de uma data no formato `dd/MM/yyyy`, preservando hora e minuto base."
            },
            {
              "kind": "method",
              "name": "parseTimeInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto de hora digitado pelo usuário."
                },
                {
                  "name": "base",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data base usada para manter dia, mês e ano."
                }
              ],
              "description": "Faz parse de hora no formato `HH:mm`, preservando o dia da data base."
            },
            {
              "kind": "method",
              "name": "parseDateTimeInput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Date | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "Texto digitado no input."
                },
                {
                  "name": "base",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Data base usada como contexto para completar o parse."
                }
              ],
              "description": "Faz parse de data e hora completas, aceitando somente a data como fallback."
            },
            {
              "kind": "method",
              "name": "getInputAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna o rótulo acessível do campo de entrada de acordo com o modo ativo."
            },
            {
              "kind": "method",
              "name": "renderInputField",
              "privacy": "private",
              "description": "Renderiza o campo textual e o ícone de ação do datetime input.",
              "return": {
                "type": {
                  "text": "JSX.Element"
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderização principal do componente."
            }
          ],
          "attributes": [
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "default": "''",
              "description": "Texto de placeholder exibido quando o campo estiver vazio.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "mode",
              "fieldName": "mode",
              "default": "'datetime'",
              "description": "Modo de entrada que controla máscara, parser e formato exibido.",
              "type": {
                "text": "DatetimePickerMode"
              },
              "parsedType": {
                "text": "'date' | 'time' | 'datetime'"
              }
            },
            {
              "name": "reference-date",
              "fieldName": "referenceDate",
              "default": "new Date()",
              "description": "Data de referência usada para navegação e preenchimento de valores parciais.",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "null",
              "description": "Valor atualmente selecionado pelo componente.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Controla os estados de read-only ou bloqueio de formulário."
            },
            {
              "name": "selection-mode",
              "fieldName": "selectionMode",
              "default": "'single'",
              "description": "Define o modo de seleção: `single` (valor único) ou `range` (intervalo).",
              "type": {
                "text": "DatetimePickerSelectionMode"
              },
              "parsedType": {
                "text": "'single' | 'range'"
              }
            },
            {
              "name": "range-start",
              "fieldName": "rangeStart",
              "default": "null",
              "description": "Início do intervalo em `selectionMode === 'range'`.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "range-end",
              "fieldName": "rangeEnd",
              "default": "null",
              "description": "Fim do intervalo em `selectionMode === 'range'`.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "range-value",
              "fieldName": "rangeValue",
              "description": "Intervalo controlado no modo `range` como objeto `{ start, end }`.",
              "type": {
                "text": "DatetimePickerDateRange"
              },
              "parsedType": {
                "text": "{ start: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } }, end: { toString: {  }, toDateString: {  }, toTimeString: {  }, toLocaleString: {  }, toLocaleDateString: {  }, toLocaleTimeString: {  }, valueOf: {  }, getTime: {  }, getFullYear: {  }, getUTCFullYear: {  }, getMonth: {  }, getUTCMonth: {  }, getDate: {  }, getUTCDate: {  }, getDay: {  }, getUTCDay: {  }, getHours: {  }, getUTCHours: {  }, getMinutes: {  }, getUTCMinutes: {  }, getSeconds: {  }, getUTCSeconds: {  }, getMilliseconds: {  }, getUTCMilliseconds: {  }, getTimezoneOffset: {  }, setTime: {  }, setMilliseconds: {  }, setUTCMilliseconds: {  }, setSeconds: {  }, setUTCSeconds: {  }, setMinutes: {  }, setUTCMinutes: {  }, setHours: {  }, setUTCHours: {  }, setDate: {  }, setUTCDate: {  }, setMonth: {  }, setUTCMonth: {  }, setFullYear: {  }, setUTCFullYear: {  }, toUTCString: {  }, toISOString: {  }, toJSON: {  }, __@toPrimitive@370: {  } } }"
              }
            }
          ],
          "tagName": "br-datetime-input",
          "csspart": [
            {
              "name": "container",
              "description": "Container do campo."
            },
            {
              "name": "input",
              "description": "Elemento de entrada textual interno."
            },
            {
              "name": "icon",
              "description": "Ícone de ação (calendário/relógio)."
            }
          ],
          "see": [
            "https://www.gov.br/ds/components/datetime?tab=designer"
          ],
          "events": [
            {
              "name": "dateStateChange",
              "type": {
                "text": "EventEmitter<DatetimePickerDateState>"
              },
              "description": "Evento emitido quando o estado de data/hora muda (após commit ou parsing).\n\nPayload (`detail`):"
            },
            {
              "name": "togglePicker",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emite uma solicitação ao componente pai para alternar a abertura do picker.\nEmite sem payload."
            },
            {
              "name": "inputValidationChange",
              "type": {
                "text": "EventEmitter<{ valid: boolean | null; message: string; origin?: string }>"
              },
              "description": "Emite validação do texto digitado sem alterar o valor selecionado.\n\nPayload (`detail`):"
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DatetimeInput",
          "declaration": {
            "name": "DatetimeInput",
            "module": "components/datetime-input/datetime-input.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-datetime-input",
          "declaration": {
            "name": "DatetimeInput",
            "module": "components/datetime-input/datetime-input.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/time-picker/time-picker.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Controles de hora e minuto usados pelo `br-datetime-picker`. Em um intervalo, o componente cria um controle para o início e outro para o fim.\n\nPara um campo de horário em formulário, use `<br-datetime-picker mode=\"time\">`. Usado sozinho, ele não participa de formulário: leia o horário em `value` e trate a validação na aplicação.",
          "name": "TimePicker",
          "cssParts": [
            {
              "description": "Container base do seletor de horários.",
              "name": "container"
            },
            {
              "description": "Grupo que contém os campos de hora e minuto.",
              "name": "timer"
            },
            {
              "description": "Campo de tempo com botões de ajuste.",
              "name": "field"
            },
            {
              "description": "Separador visual entre hora e minuto.",
              "name": "separator"
            },
            {
              "description": "Campo de entrada textual interno do tempo.",
              "name": "input"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTimePickerElement"
              },
              "description": "Referência ao elemento host do componente no DOM."
            },
            {
              "kind": "field",
              "name": "referenceDate",
              "type": {
                "text": "Date"
              },
              "default": "new Date()",
              "description": "Data de referência usada para exibir e ajustar hora e minuto."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "Date | null"
              },
              "default": "null",
              "description": "Valor selecionado pelo usuário."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se os controles do seletor estão desabilitados."
            },
            {
              "kind": "field",
              "name": "timeDraft",
              "type": {
                "text": "Partial<Record<InputTimeType, string>>"
              },
              "privacy": "private",
              "default": "{}",
              "description": "Rascunho dos valores digitados por cada campo (`hour` | `minute`).\nMantém entradas parciais até o commit por blur/Enter.",
              "parsedType": {
                "text": "{ hour: Partial<Record<InputTimeType, string>>, minute: Partial<Record<InputTimeType, string>> }"
              }
            },
            {
              "kind": "field",
              "name": "timeInputChangeHandlers",
              "privacy": "private",
              "default": "new Map<InputTimeType, (event: Event) => void>()",
              "description": "Mapa memorizado de handlers para o evento `input` por tipo de campo.\n\nMotivo: evita recriar closures a cada render, reduz alocação e mantém\nidentidade das funções (útil para comparação/remoção quando necessário).",
              "type": {
                "text": "Map<InputTimeType, (event: Event) => void>"
              }
            },
            {
              "kind": "field",
              "name": "timeInputCommitHandlers",
              "privacy": "private",
              "default": "new Map<InputTimeType, (event: Event) => void>()",
              "description": "Mapa memorizado de handlers de commit (blur/confirm) por tipo de campo.\n\nContém funções que finalizam o rascunho e aplicam o valor via\n`handleTimeInputCommit(type)`.",
              "type": {
                "text": "Map<InputTimeType, () => void>"
              }
            },
            {
              "kind": "field",
              "name": "timeInputKeydownHandlers",
              "privacy": "private",
              "default": "new Map<InputTimeType, (event: KeyboardEvent) => void>()",
              "description": "Mapa memorizado de handlers de teclado por tipo de campo.\n\nSuporta comportamento de `Enter` (confirma) e setas para ajuste.\nMemorizar evita recriar closures e melhora performance em re-renders.",
              "type": {
                "text": "Map<InputTimeType, (event: KeyboardEvent) => void>"
              }
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Novo valor vindo da prop `value`."
                }
              ],
              "description": "Sincroniza `referenceDate` quando a prop `value` muda.\n\nNormaliza segundos/milissegundos e restaura rascunhos locais.",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "emitDateStateChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextReferenceDate",
                  "type": {
                    "text": "Date"
                  },
                  "description": "Nova data de referência após a interação."
                },
                {
                  "name": "nextValue",
                  "default": "toDate(new Date(nextReferenceDate))",
                  "type": {
                    "text": "Date | null"
                  },
                  "description": "Valor final selecionado; quando omitido, assume a data de referência."
                }
              ],
              "description": "Emite o estado consolidado para manter hora, minuto e data sincronizados."
            },
            {
              "kind": "method",
              "name": "getIconForAction",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "action",
                  "type": {
                    "text": "NavigationAction"
                  },
                  "description": "Ação representada pelo botão."
                }
              ],
              "description": "Resolve o ícone associado à ação de navegação."
            },
            {
              "kind": "field",
              "name": "handleNavigationClick",
              "privacy": "private",
              "description": "Executa a navegação associada ao botão clicado.",
              "parameters": [
                {
                  "description": "Clique disparado pelo botão de navegação.",
                  "name": "event",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleTimeInputChange",
              "privacy": "private",
              "description": "Atualiza o rascunho do campo removendo qualquer caractere não numérico.",
              "parameters": [
                {
                  "description": "Evento de input do campo de hora ou minuto.",
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                },
                {
                  "description": "Campo que está sendo editado.",
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleTimeInputCommit",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Campo que será aplicado."
                }
              ],
              "description": "Aplica o valor digitado ao estado do componente quando o campo é concluído."
            },
            {
              "kind": "method",
              "name": "getNavigationAriaLabel",
              "privacy": "private",
              "parameters": [
                {
                  "name": "action",
                  "type": {
                    "text": "NavigationAction"
                  },
                  "description": "Ação que o botão executa."
                }
              ],
              "description": "Constrói o rótulo acessível das ações de navegação com base no valor atual.",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTimeFieldAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo, hora ou minuto."
                }
              ],
              "description": "Retorna o rótulo acessível do campo exibido."
            },
            {
              "kind": "method",
              "name": "getTimeFieldConfig",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo a ser renderizado."
                }
              ],
              "description": "Resolve o valor, a ação anterior e a próxima ação para o campo solicitado.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "getTimeFieldValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo a ser lido."
                }
              ],
              "description": "Formata o valor exibido no campo como dois dígitos."
            },
            {
              "kind": "method",
              "name": "getTimeInputChangeHandler",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo."
                }
              ],
              "description": "Recupera um handler estável para o evento de input de um campo específico.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "getTimeInputCommitHandler",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo."
                }
              ],
              "description": "Recupera um handler estável para o commit de um campo específico.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "getTimeInputKeydownHandler",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo."
                }
              ],
              "description": "Recupera um handler estável para confirmar o valor com a tecla Enter.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "adjustTimeInputWithKeyboard",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  },
                  "description": "Evento de teclado que disparou a ação."
                },
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo (`hour` | `minute`) a ser ajustado."
                }
              ],
              "description": "Ajusta o valor do campo via teclado (ArrowUp/ArrowDown).",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "increaseHour",
              "privacy": "private",
              "description": "Incrementa a hora sem alterar os demais componentes da data.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "increaseMinute",
              "privacy": "private",
              "description": "Incrementa o minuto sem alterar os demais componentes da data.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "decreaseHour",
              "privacy": "private",
              "description": "Decrementa a hora sem alterar os demais componentes da data.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "decreaseMinute",
              "privacy": "private",
              "description": "Decrementa o minuto sem alterar os demais componentes da data.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderNavigationButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "action",
                  "type": {
                    "text": "NavigationAction"
                  },
                  "description": "Ação que o botão executará."
                }
              ],
              "description": "Renderiza um botão de navegação consistente para hora ou minuto.",
              "return": {
                "type": {
                  "text": "JSX.Element"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderTimePicker",
              "privacy": "private",
              "description": "Renderiza o bloco completo de hora e minuto.",
              "return": {
                "type": {
                  "text": "JSX.Element"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderTimeField",
              "privacy": "private",
              "parameters": [
                {
                  "name": "type",
                  "type": {
                    "text": "InputTimeType"
                  },
                  "description": "Tipo do campo a ser exibido."
                }
              ],
              "description": "Renderiza um campo de edição com navegação lateral.",
              "return": {
                "type": {
                  "text": "JSX.Element"
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Render principal do componente.",
              "return": {
                "type": {
                  "text": "JSX.Element"
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "reference-date",
              "fieldName": "referenceDate",
              "default": "new Date()",
              "description": "Data de referência usada para exibir e ajustar hora e minuto.",
              "type": {
                "text": "Date"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "null",
              "description": "Valor selecionado pelo usuário.",
              "type": {
                "text": "Date | null"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Indica se os controles do seletor estão desabilitados."
            }
          ],
          "tagName": "br-time-picker",
          "csspart": [
            {
              "name": "container",
              "description": "Container base do seletor de horários."
            },
            {
              "name": "timer",
              "description": "Grupo que contém os campos de hora e minuto."
            },
            {
              "name": "field",
              "description": "Campo de tempo com botões de ajuste."
            },
            {
              "name": "separator",
              "description": "Separador visual entre hora e minuto."
            },
            {
              "name": "input",
              "description": "Campo de entrada textual interno do tempo."
            }
          ],
          "events": [
            {
              "name": "dateStateChange",
              "type": {
                "text": "EventEmitter<DatetimePickerDateState>"
              },
              "description": "Evento emitido sempre que `referenceDate` ou `value` são atualizados.\n\nO `detail` segue a forma de `DatetimePickerDateState` e contém o estado\ncompartilhado entre subcomponentes de data e horário.\n\nPayload (`detail`):"
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TimePicker",
          "declaration": {
            "name": "TimePicker",
            "module": "components/time-picker/time-picker.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-time-picker",
          "declaration": {
            "name": "TimePicker",
            "module": "components/time-picker/time-picker.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/divider.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-divider` é uma linha que separa seções ou grupos de conteúdo. Pode ser horizontal ou vertical e ter um texto no meio.\n\n```html\n<br-divider></br-divider>\n\n<br-divider>ou</br-divider>\n\n<br-divider orientation=\"vertical\" thickness=\"medium\" border-style=\"dashed\"></br-divider>\n```\n\n### Quando usar\n\n- Marcar o fim de um bloco e o início de outro.\n- Separar alternativas, como \"Entrar com gov.br\" ou \"Entrar com certificado digital\".\n\n### Quando evitar\n\n- Quando o espaço em branco já separa bem o conteúdo.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/divider?tab=designer).",
          "name": "Divider",
          "cssParts": [
            {
              "description": "Elemento principal do divisor.",
              "name": "divider"
            },
            {
              "description": "Conteúdo do divisor (quando há slot).",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Slot opcional para conteúdo dentro do divisor (texto, ícones ou elementos personalizados).",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrDividerElement"
              }
            },
            {
              "kind": "field",
              "name": "hasContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "DividerOrientation"
              },
              "default": "'horizontal'",
              "description": "Orientação do divisor. Em modo vertical, posicione dentro de um container com `display: flex`. Valores inválidos usam `horizontal`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "thickness",
              "type": {
                "text": "DividerThickness"
              },
              "default": "'small'",
              "description": "Espessura visual do divisor. Valores inválidos usam `small`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "borderStyle",
              "type": {
                "text": "DividerBorderStyle"
              },
              "default": "'solid'",
              "description": "Estilo de borda do divisor. Valores inválidos usam `solid`.",
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "kind": "field",
              "name": "isDarkMode",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Ativa variante de alto contraste para fundos escuros.",
              "deprecated": "Use `colorMode`."
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "'light' | 'dark' | undefined"
              },
              "description": "Esquema de cor padrão. Quando informado, tem precedência sobre `isDarkMode`; valores inválidos usam `light`.",
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "color",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Cor do divisor.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não definida, usa a cor padrão do tema."
            },
            {
              "kind": "field",
              "name": "align",
              "type": {
                "text": "DividerAlign"
              },
              "description": "Alinhamento do conteúdo quando há slot interno. Valores inválidos são ignorados.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "bleed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Faz o divisor ocupar toda a largura do container, compensando paddings laterais."
            },
            {
              "kind": "field",
              "name": "marginTop",
              "type": {
                "text": "number"
              },
              "default": "null",
              "description": "Margin top em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "marginBottom",
              "type": {
                "text": "number"
              },
              "default": "null",
              "description": "Margin bottom em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "marginLeft",
              "type": {
                "text": "number"
              },
              "default": "null",
              "description": "Margin left em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "marginRight",
              "type": {
                "text": "number"
              },
              "default": "null",
              "description": "Margin right em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "effectiveMarginTop",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMarginBottom",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMarginLeft",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMarginRight",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "handleResize",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "updateColor",
              "description": "Watcher para a cor do divisor.\nAtualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\nIsso permite que o divisor use cores personalizadas sem precisar de estilos adicionais."
            },
            {
              "kind": "method",
              "name": "updateMargins",
              "description": "Watcher para as propriedades de margin.\nAtualiza as propriedades CSS customizáveis do elemento para refletir os margins definidos."
            },
            {
              "kind": "method",
              "name": "setBleed",
              "privacy": "private",
              "description": "Configura o divisor para sangrar (bleed) nas laterais."
            },
            {
              "kind": "method",
              "name": "unsetBleed",
              "privacy": "private",
              "description": "Remove o sangramento (bleed) do divisor."
            },
            {
              "kind": "method",
              "name": "hasDefaultSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Verifica se o divisor tem conteúdo no slot padrão."
            },
            {
              "kind": "method",
              "name": "getHostParentPadding",
              "privacy": "private",
              "description": "Determina o paddingLeft e paddingRight do elemento pai do host.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "applyMarginOnRootElement",
              "privacy": "private",
              "description": "Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\nIsso é necessário quando o divisor está configurado para sangrar (bleed).\nIMPORTANTE: Preserva as variáveis CSS customizadas de margin."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "description": "Define as classes CSS que serão aplicadas ao divisor.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "DividerOrientation"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveThickness",
              "type": {
                "text": "DividerThickness"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveBorderStyle",
              "type": {
                "text": "DividerBorderStyle"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "'light' | 'dark'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAlign",
              "type": {
                "text": "DividerAlign | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "method",
              "name": "renderDefaultSlotDivider",
              "privacy": "private",
              "description": "Renderiza o divisor quando há conteúdo no slot padrão.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderStandardDivider",
              "privacy": "private",
              "description": "Renderiza o divisor quando não há conteúdo no slot padrão.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "default": "'horizontal'",
              "description": "Orientação do divisor. Em modo vertical, posicione dentro de um container com `display: flex`. Valores inválidos usam `horizontal`.",
              "type": {
                "text": "DividerOrientation"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "thickness",
              "fieldName": "thickness",
              "default": "'small'",
              "description": "Espessura visual do divisor. Valores inválidos usam `small`.",
              "type": {
                "text": "DividerThickness"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "border-style",
              "fieldName": "borderStyle",
              "default": "'solid'",
              "description": "Estilo de borda do divisor. Valores inválidos usam `solid`.",
              "type": {
                "text": "DividerBorderStyle"
              },
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "name": "is-dark-mode",
              "fieldName": "isDarkMode",
              "default": "false",
              "description": "Ativa variante de alto contraste para fundos escuros."
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Esquema de cor padrão. Quando informado, tem precedência sobre `isDarkMode`; valores inválidos usam `light`.",
              "type": {
                "text": "'light' | 'dark'"
              },
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "name": "color",
              "fieldName": "color",
              "default": "''",
              "description": "Cor do divisor.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não definida, usa a cor padrão do tema."
            },
            {
              "name": "align",
              "fieldName": "align",
              "description": "Alinhamento do conteúdo quando há slot interno. Valores inválidos são ignorados.",
              "type": {
                "text": "DividerAlign"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "bleed",
              "fieldName": "bleed",
              "default": "false",
              "description": "Faz o divisor ocupar toda a largura do container, compensando paddings laterais."
            },
            {
              "name": "margin-top",
              "fieldName": "marginTop",
              "default": "null",
              "description": "Margin top em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "margin-bottom",
              "fieldName": "marginBottom",
              "default": "null",
              "description": "Margin bottom em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "margin-left",
              "fieldName": "marginLeft",
              "default": "null",
              "description": "Margin left em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "margin-right",
              "fieldName": "marginRight",
              "default": "null",
              "description": "Margin right em pixels; se omitido, aplica padrão interno.\nDeve ser um número finito; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            }
          ],
          "tagName": "br-divider",
          "status": "stable",
          "csspart": [
            {
              "name": "divider",
              "description": "Elemento principal do divisor."
            },
            {
              "name": "content",
              "description": "Conteúdo do divisor (quando há slot)."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Layout",
          "categories": [
            "Layout",
            "Estrutura"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Divider",
          "declaration": {
            "name": "Divider",
            "module": "components/divider.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-divider",
          "declaration": {
            "name": "Divider",
            "module": "components/divider.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/dropdown.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-dropdown` abre um painel flutuante a partir de um botão, com ações ou conteúdo complementar, como um menu \"Mais opções\".\n\nColoque o botão no slot `trigger` e o conteúdo no slot `target`:\n\n```html\n<br-dropdown>\n  <br-button slot=\"trigger\" emphasis=\"tertiary\">Mais opções</br-button>\n  <br-list slot=\"target\">\n    <br-item>Exportar</br-item>\n    <br-item>Imprimir</br-item>\n  </br-list>\n</br-dropdown>\n```\n\nO painel fecha com Escape ou com um clique fora dele (desative com `prevent-auto-dismiss`). A posição é definida por `placement`, por exemplo `bottom-start` ou `top-end`. Para acompanhar a abertura e o fechamento, ouça `brDropdownOpenChange`.\n\n### Quando usar\n\n- Várias ações secundárias quando há pouco espaço na tela.\n\n### Quando evitar\n\n- Escolher um valor de formulário: use `br-select`.\n- Navegação principal do site: use `br-menu`.\n- Avisos: use `br-message` ou `br-notification`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/dropdown?tab=designer).",
          "name": "Dropdown",
          "cssParts": [
            {
              "description": "Área do acionador do dropdown.",
              "name": "trigger"
            },
            {
              "description": "Área de conteúdo exibida pelo dropdown.",
              "name": "target"
            },
            {
              "description": "Indicador visual opcional do acionador do dropdown.",
              "name": "trigger-arrow"
            }
          ],
          "slots": [
            {
              "description": "Slot para o elemento que aciona a abertura do dropdown.",
              "name": "trigger"
            },
            {
              "description": "Slot para o conteúdo exibido pelo dropdown.",
              "name": "target"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrDropdownElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `customId`."
            },
            {
              "kind": "field",
              "name": "isOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o dropdown está aberto ou fechado.\nEsta propriedade é refletida no DOM e pode ser alterada externamente.\nO valor padrão é falso (fechado)."
            },
            {
              "kind": "field",
              "name": "placement",
              "type": {
                "text": "DropdownPlacement"
              },
              "default": "'bottom-start'",
              "description": "Define o posicionamento do target (alvo) em relação ao trigger (acionador).",
              "parsedType": {
                "text": "'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "showArrow",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe uma seta ao lado do elemento acionador.\nO valor padrão é falso para preservar a apresentação dos triggers existentes."
            },
            {
              "kind": "field",
              "name": "arrowPosition",
              "type": {
                "text": "DropdownArrowPosition"
              },
              "default": "'right'",
              "description": "Define o posicionamento da seta ('left' ou 'right') em relação ao elemento acionador.\nO valor padrão é 'right'.",
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "preventAutoDismiss",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\nQuando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\nQuando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto."
            },
            {
              "kind": "field",
              "name": "matchTriggerWidth",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Faz o painel acompanhar a largura do acionador enquanto estiver aberto.\nO valor padrão `false` preserva a largura determinada pelo conteúdo."
            },
            {
              "kind": "field",
              "name": "targetZIndex",
              "type": {
                "text": "string"
              },
              "default": "'var(--z-index-layer-1)'",
              "description": "Define o z-index do elemento target (alvo) do dropdown.\nPermite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\nO valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1)."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `disabled`."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `ariaLabel`."
            },
            {
              "kind": "field",
              "name": "effectivePlacement",
              "type": {
                "text": "DropdownPlacement"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveArrowPosition",
              "type": {
                "text": "DropdownArrowPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "kind": "field",
              "name": "pendingOpenInit",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Método chamado sempre que a propriedade `isOpen` muda.\nEmite um evento com o novo estado do dropdown."
            },
            {
              "kind": "field",
              "name": "clickListenerAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "isOpenChanged",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "targetZIndexChanged",
              "description": "Aplica o novo valor de z-index ao elemento target."
            },
            {
              "kind": "method",
              "name": "matchTriggerWidthChanged",
              "description": "Recalcula a superfície aberta quando a política de largura muda."
            },
            {
              "kind": "method",
              "name": "disabledChanged",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Fecha o dropdown se for desabilitado enquanto estiver aberto."
            },
            {
              "kind": "method",
              "name": "attachClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "attachOpenListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachOpenListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hide",
              "return": {
                "type": {
                  "text": "Promise<{ isOpen: boolean }>"
                }
              },
              "description": "Esconde o dropdown.\nDefine a propriedade `isOpen` como falsa e retorna o novo estado.\nEste método pode ser chamado externamente.",
              "deprecated": "Use `close`."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<{ isOpen: boolean }>"
                }
              },
              "description": "Fecha o dropdown e mantém o formato de retorno legado."
            },
            {
              "kind": "method",
              "name": "open",
              "return": {
                "type": {
                  "text": "Promise<{ isOpen: boolean }>"
                }
              },
              "description": "Abre o dropdown.\nDefine a propriedade `isOpen` como verdadeira e retorna o novo estado.\nEste método pode ser chamado externamente."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "description": "Define o foco no elemento interno do componente.\nEste método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto."
            },
            {
              "kind": "field",
              "name": "triggerElement",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "semanticTriggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "targetElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "dropdownItems",
              "type": {
                "text": "HTMLElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "dropdownLinks",
              "type": {
                "text": "HTMLElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "focusableElement",
              "type": {
                "text": "HTMLElement | null | undefined"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "floatingManager",
              "type": {
                "text": "FloatingUIManager"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupBlockingSurfaceDismissal",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "clickHandler",
              "type": {
                "text": "(event: MouseEvent) => void"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "triggerKeydownHandler",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTriggerSlotChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "targetKeydownHandler",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "dropdownOpenHandler",
              "type": {
                "text": "EventListener"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "toggle",
              "privacy": "private",
              "readonly": true,
              "description": "Alterna o estado do dropdown entre aberto e fechado."
            },
            {
              "kind": "method",
              "name": "cleanupPositioning",
              "privacy": "private",
              "description": "Limpa o posicionamento do Floating UI"
            },
            {
              "kind": "method",
              "name": "hideTargetUntilPositioned",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "revealTargetAfterPositioning",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "clearDropdownItemListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getTabCycle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "description": "Links e demais itens focáveis do target na ordem do documento. O Tab percorre\nesta sequência única para que listas mistas (links e botões) sejam alcançáveis.",
              "parameters": [
                {
                  "description": "Elemento a receber o foco",
                  "name": "targetElement"
                }
              ]
            },
            {
              "kind": "method",
              "name": "cycleTabFocus",
              "privacy": "private",
              "parameters": [
                {
                  "name": "current",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "backwards",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Move o foco para o próximo (ou anterior, com Shift) elemento do ciclo de Tab."
            },
            {
              "kind": "method",
              "name": "focusOnElement",
              "privacy": "private",
              "parameters": [
                {
                  "name": "targetElement",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "scrollIntoView",
                  "default": "true"
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusOnTriggerElement",
              "privacy": "private",
              "description": "Foca no elemento interativo dentro do slot trigger\nEsta função procura pelo elemento dentro do slot trigger e aplica o foco nele"
            },
            {
              "kind": "method",
              "name": "focusTrigger",
              "privacy": "private",
              "description": "Auxiliar para focar no elemento trigger"
            },
            {
              "kind": "method",
              "name": "syncTriggerAccessibility",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncTriggerAccessibilityAfterHydration",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleItemKeydown",
              "privacy": "private",
              "description": "Handler para eventos de keydown nos itens não-link.\nSetas, Home e End navegam entre estes itens; Tab percorre o ciclo único\n(links e itens na ordem do documento)."
            },
            {
              "kind": "field",
              "name": "handleLinkKeydown",
              "privacy": "private",
              "description": "Handler específico para links. Tab percorre o ciclo único (links e itens)."
            },
            {
              "kind": "method",
              "name": "handleTriggerBehavior",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "Lida com o comportamento no trigger"
            },
            {
              "kind": "method",
              "name": "initializeDropdownItems",
              "privacy": "private",
              "description": "Inicializa os itens do dropdown com comportamentos de navegação com teclado,\nseparando links e demais itens (setas navegam entre itens; Tab percorre ambos na ordem do documento)"
            },
            {
              "kind": "method",
              "name": "onClickOutside",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MouseEvent"
                  },
                  "description": "O evento de clique que ocorreu."
                }
              ],
              "description": "Método que lida com cliques fora do dropdown."
            },
            {
              "kind": "method",
              "name": "onDropdownDidOpen",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "Método que lida com o evento brDidOpen de outros dropdowns\nFecha este dropdown se não for o emissor do evento e preventAutoDismiss=false"
            },
            {
              "kind": "method",
              "name": "positionDropdown",
              "privacy": "private",
              "description": "Posiciona o dropdown usando Floating UI"
            },
            {
              "kind": "method",
              "name": "setBehavior",
              "privacy": "private",
              "description": "Configura os comportamentos de interação do dropdown"
            },
            {
              "kind": "method",
              "name": "updateTargetZIndex",
              "privacy": "private",
              "description": "Atualiza o z-index do target conforme a propriedade targetZIndex"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `customId`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-open",
              "fieldName": "isOpen",
              "default": "false",
              "description": "Indica se o dropdown está aberto ou fechado.\nEsta propriedade é refletida no DOM e pode ser alterada externamente.\nO valor padrão é falso (fechado).",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "placement",
              "fieldName": "placement",
              "default": "'bottom-start'",
              "description": "Define o posicionamento do target (alvo) em relação ao trigger (acionador).",
              "type": {
                "text": "DropdownPlacement"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top'"
              }
            },
            {
              "name": "show-arrow",
              "fieldName": "showArrow",
              "default": "false",
              "description": "Exibe uma seta ao lado do elemento acionador.\nO valor padrão é falso para preservar a apresentação dos triggers existentes."
            },
            {
              "name": "arrow-position",
              "fieldName": "arrowPosition",
              "default": "'right'",
              "description": "Define o posicionamento da seta ('left' ou 'right') em relação ao elemento acionador.\nO valor padrão é 'right'.",
              "type": {
                "text": "DropdownArrowPosition"
              },
              "parsedType": {
                "text": "'left' | 'right'"
              }
            },
            {
              "name": "prevent-auto-dismiss",
              "fieldName": "preventAutoDismiss",
              "default": "false",
              "description": "Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\nQuando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\nQuando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "match-trigger-width",
              "fieldName": "matchTriggerWidth",
              "default": "false",
              "description": "Faz o painel acompanhar a largura do acionador enquanto estiver aberto.\nO valor padrão `false` preserva a largura determinada pelo conteúdo."
            },
            {
              "name": "target-z-index",
              "fieldName": "targetZIndex",
              "default": "'var(--z-index-layer-1)'",
              "description": "Define o z-index do elemento target (alvo) do dropdown.\nPermite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\nO valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `disabled`."
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `ariaLabel`.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-dropdown",
          "status": "stable",
          "csspart": [
            {
              "name": "trigger",
              "description": "Área do acionador do dropdown."
            },
            {
              "name": "target",
              "description": "Área de conteúdo exibida pelo dropdown."
            },
            {
              "name": "trigger-arrow",
              "description": "Indicador visual opcional do acionador do dropdown."
            }
          ],
          "events": [
            {
              "name": "brDidOpen",
              "type": {
                "text": "EventEmitter<{ id: string }>"
              },
              "description": "Emitido quando o dropdown abre."
            },
            {
              "name": "brDidClose",
              "type": {
                "text": "EventEmitter<{ id: string }>"
              },
              "description": "Emitido quando o dropdown fecha."
            },
            {
              "name": "brDropdownChange",
              "type": {
                "text": "EventEmitter<{ isOpen: boolean }>"
              },
              "deprecated": "Use `brDropdownOpenChange`."
            },
            {
              "name": "brDropdownOpenChange",
              "type": {
                "text": "EventEmitter<DropdownOpenChangeDetail>"
              },
              "description": "Evento emitido quando o estado aberto muda."
            }
          ],
          "customElement": true,
          "category": "Ações",
          "categories": [
            "Ações",
            "Sobreposições"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Dropdown",
          "declaration": {
            "name": "Dropdown",
            "module": "components/dropdown.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-dropdown",
          "declaration": {
            "name": "Dropdown",
            "module": "components/dropdown.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-footer` é o rodapé da página: logotipo, mapa do site, redes sociais, parceiros e informações legais.\n\n### Como montar\n\n| Área | Onde colocar |\n| --- | --- |\n| Logotipo | `br-footer-logo` no slot `logo` |\n| Mapa do site | `br-footer-category` com `br-footer-item`, no conteúdo do footer |\n| Redes sociais | `br-footer-social` no slot `social-network` |\n| Parceiros | `br-footer-logo partner` no slot `partner-logo` |\n| Informações legais | `br-footer-legal` no slot `legal` |\n\n```html\n<br-footer social-network-title=\"Redes sociais\">\n  <br-footer-logo slot=\"logo\" src=\"/logo.svg\" description=\"Nome do órgão\" href=\"/\"></br-footer-logo>\n\n  <br-footer-category label=\"Serviços\">\n    <br-footer-item href=\"/servicos/emitir\">Emitir documento</br-footer-item>\n    <br-footer-item href=\"/servicos/consultar\">Consultar processo</br-footer-item>\n  </br-footer-category>\n\n  <br-footer-social slot=\"social-network\" icon=\"instagram\" description=\"Instagram\" href=\"https://instagram.com/orgao\" target=\"_blank\"></br-footer-social>\n\n  <br-footer-legal slot=\"legal\">Texto destinado a exibir informações sobre o licenciamento.</br-footer-legal>\n</br-footer>\n```\n\nEm telas pequenas, as categorias viram seções que abrem e fecham. O tema padrão é escuro; use `theme=\"light\"` para o claro.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/footer?tab=designer).",
          "name": "Footer",
          "cssParts": [
            {
              "description": "Wrapper principal do footer.",
              "name": "container"
            },
            {
              "description": "Área do mapa do site.",
              "name": "site-map"
            },
            {
              "description": "Área de redes sociais.",
              "name": "social"
            },
            {
              "description": "Área de logos de parceiros.",
              "name": "partners"
            }
          ],
          "slots": [
            {
              "description": "Slot para o logo do rodapé, utilizando o componente br-logo.",
              "name": "logo"
            },
            {
              "description": "Slot para o mapa do site, utilizando br-footer-category e br-footer-item.",
              "name": "default"
            },
            {
              "description": "Slot para as redes sociais, utilizando br-footer-social.",
              "name": "social-network"
            },
            {
              "description": "Slot para logos de parceiros, utilizando br-logo.",
              "name": "partner-logo"
            },
            {
              "description": "Slot para informações legais, utilizando br-footer-legal.",
              "name": "legal"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "theme",
              "type": {
                "text": "FooterTheme"
              },
              "default": "'dark'",
              "description": "Indica o tema do rodapé.",
              "deprecated": "Use `colorMode`.",
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "FooterTheme | undefined"
              },
              "description": "Esquema de cor padrão. Quando informado, tem precedência sobre `theme`.",
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "socialNetworkTitle",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Texto de descrição das redes sociais."
            },
            {
              "kind": "field",
              "name": "layoutWidth",
              "type": {
                "text": "FooterLayoutWidth"
              },
              "default": "'contained'",
              "description": "Define a largura do container interno do rodapé.\n- `contained`: largura máxima limitada pela grade no breakpoint desktop (`container-lg`).\n- `full`: sempre ocupa 100% da largura disponível (`container-fluid`).",
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "FooterTheme"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveLayoutWidth",
              "type": {
                "text": "FooterLayoutWidth"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            },
            {
              "kind": "field",
              "name": "hasSocialNetwork",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasPartnerLogo",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasLegal",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "slotObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "checkSlots",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "theme",
              "fieldName": "theme",
              "default": "'dark'",
              "description": "Indica o tema do rodapé.",
              "type": {
                "text": "FooterTheme"
              },
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Esquema de cor padrão. Quando informado, tem precedência sobre `theme`.",
              "type": {
                "text": "FooterTheme"
              },
              "parsedType": {
                "text": "'dark' | 'light'"
              }
            },
            {
              "name": "social-network-title",
              "fieldName": "socialNetworkTitle",
              "default": "''",
              "description": "Texto de descrição das redes sociais."
            },
            {
              "name": "layout-width",
              "fieldName": "layoutWidth",
              "default": "'contained'",
              "description": "Define a largura do container interno do rodapé.\n- `contained`: largura máxima limitada pela grade no breakpoint desktop (`container-lg`).\n- `full`: sempre ocupa 100% da largura disponível (`container-fluid`).",
              "type": {
                "text": "FooterLayoutWidth"
              },
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            }
          ],
          "tagName": "br-footer",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do footer."
            },
            {
              "name": "site-map",
              "description": "Área do mapa do site."
            },
            {
              "name": "social",
              "description": "Área de redes sociais."
            },
            {
              "name": "partners",
              "description": "Área de logos de parceiros."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Estrutura",
          "categories": [
            "Estrutura",
            "Navegação"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Footer",
          "declaration": {
            "name": "Footer",
            "module": "components/footer.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer",
          "declaration": {
            "name": "Footer",
            "module": "components/footer.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer-category/footer-category.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Grupo de links do mapa do site no `br-footer`. O título vem de `label` e os links são `br-footer-item`.\n\nEm telas pequenas, a categoria vira uma seção que abre e fecha.",
          "name": "FooterCategory",
          "slots": [
            {
              "description": "Slot para os itens da categoria no rodapé, utilizando br-footer-item.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterCategoryElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "accordionGroup",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Define o nome do grupo de accordion."
            },
            {
              "kind": "field",
              "name": "isDesktop",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o layout atual corresponde ao breakpoint de desktop."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Título da categoria exibido no cabeçalho da lista."
            },
            {
              "kind": "field",
              "name": "mediaQuery",
              "type": {
                "text": "MediaQueryList"
              },
              "privacy": "private",
              "description": "Define o media query para o componente.\nO media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não."
            },
            {
              "kind": "method",
              "name": "setAccordionGroup",
              "privacy": "private",
              "description": "Define um nome para o grupo de accordion.\nO nome do grupo é definido com base no atributo `custom-id` do elemento pai."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Método que retorna as classes CSS do componente."
            },
            {
              "kind": "method",
              "name": "getRootClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Método que retorna as classes baseadas no tamanho da tela."
            },
            {
              "kind": "method",
              "name": "setMedia",
              "privacy": "private",
              "description": "Configura o media query usado para alternar entre desktop e mobile."
            },
            {
              "kind": "field",
              "name": "handleMediaQueryChange",
              "privacy": "private",
              "description": "Trata a mudança de media query.",
              "parameters": [
                {
                  "description": "O evento de mudança de media query.",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "Título da categoria exibido no cabeçalho da lista."
            }
          ],
          "tagName": "br-footer-category",
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FooterCategory",
          "declaration": {
            "name": "FooterCategory",
            "module": "components/footer-category/footer-category.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer-category",
          "declaration": {
            "name": "FooterCategory",
            "module": "components/footer-category/footer-category.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer-item/footer-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Um link do mapa do site, dentro de um `br-footer-category`. Informe o destino em `href` e o texto no conteúdo.\n\nEm SPA, use `navigation-mode=\"event\"` e trate o evento `brNavigate`.",
          "name": "FooterItem",
          "slots": [
            {
              "description": "Slot para o conteúdo do item no rodapé, incluindo texto ou componentes de roteamento para SPAs.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterItemElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no item.\nQuando definido, o item será renderizado como um link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Monta o objeto com as classes CSS do componente"
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no item.\nQuando definido, o item será renderizado como um link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-footer-item",
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FooterItem",
          "declaration": {
            "name": "FooterItem",
            "module": "components/footer-item/footer-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer-item",
          "declaration": {
            "name": "FooterItem",
            "module": "components/footer-item/footer-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer-legal/footer-legal.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Informações legais do `br-footer`, como licença de uso e direitos autorais. Use no slot `legal`.",
          "name": "FooterLegal",
          "cssParts": [
            {
              "description": "Wrapper principal do footer-legal.",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para informações legais no rodapé, como direitos autorais ou termos de uso.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterLegalElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-footer-legal",
          "csspart": {
            "name": "container",
            "description": "Wrapper principal do footer-legal."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FooterLegal",
          "declaration": {
            "name": "FooterLegal",
            "module": "components/footer-legal/footer-legal.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer-legal",
          "declaration": {
            "name": "FooterLegal",
            "module": "components/footer-legal/footer-legal.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer-logo/footer-logo.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Logotipo do `br-footer`. Use no slot `logo` para a marca do órgão, ou com `partner` no slot `partner-logo` para parceiros.\n\nInforme a imagem em `src` e o texto alternativo em `description`. Com `href`, a logo vira link.",
          "name": "FooterLogo",
          "cssParts": [
            {
              "description": "Wrapper principal do footer-logo.",
              "name": "container"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterLogoElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Url da logo padrão."
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "string"
              },
              "default": "'logo'",
              "description": "Descrição da logo."
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "FooterLogoPosition"
              },
              "default": "'left'",
              "description": "Posição da logo.",
              "parsedType": {
                "text": "'left' | 'right' | 'center'"
              }
            },
            {
              "kind": "field",
              "name": "isPartner",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se a logo é de um parceiro.",
              "deprecated": "Use `partner`."
            },
            {
              "kind": "field",
              "name": "partner",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Identifica logo de parceiro. Quando informada, tem precedência sobre `isPartner`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL de destino quando a logo for clicada.\nSe fornecido, a logo será envolvida em um link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectivePosition",
              "type": {
                "text": "FooterLogoPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'center'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Monta o mapa de classes CSS que serão aplicadas ao componente."
            },
            {
              "kind": "method",
              "name": "getRootCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Monta o mapa de classes CSS que serão aplicadas ao host do componente."
            },
            {
              "kind": "method",
              "name": "createImageElement",
              "privacy": "private",
              "description": "Cria o elemento de imagem da logo.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Monta o JSX que representa o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "src",
              "fieldName": "src",
              "default": "''",
              "description": "Url da logo padrão."
            },
            {
              "name": "description",
              "fieldName": "description",
              "default": "'logo'",
              "description": "Descrição da logo."
            },
            {
              "name": "position",
              "fieldName": "position",
              "default": "'left'",
              "description": "Posição da logo.",
              "type": {
                "text": "FooterLogoPosition"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'center'"
              }
            },
            {
              "name": "is-partner",
              "fieldName": "isPartner",
              "default": "false",
              "description": "Define se a logo é de um parceiro."
            },
            {
              "name": "partner",
              "fieldName": "partner",
              "description": "Identifica logo de parceiro. Quando informada, tem precedência sobre `isPartner`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL de destino quando a logo for clicada.\nSe fornecido, a logo será envolvida em um link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-footer-logo",
          "csspart": {
            "name": "container",
            "description": "Wrapper principal do footer-logo."
          },
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FooterLogo",
          "declaration": {
            "name": "FooterLogo",
            "module": "components/footer-logo/footer-logo.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer-logo",
          "declaration": {
            "name": "FooterLogo",
            "module": "components/footer-logo/footer-logo.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/footer-social/footer-social.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Link para uma rede social no `br-footer`. Use no slot `social-network`.\n\nInforme em `icon` o nome do ícone de marca, como `instagram` ou `youtube`; em `description`, o nome da rede (usado como texto acessível); e em `href`, o endereço. Para outro ícone, use o slot `icon`.",
          "name": "FooterSocial",
          "slots": [
            {
              "description": "Ícone personalizado. Quando preenchido, substitui o ícone definido por `icon`.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrFooterSocialElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "description": "Identificador da rede social. Os ícones oficiais mais comuns são\nrenderizados pelo registro SVG local; use o slot `icon` para uma fonte\ndiferente ou uma classe Font Awesome personalizada."
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "string"
              },
              "description": "Descrição do ícone da rede social"
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL da rede social",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Monta o objeto com as classes CSS do componente."
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Identificador da rede social. Os ícones oficiais mais comuns são\nrenderizados pelo registro SVG local; use o slot `icon` para uma fonte\ndiferente ou uma classe Font Awesome personalizada.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Descrição do ícone da rede social",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL da rede social",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-footer-social",
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FooterSocial",
          "declaration": {
            "name": "FooterSocial",
            "module": "components/footer-social/footer-social.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-footer-social",
          "declaration": {
            "name": "FooterSocial",
            "module": "components/footer-social/footer-social.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/header.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-header` é o cabeçalho da página: logotipo, nome do sistema, links, atalhos, busca, acesso e botão do menu.\n\n### Como montar\n\nCada área tem um slot:\n\n| Área | Slot | Componente sugerido |\n| --- | --- | --- |\n| Logotipo | `logo` | `br-header-logo` |\n| Nome e subtítulo | — | props `caption` e `subcaption` |\n| Links | `links` | `br-header-list` com `br-header-link` |\n| Atalhos (contraste, ajuda…) | `functions` | `br-header-list` com `br-header-function` |\n| Busca | `search` e `search-icon` | `br-input` e um `br-button` com ícone |\n| Entrar | `access` | `br-sign-in` |\n| Menu | `menu-trigger` | `br-button` que abre o `br-menu` |\n\n```html\n<br-header caption=\"Nome do sistema\" subcaption=\"Nome do órgão\" sticky>\n  <br-header-logo slot=\"logo\" src=\"/logo.svg\" description=\"gov.br\"></br-header-logo>\n\n  <br-header-list slot=\"links\" list-title=\"Acesso rápido\">\n    <br-header-link href=\"/servicos\">Serviços</br-header-link>\n  </br-header-list>\n\n  <br-input slot=\"search\" label=\"Buscar\" type=\"search\"></br-input>\n\n  <br-button slot=\"menu-trigger\" shape=\"circle\" aria-label=\"Abrir menu\" data-toggle=\"menu\" data-target=\"#menu-principal\">\n    <br-icon src=\"/icones/menu.svg\"></br-icon>\n  </br-button>\n</br-header>\n```\n\nUse `sticky` para manter o cabeçalho visível ao rolar a página e `compact` para a versão reduzida. Em telas menores, a busca fica escondida até o clique no botão do slot `search-icon`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/header?tab=designer).",
          "name": "Header",
          "cssParts": [
            {
              "description": "Elemento header principal.",
              "name": "header"
            },
            {
              "description": "Área superior do header.",
              "name": "top"
            },
            {
              "description": "Área superior esquerda (logo + assinatura).",
              "name": "top-left"
            },
            {
              "description": "Área superior direita (links + funções + busca + acesso).",
              "name": "top-right"
            },
            {
              "description": "Área inferior do header.",
              "name": "bottom"
            },
            {
              "description": "Área inferior esquerda (menu + título).",
              "name": "bottom-left"
            },
            {
              "description": "Área inferior direita (busca expandida).",
              "name": "bottom-right"
            }
          ],
          "slots": [
            {
              "description": "Slot para a logo do cabeçalho.",
              "name": "logo"
            },
            {
              "description": "Slot para a assinatura visual da organização.",
              "name": "signature"
            },
            {
              "description": "Slot para links de navegação principais.",
              "name": "links"
            },
            {
              "description": "Slot para botões de ação no cabeçalho.",
              "name": "functions"
            },
            {
              "description": "Botão que mostra o campo de busca em telas menores e no modo compacto.",
              "name": "search-icon"
            },
            {
              "description": "Slot para o campo de busca.",
              "name": "search"
            },
            {
              "description": "Slot para o botão de acesso ou autenticação.",
              "name": "access"
            },
            {
              "description": "Slot para o botão que abre o menu.",
              "name": "menu-trigger"
            },
            {
              "description": "Slot para o título do cabeçalho.",
              "name": "caption"
            },
            {
              "description": "Slot para o subtítulo do cabeçalho.",
              "name": "subcaption"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "hasLoaded",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "slotContentObserver",
              "type": {
                "text": "MutationObserver"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "headerSyncFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "monitoredSlots",
              "type": {
                "text": "HTMLSlotElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrHeaderElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "headerArea",
              "type": {
                "text": "HeaderArea"
              },
              "default": "{ [HeaderSlotNames.LOGO]: createHeaderAreaConfig(HeaderSlotNames.LOGO), [HeaderSlotNames.SIGNATURE]: createHeaderAreaConfig(HeaderSlotNames.SIGNATURE, FROM_SMALL_BREAKPOINTS, []), [HeaderSlotNames.LINKS]: createHeaderAreaConfig(HeaderSlotNames.LINKS), [HeaderSlotNames.FUNCTIONS]: createHeaderAreaConfig(HeaderSlotNames.FUNCTIONS), [HeaderSlotNames.SEARCH_ICON]: createHeaderAreaConfig( HeaderSlotNames.SEARCH_ICON, UNTIL_MEDIUM_BREAKPOINTS, ALL_BREAKPOINTS, { event: { click: this.handleSearchIconClick.bind(this), focus: this.handleSearchIconFocus.bind(this), }, }, ), [HeaderSlotNames.SEARCH]: createHeaderAreaConfig(HeaderSlotNames.SEARCH, ALL_BREAKPOINTS, ALL_BREAKPOINTS, { isActive: false, }), [HeaderSlotNames.ACCESS]: createHeaderAreaConfig(HeaderSlotNames.ACCESS), [HeaderSlotNames.MENU_TRIGGER]: createHeaderAreaConfig(HeaderSlotNames.MENU_TRIGGER), [HeaderSlotNames.CAPTION]: createHeaderAreaConfig(HeaderSlotNames.CAPTION), [HeaderSlotNames.SUBCAPTION]: createHeaderAreaConfig( HeaderSlotNames.SUBCAPTION, FROM_SMALL_BREAKPOINTS, FROM_SMALL_BREAKPOINTS, ), }",
              "description": "Representa as configurações da área do cabeçalho.",
              "parsedType": {
                "text": "{ logo: HeaderArea, signature: HeaderArea, links: HeaderArea, functions: HeaderArea, search-icon: HeaderArea, search: HeaderArea, access: HeaderArea, menu-trigger: HeaderArea, caption: HeaderArea, subcaption: HeaderArea }"
              }
            },
            {
              "kind": "field",
              "name": "caption",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Texto exibido como título do cabeçalho."
            },
            {
              "kind": "field",
              "name": "captionUrl",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "URL associada ao título do cabeçalho."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "HeaderDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "isCompact",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Ativa o modo compacto do cabeçalho.",
              "deprecated": "Use `compact`."
            },
            {
              "kind": "field",
              "name": "compact",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado compacto. Quando informado, tem precedência sobre `isCompact`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isSticky",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Fixa o cabeçalho no topo durante a rolagem.\nQuando `compact` ou `is-compact` é definido explicitamente, o modo visual\npermanece fixo durante a rolagem. Sem essa configuração, o header sticky\nalterna automaticamente entre os modos compacto e expandido.",
              "deprecated": "Use `sticky`."
            },
            {
              "kind": "field",
              "name": "sticky",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Fixa o cabeçalho no topo. Quando informado, tem precedência sobre `isSticky`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "signature",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Texto da assinatura exibida ao lado da logo."
            },
            {
              "kind": "field",
              "name": "shrinkFirst",
              "type": {
                "text": "HeaderShrinkFirst"
              },
              "default": "'functions'",
              "description": "Define qual lista encolhe primeiro quando o espaço é limitado.",
              "parsedType": {
                "text": "'links' | 'functions'"
              }
            },
            {
              "kind": "field",
              "name": "subcaption",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Texto exibido como subtítulo do cabeçalho."
            },
            {
              "kind": "field",
              "name": "subcaptionUrl",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "URL associada ao subtítulo do cabeçalho."
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como os links internos do cabeçalho integram a navegação mantendo `href` real.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "layoutWidth",
              "type": {
                "text": "HeaderLayoutWidth"
              },
              "default": "'contained'",
              "description": "Define a largura do container interno do cabeçalho.\n- `contained`: largura máxima limitada pela grade no breakpoint desktop (`container-lg`).\n- `full`: sempre ocupa 100% da largura disponível (`container-fluid`).",
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveShrinkFirst",
              "type": {
                "text": "HeaderShrinkFirst"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'links' | 'functions'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveLayoutWidth",
              "type": {
                "text": "HeaderLayoutWidth"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveCompact",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getOwnedHeaderChildren",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "selector",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "dispatchHeaderEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "eventName",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "detail",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "hasBrandContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "watchIsCompact",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "O novo valor de isCompact."
                }
              ],
              "description": "Observa mudanças na propriedade isCompact."
            },
            {
              "kind": "method",
              "name": "watchCompact",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "watchIsSticky"
            },
            {
              "kind": "method",
              "name": "watchSticky"
            },
            {
              "kind": "method",
              "name": "onMenuStateChange",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent<{ open: boolean; sourceId: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleHeaderListUpdate",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ id: string; listName: string }>"
                  }
                }
              ],
              "description": "Listener para o evento 'headerListUpdate', disparado pelos componentes filhos 'br-header-list'.\nO evento contém o ID do componente pai e o nome da lista."
            },
            {
              "kind": "method",
              "name": "handleHeaderListFocused",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ id: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleListResize",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resetHeaderList",
              "description": "Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.\nPode ser chamado externamente para forçar a atualização das listas."
            },
            {
              "kind": "field",
              "name": "breakpointObserver",
              "type": {
                "text": "BreakpointObserver"
              },
              "privacy": "private",
              "description": "Observador de mudanças de breakpoint."
            },
            {
              "kind": "field",
              "name": "currentBreakpoint",
              "type": {
                "text": "Breakpoint"
              },
              "privacy": "private",
              "description": "Indica o breakpoint atual.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'x-small' | 'x-large'"
              }
            },
            {
              "kind": "field",
              "name": "scrollTarget",
              "type": {
                "text": "Window | HTMLElement"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento responsável pela rolagem do cabeçalho.",
              "parsedType": {
                "text": "HTMLElement | Window"
              }
            },
            {
              "kind": "field",
              "name": "compactFromScroll",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica que o estado compacto atual foi derivado da rolagem."
            },
            {
              "kind": "field",
              "name": "headerResizeObserver",
              "type": {
                "text": "ResizeObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "observedHostWidth",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "description": "Última largura do host vista pelo `ResizeObserver`.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "headerResizeBatcher",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "emitHeaderWidthChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "detail",
                  "type": {
                    "text": "{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleNavigation",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleBreakpointChange",
              "privacy": "private",
              "description": "Manipula as mudanças de breakpoint.",
              "parameters": [
                {
                  "description": "O breakpoint ativo.",
                  "name": "breakpoint"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleScroll",
              "privacy": "private",
              "description": "Manipula o evento de scroll da janela ou do ancestral rolável."
            },
            {
              "kind": "field",
              "name": "handleSearchCloseClick",
              "privacy": "private",
              "description": "Manipula o clique no botão de fechar busca."
            },
            {
              "kind": "field",
              "name": "handleMenuTriggerClick",
              "privacy": "private",
              "description": "Manipula o clique no botão de acionamento do menu."
            },
            {
              "kind": "method",
              "name": "handleSearchIconClick",
              "privacy": "private",
              "description": "Manipula o clique no ícone de busca."
            },
            {
              "kind": "method",
              "name": "handleSearchIconFocus",
              "privacy": "private",
              "description": "Manipula o foco no ícone de busca."
            },
            {
              "kind": "method",
              "name": "controlHeaderAreaUpdateStates",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "O nome da área do cabeçalho."
                }
              ],
              "description": "\nControla a atualização dos estados da área do cabeçalho."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna um mapa de classes CSS para o componente."
            },
            {
              "kind": "method",
              "name": "isHeaderSlotName",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "value is HeaderSlotName"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "O valor a ser verificado."
                }
              ],
              "description": "Verifica se um valor é um nome de slot de cabeçalho válido."
            },
            {
              "kind": "method",
              "name": "isAreaVisibleAtCurrentBreakpoint",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "O nome da área do cabeçalho."
                }
              ],
              "description": "Verifica se a área deve aparecer no breakpoint e no modo atuais.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "monitorSlotContent",
              "privacy": "private",
              "description": "Monitora as mudanças de conteúdo dos slots."
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setBreakpointObserver",
              "privacy": "private",
              "description": "Configura o observador de mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "getScrollTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Window | HTMLElement"
                }
              },
              "description": "Retorna a janela ou o ancestral que controla a rolagem do cabeçalho."
            },
            {
              "kind": "method",
              "name": "getScrollTop",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "Window | HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setScrollTop",
              "privacy": "private",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "Window | HTMLElement"
                  }
                },
                {
                  "name": "scrollTop",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncScrollListener",
              "privacy": "private",
              "description": "Sincroniza o listener com o estado sticky efetivo."
            },
            {
              "kind": "method",
              "name": "syncHeaderAreaStates",
              "privacy": "private",
              "description": "Atualiza o estado da área do cabeçalho com base no conteúdo dos slots."
            },
            {
              "kind": "method",
              "name": "unsetScrollListener",
              "privacy": "private",
              "description": "Remove o listener do alvo de rolagem atual."
            },
            {
              "kind": "method",
              "name": "updateHeaderArea",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "O nome da área do cabeçalho."
                },
                {
                  "name": "updates",
                  "type": {
                    "text": "Partial<HeaderAreaConfig>"
                  },
                  "description": "As atualizações a serem aplicadas."
                }
              ],
              "description": "Atualiza a área do cabeçalho."
            },
            {
              "kind": "method",
              "name": "verifyListSpace",
              "privacy": "private",
              "parameters": [
                {
                  "name": "listName",
                  "type": {
                    "text": "'links' | 'functions'"
                  },
                  "description": "O nome da lista a ser verificada."
                }
              ],
              "description": "Verifica o espaço disponível para uma lista específica no cabeçalho."
            },
            {
              "kind": "method",
              "name": "renderDefaultCaptionContent",
              "privacy": "private",
              "description": "Renderiza o conteúdo padrão do título.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderDefaultSignatureContent",
              "privacy": "private",
              "description": "Renderiza o conteúdo padrão da assinatura.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderDefaultSubcaptionContent",
              "privacy": "private",
              "description": "Renderiza o conteúdo padrão do subtítulo.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderDivider",
              "privacy": "private",
              "parameters": [
                {
                  "name": "mainArea",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "A área principal do cabeçalho."
                },
                {
                  "name": "secondaryAreas",
                  "default": "[]",
                  "type": {
                    "text": "HeaderSlotName[]"
                  },
                  "description": "As áreas secundárias do cabeçalho."
                }
              ],
              "description": "Renderiza o divisor entre as áreas do cabeçalho.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderHeaderArea",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "O nome da área do cabeçalho."
                }
              ],
              "description": "Renderiza a área do cabeçalho.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderSearchCloseButton",
              "privacy": "private",
              "description": "Renderiza o botão de fechar busca.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderSlotDefaultContent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "name",
                  "type": {
                    "text": "HeaderSlotName"
                  },
                  "description": "O nome do slot."
                }
              ],
              "description": "Renderiza o conteúdo padrão do slot.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "caption",
              "fieldName": "caption",
              "default": "null",
              "description": "Texto exibido como título do cabeçalho.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "caption-url",
              "fieldName": "captionUrl",
              "default": "null",
              "description": "URL associada ao título do cabeçalho.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "HeaderDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "is-compact",
              "fieldName": "isCompact",
              "default": "false",
              "description": "Ativa o modo compacto do cabeçalho."
            },
            {
              "name": "compact",
              "fieldName": "compact",
              "description": "Estado compacto. Quando informado, tem precedência sobre `isCompact`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-sticky",
              "fieldName": "isSticky",
              "default": "false",
              "description": "Fixa o cabeçalho no topo durante a rolagem.\nQuando `compact` ou `is-compact` é definido explicitamente, o modo visual\npermanece fixo durante a rolagem. Sem essa configuração, o header sticky\nalterna automaticamente entre os modos compacto e expandido."
            },
            {
              "name": "sticky",
              "fieldName": "sticky",
              "description": "Fixa o cabeçalho no topo. Quando informado, tem precedência sobre `isSticky`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "signature",
              "fieldName": "signature",
              "default": "null",
              "description": "Texto da assinatura exibida ao lado da logo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "shrink-first",
              "fieldName": "shrinkFirst",
              "default": "'functions'",
              "description": "Define qual lista encolhe primeiro quando o espaço é limitado.",
              "type": {
                "text": "HeaderShrinkFirst"
              },
              "parsedType": {
                "text": "'links' | 'functions'"
              }
            },
            {
              "name": "subcaption",
              "fieldName": "subcaption",
              "default": "null",
              "description": "Texto exibido como subtítulo do cabeçalho.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "subcaption-url",
              "fieldName": "subcaptionUrl",
              "default": "null",
              "description": "URL associada ao subtítulo do cabeçalho.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como os links internos do cabeçalho integram a navegação mantendo `href` real.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "layout-width",
              "fieldName": "layoutWidth",
              "default": "'contained'",
              "description": "Define a largura do container interno do cabeçalho.\n- `contained`: largura máxima limitada pela grade no breakpoint desktop (`container-lg`).\n- `full`: sempre ocupa 100% da largura disponível (`container-fluid`).",
              "type": {
                "text": "HeaderLayoutWidth"
              },
              "parsedType": {
                "text": "'contained' | 'full'"
              }
            }
          ],
          "tagName": "br-header",
          "status": "stable",
          "csspart": [
            {
              "name": "header",
              "description": "Elemento header principal."
            },
            {
              "name": "top",
              "description": "Área superior do header."
            },
            {
              "name": "top-left",
              "description": "Área superior esquerda (logo + assinatura)."
            },
            {
              "name": "top-right",
              "description": "Área superior direita (links + funções + busca + acesso)."
            },
            {
              "name": "bottom",
              "description": "Área inferior do header."
            },
            {
              "name": "bottom-left",
              "description": "Área inferior esquerda (menu + título)."
            },
            {
              "name": "bottom-right",
              "description": "Área inferior direita (busca expandida)."
            }
          ],
          "events": [
            {
              "name": "headerCompactChange",
              "type": {
                "text": "EventEmitter<{ parentId: string; isCompact: boolean }>"
              },
              "description": "Evento disparado quando o cabeçalho entra ou sai do modo compacto.\nO evento contém os detalhes do estado compacto e o ID do componente pai."
            },
            {
              "name": "brHeaderCompactChange",
              "type": {
                "text": "EventEmitter<HeaderCompactChangeDetail>"
              },
              "description": "Evento emitido quando o modo compacto muda."
            },
            {
              "name": "headerWidthChange",
              "type": {
                "text": "EventEmitter<{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }>"
              },
              "description": "Evento disparado para indicar qual lista deve encolher primeiro.\nO evento contém os detalhes do ID do componente pai e o nome da lista."
            },
            {
              "name": "brMenuToggle",
              "type": {
                "text": "EventEmitter<{ target?: string }>"
              },
              "description": "Evento disparado para alternar o estado de um menu associado."
            },
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Estrutura",
          "categories": [
            "Estrutura",
            "Navegação",
            "Identidade"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Header",
          "declaration": {
            "name": "Header",
            "module": "components/header.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-header",
          "declaration": {
            "name": "Header",
            "module": "components/header.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/header-function/header-function.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Atalho do `br-header`, como contraste ou ajuda, dentro de um `br-header-list` no slot `functions`.\n\nColoque o ícone no slot `icon` e o nome no conteúdo:\n\n```html\n<br-header-function href=\"/ajuda\">\n  <br-icon slot=\"icon\" src=\"/icones/ajuda.svg\"></br-icon>\n  Ajuda\n</br-header-function>\n```\n\nEm telas grandes, aparece como botão de ícone, e o nome é usado como texto acessível. Em telas menores, aparece com ícone e nome dentro do menu da lista.",
          "name": "HeaderFunction",
          "slots": [
            {
              "description": "Slot para o nome ou rótulo da funcionalidade.",
              "name": "default"
            },
            {
              "description": "Slot para ícone que representa a funcionalidade.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrHeaderFunctionElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "currentBreakpoint",
              "type": {
                "text": "Breakpoint"
              },
              "default": "null",
              "description": "Breakpoint atual.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'x-small' | 'x-large'"
              }
            },
            {
              "kind": "field",
              "name": "isShrunk",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se a lista está encolhido."
            },
            {
              "kind": "field",
              "name": "compactHeaderWithoutBrand",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL de destino da funcionalidade.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "iconName",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Identificador legado do ícone exibido. Nomes conhecidos são resolvidos pelo\nregistro SVG local; para novos usos, prefira o slot `icon` com um SVG, asset\nlocal ou elemento de ícone controlado pela aplicação.",
              "deprecated": "Use o slot `icon` com um SVG, asset ou elemento de ícone controlado pela aplicação."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "handleHeaderCompactChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncHeaderLayout",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleHeaderWidthChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ id: string; listNames: string[]; shrink: boolean }>"
                  },
                  "description": "O evento customizado contendo o ID do pai e o nome da lista."
                }
              ],
              "description": "Listener para o evento 'headerWidthChange', disparado pelo componente pai 'br-header'.\nO evento contém o ID do pai e o nome da lista.\nSe o ID do pai corresponder ao ID do cabeçalho atual, o evento será tratado."
            },
            {
              "kind": "field",
              "name": "breakpointObserver",
              "type": {
                "text": "BreakpointObserver"
              },
              "privacy": "private",
              "default": "null",
              "description": "Observador para acompanhar mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Mapeia os nomes das classes CSS a serem aplicadas ao componente."
            },
            {
              "kind": "field",
              "name": "handleBreakpointChange",
              "privacy": "private",
              "description": "Manipula as mudanças de breakpoint.",
              "parameters": [
                {
                  "description": "O breakpoint ativo.",
                  "name": "breakpoint"
                }
              ]
            },
            {
              "kind": "method",
              "name": "setBreakpointObserver",
              "privacy": "private",
              "description": "Configura o observador de mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "renderFunctionButton",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderFunctionItem",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL de destino da funcionalidade.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon-name",
              "fieldName": "iconName",
              "default": "null",
              "description": "Identificador legado do ícone exibido. Nomes conhecidos são resolvidos pelo\nregistro SVG local; para novos usos, prefira o slot `icon` com um SVG, asset\nlocal ou elemento de ícone controlado pela aplicação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-header-function",
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "HeaderFunction",
          "declaration": {
            "name": "HeaderFunction",
            "module": "components/header-function/header-function.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-header-function",
          "declaration": {
            "name": "HeaderFunction",
            "module": "components/header-function/header-function.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/header-link/header-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Link do `br-header`, dentro de um `br-header-list` no slot `links`. Informe o destino em `href` e o texto no conteúdo.\n\nEm SPA, use `navigation-mode=\"event\"` e trate `brNavigate`.",
          "name": "HeaderLink",
          "slots": [
            {
              "description": "Slot para o conteúdo do link exibido no cabeçalho.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrHeaderLinkElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "compactHeaderWithoutBrand",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL do link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "handleHeaderCompactChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncHeaderLayout",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Mapeia os nomes das classes CSS a serem aplicadas ao componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL do link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-header-link",
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "HeaderLink",
          "declaration": {
            "name": "HeaderLink",
            "module": "components/header-link/header-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-header-link",
          "declaration": {
            "name": "HeaderLink",
            "module": "components/header-link/header-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/header-list/header-list.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Lista de links ou atalhos do `br-header`. Use no slot `links`, com `br-header-link`, ou no slot `functions`, com `br-header-function`.\n\nEm telas menores, a lista vira um menu que abre e fecha; o título desse menu vem de `list-title`.",
          "name": "HeaderList",
          "slots": [
            {
              "description": "Slot para o conteúdo da lista de navegação no cabeçalho.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrHeaderListElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "currentBreakpoint",
              "type": {
                "text": "Breakpoint"
              },
              "description": "Indica o breakpoint atual.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'x-small' | 'x-large'"
              }
            },
            {
              "kind": "field",
              "name": "isShrunk",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o cabeçalho está encolhido."
            },
            {
              "kind": "field",
              "name": "showList",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se a lista está visível."
            },
            {
              "kind": "method",
              "name": "handleShowListChange",
              "parameters": [
                {
                  "name": "showList",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "slotReference",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Área atual."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "listTitle",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Título da lista."
            },
            {
              "kind": "method",
              "name": "handleHeaderWidthChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ id: string; listNames: string[]; shrink: boolean }>"
                  },
                  "description": "O evento customizado contendo o ID do pai e o nome da lista."
                }
              ],
              "description": "Listener para o evento 'headerWidthChange', disparado pelo componente pai 'br-header'.\nO evento contém o ID do pai e o nome da lista.\nSe o ID do pai corresponder ao ID do cabeçalho atual, o evento será tratado."
            },
            {
              "kind": "method",
              "name": "closeList",
              "description": "Fecha a lista."
            },
            {
              "kind": "method",
              "name": "isListOpen",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Verifica se a lista está aberta."
            },
            {
              "kind": "method",
              "name": "openList",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre a lista."
            },
            {
              "kind": "field",
              "name": "breakpointObserver",
              "type": {
                "text": "BreakpointObserver"
              },
              "privacy": "private",
              "description": "Observador de mudanças de breakpoint."
            },
            {
              "kind": "field",
              "name": "listElement",
              "type": {
                "text": "HTMLBrListElement"
              },
              "privacy": "private",
              "description": "Referência ao elemento de lista."
            },
            {
              "kind": "field",
              "name": "triggerButton",
              "type": {
                "text": "HTMLBrButtonElement"
              },
              "privacy": "private",
              "description": "Referência ao botão de disparo."
            },
            {
              "kind": "field",
              "name": "listenersButton",
              "type": {
                "text": "HTMLBrButtonElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "triggerClicked",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o botão de disparo foi clicado."
            },
            {
              "kind": "field",
              "name": "handleBreakpointChange",
              "privacy": "private",
              "description": "Manipula as mudanças de breakpoint.",
              "parameters": [
                {
                  "description": "O breakpoint ativo.",
                  "name": "breakpoint"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleDropdownButtonClick",
              "privacy": "private",
              "description": "Manipula o clique no botão dropdown."
            },
            {
              "kind": "field",
              "name": "handleClickOutsideList",
              "privacy": "private",
              "description": "Manipula o clique fora da lista.",
              "parameters": [
                {
                  "description": "O evento de Mouse",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "outsideListenerAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "attachOutsideListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachOutsideListener",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleTriggerFocus",
              "privacy": "private",
              "description": "Manipula o foco no botão de disparo."
            },
            {
              "kind": "field",
              "name": "handleTriggerMouseDown",
              "privacy": "private",
              "description": "Manipula o evento mousedown no botão de disparo."
            },
            {
              "kind": "method",
              "name": "addTriggerListeners",
              "privacy": "private",
              "description": "Adiciona os listeners ao botão de disparo."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Define as classes CSS a serem aplicadas ao componente."
            },
            {
              "kind": "method",
              "name": "removeTriggerListeners",
              "privacy": "private",
              "description": "Remove os listeners do botão de disparo."
            },
            {
              "kind": "method",
              "name": "setBreakpointObserver",
              "privacy": "private",
              "description": "Configura o observador de mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "renderList",
              "privacy": "private",
              "description": "Renderiza o componente de lista.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderDropdownButton",
              "privacy": "private",
              "description": "Renderiza o botão dropdown.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "list-title",
              "fieldName": "listTitle",
              "default": "null",
              "description": "Título da lista.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-header-list",
          "events": [
            {
              "name": "headerListUpdate",
              "type": {
                "text": "EventEmitter<{ id: string; listName: string }>"
              },
              "description": "Evento disparado para indicar qual lista deve encolher primeiro.\nO evento envia o ID do componente pai e o nome da lista."
            },
            {
              "name": "headerListFocused",
              "type": {
                "text": "EventEmitter<{ id: string }>"
              },
              "description": "Evento disparado quando a lista recebe foco.\nO evento envia o ID do componente."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "HeaderList",
          "declaration": {
            "name": "HeaderList",
            "module": "components/header-list/header-list.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-header-list",
          "declaration": {
            "name": "HeaderList",
            "module": "components/header-list/header-list.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/header-logo/header-logo.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Logotipo do `br-header`. Use no slot `logo`.\n\nInforme a imagem em `src` e o texto alternativo em `description`. Com `href`, a logo vira link; em SPA, use `navigation-mode=\"event\"` e trate `brNavigate`.",
          "name": "HeaderLogo",
          "cssParts": [
            {
              "description": "Wrapper da logo do header.",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para a logo personalizada exibida no cabeçalho.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrHeaderLogoElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "string"
              },
              "default": "'logo'",
              "description": "Texto alternativo/descritivo da logo."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL de destino quando a logo for clicada.\nSe fornecido, a logo será envolvida em um link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isCompact",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Alterna para versão compacta quando true."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.\nAceita `_self`, `_blank`, `_parent` ou `_top`. Valores inválidos usam `_self`.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Url da logo padrão."
            },
            {
              "kind": "field",
              "name": "width",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Largura da imagem."
            },
            {
              "kind": "field",
              "name": "height",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Altura da imagem."
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "handleIsCompactChange",
              "description": "Observa mudanças na propriedade `isCompact` e ajusta a altura da logo se `hasDefaultHeight` for verdadeiro."
            },
            {
              "kind": "method",
              "name": "handleHeaderCompactChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ parentId: string; isCompact: boolean }>"
                  },
                  "description": "Evento disparado pelo componente pai `br-header` quando o estado compacto é alterado."
                }
              ],
              "description": "Listener para o evento `headerCompactChange` disparado pelo componente pai `br-header`.\nO evento contém os detalhes do estado compacto e o ID do componente pai.\nSe o ID do componente pai corresponder ao ID do `br-header` que contém este `br-header-logo`, o estado `isCompact` será atualizado."
            },
            {
              "kind": "field",
              "name": "breakpointObserver",
              "type": {
                "text": "BreakpointObserver"
              },
              "privacy": "private",
              "description": "Observador de mudanças de breakpoint."
            },
            {
              "kind": "field",
              "name": "currentBreakpoint",
              "type": {
                "text": "Breakpoint"
              },
              "privacy": "private",
              "description": "Indica o breakpoint atual.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'x-small' | 'x-large'"
              }
            },
            {
              "kind": "field",
              "name": "useDefaultHeight",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se a altura padrão está sendo usada."
            },
            {
              "kind": "method",
              "name": "handleBreakpointChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "breakpoint",
                  "type": {
                    "text": "Breakpoint"
                  },
                  "description": "O breakpoint ativo."
                }
              ],
              "description": "Manipula as mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna um objeto contendo as classes CSS a serem aplicadas ao componente."
            },
            {
              "kind": "method",
              "name": "setBreakpointObserver",
              "privacy": "private",
              "description": "Configura o observador de mudanças de breakpoint."
            },
            {
              "kind": "method",
              "name": "setDefaultHeight",
              "privacy": "private",
              "description": "Define a altura padrão da logo com base no estado compacto e no breakpoint atual.\nO tamanho padrão depende do breakpoint atual e se está no modo compacto ou largo.\nModo largo:\n- Breakpoint X_SMALL: 24px\n- Breakpoint SMALL, MEDIUM, LARGE E X_LARGE 40px\nModo compacto:\n- Breakpoint X_SMALL: 24px\n- Breakpoint SMALL, MEDIUM, LARGE E X_LARGE 16px"
            },
            {
              "kind": "method",
              "name": "setUseDefaultHeight",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderImageElement",
              "privacy": "private",
              "description": "Cria o elemento de imagem da logo.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "default": "'logo'",
              "description": "Texto alternativo/descritivo da logo."
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL de destino quando a logo for clicada.\nSe fornecido, a logo será envolvida em um link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-compact",
              "fieldName": "isCompact",
              "default": "false",
              "description": "Alterna para versão compacta quando true."
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.\nAceita `_self`, `_blank`, `_parent` ou `_top`. Valores inválidos usam `_self`.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "src",
              "fieldName": "src",
              "default": "''",
              "description": "Url da logo padrão."
            },
            {
              "name": "width",
              "fieldName": "width",
              "default": "null",
              "description": "Largura da imagem.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "default": "null",
              "description": "Altura da imagem.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-header-logo",
          "csspart": {
            "name": "container",
            "description": "Wrapper da logo do header."
          },
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "HeaderLogo",
          "declaration": {
            "name": "HeaderLogo",
            "module": "components/header-logo/header-logo.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-header-logo",
          "declaration": {
            "name": "HeaderLogo",
            "module": "components/header-logo/header-logo.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/icon.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-icon` exibe um ícone com tamanho e alinhamento padronizados. O ícone vem da sua aplicação, de uma destas formas:\n\n```html\n<!-- Arquivo ou URL -->\n<br-icon src=\"/icones/busca.svg\"></br-icon>\n\n<!-- SVG no próprio código -->\n<br-icon svg='<svg viewBox=\"0 0 24 24\"><path d=\"…\" fill=\"currentColor\"/></svg>'></br-icon>\n\n<!-- Outra biblioteca, como Font Awesome -->\n<br-icon><i class=\"fas fa-search\"></i></br-icon>\n```\n\nSem `label`, o ícone é decorativo e ignorado por leitores de tela. Quando o ícone transmite informação sozinho, descreva-o em `label`:\n\n```html\n<br-icon src=\"/icones/alerta.svg\" label=\"Atenção\"></br-icon>\n```\n\nO tamanho padrão é 16 × 16 px; ajuste com `width` e `height`, em qualquer unidade CSS. Use `rotate` e `flip` para girar ou espelhar.\n\nSe mais de uma forma for informada, vale nesta ordem: conteúdo, `svg`, `src` e, por último, `icon-name` (depreciado). Para fixar uma delas, use `source`.\n\n### Quando evitar\n\n- Fotos e ilustrações: use `<img>`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/icon?tab=designer).",
          "name": "Icon",
          "cssParts": [
            {
              "description": "Elemento interno que representa o ícone renderizado.",
              "name": "icon"
            },
            {
              "description": "Elemento img interno quando `src` é usado.",
              "name": "image"
            },
            {
              "description": "Elemento interno que recebe SVG inline quando `svg` é usado.",
              "name": "svg"
            },
            {
              "description": "Elemento interno que recebe conteúdo via slot.",
              "name": "slot"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo customizado do ícone. Pode receber elementos como `<i>`, `<svg>` ou componentes de outras bibliotecas.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrIconElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto alternativo para ícones informativos. Sem label, o ícone é decorativo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "iconName",
              "type": {
                "text": "string | undefined"
              },
              "description": "Identificador legado do ícone. Identificadores que pertencem ao registro local são\nrenderizados como SVG empacotado; nomes desconhecidos continuam disponíveis via Iconify\nsomente para compatibilidade.",
              "deprecated": "Use `src` com um asset controlado pela aplicação, `svg` ou o slot padrão.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL ou caminho local para um arquivo de imagem que será usado como ícone.\nO caminho é resolvido pelo navegador no contexto da aplicação consumidora,\nportanto pode ser relativo (`./assets/icone.svg`), absoluto (`/assets/icone.svg`)\nou uma URL completa.\nAceita SVG, PNG, WebP e outros formatos suportados pelo elemento `img`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "svg",
              "type": {
                "text": "string | undefined"
              },
              "description": "Conteúdo SVG inline a ser renderizado como ícone.\n\nUse apenas SVGs confiáveis e sanitizados pela aplicação.\nPasse o conteúdo por property binding para evitar serialização no atributo.",
              "parsedType": {
                "text": "string"
              },
              "example": "```js\nconst icon = document.querySelector('br-icon');\nicon.svg = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2 22 22H2Z\" /></svg>';\n```"
            },
            {
              "kind": "field",
              "name": "source",
              "type": {
                "text": "IconSource"
              },
              "default": "'auto'",
              "description": "Define explicitamente a origem do ícone.\nQuando `auto`, o componente prioriza slot, SVG inline e imagem por URL.\nIconify fica apenas como fallback de compatibilidade quando nenhuma fonte própria foi informada.\nAceita `auto`, `iconify`, `image`, `svg` ou `slot`; valores inválidos usam `auto`.",
              "parsedType": {
                "text": "'auto' | 'iconify' | 'image' | 'svg' | 'slot'"
              }
            },
            {
              "kind": "field",
              "name": "height",
              "type": {
                "text": "string"
              },
              "default": "'16'",
              "description": "Define a altura do ícone. Pode ser especificada em qualquer unidade CSS válida, como pixels (px), ems (em), rems (rem), etc.\nO valor padrão é '16'. O tamanho pode ser sobrescrito independentemente da largura."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "width",
              "type": {
                "text": "string"
              },
              "default": "'16'",
              "description": "Define a largura do ícone. Pode ser especificada em qualquer unidade CSS válida, como pixels (px), ems (em), rems (rem), etc.\nO valor padrão é '16'. A largura pode ser sobrescrita independentemente da altura."
            },
            {
              "kind": "field",
              "name": "cssClasses",
              "type": {
                "text": "string | undefined"
              },
              "description": "Permite adicionar classes CSS adicionais ao ícone.\nUse esta propriedade para aplicar estilos personalizados ao ícone, além dos estilos padrão.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Exibe o rótulo e o controle na mesma linha.",
              "deprecated": "Use `inline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "inline",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Renderiza o ícone inline. Quando informada, tem precedência sobre `isInline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "rotate",
              "type": {
                "text": "IconRotate | undefined"
              },
              "description": "Define o ângulo de rotação do ícone.\nAceita `90deg`, `180deg` ou `270deg`; valores inválidos são ignorados.",
              "parsedType": {
                "text": "'90deg' | '180deg' | '270deg'"
              }
            },
            {
              "kind": "field",
              "name": "flip",
              "type": {
                "text": "IconFlip | undefined"
              },
              "description": "Define o tipo de espelhamento do ícone.\nAceita `horizontal` ou `vertical`; valores inválidos são ignorados.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "isFocusable",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Determina se o ícone pode receber foco.\nSe definido como verdadeiro, o ícone pode ser navegado usando Tab.\nO valor padrão é `false`.",
              "deprecated": "Use `focusable`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "focusable",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Torna o ícone focável. Quando informada, tem precedência sobre `isFocusable`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "lazy",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Controla o comportamento de carregamento do ícone.\n\nComportamento:\n- Padrão (propriedade não definida): carregamento imediato aplicando `noobserver` para evitar problemas de layout shift\n- `lazy={true}`: ativa o carregamento tardio nativo para imagens em `src` e o observer do Iconify no fallback legado\n- `lazy={false}`: carregamento imediato\n\n**Nota**: O padrão foi alterado para carregamento imediato para resolver problemas de deslocamento de layout\nque ocorriam quando ícones eram carregados depois do conteúdo inicial.\n\nSVG inline e conteúdo em slot não precisam de carregamento tardio, pois já estão disponíveis no DOM.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "hasDefaultSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "effectiveSource",
              "type": {
                "text": "IconSource"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'auto' | 'iconify' | 'image' | 'svg' | 'slot'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveRotate",
              "type": {
                "text": "IconRotate | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'90deg' | '180deg' | '270deg'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveFlip",
              "type": {
                "text": "IconFlip | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "cachedSvgMarkup",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "cachedSvgKey",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "iconifyReady",
              "type": {
                "text": "Promise<void> | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "shouldLoadIconify",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "ensureIconify",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveLazy",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Retorna o valor efetivo para o comportamento \"lazy\" do ícone.\n\nExplicação:\n- Se o atributo 'lazy' estiver presente no elemento, o método retorna o valor da propriedade this.lazy (true ou false).\n- Se o atributo 'lazy' NÃO estiver presente, assume-se o comportamento padrão, retornando false (ou seja, carregamento imediato ativado).\n\nIsso permite distinguir entre o caso em que o usuário explicitamente define lazy={true} (carregamento lazy)\ne o caso em que o atributo não é informado (carregamento imediato por padrão).",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "resolvedSource",
              "type": {
                "text": "ResolvedIconSource"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'iconify' | 'image' | 'svg' | 'slot' | 'cached'"
              }
            },
            {
              "kind": "field",
              "name": "transformStyle",
              "type": {
                "text": "{ transform?: string }"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "svgMarkup",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "mediaSize",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "toCssSize",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "mediaStyleSize",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "accessibilityAttributes",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "updateDefaultSlot",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderCachedIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderIconifyIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderImageIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSvgIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSlottedIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto alternativo para ícones informativos. Sem label, o ícone é decorativo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon-name",
              "fieldName": "iconName",
              "description": "Identificador legado do ícone. Identificadores que pertencem ao registro local são\nrenderizados como SVG empacotado; nomes desconhecidos continuam disponíveis via Iconify\nsomente para compatibilidade.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "src",
              "fieldName": "src",
              "description": "URL ou caminho local para um arquivo de imagem que será usado como ícone.\nO caminho é resolvido pelo navegador no contexto da aplicação consumidora,\nportanto pode ser relativo (`./assets/icone.svg`), absoluto (`/assets/icone.svg`)\nou uma URL completa.\nAceita SVG, PNG, WebP e outros formatos suportados pelo elemento `img`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "svg",
              "fieldName": "svg",
              "description": "Conteúdo SVG inline a ser renderizado como ícone.\n\nUse apenas SVGs confiáveis e sanitizados pela aplicação.\nPasse o conteúdo por property binding para evitar serialização no atributo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "source",
              "fieldName": "source",
              "default": "'auto'",
              "description": "Define explicitamente a origem do ícone.\nQuando `auto`, o componente prioriza slot, SVG inline e imagem por URL.\nIconify fica apenas como fallback de compatibilidade quando nenhuma fonte própria foi informada.\nAceita `auto`, `iconify`, `image`, `svg` ou `slot`; valores inválidos usam `auto`.",
              "type": {
                "text": "IconSource"
              },
              "parsedType": {
                "text": "'auto' | 'iconify' | 'image' | 'svg' | 'slot'"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "default": "'16'",
              "description": "Define a altura do ícone. Pode ser especificada em qualquer unidade CSS válida, como pixels (px), ems (em), rems (rem), etc.\nO valor padrão é '16'. O tamanho pode ser sobrescrito independentemente da largura."
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "width",
              "fieldName": "width",
              "default": "'16'",
              "description": "Define a largura do ícone. Pode ser especificada em qualquer unidade CSS válida, como pixels (px), ems (em), rems (rem), etc.\nO valor padrão é '16'. A largura pode ser sobrescrita independentemente da altura."
            },
            {
              "name": "css-classes",
              "fieldName": "cssClasses",
              "description": "Permite adicionar classes CSS adicionais ao ícone.\nUse esta propriedade para aplicar estilos personalizados ao ícone, além dos estilos padrão.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Exibe o rótulo e o controle na mesma linha.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "inline",
              "fieldName": "inline",
              "description": "Renderiza o ícone inline. Quando informada, tem precedência sobre `isInline`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "rotate",
              "fieldName": "rotate",
              "description": "Define o ângulo de rotação do ícone.\nAceita `90deg`, `180deg` ou `270deg`; valores inválidos são ignorados.",
              "type": {
                "text": "IconRotate"
              },
              "parsedType": {
                "text": "'90deg' | '180deg' | '270deg'"
              }
            },
            {
              "name": "flip",
              "fieldName": "flip",
              "description": "Define o tipo de espelhamento do ícone.\nAceita `horizontal` ou `vertical`; valores inválidos são ignorados.",
              "type": {
                "text": "IconFlip"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "is-focusable",
              "fieldName": "isFocusable",
              "default": "false",
              "description": "Determina se o ícone pode receber foco.\nSe definido como verdadeiro, o ícone pode ser navegado usando Tab.\nO valor padrão é `false`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "focusable",
              "fieldName": "focusable",
              "description": "Torna o ícone focável. Quando informada, tem precedência sobre `isFocusable`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "lazy",
              "fieldName": "lazy",
              "description": "Controla o comportamento de carregamento do ícone.\n\nComportamento:\n- Padrão (propriedade não definida): carregamento imediato aplicando `noobserver` para evitar problemas de layout shift\n- `lazy={true}`: ativa o carregamento tardio nativo para imagens em `src` e o observer do Iconify no fallback legado\n- `lazy={false}`: carregamento imediato\n\n**Nota**: O padrão foi alterado para carregamento imediato para resolver problemas de deslocamento de layout\nque ocorriam quando ícones eram carregados depois do conteúdo inicial.\n\nSVG inline e conteúdo em slot não precisam de carregamento tardio, pois já estão disponíveis no DOM.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-icon",
          "status": "stable",
          "csspart": [
            {
              "name": "icon",
              "description": "Elemento interno que representa o ícone renderizado."
            },
            {
              "name": "image",
              "description": "Elemento img interno quando `src` é usado."
            },
            {
              "name": "svg",
              "description": "Elemento interno que recebe SVG inline quando `svg` é usado."
            },
            {
              "name": "slot",
              "description": "Elemento interno que recebe conteúdo via slot."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Identidade",
          "categories": [
            "Identidade"
          ],
          "cssProperties": [
            {
              "name": "--br-icon-slotted-font-size",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-icon-slotted-height",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-icon-slotted-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--icon-color",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Icon",
          "declaration": {
            "name": "Icon",
            "module": "components/icon.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-icon",
          "declaration": {
            "name": "Icon",
            "module": "components/icon.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/input.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-input` captura dados de texto em linha única, como nomes, e-mails, números ou senhas.\n\nConfigure `label`, `placeholder` e o tipo em `type` (como `text`, `email`, `password`, `number`). Use `state` (`success`, `danger`, `info`, `warning`) para indicar validação.\n\n```html\n<br-input label=\"E-mail\" type=\"email\" placeholder=\"nome@exemplo.com\"></br-input>\n<br-input label=\"Senha\" type=\"password\"></br-input>\n```\n\nEm formulários HTML, o componente integra-se nativamente via `ElementInternals`, participando do submit e da validação nativa com `required`.\n\n### Quando usar\n\n- Entrada de texto curto que cabe em uma única linha (nome, CPF, e-mail, telefone).\n- Campo de busca ou senha com alternância de visualização.\n\n### Quando evitar\n\n- Textos longos ou com quebra de linha: use `br-textarea`.\n- Escolha entre opções pré-definidas: use `br-select` ou `br-radio`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/input?tab=designer).",
          "name": "Input",
          "cssParts": [
            {
              "description": "Contêiner visual principal do input.",
              "name": "container"
            },
            {
              "description": "Rótulo do input.",
              "name": "label"
            },
            {
              "description": "Elemento input nativo.",
              "name": "input"
            },
            {
              "description": "Grupo que contém ícone, input, botão e ajuda.",
              "name": "group"
            },
            {
              "description": "Contêiner do slot de ícone.",
              "name": "icon"
            },
            {
              "description": "Botão de ação lateral.",
              "name": "action"
            },
            {
              "description": "Botão interno reexportado do br-button da ação.",
              "name": "action-button"
            },
            {
              "description": "Botão de limpar exibido com `clearable` enquanto há texto editável.",
              "name": "clear"
            },
            {
              "description": "Texto de ajuda ou slot de ajuda.",
              "name": "help-text"
            },
            {
              "description": "Slot de feedback.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Botão à direita do input.",
              "name": "action"
            },
            {
              "description": "Ícone à esquerda do input.",
              "name": "icon"
            },
            {
              "description": "Personalização do texto de ajuda.",
              "name": "help-text"
            },
            {
              "description": "Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.",
              "name": "feedback"
            },
            {
              "description": "Indicador exibido enquanto o validator assíncrono está pendente.",
              "name": "validation-loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals | undefined"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrInputElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasActionSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasValidationLoadingSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasIconSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "internalState",
              "type": {
                "text": "InputState | undefined"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isPasswordVisible",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "InputType"
              },
              "readonly": true,
              "default": "'text'",
              "description": "Especifica o tipo de entrada do campo.",
              "parsedType": {
                "text": "'number' | 'text' | 'range' | 'search' | 'color' | 'email' | 'hidden' | 'password' | 'tel' | 'url'"
              }
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "InputToggle | undefined"
              },
              "readonly": true,
              "description": "Controla o comportamento de preenchimento automático do navegador para o input.",
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "InputDensity"
              },
              "readonly": true,
              "default": "'medium'",
              "description": "Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o input, tornando-o não interativo."
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).",
              "deprecated": "Use `inline`."
            },
            {
              "kind": "field",
              "name": "inline",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isHighlight",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o input terá destaque visual.",
              "deprecated": "Use `highlight`."
            },
            {
              "kind": "field",
              "name": "highlight",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Habilita destaque visual. Quando informada, tem precedência sobre `isHighlight`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "InputState | undefined"
              },
              "readonly": true,
              "description": "Define o estado do input",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "InputState | undefined"
              },
              "readonly": true,
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto exibido como rótulo do input.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Nome acessível usado quando não há um rótulo visual.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Nome do input, utilizado para identificação em formulários.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | undefined"
              },
              "default": "''",
              "description": "Valor exibido no input.\nPode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "controlWidth",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Largura do campo de entrada (por exemplo, '88px').\nQuando definido, sobrescreve a largura padrão de 100%.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "borderless",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Remove a borda do input quando não está em foco.\nÚtil para composições contextuais (ex.: paginação)."
            },
            {
              "kind": "field",
              "name": "helpText",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto adicional que fornece ajuda ou informações sobre o input.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "autocorrect",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'off'",
              "description": "Controla a correção automática do texto."
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o valor mínimo para campos de entrada numéricos. Deve ser um número finito;\nvalores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o valor máximo para campos de entrada numéricos. Deve ser um número finito;\nvalores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "minlength",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o comprimento mínimo do valor do campo de entrada. Deve ser um inteiro não negativo;\nvalores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "maxlength",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o comprimento máximo do valor do campo de entrada. Deve ser um inteiro não negativo;\nvalores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "multiple",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, permite a entrada de múltiplos e-mails (quando type=\"email\")."
            },
            {
              "kind": "field",
              "name": "pattern",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Expressão regular usada para validar o valor final, sem alterar o texto digitado.\nDiferentemente de `mask`, esta prop valida, mas não formata a entrada.",
              "parsedType": {
                "text": "string"
              },
              "example": "```html\n<br-input label=\"CPF\" pattern=\"[0-9]{11}\"></br-input>\n```"
            },
            {
              "kind": "field",
              "name": "mask",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Formata o valor durante a digitação; use `#` para marcar posições numéricas.\nDiferentemente de `pattern`, esta prop não substitui uma regra de validação.",
              "parsedType": {
                "text": "string"
              },
              "example": "```html\n<br-input label=\"CPF\" mask=\"###.###.###-##\"></br-input>\n```"
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "InputValidator | string | undefined"
              },
              "readonly": true,
              "description": "Função ou regra de validação customizada para o campo.\n\nA função pode ser síncrona ou assíncrona. Retorne uma mensagem para invalidar o\ncampo e `null` ou `''` para validá-lo. A regra é executada no `change` ou pelo\nmétodo `validate()`, nunca a cada tecla.\n\nEm frameworks, passe a função como property binding, por exemplo:\n`validator={validate}` no React, `[validator]=\"validate\"` no Angular ou\n`:validator=\"validate\"` no Vue.\n\nComo alternativa para HTML sem binding de propriedades, uma string pode\nreferenciar uma função global em `window`. A forma inline legada aceita apenas\ncomparação simples; JavaScript arbitrário é rejeitado para manter CSP segura.\nPrefira sempre a função por binding.\n\nDurante validações assíncronas, o campo sinaliza `aria-busy=\"true\"`, exibe o\nindicador de carregamento e emite `brInputValidationChange`.",
              "parsedType": {
                "text": "string | {  }"
              },
              "example": "```ts\ninput.validator = async (value) => {\n  if (!value) return 'Campo obrigatório';\n  const disponivel = await checarDisponibilidade(value);\n  return disponivel ? null : 'Este valor já está em uso';\n};\n```"
            },
            {
              "kind": "field",
              "name": "step",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o valor do passo para campos de entrada numéricos. Deve ser um número finito maior que 0;\nvalores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "actionLabel",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto exibido no botão de ação à direita do input.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "actionTabIndex",
              "type": {
                "text": "number | undefined"
              },
              "readonly": true,
              "description": "Define o tabindex do botão de ação.\nÚtil para remover o botão da sequência de tabulação quando o foco é gerenciado externamente (ex.: br-select).\nAceita inteiros maiores ou iguais a -1; valores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "clearable",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe um botão para limpar o texto enquanto o campo tem valor e aceita edição.\nO botão fica à esquerda do botão de ação, quando houver. Ao ser acionado,\nlimpa o valor, emite `input` uma única vez e `brClear`, e devolve o foco ao campo.\nNão é exibido com `disabled` ou `readonly`."
            },
            {
              "kind": "method",
              "name": "handleValueChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleMaskChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleStateChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleFeedbackStateChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "updateInternalState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do input for válido, caso contrário `false`.\nSe o input for inválido, exibe uma mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  },
                  "description": "Mensagem de erro customizada ou string vazia para limpar"
                }
              ],
              "description": "Define uma mensagem de validação customizada para o input.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "resolveValidator",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "InputValidator | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "runValidator",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<string | null>"
                }
              },
              "parameters": [
                {
                  "name": "validatorFn",
                  "type": {
                    "text": "InputValidator"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa a regra customizada e retorna se o campo está válido.\nSe o validator for assíncrono, aguarda a resposta e ignora resultados\nantigos quando uma execução posterior já começou."
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do input for válido, caso contrário `false`.\nSe o input for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "select",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Seleciona todo o texto do controle nativo, conforme HTMLInputElement.select()."
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "selectionMode",
                  "optional": true,
                  "type": {
                    "text": "SelectionMode"
                  }
                }
              ],
              "description": "Substitui um intervalo de texto usando a API nativa do input."
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  }
                }
              ],
              "description": "Define o intervalo selecionado no controle nativo."
            },
            {
              "kind": "method",
              "name": "stepUp",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "n",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Incrementa o valor numérico pelo step nativo."
            },
            {
              "kind": "method",
              "name": "stepDown",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "n",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Decrementa o valor numérico pelo step nativo."
            },
            {
              "kind": "method",
              "name": "showPicker",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre o picker nativo quando o navegador e o tipo do input oferecem essa API."
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "slotContentObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "initialValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "manualValidationMessage",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "syncProgrammaticValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "normalizeState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "InputState | undefined"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "effectiveType",
              "type": {
                "text": "InputType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'number' | 'text' | 'range' | 'search' | 'color' | 'email' | 'hidden' | 'password' | 'tel' | 'url'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAutocomplete",
              "type": {
                "text": "'on' | 'off' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "InputState | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMin",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMax",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMinLength",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMaxLength",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveStep",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveActionTabIndex",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "method",
              "name": "syncCssPartAttributes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "propagateStateToFeedback",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getInputCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna um mapa de classes CSS para o input, baseado no estado interno e nas propriedades do componente."
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleInput",
              "privacy": "private",
              "readonly": true,
              "description": "Manipula o evento de input, aplicando máscara se necessário e emitindo o valor atualizado.",
              "parameters": [
                {
                  "description": "Evento de input do elemento HTMLInputElement",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "renderLabel",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o rótulo do input, considerando se está em modo inline ou não.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "hasSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  },
                  "description": "Nome do slot a ser verificado"
                }
              ],
              "description": "Verifica se um slot específico possui conteúdo."
            },
            {
              "kind": "method",
              "name": "syncSlotState",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "default": "this.value ?? ''"
                }
              ]
            },
            {
              "kind": "field",
              "name": "nativeValueUpdate",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private",
              "description": "Reproduz a submissão implícita do `<input>` nativo: o campo interno fica no\nShadow DOM e não pertence ao `<form>` do documento. Segue o botão padrão do\nformulário (o primeiro com `type=\"submit\"`, inclusive `br-button`): se ele\nestiver desabilitado, não há envio. A submissão ocorre depois do despacho da\ntecla, para respeitar `preventDefault()` do consumidor e não ativar o elemento\nque receber o foco durante o envio."
            },
            {
              "kind": "field",
              "name": "renderInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "renderHelpText",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o texto de ajuda do input, considerando se está definido como string ou slot.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "renderIconPassword",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o ícone de visibilidade da senha, alternando entre mostrar e esconder.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "togglePasswordVisibility",
              "privacy": "private",
              "readonly": true,
              "description": "Alterna a visibilidade da senha, mudando o tipo do input entre 'text' e 'password'.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderIconSlot",
              "privacy": "private",
              "description": "Renderiza o slot de ícone, caso exista.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "isClearButtonVisible",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "field",
              "name": "keepInputFocus",
              "privacy": "private",
              "readonly": true,
              "description": "Mantém o foco no campo ao clicar no botão de limpar, como o \"x\" de um campo de busca nativo."
            },
            {
              "kind": "field",
              "name": "handleClearClick",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "renderClearButton",
              "privacy": "private",
              "description": "Renderiza o botão de limpar quando `clearable` está ativo e há texto editável.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "handleActionClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderButton",
              "privacy": "private",
              "description": "Renderiza o botão de ação do input, considerando o tipo de input e slots disponíveis.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "renderInlineInputContent",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o conteúdo do input quando está em linha, considerando se há ícone ou não.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "renderInputContent",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o conteúdo do input, considerando se há ícone ou não.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "renderInputWithIcon",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o conteúdo do input com ícone, organizando os elementos em um grupo e aplicando estilos de largura quando necessário."
            },
            {
              "kind": "field",
              "name": "renderInputWithoutIcon",
              "privacy": "private",
              "readonly": true,
              "description": "Renderiza o conteúdo do input sem ícone, organizando os elementos em um grupo.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderFeedback",
              "privacy": "private",
              "description": "Renderiza o slot de feedback, caso exista, permitindo que mensagens de feedback sejam exibidas em resposta a interações do usuário com o input.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderValidationLoading",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyMaskToValue",
              "privacy": "private",
              "description": "Aplica a máscara configurada ao valor do input, se houver.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "applyMask",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "O valor a ser mascarado."
                }
              ],
              "description": "Aplica a máscara configurada a um valor específico."
            },
            {
              "kind": "method",
              "name": "hasMaskConfigured",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Verifica se uma máscara está configurada."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente de input.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "type",
              "fieldName": "type",
              "default": "'text'",
              "description": "Especifica o tipo de entrada do campo.",
              "type": {
                "text": "InputType"
              },
              "parsedType": {
                "text": "'number' | 'text' | 'range' | 'search' | 'color' | 'email' | 'hidden' | 'password' | 'tel' | 'url'"
              }
            },
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "description": "Controla o comportamento de preenchimento automático do navegador para o input.",
              "type": {
                "text": "InputToggle"
              },
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "type": {
                "text": "InputDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o input, tornando-o não interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "inline",
              "fieldName": "inline",
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-highlight",
              "fieldName": "isHighlight",
              "default": "false",
              "description": "Se verdadeiro, o input terá destaque visual.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "highlight",
              "fieldName": "highlight",
              "description": "Habilita destaque visual. Quando informada, tem precedência sobre `isHighlight`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Define o estado do input",
              "type": {
                "text": "InputState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "type": {
                "text": "InputState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto exibido como rótulo do input.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Nome acessível usado quando não há um rótulo visual.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do input, utilizado para identificação em formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "default": "false",
              "description": "Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "''",
              "description": "Valor exibido no input.\nPode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "control-width",
              "fieldName": "controlWidth",
              "description": "Largura do campo de entrada (por exemplo, '88px').\nQuando definido, sobrescreve a largura padrão de 100%.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "borderless",
              "fieldName": "borderless",
              "default": "false",
              "description": "Remove a borda do input quando não está em foco.\nÚtil para composições contextuais (ex.: paginação).",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "help-text",
              "fieldName": "helpText",
              "description": "Texto adicional que fornece ajuda ou informações sobre o input.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "autocorrect",
              "fieldName": "autocorrect",
              "default": "'off'",
              "description": "Controla a correção automática do texto.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "min",
              "fieldName": "min",
              "description": "Define o valor mínimo para campos de entrada numéricos. Deve ser um número finito;\nvalores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "description": "Define o valor máximo para campos de entrada numéricos. Deve ser um número finito;\nvalores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "minlength",
              "fieldName": "minlength",
              "description": "Define o comprimento mínimo do valor do campo de entrada. Deve ser um inteiro não negativo;\nvalores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "maxlength",
              "fieldName": "maxlength",
              "description": "Define o comprimento máximo do valor do campo de entrada. Deve ser um inteiro não negativo;\nvalores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "default": "false",
              "description": "Se verdadeiro, permite a entrada de múltiplos e-mails (quando type=\"email\").",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "pattern",
              "fieldName": "pattern",
              "description": "Expressão regular usada para validar o valor final, sem alterar o texto digitado.\nDiferentemente de `mask`, esta prop valida, mas não formata a entrada.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "mask",
              "fieldName": "mask",
              "description": "Formata o valor durante a digitação; use `#` para marcar posições numéricas.\nDiferentemente de `pattern`, esta prop não substitui uma regra de validação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Função ou regra de validação customizada para o campo.\n\nA função pode ser síncrona ou assíncrona. Retorne uma mensagem para invalidar o\ncampo e `null` ou `''` para validá-lo. A regra é executada no `change` ou pelo\nmétodo `validate()`, nunca a cada tecla.\n\nEm frameworks, passe a função como property binding, por exemplo:\n`validator={validate}` no React, `[validator]=\"validate\"` no Angular ou\n`:validator=\"validate\"` no Vue.\n\nComo alternativa para HTML sem binding de propriedades, uma string pode\nreferenciar uma função global em `window`. A forma inline legada aceita apenas\ncomparação simples; JavaScript arbitrário é rejeitado para manter CSP segura.\nPrefira sempre a função por binding.\n\nDurante validações assíncronas, o campo sinaliza `aria-busy=\"true\"`, exibe o\nindicador de carregamento e emite `brInputValidationChange`.",
              "type": {
                "text": "InputValidator | string"
              },
              "parsedType": {
                "text": "string | {  }"
              }
            },
            {
              "name": "step",
              "fieldName": "step",
              "description": "Define o valor do passo para campos de entrada numéricos. Deve ser um número finito maior que 0;\nvalores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "action-label",
              "fieldName": "actionLabel",
              "description": "Texto exibido no botão de ação à direita do input.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "action-tab-index",
              "fieldName": "actionTabIndex",
              "description": "Define o tabindex do botão de ação.\nÚtil para remover o botão da sequência de tabulação quando o foco é gerenciado externamente (ex.: br-select).\nAceita inteiros maiores ou iguais a -1; valores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "clearable",
              "fieldName": "clearable",
              "default": "false",
              "description": "Exibe um botão para limpar o texto enquanto o campo tem valor e aceita edição.\nO botão fica à esquerda do botão de ação, quando houver. Ao ser acionado,\nlimpa o valor, emite `input` uma única vez e `brClear`, e devolve o foco ao campo.\nNão é exibido com `disabled` ou `readonly`.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-input",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual principal do input."
            },
            {
              "name": "label",
              "description": "Rótulo do input."
            },
            {
              "name": "input",
              "description": "Elemento input nativo."
            },
            {
              "name": "group",
              "description": "Grupo que contém ícone, input, botão e ajuda."
            },
            {
              "name": "icon",
              "description": "Contêiner do slot de ícone."
            },
            {
              "name": "action",
              "description": "Botão de ação lateral."
            },
            {
              "name": "action-button",
              "description": "Botão interno reexportado do br-button da ação."
            },
            {
              "name": "clear",
              "description": "Botão de limpar exibido com `clearable` enquanto há texto editável."
            },
            {
              "name": "help-text",
              "description": "Texto de ajuda ou slot de ajuda."
            },
            {
              "name": "feedback",
              "description": "Slot de feedback."
            }
          ],
          "events": [
            {
              "name": "valueChange",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Valor atualizado do input",
              "deprecated": "Use o evento nativo `input` e leia `event.target.value`."
            },
            {
              "name": "brClear",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o usuário aciona o botão de limpar (`clearable`), depois que o\nvalor foi limpo e o evento `input` foi disparado."
            },
            {
              "name": "brInputActionClick",
              "type": {
                "text": "EventEmitter<InputActionClickDetail>"
              },
              "description": "Notifica a ativação do botão do slot `action` por clique ou teclado.\nEmitido no host com `detail.originalEvent` contendo o clique original.\nPropaga e atravessa Shadow DOM; não é cancelável nem altera o clique nativo.\nNão emite para o campo textual, botão de senha, inicialização ou controle desabilitado."
            },
            {
              "name": "brInputValidationChange",
              "type": {
                "text": "EventEmitter<InputValidationChangeDetail>"
              },
              "description": "Informa o início e o resultado do validator, inclusive quando ele consulta\num serviço remoto. O `detail` contém `validating`, `valid` e `message`;\nescrita programática e reset não representam interação do usuário."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários"
          ],
          "cssProperties": [
            {
              "name": "--br-input-margin-bottom",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Input",
          "declaration": {
            "name": "Input",
            "module": "components/input.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-input",
          "declaration": {
            "name": "Input",
            "module": "components/input.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-item` padroniza uma linha de conteúdo, ação ou link dentro de listas, menus ou agrupamentos verticais.\n\nColoque o texto ou elementos no slot padrão. Use `interactive` para habilitar efeito de clique e foco, ou `href` para transformá-lo em link navegável. Para destacar um item escolhido, use `selected`.\n\n```html\n<br-item interactive>Item de ação</br-item>\n<br-item href=\"/perfil\">Meu Perfil</br-item>\n```\n\n### Quando usar\n\n- Linhas de dados em listas (`br-list`) ou painéis verticais.\n- Linhas com foco, hover e seleção consistentes com o design system.\n\n### Quando evitar\n\n- Itens específicos de navegação estruturada: use `br-breadcrumb-item`, `br-tab-item` ou `br-step-item`.\n- Opções de seleção em formulário: use `br-select-option`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/item?tab=designer).",
          "name": "Item",
          "cssParts": [
            {
              "description": "Elemento principal do item (botão, link ou div).",
              "name": "item"
            }
          ],
          "slots": [
            {
              "description": "Á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.).",
              "name": "default"
            },
            {
              "description": "Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.",
              "name": "start"
            },
            {
              "description": "Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.",
              "name": "end"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrItemElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasSlotDefault",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot padrão possui conteúdo atribuído."
            },
            {
              "kind": "field",
              "name": "hasSlotEnd",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot `end` possui conteúdo atribuído."
            },
            {
              "kind": "field",
              "name": "hasSlotStart",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot `start` possui conteúdo atribuído."
            },
            {
              "kind": "field",
              "name": "selectedValue",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado interno de seleção usado na renderização e emissão de eventos."
            },
            {
              "kind": "field",
              "name": "rovingTabIndex",
              "type": {
                "text": "number"
              },
              "default": "0"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "isActive",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o item está no estado ativo.\nSe definido como verdadeiro, o item será exibido como ativo.",
              "deprecated": "Use `active`."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isSelected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o item está no estado selecionado.\nSe definido como verdadeiro, o item será exibido como selecionado.",
              "deprecated": "Use `selected`."
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado selecionado. Em itens interativos, também é atualizado pelo acionamento.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isInteractive",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marca o item como interativo, permitindo que toda a superfície do item seja clicável.",
              "deprecated": "Use `interactive`."
            },
            {
              "kind": "field",
              "name": "interactive",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Torna toda a superfície interativa. Quando informado, tem precedência sobre `isInteractive`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "isButton",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Quando definido como `true`, o item será tratado como um botão.",
              "deprecated": "Use `button`."
            },
            {
              "kind": "field",
              "name": "button",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Renderiza o item como botão de alternância: o acionamento alterna `selected`, emite\n`brItemSelect` e expõe o estado em `aria-pressed`. Para uma ação sem estado (ex.: \"Sair\"),\nuse `href` com `navigation-mode=\"event\"` ou um `br-button`.\nQuando informado, tem precedência sobre `isButton`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "BrButtonType"
              },
              "description": "Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n- `'submit'` para enviar um formulário,\n- `'reset'` para redefinir um formulário,\n- `'button'` para um botão padrão.",
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveType",
              "type": {
                "text": "BrButtonType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "kind": "field",
              "name": "hasRadios",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasCheckboxes",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "focusableElement",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isManagedByList",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "handleSelectedPropChange"
            },
            {
              "kind": "method",
              "name": "handleCheckedChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInternalChildStateChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncSelectionFromChildEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "activate",
              "description": "Ativa o item programaticamente, simulando um clique na superfície.\nUtilizado pelo br-list para tratar Enter e Espaço via teclado, e\ninternamente pelo próprio item quando standalone (fora de br-list)."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "description": "Define o foco no elemento interno do componente.\nEste método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto."
            },
            {
              "kind": "method",
              "name": "setTabIndex",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Define o tabIndex do elemento interno.\nUtilizado pelo br-list para implementar o padrão roving tabindex,\ngarantindo que apenas um item por vez seja alcançável via Tab."
            },
            {
              "kind": "field",
              "name": "effectiveActive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveSelected",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveInteractive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "selectionEnabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveButton",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hasSlotContentDefault",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "hasSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTagType",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAttributes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "updateCheckboxSelectionState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "emitEvent",
                  "default": "true"
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateRadioSelectionState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "emitEvent",
                  "default": "true"
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleMouseDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isClickInsideInteractiveElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateCheckboxes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setSelectionState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selected",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "reflect",
                  "default": "true"
                }
              ]
            },
            {
              "kind": "method",
              "name": "toggleSelection",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleKeydown",
              "privacy": "private",
              "description": "Trata Enter/Espaço quando o item NÃO está sendo gerenciado por um\nbr-list ancestral (uso standalone — ex.: dentro do shadow/light DOM\nde br-dropdown, br-notification, ou qualquer wrapper customizado).\n\nQuando o item está dentro de um br-list, este handler não é registrado\n(ver componentWillLoad/isManagedByList), pois o br-list já trata\nEnter/Espaço/setas para todos os seus itens navegáveis via handleKeydown\n+ activate(), evitando double-handling.\n\nItens renderizados como <button> ou <a> já respondem nativamente a\nEnter (e <button> também a Espaço), então este handler só precisa\nagir sobre o caso <div role=\"button\"> (isInteractive standalone)."
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getOwnedControls",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "T[]"
                }
              },
              "parameters": [
                {
                  "name": "selector",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-active",
              "fieldName": "isActive",
              "default": "false",
              "description": "Indica se o item está no estado ativo.\nSe definido como verdadeiro, o item será exibido como ativo."
            },
            {
              "name": "active",
              "fieldName": "active",
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-selected",
              "fieldName": "isSelected",
              "default": "false",
              "description": "Indica se o item está no estado selecionado.\nSe definido como verdadeiro, o item será exibido como selecionado."
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "description": "Estado selecionado. Em itens interativos, também é atualizado pelo acionamento.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-interactive",
              "fieldName": "isInteractive",
              "default": "false",
              "description": "Marca o item como interativo, permitindo que toda a superfície do item seja clicável."
            },
            {
              "name": "interactive",
              "fieldName": "interactive",
              "description": "Torna toda a superfície interativa. Quando informado, tem precedência sobre `isInteractive`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Define o alvo do link quando `href` está presente. Pode ser:\n- `_blank` para abrir em uma nova aba,\n- `_self` para abrir na mesma aba,\n- `_parent` para abrir na aba pai,\n- `_top` para abrir na aba superior.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "is-button",
              "fieldName": "isButton",
              "default": "false",
              "description": "Quando definido como `true`, o item será tratado como um botão."
            },
            {
              "name": "button",
              "fieldName": "button",
              "description": "Renderiza o item como botão de alternância: o acionamento alterna `selected`, emite\n`brItemSelect` e expõe o estado em `aria-pressed`. Para uma ação sem estado (ex.: \"Sair\"),\nuse `href` com `navigation-mode=\"event\"` ou um `br-button`.\nQuando informado, tem precedência sobre `isButton`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n- `'submit'` para enviar um formulário,\n- `'reset'` para redefinir um formulário,\n- `'button'` para um botão padrão.",
              "type": {
                "text": "BrButtonType"
              },
              "parsedType": {
                "text": "'button' | 'submit' | 'reset'"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            }
          ],
          "tagName": "br-item",
          "status": "stable",
          "csspart": {
            "name": "item",
            "description": "Elemento principal do item (botão, link ou div)."
          },
          "events": [
            {
              "name": "brDidClick",
              "type": {
                "text": "EventEmitter"
              },
              "description": "Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\nPode ser utilizado para ações personalizadas, exceto quando o item está desativado.",
              "deprecated": "Use `brItemClick`."
            },
            {
              "name": "brItemClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o item com comportamento de botão é acionado."
            },
            {
              "name": "brDidSelect",
              "type": {
                "text": "EventEmitter<ItemSelectDetail>"
              },
              "description": "Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando a seleção do item interativo ou botão muda.\nO `detail` expõe `{ selected: boolean }` indicando o novo estado.\nNão é emitido quando `disabled` está ativo.",
              "deprecated": "Use `brItemSelect`."
            },
            {
              "name": "brItemSelect",
              "type": {
                "text": "EventEmitter<ItemSelectDetail>"
              },
              "description": "Evento emitido quando a seleção muda."
            },
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Conteúdo",
          "categories": [
            "Conteúdo",
            "Navegação"
          ],
          "cssProperties": [
            {
              "name": "--br-item-bg-color",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Item",
          "declaration": {
            "name": "Item",
            "module": "components/item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-item",
          "declaration": {
            "name": "Item",
            "module": "components/item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-link` conduz a pessoa usuária a outra página, arquivo para download ou seção externa.\n\nColoque o texto ou ícone no slot padrão e aponte o destino em `href`. Para destinos externos ou abas novas, use `target=\"_blank\"`. Para integração com roteadores de SPA, use `navigation-mode=\"event\"` e ouça o evento `brNavigate`.\n\n```html\n<br-link href=\"/servicos\">Serviços disponíveis</br-link>\n<br-link href=\"https://www.gov.br\" target=\"_blank\">Portal Gov.br</br-link>\n```\n\n### Quando usar\n\n- Navegar para outra página, rota ou domínio.\n- Fazer download de arquivos ou saltar para âncoras na mesma página.\n\n### Quando evitar\n\n- Executar uma ação na página atual (salvar, abrir diálogo): use `br-button`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/link?tab=designer).",
          "name": "Link",
          "cssParts": [
            {
              "description": "Parte exposta para o elemento âncora interno, usada para estilos customizados via `::part(anchor)`.",
              "name": "anchor"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo do link (texto, ícones ou outros elementos).",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'#'",
              "description": "URL de destino do link."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top' | undefined"
              },
              "readonly": true,
              "description": "Define como o link será aberto.\n- `_self`: abre no mesmo contexto de navegação\n- `_blank`: abre em nova aba ou janela\n- `_parent`: abre no contexto pai\n- `_top`: abre no contexto de nível superior",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "rel",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Relação entre o documento atual e o destino (`rel`).\nQuando `target=\"_blank\"`, `noopener` e `noreferrer` são sempre incluídos\n(mesmo que `rel` seja definido) para mitigar tabnabbing e vazamento de `window.opener`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "download",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Nome sugerido para download. Uma string vazia preserva o nome definido pelo servidor.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "hreflang",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Idioma do recurso apontado pelo link.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "referrerPolicy",
              "type": {
                "text": "ReferrerPolicy | undefined"
              },
              "readonly": true,
              "description": "Política de referrer usada ao buscar o destino.",
              "parsedType": {
                "text": "'' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Tipo MIME informativo do recurso apontado.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "readonly": true,
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "isSpaLinkBehavior",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Ativa o comportamento legado de navegação SPA, interceptando cliques simples\npara atualizar o histórico e emitir `brSpaNavigate`.",
              "deprecated": "Use `navigationMode=\"event\"` e o evento `brNavigate`."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o link, tornando-o não interativo.\nQuando `true`: remove o `href` (um `<a>` sem `href` sai da ordem de\ntabulação e não recebe foco, nem por clique), marca `aria-disabled=\"true\"`\ne bloqueia o clique (sem navegação nem emissão de `brNavigate`).\nSe o link estiver focado no momento da desativação, o foco é removido.\nÚtil para componentes como `br-pagination` e `br-wizard`."
            },
            {
              "kind": "field",
              "name": "button",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe o link com o mesmo visual do componente `br-button`."
            },
            {
              "kind": "field",
              "name": "linkRole",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `role` para o elemento âncora interno.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaExpanded",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-expanded` para o elemento âncora interno.",
              "deprecated": "Use `ariaExpanded`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaExpanded",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-expanded`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaSelected",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-selected` para o elemento âncora interno.",
              "deprecated": "Use `ariaSelected`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaSelected",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-selected`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaHaspopup",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-haspopup` para o elemento âncora interno.",
              "deprecated": "Use `ariaHasPopup`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaHasPopup",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-haspopup`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaCurrent",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-current` para o elemento âncora interno.\nIndica o item ativo em um conjunto de navegação (breadcrumb, menu, paginação).\nValores comuns: `\"page\"` (link da página atual), `\"step\"` (etapa ativa), `\"true\"`.\nReferência: WCAG 1.3.1 e ARIA `aria-current`.",
              "deprecated": "Use `ariaCurrent`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaCurrent",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-current`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaLabel",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-label` para o elemento âncora interno.\nFornece nome acessível ao link quando o conteúdo do slot não é descritivo\npor si só (ex.: link com ícone sem texto visível).",
              "deprecated": "Use `ariaLabel`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-label`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "linkAriaDescribedby",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Encaminhamento de `aria-describedby` para o elemento âncora interno.\nReferencia o `id` de um elemento externo que descreve o link.",
              "deprecated": "Use `ariaDescribedBy`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaDescribedBy",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Valor de `aria-describedby`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "handleDisabledChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "isDisabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getAnchorAttrs",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getRel",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "href",
              "fieldName": "href",
              "default": "'#'",
              "description": "URL de destino do link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "description": "Define como o link será aberto.\n- `_self`: abre no mesmo contexto de navegação\n- `_blank`: abre em nova aba ou janela\n- `_parent`: abre no contexto pai\n- `_top`: abre no contexto de nível superior",
              "type": {
                "text": "'_self' | '_blank' | '_parent' | '_top'"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "rel",
              "fieldName": "rel",
              "description": "Relação entre o documento atual e o destino (`rel`).\nQuando `target=\"_blank\"`, `noopener` e `noreferrer` são sempre incluídos\n(mesmo que `rel` seja definido) para mitigar tabnabbing e vazamento de `window.opener`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "download",
              "fieldName": "download",
              "description": "Nome sugerido para download. Uma string vazia preserva o nome definido pelo servidor.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "hreflang",
              "fieldName": "hreflang",
              "description": "Idioma do recurso apontado pelo link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "referrer-policy",
              "fieldName": "referrerPolicy",
              "description": "Política de referrer usada ao buscar o destino.",
              "type": {
                "text": "ReferrerPolicy"
              },
              "parsedType": {
                "text": "'' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url'"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "description": "Tipo MIME informativo do recurso apontado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "is-spa-link-behavior",
              "fieldName": "isSpaLinkBehavior",
              "default": "false",
              "description": "Ativa o comportamento legado de navegação SPA, interceptando cliques simples\npara atualizar o histórico e emitir `brSpaNavigate`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o link, tornando-o não interativo.\nQuando `true`: remove o `href` (um `<a>` sem `href` sai da ordem de\ntabulação e não recebe foco, nem por clique), marca `aria-disabled=\"true\"`\ne bloqueia o clique (sem navegação nem emissão de `brNavigate`).\nSe o link estiver focado no momento da desativação, o foco é removido.\nÚtil para componentes como `br-pagination` e `br-wizard`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "button",
              "fieldName": "button",
              "default": "false",
              "description": "Exibe o link com o mesmo visual do componente `br-button`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "link-role",
              "fieldName": "linkRole",
              "description": "Encaminhamento de `role` para o elemento âncora interno.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-expanded",
              "fieldName": "linkAriaExpanded",
              "description": "Encaminhamento de `aria-expanded` para o elemento âncora interno.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-expanded",
              "fieldName": "ariaExpanded",
              "default": "null",
              "description": "Valor de `aria-expanded`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-selected",
              "fieldName": "linkAriaSelected",
              "description": "Encaminhamento de `aria-selected` para o elemento âncora interno.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-selected",
              "fieldName": "ariaSelected",
              "default": "null",
              "description": "Valor de `aria-selected`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-haspopup",
              "fieldName": "linkAriaHaspopup",
              "description": "Encaminhamento de `aria-haspopup` para o elemento âncora interno.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-haspopup",
              "fieldName": "ariaHasPopup",
              "default": "null",
              "description": "Valor de `aria-haspopup`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-current",
              "fieldName": "linkAriaCurrent",
              "description": "Encaminhamento de `aria-current` para o elemento âncora interno.\nIndica o item ativo em um conjunto de navegação (breadcrumb, menu, paginação).\nValores comuns: `\"page\"` (link da página atual), `\"step\"` (etapa ativa), `\"true\"`.\nReferência: WCAG 1.3.1 e ARIA `aria-current`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-current",
              "fieldName": "ariaCurrent",
              "default": "null",
              "description": "Valor de `aria-current`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-label",
              "fieldName": "linkAriaLabel",
              "description": "Encaminhamento de `aria-label` para o elemento âncora interno.\nFornece nome acessível ao link quando o conteúdo do slot não é descritivo\npor si só (ex.: link com ícone sem texto visível).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Valor de `aria-label`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "link-aria-describedby",
              "fieldName": "linkAriaDescribedby",
              "description": "Encaminhamento de `aria-describedby` para o elemento âncora interno.\nReferencia o `id` de um elemento externo que descreve o link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedBy",
              "default": "null",
              "description": "Valor de `aria-describedby`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-link",
          "status": "stable",
          "csspart": {
            "name": "anchor",
            "description": "Parte exposta para o elemento âncora interno, usada para estilos customizados via `::part(anchor)`."
          },
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            },
            {
              "name": "brSpaNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "deprecated": "Use `brNavigate`."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Ações"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Link",
          "declaration": {
            "name": "Link",
            "module": "components/link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-link",
          "declaration": {
            "name": "Link",
            "module": "components/link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/list.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-list` organiza coleções verticais de itens homogêneos ou relacionados, como listas de contatos, tarefas ou configurações.\n\nAdicione os itens (como `br-item`) no slot padrão. Se precisar de um título ou ações no topo da lista, use o slot `header` ou a propriedade `title`.\n\n```html\n<br-list title=\"Configurações\">\n  <br-item interactive>Notificações</br-item>\n  <br-item interactive>Segurança</br-item>\n</br-list>\n```\n\n### Quando usar\n\n- Sequências verticais de itens com leitura linear.\n- Listas de opções simples ou links agrupados.\n\n### Quando evitar\n\n- Dados em linhas e colunas com ordenação: use `br-table`.\n- Menu lateral de navegação da página: use `br-menu`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/list?tab=designer).",
          "name": "List",
          "cssParts": [
            {
              "description": "Wrapper principal da lista.",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para os itens da lista.",
              "name": "default"
            },
            {
              "description": "Slot para ações ou conteúdo do cabeçalho da lista.",
              "name": "header"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrListElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "header",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Define o texto do cabeçalho da lista.\nQuando definido, também é usado como `aria-label` do elemento `role=\"list\"`,\nfornecendo um nome acessível que leitores de tela anunciam ao entrar na lista."
            },
            {
              "kind": "field",
              "name": "isHorizontal",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se a lista será horizontal. Por padrão, a lista é vertical.",
              "deprecated": "Use `orientation`."
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "'horizontal' | 'vertical' | undefined"
              },
              "description": "Orientação padrão. Quando informada, tem precedência sobre `isHorizontal`; valores inválidos usam `vertical`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "hideHeaderDivider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que o divider para o título da lista estará oculto."
            },
            {
              "kind": "field",
              "name": "divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se a lista possui divisores (divider) entre os itens."
            },
            {
              "kind": "field",
              "name": "collapse",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Torna a lista recolhível: o corpo é envolvido por um `br-collapse` interno\nque abre e fecha ao acionar o cabeçalho. Começa recolhida.\n\nRequer um cabeçalho (atributo `header` ou slot `header`) — ele é o acionador.\nSem cabeçalho não há como recolher.\n\nPara \"apenas uma aberta por vez\" entre listas, use `accordion`."
            },
            {
              "kind": "field",
              "name": "accordion",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "Título do grupo de accordion. `br-list` irmãs (mesmo elemento-pai) com o\nmesmo valor formam um grupo e mantêm apenas uma aberta por vez — abrir uma\nfecha as demais do grupo.\n\nSozinha já torna a lista recolhível (não precisa de `collapse`) e, como o\n`collapse`, exige um cabeçalho (`header` ou slot `header`) como acionador.\nComeça recolhida."
            },
            {
              "kind": "field",
              "name": "listRole",
              "type": {
                "text": "'list' | 'group'"
              },
              "default": "'list'",
              "description": "Semântica do host quando o conteúdo não representa itens de lista. Valores inválidos usam `list`.",
              "parsedType": {
                "text": "'group' | 'list'"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "'small' | 'medium' | 'large' | null"
              },
              "default": "null",
              "description": "Modificador de densidade da lista. Aceita `small`, `medium` ou `large`.\nValores inválidos usam `medium`. Quando omitida ou `null`, nenhuma densidade é aplicada.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "observer",
              "type": {
                "text": "MutationObserver | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "slotElement",
              "type": {
                "text": "HTMLSlotElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "observingNestedContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "boundKeydown",
              "type": {
                "text": "((event: KeyboardEvent) => void) | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "mutationFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "method",
              "name": "handleAccordionExclusivity",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ accordionGroup?: string }>"
                  }
                }
              ],
              "description": "Coordena o accordion entre listas irmãs. Quando o `br-collapse` interno\ndesta lista abre, fecha o `br-collapse` das demais `br-list` irmãs que\ncompartilham o mesmo valor de `accordion`. Só reage ao evento da própria\nlista — `brCollapseOpen` de outras listas não passa por este host."
            },
            {
              "kind": "method",
              "name": "getOwnedItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Element[]"
                }
              },
              "description": "Retorna todos os `br-item` pertencentes diretamente a esta lista, ignorando\nitens de listas aninhadas. Usa `TreeWalker` com `FILTER_REJECT` em `br-list`\nfilhas para evitar contaminar itens internos com `role=\"listitem\"` desta lista pai."
            },
            {
              "kind": "method",
              "name": "applyListItemRoles",
              "privacy": "private",
              "description": "Aplica `role=\"listitem\"` em todos os itens pertencentes a esta lista quando `listRole === 'list'`.\nChamado no `componentDidLoad` e pelo `MutationObserver` para itens adicionados dinamicamente."
            },
            {
              "kind": "method",
              "name": "normalizeIntermediateWrappers",
              "privacy": "private",
              "description": "Aplica `role=\"presentation\"` em wrappers intermediários e elementos decorativos sem semântica\nentre o `br-list` e seus itens diretos (ex.: `<div>` de layout ou `<span>` divisores).\nSem isso, a relação `list → listitem` exigida pelo WAI-ARIA é quebrada."
            },
            {
              "kind": "method",
              "name": "normalizeWrapperRecursive",
              "privacy": "private",
              "parameters": [
                {
                  "name": "node",
                  "type": {
                    "text": "Element"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "mutationHasRelevantItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "mutations",
                  "type": {
                    "text": "MutationRecord[]"
                  }
                }
              ],
              "description": "Observa mutações no light DOM para manter `role=\"listitem\"` e o roving tabindex\natualizados quando itens são adicionados dinamicamente após o `componentDidLoad`."
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hasNestedSlottedContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "scheduleListSync",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncObserverMode",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "initRovingTabindex",
              "privacy": "private",
              "description": "Implementa o padrão roving tabindex do WAI-ARIA APG.\nApenas o primeiro item habilitado recebe `tabIndex=0`; todos os outros ficam com `tabIndex=-1`.\nIsso garante que a lista seja um único tab stop, com navegação interna via teclas de seta."
            },
            {
              "kind": "method",
              "name": "focusFirstItem",
              "description": "Move o foco para o primeiro item navegável da lista.\nAPI pública para componentes que abrem a lista programaticamente\n(ex.: `br-dropdown`), evitando acesso direto ao `br-item`."
            },
            {
              "kind": "method",
              "name": "updateRovingTabindex",
              "privacy": "private",
              "parameters": [
                {
                  "name": "focusedItem",
                  "type": {
                    "text": "HTMLBrItemElement"
                  }
                }
              ],
              "description": "Atualiza o roving tabindex após uma navegação, colocando tabIndex=0\nno item que recebeu foco e tabIndex=-1 em todos os outros."
            },
            {
              "kind": "method",
              "name": "isItemVisible",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "HTMLBrItemElement"
                  }
                }
              ],
              "description": "Verifica se um item está visível no documento."
            },
            {
              "kind": "method",
              "name": "isFocusableItem",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "Element"
                  }
                }
              ],
              "description": "Indica se o item participa da navegação por teclado (roving tabindex).\nItens puramente de exibição (sem isInteractive/isButton/href) não são\nwidgets acionáveis e não devem virar tab stop nem ser alcançados por seta."
            },
            {
              "kind": "method",
              "name": "getNavigableItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrItemElement[]"
                }
              },
              "description": "Retorna os br-item navegáveis desta lista, ignorando itens desabilitados,\nnão-interativos, ocultos e itens pertencentes a listas aninhadas."
            },
            {
              "kind": "method",
              "name": "getDeepActiveElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Element | null"
                }
              },
              "parameters": [
                {
                  "name": "root",
                  "default": "document",
                  "type": {
                    "text": "Document | ShadowRoot"
                  }
                }
              ],
              "description": "Resolve o elemento com foco atravessando múltiplos níveis de shadow DOM."
            },
            {
              "kind": "method",
              "name": "findOwnerItem",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrItemElement | null"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "Element | null"
                  }
                },
                {
                  "name": "items",
                  "type": {
                    "text": "HTMLBrItemElement[]"
                  }
                }
              ],
              "description": "Sobe a partir de `start` até achar um dos `items`, atravessando limites de shadow root\n(via `.host`) em cada nível. Necessário porque `Node.contains()` não atravessa o shadow\nboundary de um elemento diferente (ex.: o `<input>` nativo dentro do shadow root de um\n`br-checkbox`/`br-radio` aninhado no item) -- sem isso, o foco dentro desses controles\nnunca é atribuído ao item correto."
            },
            {
              "kind": "method",
              "name": "getCurrentIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "items",
                  "type": {
                    "text": "HTMLBrItemElement[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isFormControlTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "EventTarget | null"
                  }
                }
              ],
              "description": "Indica se o teclado deve ser deixado para o próprio controle (input de texto, textarea,\nselect), sem ser sequestrado pela navegação por setas/Home/End/Enter/Espaço da lista.\nEsses controles têm edição de texto/cursor próprios que a lista não deve sobrepor.\n\nCheckbox e radio ficam DE FORA deste bypass -- checkbox não tem comportamento nativo de\nseta algum (precisa que a lista trate as setas pra navegar entre itens, ver `findOwnerItem`),\ne radio já trata suas próprias setas via `defaultPrevented` (seu próprio `@Listen('keydown')`\nchama `preventDefault()`, o que o early-return de `handleKeydown` já respeita)."
            },
            {
              "kind": "method",
              "name": "focusItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "HTMLBrItemElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Trata a navegação por teclado dentro da lista, implementando o padrão\ncomposite widget do WAI-ARIA APG.\n\n- ArrowDown / ArrowRight (horizontal): próximo item (circular)\n- ArrowUp / ArrowLeft (horizontal): item anterior (circular)\n- Home / End: primeiro / último item\n- Enter / Space: ativa o item com foco via `activate()`\n\nUsa `composedPath()` para identificar a lista dona do evento,\ngarantindo que listas aninhadas não processem eventos umas das outras.\nChama `stopPropagation()` em todas as teclas tratadas para evitar\nconflito com componentes pai.\n\nSai cedo (sem interceptar nada) quando: (a) o evento já foi tratado por um\nhandler mais interno que chamou `preventDefault()` -- ex.: `br-dropdown` tratando\nEnter/Setas nos próprios itens, ou `br-radio` tratando Setas dentro do seu grupo --\nevitando double-handling; ou (b) o alvo é um controle de formulário que deve manter\nseu próprio comportamento de teclado (ver `isFormControlTarget`)."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveListRole",
              "type": {
                "text": "'list' | 'group'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'group' | 'list'"
              }
            },
            {
              "kind": "method",
              "name": "hasSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  },
                  "description": "Nome do slot a ser verificado."
                }
              ],
              "description": "Verifica se o slot possui conteúdo."
            },
            {
              "kind": "field",
              "name": "renderHeader",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderDivider",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderListBody",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "header",
              "fieldName": "header",
              "default": "null",
              "description": "Define o texto do cabeçalho da lista.\nQuando definido, também é usado como `aria-label` do elemento `role=\"list\"`,\nfornecendo um nome acessível que leitores de tela anunciam ao entrar na lista.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-horizontal",
              "fieldName": "isHorizontal",
              "default": "false",
              "description": "Indica se a lista será horizontal. Por padrão, a lista é vertical."
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "Orientação padrão. Quando informada, tem precedência sobre `isHorizontal`; valores inválidos usam `vertical`.",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "hide-header-divider",
              "fieldName": "hideHeaderDivider",
              "default": "false",
              "description": "Indica que o divider para o título da lista estará oculto."
            },
            {
              "name": "divider",
              "fieldName": "divider",
              "default": "false",
              "description": "Indica se a lista possui divisores (divider) entre os itens."
            },
            {
              "name": "collapse",
              "fieldName": "collapse",
              "default": "false",
              "description": "Torna a lista recolhível: o corpo é envolvido por um `br-collapse` interno\nque abre e fecha ao acionar o cabeçalho. Começa recolhida.\n\nRequer um cabeçalho (atributo `header` ou slot `header`) — ele é o acionador.\nSem cabeçalho não há como recolher.\n\nPara \"apenas uma aberta por vez\" entre listas, use `accordion`."
            },
            {
              "name": "accordion",
              "fieldName": "accordion",
              "default": "null",
              "description": "Título do grupo de accordion. `br-list` irmãs (mesmo elemento-pai) com o\nmesmo valor formam um grupo e mantêm apenas uma aberta por vez — abrir uma\nfecha as demais do grupo.\n\nSozinha já torna a lista recolhível (não precisa de `collapse`) e, como o\n`collapse`, exige um cabeçalho (`header` ou slot `header`) como acionador.\nComeça recolhida.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "list-role",
              "fieldName": "listRole",
              "default": "'list'",
              "description": "Semântica do host quando o conteúdo não representa itens de lista. Valores inválidos usam `list`.",
              "type": {
                "text": "'list' | 'group'"
              },
              "parsedType": {
                "text": "'group' | 'list'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "null",
              "description": "Modificador de densidade da lista. Aceita `small`, `medium` ou `large`.\nValores inválidos usam `medium`. Quando omitida ou `null`, nenhuma densidade é aplicada.",
              "type": {
                "text": "'small' | 'medium' | 'large' | null"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            }
          ],
          "tagName": "br-list",
          "status": "stable",
          "csspart": {
            "name": "container",
            "description": "Wrapper principal da lista."
          },
          "see": [
            "br-item",
            "br-collapse"
          ],
          "events": [],
          "customElement": true,
          "category": "Conteúdo",
          "categories": [
            "Conteúdo",
            "Layout"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "List",
          "declaration": {
            "name": "List",
            "module": "components/list.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-list",
          "declaration": {
            "name": "List",
            "module": "components/list.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/loading.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-loading` indica visualmente que uma operação assíncrona está em andamento.\n\nSuporta o modo circular padrão (indeterminado) ou o modo determinístico com barra e percentual via `progress`. Para adicionar uma mensagem explicativa, informe `label`.\n\n```html\n<br-loading label=\"Carregando dados...\"></br-loading>\n<br-loading progress=\"60\" label=\"Enviando arquivo...\"></br-loading>\n```\n\n### Quando usar\n\n- Operações que demoram mais de 300 ms (carregamento de dados, envio de formulário).\n- Downloads ou uploads com percentual de progresso mensurável.\n\n### Quando evitar\n\n- Operações instantâneas (menos de 300 ms).\n- Carregamento interno em botão: use a propriedade `loading` do `br-button`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/loading?tab=designer).",
          "name": "Loading",
          "cssParts": [
            {
              "description": "Wrapper principal do loading.",
              "name": "container"
            },
            {
              "description": "Wrapper do conteúdo do spinner/progress.",
              "name": "wrapper"
            },
            {
              "description": "Elemento SVG principal do loading.",
              "name": "svg"
            },
            {
              "description": "Texto de percentual no modo `progress`.",
              "name": "percentage"
            },
            {
              "description": "Wrapper do rótulo no modo `spinner`.",
              "name": "label-wrapper"
            },
            {
              "description": "Botão de cancelamento no modo `progress` cancelável.",
              "name": "cancel-button"
            }
          ],
          "slots": [
            {
              "description": "Rótulo customizado do loading. Quando utilizado, a prop `label` é ignorada.",
              "name": "label"
            },
            {
              "description": "Conteúdo customizado do botão de cancelar. Quando utilizado, a prop `cancelLabel` é ignorada.",
              "name": "cancel-button"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrLoadingElement"
              },
              "description": "Referência ao elemento host do componente, permitindo manipulação direta do DOM para controle de visibilidade e outras interações."
            },
            {
              "kind": "field",
              "name": "displayedValue",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Valor exibido no texto de progresso durante a transição."
            },
            {
              "kind": "field",
              "name": "labelPosition",
              "type": {
                "text": "LoadingLabelPosition"
              },
              "default": "'bottom'",
              "description": "Define a posição da label em relação ao loading. Valores inválidos usam `bottom`.",
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string | undefined"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "LoadingMode"
              },
              "default": "'spinner'",
              "description": "Define o modo de exibição do componente. Valores inválidos usam `spinner`.",
              "parsedType": {
                "text": "'spinner' | 'progress'"
              }
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "LoadingSize"
              },
              "default": "'medium'",
              "description": "Define o tamanho visual nos modos `spinner` e `progress`.",
              "deprecated": "Use `density`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "LoadingSize | undefined"
              },
              "description": "Densidade visual. Quando informada, tem precedência sobre `size`.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "compact",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Remove o espaçamento externo e oculta visualmente o rótulo, mantendo-o\ndisponível para tecnologias assistivas. Use em áreas compactas, como\ncontroles de paginação ou campos de formulário."
            },
            {
              "kind": "field",
              "name": "speed",
              "type": {
                "text": "LoadingSpeed"
              },
              "default": "'normal'",
              "description": "Define a velocidade da animação/transição. Valores inválidos usam `normal`.",
              "parsedType": {
                "text": "'slow' | 'normal' | 'fast'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Define o rótulo exibido no modo `spinner`.\nNo modo `progress`, esta prop não tem efeito.",
              "default": "undefined",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Define o progresso no modo `progress`.\nNo modo `spinner`, esta prop não tem efeito.\nValores não numéricos usam `0`; valores fora de `0`–`100` são limitados ao intervalo."
            },
            {
              "kind": "field",
              "name": "completion",
              "type": {
                "text": "LoadingCompletionBehavior"
              },
              "default": "'persist'",
              "description": "Define o comportamento quando o progresso atinge 100. Valores inválidos usam `persist`.\nNo modo `spinner`, esta prop não tem efeito.",
              "parsedType": {
                "text": "'reset' | 'persist' | 'hide'"
              }
            },
            {
              "kind": "field",
              "name": "cancelable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o botão de cancelamento será exibido.\nAo pressionar o botão, o evento `brLoadingCancel` é emitido.\nNo modo `spinner`, esta prop não tem efeito."
            },
            {
              "kind": "field",
              "name": "cancelLabel",
              "type": {
                "text": "string"
              },
              "default": "'Cancelar'",
              "description": "Define o texto do botão de cancelamento.\nNo modo `spinner`, esta prop não tem efeito."
            },
            {
              "kind": "method",
              "name": "handleCompletion",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  },
                  "description": "Novo valor recebido."
                }
              ],
              "description": "Reage a mudanças em `value` no modo `progress`."
            },
            {
              "kind": "method",
              "name": "handleModeChange",
              "description": "Reage a mudanças em `mode` e atualiza o estado lógico de atividade."
            },
            {
              "kind": "method",
              "name": "setValue",
              "return": {
                "type": {
                  "text": "Promise<{ value: number }>"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  },
                  "description": "Valor desejado."
                }
              ],
              "description": "Define o valor do progresso."
            },
            {
              "kind": "method",
              "name": "incrementValue",
              "return": {
                "type": {
                  "text": "Promise<{ value: number }>"
                }
              },
              "parameters": [
                {
                  "name": "step",
                  "default": "1",
                  "description": "Incremento aplicado."
                }
              ],
              "description": "Soma um valor ao progresso atual."
            },
            {
              "kind": "method",
              "name": "complete",
              "return": {
                "type": {
                  "text": "Promise<{ value: number }>"
                }
              },
              "description": "Define o progresso como concluído."
            },
            {
              "kind": "method",
              "name": "reset",
              "return": {
                "type": {
                  "text": "Promise<{ value: number }>"
                }
              },
              "description": "Reinicia o progresso e exibe o componente."
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": "Promise<{ visible: boolean }>"
                }
              },
              "description": "Exibe o componente."
            },
            {
              "kind": "method",
              "name": "hide",
              "return": {
                "type": {
                  "text": "Promise<{ visible: boolean }>"
                }
              },
              "description": "Oculta o componente."
            },
            {
              "kind": "field",
              "name": "progressAnimationFrameId",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "description": "Referência da animação ativa do texto de progresso.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "reducedMotionMediaQuery",
              "type": {
                "text": "MediaQueryList | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "isIndeterminateActive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Último estado lógico de atividade no modo `spinner`."
            },
            {
              "kind": "field",
              "name": "normalizedValue",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna o progresso no intervalo de 0 a 100.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "dimension",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna a dimensão do SVG.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "strokeWidth",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna a espessura do traço do círculo.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "percentageFontSize",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "description": "Retorna o tamanho da fonte do percentual no modo `progress`.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "type": {
                "text": "LoadingSize"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveLabelPosition",
              "type": {
                "text": "LoadingLabelPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMode",
              "type": {
                "text": "LoadingMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'spinner' | 'progress'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveSpeed",
              "type": {
                "text": "LoadingSpeed"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'slow' | 'normal' | 'fast'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveCompletion",
              "type": {
                "text": "LoadingCompletionBehavior"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'reset' | 'persist' | 'hide'"
              }
            },
            {
              "kind": "field",
              "name": "center",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna a coordenada central do SVG.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "radius",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna o raio útil do círculo.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "circumference",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna a circunferência do círculo.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "progressOffset",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Retorna o deslocamento do traço conforme o progresso.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleCancelClick",
              "privacy": "private",
              "description": "Trata o clique no botão de cancelamento."
            },
            {
              "kind": "method",
              "name": "applyCompletionBehavior",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  },
                  "description": "Valor atual do progresso."
                }
              ],
              "description": "Aplica a ação configurada ao atingir 100% no modo `progress`."
            },
            {
              "kind": "method",
              "name": "initializeProgressDisplay",
              "privacy": "private",
              "description": "Inicializa o valor exibido no texto de progresso."
            },
            {
              "kind": "method",
              "name": "cleanupProgressResources",
              "privacy": "private",
              "description": "Libera recursos usados pela animação de progresso."
            },
            {
              "kind": "method",
              "name": "syncIndeterminateActiveState",
              "privacy": "private",
              "description": "Emite mudança de estado lógico para o modo `spinner` quando necessário."
            },
            {
              "kind": "method",
              "name": "syncDisplayedProgress",
              "privacy": "private",
              "parameters": [
                {
                  "name": "targetValue",
                  "type": {
                    "text": "number"
                  },
                  "description": "Valor final do progresso normalizado."
                }
              ],
              "description": "Sincroniza o texto de percentual com a transição visual do círculo."
            },
            {
              "kind": "method",
              "name": "easeProgress",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "time",
                  "type": {
                    "text": "number"
                  },
                  "description": "Progresso normalizado da animação (0 a 1)."
                }
              ],
              "description": "Interpolação para suavizar a animação do percentual."
            },
            {
              "kind": "method",
              "name": "stopProgressAnimation",
              "privacy": "private",
              "description": "Cancela a animação de percentual em andamento."
            },
            {
              "kind": "field",
              "name": "onReducedMotionChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onReducedMotionOverrideChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "prefersReducedMotion",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "setVisibility",
              "privacy": "private",
              "parameters": [
                {
                  "name": "visible",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Define se o componente ficará visível."
                }
              ],
              "description": "Atualiza a visibilidade e emite o evento correspondente."
            },
            {
              "kind": "method",
              "name": "normalizeInputValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                }
              ],
              "description": "Normaliza um valor arbitrário de progresso para o intervalo de 0 a 100.\nValores inválidos (incluindo string vazia e NaN) são convertidos para 0.\nTambém sincroniza `this.value` internamente quando necessário."
            },
            {
              "kind": "method",
              "name": "toValidProgressValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Monta o mapa de classes CSS do host interno."
            },
            {
              "kind": "method",
              "name": "renderIndeterminate",
              "privacy": "private",
              "description": "Renderiza o modo `spinner`.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderSpinnerWithLabelPosition",
              "privacy": "private",
              "parameters": [
                {
                  "name": "duration",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Renderiza spinner com label em qualquer posição."
            },
            {
              "kind": "method",
              "name": "renderDeterminate",
              "privacy": "private",
              "description": "Renderiza o modo `progress`.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente conforme o modo atual.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "label-position",
              "fieldName": "labelPosition",
              "default": "'bottom'",
              "description": "Define a posição da label em relação ao loading. Valores inválidos usam `bottom`.",
              "type": {
                "text": "LoadingLabelPosition"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "mode",
              "fieldName": "mode",
              "default": "'spinner'",
              "description": "Define o modo de exibição do componente. Valores inválidos usam `spinner`.",
              "type": {
                "text": "LoadingMode"
              },
              "parsedType": {
                "text": "'spinner' | 'progress'"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "default": "'medium'",
              "description": "Define o tamanho visual nos modos `spinner` e `progress`.",
              "type": {
                "text": "LoadingSize"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "description": "Densidade visual. Quando informada, tem precedência sobre `size`.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "type": {
                "text": "LoadingSize"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "compact",
              "fieldName": "compact",
              "default": "false",
              "description": "Remove o espaçamento externo e oculta visualmente o rótulo, mantendo-o\ndisponível para tecnologias assistivas. Use em áreas compactas, como\ncontroles de paginação ou campos de formulário.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "speed",
              "fieldName": "speed",
              "default": "'normal'",
              "description": "Define a velocidade da animação/transição. Valores inválidos usam `normal`.",
              "type": {
                "text": "LoadingSpeed"
              },
              "parsedType": {
                "text": "'slow' | 'normal' | 'fast'"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "default": "undefined",
              "description": "Define o rótulo exibido no modo `spinner`.\nNo modo `progress`, esta prop não tem efeito.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "0",
              "description": "Define o progresso no modo `progress`.\nNo modo `spinner`, esta prop não tem efeito.\nValores não numéricos usam `0`; valores fora de `0`–`100` são limitados ao intervalo."
            },
            {
              "name": "completion",
              "fieldName": "completion",
              "default": "'persist'",
              "description": "Define o comportamento quando o progresso atinge 100. Valores inválidos usam `persist`.\nNo modo `spinner`, esta prop não tem efeito.",
              "type": {
                "text": "LoadingCompletionBehavior"
              },
              "parsedType": {
                "text": "'reset' | 'persist' | 'hide'"
              }
            },
            {
              "name": "cancelable",
              "fieldName": "cancelable",
              "default": "false",
              "description": "Define se o botão de cancelamento será exibido.\nAo pressionar o botão, o evento `brLoadingCancel` é emitido.\nNo modo `spinner`, esta prop não tem efeito."
            },
            {
              "name": "cancel-label",
              "fieldName": "cancelLabel",
              "default": "'Cancelar'",
              "description": "Define o texto do botão de cancelamento.\nNo modo `spinner`, esta prop não tem efeito."
            }
          ],
          "tagName": "br-loading",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do loading."
            },
            {
              "name": "wrapper",
              "description": "Wrapper do conteúdo do spinner/progress."
            },
            {
              "name": "svg",
              "description": "Elemento SVG principal do loading."
            },
            {
              "name": "percentage",
              "description": "Texto de percentual no modo `progress`."
            },
            {
              "name": "label-wrapper",
              "description": "Wrapper do rótulo no modo `spinner`."
            },
            {
              "name": "cancel-button",
              "description": "Botão de cancelamento no modo `progress` cancelável."
            }
          ],
          "events": [
            {
              "name": "brLoadingChange",
              "type": {
                "text": "EventEmitter<LoadingChangeDetail>"
              },
              "description": "Notifica mudança de progresso no modo `progress`."
            },
            {
              "name": "brLoadingComplete",
              "type": {
                "text": "EventEmitter<LoadingCompleteDetail>"
              },
              "description": "Notifica conclusão do progresso no modo `progress`."
            },
            {
              "name": "brLoadingReset",
              "type": {
                "text": "EventEmitter<LoadingValueDetail>"
              },
              "description": "Notifica reinício do progresso no modo `progress`."
            },
            {
              "name": "brLoadingCancel",
              "type": {
                "text": "EventEmitter<LoadingValueDetail>"
              },
              "description": "Notifica clique no botão de cancelamento no modo `progress`.\nEste evento não altera o progresso automaticamente.\nA aplicação consumidora define a ação após o cancelamento (ex.: limpar ou ocultar)."
            },
            {
              "name": "brIndeterminateStateChange",
              "type": {
                "text": "EventEmitter<LoadingIndeterminateStateDetail>"
              },
              "description": "Notifica mudança do estado lógico no modo `spinner`."
            },
            {
              "name": "brDidShow",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Notifica que o componente foi exibido."
            },
            {
              "name": "brLoadingShow",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o loading é exibido."
            },
            {
              "name": "brDidHide",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Notifica que o componente foi ocultado."
            },
            {
              "name": "brLoadingHide",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o loading é ocultado."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Progresso"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Loading",
          "declaration": {
            "name": "Loading",
            "module": "components/loading.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-loading",
          "declaration": {
            "name": "Loading",
            "module": "components/loading.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/magic-button.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-magic-button` é o botão de ação flutuante (FAB) que destaca a ação primária ou mais frequente da tela.\n\nPode ser exibido apenas com ícone (formato circular) ou expandido com texto descritivo.\n\n```html\n<br-magic-button icon=\"fa6-solid:plus\" aria-label=\"Novo item\"></br-magic-button>\n<br-magic-button icon=\"fa6-solid:plus\">Criar documento</br-magic-button>\n```\n\n### Quando usar\n\n- Ação principal e dominante da tela em dispositivos móveis ou interfaces focadas em uma tarefa única.\n\n### Quando evitar\n\n- Múltiplas ações de mesma importância: use `br-button`.\n- Ações secundárias ou destrutivas.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/magic-button?tab=designer).",
          "name": "MagicButton",
          "cssParts": [
            {
              "description": "Wrapper principal do magic-button.",
              "name": "container"
            },
            {
              "description": "Elemento button interno.",
              "name": "button"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo interno do botão (texto ou ícone).",
              "name": "default"
            },
            {
              "description": "Ícone customizado do botão. Quando utilizado, a prop `icon` é ignorada.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMagicButtonElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Texto do rótulo do botão.\nUtilizado como conteúdo principal quando presente."
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Ícone como identificador Iconify (ex.: `fa6-solid:star`) ou nome simples (ex.: `question`,\nresolvido como `fa6-solid:question` no registro SVG local), renderizado pelo `br-icon`.\nPara classes CSS (ex.: Font Awesome) ou SVGs personalizados, use o slot `icon`, a forma preferida.\nUso descontinuado: classes CSS nesta prop (ex.: `fas fa-star`) não são exibidas no Shadow DOM\ne geram aviso."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "circle",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o botão terá formato circular.\nAplica contorno arredondado completo quando `true` e não houver `label`."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Gera o mapeamento de classes CSS baseado nas propriedades de densidade."
            },
            {
              "kind": "method",
              "name": "getCircleClass",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Gera o mapeamento de classes CSS para aplicar o estilo de botão circular."
            },
            {
              "kind": "method",
              "name": "getLabelIconClass",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna a classe de CSS para posicionar ícone e label juntos."
            },
            {
              "kind": "method",
              "name": "getIconName",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Mantém a API legada `icon=\"question\"` sem transformar o valor em uma\nrequisição implícita ao Iconify. Identificadores sem coleção usam o\nregistro local Font Awesome 6; valores já qualificados continuam intactos."
            },
            {
              "kind": "method",
              "name": "renderIconFallback",
              "privacy": "private",
              "description": "Fallback do slot `icon`: somente identificadores Iconify; classes CSS geram aviso."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente."
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "Texto do rótulo do botão.\nUtilizado como conteúdo principal quando presente."
            },
            {
              "name": "icon",
              "fieldName": "icon",
              "default": "''",
              "description": "Ícone como identificador Iconify (ex.: `fa6-solid:star`) ou nome simples (ex.: `question`,\nresolvido como `fa6-solid:question` no registro SVG local), renderizado pelo `br-icon`.\nPara classes CSS (ex.: Font Awesome) ou SVGs personalizados, use o slot `icon`, a forma preferida.\nUso descontinuado: classes CSS nesta prop (ex.: `fas fa-star`) não são exibidas no Shadow DOM\ne geram aviso."
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "circle",
              "fieldName": "circle",
              "default": "false",
              "description": "Define se o botão terá formato circular.\nAplica contorno arredondado completo quando `true` e não houver `label`."
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "''",
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            }
          ],
          "tagName": "br-magic-button",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do magic-button."
            },
            {
              "name": "button",
              "description": "Elemento button interno."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Ações",
          "categories": [
            "Ações"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MagicButton",
          "declaration": {
            "name": "MagicButton",
            "module": "components/magic-button.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-magic-button",
          "declaration": {
            "name": "MagicButton",
            "module": "components/magic-button.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-menu` organiza a navegação lateral da aplicação em gaveta retrátil ou barra fixa.\n\nUse `is-open` para controlar a visibilidade, ou chame os métodos `open()`, `close()` e `toggle()`. Estruture a navegação com os subcomponentes `br-menu-header`, `br-menu-group`, `br-menu-list` e `br-menu-item`.\n\n```html\n<br-menu id=\"menu-principal\">\n  <div slot=\"header\">\n    <br-menu-header title-text=\"Menu Principal\"></br-menu-header>\n  </div>\n  <br-menu-list>\n    <br-menu-item>\n      <br-menu-link href=\"/inicio\">Início</br-menu-link>\n    </br-menu-item>\n    <br-menu-item>\n      <br-menu-link href=\"/servicos\">Serviços</br-menu-link>\n    </br-menu-item>\n  </br-menu-list>\n</br-menu>\n```\n\n### Quando usar\n\n- Menus com hierarquia de seções, grupos ou múltiplos níveis de páginas.\n- Navegação lateral que precisa ser recolhida em telas móveis com fechamento por máscara (`br-scrim`).\n\n### Quando evitar\n\n- Poucos itens que cabem diretamente no cabeçalho: use `br-header`.\n- Alternar visões na mesma página: use `br-tab`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/menu?tab=designer).",
          "name": "Menu",
          "cssParts": [
            {
              "description": "Parte para o contêiner principal do rodapé do menu, agrupando logos, links, redes sociais e informações.",
              "name": "footer"
            },
            {
              "description": "Parte para a área de logotipos de parceiros no rodapé.",
              "name": "logo"
            },
            {
              "description": "Parte para links úteis ou navegação secundária no rodapé.",
              "name": "link"
            },
            {
              "description": "Parte para ícones de redes sociais no rodapé.",
              "name": "social"
            },
            {
              "description": "Parte para informações adicionais, como licença ou direitos autorais.",
              "name": "info"
            },
            {
              "description": "Parte para o container externo que envolve o menu inteiro.",
              "name": "container"
            },
            {
              "description": "Parte para o painel de navegação do menu (o menu propriamente dito).",
              "name": "panel"
            },
            {
              "description": "Parte principal onde ficam os links e grupos de navegação.",
              "name": "body"
            },
            {
              "description": "Botão de acionamento do menu (hambúrguer ou contextual).",
              "name": "trigger"
            },
            {
              "description": "Botão de voltar do menu de navegação drill-down.",
              "name": "back-btn"
            }
          ],
          "slots": [
            {
              "description": "Slot para o conteúdo principal do menu (menu-list, menu-group e menu-item).",
              "name": "default"
            },
            {
              "description": "Slot para o cabeçalho do menu, exibido apenas em modo não contextual e não push.",
              "name": "header"
            },
            {
              "description": "Slot para logotipos de parceiros no rodapé.",
              "name": "logo"
            },
            {
              "description": "Slot para links externos no rodapé (use br-menu-link).",
              "name": "link"
            },
            {
              "description": "Slot para ícones de redes sociais no rodapé.",
              "name": "social"
            },
            {
              "description": "Slot para informações adicionais no rodapé.",
              "name": "info"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "currentLevel",
              "type": {
                "text": "number"
              },
              "default": "0"
            },
            {
              "kind": "field",
              "name": "expandedDropMenus",
              "type": {
                "text": "{ [key: string]: boolean }"
              },
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "isInSubmenu",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "navigationStack",
              "type": {
                "text": "Array<{ element: HTMLElement; label: string; id: string }>"
              },
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "breakpoints",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Classes de coluna do grid GovBR para definir a largura responsiva do painel sobreposto.\nExemplo: `col-sm-4 col-lg-3`. Os modos `push`, `fixed` e `contextual` não usam esta propriedade.\nQuando vazia, o painel ocupa a largura disponível."
            },
            {
              "kind": "field",
              "name": "push",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o menu deve usar comportamento push.\nQuando ativado, o menu permanece fixo na lateral e empurra o conteúdo principal."
            },
            {
              "kind": "field",
              "name": "fixed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Mantém o menu como uma barra lateral fixa quando estiver aberto.\nO menu continua podendo ser ocultado alterando `isOpen` ou chamando `close()`.\nA largura padrão é `20rem`, limitada à viewport, e pode ser sobrescrita\npela variável CSS `--menu-fixed-width`."
            },
            {
              "kind": "field",
              "name": "isOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o painel do menu está aberto/visível.\nEm modo push, esta propriedade permite controle externo da visibilidade.\nO nome permanece porque o método público `open()` já ocupa a propriedade `open` no host."
            },
            {
              "kind": "field",
              "name": "contextual",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o menu deve usar comportamento contextual (aparece na parte inferior).\nQuando ativado, o menu é posicionado na parte inferior da tela em dispositivos móveis."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "MenuDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade dos itens do menu, alterando o espaçamento interno.\n- `small` (densidade alta): itens mais compactos\n- `medium` (padrão): equilíbrio entre economia de espaço e separação\n- `large` (densidade baixa): maior espaçamento (recomendado em touch)\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "socialTitle",
              "type": {
                "text": "string"
              },
              "default": "'Redes Sociais'",
              "description": "Título da seção de redes sociais exibida no rodapé do menu.\nUtilize esta propriedade para personalizar o texto que aparece acima dos ícones sociais."
            },
            {
              "kind": "field",
              "name": "contextualLabel",
              "type": {
                "text": "string"
              },
              "default": "'Menu Contextual'",
              "description": "Rótulo do botão trigger do menu contextual.\nExibido apenas em modo contextual e em telas menores (mobile)."
            },
            {
              "kind": "method",
              "name": "onOpenChange",
              "parameters": [
                {
                  "name": "isOpening",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onMenuItemClick",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onKeyDown",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onDocumentClick",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ],
              "description": "Escuta cliques no documento para alternar o estado do menu automaticamente\nquando um elemento com o atributo `data-toggle=\"menu\"` é clicado.\nUtiliza o caminho completo do evento (composedPath) para permitir o funcionamento\ncorreto quando o botão acionador está dentro de outros componentes com Shadow DOM (ex: br-header)."
            },
            {
              "kind": "method",
              "name": "onNavigateToSubmenu",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent<{ element: HTMLElement; label: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onFolderToggled",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent<boolean>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onMenuToggle",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "CustomEvent<{ target?: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isEventTargetInsideAnyMenu",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onScrimClose",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onMenuGoBack"
            },
            {
              "kind": "method",
              "name": "open",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre o painel do menu.\nPode ser chamado externamente: `menuEl.open()`."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Fecha o painel do menu.\nPode ser chamado externamente: `menuEl.close()`."
            },
            {
              "kind": "method",
              "name": "toggle",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Alterna o estado do painel do menu (abre se fechado, fecha se aberto).\nPode ser chamado externamente: `menuEl.toggle()`."
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private",
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "previouslyFocusedElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "rafIds",
              "type": {
                "text": "number[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "scrimRef",
              "type": {
                "text": "HTMLBrScrimElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "nativeDialogRef",
              "type": {
                "text": "HTMLDialogElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "activeMenuItem",
              "type": {
                "text": "(HTMLElement & { active: boolean }) | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "HTMLElement & { active: boolean }"
              }
            },
            {
              "kind": "method",
              "name": "getOwnedMenuElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "selector",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "usesNativeDialog",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "syncNativeDialog",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNativeCancel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "ensureSingleActiveItem",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "toggleDropMenu",
              "privacy": "private",
              "parameters": [
                {
                  "name": "itemId",
                  "type": {
                    "text": "string"
                  },
                  "description": "Identificador único do menu drop-down a ser alternado."
                }
              ],
              "description": "Alterna o estado expandido de um menu drop-down no modo acordeão.\n\nEste método recebe o identificador único (`itemId`) de um menu do tipo drop-down (nível 0)\ne inverte o seu estado de expansão dentro do objeto `expandedDropMenus`.\n\nSe o menu estiver atualmente expandido, ele será recolhido; se estiver recolhido, será expandido.\nO spread operator (`...this.expandedDropMenus`) garante que os estados dos outros menus sejam preservados."
            },
            {
              "kind": "method",
              "name": "collapseOtherFolders",
              "privacy": "private",
              "parameters": [
                {
                  "name": "activeItemId",
                  "type": {
                    "text": "string"
                  },
                  "description": "ID do folder que deve permanecer expandido"
                }
              ],
              "description": "Recolhe todos os folders do nível 0, exceto o especificado.\nGarante que apenas um folder possa estar expandido por vez no comportamento acordeão."
            },
            {
              "kind": "method",
              "name": "navigateToLevel",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "{ element: HTMLElement; label: string; id: string }"
                  },
                  "description": "Objeto contendo o elemento do menu, seu rótulo e identificador único."
                }
              ],
              "description": "Navega para um nível específico do menu (drill-down).\n\nEste método é chamado quando o usuário interage com um item de menu de nível 2 ou superior,\nou seja, quando o comportamento esperado é de drill-down (aprofundamento em submenus).\n\nFuncionamento:\n1. Adiciona o item atual à pilha de navegação (`navigationStack`), permitindo que o usuário volte para níveis anteriores.\n2. Obtém o nível do menu a partir do atributo `menu-level` do elemento clicado.\n3. Atualiza o estado `currentLevel` para refletir o novo nível de profundidade (sempre um nível abaixo do atual).\n4. Define `inSubmenu` como `true`, indicando que o usuário está navegando em um submenu.\n5. Oculta todos os itens do menu, exceto o submenu selecionado, para garantir foco e clareza na navegação.\n6. Marca o elemento ativo como \"drill active\" para controle visual e de acessibilidade."
            },
            {
              "kind": "method",
              "name": "focusFirstChildOfList",
              "privacy": "private",
              "parameters": [
                {
                  "name": "listEl",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applyOpenState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextOpen",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "resetNavigation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isVisibleElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "el is HTMLElement"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "Element | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getTopLevelTargets",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "collectTopLevelGroupTargets",
              "privacy": "private",
              "parameters": [
                {
                  "name": "group",
                  "type": {
                    "text": "Element"
                  }
                },
                {
                  "name": "targets",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getAllVisibleTargets",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "description": "Obtém todos os elementos navegáveis visíveis no menu, incluindo itens dentro de agrupamentos expandidos.\nUtilizado para navegação global por setas no modo contextual."
            },
            {
              "kind": "method",
              "name": "collectVisibleTargetsFrom",
              "privacy": "private",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "Element"
                  }
                },
                {
                  "name": "targets",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                }
              ],
              "description": "Coleta recursivamente todos os targets visíveis de um elemento e seus descendentes.\nRespeita o estado expandido/recolhido dos agrupamentos."
            },
            {
              "kind": "method",
              "name": "getScopedTargets",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "deepActive",
                  "type": {
                    "text": "Element"
                  }
                }
              ],
              "description": "Obtém targets com escopo limitado ao menu-list mais próximo (usado em drill-down)."
            },
            {
              "kind": "method",
              "name": "isNodeWithinHost",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "node",
                  "type": {
                    "text": "Element"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "findClosestMenuListFrom",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              },
              "parameters": [
                {
                  "name": "node",
                  "type": {
                    "text": "Element"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getTargetsForMenuList",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "listEl",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusFirstVisibleTarget",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "collectDrillDownTargets",
              "privacy": "private",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "targets",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                }
              ],
              "description": "Coleta recursivamente os elementos focáveis no modo drill-down.\nRespeita a ordem do DOM e a hierarquia dos elementos.\nApenas coleta elementos que não têm o atributo 'hidden'."
            },
            {
              "kind": "method",
              "name": "getFocusableElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "description": "Obtém todos os elementos focáveis dentro do menu que estão visíveis.\nInclui botões, links e outros elementos interativos.\nNo modo contextual, inclui itens dentro de agrupamentos expandidos."
            },
            {
              "kind": "method",
              "name": "hideAllExcept",
              "privacy": "private",
              "parameters": [
                {
                  "name": "activeElement",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "O elemento <br-menu-list> ou <br-menu-item> que representa o submenu/item atualmente ativo."
                }
              ],
              "description": "Oculta todos os elementos do menu, exceto o elemento ativo e sua cadeia de ancestrais,\ngarantindo que apenas o submenu relevante esteja visível durante a navegação drill-down.\n\nFuncionamento detalhado:\n1. Oculta todos os elementos <br-menu-list> e <br-menu-item> do menu, aplicando o atributo 'hidden'.\n   Isso garante que nada além do caminho de navegação atual fique visível.\n2. Remove o atributo 'drill-ancestor' de quaisquer listas marcadas anteriormente, limpando o estado visual.\n3. Remove o atributo 'hidden' do elemento ativo (o submenu ou item selecionado), tornando-o visível.\n4. Percorre a cadeia de ancestrais do elemento ativo:\n   - Para cada ancestral do tipo <br-menu-list> ou <br-menu-item>, remove o 'hidden' para garantir visibilidade.\n   - Para ancestrais <br-menu-list> (exceto o próprio ativo), adiciona o atributo 'drill-ancestor' para permitir\n     estilização diferenciada (por exemplo, ocultar cabeçalhos mas manter o conteúdo visível).\n   - Interrompe o loop ao chegar no elemento host do componente.\n5. Exibe todos os filhos diretos do elemento ativo que sejam <br-menu-list> ou <br-menu-item>,\n   removendo o 'hidden' para mostrar as opções do submenu.\n6. Exibe também filhos que estejam dentro de um <ul> (estrutura comum em subníveis),\n   garantindo que todos os itens relevantes do submenu estejam visíveis.\n\nEste método é fundamental para a experiência de navegação drill-down, pois controla\nexatamente quais partes do menu são exibidas ao usuário em cada etapa da navegação."
            },
            {
              "kind": "method",
              "name": "getDirectMenuChildren",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "showAllMenuItems",
              "privacy": "private",
              "description": "Exibe todos os itens e listas do menu, removendo o atributo 'hidden' de cada um.\n\nEsta função é utilizada para restaurar a visualização completa do menu,\nnormalmente após uma navegação drill-down ou ao retornar ao nível raiz.\n\nO método percorre todos os elementos <br-menu-list> e <br-menu-item> dentro do componente\ne garante que estejam visíveis, removendo o atributo 'hidden' que pode ter sido\nadicionado durante a navegação entre submenus."
            },
            {
              "kind": "method",
              "name": "setDrillActive",
              "privacy": "private",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "Elemento <br-menu-list> a ser marcado/desmarcado"
                },
                {
                  "name": "active",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Boolean indicando se o elemento deve ser marcado como ativo"
                }
              ],
              "description": "Marca ou desmarca um elemento <br-menu-list> como ativo no contexto de navegação drill-down.\n\nQuando 'active' é true, adiciona o atributo 'drill-active' ao elemento, indicando que\nele está no foco da navegação. Quando 'active' é false, remove esse atributo.\n\nEsse atributo pode ser utilizado para aplicar estilos visuais ou lógica condicional\ndurante a navegação entre níveis do menu."
            },
            {
              "kind": "method",
              "name": "clearAllDrillMarkers",
              "privacy": "private",
              "description": "Remove todos os marcadores de navegação drill-down do menu.\n\nEsta função percorre todos os elementos <br-menu-list> que possuem os atributos\n'drill-active' ou 'drill-ancestor' e remove esses atributos. Isso é necessário\npara garantir que, ao retornar ao nível raiz ou reiniciar a navegação, nenhum\nmarcador visual ou lógico de navegação anterior permaneça ativo."
            },
            {
              "kind": "method",
              "name": "goBack",
              "privacy": "private",
              "description": "Realiza a navegação de retorno (voltar) em menus do tipo drill-down.\n\nEsta função é chamada quando o usuário deseja voltar um nível na navegação do menu.\nEla utiliza uma pilha de navegação (navigationStack) para controlar o histórico de navegação.\n\n- Se houver elementos na pilha, remove o elemento do topo (nível atual) e desmarca como ativo.\n- Se, após a remoção, a pilha estiver vazia, significa que o usuário retornou ao nível raiz:\n  - Restaura o estado inicial do menu, mostrando todos os itens e limpando marcadores de navegação.\n- Caso contrário, ativa o elemento do nível anterior e oculta os demais, mantendo o contexto do drill-down."
            },
            {
              "kind": "field",
              "name": "onToggleClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onGoBackClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hasSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Verifica se um slot específico possui conteúdo."
            },
            {
              "kind": "method",
              "name": "getEffectiveBreakpoints",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getMenuPanelClasses",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna as classes CSS para o painel do menu.\nAplica breakpoints apenas quando o menu NÃO está no modo push ou contextual."
            },
            {
              "kind": "method",
              "name": "renderScrim",
              "privacy": "private",
              "description": "Renderiza o scrim do menu (backdrop)"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "breakpoints",
              "fieldName": "breakpoints",
              "default": "''",
              "description": "Classes de coluna do grid GovBR para definir a largura responsiva do painel sobreposto.\nExemplo: `col-sm-4 col-lg-3`. Os modos `push`, `fixed` e `contextual` não usam esta propriedade.\nQuando vazia, o painel ocupa a largura disponível.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "push",
              "fieldName": "push",
              "default": "false",
              "description": "Define se o menu deve usar comportamento push.\nQuando ativado, o menu permanece fixo na lateral e empurra o conteúdo principal.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "fixed",
              "fieldName": "fixed",
              "default": "false",
              "description": "Mantém o menu como uma barra lateral fixa quando estiver aberto.\nO menu continua podendo ser ocultado alterando `isOpen` ou chamando `close()`.\nA largura padrão é `20rem`, limitada à viewport, e pode ser sobrescrita\npela variável CSS `--menu-fixed-width`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-open",
              "fieldName": "isOpen",
              "default": "false",
              "description": "Define se o painel do menu está aberto/visível.\nEm modo push, esta propriedade permite controle externo da visibilidade.\nO nome permanece porque o método público `open()` já ocupa a propriedade `open` no host.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "contextual",
              "fieldName": "contextual",
              "default": "false",
              "description": "Define se o menu deve usar comportamento contextual (aparece na parte inferior).\nQuando ativado, o menu é posicionado na parte inferior da tela em dispositivos móveis.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade dos itens do menu, alterando o espaçamento interno.\n- `small` (densidade alta): itens mais compactos\n- `medium` (padrão): equilíbrio entre economia de espaço e separação\n- `large` (densidade baixa): maior espaçamento (recomendado em touch)\nValores inválidos usam `medium`.",
              "type": {
                "text": "MenuDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "social-title",
              "fieldName": "socialTitle",
              "default": "'Redes Sociais'",
              "description": "Título da seção de redes sociais exibida no rodapé do menu.\nUtilize esta propriedade para personalizar o texto que aparece acima dos ícones sociais.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "contextual-label",
              "fieldName": "contextualLabel",
              "default": "'Menu Contextual'",
              "description": "Rótulo do botão trigger do menu contextual.\nExibido apenas em modo contextual e em telas menores (mobile).",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu",
          "status": "stable",
          "csspart": [
            {
              "name": "footer",
              "description": "Parte para o contêiner principal do rodapé do menu, agrupando logos, links, redes sociais e informações."
            },
            {
              "name": "logo",
              "description": "Parte para a área de logotipos de parceiros no rodapé."
            },
            {
              "name": "link",
              "description": "Parte para links úteis ou navegação secundária no rodapé."
            },
            {
              "name": "social",
              "description": "Parte para ícones de redes sociais no rodapé."
            },
            {
              "name": "info",
              "description": "Parte para informações adicionais, como licença ou direitos autorais."
            },
            {
              "name": "container",
              "description": "Parte para o container externo que envolve o menu inteiro."
            },
            {
              "name": "panel",
              "description": "Parte para o painel de navegação do menu (o menu propriamente dito)."
            },
            {
              "name": "body",
              "description": "Parte principal onde ficam os links e grupos de navegação."
            },
            {
              "name": "trigger",
              "description": "Botão de acionamento do menu (hambúrguer ou contextual)."
            },
            {
              "name": "back-btn",
              "description": "Botão de voltar do menu de navegação drill-down."
            }
          ],
          "events": [
            {
              "name": "brMenuStateChange",
              "type": {
                "text": "EventEmitter<{ isOpen: boolean }>"
              },
              "description": "Evento emitido quando o menu abre ou fecha.",
              "deprecated": "Use `brMenuOpenChange`."
            },
            {
              "name": "brMenuOpenChange",
              "type": {
                "text": "EventEmitter<MenuOpenChangeDetail>"
              },
              "description": "Evento emitido quando o menu abre ou fecha.\n`detail.open` contém o estado concluído e `detail.sourceId` identifica a instância pelo `id` ou `customId`."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Estrutura"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Menu",
          "declaration": {
            "name": "Menu",
            "module": "components/menu.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu",
          "declaration": {
            "name": "Menu",
            "module": "components/menu.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-group/menu-group.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Agrupa itens de menu sob um título ou categoria comum. Use dentro do `br-menu`.\n\nDefina o título do grupo pelo slot `label` ou pela propriedade `label`. Insira a lista de itens (`br-menu-list`) no slot padrão.",
          "name": "MenuGroup",
          "cssParts": [
            {
              "description": "Contêiner do agrupamento.",
              "name": "container"
            },
            {
              "description": "Rótulo visual do agrupamento.",
              "name": "label"
            },
            {
              "description": "Contêiner dos itens agrupados.",
              "name": "list"
            }
          ],
          "slots": [
            {
              "description": "Itens do grupo.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo visual do grupo. O elemento não entra na ordem de foco.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe uma linha separadora antes do grupo."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "description": "Rótulo visual do grupo. O elemento não entra na ordem de foco.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "divider",
              "fieldName": "divider",
              "default": "false",
              "description": "Exibe uma linha separadora antes do grupo."
            }
          ],
          "tagName": "br-menu-group",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner do agrupamento."
            },
            {
              "name": "label",
              "description": "Rótulo visual do agrupamento."
            },
            {
              "name": "list",
              "description": "Contêiner dos itens agrupados."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuGroup",
          "declaration": {
            "name": "MenuGroup",
            "module": "components/menu-group/menu-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-group",
          "declaration": {
            "name": "MenuGroup",
            "module": "components/menu-group/menu-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-header/menu-header.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Cabeçalho do menu lateral com título e botão de fechar. Use no slot `header` do `br-menu`.\n\nDefina o título da área em `title-text`. O botão de fechar emite o fechamento para o `br-menu` pai.",
          "name": "MenuHeader",
          "cssParts": [
            {
              "description": "Wrapper do cabeçalho do menu.",
              "name": "container"
            },
            {
              "description": "Área do título com logo e assinatura.",
              "name": "title"
            },
            {
              "description": "Área do botão de fechar.",
              "name": "close"
            },
            {
              "description": "Elemento de imagem do logotipo (se renderizado a partir de logoSrc).",
              "name": "logo"
            },
            {
              "description": "Elemento de texto contendo a assinatura do sistema.",
              "name": "signature"
            }
          ],
          "slots": [
            {
              "description": "Slot para logo personalizado no cabeçalho.",
              "name": "logo"
            },
            {
              "description": "Slot para a assinatura personalizada do sistema.",
              "name": "signature"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuHeaderElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "logoSrc",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL da imagem do logo no cabeçalho do menu",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "logoAlt",
              "type": {
                "text": "string"
              },
              "default": "'Logo'",
              "description": "Texto alternativo para a imagem do logo"
            },
            {
              "kind": "field",
              "name": "signature",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto de identificação do site ou sistema",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "handleCloseClick",
              "privacy": "private",
              "description": "Manipula o clique no botão de fechar"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "logo-src",
              "fieldName": "logoSrc",
              "description": "URL da imagem do logo no cabeçalho do menu",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "logo-alt",
              "fieldName": "logoAlt",
              "default": "'Logo'",
              "description": "Texto alternativo para a imagem do logo"
            },
            {
              "name": "signature",
              "fieldName": "signature",
              "description": "Texto de identificação do site ou sistema",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu-header",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper do cabeçalho do menu."
            },
            {
              "name": "title",
              "description": "Área do título com logo e assinatura."
            },
            {
              "name": "close",
              "description": "Área do botão de fechar."
            },
            {
              "name": "logo",
              "description": "Elemento de imagem do logotipo (se renderizado a partir de logoSrc)."
            },
            {
              "name": "signature",
              "description": "Elemento de texto contendo a assinatura do sistema."
            }
          ],
          "events": [
            {
              "name": "brMenuToggle",
              "type": {
                "text": "EventEmitter<{ target?: string }>"
              },
              "description": "Evento emitido para alternar o estado do menu"
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuHeader",
          "declaration": {
            "name": "MenuHeader",
            "module": "components/menu-header/menu-header.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-header",
          "declaration": {
            "name": "MenuHeader",
            "module": "components/menu-header/menu-header.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-info/menu-info.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Exibe informações de apoio (versão do sistema, dados do usuário ou licença) no menu. Use no slot `info` ou no rodapé do `br-menu`.",
          "name": "MenuInfo",
          "slots": [
            {
              "description": "Slot para conteúdo personalizado no lugar do texto padrão de informações.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuInfoElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasSlotContent",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se há conteúdo atribuído ao slot padrão."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "info",
              "type": {
                "text": "string | undefined"
              },
              "description": "Informações adicionais em formato de texto",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "info",
              "fieldName": "info",
              "description": "Informações adicionais em formato de texto",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu-info",
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuInfo",
          "declaration": {
            "name": "MenuInfo",
            "module": "components/menu-info/menu-info.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-info",
          "declaration": {
            "name": "MenuInfo",
            "module": "components/menu-info/menu-info.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-item/menu-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa uma linha de navegação ou botão de submenu dentro do `br-menu-list`.\n\nColoque um `br-menu-link` ou texto no slot padrão. Para submenus multiníveis, adicione a lista filha no interior do item.",
          "name": "MenuItem",
          "cssParts": [
            {
              "description": "Elemento âncora do item de menu.",
              "name": "link"
            },
            {
              "description": "Ícone do item de menu.",
              "name": "icon"
            },
            {
              "description": "Conteúdo textual do item de menu.",
              "name": "content"
            },
            {
              "description": "Ícone de suporte (seta para baixo/direita).",
              "name": "support"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo textual principal exibido no item de menu.",
              "name": "default"
            },
            {
              "description": "Ícone personalizado. Quando preenchido, substitui o ícone definido por `icon`.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuItemElement"
              }
            },
            {
              "kind": "field",
              "name": "hasIconSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "description": "Identificador legado do ícone exibido no item do menu.\nNomes simples conhecidos são resolvidos pelo registro SVG local; para\nclasses CSS, SVGs ou bibliotecas externas, prefira o slot `icon`."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "default": "'#'",
              "description": "URL de destino do link do item do menu.\nUtilize esta propriedade para definir o endereço para onde o usuário será direcionado ao clicar no item."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Define como o link será aberto.\n- `_self`: abre no mesmo contexto de navegação (padrão)\n- `_blank`: abre em nova aba ou janela\n- `_parent`: abre no contexto pai\n- `_top`: abre no contexto de nível superior\nValores inválidos usam `_self`.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o item deve exibir um divisor visual.\nQuando ativado, adiciona uma linha separadora para organizar visualmente os itens do menu."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o item do menu está ativo/selecionado.\nQuando ativado, aplica estilos visuais para destacar o item como atual ou selecionado."
            },
            {
              "kind": "field",
              "name": "displayMode",
              "type": {
                "text": "MenuItemDisplayMode"
              },
              "default": "'none'",
              "description": "Define o modo de exibição do item, controlando os ícones de expansão.\n- `accordion`: exibe setas para cima/baixo (usado em menus de nível 0).\n- `drill-down`: exibe seta para a direita (usado em menus de níveis 1+).\n- `none`: não exibe ícones de expansão.\nValores inválidos usam `none`.",
              "parsedType": {
                "text": "'none' | 'accordion' | 'drill-down'"
              }
            },
            {
              "kind": "field",
              "name": "expanded",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o item está expandido para fins de acessibilidade (ARIA).\nEste estado é controlado externamente (por exemplo, por br-menu-list).\nNão altera o estado visual de \"active\"."
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveDisplayMode",
              "type": {
                "text": "MenuItemDisplayMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'none' | 'accordion' | 'drill-down'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Identificador legado do ícone exibido no item do menu.\nNomes simples conhecidos são resolvidos pelo registro SVG local; para\nclasses CSS, SVGs ou bibliotecas externas, prefira o slot `icon`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "default": "'#'",
              "description": "URL de destino do link do item do menu.\nUtilize esta propriedade para definir o endereço para onde o usuário será direcionado ao clicar no item."
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Define como o link será aberto.\n- `_self`: abre no mesmo contexto de navegação (padrão)\n- `_blank`: abre em nova aba ou janela\n- `_parent`: abre no contexto pai\n- `_top`: abre no contexto de nível superior\nValores inválidos usam `_self`.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "divider",
              "fieldName": "divider",
              "default": "false",
              "description": "Define se o item deve exibir um divisor visual.\nQuando ativado, adiciona uma linha separadora para organizar visualmente os itens do menu."
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Define se o item do menu está ativo/selecionado.\nQuando ativado, aplica estilos visuais para destacar o item como atual ou selecionado."
            },
            {
              "name": "display-mode",
              "fieldName": "displayMode",
              "default": "'none'",
              "description": "Define o modo de exibição do item, controlando os ícones de expansão.\n- `accordion`: exibe setas para cima/baixo (usado em menus de nível 0).\n- `drill-down`: exibe seta para a direita (usado em menus de níveis 1+).\n- `none`: não exibe ícones de expansão.\nValores inválidos usam `none`.",
              "type": {
                "text": "MenuItemDisplayMode"
              },
              "parsedType": {
                "text": "'none' | 'accordion' | 'drill-down'"
              }
            },
            {
              "name": "expanded",
              "fieldName": "expanded",
              "default": "false",
              "description": "Indica se o item está expandido para fins de acessibilidade (ARIA).\nEste estado é controlado externamente (por exemplo, por br-menu-list).\nNão altera o estado visual de \"active\"."
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            }
          ],
          "tagName": "br-menu-item",
          "csspart": [
            {
              "name": "link",
              "description": "Elemento âncora do item de menu."
            },
            {
              "name": "icon",
              "description": "Ícone do item de menu."
            },
            {
              "name": "content",
              "description": "Conteúdo textual do item de menu."
            },
            {
              "name": "support",
              "description": "Ícone de suporte (seta para baixo/direita)."
            }
          ],
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuItem",
          "declaration": {
            "name": "MenuItem",
            "module": "components/menu-item/menu-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-item",
          "declaration": {
            "name": "MenuItem",
            "module": "components/menu-item/menu-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-link/menu-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Hiperlink de navegação dentro do `br-menu`. Use dentro de um `br-menu-item` ou no rodapé do menu.\n\nAponte o destino em `href`. Para destinos externos, use `target=\"_blank\"`.",
          "name": "MenuLink",
          "cssParts": [
            {
              "description": "Elemento âncora do link.",
              "name": "link"
            }
          ],
          "slots": [
            {
              "description": "Slot para ícone personalizado do link.",
              "name": "icon"
            },
            {
              "description": "Slot para o texto exibido no link.",
              "name": "url"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuLinkElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "description": "URL do link."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget"
              },
              "default": "'_self'",
              "description": "Destino do link.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "titulo",
              "type": {
                "text": "string"
              },
              "description": "Título do link",
              "deprecated": "Use `label`."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto do link. Quando informado, tem precedência sobre `titulo`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL do link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Destino do link.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "titulo",
              "fieldName": "titulo",
              "description": "Título do link",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto do link. Quando informado, tem precedência sobre `titulo`.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu-link",
          "csspart": {
            "name": "link",
            "description": "Elemento âncora do link."
          },
          "events": [
            {
              "name": "brLinkClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o link externo é clicado.",
              "deprecated": "Use `brMenuLinkClick`."
            },
            {
              "name": "brMenuLinkClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o link externo é clicado."
            },
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuLink",
          "declaration": {
            "name": "MenuLink",
            "module": "components/menu-link/menu-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-link",
          "declaration": {
            "name": "MenuLink",
            "module": "components/menu-link/menu-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-list/menu-list.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Lista de itens de navegação dentro do `br-menu` ou `br-menu-group`.\n\nInsira os elementos `br-menu-item` no slot padrão para compor a lista navegável.",
          "name": "MenuList",
          "cssParts": [
            {
              "description": "Wrapper do grupo de menu.",
              "name": "container"
            },
            {
              "description": "Lista de itens do grupo.",
              "name": "list"
            },
            {
              "description": "Elemento âncora do item de menu principal (header).",
              "name": "header-link"
            },
            {
              "description": "Ícone do item de menu principal (header).",
              "name": "header-icon"
            },
            {
              "description": "Conteúdo textual do item de menu principal (header).",
              "name": "header-content"
            },
            {
              "description": "Ícone de suporte (seta) do item de menu principal (header).",
              "name": "header-support"
            }
          ],
          "slots": [
            {
              "description": "Itens filhos renderizados no conteúdo do grupo.",
              "name": "default"
            },
            {
              "description": "Ícone personalizado do item principal. Quando preenchido, substitui `icon`.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "internalExpanded",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estado interno que controla a expansão do grupo de menu."
            },
            {
              "kind": "field",
              "name": "hasIconSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "shouldHide",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Quando verdadeiro, suprime toda a renderização do conteúdo no shadow DOM.\nUtilizado para cenários onde a lista deve ficar oculta."
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "description": "Identificador legado do ícone exibido no item principal do menu.\nNomes simples conhecidos são resolvidos pelo registro SVG local; para\nclasses CSS, SVGs ou bibliotecas externas, prefira o slot `icon`."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "description": "Texto do label do item do menu.\nUtilize esta propriedade para definir o texto que será exibido no item do menu."
            },
            {
              "kind": "field",
              "name": "menuLevel",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Nível do menu na hierarquia de navegação.\nUtilizado para determinar o comportamento do menu (acordeão para nível 0, drill-down para níveis superiores)."
            },
            {
              "kind": "field",
              "name": "divider",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o item deve exibir um divisor visual.\nQuando ativado, adiciona uma linha separadora para organizar visualmente os itens do menu."
            },
            {
              "kind": "field",
              "name": "expanded",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o menu-list inicia expandido.\nÚtil para manter agrupamentos abertos por padrão no menu contextual."
            },
            {
              "kind": "method",
              "name": "handleExpandedChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              },
              "privacy": "private",
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "onItemClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "onItemKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "toggleFolder",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isVisibleElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "el is HTMLElement"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "Element | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusFirstChildAnchor",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              }
            },
            {
              "kind": "method",
              "name": "focusFirstChildOf",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "Element"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Identificador legado do ícone exibido no item principal do menu.\nNomes simples conhecidos são resolvidos pelo registro SVG local; para\nclasses CSS, SVGs ou bibliotecas externas, prefira o slot `icon`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto do label do item do menu.\nUtilize esta propriedade para definir o texto que será exibido no item do menu.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "menu-level",
              "fieldName": "menuLevel",
              "default": "0",
              "description": "Nível do menu na hierarquia de navegação.\nUtilizado para determinar o comportamento do menu (acordeão para nível 0, drill-down para níveis superiores)."
            },
            {
              "name": "divider",
              "fieldName": "divider",
              "default": "false",
              "description": "Define se o item deve exibir um divisor visual.\nQuando ativado, adiciona uma linha separadora para organizar visualmente os itens do menu."
            },
            {
              "name": "expanded",
              "fieldName": "expanded",
              "default": "false",
              "description": "Define se o menu-list inicia expandido.\nÚtil para manter agrupamentos abertos por padrão no menu contextual."
            }
          ],
          "tagName": "br-menu-list",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper do grupo de menu."
            },
            {
              "name": "list",
              "description": "Lista de itens do grupo."
            },
            {
              "name": "header-link",
              "description": "Elemento âncora do item de menu principal (header)."
            },
            {
              "name": "header-icon",
              "description": "Ícone do item de menu principal (header)."
            },
            {
              "name": "header-content",
              "description": "Conteúdo textual do item de menu principal (header)."
            },
            {
              "name": "header-support",
              "description": "Ícone de suporte (seta) do item de menu principal (header)."
            }
          ],
          "events": [
            {
              "name": "folderToggled",
              "type": {
                "text": "EventEmitter<boolean>"
              },
              "description": "Emitido quando um folder é expandido ou recolhido no nível 0 (comportamento acordeão)."
            },
            {
              "name": "navigateToSubmenu",
              "type": {
                "text": "EventEmitter<{ element: HTMLElement; label: string }>"
              },
              "description": "Emitido quando navegando para um submenu nos níveis 1+ (comportamento drill-down)."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuList",
          "declaration": {
            "name": "MenuList",
            "module": "components/menu-list/menu-list.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-list",
          "declaration": {
            "name": "MenuList",
            "module": "components/menu-list/menu-list.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-logo/menu-logo.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Exibe o logotipo institucional no interior do `br-menu`. Use no cabeçalho ou rodapé do menu.",
          "name": "MenuLogo",
          "cssParts": [
            {
              "description": "Wrapper da logo.",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para logo ou conteúdo que substitui a imagem padrão.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuLogoElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasError",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado para controlar se a imagem falhou ao carregar"
            },
            {
              "kind": "field",
              "name": "currentSrc",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "fallbackAttempted",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "errorEmitted",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "src",
              "type": {
                "text": "string"
              },
              "description": "URL da imagem"
            },
            {
              "kind": "field",
              "name": "fallbackSrc",
              "type": {
                "text": "string | undefined"
              },
              "description": "URL opcional usada uma única vez quando `src` falha.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "alt",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto alternativo da imagem",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "width",
              "type": {
                "text": "string | undefined"
              },
              "description": "Largura da imagem (com unidade, ex: '100px', '50%')",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "height",
              "type": {
                "text": "string | undefined"
              },
              "description": "Altura da imagem (com unidade, ex: '80px', 'auto')",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "handleSrcChange",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleError",
              "privacy": "private",
              "description": "Manipula erros no carregamento da imagem"
            },
            {
              "kind": "field",
              "name": "handleLoad",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "events": [
            {
              "description": "Emitido quando a imagem principal e o fallback falham.",
              "name": "brMenuLogoError"
            },
            {
              "name": "brMenuLogoError",
              "type": {
                "text": "EventEmitter<{ src: string; fallbackUsed: boolean }>"
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "src",
              "fieldName": "src",
              "description": "URL da imagem",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "fallback-src",
              "fieldName": "fallbackSrc",
              "description": "URL opcional usada uma única vez quando `src` falha.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "alt",
              "fieldName": "alt",
              "description": "Texto alternativo da imagem",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "width",
              "fieldName": "width",
              "description": "Largura da imagem (com unidade, ex: '100px', '50%')",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "description": "Altura da imagem (com unidade, ex: '80px', 'auto')",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu-logo",
          "csspart": {
            "name": "container",
            "description": "Wrapper da logo."
          },
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuLogo",
          "declaration": {
            "name": "MenuLogo",
            "module": "components/menu-logo/menu-logo.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-logo",
          "declaration": {
            "name": "MenuLogo",
            "module": "components/menu-logo/menu-logo.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/menu-social/menu-social.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Bloco de canais e redes sociais institucionais dentro do `br-menu`. Use no slot `social` ou rodapé do menu.",
          "name": "MenuSocial",
          "slots": [
            {
              "description": "Slot para ícone personalizado da rede social.",
              "name": "icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMenuSocialElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "description": "URL do link."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget | undefined"
              },
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.\nAceita `_self`, `_blank`, `_parent` ou `_top`. Valores inválidos usam `_self`.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "description": "Identificador da rede social. Os ícones oficiais mais comuns são\nrenderizados pelo registro SVG local; use o slot `icon` para uma fonte\ndiferente ou uma classe Font Awesome personalizada."
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL do link.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Target do link quando href é fornecido.\nAceita `_self`, `_blank`, `_parent` ou `_top`. Valores inválidos usam `_self`.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.\nValores inválidos usam `native`.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Identificador da rede social. Os ícones oficiais mais comuns são\nrenderizados pelo registro SVG local; use o slot `icon` para uma fonte\ndiferente ou uma classe Font Awesome personalizada.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-menu-social",
          "events": [
            {
              "name": "brSocialClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o link de rede social é clicado.",
              "deprecated": "Use `brMenuSocialClick`."
            },
            {
              "name": "brMenuSocialClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o link de rede social é clicado."
            },
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "MenuSocial",
          "declaration": {
            "name": "MenuSocial",
            "module": "components/menu-social/menu-social.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-menu-social",
          "declaration": {
            "name": "MenuSocial",
            "module": "components/menu-social/menu-social.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/message.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-message` apresenta um aviso contextual ou feedback em linha sobre uma operação ou estado do sistema.\n\nDefina o tipo de mensagem em `state` (`success`, `danger`, `warning` ou `info`). Opcionalmente, adicione um botão para fechar com `closable`.\n\n```html\n<br-message state=\"success\" message-title=\"Sucesso\">\n  Operação realizada com sucesso.\n</br-message>\n<br-message state=\"danger\" closable>\n  Não foi possível salvar os dados. Tente novamente.\n</br-message>\n```\n\n### Quando usar\n\n- Feedback sobre uma ação recém-executada na página (salvar, excluir, atualizar).\n- Mensagens de erro ou orientação em formulários (no slot `feedback` de inputs).\n\n### Quando evitar\n\n- Avisos críticos que exigem decisão antes de prosseguir: use `br-modal`.\n- Notificações acumuladas em uma central: use `br-notification`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/message?tab=designer).",
          "name": "Message",
          "cssParts": [
            {
              "description": "Wrapper principal da mensagem.",
              "name": "container"
            },
            {
              "description": "Área do ícone da mensagem.",
              "name": "icon"
            },
            {
              "description": "Área de conteúdo da mensagem.",
              "name": "content"
            },
            {
              "description": "Área do botão de fechar.",
              "name": "close"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo principal da mensagem. Quando utilizado, a prop `message` é ignorada.",
              "name": "default"
            },
            {
              "description": "Ícone customizado da mensagem. Quando utilizado, o ícone padrão gerado pela prop `state` é ignorado.",
              "name": "icon"
            },
            {
              "description": "Título customizado da mensagem. Quando utilizado, a prop `messageTitle` é ignorada.",
              "name": "message-title"
            },
            {
              "description": "Corpo customizado da mensagem. Quando utilizado, a prop `message` é ignorada.",
              "name": "message-body"
            },
            {
              "description": "Botão de fechar customizado. Quando utilizado, o botão padrão é substituído.",
              "name": "close-button"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrMessageElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "messageTitle",
              "type": {
                "text": "string"
              },
              "description": "Define o título da mensagem, que é exibido no início, acima da mensagem principal.\nEste título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "message",
              "type": {
                "text": "string"
              },
              "description": "Define o texto da mensagem que será exibido.\nEste é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça."
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe o rótulo e o controle na mesma linha.",
              "deprecated": "Use `inline`."
            },
            {
              "kind": "field",
              "name": "inline",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe o conteúdo em linha. Quando informada, tem precedência sobre `isInline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isClosable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\nO fechamento emitirá o evento `brDidClose`, mas não removerá automaticamente o componente do DOM, a menos que a propriedade `autoRemove` também esteja definida como `true`.\nEste recurso não está disponível para mensagens do tipo feedback.",
              "deprecated": "Use `closable`."
            },
            {
              "kind": "field",
              "name": "closable",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe ação de fechar. Quando informada, tem precedência sobre `isClosable`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "autoRemove",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla o comportamento do fechamento do componente quando `isClosable` é verdadeiro.\n- Se definido como `true`, o componente será automaticamente removido do DOM ao clicar no botão de fechar.\n- Se definido como `false`, o componente permanecerá no DOM e apenas emitirá o evento `brDidClose`.\n\nEsta propriedade não tem efeito se `isClosable` for `false`.\nO valor padrão é `false`."
            },
            {
              "kind": "field",
              "name": "showIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Se definido como verdadeiro, um ícone associado à mensagem será exibido.\nUse esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário."
            },
            {
              "kind": "field",
              "name": "isFeedback",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\nExemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback.",
              "deprecated": "Use `feedback`."
            },
            {
              "kind": "field",
              "name": "feedback",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Usa apresentação de feedback. Quando informada, tem precedência sobre `isFeedback`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "BrFeedbackState"
              },
              "default": "'info'",
              "description": "Define o estado do message. Valores inválidos usam `info`.\nOs possíveis valores são:\n- 'info': Mensagem informativa.\n- 'warning': Mensagem de aviso.\n- 'danger': Mensagem de erro ou alerta.\n- 'success': Mensagem de sucesso.\nO valor padrão é 'info'.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "BrFeedbackState | undefined"
              },
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            },
            {
              "kind": "field",
              "name": "effectiveInline",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveClosable",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveFeedback",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveFeedbackState",
              "type": {
                "text": "BrFeedbackState"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "dismissHandler",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "checkIconState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getAriaLive",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "'polite' | 'assertive'"
                }
              }
            },
            {
              "kind": "method",
              "name": "getStateLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderFeedback",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderStandard",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "message-title",
              "fieldName": "messageTitle",
              "description": "Define o título da mensagem, que é exibido no início, acima da mensagem principal.\nEste título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "message",
              "fieldName": "message",
              "description": "Define o texto da mensagem que será exibido.\nEste é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Exibe o rótulo e o controle na mesma linha."
            },
            {
              "name": "inline",
              "fieldName": "inline",
              "description": "Exibe o conteúdo em linha. Quando informada, tem precedência sobre `isInline`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-closable",
              "fieldName": "isClosable",
              "default": "false",
              "description": "Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\nO fechamento emitirá o evento `brDidClose`, mas não removerá automaticamente o componente do DOM, a menos que a propriedade `autoRemove` também esteja definida como `true`.\nEste recurso não está disponível para mensagens do tipo feedback."
            },
            {
              "name": "closable",
              "fieldName": "closable",
              "description": "Exibe ação de fechar. Quando informada, tem precedência sobre `isClosable`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "auto-remove",
              "fieldName": "autoRemove",
              "default": "false",
              "description": "Controla o comportamento do fechamento do componente quando `isClosable` é verdadeiro.\n- Se definido como `true`, o componente será automaticamente removido do DOM ao clicar no botão de fechar.\n- Se definido como `false`, o componente permanecerá no DOM e apenas emitirá o evento `brDidClose`.\n\nEsta propriedade não tem efeito se `isClosable` for `false`.\nO valor padrão é `false`."
            },
            {
              "name": "show-icon",
              "fieldName": "showIcon",
              "default": "false",
              "description": "Se definido como verdadeiro, um ícone associado à mensagem será exibido.\nUse esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário."
            },
            {
              "name": "is-feedback",
              "fieldName": "isFeedback",
              "default": "false",
              "description": "Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\nExemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback."
            },
            {
              "name": "feedback",
              "fieldName": "feedback",
              "description": "Usa apresentação de feedback. Quando informada, tem precedência sobre `isFeedback`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "default": "'info'",
              "description": "Define o estado do message. Valores inválidos usam `info`.\nOs possíveis valores são:\n- 'info': Mensagem informativa.\n- 'warning': Mensagem de aviso.\n- 'danger': Mensagem de erro ou alerta.\n- 'success': Mensagem de sucesso.\nO valor padrão é 'info'.",
              "type": {
                "text": "BrFeedbackState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "type": {
                "text": "BrFeedbackState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-message",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal da mensagem."
            },
            {
              "name": "icon",
              "description": "Área do ícone da mensagem."
            },
            {
              "name": "content",
              "description": "Área de conteúdo da mensagem."
            },
            {
              "name": "close",
              "description": "Área do botão de fechar."
            }
          ],
          "events": [
            {
              "name": "brDidClose",
              "type": {
                "text": "EventEmitter"
              },
              "description": "Evento emitido quando o usuário fecha a mensagem, se closable for true.",
              "deprecated": "Use `brMessageClose`."
            },
            {
              "name": "brMessageClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando a mensagem é fechada."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Conteúdo"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Message",
          "declaration": {
            "name": "Message",
            "module": "components/message.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-message",
          "declaration": {
            "name": "Message",
            "module": "components/message.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/modal.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-modal` abre uma janela de diálogo bloqueadora sobre uma máscara, capturando a atenção imediata da pessoa usuária.\n\nControle a abertura com os métodos `open()`, `close()` e `showModal()`. Estruture o conteúdo usando os slots `header`, `default` (corpo) e `footer` (botões de ação).\n\n```html\n<br-modal title-text=\"Excluir item\">\n  <p>Deseja realmente excluir este registro? Esta ação não pode ser desfeita.</p>\n  <div slot=\"footer\">\n    <br-button emphasis=\"secondary\">Cancelar</br-button>\n    <br-button emphasis=\"primary\">Excluir</br-button>\n  </div>\n</br-modal>\n```\n\n### Quando usar\n\n- Confirmação de ações críticas ou irreversíveis (excluir registro, descartar alterações).\n- Formulários curtos e contextuais sem sair da tela atual.\n\n### Quando evitar\n\n- Mensagens informativas que não exigem confirmação: use `br-message`.\n- Conteúdos longos com navegação interna: use uma página dedicada.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/modal?tab=designer).",
          "name": "Modal",
          "cssParts": [
            {
              "description": "Wrapper principal do modal.",
              "name": "container"
            },
            {
              "description": "Cabeçalho do modal.",
              "name": "header"
            },
            {
              "description": "Título do modal.",
              "name": "title"
            },
            {
              "description": "Corpo do modal.",
              "name": "body"
            },
            {
              "description": "Rodapé do modal.",
              "name": "footer"
            },
            {
              "description": "Botão de fechar do modal.",
              "name": "close-button"
            }
          ],
          "slots": [
            {
              "description": "Cabeçalho do modal. Se não for usado, o `title-text` será exibido.",
              "name": "header"
            },
            {
              "description": "Corpo do modal.",
              "name": "default"
            },
            {
              "description": "Rodapé do modal.",
              "name": "footer"
            },
            {
              "description": "Botão de fechar customizado. Se não for usado, o botão padrão será exibido.",
              "name": "close-button"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrModalElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "titleText",
              "type": {
                "text": "string"
              },
              "description": "O texto do título a ser exibido no cabeçalho do modal. Usado quando o slot `header` não é fornecido."
            },
            {
              "kind": "field",
              "name": "show",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla a visibilidade do modal."
            },
            {
              "kind": "field",
              "name": "autoClose",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o comportamento de fechamento do modal.\n\n- `true`: O modal fecha automaticamente ao clicar no botão fechar.\n- `false`: O modal emite `brModalBeforeClose` mas não fecha, permitindo a implementação de lógica customizada (validação, confirmação, etc.) antes do fechamento. O desenvolvedor deve\n  controlar manualmente o fechamento."
            },
            {
              "kind": "field",
              "name": "initialFocusSelector",
              "type": {
                "text": "string"
              },
              "description": "Seletor CSS do elemento que deve receber foco quando o modal é aberto (ex: `\"#meu-elemento\"`)."
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "ModalSize"
              },
              "default": "'medium'",
              "description": "Define o tamanho (largura) do modal. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'auto' | 'xsmall'"
              }
            },
            {
              "kind": "field",
              "name": "scrollable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Se `true`, habilita a rolagem interna do conteúdo do modal."
            },
            {
              "kind": "field",
              "name": "alignFooter",
              "type": {
                "text": "ModalFooterAlign"
              },
              "default": "'center'",
              "description": "Define o alinhamento do conteúdo do rodapé (slot=\"footer\"). Valores inválidos usam `center`.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "method",
              "name": "handleShowChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "returnFocusOnClose",
              "privacy": "private",
              "description": "Devolve o foco ao elemento que abriu o modal. Sem esse alvo (ex.: modal aberto por\n`show` inicial ou foco anterior no body), libera o foco que ainda estiver no conteúdo\nsendo ocultado, para que a digitação não continue num campo invisível."
            },
            {
              "kind": "method",
              "name": "attachKeyListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachKeyListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "open",
              "description": "Método público para abrir o modal"
            },
            {
              "kind": "method",
              "name": "showModal",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre o modal usando a nomenclatura de `HTMLDialogElement`."
            },
            {
              "kind": "method",
              "name": "close",
              "description": "Método público para fechar o modal"
            },
            {
              "kind": "method",
              "name": "requestClose",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Solicita fechamento e permite cancelamento pelo evento `cancel`."
            },
            {
              "kind": "method",
              "name": "toggle",
              "description": "Método público para alternar a visibilidade do modal"
            },
            {
              "kind": "field",
              "name": "isOpeningParentScrim",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "triggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "pendingFocus",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "nativeDialogRef",
              "type": {
                "text": "HTMLDialogElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "keyListenerAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "FOCUSABLE_SELECTORS",
              "privacy": "private",
              "static": true,
              "default": "FOCUSABLE_SELECTORS"
            },
            {
              "kind": "field",
              "name": "titleId",
              "privacy": "private",
              "description": "UTILITÁRIOS\n\nGetters e helpers utilitários usados internamente pelo componente,\ncomo geração de IDs e mapeamento de classes CSS.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "contentId",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "moveFocusIntoModal",
              "privacy": "private",
              "description": "GERENCIAMENTO DE FOCO\n\nMétodos responsáveis por mover o foco para dentro do modal, estabilizar o\nfoco em elementos iniciais e localizar elementos nativos focáveis dentro\nde web components que utilizam Shadow DOM."
            },
            {
              "kind": "method",
              "name": "findDeepNativeFocusable",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Encontra recursivamente o primeiro elemento nativo focável dentro de um elemento,\nperfurando shadow roots aninhados em qualquer profundidade (ex: br-select → br-input → <input>)."
            },
            {
              "kind": "method",
              "name": "waitForElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<HTMLElement | null>"
                }
              },
              "parameters": [
                {
                  "name": "selector",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "retries",
                  "default": "10"
                },
                {
                  "name": "interval",
                  "default": "50"
                }
              ],
              "description": "Aguarda o elemento aparecer no DOM e estar pronto para receber foco.\nTenta por até 10 vezes com intervalos de 50ms (500ms total)."
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private",
              "description": "TECLADO\n\nManipuladores e utilitários relacionados à interação por teclado,\nincluindo tratamento de `Escape` para fechar o modal e navegação por\n`Tab`/`Shift+Tab` para manter o foco preso (focus trap) dentro do modal."
            },
            {
              "kind": "method",
              "name": "handleTabNavigation",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Implementa o focus trap circular dentro da modal.\nQuando Tab é pressionado no último elemento focalizável, o foco vai para o primeiro.\nQuando Shift+Tab é pressionado no primeiro, o foco vai para o último.\n\nUsa `composedPath()[0]` para obter o elemento real com foco, pois web components\ncom shadow DOM retornam o host via `document.activeElement`, não o elemento nativo interno.\n\nUsa `findDeepNativeFocusable` no wrap porque `host.focus()` é no-op em web components\nsem `delegatesFocus` — focar o elemento nativo mais profundo garante que o wrap aconteça."
            },
            {
              "kind": "method",
              "name": "isOrInsideElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "container",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Verifica se `target` é igual a `container` ou está dentro dele,\nperfurando shadow roots na subida (getRootNode().host)."
            },
            {
              "kind": "method",
              "name": "getFocusableElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "description": "Coleta todos os elementos focalizáveis dentro da modal,\nperfurando o shadow DOM: inclui elementos do shadow root (ex: botão fechar)\ne dos slots (conteúdo fornecido pelo usuário nos slots header, default, footer e close-button)."
            },
            {
              "kind": "method",
              "name": "closeParentScrim",
              "privacy": "private",
              "description": "INTEGRAÇÃO COM BR-SCRIM\n\nMétodos para integrar o comportamento do modal com um `br-scrim` pai,\nincluindo abertura/fechamento sincronizados e listeners para eventos do\nscrim."
            },
            {
              "kind": "field",
              "name": "usesStandaloneDialog",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "listenToParentScrimEvents",
              "privacy": "private",
              "description": "Adiciona listeners para eventos do parent scrim"
            },
            {
              "kind": "method",
              "name": "removeParentScrimEventListeners",
              "privacy": "private",
              "description": "Remove listeners de eventos do parent scrim"
            },
            {
              "kind": "field",
              "name": "handleParentScrimOpen",
              "privacy": "private",
              "description": "Handler para evento brScrimOpen do parent scrim\nQuando scrim abre programaticamente, a modal deve abrir também"
            },
            {
              "kind": "field",
              "name": "handleParentScrimClose",
              "privacy": "private",
              "description": "Handler para evento brScrimClose do parent scrim\nSe autoClose=true, fecha a modal junto com o scrim\nSe autoClose=false, não faz nada (modal permanece aberta)"
            },
            {
              "kind": "method",
              "name": "openParentScrim",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveSize",
              "type": {
                "text": "ModalSize"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'auto' | 'xsmall'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAlignFooter",
              "type": {
                "text": "ModalFooterAlign"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "handleClose",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNativeCancel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "title-text",
              "fieldName": "titleText",
              "description": "O texto do título a ser exibido no cabeçalho do modal. Usado quando o slot `header` não é fornecido.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "show",
              "fieldName": "show",
              "default": "false",
              "description": "Controla a visibilidade do modal."
            },
            {
              "name": "auto-close",
              "fieldName": "autoClose",
              "default": "false",
              "description": "Define o comportamento de fechamento do modal.\n\n- `true`: O modal fecha automaticamente ao clicar no botão fechar.\n- `false`: O modal emite `brModalBeforeClose` mas não fecha, permitindo a implementação de lógica customizada (validação, confirmação, etc.) antes do fechamento. O desenvolvedor deve\n  controlar manualmente o fechamento."
            },
            {
              "name": "initial-focus-selector",
              "fieldName": "initialFocusSelector",
              "description": "Seletor CSS do elemento que deve receber foco quando o modal é aberto (ex: `\"#meu-elemento\"`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "default": "'medium'",
              "description": "Define o tamanho (largura) do modal. Valores inválidos usam `medium`.",
              "type": {
                "text": "ModalSize"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'auto' | 'xsmall'"
              }
            },
            {
              "name": "scrollable",
              "fieldName": "scrollable",
              "default": "false",
              "description": "Se `true`, habilita a rolagem interna do conteúdo do modal."
            },
            {
              "name": "align-footer",
              "fieldName": "alignFooter",
              "default": "'center'",
              "description": "Define o alinhamento do conteúdo do rodapé (slot=\"footer\"). Valores inválidos usam `center`.",
              "type": {
                "text": "ModalFooterAlign"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            }
          ],
          "tagName": "br-modal",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do modal."
            },
            {
              "name": "header",
              "description": "Cabeçalho do modal."
            },
            {
              "name": "title",
              "description": "Título do modal."
            },
            {
              "name": "body",
              "description": "Corpo do modal."
            },
            {
              "name": "footer",
              "description": "Rodapé do modal."
            },
            {
              "name": "close-button",
              "description": "Botão de fechar do modal."
            }
          ],
          "events": [
            {
              "name": "brModalOpen",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o modal é aberto (quando `show` muda de `false` para `true`)."
            },
            {
              "name": "brModalClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido após o modal ser fechado (quando `show` muda de `true` para `false`)."
            },
            {
              "name": "brModalBeforeClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido antes do fechamento do modal (quando o botão X é clicado).\nSe autoClose está desativado, o desenvolvedor deve fechar manualmente o modal após este evento.\nSe autoClose está ativado, o modal fecha automaticamente após este evento."
            },
            {
              "name": "brModalOpened",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido após o modal estar completamente aberto e com o foco estabilizado\ndentro dele. Complementa `brModalOpen` (que dispara imediatamente ao abrir):\nuse `brModalOpened` quando precisar interagir com o modal já pronto."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Sobreposições"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Modal",
          "declaration": {
            "name": "Modal",
            "module": "components/modal.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-modal",
          "declaration": {
            "name": "Modal",
            "module": "components/modal.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/notification.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-notification` organiza a central de mensagens, comunicados e avisos do usuário em um painel retrátil.\n\nUse os métodos `open()`, `close()` ou a propriedade `isOpen` para controlar o painel. Estruture o conteúdo com `br-notification-header`, `br-notification-body` e `br-notification-item`.\n\n```html\n<br-notification>\n  <div slot=\"header\">\n    <br-notification-header title-text=\"Notificações\"></br-notification-header>\n  </div>\n  <br-notification-body>\n    <br-notification-item title-text=\"Seu processo foi atualizado\" date=\"10/10/2026\"></br-notification-item>\n  </br-notification-body>\n</br-notification>\n```\n\n### Quando usar\n\n- Central de avisos acumulados da aplicação, normalmente acionada por um botão no cabeçalho.\n\n### Quando evitar\n\n- Mensagens em linha como resposta direta a uma ação na tela: use `br-message`.\n- Confirmação de ação crítica: use `br-modal`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/notification?tab=designer).",
          "name": "Notification",
          "cssParts": [
            {
              "description": "Superfície principal do painel.",
              "name": "base"
            },
            {
              "description": "Região superior do componente.",
              "name": "header"
            },
            {
              "description": "Região principal do componente.",
              "name": "body"
            },
            {
              "description": "Região de abas, quando existir.",
              "name": "tabs"
            },
            {
              "description": "Região com rolagem onde os itens são exibidos.",
              "name": "list"
            },
            {
              "description": "Botão de fechar do painel.",
              "name": "close-button"
            },
            {
              "description": "Divisor entre itens da lista.",
              "name": "divider"
            }
          ],
          "slots": [
            {
              "description": "Elemento acionador externo responsável por abrir e fechar o painel.",
              "name": "trigger"
            },
            {
              "description": "Região superior do componente, para uso com subcomponentes de cabeçalho ou conteúdo customizado.",
              "name": "header"
            },
            {
              "description": "Região opcional para navegação por abas.",
              "name": "tabs"
            },
            {
              "description": "Região principal da lista de notificações.",
              "name": "default"
            },
            {
              "description": "Região opcional para ações complementares, como \"ver todas\".",
              "name": "footer"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrNotificationElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "hasFooter",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasHeader",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasTabs",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasTrigger",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome acessível do painel de notificações. Exposto via `aria-label`."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla se o painel de notificações está aberto."
            },
            {
              "kind": "field",
              "name": "closeOnOutsideClick",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Fecha o painel ao clicar fora da superfície."
            },
            {
              "kind": "field",
              "name": "closeOnTriggerClick",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Fecha o painel ao clicar novamente no acionador."
            },
            {
              "kind": "field",
              "name": "mobileFullscreen",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Faz o painel ocupar toda a largura disponível em viewports pequenas."
            },
            {
              "kind": "field",
              "name": "internalScroll",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Habilita rolagem apenas na região de itens, preservando cabeçalho e abas fixos."
            },
            {
              "kind": "field",
              "name": "placement",
              "type": {
                "text": "NotificationPlacement"
              },
              "readonly": true,
              "default": "'bottom-end'",
              "description": "Define o posicionamento do painel em relação ao acionador. Valores inválidos usam `bottom-end`.",
              "parsedType": {
                "text": "'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'"
              }
            },
            {
              "kind": "field",
              "name": "width",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Largura explícita do painel. Quando não definida, o painel dimensiona conforme o conteúdo,\nrespeitando o `max-width` definido por spec ou pelo prop `maxWidth`."
            },
            {
              "kind": "field",
              "name": "maxWidth",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Sobrescreve o `max-width` do painel. Por padrão, o CSS aplica `max-width: 50vw` em viewports ≥576px\nconforme a especificação do Design System."
            },
            {
              "kind": "field",
              "name": "maxHeight",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Sobrescreve a altura máxima do painel.\nPor padrão, o CSS aplica `calc(100vh - 86px)` via token `--notification-height`."
            },
            {
              "kind": "field",
              "name": "isStatic",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Define se o painel de notificações deve ser renderizado de forma estática (inline).\nQuando verdadeiro, o posicionamento absoluto é desativado. Ideal para centrais de notificações fixas ou documentação."
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "attachBlockingSurfaceListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachBlockingSurfaceListener",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleKeyDown"
            },
            {
              "kind": "field",
              "name": "handleOutsideClick"
            },
            {
              "kind": "field",
              "name": "windowListenersAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "attachWindowListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachWindowListeners",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleNotificationItemSelect",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ itemId?: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleNotificationHeaderClose"
            },
            {
              "kind": "method",
              "name": "handleNotificationTabChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ value: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "show",
              "description": "Abre o painel de notificações."
            },
            {
              "kind": "method",
              "name": "hide",
              "parameters": [
                {
                  "name": "reason",
                  "default": "'programmatic'",
                  "type": {
                    "text": "NotificationCloseReason"
                  }
                }
              ],
              "description": "Fecha o painel de notificações."
            },
            {
              "kind": "method",
              "name": "toggle",
              "description": "Alterna o estado aberto/fechado."
            },
            {
              "kind": "method",
              "name": "focusTrigger",
              "description": "Move o foco de volta para o acionador."
            },
            {
              "kind": "method",
              "name": "focusFirstItem",
              "description": "Move o foco para o primeiro item interativo da lista."
            },
            {
              "kind": "field",
              "name": "pendingCloseReason",
              "type": {
                "text": "NotificationCloseReason"
              },
              "privacy": "private",
              "default": "'programmatic'",
              "parsedType": {
                "text": "'close-button' | 'outside-click' | 'trigger-click' | 'programmatic' | 'escape'"
              }
            },
            {
              "kind": "field",
              "name": "cleanupBlockingSurfaceDismissal",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "previousFocus",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "getFocusableElements",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleFocusTrap",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isPanelVisible",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getTriggerElements",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "updateTriggerAria",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getCssClassMap",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectivePlacement",
              "type": {
                "text": "NotificationPlacement"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'"
              }
            },
            {
              "kind": "field",
              "name": "checkSlotVisibility",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Nome acessível do painel de notificações. Exposto via `aria-label`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "default": "false",
              "description": "Controla se o painel de notificações está aberto.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "close-on-outside-click",
              "fieldName": "closeOnOutsideClick",
              "default": "true",
              "description": "Fecha o painel ao clicar fora da superfície.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "close-on-trigger-click",
              "fieldName": "closeOnTriggerClick",
              "default": "true",
              "description": "Fecha o painel ao clicar novamente no acionador.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "mobile-fullscreen",
              "fieldName": "mobileFullscreen",
              "default": "true",
              "description": "Faz o painel ocupar toda a largura disponível em viewports pequenas.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "internal-scroll",
              "fieldName": "internalScroll",
              "default": "true",
              "description": "Habilita rolagem apenas na região de itens, preservando cabeçalho e abas fixos.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "placement",
              "fieldName": "placement",
              "default": "'bottom-end'",
              "description": "Define o posicionamento do painel em relação ao acionador. Valores inválidos usam `bottom-end`.",
              "type": {
                "text": "NotificationPlacement"
              },
              "parsedType": {
                "text": "'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'"
              }
            },
            {
              "name": "width",
              "fieldName": "width",
              "description": "Largura explícita do painel. Quando não definida, o painel dimensiona conforme o conteúdo,\nrespeitando o `max-width` definido por spec ou pelo prop `maxWidth`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "max-width",
              "fieldName": "maxWidth",
              "description": "Sobrescreve o `max-width` do painel. Por padrão, o CSS aplica `max-width: 50vw` em viewports ≥576px\nconforme a especificação do Design System.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "max-height",
              "fieldName": "maxHeight",
              "description": "Sobrescreve a altura máxima do painel.\nPor padrão, o CSS aplica `calc(100vh - 86px)` via token `--notification-height`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-static",
              "fieldName": "isStatic",
              "default": "false",
              "description": "Define se o painel de notificações deve ser renderizado de forma estática (inline).\nQuando verdadeiro, o posicionamento absoluto é desativado. Ideal para centrais de notificações fixas ou documentação.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-notification",
          "status": "stable",
          "csspart": [
            {
              "name": "base",
              "description": "Superfície principal do painel."
            },
            {
              "name": "header",
              "description": "Região superior do componente."
            },
            {
              "name": "body",
              "description": "Região principal do componente."
            },
            {
              "name": "tabs",
              "description": "Região de abas, quando existir."
            },
            {
              "name": "list",
              "description": "Região com rolagem onde os itens são exibidos."
            },
            {
              "name": "close-button",
              "description": "Botão de fechar do painel."
            },
            {
              "name": "divider",
              "description": "Divisor entre itens da lista."
            }
          ],
          "events": [
            {
              "name": "brOpenChange",
              "type": {
                "text": "EventEmitter<{ open: boolean }>"
              },
              "description": "Informa a mudança de estado aberto/fechado do painel."
            },
            {
              "name": "brNotificationOpen",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Informa que o painel foi aberto."
            },
            {
              "name": "brNotificationClose",
              "type": {
                "text": "EventEmitter<NotificationCloseDetail>"
              },
              "description": "Informa que o painel foi fechado."
            },
            {
              "name": "brNotificationItemClick",
              "type": {
                "text": "EventEmitter<NotificationItemClickDetail>"
              },
              "description": "Expõe a interação com um item da lista."
            },
            {
              "name": "brNotificationTabChange",
              "type": {
                "text": "EventEmitter<{ value: string }>"
              },
              "description": "Informa troca de aba quando o componente possuir navegação por tabs."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Sobreposições"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Notification",
          "declaration": {
            "name": "Notification",
            "module": "components/notification.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-notification",
          "declaration": {
            "name": "Notification",
            "module": "components/notification.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/notification-body/notification-body.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Corpo do painel de notificações com rolagem independente. Use dentro do `br-notification`.\n\nInsira os itens `br-notification-item` no slot padrão.",
          "name": "NotificationBody",
          "slots": [
            {
              "description": "Navegação por abas quando presente.",
              "name": "tabs"
            },
            {
              "description": "Lista principal de notificações.",
              "name": "default"
            },
            {
              "description": "Conteúdo para estado vazio.",
              "name": "empty"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrNotificationBodyElement"
              }
            },
            {
              "kind": "field",
              "name": "hasTabs",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o slot 'tabs' possui conteúdo."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "internalScroll",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Controla se a rolagem ocorre apenas na lista de itens."
            },
            {
              "kind": "field",
              "name": "empty",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que não há notificações para exibir."
            },
            {
              "kind": "method",
              "name": "checkSlotVisibility",
              "privacy": "private",
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Verifica se um slot específico possui conteúdo real."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "internal-scroll",
              "fieldName": "internalScroll",
              "default": "true",
              "description": "Controla se a rolagem ocorre apenas na lista de itens.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "empty",
              "fieldName": "empty",
              "default": "false",
              "description": "Indica que não há notificações para exibir.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-notification-body",
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NotificationBody",
          "declaration": {
            "name": "NotificationBody",
            "module": "components/notification-body/notification-body.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-notification-body",
          "declaration": {
            "name": "NotificationBody",
            "module": "components/notification-body/notification-body.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/notification-header/notification-header.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Cabeçalho da central de notificações com título e botão de fechar. Use no slot `header` do `br-notification`.\n\nDefina o título em `title-text`. O botão de fechar emite o fechamento para o painel pai.",
          "name": "NotificationHeader",
          "slots": [
            {
              "description": "Conteúdo customizado do título.",
              "name": "title"
            },
            {
              "description": "Conteúdo customizado do subtítulo.",
              "name": "subtitle"
            },
            {
              "description": "Região para botão de fechar ou outras ações contextuais.",
              "name": "actions"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrNotificationHeaderElement"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Título textual do cabeçalho."
            },
            {
              "kind": "field",
              "name": "subtitle",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto complementar, como e-mail ou identificação adicional do usuário."
            },
            {
              "kind": "field",
              "name": "showCloseButton",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "true",
              "description": "Exibe botão de fechar dentro do cabeçalho."
            },
            {
              "kind": "field",
              "name": "closeLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "default": "'Fechar notificações'",
              "description": "Texto acessível do botão de fechar. Permite internacionalização."
            },
            {
              "kind": "field",
              "name": "handleCloseClick",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getCssClassMap",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Título textual do cabeçalho.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "subtitle",
              "fieldName": "subtitle",
              "description": "Texto complementar, como e-mail ou identificação adicional do usuário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "show-close-button",
              "fieldName": "showCloseButton",
              "default": "true",
              "description": "Exibe botão de fechar dentro do cabeçalho.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "close-label",
              "fieldName": "closeLabel",
              "default": "'Fechar notificações'",
              "description": "Texto acessível do botão de fechar. Permite internacionalização.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-notification-header",
          "events": [
            {
              "name": "brNotificationHeaderClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Solicita o fechamento do painel a partir do cabeçalho."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NotificationHeader",
          "declaration": {
            "name": "NotificationHeader",
            "module": "components/notification-header/notification-header.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-notification-header",
          "declaration": {
            "name": "NotificationHeader",
            "module": "components/notification-header/notification-header.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/notification-item/notification-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Item individual de notificação com título, data e status de leitura. Use dentro do `br-notification-body`.\n\nDefina o título em `title-text` e a data em `date`. Use `read` para indicar se o item já foi lido.",
          "name": "NotificationItem",
          "slots": [
            {
              "description": "Conteúdo principal da notificação.",
              "name": "default"
            },
            {
              "description": "Ações contextuais do item.",
              "name": "actions"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrNotificationItemElement"
              }
            },
            {
              "kind": "field",
              "name": "itemId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do item.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "description": "Título principal da notificação."
            },
            {
              "kind": "field",
              "name": "description",
              "type": {
                "text": "string"
              },
              "description": "Conteúdo resumido ou complementar da notificação."
            },
            {
              "kind": "field",
              "name": "datetime",
              "type": {
                "text": "string"
              },
              "description": "Informação cronológica associada à notificação."
            },
            {
              "kind": "field",
              "name": "unread",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se a notificação ainda não foi lida."
            },
            {
              "kind": "field",
              "name": "clickable",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Define se o item é interativo."
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "NotificationItemState | undefined"
              },
              "description": "Define o estado visual da notificação.\nAceita `success`, `danger`, `warning` ou `info`.\nValores inválidos são ignorados.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "NotificationItemState | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "method",
              "name": "handleHostClick"
            },
            {
              "kind": "method",
              "name": "callFocus",
              "description": "Move o foco para o elemento interativo do item."
            },
            {
              "kind": "method",
              "name": "handleSelect",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleKeydown",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "getAriaLabel",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getStateColor",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "getStateLabel",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "item-id",
              "fieldName": "itemId",
              "description": "Identificador único do item.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Título principal da notificação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "description",
              "fieldName": "description",
              "description": "Conteúdo resumido ou complementar da notificação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "datetime",
              "fieldName": "datetime",
              "description": "Informação cronológica associada à notificação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unread",
              "fieldName": "unread",
              "default": "false",
              "description": "Indica se a notificação ainda não foi lida.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "clickable",
              "fieldName": "clickable",
              "default": "true",
              "description": "Define se o item é interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Define o estado visual da notificação.\nAceita `success`, `danger`, `warning` ou `info`.\nValores inválidos são ignorados.",
              "type": {
                "text": "NotificationItemState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            }
          ],
          "tagName": "br-notification-item",
          "events": [
            {
              "name": "brNotificationItemSelect",
              "type": {
                "text": "EventEmitter<NotificationItemDetail>"
              },
              "description": "Informa seleção ou acionamento do item."
            },
            {
              "name": "brNotificationItemRead",
              "type": {
                "text": "EventEmitter<NotificationItemDetail>"
              },
              "description": "Informa mudança de estado para lido."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "NotificationItem",
          "declaration": {
            "name": "NotificationItem",
            "module": "components/notification-item/notification-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-notification-item",
          "declaration": {
            "name": "NotificationItem",
            "module": "components/notification-item/notification-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/pagination.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-pagination` divide grandes volumes de dados em páginas numeradas sequenciais.\n\nInforme a quantidade total de itens em `total` e a página atual em `current`. Ouça o evento `brPaginationPageChange` para carregar a página solicitada. Para permitir alterar itens por página, use a variante contextual ou defina `per-page`.\n\n```html\n<br-pagination total=\"100\" per-page=\"10\" current=\"1\"></br-pagination>\n```\n\n### Quando usar\n\n- Paginação de tabelas (`br-table`) ou listas extensas.\n\n### Quando evitar\n\n- Poucos itens (menos de 20 itens) que cabem em uma visualização direta.\n- Etapas sequenciais de um formulário ou cadastro: use `br-step` ou `br-wizard`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/pagination?tab=designer).",
          "name": "Pagination",
          "cssParts": [
            {
              "description": "Parte para o contêiner raiz da paginação (elemento nav), usada para estilização via ::part().",
              "name": "nav"
            },
            {
              "description": "Parte para a lista de páginas (elemento ul), usada para estilização via ::part().",
              "name": "list"
            },
            {
              "description": "Parte para os itens de página numérica (elemento a), usada para estilização via ::part().",
              "name": "page"
            },
            {
              "description": "Parte para o botão de reticências e seu contêiner.",
              "name": "ellipsis"
            },
            {
              "description": "Parte encaminhada do botão de reticências.",
              "name": "ellipsis-button"
            },
            {
              "description": "Parte para o seletor de itens por página na variante contextual.",
              "name": "per-page"
            },
            {
              "description": "Contêiner encaminhado do seletor de itens por página.",
              "name": "per-page-container"
            },
            {
              "description": "Campo encaminhado do seletor de itens por página.",
              "name": "per-page-input"
            },
            {
              "description": "Rótulo encaminhado do seletor de itens por página.",
              "name": "per-page-input-label"
            },
            {
              "description": "Lista encaminhada do seletor de itens por página.",
              "name": "per-page-list"
            },
            {
              "description": "Parte para o seletor de navegação direta na variante contextual.",
              "name": "go-to"
            },
            {
              "description": "Contêiner encaminhado do seletor de navegação direta.",
              "name": "go-to-container"
            },
            {
              "description": "Campo encaminhado do seletor de navegação direta.",
              "name": "go-to-input"
            },
            {
              "description": "Rótulo encaminhado do seletor de navegação direta.",
              "name": "go-to-input-label"
            },
            {
              "description": "Lista encaminhada do seletor de navegação direta.",
              "name": "go-to-list"
            },
            {
              "description": "Parte para o botão de página anterior, usada para estilização via ::part().",
              "name": "prev-button"
            },
            {
              "description": "Botão interno encaminhado da página anterior.",
              "name": "prev-button-inner"
            },
            {
              "description": "Parte para o botão de próxima página, usada para estilização via ::part().",
              "name": "next-button"
            },
            {
              "description": "Botão interno encaminhado da próxima página.",
              "name": "next-button-inner"
            },
            {
              "description": "Área do indicador de carregamento.",
              "name": "loading"
            }
          ],
          "slots": [
            {
              "description": "Informação customizada da paginação contextual. Quando utilizado, o texto padrão de contagem é substituído.",
              "name": "pagination-info"
            },
            {
              "description": "Indicador exibido enquanto uma página é carregada.",
              "name": "loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "ELLIPSIS_VISIBLE_ITEMS",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "4",
              "parsedType": {
                "text": "4"
              }
            },
            {
              "kind": "field",
              "name": "ELLIPSIS_ITEM_HEIGHT_FALLBACK",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "56",
              "parsedType": {
                "text": "56"
              }
            },
            {
              "kind": "field",
              "name": "ELLIPSIS_OVERSCAN",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "1",
              "parsedType": {
                "text": "1"
              }
            },
            {
              "kind": "field",
              "name": "LARGE_PAGE_THRESHOLD",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "10_000",
              "parsedType": {
                "text": "10000"
              }
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrPaginationElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "isSmall",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estado interno para responsividade. Verdadeiro quando viewport < sm."
            },
            {
              "kind": "field",
              "name": "goToOptionsReady",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Materializa as opções completas somente após a primeira abertura do seletor."
            },
            {
              "kind": "field",
              "name": "goToSearchTerm",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "ellipsisScrollOffsets",
              "type": {
                "text": "Record<string, number>"
              },
              "privacy": "private",
              "default": "{}",
              "description": "Controla a janela visível de cada dropdown de reticências.",
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "kind": "field",
              "name": "ellipsisItemHeight",
              "privacy": "private",
              "description": "Altura efetiva dos itens do dropdown de reticências.\nO valor fixo é usado somente até a primeira medição válida do DOM."
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "PaginationColorMode | undefined"
              },
              "description": "Define se a paginação usará um esquema de cores escuro. Valores inválidos são ignorados.\nQuando definido como `dark`, aplica a classe `dark-mode` ao container principal.",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por `generateUniqueId()`.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `customId`."
            },
            {
              "kind": "field",
              "name": "total",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Quantidade total de páginas (inteiro mínimo 1). Valores inválidos usam 1."
            },
            {
              "kind": "field",
              "name": "totalPages",
              "type": {
                "text": "number | undefined"
              },
              "description": "Quantidade total de páginas. Tem precedência sobre `total`; valores inválidos usam 1.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "current",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Página atual (inteira e 1-indexada). Valores inválidos usam 1; valores fora do intervalo são ajustados."
            },
            {
              "kind": "field",
              "name": "currentPage",
              "type": {
                "text": "number | undefined"
              },
              "description": "Página atual. Tem precedência sobre `current`; valores inválidos usam 1.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `ariaLabel`."
            },
            {
              "kind": "field",
              "name": "previousLabel",
              "type": {
                "text": "string"
              },
              "default": "'Voltar página'",
              "description": "Rótulo acessível do botão de página anterior."
            },
            {
              "kind": "field",
              "name": "nextLabel",
              "type": {
                "text": "string"
              },
              "default": "'Página seguinte'",
              "description": "Rótulo acessível do botão de próxima página."
            },
            {
              "kind": "field",
              "name": "ellipsisLabel",
              "type": {
                "text": "string"
              },
              "default": "'Abrir ou fechar a lista de paginação'",
              "description": "Rótulo acessível do botão de reticências que abre a lista de páginas ocultas."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "PaginationDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `density`.\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "PaginationVariant"
              },
              "default": "'default'",
              "description": "Variante de renderização do componente. Valores inválidos usam `default`.\n- `default`: paginação numérica (padrão)\n- `contextual`: paginação contextual com seletores e informação de itens",
              "parsedType": {
                "text": "'default' | 'contextual'"
              }
            },
            {
              "kind": "field",
              "name": "controlled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Mantém `current` e `perPage` sob controle da aplicação.\n\nQuando ativo, interações apenas emitem a intenção de mudança. A aplicação\ndeve atualizar a propriedade correspondente após concluir seu processamento."
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que a página solicitada ainda está sendo carregada pelo consumidor."
            },
            {
              "kind": "field",
              "name": "totalItems",
              "type": {
                "text": "number | undefined"
              },
              "description": "Total de itens (inteiro não negativo, aplicável na variante contextual). Valores inválidos usam 0.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "perPage",
              "type": {
                "text": "number"
              },
              "default": "10",
              "description": "Itens por página (inteiro positivo, aplicável na variante contextual). Valores inválidos usam 10."
            },
            {
              "kind": "field",
              "name": "perPageOptions",
              "type": {
                "text": "number[]"
              },
              "default": "[10, 20, 30]",
              "description": "Opções disponíveis de itens por página na variante `contextual`.\nPasse o array por property binding; atributos HTML não representam arrays.",
              "example": "```js\nconst pagination = document.querySelector('br-pagination');\npagination.perPageOptions = [10, 25, 50, 100];\n```"
            },
            {
              "kind": "field",
              "name": "perPageLabel",
              "type": {
                "text": "string"
              },
              "default": "'Exibir'",
              "description": "Rótulo do seletor de itens por página (variante contextual)."
            },
            {
              "kind": "field",
              "name": "goToPageLabel",
              "type": {
                "text": "string"
              },
              "default": "'Página'",
              "description": "Rótulo do seletor \"ir para página\" (variante contextual)."
            },
            {
              "kind": "field",
              "name": "itemsText",
              "type": {
                "text": "string"
              },
              "default": "'itens'",
              "description": "Sufixo textual para a informação de quantidade de itens (variante contextual)."
            },
            {
              "kind": "method",
              "name": "handleTotalChange"
            },
            {
              "kind": "method",
              "name": "handleTotalPagesChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCurrentChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCurrentPageChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handlePerPagePropChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleTotalItemsChange"
            },
            {
              "kind": "method",
              "name": "handleDensityChange"
            },
            {
              "kind": "method",
              "name": "setPage",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "page",
                  "type": {
                    "text": "number"
                  },
                  "description": "Página desejada (1-indexada).\nEm `controlled`, emite a solicitação sem alterar `current`."
                }
              ],
              "description": "Define programaticamente a página atual dentro do intervalo permitido."
            },
            {
              "kind": "method",
              "name": "goToPage",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "page",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Solicita navegação programática para uma página (1-indexada).\nEm `controlled`, aguarda a confirmação externa para alterar `current`."
            },
            {
              "kind": "field",
              "name": "mqlSmall",
              "type": {
                "text": "MediaQueryList | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "mqlSmallHandler",
              "type": {
                "text": "(event: MediaQueryListEvent) => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lastInteraction",
              "type": {
                "text": "PaginationLastInteraction | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "'number' | 'ellipsis' | 'goTo' | 'perPage'"
              }
            },
            {
              "kind": "field",
              "name": "ellipsisScrollFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "pendingEllipsisScrollOffsets",
              "type": {
                "text": "Record<string, number>"
              },
              "privacy": "private",
              "default": "{}",
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "kind": "field",
              "name": "pendingEllipsisFocus",
              "type": {
                "text": "PendingEllipsisFocus | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "{ key: string, pageIndex: number, scrollTop: number }"
              }
            },
            {
              "kind": "field",
              "name": "goToOptionsCache",
              "type": {
                "text": "SelectOptionData[] | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "pendingGoToPage",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "pendingGoToResetFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "method",
              "name": "computeItemHeightForDensity",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "setupMediaQuery",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "cleanupMediaQuery",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "PaginationColorMode | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVariant",
              "type": {
                "text": "PaginationVariant"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'default' | 'contextual'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTotal",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveTotalPages",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveCurrentPage",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTotalItems",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectivePerPage",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectivePerPageOptions",
              "type": {
                "text": "number[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getDefaultTotalPages",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveCurrent",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "clampPage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "goTo",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handlePrevClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleNextClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handlePageClickFactory",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleEllipsisItemClickFactory",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getVisiblePageButtons",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "focusPageButtonByIndex",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handlePageKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "queueFocusAfterNavigation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getComputedNavAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderPageButton",
              "privacy": "private",
              "parameters": [
                {
                  "name": "page",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getEllipsisRangeKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "position",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "from",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "to",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "resetAllEllipsisScrollOffsets",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resetEllipsisScrollOffset",
              "privacy": "private",
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getEllipsisMetrics",
              "privacy": "private",
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setEllipsisScrollOffset",
              "privacy": "private",
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "scrollTop",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "totalItems",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getEllipsisListElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusEllipsisItemNow",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "pageIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "flushPendingEllipsisFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "ensureEllipsisItemVisible",
              "privacy": "private",
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "pageIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleEllipsisScrollFactory",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getEllipsisBoundaryNavigationIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number | null"
                }
              },
              "parameters": [
                {
                  "name": "eventKey",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "pageIndex",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "visibleItems",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "renderedStartIndex",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "renderedEndIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleEllipsisEscape",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleEllipsisBoundaryNavigation",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                },
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "totalItems",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "pageIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleEllipsisItemKeyDownFactory",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderEllipsis",
              "privacy": "private",
              "parameters": [
                {
                  "name": "from",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "to",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "position",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderPagesSmall",
              "privacy": "private",
              "parameters": [
                {
                  "name": "total",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "current",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderPagesStandard",
              "privacy": "private",
              "parameters": [
                {
                  "name": "total",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "current",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderPages",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderLoading",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getTotalPages",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRangeInfo",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "PaginationRangeInfo"
                }
              }
            },
            {
              "kind": "field",
              "name": "handlePerPageChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleContextualSelectChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<string>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderPerPageDropdown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderPerPageSelect",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleGoToPageChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderGoToSelect",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleGoToSelectOpened",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getWindowedGoToOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "totalPages",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "query",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCurrentGoToOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "totalPages",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getGoToOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "totalPages",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderContextual",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Define se a paginação usará um esquema de cores escuro. Valores inválidos são ignorados.\nQuando definido como `dark`, aplica a classe `dark-mode` ao container principal.",
              "type": {
                "text": "PaginationColorMode"
              },
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por `generateUniqueId()`.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `customId`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "total",
              "fieldName": "total",
              "default": "1",
              "description": "Quantidade total de páginas (inteiro mínimo 1). Valores inválidos usam 1."
            },
            {
              "name": "total-pages",
              "fieldName": "totalPages",
              "description": "Quantidade total de páginas. Tem precedência sobre `total`; valores inválidos usam 1.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "current",
              "fieldName": "current",
              "default": "1",
              "description": "Página atual (inteira e 1-indexada). Valores inválidos usam 1; valores fora do intervalo são ajustados."
            },
            {
              "name": "current-page",
              "fieldName": "currentPage",
              "description": "Página atual. Tem precedência sobre `current`; valores inválidos usam 1.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `ariaLabel`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "previous-label",
              "fieldName": "previousLabel",
              "default": "'Voltar página'",
              "description": "Rótulo acessível do botão de página anterior."
            },
            {
              "name": "next-label",
              "fieldName": "nextLabel",
              "default": "'Página seguinte'",
              "description": "Rótulo acessível do botão de próxima página."
            },
            {
              "name": "ellipsis-label",
              "fieldName": "ellipsisLabel",
              "default": "'Abrir ou fechar a lista de paginação'",
              "description": "Rótulo acessível do botão de reticências que abre a lista de páginas ocultas."
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\n> **Uso compartilhado:** mantenha esta descrição idêntica em todos os componentes que usam `density`.\nValores inválidos usam `medium`.",
              "type": {
                "text": "PaginationDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "default": "'default'",
              "description": "Variante de renderização do componente. Valores inválidos usam `default`.\n- `default`: paginação numérica (padrão)\n- `contextual`: paginação contextual com seletores e informação de itens",
              "type": {
                "text": "PaginationVariant"
              },
              "parsedType": {
                "text": "'default' | 'contextual'"
              }
            },
            {
              "name": "controlled",
              "fieldName": "controlled",
              "default": "false",
              "description": "Mantém `current` e `perPage` sob controle da aplicação.\n\nQuando ativo, interações apenas emitem a intenção de mudança. A aplicação\ndeve atualizar a propriedade correspondente após concluir seu processamento.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "default": "false",
              "description": "Indica que a página solicitada ainda está sendo carregada pelo consumidor.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "total-items",
              "fieldName": "totalItems",
              "description": "Total de itens (inteiro não negativo, aplicável na variante contextual). Valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "per-page",
              "fieldName": "perPage",
              "default": "10",
              "description": "Itens por página (inteiro positivo, aplicável na variante contextual). Valores inválidos usam 10."
            },
            {
              "name": "per-page-options",
              "fieldName": "perPageOptions",
              "default": "[10, 20, 30]",
              "description": "Opções disponíveis de itens por página na variante `contextual`.\nPasse o array por property binding; atributos HTML não representam arrays.",
              "type": {
                "text": "number[]"
              }
            },
            {
              "name": "per-page-label",
              "fieldName": "perPageLabel",
              "default": "'Exibir'",
              "description": "Rótulo do seletor de itens por página (variante contextual)."
            },
            {
              "name": "go-to-page-label",
              "fieldName": "goToPageLabel",
              "default": "'Página'",
              "description": "Rótulo do seletor \"ir para página\" (variante contextual)."
            },
            {
              "name": "items-text",
              "fieldName": "itemsText",
              "default": "'itens'",
              "description": "Sufixo textual para a informação de quantidade de itens (variante contextual)."
            }
          ],
          "tagName": "br-pagination",
          "status": "stable",
          "csspart": [
            {
              "name": "nav",
              "description": "Parte para o contêiner raiz da paginação (elemento nav), usada para estilização via ::part()."
            },
            {
              "name": "list",
              "description": "Parte para a lista de páginas (elemento ul), usada para estilização via ::part()."
            },
            {
              "name": "page",
              "description": "Parte para os itens de página numérica (elemento a), usada para estilização via ::part()."
            },
            {
              "name": "ellipsis",
              "description": "Parte para o botão de reticências e seu contêiner."
            },
            {
              "name": "ellipsis-button",
              "description": "Parte encaminhada do botão de reticências."
            },
            {
              "name": "per-page",
              "description": "Parte para o seletor de itens por página na variante contextual."
            },
            {
              "name": "per-page-container",
              "description": "Contêiner encaminhado do seletor de itens por página."
            },
            {
              "name": "per-page-input",
              "description": "Campo encaminhado do seletor de itens por página."
            },
            {
              "name": "per-page-input-label",
              "description": "Rótulo encaminhado do seletor de itens por página."
            },
            {
              "name": "per-page-list",
              "description": "Lista encaminhada do seletor de itens por página."
            },
            {
              "name": "go-to",
              "description": "Parte para o seletor de navegação direta na variante contextual."
            },
            {
              "name": "go-to-container",
              "description": "Contêiner encaminhado do seletor de navegação direta."
            },
            {
              "name": "go-to-input",
              "description": "Campo encaminhado do seletor de navegação direta."
            },
            {
              "name": "go-to-input-label",
              "description": "Rótulo encaminhado do seletor de navegação direta."
            },
            {
              "name": "go-to-list",
              "description": "Lista encaminhada do seletor de navegação direta."
            },
            {
              "name": "prev-button",
              "description": "Parte para o botão de página anterior, usada para estilização via ::part()."
            },
            {
              "name": "prev-button-inner",
              "description": "Botão interno encaminhado da página anterior."
            },
            {
              "name": "next-button",
              "description": "Parte para o botão de próxima página, usada para estilização via ::part()."
            },
            {
              "name": "next-button-inner",
              "description": "Botão interno encaminhado da próxima página."
            },
            {
              "name": "loading",
              "description": "Área do indicador de carregamento."
            }
          ],
          "events": [
            {
              "name": "pageChange",
              "type": {
                "text": "EventEmitter<PaginationPageChangeDetail>"
              },
              "description": "Solicita uma página por interação do usuário ou pelo método público.\n\nEm `controlled`, o evento informa a página solicitada, mas `current` só\nmuda quando a aplicação confirma o resultado. O componente não faz\nchamadas remotas nem cancela a consulta do consumidor."
            },
            {
              "name": "brPaginationPageChange",
              "type": {
                "text": "EventEmitter<PaginationPageChangeDetail>"
              },
              "description": "Evento para iniciar o carregamento de uma página.\nO `detail` contém `{ page }`; o evento não é cancelável."
            },
            {
              "name": "perPageChange",
              "type": {
                "text": "EventEmitter<PaginationPerPageChangeDetail>"
              },
              "description": "Solicita uma quantidade de itens por página (variante contextual).\nEm `controlled`, a aplicação confirma a mudança atribuindo `perPage`."
            },
            {
              "name": "brPaginationPerPageChange",
              "type": {
                "text": "EventEmitter<PaginationPerPageChangeDetail>"
              },
              "description": "Evento para iniciar o carregamento de uma nova quantidade de\nitens. O `detail` contém `{ perPage }`; o evento não é cancelável."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Dados",
            "Progresso"
          ],
          "cssProperties": [
            {
              "name": "--br-input-margin-bottom",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Pagination",
          "declaration": {
            "name": "Pagination",
            "module": "components/pagination.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-pagination",
          "declaration": {
            "name": "Pagination",
            "module": "components/pagination.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/radio.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-radio` representa uma opção individual dentro de um conjunto de escolha única.\n\nDefina `name` para associar as opções do mesmo grupo, `value` para o valor enviado no formulário e `label` para o texto exibido.\n\n```html\n<br-radio name=\"preferencia\" value=\"email\" label=\"Receber por e-mail\" checked></br-radio>\n<br-radio name=\"preferencia\" value=\"sms\" label=\"Receber por SMS\"></br-radio>\n```\n\nEm formulários HTML, integra-se nativamente via `ElementInternals` com suporte a `required`.\n\n### Quando usar\n\n- Opção única em grupos pequenos de 2 a 5 alternativas.\n\n### Quando evitar\n\n- Mais de 5 opções: use `br-select`.\n- Seleção múltipla: use `br-checkbox`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/radio?tab=designer).",
          "name": "Radio",
          "cssParts": [
            {
              "description": "Contêiner visual do radio.",
              "name": "container"
            },
            {
              "description": "Elemento input nativo do radio.",
              "name": "radio-input"
            },
            {
              "description": "Rótulo do radio.",
              "name": "radio-label"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Slot para o rótulo do rádio, como alternativa à propriedade label.",
              "name": "default"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrRadioElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "updateTrigger",
              "type": {
                "text": "number"
              },
              "default": "0"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot de feedback possui conteúdo fornecido pelo consumidor."
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Mensagem definida pela Constraint Validation API."
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "groupManaged",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "groupDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "groupTabIndex",
              "type": {
                "text": "number"
              },
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "groupNativeName",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado de seleção do radio.\nSe definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado."
            },
            {
              "kind": "field",
              "name": "uncheckOnClick",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Permite desmarcar o radio ao clicar novamente sobre ele quando já estiver selecionado.\nPor padrão, um radio selecionado permanece marcado ao receber um novo clique.\nQuando usada junto com `uncheckOnDoubleClick`, esta opção tem precedência."
            },
            {
              "kind": "field",
              "name": "uncheckOnDoubleClick",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Permite desmarcar o radio ao clicar duas vezes sobre ele.\nPor padrão, um radio selecionado permanece marcado ao receber um segundo clique."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o radio, tornando-o não interativo."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o radio é obrigatório e uma opção deve ser selecionada antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "RadioValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do radio.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst radio = document.querySelector('br-radio');\nradio.validator = (checked) => checked ? null : 'Selecione esta opção';\n```"
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "readonly": true,
              "description": "Indica a validade do radio.\nSe não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.",
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "readonly": true,
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "hasHiddenLabel",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Define se o label associado ao radio deve ser oculto.\nSe definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.",
              "deprecated": "Use `labelHidden`."
            },
            {
              "kind": "field",
              "name": "labelHidden",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único; gerado automaticamente quando omitido."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o nome do radio, que é utilizado para agrupar radios em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto descritivo exibido à direita do radio.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o valor associado ao radio quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o radio está selecionado.\n**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`."
            },
            {
              "kind": "method",
              "name": "checkedChanged"
            },
            {
              "kind": "method",
              "name": "disabledChanged"
            },
            {
              "kind": "method",
              "name": "valueChanged"
            },
            {
              "kind": "method",
              "name": "dispatchInternalStateChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "property",
                  "type": {
                    "text": "'checked' | 'disabled' | 'value'"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleRadioGroupState",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ managed: boolean; disabled: boolean; tabIndex: number; nativeName?: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCheckedChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<boolean>"
                  }
                }
              ],
              "description": "Mantém o protocolo legado de sincronização por `checkedChange`.",
              "deprecated": "A coordenação interna agora é limitada à raiz DOM do grupo."
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  },
                  "description": "O evento de teclado."
                }
              ],
              "description": "Navega e seleciona o próximo/anterior rádio habilitado no grupo via teclas de seta.\nAtivado por 'keydown', move a seleção entre rádios do mesmo 'name'\nusando as setas, partindo do rádio atualmente checado."
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do radio for válido, caso contrário `false`.\nSe o radio for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do radio for válido, caso contrário `false`.\nSe for inválido, exibe a mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define uma mensagem de validação customizada para o radio.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do radio e retorna se o valor atual é válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "toggleChecked",
              "description": "Inverte o valor da prop `checked`",
              "deprecated": "Atualize a propriedade `checked` diretamente."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "description": "Move o foco para o input radio nativo interno."
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private",
              "description": "Referência nativa do input radio para acessar a API de validação"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "initialChecked",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "isManagedByGroup",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "getNativeName",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "isStandalonePeer",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "radio",
                  "type": {
                    "text": "HTMLBrRadioElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "onClick",
              "privacy": "private",
              "readonly": true,
              "description": "Handler para o event `click`",
              "parameters": [
                {
                  "description": "Objeto Event",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "field",
              "name": "onInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "onChange",
              "privacy": "private",
              "readonly": true,
              "description": "Handler para o evento `change`"
            },
            {
              "kind": "method",
              "name": "handleDoubleClick"
            },
            {
              "kind": "method",
              "name": "uncheck",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "computeTabIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncGroupTabStops",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "checked",
              "fieldName": "checked",
              "default": "false",
              "description": "Define o estado de seleção do radio.\nSe definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "uncheck-on-click",
              "fieldName": "uncheckOnClick",
              "default": "false",
              "description": "Permite desmarcar o radio ao clicar novamente sobre ele quando já estiver selecionado.\nPor padrão, um radio selecionado permanece marcado ao receber um novo clique.\nQuando usada junto com `uncheckOnDoubleClick`, esta opção tem precedência.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "uncheck-on-double-click",
              "fieldName": "uncheckOnDoubleClick",
              "default": "false",
              "description": "Permite desmarcar o radio ao clicar duas vezes sobre ele.\nPor padrão, um radio selecionado permanece marcado ao receber um segundo clique.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o radio, tornando-o não interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o radio é obrigatório e uma opção deve ser selecionada antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do radio.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "type": {
                "text": "RadioValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Indica a validade do radio.\nSe não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "name": "has-hidden-label",
              "fieldName": "hasHiddenLabel",
              "default": "false",
              "description": "Define se o label associado ao radio deve ser oculto.\nSe definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label-hidden",
              "fieldName": "labelHidden",
              "description": "Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único; gerado automaticamente quando omitido.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Define o nome do radio, que é utilizado para agrupar radios em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo exibido à direita do radio.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Define o valor associado ao radio quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o radio está selecionado.\n**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`.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-radio",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual do radio."
            },
            {
              "name": "radio-input",
              "description": "Elemento input nativo do radio."
            },
            {
              "name": "radio-label",
              "description": "Rótulo do radio."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "see": [
            "br-radio-group"
          ],
          "events": [
            {
              "name": "checkedChange",
              "type": {
                "text": "EventEmitter<boolean>"
              },
              "description": "Disparado depois que o valor do `checked` foi alterado.",
              "deprecated": "Use `input`/`change` e leia `event.target.checked`."
            },
            {
              "name": "brRadioValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Radio",
          "declaration": {
            "name": "Radio",
            "module": "components/radio.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-radio",
          "declaration": {
            "name": "Radio",
            "module": "components/radio.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/radio-group.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-radio-group` agrupa opções de múltipla escolha onde apenas uma pode ser selecionada.\n\nAdicione os elementos `br-radio` no slot padrão. Defina o rótulo do grupo em `label` e o valor selecionado em `value`.\n\n```html\n<br-radio-group label=\"Turno de atendimento\" name=\"turno\">\n  <br-radio value=\"manha\" label=\"Manhã\"></br-radio>\n  <br-radio value=\"tarde\" label=\"Tarde\"></br-radio>\n  <br-radio value=\"noite\" label=\"Noite\"></br-radio>\n</br-radio-group>\n```\n\nEm formulários HTML, o grupo integra-se via `ElementInternals`, controlando validação nativa com `required`.\n\n### Quando usar\n\n- Entre 2 e 5 opções mutuamente exclusivas que devem permanecer visíveis.\n\n### Quando evitar\n\n- Mais de 6 opções: use `br-select` para economizar espaço de tela.\n- Seleção de múltiplas opções ao mesmo tempo: use `br-checkbox-group`.\n- Liga/desliga imediato: use `br-switch`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/radio-group?tab=designer).",
          "name": "RadioGroup",
          "cssParts": [
            {
              "description": "Fieldset semântico do grupo.",
              "name": "group"
            },
            {
              "description": "Legenda e nome acessível do grupo.",
              "name": "legend"
            },
            {
              "description": "Contêiner das opções.",
              "name": "options"
            },
            {
              "description": "Área de texto auxiliar.",
              "name": "description"
            },
            {
              "description": "Área de mensagem de validação.",
              "name": "feedback"
            },
            {
              "description": "Área do indicador de validação assíncrona.",
              "name": "validation-loading"
            }
          ],
          "slots": [
            {
              "description": "Radios pertencentes ao grupo.",
              "name": "default"
            },
            {
              "description": "Legenda do grupo, como alternativa à propriedade `label`.",
              "name": "label"
            },
            {
              "description": "Texto auxiliar do grupo.",
              "name": "description"
            },
            {
              "description": "Mensagem de validação do grupo.",
              "name": "feedback"
            },
            {
              "description": "Indicador exibido durante validação assíncrona.",
              "name": "validation-loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasInteracted",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasDescriptionSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasLabelSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasValidationLoadingSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome do campo enviado pelo formulário."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Valor atualmente selecionado; `null` representa nenhuma seleção.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "defaultValue",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Valor restaurado por `form.reset()` e usado como seleção inicial.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exige uma opção habilitada selecionada."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desabilita o grupo e seus radios."
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "RadioGroupOrientation"
              },
              "readonly": true,
              "default": "'vertical'",
              "description": "Orientação visual das opções. Valores inválidos usam `vertical`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Texto visível usado como legenda do grupo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "readonly": true,
              "default": "null",
              "description": "Nome acessível usado quando não há uma legenda visível.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "readonly": true,
              "description": "Estado visual opcional do feedback. Valores inválidos não aplicam estado. A validade real vem de ElementInternals.",
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "RadioGroupValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao valor do grupo.\nRecebe a string selecionada ou `null` quando nenhuma opção está marcada.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst group = document.querySelector('br-radio-group');\ngroup.validator = (value) => value ? null : 'Escolha uma alternativa';\n```"
            },
            {
              "kind": "field",
              "name": "customId",
              "readonly": true,
              "description": "Identificador usado nas relações acessíveis internas."
            },
            {
              "kind": "field",
              "name": "initialValue",
              "type": {
                "text": "string | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "syncingChildren",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "checkingValidity",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "ready",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "originalNames",
              "privacy": "private",
              "default": "new Map<ManagedRadio, string | undefined>()"
            },
            {
              "kind": "field",
              "name": "reconciler",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleValueChange"
            },
            {
              "kind": "method",
              "name": "handleNameChange"
            },
            {
              "kind": "method",
              "name": "handleDisabledChange",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleValidatorChange"
            },
            {
              "kind": "method",
              "name": "handleDefaultValueChange",
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleRequiredChange"
            },
            {
              "kind": "method",
              "name": "handleCustomValidityChange"
            },
            {
              "kind": "method",
              "name": "handleChildInput",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "globalThis.Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleChildChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "globalThis.Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleFocusOut",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInvalid"
            },
            {
              "kind": "method",
              "name": "handleChildChecked",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "globalThis.Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleChildStateChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ property?: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Verifica a validade do grupo."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Verifica a validade e apresenta a mensagem do grupo."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define a mensagem de validade customizada do grupo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do grupo."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna o snapshot de validade do grupo."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Move o foco para o radio marcado ou para o primeiro radio habilitado."
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getChildren",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "ManagedRadio[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRadioValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "parameters": [
                {
                  "name": "radio",
                  "type": {
                    "text": "ManagedRadio"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "isWithinGroup",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "EventTarget | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "markAsInteracted",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "clearInteraction",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleChildFormEvent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "globalThis.Event"
                  }
                },
                {
                  "name": "type",
                  "type": {
                    "text": "'input' | 'change'"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncManagedState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "children",
                  "type": {
                    "text": "ManagedRadio[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "manageRadio",
              "privacy": "private",
              "parameters": [
                {
                  "name": "radio",
                  "type": {
                    "text": "ManagedRadio"
                  }
                },
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "ManagedRadio"
                  }
                },
                {
                  "name": "firstEnabled",
                  "optional": true,
                  "type": {
                    "text": "ManagedRadio"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "releaseRadio",
              "privacy": "private",
              "parameters": [
                {
                  "name": "radio",
                  "type": {
                    "text": "ManagedRadio"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncNamedSlots",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyValueToChildren",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "reconcileChildren",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getValidityMessage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getNativeValidityMessage",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "cancelValidation",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "RadioGroupOrientation"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "'valid' | 'invalid' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderDefaultFeedback",
              "privacy": "private",
              "parameters": [
                {
                  "name": "hasError",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo enviado pelo formulário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "null",
              "description": "Valor atualmente selecionado; `null` representa nenhuma seleção.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "default-value",
              "fieldName": "defaultValue",
              "description": "Valor restaurado por `form.reset()` e usado como seleção inicial.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Exige uma opção habilitada selecionada.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita o grupo e seus radios.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "default": "'vertical'",
              "description": "Orientação visual das opções. Valores inválidos usam `vertical`.",
              "type": {
                "text": "RadioGroupOrientation"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto visível usado como legenda do grupo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Nome acessível usado quando não há uma legenda visível.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado visual opcional do feedback. Valores inválidos não aplicam estado. A validade real vem de ElementInternals.",
              "type": {
                "text": "'valid' | 'invalid'"
              },
              "parsedType": {
                "text": "'valid' | 'invalid'"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao valor do grupo.\nRecebe a string selecionada ou `null` quando nenhuma opção está marcada.",
              "type": {
                "text": "RadioGroupValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador usado nas relações acessíveis internas."
            }
          ],
          "tagName": "br-radio-group",
          "csspart": [
            {
              "name": "group",
              "description": "Fieldset semântico do grupo."
            },
            {
              "name": "legend",
              "description": "Legenda e nome acessível do grupo."
            },
            {
              "name": "options",
              "description": "Contêiner das opções."
            },
            {
              "name": "description",
              "description": "Área de texto auxiliar."
            },
            {
              "name": "feedback",
              "description": "Área de mensagem de validação."
            },
            {
              "name": "validation-loading",
              "description": "Área do indicador de validação assíncrona."
            }
          ],
          "see": [
            "br-radio"
          ],
          "events": [
            {
              "name": "brRadioGroupValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir uma validação customizada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RadioGroup",
          "declaration": {
            "name": "RadioGroup",
            "module": "components/radio-group.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-radio-group",
          "declaration": {
            "name": "RadioGroup",
            "module": "components/radio-group.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/scrim.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-scrim` cria uma máscara visual escura sobre a tela ou sobre um elemento pai para focar a atenção do usuário.\n\nUse os métodos `show()`, `hide()` ou a propriedade `active` para controlar a exibição. Coloque o conteúdo em destaque no slot padrão.\n\n```html\n<br-scrim active>\n  <div class=\"destaque\">Conteúdo em evidência</div>\n</br-scrim>\n```\n\n### Quando usar\n\n- Destaque visual pontual de um elemento (tutoriais guiados ou máscaras personalizadas).\n\n### Quando evitar\n\n- Caixas de diálogo modais padrão: use `br-modal` (que já gerencia seu próprio scrim internamente).\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/scrim?tab=designer).",
          "name": "Scrim",
          "slots": [
            {
              "description": "Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.",
              "name": "default"
            },
            {
              "description": "Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.",
              "name": "activator"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "legibilityBatch",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrScrimElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "hasActivatorSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "spotlightRect",
              "type": {
                "text": "DOMRect | null"
              },
              "default": "null",
              "description": "Rect do elemento alvo do scrim vazado."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado."
            },
            {
              "kind": "field",
              "name": "isOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Ativa/desativa o scrim"
            },
            {
              "kind": "field",
              "name": "isActive",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveCustomOpacity",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveScrollThreshold",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveSpotlightPadding",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveZIndex",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "positionContent",
              "type": {
                "text": "ScrimPositionContent"
              },
              "description": "Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim",
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "disableCloseOnClick",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desativa o fechamento do scrim ao ser clicado"
            },
            {
              "kind": "field",
              "name": "zIndex",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Define o valor de z-index do scrim. Deve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "bgColor",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Cor de fundo personalizada para o scrim.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não especificada, usa a cor padrão do tema.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "customOpacity",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Define a opacidade personalizada do scrim. O valor é limitado ao intervalo `0`–`1`; entradas inválidas usam `0.4`.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "displayMode",
              "type": {
                "text": "ScrimDisplayMode"
              },
              "default": "'fullscreen'",
              "description": "Define o modo de exibição do scrim:\n- `'fullscreen'`: Ocupa toda a tela (`position: fixed`). (_padrão_)\n- `'parent'`: Ocupa apenas o elemento pai (`position: absolute`).\n  O elemento pai deve ter `position: relative` ou outro valor diferente de `static`.\n\nPara a variante `'legibility'`, este atributo é ignorado: o posicionamento é sempre\ncalculado automaticamente a partir das coordenadas do elemento pai.",
              "parsedType": {
                "text": "'fullscreen' | 'parent'"
              }
            },
            {
              "kind": "field",
              "name": "scrollStrategy",
              "type": {
                "text": "ScrimScrollStrategy"
              },
              "description": "Define a estratégia de manipulação de rolagem quando scrim está aberto\n- 'block': Impede a rolagem completamente\n- 'close': Fecha o scrim quando ocorre rolagem",
              "parsedType": {
                "text": "'block' | 'close'"
              }
            },
            {
              "kind": "field",
              "name": "scrollThreshold",
              "type": {
                "text": "number"
              },
              "default": "50",
              "description": "Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim. Valores negativos usam `0`."
            },
            {
              "kind": "field",
              "name": "activator",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Define o seletor para o elemento activator.\nNota: O slot 'activator' tem prioridade sobre esta propriedade.",
              "parsedType": {
                "text": "string"
              },
              "example": "```html\n<button id=\"abrir-ajuda\" type=\"button\">Abrir ajuda</button>\n<br-scrim activator=\"#abrir-ajuda\">Conteúdo</br-scrim>\n```"
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Define um rótulo acessível personalizado para o diálogo.\nSe não fornecido, será usado \"Conteúdo do diálogo\" como padrão.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "ScrimVariant"
              },
              "default": "'focus'",
              "description": "Define a variante semântica do scrim\n- `'focus'`: Redireciona o foco hierárquico do usuário. Cor #000000 com opacidade 40%. (_padrão_)\n- `'spotlight'`: Scrim vazado — destaca um elemento específico criando uma fresta no overlay.\n  Aplica as mesmas cores da variante `'focus'`. Use `spotlightTargetId` para indicar o elemento a ser destacado.\n- `'legibility'`: Melhora o contraste e leitura de texto sobre superfícies. Cor #000000 com opacidade 64%.\n  Para cobertura parcial, use `legibilityAnchor` + `legibilitySize`.\n  Para gradiente suave, use `bgColor` com um valor de gradiente CSS e `customOpacity=\"1\"`,\n  ex.: `bg-color=\"linear-gradient(to top, rgba(0,0,0,0.64), transparent)\"`..\n\nQuando definida, aplica automaticamente as especificações de cor e opacidade do Design System.\nAs propriedades `bgColor` e `customOpacity` têm prioridade e sobrepõem os valores da variante.",
              "parsedType": {
                "text": "'focus' | 'spotlight' | 'legibility'"
              }
            },
            {
              "kind": "field",
              "name": "legibilityAnchor",
              "type": {
                "text": "ScrimLegibilityAnchor"
              },
              "default": "'bottom'",
              "description": "Define a borda de ancoragem da faixa de cobertura da variante `legibility`.\n\nControla de qual borda (ou centro) do elemento a máscara de overlay cresce,\ntendo seu tamanho determinado por `legibilitySize`.\n\n- `'top'`: faixa ancorada na borda superior, cresce para baixo.\n- `'bottom'`: faixa ancorada na borda inferior, cresce para cima.\n- `'left'`: faixa ancorada na borda esquerda, cresce para a direita.\n- `'right'`: faixa ancorada na borda direita, cresce para a esquerda.\n- `'center'`: faixa centralizada verticalmente no elemento.\n\nQuando `legibilitySize` é `null`, a máscara ocupa 100% independentemente\nda âncora definida, equivalendo a uma cobertura total.\n\nSó tem efeito quando `variant=\"legibility\"`.",
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "legibilitySize",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Define o tamanho da faixa de cobertura da variante `legibility`, usado em\nconjunto com `legibilityAnchor`.\n\nAceita qualquer valor CSS de comprimento válido:\n- Percentual relativo ao elemento pai: `'40%'`, `'75%'`\n- Comprimento absoluto: `'120px'`, `'8rem'`, `'6em'`\n- Função CSS: `'calc(100% - 2rem)'`\n\nQuando `null` (padrão), a máscara ocupa **100%** da dimensão relevante:\n- **altura** para âncoras `top`, `bottom` e `center`\n- **largura** para âncoras `left` e `right`\n\nSó tem efeito quando `variant=\"legibility\"` está definido.",
              "parsedType": {
                "text": "string"
              },
              "example": "```html\n<br-scrim variant=\"legibility\" legibility-anchor=\"bottom\" legibility-size=\"40%\">\n  Texto sobre a imagem\n</br-scrim>\n```"
            },
            {
              "kind": "field",
              "name": "legibilityTargetId",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Seletor CSS do elemento que deve receber o posicionamento da variante\n`legibility`. Quando não informado (padrão), o alvo é o elemento pai\ndireto do `<br-scrim>`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "spotlightTargetId",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Ativa o modo de scrim vazado (variante 'spotlight'), criando uma área de fresta no overlay\nque destaca o elemento referenciado pelo seletor CSS fornecido.",
              "parsedType": {
                "text": "string"
              },
              "example": "```html\n<button id=\"acao-principal\" type=\"button\">Continuar</button>\n<br-scrim variant=\"spotlight\" spotlight-target-id=\"#acao-principal\"></br-scrim>\n```"
            },
            {
              "kind": "field",
              "name": "spotlightPadding",
              "type": {
                "text": "number"
              },
              "default": "8",
              "description": "Espaçamento interno (em pixels) ao redor da área de fresta no scrim vazado. Valores negativos usam `0`."
            },
            {
              "kind": "field",
              "name": "spotlightShape",
              "type": {
                "text": "ScrimSpotlightShape"
              },
              "default": "'rect'",
              "description": "Define a forma da área de fresta no scrim vazado.\n- 'rect': Retangular com bordas retas.\n- 'rounded': Retangular com bordas arredondadas (border-radius de 8px).\n- 'circle': Elipse inscrita na área do elemento alvo.",
              "parsedType": {
                "text": "'circle' | 'rect' | 'rounded'"
              }
            },
            {
              "kind": "field",
              "name": "contentLayout",
              "type": {
                "text": "ScrimContentLayout"
              },
              "default": "'default'",
              "description": "Define como o scrim aplica estilos de layout ao elemento filho (slot padrão).\n\n- `'default'`: O scrim gerencia o layout do conteúdo, centralizando, animando e aplicando transformações e opacidade automaticamente.\n\n- `'none'`: o scrim age como um componente controlado pelo pai. O filho recebe apenas a máscara visual, sem interferência de posicionamento, transformação ou opacidade.\nAdequado para componentes que gerenciam seu próprio layout e estado de abertura. Além disso:\n\n  - Foco e eventos globais** não são interceptados pelo scrim — o componente filho gerencia seu próprio foco, navegação por teclado e fechamento via ESC.\n  - Clique no scrim emite `brScrimClose` sem fechar o scrim internamente, delegando o controle de estado ao pai (quem define `isOpen`).\n  - Use `zIndex` apenas para sobrescrever a camada bloqueadora no fallback CSS. Máscara e painel devem usar subcamadas locais, sem aritmética entre camadas globais.",
              "parsedType": {
                "text": "'none' | 'default'"
              }
            },
            {
              "kind": "field",
              "name": "effectivePositionContent",
              "type": {
                "text": "ScrimPositionContent"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveScrollStrategy",
              "type": {
                "text": "ScrimScrollStrategy"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'block' | 'close'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVariant",
              "type": {
                "text": "ScrimVariant"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'focus' | 'spotlight' | 'legibility'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveLegibilityAnchor",
              "type": {
                "text": "ScrimLegibilityAnchor"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveSpotlightShape",
              "type": {
                "text": "ScrimSpotlightShape"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'circle' | 'rect' | 'rounded'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveContentLayout",
              "type": {
                "text": "ScrimContentLayout"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'none' | 'default'"
              }
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateStyles"
            },
            {
              "kind": "method",
              "name": "handleVariantChange"
            },
            {
              "kind": "method",
              "name": "handleLayerModeChange"
            },
            {
              "kind": "method",
              "name": "handleSpotlightChange"
            },
            {
              "kind": "method",
              "name": "handleLegibilityTargetChange"
            },
            {
              "kind": "method",
              "name": "handleActivatorChange"
            },
            {
              "kind": "method",
              "name": "setScrollThreshold",
              "parameters": [
                {
                  "name": "threshold",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Define o limite de rolagem para o fechamento automático do scrim."
            },
            {
              "kind": "method",
              "name": "open",
              "description": "Método público para exibir o scrim"
            },
            {
              "kind": "method",
              "name": "close",
              "description": "Método público para esconder o scrim"
            },
            {
              "kind": "method",
              "name": "toggle",
              "description": "Método público para alternar o estado de exibição do scrim"
            },
            {
              "kind": "method",
              "name": "updateSpotlight",
              "description": "Recalcula manualmente a posição e dimensões da fresta do scrim vazado.\nÚtil quando o elemento alvo muda de posição sem disparar resize ou scroll."
            },
            {
              "kind": "field",
              "name": "displayModeExplicit",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o atributo `display-mode` foi explicitamente informado pelo usuário"
            },
            {
              "kind": "field",
              "name": "contentRef",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "activatorElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "lastScrollTop",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "scrollOrigin",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "previouslyFocusedElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "focusTimeoutId",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "restoreFocusTimeoutId",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "spotlightResizeObserver",
              "type": {
                "text": "ResizeObserver | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "ResizeObserver que monitora o elemento alvo do spotlight para recalcular a posição."
            },
            {
              "kind": "field",
              "name": "spotlightTargetElement",
              "type": {
                "text": "Element | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento atualmente sendo destacado pelo scrim vazado."
            },
            {
              "kind": "field",
              "name": "scrimDivRef",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Referência ao container interno para estilos locais e fallback sem `<dialog>`."
            },
            {
              "kind": "field",
              "name": "nativeDialogRef",
              "type": {
                "text": "HTMLDialogElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "legibilityResizeObserver",
              "type": {
                "text": "ResizeObserver | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "ResizeObserver que monitora o elemento pai para recalcular a posição da variante legibility."
            },
            {
              "kind": "field",
              "name": "globalInterceptionAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isModalFocusing",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Flag que suprime handleGlobalFocus enquanto a modal filha está\ngerenciando ativamente sua própria sequência de foco (moveFocusIntoModal)."
            },
            {
              "kind": "field",
              "name": "modalFocusSuppressId",
              "type": {
                "text": "NodeJS.Timeout | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "FOCUSABLE_SELECTORS",
              "privacy": "private",
              "static": true,
              "readonly": true
            },
            {
              "kind": "method",
              "name": "addContentEventListener",
              "privacy": "private",
              "description": "Adiciona event listener ao contentRef para capturar eventos de teclado\ne gerenciar a navegação por teclado dentro do scrim."
            },
            {
              "kind": "method",
              "name": "suppressFocusGuard",
              "privacy": "private",
              "parameters": [
                {
                  "name": "safetyMs",
                  "default": "1000",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Ativa o guard que suprime `handleGlobalFocus` enquanto a modal filha executa\nsua sequência assíncrona de foco (`moveFocusIntoModal`).\n\nO guard é desativado assim que o evento `brModalFocusReady` chega (via\n`handleModalFocusReady`). O timeout é apenas um safety net para o caso de\no evento nunca chegar (ex: erro interno na modal)."
            },
            {
              "kind": "field",
              "name": "handleModalFocusReady",
              "privacy": "private",
              "description": "Handler para o evento `brModalFocusReady` emitido pela modal filha.\nDesativa o guard imediatamente assim que o foco está estabilizado,\ncancelando o timeout de segurança do `suppressFocusGuard`."
            },
            {
              "kind": "field",
              "name": "handleModalOpen",
              "privacy": "private",
              "description": "Handler para evento brModalOpen emitido por modal filha"
            },
            {
              "kind": "field",
              "name": "handleModalClose",
              "privacy": "private",
              "description": "Handler para evento brModalClose emitido por modal filha"
            },
            {
              "kind": "method",
              "name": "isDirectChild",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Verifica se um elemento é filho direto deste scrim (não nested)"
            },
            {
              "kind": "method",
              "name": "listenToModalEvents",
              "privacy": "private",
              "description": "Adiciona listeners para eventos brModalOpen, brModalClose e brModalFocusReady das modais filhas"
            },
            {
              "kind": "method",
              "name": "removeModalEventListener",
              "privacy": "private",
              "description": "Remove listeners dos eventos da modal"
            },
            {
              "kind": "method",
              "name": "getDirectChildren",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Element[]"
                }
              },
              "description": "Retorna os elementos filhos diretos do scrim via slot padrão"
            },
            {
              "kind": "method",
              "name": "findModalChild",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrModalElement | null"
                }
              },
              "description": "Busca uma modal filha direta do scrim"
            },
            {
              "kind": "method",
              "name": "hasModalWithAutoClose",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Verifica se há uma modal filha com autoClose=false (padrão ou explícito)\nRetorna true se:\n- Existe modal filha E autoClose não é explicitamente true"
            },
            {
              "kind": "method",
              "name": "closeModalChild",
              "privacy": "private",
              "description": "Fecha a modal filha direta, se existir e estiver aberta.\nChamado quando o scrim é fechado (ex: via ESC) para garantir sincronização de estado."
            },
            {
              "kind": "method",
              "name": "checkActivatorSlot",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setupActivatorSlotClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setupActivator",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleActivatorClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "addActivatorClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "removeActivatorClickListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "cleanupActivatorSlotClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyScrollStrategy",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getScrollPosition",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "enableScrollBlock",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "enableScrollWatcher",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resetScrolling",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleScrollClose",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "focusFirstElement",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "restoreFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getFocusableElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "filterVisibleElements",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "parameters": [
                {
                  "name": "elements",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleDocumentKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Intercepta todos os eventos de teclado globalmente quando o scrim está ativo.\n\nUsa `composedPath()[0]` para obter o elemento real com foco, mesmo dentro de shadow roots.\n`event.target` é redirecionado ao cruzar shadow boundaries e não reflete o elemento concreto\nquando o foco está dentro do shadow DOM de componentes filhos como `br-modal`."
            },
            {
              "kind": "field",
              "name": "handleGlobalKeyDown",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleGlobalClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleGlobalFocus",
              "privacy": "private",
              "description": "Intercepta eventos de foco globalmente"
            },
            {
              "kind": "method",
              "name": "shouldHandleEscape",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleTabNavigation",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "shouldTrapFocus",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "isTabForward",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "firstElement",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "lastElement",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "event",
                  "optional": true,
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "wrapFocus",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "isTabForward",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "firstElement",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "lastElement",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isElementInsideScrim",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Verifica se um elemento está dentro do scrim.\nFunciona com shadow DOM: aceita tanto o host (br-modal) quanto elementos\ndentro de shadow roots filhos — verifica o host mais próximo via getRootNode."
            },
            {
              "kind": "method",
              "name": "addGlobalEventInterception",
              "privacy": "private",
              "description": "Adiciona interceptação global de eventos"
            },
            {
              "kind": "method",
              "name": "removeGlobalEventInterception",
              "privacy": "private",
              "description": "Remove interceptação global de eventos"
            },
            {
              "kind": "field",
              "name": "handleMaskClick",
              "privacy": "private",
              "description": "Handler para clique na máscara do scrim.\nFecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false.\nNão afeta o comportamento de ESC, que sempre fecha (W3C Dialog Pattern)."
            },
            {
              "kind": "field",
              "name": "isLegibilityVariant",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Retorna true quando a variante é 'legibility'.\nNesse modo o scrim é puramente decorativo: nunca fecha, nunca intercepta\neventos de teclado/foco/clique e nunca bloqueia rolagem.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveDisplayMode",
              "type": {
                "text": "ScrimDisplayMode"
              },
              "privacy": "private",
              "description": "Resolve o display-mode efetivo.\nPara a variante 'legibility', usa 'parent' por padrão — a menos que o\natributo `display-mode` tenha sido explicitamente definido pelo usuário.",
              "readonly": true,
              "parsedType": {
                "text": "'fullscreen' | 'parent'"
              }
            },
            {
              "kind": "field",
              "name": "usesNativeDialog",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "usesNativeTopLayer",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleNativeCancel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyVariantDefaults",
              "privacy": "private",
              "description": "Aplica as especificações de cor e opacidade conforme a variante selecionada."
            },
            {
              "kind": "method",
              "name": "setupSpotlight",
              "privacy": "private",
              "description": "Inicializa o modo de scrim vazado: resolve o elemento alvo, calcula o rect\ninicial e instala um ResizeObserver para atualizar automaticamente.\nSó opera quando `variant === 'spotlight'`."
            },
            {
              "kind": "method",
              "name": "cleanupSpotlight",
              "privacy": "private",
              "description": "Desmonta o modo de scrim vazado, removendo observers e limpando o estado."
            },
            {
              "kind": "method",
              "name": "resolveSpotlightTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Element | null"
                }
              },
              "description": "Resolve o elemento alvo do spotlight via prop `spotlightTargetId` (seletor CSS)."
            },
            {
              "kind": "field",
              "name": "computeSpotlightRect",
              "privacy": "private",
              "description": "Recalcula as coordenadas da fresta com base no bounding rect do elemento alvo.\nCoordenadas são relativas ao viewport (mode-fullscreen) ou ao elemento pai (mode-parent)."
            },
            {
              "kind": "method",
              "name": "setupLegibility",
              "privacy": "private",
              "description": "Inicializa o posicionamento da variante legibility.\n\nAplica `position: fixed` com as coordenadas exatas do alvo via\n`getBoundingClientRect`, sem exigir CSS adicional no alvo. O alvo é\nresolvido por `legibilityTargetId` ou, por padrão, pelo pai direto.\n\nCom `ResizeObserver`, observa o alvo **e todos os seus ancestrais**: quando um\nelemento irmão muda de tamanho (ex: menu abrindo), o ancestral comum redimensiona\ne o callback reposiciona o scrim automaticamente."
            },
            {
              "kind": "method",
              "name": "cleanupLegibility",
              "privacy": "private",
              "description": "Desmonta o posicionamento da variante legibility, removendo observers e listeners\ne limpando os estilos inline aplicados ao div interno do scrim."
            },
            {
              "kind": "field",
              "name": "computeLegibilityRect",
              "privacy": "private",
              "description": "Recalcula as coordenadas do alvo via getBoundingClientRect e aplica\ncomo estilos inline no div interno, sobrepondo o `inset: 0` do mode-fullscreen."
            },
            {
              "kind": "field",
              "name": "scheduleLegibilityRect",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resolveLegibilityTarget",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Element | null"
                }
              },
              "description": "Resolve o alvo da variante legibility. O pai direto permanece como\nfallback para preservar o comportamento anterior e a compatibilidade."
            },
            {
              "kind": "method",
              "name": "resetLegibilityStyles",
              "privacy": "private",
              "description": "Remove os estilos inline de posicionamento aplicados pelo computeLegibilityRect."
            },
            {
              "kind": "method",
              "name": "renderSpotlightOverlay",
              "privacy": "private",
              "parameters": [
                {
                  "name": "maskId",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "rect",
                  "type": {
                    "text": "DOMRect"
                  }
                },
                {
                  "name": "padding",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Renderiza o SVG de overlay do scrim vazado (spotlight).\nRetorna null quando não há elemento alvo resolvido."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "is-open",
              "fieldName": "isOpen",
              "default": "false",
              "description": "Ativa/desativa o scrim",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "position-content",
              "fieldName": "positionContent",
              "description": "Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim",
              "type": {
                "text": "ScrimPositionContent"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "name": "disable-close-on-click",
              "fieldName": "disableCloseOnClick",
              "default": "false",
              "description": "Desativa o fechamento do scrim ao ser clicado",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "z-index",
              "fieldName": "zIndex",
              "default": "null",
              "description": "Define o valor de z-index do scrim. Deve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.",
              "type": {
                "text": "number | null"
              },
              "parsedType": {
                "text": "number"
              }
            },
            {
              "name": "bg-color",
              "fieldName": "bgColor",
              "default": "null",
              "description": "Cor de fundo personalizada para o scrim.\nAceita os seguintes formatos de cor:\n- Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n- Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n- Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n- Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n- Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n- Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\nSe não especificada, usa a cor padrão do tema.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "custom-opacity",
              "fieldName": "customOpacity",
              "default": "null",
              "description": "Define a opacidade personalizada do scrim. O valor é limitado ao intervalo `0`–`1`; entradas inválidas usam `0.4`.",
              "type": {
                "text": "number | null"
              },
              "parsedType": {
                "text": "number"
              }
            },
            {
              "name": "display-mode",
              "fieldName": "displayMode",
              "default": "'fullscreen'",
              "description": "Define o modo de exibição do scrim:\n- `'fullscreen'`: Ocupa toda a tela (`position: fixed`). (_padrão_)\n- `'parent'`: Ocupa apenas o elemento pai (`position: absolute`).\n  O elemento pai deve ter `position: relative` ou outro valor diferente de `static`.\n\nPara a variante `'legibility'`, este atributo é ignorado: o posicionamento é sempre\ncalculado automaticamente a partir das coordenadas do elemento pai.",
              "type": {
                "text": "ScrimDisplayMode"
              },
              "parsedType": {
                "text": "'fullscreen' | 'parent'"
              }
            },
            {
              "name": "scroll-strategy",
              "fieldName": "scrollStrategy",
              "description": "Define a estratégia de manipulação de rolagem quando scrim está aberto\n- 'block': Impede a rolagem completamente\n- 'close': Fecha o scrim quando ocorre rolagem",
              "type": {
                "text": "ScrimScrollStrategy"
              },
              "parsedType": {
                "text": "'block' | 'close'"
              }
            },
            {
              "name": "scroll-threshold",
              "fieldName": "scrollThreshold",
              "default": "50",
              "description": "Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim. Valores negativos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "activator",
              "fieldName": "activator",
              "default": "null",
              "description": "Define o seletor para o elemento activator.\nNota: O slot 'activator' tem prioridade sobre esta propriedade.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Define um rótulo acessível personalizado para o diálogo.\nSe não fornecido, será usado \"Conteúdo do diálogo\" como padrão.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "default": "'focus'",
              "description": "Define a variante semântica do scrim\n- `'focus'`: Redireciona o foco hierárquico do usuário. Cor #000000 com opacidade 40%. (_padrão_)\n- `'spotlight'`: Scrim vazado — destaca um elemento específico criando uma fresta no overlay.\n  Aplica as mesmas cores da variante `'focus'`. Use `spotlightTargetId` para indicar o elemento a ser destacado.\n- `'legibility'`: Melhora o contraste e leitura de texto sobre superfícies. Cor #000000 com opacidade 64%.\n  Para cobertura parcial, use `legibilityAnchor` + `legibilitySize`.\n  Para gradiente suave, use `bgColor` com um valor de gradiente CSS e `customOpacity=\"1\"`,\n  ex.: `bg-color=\"linear-gradient(to top, rgba(0,0,0,0.64), transparent)\"`..\n\nQuando definida, aplica automaticamente as especificações de cor e opacidade do Design System.\nAs propriedades `bgColor` e `customOpacity` têm prioridade e sobrepõem os valores da variante.",
              "type": {
                "text": "ScrimVariant"
              },
              "parsedType": {
                "text": "'focus' | 'spotlight' | 'legibility'"
              }
            },
            {
              "name": "legibility-anchor",
              "fieldName": "legibilityAnchor",
              "default": "'bottom'",
              "description": "Define a borda de ancoragem da faixa de cobertura da variante `legibility`.\n\nControla de qual borda (ou centro) do elemento a máscara de overlay cresce,\ntendo seu tamanho determinado por `legibilitySize`.\n\n- `'top'`: faixa ancorada na borda superior, cresce para baixo.\n- `'bottom'`: faixa ancorada na borda inferior, cresce para cima.\n- `'left'`: faixa ancorada na borda esquerda, cresce para a direita.\n- `'right'`: faixa ancorada na borda direita, cresce para a esquerda.\n- `'center'`: faixa centralizada verticalmente no elemento.\n\nQuando `legibilitySize` é `null`, a máscara ocupa 100% independentemente\nda âncora definida, equivalendo a uma cobertura total.\n\nSó tem efeito quando `variant=\"legibility\"`.",
              "type": {
                "text": "ScrimLegibilityAnchor"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'center' | 'bottom' | 'top'"
              }
            },
            {
              "name": "legibility-size",
              "fieldName": "legibilitySize",
              "default": "null",
              "description": "Define o tamanho da faixa de cobertura da variante `legibility`, usado em\nconjunto com `legibilityAnchor`.\n\nAceita qualquer valor CSS de comprimento válido:\n- Percentual relativo ao elemento pai: `'40%'`, `'75%'`\n- Comprimento absoluto: `'120px'`, `'8rem'`, `'6em'`\n- Função CSS: `'calc(100% - 2rem)'`\n\nQuando `null` (padrão), a máscara ocupa **100%** da dimensão relevante:\n- **altura** para âncoras `top`, `bottom` e `center`\n- **largura** para âncoras `left` e `right`\n\nSó tem efeito quando `variant=\"legibility\"` está definido.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "legibility-target-id",
              "fieldName": "legibilityTargetId",
              "default": "null",
              "description": "Seletor CSS do elemento que deve receber o posicionamento da variante\n`legibility`. Quando não informado (padrão), o alvo é o elemento pai\ndireto do `<br-scrim>`.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "spotlight-target-id",
              "fieldName": "spotlightTargetId",
              "default": "null",
              "description": "Ativa o modo de scrim vazado (variante 'spotlight'), criando uma área de fresta no overlay\nque destaca o elemento referenciado pelo seletor CSS fornecido.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "spotlight-padding",
              "fieldName": "spotlightPadding",
              "default": "8",
              "description": "Espaçamento interno (em pixels) ao redor da área de fresta no scrim vazado. Valores negativos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "spotlight-shape",
              "fieldName": "spotlightShape",
              "default": "'rect'",
              "description": "Define a forma da área de fresta no scrim vazado.\n- 'rect': Retangular com bordas retas.\n- 'rounded': Retangular com bordas arredondadas (border-radius de 8px).\n- 'circle': Elipse inscrita na área do elemento alvo.",
              "type": {
                "text": "ScrimSpotlightShape"
              },
              "parsedType": {
                "text": "'circle' | 'rect' | 'rounded'"
              }
            },
            {
              "name": "content-layout",
              "fieldName": "contentLayout",
              "default": "'default'",
              "description": "Define como o scrim aplica estilos de layout ao elemento filho (slot padrão).\n\n- `'default'`: O scrim gerencia o layout do conteúdo, centralizando, animando e aplicando transformações e opacidade automaticamente.\n\n- `'none'`: o scrim age como um componente controlado pelo pai. O filho recebe apenas a máscara visual, sem interferência de posicionamento, transformação ou opacidade.\nAdequado para componentes que gerenciam seu próprio layout e estado de abertura. Além disso:\n\n  - Foco e eventos globais** não são interceptados pelo scrim — o componente filho gerencia seu próprio foco, navegação por teclado e fechamento via ESC.\n  - Clique no scrim emite `brScrimClose` sem fechar o scrim internamente, delegando o controle de estado ao pai (quem define `isOpen`).\n  - Use `zIndex` apenas para sobrescrever a camada bloqueadora no fallback CSS. Máscara e painel devem usar subcamadas locais, sem aritmética entre camadas globais.",
              "type": {
                "text": "ScrimContentLayout"
              },
              "parsedType": {
                "text": "'none' | 'default'"
              }
            }
          ],
          "tagName": "br-scrim",
          "status": "stable",
          "events": [
            {
              "name": "brScrimOpen",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Indica que o scrim foi aberto."
            },
            {
              "name": "brScrimClose",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Indica que o scrim foi fechado"
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Sobreposições"
          ],
          "cssProperties": [
            {
              "name": "--br-scrim-mask-size",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-scrim-opacity",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Scrim",
          "declaration": {
            "name": "Scrim",
            "module": "components/scrim.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-scrim",
          "declaration": {
            "name": "Scrim",
            "module": "components/scrim.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/select.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-select` permite escolher uma ou mais opções em uma lista suspensa expansível com suporte a busca e virtualização.\n\nDeclare as opções com `<br-select-option>` no slot padrão, ou forneça os dados dinamicamente com o método `setOptions()`. Para seleção múltipla, use `multiple`. Para habilitar busca por digitação, use `filterable`.\n\n```html\n<br-select label=\"Estado\" placeholder=\"Selecione um estado\">\n  <br-select-option value=\"df\" label=\"Distrito Federal\"></br-select-option>\n  <br-select-option value=\"sp\" label=\"São Paulo\"></br-select-option>\n  <br-select-option value=\"rj\" label=\"Rio de Janeiro\"></br-select-option>\n</br-select>\n```\n\nEm formulários HTML, o componente integra-se nativamente via `ElementInternals`, enviando os valores selecionados no submit e validando campos obrigatórios com `required`.\n\n### Quando usar\n\n- Listas com 5 ou mais opções que ocupariam muito espaço visível se exibidas abertas.\n- Seleção que exige filtro ou busca por digitação.\n- Carregamento dinâmico ou remoto de opções a partir de uma API (`search-mode=\"remote\"`).\n\n### Quando evitar\n\n- Poucas opções fixas (2 a 4 opções): use `br-radio` ou `br-radio-group`.\n- Escolha simples de sim/não: use `br-switch` ou `br-checkbox`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/select?tab=designer).",
          "name": "Select",
          "cssParts": [
            {
              "description": "Contêiner visual principal do select.",
              "name": "container"
            },
            {
              "description": "Campo de seleção e busca.",
              "name": "input"
            },
            {
              "description": "Contêiner visual do campo.",
              "name": "input-container"
            },
            {
              "description": "Rótulo do campo.",
              "name": "input-label"
            },
            {
              "description": "Campo input nativo.",
              "name": "input-field"
            },
            {
              "description": "Grupo visual do campo.",
              "name": "input-group"
            },
            {
              "description": "Ícone do campo.",
              "name": "input-icon"
            },
            {
              "description": "Botão de abertura e fechamento.",
              "name": "input-action"
            },
            {
              "description": "Botão interno da ação.",
              "name": "input-action-button"
            },
            {
              "description": "Botão de limpar o termo digitado durante a busca.",
              "name": "input-clear"
            },
            {
              "description": "Lista de opções.",
              "name": "list"
            },
            {
              "description": "Opção individual.",
              "name": "option"
            },
            {
              "description": "Cabeçalho visual de um grupo de opções.",
              "name": "option-group"
            },
            {
              "description": "Alias legado para a opção de selecionar todos.",
              "name": "select-all"
            },
            {
              "description": "Alias legado para a opção vazia da lista.",
              "name": "empty-option"
            },
            {
              "description": "Alias legado para o checkbox da opção.",
              "name": "option-checkbox"
            },
            {
              "description": "Alias legado para o radio da opção.",
              "name": "option-radio"
            },
            {
              "description": "Select nativo invisível usado na integração com formulários.",
              "name": "hidden-select"
            },
            {
              "description": "Área de mensagem de validação.",
              "name": "feedback"
            },
            {
              "description": "Área do indicador de validação assíncrona.",
              "name": "validation-loading"
            }
          ],
          "slots": [
            {
              "description": "Opções declaradas com elementos br-select-option.",
              "name": "default"
            },
            {
              "description": "Mensagem de validação, normalmente um br-message.",
              "name": "feedback"
            },
            {
              "description": "Indicador exibido durante validação assíncrona.",
              "name": "validation-loading"
            },
            {
              "description": "Indicador exibido na lista enquanto `loading` está ativo. Padrão: spinner com o texto \"Pesquisando…\"; aceita texto, imagem ou qualquer HTML.",
              "name": "loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "SELECT_ALL_LABEL",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "'Selecionar todos'",
              "parsedType": {
                "text": "'Selecionar todos'"
              }
            },
            {
              "kind": "field",
              "name": "DESELECT_ALL_LABEL",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "'Desselecionar todos'",
              "parsedType": {
                "text": "'Desselecionar todos'"
              }
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSelectElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "borderless",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Remove a borda do input quando o componente não está em foco."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desativa toda a interação do select."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual compartilhada pelo campo e pela lista de opções.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.\nA opção sintética de selecionar todos permanece com densidade `small`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe label e campo na mesma linha.",
              "deprecated": "Use `inline`."
            },
            {
              "kind": "field",
              "name": "inline",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isMultiple",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Habilita o modo de seleção múltipla.",
              "deprecated": "Use `multiple`."
            },
            {
              "kind": "field",
              "name": "multiple",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Habilita seleção múltipla. Quando informada, tem precedência sobre `isMultiple`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "keepOpenOnSelect",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Mantém a lista aberta depois de uma seleção.",
              "deprecated": "O comportamento atual usa o fechamento padrão do select; mantenha esta prop\napenas para compatibilidade com integrações legadas."
            },
            {
              "kind": "field",
              "name": "visibleItems",
              "type": {
                "text": "number"
              },
              "default": "6",
              "description": "Define quantas linhas visuais ficam visíveis na janela da lista.\nCabeçalhos de grupo também ocupam uma linha quando existem.\nDeve ser um inteiro positivo; valores inválidos usam 6."
            },
            {
              "kind": "field",
              "name": "itemHeight",
              "type": {
                "text": "number"
              },
              "default": "40",
              "description": "Informa a altura base de cada opção ou cabeçalho para o cálculo de virtual scroll.\nDeve ser um número finito positivo; valores inválidos usam 40."
            },
            {
              "kind": "field",
              "name": "inputWidth",
              "type": {
                "text": "string"
              },
              "default": "undefined",
              "description": "Controla a largura do campo de entrada.",
              "example": "'20rem'"
            },
            {
              "kind": "field",
              "name": "overscan",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Define quantas opções extras são renderizadas antes e depois da área visível no virtual scroll.\nDeve ser um inteiro não negativo; valores inválidos usam 1."
            },
            {
              "kind": "field",
              "name": "hideDividers",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Oculta os divisores entre opções consecutivas, sem alterar a altura das linhas."
            },
            {
              "kind": "field",
              "name": "effectiveVisibleItems",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "type": {
                "text": "BrDensity"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveItemHeight",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveOverscan",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla o estado aberto/fechado da lista.",
              "deprecated": "Use `open`."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Controla o estado aberto. Quando informada, tem precedência sobre `isOpen`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto exibido como rótulo do campo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Nome do campo para integração com formulários.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | string[] | undefined"
              },
              "default": "''",
              "description": "Valor público do select baseado nas opções atualmente selecionadas.",
              "parsedType": {
                "text": "string | string[]"
              },
              "example": "```js\nconst select = document.querySelector('br-select');\nselect.multiple = true;\nselect.value = ['df', 'sp'];\n```"
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "default": "''",
              "description": "Texto exibido quando não há seleção.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que o preenchimento do select é obrigatório."
            },
            {
              "kind": "field",
              "name": "selectAllLabel",
              "type": {
                "text": "string"
              },
              "description": "Rótulo apresentado para a opção de selecionar todos no modo múltiplo.",
              "default": "'Selecionar todos'"
            },
            {
              "kind": "field",
              "name": "filterable",
              "type": {
                "text": "boolean"
              },
              "default": "true",
              "description": "Habilita a filtragem textual das opções por rótulo ou valor."
            },
            {
              "kind": "field",
              "name": "searchMode",
              "type": {
                "text": "SelectSearchMode"
              },
              "default": "'local'",
              "description": "Define se as opções são filtradas localmente ou fornecidas por uma busca remota.\nEm `remote`, o componente emite `brSelectSearch` e exibe as opções recebidas\nsem filtrá-las de novo pelo termo digitado; a aplicação deve buscar, validar e\naplicar a resposta com `setOptions()` ou re-renderizando os `br-select-option`.\nA seleção é preservada mesmo quando não aparece na resposta seguinte.",
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "kind": "field",
              "name": "listSearchTerm",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "description": "Termo repassado à lista. Ela só filtra no modo local; no remoto, usa o termo\napenas para exibir a mensagem de lista vazia.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveSearchMode",
              "type": {
                "text": "SelectSearchMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que uma busca remota de opções está pendente.\nEnquanto ativo, a lista exibe o slot `loading` (padrão: \"Pesquisando…\") e novas\nopções não podem ser selecionadas; a aplicação continua responsável por\ndebounce, cancelamento, erros e autenticação."
            },
            {
              "kind": "field",
              "name": "showSearchIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe a lupa mesmo quando o select não é filtrável; selects com `filterable`\njá a exibem. A lupa é omitida quando o campo é estreito demais (menos de\n128px) para comportar lupa, valor e seta."
            },
            {
              "kind": "field",
              "name": "hideSearchIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Oculta a lupa mesmo quando `filterable` está ativo, sem desabilitar a busca.\nTem precedência visual sobre `showSearchIcon` e não altera o comportamento padrão."
            },
            {
              "kind": "field",
              "name": "unselectAllLabel",
              "type": {
                "text": "string"
              },
              "description": "Rótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.",
              "default": "'Desselecionar todos'"
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "| string\n    | { group?: string; label: string; value: string; selected?: boolean }[]\n    | SelectOptionData[]"
              },
              "default": "[]",
              "description": "Fornece opções como array ou JSON, além das opções projetadas por slot.\nUse property binding para arrays em JavaScript e frameworks; no atributo\nHTML, informe uma string JSON válida. Na inicialização, opções no slot têm\nprecedência quando existem. Depois de uma alteração nesta prop ou de uma\nchamada a `setOptions()`, a coleção imperativa passa a ser a fonte de dados.\nNão use em código novo. Declare `br-select-option` no slot padrão ou, para\nrespostas dinâmicas/remotas, atualize a coleção com `setOptions()`.",
              "deprecated": "Use `br-select-option` no slot padrão ou `setOptions()` para respostas dinâmicas/remotas.",
              "parsedType": {
                "text": "string | { content: string, disabled: boolean, group: string, indeterminate: boolean, label: string, selected: boolean, value: string }[] | { group: string, label: string, value: string, selected: boolean }[]"
              },
              "example": "```html\n<!-- Compatibilidade legada; prefira elementos br-select-option. -->\n<br-select options='[{\"label\":\"Distrito Federal\",\"value\":\"df\"}]'></br-select>\n```"
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "InputToggle | undefined"
              },
              "description": "Controla o autocomplete do campo de busca interno. Aceita `on` ou `off`; valores inválidos são ignorados.",
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador público do controle."
            },
            {
              "kind": "field",
              "name": "minSelections",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "0",
              "description": "Quantidade mínima de opções selecionadas no modo múltiplo. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "maxSelections",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "0",
              "description": "Quantidade máxima de opções selecionadas no modo múltiplo. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "effectiveMinSelections",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveAutocomplete",
              "type": {
                "text": "InputToggle | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMaxSelections",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "SelectValidator | string | undefined"
              },
              "readonly": true,
              "description": "Validação síncrona ou assíncrona executada no método `validate()`.\nRecebe uma string no modo simples e um array de strings no modo múltiplo.",
              "parsedType": {
                "text": "string | {  }"
              },
              "example": "```js\nconst select = document.querySelector('br-select');\nselect.validator = (value) =>\n  (Array.isArray(value) ? value.length > 0 : Boolean(value)) ? null : 'Selecione uma opção';\n```"
            },
            {
              "kind": "field",
              "name": "selectInputElement",
              "type": {
                "text": "HTMLBrSelectInputElement"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "selectListElement",
              "type": {
                "text": "BrSelectListElement"
              },
              "privacy": "private",
              "parsedType": {
                "text": "HTMLElement & { revealOption: {  }, focusOption: {  }, scrollOptionToTop: {  }, scrollFirstSelectedOptionToTop: {  }, setSearchTerm: {  }, setOptionSelected: {  }, options: { content: string, disabled: boolean, group: string, indeterminate: boolean, label: string, selected: boolean, value: string }[] } & { close: {  }, open: {  }, setMultiple: {  }, setOption: {  }, setOptions: {  }, loading: boolean }"
              }
            },
            {
              "kind": "field",
              "name": "shouldRestoreSelectedOptionOnOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isSelectInputPointerDown",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "skipSelectInputClickToggle",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "pendingOptions",
              "type": {
                "text": "SelectOptionData[] | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "slotElement",
              "type": {
                "text": "HTMLSlotElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "handleSlotChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "slotReconciler",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "lastEmittedStateKey",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "isStateChangeReady",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isValueChangeReady",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "listboxId",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "readonly": true,
              "default": "`${this.customId}-listbox`"
            },
            {
              "kind": "field",
              "name": "checkingValidity",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "showValidationErrors",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "validationErrorMessage",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "activeOptionIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "-1"
            },
            {
              "kind": "field",
              "name": "isActiveIndicatorHidden",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Oculta o indicador visual da opção ativa após interação por ponteiro, como `:focus-visible`.\nO índice ativo e o `aria-activedescendant` são preservados; o teclado volta a exibi-lo."
            },
            {
              "kind": "field",
              "name": "displayValue",
              "type": {
                "text": "string | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "searchTerm",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasValidationLoadingSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "selectedValuesState",
              "type": {
                "text": "string[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "nativeSelect",
              "type": {
                "text": "HTMLSelectElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "initialValue",
              "type": {
                "text": "string | string[] | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "string | string[]"
              }
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "lastAnnouncedOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "cleanupBlockingSurfaceDismissal",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isApplyingExternalValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "suppressValueChange",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasImperativeOptions",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "remoteSelectedOptions",
              "privacy": "private",
              "default": "new Map<string, SelectOptionData>()"
            },
            {
              "kind": "field",
              "name": "selectionInitialized",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "typeAhead",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "lastTypeAheadTime",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "selectedValues",
              "type": {
                "text": "string[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "effectiveMultiple",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveInline",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveOpen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "valueFromPublicValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string[] | null"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string | string[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setSelectedValues",
              "privacy": "private",
              "parameters": [
                {
                  "name": "values",
                  "type": {
                    "text": "string[]"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "canonicalSelectedValues",
              "type": {
                "text": "string[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "applyCanonicalSelection",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                },
                {
                  "name": "values",
                  "default": "this.canonicalSelectedValues"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getListOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "handleDisabledChange",
              "parameters": [
                {
                  "name": "isDisabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleIsOpenChange",
              "parameters": [
                {
                  "name": "isOpen",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleFilterableChange",
              "parameters": [
                {
                  "name": "filterable",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleLoadingChange",
              "parameters": [
                {
                  "name": "loading",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleIsMultipleChange",
              "parameters": [
                {
                  "name": "isMultiple",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleMultipleChange",
              "parameters": [
                {
                  "name": "multiple",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOpenChange",
              "parameters": [
                {
                  "name": "open",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleExternalValueChange",
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string | string[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOptionsChange"
            },
            {
              "kind": "method",
              "name": "syncOpenState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "isOpen",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "attachBlockingSurfaceListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "detachBlockingSurfaceListener",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleSelectFocusOut",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectInvalid",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectInputFocus"
            },
            {
              "kind": "method",
              "name": "handleSelectPointerDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "PointerEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectInputValueChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<string>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectInputActionClick"
            },
            {
              "kind": "method",
              "name": "handleSelectInputClick"
            },
            {
              "kind": "method",
              "name": "handleSelectOptionStateChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<SelectOptionStateChange>"
                  }
                },
                {
                  "name": "restoreFocus",
                  "default": "true"
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectOptionPropsChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ],
              "description": "Recalcula a coleção quando uma opção projetada muda por atribuição direta\nde `selected`, `disabled`, `label`, `group` ou `value`. A lista virtualizada em\nShadow DOM não é uma fonte independente; ela recebe o snapshot pelo seu\ncontrato público `options`."
            },
            {
              "kind": "method",
              "name": "handleSelectOptionHover",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ label: string; value: string }>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleWindowClick",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "enable",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Habilita o select para interação do usuário."
            },
            {
              "kind": "method",
              "name": "disable",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Desabilita o select e impede novas interações."
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre a lista de opções quando o componente está habilitado."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Fecha a lista de opções quando o componente está habilitado."
            },
            {
              "kind": "method",
              "name": "toggleOpen",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Alterna entre os estados aberto e fechado do select."
            },
            {
              "kind": "method",
              "name": "clear",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Limpa a seleção atual.",
              "deprecated": "Use `setValue('')` ou a API de formulário."
            },
            {
              "kind": "method",
              "name": "getValue",
              "return": {
                "type": {
                  "text": "Promise<string | string[]>"
                }
              },
              "description": "Retorna o valor público atual.",
              "deprecated": "Leia a propriedade `value` diretamente."
            },
            {
              "kind": "method",
              "name": "setValue",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string | string[]"
                  }
                }
              ],
              "description": "Define o valor público do select.",
              "deprecated": "Atribua a propriedade `value` diretamente."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Move o foco para o campo interno.",
              "deprecated": "Use o foco nativo do componente quando possível."
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              }
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              }
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              }
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              }
            },
            {
              "kind": "method",
              "name": "setOptions",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  },
                  "description": "Opções que devem ser exibidas pela lista interna.\nEm `search-mode=\"remote\"`, a seleção atual é preservada mesmo quando não\naparece na resposta recebida."
                }
              ],
              "description": "Substitui a coleção atual de opções por uma nova lista."
            },
            {
              "kind": "method",
              "name": "setOption",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  },
                  "description": "Opção que deve ser inserida ou atualizada."
                }
              ],
              "description": "Adiciona ou atualiza uma única opção na coleção interna."
            },
            {
              "kind": "field",
              "name": "syncOptionsFromSlot",
              "privacy": "private",
              "description": "Sincroniza as opções declaradas no slot com a lista interna renderizada."
            },
            {
              "kind": "method",
              "name": "getHostOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "nodeToOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData | null"
                }
              },
              "parameters": [
                {
                  "name": "node",
                  "type": {
                    "text": "Node"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "elementToOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData | null"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "textNodeToOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData | null"
                }
              },
              "parameters": [
                {
                  "name": "textNode",
                  "type": {
                    "text": "Text"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "optionElementToData",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "BrSelectOptionElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getOptionElementGroup",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "BrSelectOptionElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "extractInnerTextFromOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              },
              "parameters": [
                {
                  "name": "el",
                  "type": {
                    "text": "BrSelectOptionElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getOptionLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getDisplayValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "default": "this.getCurrentOptions()",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncDisplayValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "options",
                  "optional": true,
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSerializedValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | string[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getOptionsProp",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "applySelectedValue",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string | string[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applyRemoteSelection",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "rememberRemoteSelections",
              "privacy": "private",
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getFormOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "options",
                  "default": "this.getCurrentOptions()"
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncNativeSelectSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "values",
                  "default": "this.getSelectedValues()"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSelectedValues",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selectedCount",
                  "default": "this.getSelectedValues().length"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getNativeSelect",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLSelectElement | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "resolveValidator",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectValidator | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRenderedDisplayValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncComboboxAccessibility",
              "privacy": "private",
              "description": "Retorna o id da opção atualmente ativa para consumo do `aria-activedescendant`.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "consumeFocusOpenClick",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Indica se o clique atual foi o mesmo que deu foco ao campo e abriu a lista,\nlimpando o estado do ponteiro. Esse clique não deve alternar a lista de novo."
            },
            {
              "kind": "method",
              "name": "toggleOpenFromPointer",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "openListAndRestorePointerFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "scrollFirstSelectedOptionToTop",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "openAndFocusBoundary",
              "privacy": "private",
              "parameters": [
                {
                  "name": "fromInput",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "direction",
                  "type": {
                    "text": "1 | -1"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusOptionByTypedCharacters",
              "privacy": "private",
              "parameters": [
                {
                  "name": "character",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "focusInitialOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "direction",
                  "type": {
                    "text": "1 | -1"
                  },
                  "description": "Direção inicial da navegação. `1` avança e `-1` recua."
                }
              ],
              "description": "Define qual opção deve receber foco ao abrir ou iniciar a navegação pelo teclado."
            },
            {
              "kind": "method",
              "name": "moveActiveOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "step",
                  "type": {
                    "text": "1 | -1"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCurrentActiveIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "description": "Resolve o índice ativo atual a partir do estado local ou da opção já selecionada."
            },
            {
              "kind": "method",
              "name": "focusOptionByIndex",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  },
                  "description": "Índice da opção que deve receber foco."
                },
                {
                  "name": "scrollToTop",
                  "default": "false",
                  "description": "Posiciona a opção no topo da viewport quando verdadeiro."
                }
              ],
              "description": "Encaminha o foco lógico para uma opção específica da lista interna."
            },
            {
              "kind": "method",
              "name": "selectFocusedOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "restoreFocus",
                  "default": "true"
                }
              ],
              "description": "Seleciona a opção atualmente ativa sem duplicar a lógica de seleção da lista."
            },
            {
              "kind": "method",
              "name": "syncActiveOptionIndex",
              "privacy": "private",
              "parameters": [
                {
                  "name": "detail",
                  "type": {
                    "text": "SelectOptionStateChange"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncSlottedOptionSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "values",
                  "default": "this.selectedValues"
                },
                {
                  "description": "Estado emitido pela opção que disparou a mudança.",
                  "name": "detail"
                }
              ],
              "description": "Reflete no slot a seleção que foi consolidada pela lista interna."
            },
            {
              "kind": "method",
              "name": "reflectRenderedListSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "values",
                  "type": {
                    "text": "string[]"
                  }
                },
                {
                  "name": "sourceOptions",
                  "optional": true,
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isSelectAllLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "label",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isSelectAllOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSelectAllLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "indeterminate",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeSelectAllState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "HTMLBrSelectOptionElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleOutsideClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "emitStateChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "optional": true,
                  "type": {
                    "text": "SelectOptionStateChange"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getStateChangeDetail",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectStateChangeDetail"
                }
              },
              "parameters": [
                {
                  "name": "optionChange",
                  "optional": true,
                  "type": {
                    "text": "SelectOptionStateChange"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeOptionForOutput",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getStateChangeKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCurrentOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "description": "Obtém o snapshot atual das opções respeitando a fonte mais atual disponível."
            },
            {
              "kind": "method",
              "name": "getNavigableOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "clearSearch",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getEventPath",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "EventTarget[]"
                }
              },
              "parameters": [
                {
                  "name": "ev",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSelectListController",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectListController | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAccessibleLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "setSelectionMode",
              "privacy": "private",
              "parameters": [
                {
                  "name": "isMultiple",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderSelectInput",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderSelectList",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderHiddenSelect",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getNativeOptionGroups",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "{ group?: string; options: SelectOptionData[] }[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderNativeOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "borderless",
              "fieldName": "borderless",
              "default": "false",
              "description": "Remove a borda do input quando o componente não está em foco.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa toda a interação do select.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual compartilhada pelo campo e pela lista de opções.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.\nA opção sintética de selecionar todos permanece com densidade `small`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Exibe label e campo na mesma linha.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "inline",
              "fieldName": "inline",
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-multiple",
              "fieldName": "isMultiple",
              "default": "false",
              "description": "Habilita o modo de seleção múltipla.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "description": "Habilita seleção múltipla. Quando informada, tem precedência sobre `isMultiple`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "keep-open-on-select",
              "fieldName": "keepOpenOnSelect",
              "default": "false",
              "description": "Mantém a lista aberta depois de uma seleção.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "visible-items",
              "fieldName": "visibleItems",
              "default": "6",
              "description": "Define quantas linhas visuais ficam visíveis na janela da lista.\nCabeçalhos de grupo também ocupam uma linha quando existem.\nDeve ser um inteiro positivo; valores inválidos usam 6.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "item-height",
              "fieldName": "itemHeight",
              "default": "40",
              "description": "Informa a altura base de cada opção ou cabeçalho para o cálculo de virtual scroll.\nDeve ser um número finito positivo; valores inválidos usam 40.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "input-width",
              "fieldName": "inputWidth",
              "default": "undefined",
              "description": "Controla a largura do campo de entrada.",
              "type": {
                "text": "string | undefined"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "overscan",
              "fieldName": "overscan",
              "default": "1",
              "description": "Define quantas opções extras são renderizadas antes e depois da área visível no virtual scroll.\nDeve ser um inteiro não negativo; valores inválidos usam 1.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "hide-dividers",
              "fieldName": "hideDividers",
              "default": "false",
              "description": "Oculta os divisores entre opções consecutivas, sem alterar a altura das linhas.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-open",
              "fieldName": "isOpen",
              "default": "false",
              "description": "Controla o estado aberto/fechado da lista.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "description": "Controla o estado aberto. Quando informada, tem precedência sobre `isOpen`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto exibido como rótulo do campo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo para integração com formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "''",
              "description": "Valor público do select baseado nas opções atualmente selecionadas.",
              "type": {
                "text": "string | string[]"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "default": "''",
              "description": "Texto exibido quando não há seleção.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Indica que o preenchimento do select é obrigatório.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "default": "'Selecionar todos'",
              "description": "Rótulo apresentado para a opção de selecionar todos no modo múltiplo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "filterable",
              "fieldName": "filterable",
              "default": "true",
              "description": "Habilita a filtragem textual das opções por rótulo ou valor.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "search-mode",
              "fieldName": "searchMode",
              "default": "'local'",
              "description": "Define se as opções são filtradas localmente ou fornecidas por uma busca remota.\nEm `remote`, o componente emite `brSelectSearch` e exibe as opções recebidas\nsem filtrá-las de novo pelo termo digitado; a aplicação deve buscar, validar e\naplicar a resposta com `setOptions()` ou re-renderizando os `br-select-option`.\nA seleção é preservada mesmo quando não aparece na resposta seguinte.",
              "type": {
                "text": "SelectSearchMode"
              },
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "default": "false",
              "description": "Indica que uma busca remota de opções está pendente.\nEnquanto ativo, a lista exibe o slot `loading` (padrão: \"Pesquisando…\") e novas\nopções não podem ser selecionadas; a aplicação continua responsável por\ndebounce, cancelamento, erros e autenticação.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-search-icon",
              "fieldName": "showSearchIcon",
              "default": "false",
              "description": "Exibe a lupa mesmo quando o select não é filtrável; selects com `filterable`\njá a exibem. A lupa é omitida quando o campo é estreito demais (menos de\n128px) para comportar lupa, valor e seta.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "hide-search-icon",
              "fieldName": "hideSearchIcon",
              "default": "false",
              "description": "Oculta a lupa mesmo quando `filterable` está ativo, sem desabilitar a busca.\nTem precedência visual sobre `showSearchIcon` e não altera o comportamento padrão.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "unselect-all-label",
              "fieldName": "unselectAllLabel",
              "default": "'Desselecionar todos'",
              "description": "Rótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "default": "[]",
              "description": "Fornece opções como array ou JSON, além das opções projetadas por slot.\nUse property binding para arrays em JavaScript e frameworks; no atributo\nHTML, informe uma string JSON válida. Na inicialização, opções no slot têm\nprecedência quando existem. Depois de uma alteração nesta prop ou de uma\nchamada a `setOptions()`, a coleção imperativa passa a ser a fonte de dados.\nNão use em código novo. Declare `br-select-option` no slot padrão ou, para\nrespostas dinâmicas/remotas, atualize a coleção com `setOptions()`.",
              "type": {
                "text": "| string\n    | { group?: string; label: string; value: string; selected?: boolean }[]\n    | SelectOptionData[]"
              },
              "parsedType": {
                "text": "string | { content: string, disabled: boolean, group: string, indeterminate: boolean, label: string, selected: boolean, value: string }[] | { group: string, label: string, value: string, selected: boolean }[]"
              }
            },
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "description": "Controla o autocomplete do campo de busca interno. Aceita `on` ou `off`; valores inválidos são ignorados.",
              "type": {
                "text": "InputToggle"
              },
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador público do controle.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "min-selections",
              "fieldName": "minSelections",
              "default": "0",
              "description": "Quantidade mínima de opções selecionadas no modo múltiplo. Deve ser um inteiro não negativo; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max-selections",
              "fieldName": "maxSelections",
              "default": "0",
              "description": "Quantidade máxima de opções selecionadas no modo múltiplo. Deve ser um inteiro não negativo; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Validação síncrona ou assíncrona executada no método `validate()`.\nRecebe uma string no modo simples e um array de strings no modo múltiplo.",
              "type": {
                "text": "SelectValidator | string"
              },
              "parsedType": {
                "text": "string | {  }"
              }
            }
          ],
          "tagName": "br-select",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual principal do select."
            },
            {
              "name": "input",
              "description": "Campo de seleção e busca."
            },
            {
              "name": "input-container",
              "description": "Contêiner visual do campo."
            },
            {
              "name": "input-label",
              "description": "Rótulo do campo."
            },
            {
              "name": "input-field",
              "description": "Campo input nativo."
            },
            {
              "name": "input-group",
              "description": "Grupo visual do campo."
            },
            {
              "name": "input-icon",
              "description": "Ícone do campo."
            },
            {
              "name": "input-action",
              "description": "Botão de abertura e fechamento."
            },
            {
              "name": "input-action-button",
              "description": "Botão interno da ação."
            },
            {
              "name": "input-clear",
              "description": "Botão de limpar o termo digitado durante a busca."
            },
            {
              "name": "list",
              "description": "Lista de opções."
            },
            {
              "name": "option",
              "description": "Opção individual."
            },
            {
              "name": "option-group",
              "description": "Cabeçalho visual de um grupo de opções."
            },
            {
              "name": "select-all",
              "description": "Alias legado para a opção de selecionar todos."
            },
            {
              "name": "empty-option",
              "description": "Alias legado para a opção vazia da lista."
            },
            {
              "name": "option-checkbox",
              "description": "Alias legado para o checkbox da opção."
            },
            {
              "name": "option-radio",
              "description": "Alias legado para o radio da opção."
            },
            {
              "name": "hidden-select",
              "description": "Select nativo invisível usado na integração com formulários."
            },
            {
              "name": "feedback",
              "description": "Área de mensagem de validação."
            },
            {
              "name": "validation-loading",
              "description": "Área do indicador de validação assíncrona."
            }
          ],
          "events": [
            {
              "name": "brSelectStateChange",
              "type": {
                "text": "EventEmitter<SelectStateChangeDetail>"
              },
              "description": "Evento emitido quando o estado público do select muda."
            },
            {
              "name": "valueChange",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Evento emitido quando o valor público do select é alterado.",
              "deprecated": "Use os eventos nativos `input` e `change`."
            },
            {
              "name": "optionHover",
              "type": {
                "text": "EventEmitter<{ label: string; value: string }>"
              },
              "description": "Emite a opção que recebeu foco ou hover.",
              "deprecated": "Use a navegação e os eventos de estado atuais."
            },
            {
              "name": "brSelectSearch",
              "type": {
                "text": "EventEmitter<SelectSearchDetail>"
              },
              "description": "Emitido uma vez por edição do campo de busca, inclusive ao limpar a consulta.\nO `detail` contém `{ query }`; o evento é informativo e não cancelável.\nA aplicação deve controlar debounce, transporte e ciclo de vida da busca."
            },
            {
              "name": "opened",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando a lista é aberta.",
              "deprecated": "Use `brSelectStateChange`."
            },
            {
              "name": "closed",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando a lista é fechada.",
              "deprecated": "Use `brSelectStateChange`."
            },
            {
              "name": "brSelectValidationChange",
              "type": {
                "text": "EventEmitter<{\n    validating: boolean;\n    valid: boolean | null;\n    message: string | null;\n  }>"
              },
              "description": "Informa o início e o resultado de uma validação síncrona ou assíncrona.\nO `detail` contém `validating`, `valid` e `message`."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ],
          "cssProperties": [
            {
              "name": "--br-item-bg-color",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-select-option-bg-color",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Select",
          "declaration": {
            "name": "Select",
            "module": "components/select.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-select",
          "declaration": {
            "name": "Select",
            "module": "components/select.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/select-input/select-input.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Campo de texto e acionamento interno do `br-select`.\n\nÉ gerenciado automaticamente pelo `br-select` para exibir o valor selecionado, receber termos de busca e abrir ou fechar a lista suspensa. Não é necessário utilizá-lo de forma avulsa.",
          "name": "SelectInput",
          "cssParts": [
            {
              "description": "Contêiner visual do campo.",
              "name": "container"
            },
            {
              "description": "Campo input nativo.",
              "name": "input"
            },
            {
              "description": "Rótulo do campo.",
              "name": "label"
            },
            {
              "description": "Grupo visual do campo.",
              "name": "group"
            },
            {
              "description": "Ícone do campo.",
              "name": "icon"
            },
            {
              "description": "Botão de ação.",
              "name": "action"
            },
            {
              "description": "Botão interno da ação.",
              "name": "action-button"
            },
            {
              "description": "Botão de limpar o texto digitado.",
              "name": "clear"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSelectInputElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "field",
              "name": "borderless",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Remove a borda do campo quando ele não está em foco."
            },
            {
              "kind": "field",
              "name": "autocomplete",
              "type": {
                "text": "InputToggle | undefined"
              },
              "description": "Controla o preenchimento automático do input interno. Aceita `on` ou `off`; valores inválidos são ignorados.",
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desativa toda a interação do campo de entrada."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do campo e do input interno.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe label e campo na mesma linha."
            },
            {
              "kind": "field",
              "name": "inputWidth",
              "type": {
                "text": "string | undefined"
              },
              "description": "Controla a largura visual do campo.",
              "parsedType": {
                "text": "string"
              },
              "example": "'20rem'"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto exibido como rótulo do campo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Nome do campo para integração com formulários.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto exibido quando o campo não possui valor.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que o valor do campo é obrigatório."
            },
            {
              "kind": "field",
              "name": "filterable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Habilita a edição do campo usada para filtrar as opções."
            },
            {
              "kind": "field",
              "name": "showSearchIcon",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe a lupa mesmo quando o campo não é filtrável.\nQuando filterable é true, a lupa é exibida automaticamente.\nEm campos com menos de 128px, a lupa é omitida para preservar valor e seta.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "clearable",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe o botão de limpar enquanto houver texto no campo editável.\nO `br-select` o ativa somente durante a busca, para limpar o termo digitado\nsem alterar a seleção."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string | undefined"
              },
              "description": "Valor textual apresentado no input.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAutocomplete",
              "type": {
                "text": "InputToggle | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "type": {
                "text": "BrDensity"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "flipped",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "inputElement",
              "type": {
                "text": "HTMLBrInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "comboboxState",
              "type": {
                "text": "SelectComboboxState | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "{ options: { content: string, disabled: boolean, group: string, indeterminate: boolean, label: string, selected: boolean, value: string }[], activeIndex: number, expanded: boolean, multiple: boolean, label: string, loading: boolean, required: boolean, invalid: boolean, errorMessage: string }"
              }
            },
            {
              "kind": "field",
              "name": "accessibleList",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "accessibleStatus",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "accessibleDescription",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncCombobox",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "SelectComboboxState"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applyComboboxState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "flipUp",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Atualiza o ícone para o estado visual de lista aberta."
            },
            {
              "kind": "method",
              "name": "flipDown",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Atualiza o ícone para o estado visual de lista fechada."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Reaplica o foco no input nativo encapsulado por `br-input`."
            },
            {
              "kind": "method",
              "name": "syncNativeCursor",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFocus",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleInput",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderSearchIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderDropdownIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "borderless",
              "fieldName": "borderless",
              "default": "false",
              "description": "Remove a borda do campo quando ele não está em foco.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "autocomplete",
              "fieldName": "autocomplete",
              "description": "Controla o preenchimento automático do input interno. Aceita `on` ou `off`; valores inválidos são ignorados.",
              "type": {
                "text": "InputToggle"
              },
              "parsedType": {
                "text": "'on' | 'off'"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa toda a interação do campo de entrada.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do campo e do input interno.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Exibe label e campo na mesma linha.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "input-width",
              "fieldName": "inputWidth",
              "description": "Controla a largura visual do campo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto exibido como rótulo do campo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo para integração com formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "Texto exibido quando o campo não possui valor.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Indica que o valor do campo é obrigatório.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "filterable",
              "fieldName": "filterable",
              "default": "false",
              "description": "Habilita a edição do campo usada para filtrar as opções.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-search-icon",
              "fieldName": "showSearchIcon",
              "description": "Exibe a lupa mesmo quando o campo não é filtrável.\nQuando filterable é true, a lupa é exibida automaticamente.\nEm campos com menos de 128px, a lupa é omitida para preservar valor e seta.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "clearable",
              "fieldName": "clearable",
              "default": "false",
              "description": "Exibe o botão de limpar enquanto houver texto no campo editável.\nO `br-select` o ativa somente durante a busca, para limpar o termo digitado\nsem alterar a seleção.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Valor textual apresentado no input.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-select-input",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual do campo."
            },
            {
              "name": "input",
              "description": "Campo input nativo."
            },
            {
              "name": "label",
              "description": "Rótulo do campo."
            },
            {
              "name": "group",
              "description": "Grupo visual do campo."
            },
            {
              "name": "icon",
              "description": "Ícone do campo."
            },
            {
              "name": "action",
              "description": "Botão de ação."
            },
            {
              "name": "action-button",
              "description": "Botão interno da ação."
            },
            {
              "name": "clear",
              "description": "Botão de limpar o texto digitado."
            }
          ],
          "events": [
            {
              "name": "brSelectInputFocus",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o campo interno recebe foco."
            },
            {
              "name": "brSelectInputValueChange",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Evento emitido quando o valor digitado no campo de busca muda."
            },
            {
              "name": "brSelectInputActionClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o usuário aciona o ícone de abertura/fechamento."
            },
            {
              "name": "brSelectInputClick",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o usuário clica no campo do select."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SelectInput",
          "declaration": {
            "name": "SelectInput",
            "module": "components/select-input/select-input.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-select-input",
          "declaration": {
            "name": "SelectInput",
            "module": "components/select-input/select-input.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/select-list/select-list.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Painel suspenso com lista virtualizada do `br-select`.\n\nÉ gerenciado internamente pelo `br-select` para exibir as opções com alta performance, mesmo em listas grandes. Não é necessário utilizá-lo de forma avulsa.",
          "name": "SelectList",
          "cssParts": [
            {
              "description": "Contêiner visual da lista virtualizada.",
              "name": "list"
            },
            {
              "description": "Área do indicador de carregamento.",
              "name": "loading"
            },
            {
              "description": "Cabeçalho visual de um grupo de opções.",
              "name": "option-group"
            }
          ],
          "slots": [
            {
              "description": "Indicador exibido enquanto resultados remotos são carregados. Padrão: spinner com o texto \"Pesquisando…\".",
              "name": "loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "SELECT_ALL_LABEL",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "'Selecionar todos'",
              "parsedType": {
                "text": "'Selecionar todos'"
              }
            },
            {
              "kind": "field",
              "name": "DESELECT_ALL_LABEL",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "'Desselecionar todos'",
              "parsedType": {
                "text": "'Desselecionar todos'"
              }
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSelectListElement"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual da lista, das opções regulares e do indicador de carregamento.\nA opção sintética de selecionar todos permanece com densidade `small`.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "options",
              "type": {
                "text": "SelectOptionData[]"
              },
              "default": "[]",
              "description": "É um contrato de composição abastecido pelo `br-select`; não é a API de\nopções do componente principal. Cada opção deve conter `value` string e\npode conter `label` e `group` como strings opcionais; entradas inválidas\nsão ignoradas."
            },
            {
              "kind": "method",
              "name": "handleOptionsChange",
              "parameters": [
                {
                  "name": "newOptions",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncRenderedOptionSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "searchTerm",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Termo usado para filtrar opções por rótulo ou valor."
            },
            {
              "kind": "field",
              "name": "searchMode",
              "type": {
                "text": "SelectSearchMode"
              },
              "default": "'local'",
              "description": "Define se `searchTerm` filtra as opções (`local`) ou se as opções já chegam\nfiltradas pelo servidor (`remote`). Nos dois modos, um termo sem resultados\nexibe a mensagem de lista vazia. Valores inválidos usam `local`.",
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveSearchMode",
              "type": {
                "text": "SelectSearchMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que os resultados remotos estão sendo carregados."
            },
            {
              "kind": "field",
              "name": "visibleItems",
              "type": {
                "text": "number"
              },
              "default": "6",
              "description": "Define quantas linhas visuais permanecem visíveis na viewport da lista.\nCabeçalhos de grupo também ocupam uma linha quando existem.\nDeve ser um inteiro positivo; valores inválidos usam 6."
            },
            {
              "kind": "field",
              "name": "itemHeight",
              "type": {
                "text": "number"
              },
              "default": "56",
              "description": "Informa a altura base usada no cálculo de posicionamento das opções.\nDeve ser um número finito positivo; valores inválidos usam 56."
            },
            {
              "kind": "field",
              "name": "overscan",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Define quantas opções extras são renderizadas fora da viewport quando o virtual scroll está ativo.\nDeve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "hideDividers",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Oculta os divisores entre opções consecutivas, sem alterar a altura das linhas."
            },
            {
              "kind": "field",
              "name": "selectAllLabel",
              "type": {
                "text": "string"
              },
              "description": "Rótulo apresentado para a ação de selecionar todos no modo múltiplo.",
              "default": "'Selecionar todos'"
            },
            {
              "kind": "field",
              "name": "unselectAllLabel",
              "type": {
                "text": "string"
              },
              "description": "Rótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.",
              "default": "'Desselecionar todos'"
            },
            {
              "kind": "field",
              "name": "activeOptionIndex",
              "type": {
                "text": "number"
              },
              "default": "-1",
              "description": "Índice da opção atualmente ativa para navegação por teclado.\nDeve ser um inteiro maior ou igual a -1; valores inválidos usam -1."
            },
            {
              "kind": "field",
              "name": "effectiveVisibleItems",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "type": {
                "text": "BrDensity"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveItemHeight",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveOverscan",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveActiveOptionIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "isOpen",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isMultiple",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "scrollTop",
              "type": {
                "text": "number"
              },
              "default": "0"
            },
            {
              "kind": "field",
              "name": "measuredItemHeight",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "measuredSelectAllItemHeight",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMultiple",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "O `br-select` fornece a opção sintética de selecionar todos antes de\nconseguir chamar `setMultiple()` no elemento da lista. Usar esse\nmarcador no primeiro render evita que os checkboxes apareçam somente\ndepois de uma interação.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "listElement",
              "type": {
                "text": "HTMLDivElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "measurementFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "measurementInProgress",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "measurementRequested",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "filteredOptionsCache",
              "type": {
                "text": "SelectOptionData[] | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "filteredOptionsCacheKey",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "filteredOptionsCacheSource",
              "type": {
                "text": "SelectOptionData[] | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "virtualRowsCache",
              "type": {
                "text": "SelectListRow[] | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "virtualRowsCacheSource",
              "type": {
                "text": "SelectOptionData[] | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "scrollBatch",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleSearchTermChange"
            },
            {
              "kind": "method",
              "name": "handleSelectAllLabelChange"
            },
            {
              "kind": "method",
              "name": "handleOptionStateChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<SelectOptionData>"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "open",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Abre a lista e agenda a medição das opções quando necessário."
            },
            {
              "kind": "method",
              "name": "close",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Fecha a lista de opções."
            },
            {
              "kind": "method",
              "name": "setOptions",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  },
                  "description": "Nova coleção de opções normalizadas."
                }
              ],
              "description": "Substitui todas as opções renderizadas pela lista."
            },
            {
              "kind": "method",
              "name": "setOption",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  },
                  "description": "Opção que deve ser persistida na lista."
                }
              ],
              "description": "Adiciona ou atualiza uma única opção na coleção atual."
            },
            {
              "kind": "method",
              "name": "setSearchTerm",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "term",
                  "type": {
                    "text": "string"
                  },
                  "description": "Termo que deve filtrar a coleção. String vazia restaura todas as opções."
                }
              ],
              "description": "Atualiza o termo de busca e reinicia a janela virtual no topo."
            },
            {
              "kind": "method",
              "name": "setMultiple",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "isMultiple",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Define se a lista deve operar em seleção múltipla."
                }
              ],
              "description": "Alterna a lista entre modo simples e múltiplo."
            },
            {
              "kind": "field",
              "name": "isControlledBySelect",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getOptions",
              "return": {
                "type": {
                  "text": "Promise<SelectOptionData[]>"
                }
              },
              "description": "Retorna uma cópia das opções atualmente controladas pela lista."
            },
            {
              "kind": "method",
              "name": "scrollOptionToTop",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  },
                  "description": "Índice lógico da opção alvo."
                }
              ],
              "description": "Posiciona uma opção no topo da viewport virtual, respeitando o limite final da lista."
            },
            {
              "kind": "method",
              "name": "scrollFirstSelectedOptionToTop",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Posiciona no topo a primeira opção selecionada na ordem visual da lista.\nA opção auxiliar de selecionar tudo não participa dessa escolha."
            },
            {
              "kind": "method",
              "name": "focusOption",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  },
                  "description": "Índice lógico da opção alvo."
                }
              ],
              "description": "Garante visibilidade e foco para uma opção específica."
            },
            {
              "kind": "method",
              "name": "revealOption",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Torna o item ativo visível sem retirar o foco do campo."
            },
            {
              "kind": "method",
              "name": "setOptionSelected",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  },
                  "description": "Índice lógico da opção alvo."
                },
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Estado desejado para a opção. Quando omitido, a própria opção alterna o valor atual."
                }
              ],
              "description": "Aciona a seleção programática de uma opção específica."
            },
            {
              "kind": "field",
              "name": "waitForNextFrame",
              "privacy": "private",
              "readonly": true,
              "description": "Aguarda o próximo frame para que medições e queries reflitam o DOM recém-renderizado.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "applyMultipleOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "detail",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applySingleSelect",
              "privacy": "private",
              "parameters": [
                {
                  "name": "detail",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "clearSingleSelection",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isSelectAllOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isSelectableOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSelectableOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSelectAllLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "indeterminate",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "createSelectAllOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData"
                }
              }
            },
            {
              "kind": "method",
              "name": "normalizeSelectAllOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData"
                }
              },
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "toggleAllOptions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selected",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "syncSelectAllOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeOptionsForMode",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "options",
                  "type": {
                    "text": "SelectOptionData[]"
                  }
                },
                {
                  "name": "isMultiple",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeOptionData",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeSearchText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string | null | undefined"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getFilteredOptions",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectOptionData[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "getVirtualRows",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SelectListRow[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRowIndexForOption",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "rows",
                  "type": {
                    "text": "SelectListRow[]"
                  }
                },
                {
                  "name": "optionIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleScroll",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getViewportHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRowHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "row",
                  "optional": true,
                  "type": {
                    "text": "SelectListRow"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getRowsHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "rows",
                  "type": {
                    "text": "SelectListRow[]"
                  }
                },
                {
                  "name": "endIndex",
                  "default": "rows.length"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getRowTop",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "rows",
                  "type": {
                    "text": "SelectListRow[]"
                  }
                },
                {
                  "name": "rowIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getVisibleRange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "{ startIndex: number; endIndex: number }"
                }
              }
            },
            {
              "kind": "method",
              "name": "clampScrollPosition",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "scheduleMeasureItemHeight",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "measureItemHeight",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getOptionElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrSelectOptionElement | null"
                }
              },
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  },
                  "description": "Índice da opção dentro da coleção atual."
                }
              ],
              "description": "Localiza a opção renderizada correspondente a um índice lógico da lista."
            },
            {
              "kind": "method",
              "name": "ensureOptionVisible",
              "privacy": "private",
              "parameters": [
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderOption",
              "privacy": "private",
              "parameters": [
                {
                  "name": "option",
                  "type": {
                    "text": "SelectOptionData"
                  }
                },
                {
                  "name": "optionIndex",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "rowIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderGroup",
              "privacy": "private",
              "parameters": [
                {
                  "name": "row",
                  "type": {
                    "text": "Extract<SelectListRow, { kind: 'group' }>"
                  }
                },
                {
                  "name": "rowIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getVirtualScrollStyle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getVirtualSpacerStyle",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getVirtualVisibleRows",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderVirtualOptions",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderLoading",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual da lista, das opções regulares e do indicador de carregamento.\nA opção sintética de selecionar todos permanece com densidade `small`.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "options",
              "fieldName": "options",
              "default": "[]",
              "description": "É um contrato de composição abastecido pelo `br-select`; não é a API de\nopções do componente principal. Cada opção deve conter `value` string e\npode conter `label` e `group` como strings opcionais; entradas inválidas\nsão ignoradas.",
              "type": {
                "text": "SelectOptionData[]"
              }
            },
            {
              "name": "search-term",
              "fieldName": "searchTerm",
              "default": "''",
              "description": "Termo usado para filtrar opções por rótulo ou valor.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "search-mode",
              "fieldName": "searchMode",
              "default": "'local'",
              "description": "Define se `searchTerm` filtra as opções (`local`) ou se as opções já chegam\nfiltradas pelo servidor (`remote`). Nos dois modos, um termo sem resultados\nexibe a mensagem de lista vazia. Valores inválidos usam `local`.",
              "type": {
                "text": "SelectSearchMode"
              },
              "parsedType": {
                "text": "'local' | 'remote'"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "default": "false",
              "description": "Indica que os resultados remotos estão sendo carregados.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "visible-items",
              "fieldName": "visibleItems",
              "default": "6",
              "description": "Define quantas linhas visuais permanecem visíveis na viewport da lista.\nCabeçalhos de grupo também ocupam uma linha quando existem.\nDeve ser um inteiro positivo; valores inválidos usam 6.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "item-height",
              "fieldName": "itemHeight",
              "default": "56",
              "description": "Informa a altura base usada no cálculo de posicionamento das opções.\nDeve ser um número finito positivo; valores inválidos usam 56.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "overscan",
              "fieldName": "overscan",
              "default": "0",
              "description": "Define quantas opções extras são renderizadas fora da viewport quando o virtual scroll está ativo.\nDeve ser um inteiro não negativo; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "hide-dividers",
              "fieldName": "hideDividers",
              "default": "false",
              "description": "Oculta os divisores entre opções consecutivas, sem alterar a altura das linhas.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "select-all-label",
              "fieldName": "selectAllLabel",
              "default": "'Selecionar todos'",
              "description": "Rótulo apresentado para a ação de selecionar todos no modo múltiplo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "unselect-all-label",
              "fieldName": "unselectAllLabel",
              "default": "'Desselecionar todos'",
              "description": "Rótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "active-option-index",
              "fieldName": "activeOptionIndex",
              "default": "-1",
              "description": "Índice da opção atualmente ativa para navegação por teclado.\nDeve ser um inteiro maior ou igual a -1; valores inválidos usam -1.",
              "type": {
                "text": "number"
              }
            }
          ],
          "tagName": "br-select-list",
          "status": "stable",
          "csspart": [
            {
              "name": "list",
              "description": "Contêiner visual da lista virtualizada."
            },
            {
              "name": "loading",
              "description": "Área do indicador de carregamento."
            },
            {
              "name": "option-group",
              "description": "Cabeçalho visual de um grupo de opções."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SelectList",
          "declaration": {
            "name": "SelectList",
            "module": "components/select-list/select-list.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-select-list",
          "declaration": {
            "name": "SelectList",
            "module": "components/select-list/select-list.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/select-option/select-option.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa uma opção dentro do `br-select`. Use no slot padrão do componente.\n\nDefina `value` para o valor de formulário e `label` para o texto exibido. Use `selected` para marcar a opção como selecionada inicialmente e `disabled` para desabilitá-la. Para agrupamento, utilize `group`.\n\n```html\n<br-select-option value=\"df\" label=\"Distrito Federal\"></br-select-option>\n```",
          "name": "SelectOption",
          "cssParts": [
            {
              "description": "Item visual da opção.",
              "name": "option"
            },
            {
              "description": "Checkbox exibido no modo múltiplo.",
              "name": "checkbox"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo ou rótulo visual da opção.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSelectOptionElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual da opção e do item interno.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Desativa a interação da opção.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Marca a opção como ativa para navegação por teclado."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Rótulo textual exibido para a opção.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "group",
              "type": {
                "text": "string | undefined"
              },
              "description": "Nome do grupo visual e semântico da opção dentro do `br-select`.\nString vazia é tratada como ausência de grupo.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "indeterminate",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Indica o estado intermediário da opção.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Indica se a opção está selecionada.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "undefined",
              "description": "Valor semântico associado à opção."
            },
            {
              "kind": "field",
              "name": "showCheckbox",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe o checkbox de seleção ao lado do conteúdo."
            },
            {
              "kind": "field",
              "name": "hasWarnedMissingValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasWarnedEmptyValue",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "lastStateChangeKey",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "method",
              "name": "handleDisabledChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handlePropsChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "handleSelectedChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "getItemHeight",
              "return": {
                "type": {
                  "text": "Promise<number>"
                }
              },
              "description": "Retorna a altura efetiva da opção para cálculo de virtual scroll."
            },
            {
              "kind": "method",
              "name": "setFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Encaminha o foco para o elemento interativo interno da opção."
            },
            {
              "kind": "method",
              "name": "setSelectedState",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Estado desejado. Quando omitido, o valor atual é invertido."
                }
              ],
              "description": "Atualiza programaticamente o estado selecionado da opção."
            },
            {
              "kind": "field",
              "name": "handleActivation",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "isControlledBySingleSelect",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "emitStateChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selected",
                  "default": "this.selected"
                }
              ]
            },
            {
              "kind": "field",
              "name": "isControlledBySelect",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "applySelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "selected",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  },
                  "description": "Próximo estado selecionado da opção."
                }
              ],
              "description": "Centraliza a transição de seleção para manter emissão e limpeza de estado consistentes."
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveDensity",
              "type": {
                "text": "BrDensity"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "method",
              "name": "getResolvedLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getResolvedGroup",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAccessibleLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getResolvedValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "warnMissingValue",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "warnEmptyValue",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getFallbackValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "normalizeText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "extractSlotText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual da opção e do item interno.\nAceita `small`, `medium` ou `large`. Valores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa a interação da opção.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Marca a opção como ativa para navegação por teclado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Rótulo textual exibido para a opção.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "group",
              "fieldName": "group",
              "description": "Nome do grupo visual e semântico da opção dentro do `br-select`.\nString vazia é tratada como ausência de grupo.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "indeterminate",
              "fieldName": "indeterminate",
              "default": "false",
              "description": "Indica o estado intermediário da opção.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "default": "false",
              "description": "Indica se a opção está selecionada.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "undefined",
              "description": "Valor semântico associado à opção.",
              "type": {
                "text": "string | undefined"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "show-checkbox",
              "fieldName": "showCheckbox",
              "default": "false",
              "description": "Exibe o checkbox de seleção ao lado do conteúdo.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-select-option",
          "status": "stable",
          "csspart": [
            {
              "name": "option",
              "description": "Item visual da opção."
            },
            {
              "name": "checkbox",
              "description": "Checkbox exibido no modo múltiplo."
            }
          ],
          "events": [
            {
              "name": "brSelectOptionStateChange",
              "type": {
                "text": "EventEmitter<SelectOptionData>"
              },
              "description": "Evento emitido quando o estado da opção muda."
            },
            {
              "name": "brSelectOptionPropsChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento legado emitido quando as propriedades da opção são alteradas.",
              "deprecated": "Use `brSelectOptionStateChange`."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SelectOption",
          "declaration": {
            "name": "SelectOption",
            "module": "components/select-option/select-option.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-select-option",
          "declaration": {
            "name": "SelectOption",
            "module": "components/select-option/select-option.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/sign-in.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-sign-in` padroniza o botão oficial de autenticação da conta gov.br.\n\nPode ser exibido no formato padrão (bloco com texto) ou no formato circular compacto com `shape=\"circle\"`. Use a propriedade `density` para ajustar a densidade visual.\n\n```html\n<br-sign-in label=\"Entrar com gov.br\"></br-sign-in>\n<br-sign-in shape=\"circle\" aria-label=\"Entrar com gov.br\"></br-sign-in>\n```\n\n### Quando usar\n\n- Ponto de acesso ou login único com a conta Gov.br em serviços públicos federais.\n\n### Quando evitar\n\n- Ações gerais de formulário (salvar, enviar, cancelar): use `br-button`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/signin?tab=designer).",
          "name": "SignIn",
          "cssParts": [
            {
              "description": "Parte para a área de conteúdo/texto do sign-in, usada para estilização via ::part().",
              "name": "content"
            },
            {
              "description": "Parte para a área da imagem/ícone, usada para controle de tamanho via CSS e ::part().",
              "name": "image"
            }
          ],
          "slots": [
            {
              "description": "Slot para o texto do sign-in.",
              "name": "default"
            },
            {
              "description": "Slot para ícone personalizado; em `shape=\"circle\"`, o padrão é um SVG local de usuário.",
              "name": "icon"
            },
            {
              "description": "Slot para imagem ou ícone ao lado do texto.",
              "name": "image"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSignInElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "'dark'"
              },
              "description": "Define se o sign-in usará um esquema de cores escuro, para fundos escuros.\nQuando omitido, ou com valor diferente de `dark`, usa o esquema claro.",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "emphasis",
              "type": {
                "text": "SignInEmphasis"
              },
              "default": "'secondary'",
              "description": "Define a ênfase do sign-in, alterando sua aparência para criar hierarquia visual.",
              "parsedType": {
                "text": "'primary' | 'secondary'"
              }
            },
            {
              "kind": "field",
              "name": "shape",
              "type": {
                "text": "SignInShape"
              },
              "default": "'pill'",
              "description": "Define o formato do sign-in.",
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "kind": "field",
              "name": "href",
              "type": {
                "text": "string"
              },
              "description": "URL para onde o usuário será redirecionado ao clicar. Use para login com provedores externos ou em sites tradicionais."
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "BrLinkTarget"
              },
              "default": "'_self'",
              "description": "Define onde abrir o link quando href é fornecido.",
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "navigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "'dark' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveEmphasis",
              "type": {
                "text": "SignInEmphasis"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'primary' | 'secondary'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveShape",
              "type": {
                "text": "SignInShape"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTarget",
              "type": {
                "text": "BrLinkTarget"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveNavigationMode",
              "type": {
                "text": "BrNavigationMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleFocus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hasSlotContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "slotName",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTagType",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAttributes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Define se o sign-in usará um esquema de cores escuro, para fundos escuros.\nQuando omitido, ou com valor diferente de `dark`, usa o esquema claro.",
              "type": {
                "text": "'dark'"
              },
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "emphasis",
              "fieldName": "emphasis",
              "default": "'secondary'",
              "description": "Define a ênfase do sign-in, alterando sua aparência para criar hierarquia visual.",
              "type": {
                "text": "SignInEmphasis"
              },
              "parsedType": {
                "text": "'primary' | 'secondary'"
              }
            },
            {
              "name": "shape",
              "fieldName": "shape",
              "default": "'pill'",
              "description": "Define o formato do sign-in.",
              "type": {
                "text": "SignInShape"
              },
              "parsedType": {
                "text": "'circle' | 'block' | 'pill'"
              }
            },
            {
              "name": "href",
              "fieldName": "href",
              "description": "URL para onde o usuário será redirecionado ao clicar. Use para login com provedores externos ou em sites tradicionais.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "target",
              "fieldName": "target",
              "default": "'_self'",
              "description": "Define onde abrir o link quando href é fornecido.",
              "type": {
                "text": "BrLinkTarget"
              },
              "parsedType": {
                "text": "'_blank' | '_self' | '_parent' | '_top'"
              }
            },
            {
              "name": "navigation-mode",
              "fieldName": "navigationMode",
              "default": "'native'",
              "description": "Controla como o componente integra a navegação mantendo `href` real no elemento navegável.\n- `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.\n- `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.\nCliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.",
              "type": {
                "text": "BrNavigationMode"
              },
              "parsedType": {
                "text": "'native' | 'event'"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-sign-in",
          "status": "stable",
          "csspart": [
            {
              "name": "content",
              "description": "Parte para a área de conteúdo/texto do sign-in, usada para estilização via ::part()."
            },
            {
              "name": "image",
              "description": "Parte para a área da imagem/ícone, usada para controle de tamanho via CSS e ::part()."
            }
          ],
          "events": [
            {
              "name": "brNavigate",
              "type": {
                "text": "EventEmitter<BrNavigateDetail>"
              },
              "description": "Evento cancelável emitido em `navigation-mode=\"event\"` para cliques primários sem modificadores em links `_self`.\nChame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA."
            }
          ],
          "customElement": true,
          "category": "Identidade",
          "categories": [
            "Identidade",
            "Ações",
            "Formulários"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SignIn",
          "declaration": {
            "name": "SignIn",
            "module": "components/sign-in.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-sign-in",
          "declaration": {
            "name": "SignIn",
            "module": "components/sign-in.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/skip-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-skip-link` fornece atalhos acessíveis de teclado no topo da página para saltar blocos repetitivos de conteúdo.\n\nPosicione no início da página. Declare os atalhos usando elementos `br-skip-link-item` no slot padrão, apontando cada destino em `target`.\n\n```html\n<br-skip-link>\n  <br-skip-link-item target=\"#conteudo-principal\">Ir para o conteúdo</br-skip-link-item>\n  <br-skip-link-item target=\"#menu-navegacao\">Ir para o menu</br-skip-link-item>\n</br-skip-link>\n```\n\nO componente permanece oculto e se torna visível automaticamente assim que recebe o foco do teclado (Tab).\n\n### Quando usar\n\n- No topo de todas as páginas para cumprir as diretrizes de acessibilidade (WCAG 2.4.1).\n\n### Quando evitar\n\n- Links de navegação comuns no corpo do texto: use `br-link`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).",
          "name": "SkipLink",
          "cssParts": [
            {
              "description": "Parte para o contêiner principal do componente skip-link, usada para estilização via ::part().",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para inserir os itens de navegação rápida (br-skip-link-item). A tag br-skiplink-item é aceita por compatibilidade.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSkipLinkElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "containerWidth",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0",
              "description": "Largura do container pai"
            },
            {
              "kind": "field",
              "name": "isSmallScreen",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Define se o componente está em modo tela pequena"
            },
            {
              "kind": "field",
              "name": "isVisible",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estado interno que controla a visibilidade do componente."
            },
            {
              "kind": "field",
              "name": "needsSimpleMode",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Define se o componente precisa mudar para modo simples por falta de espaço"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "open",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla se o skip link está aberto."
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "SkipLinkVariant"
              },
              "default": "'compound'",
              "description": "Define se o skip link apresenta um ou múltiplos itens visíveis.\n- 'simple': Exibe apenas um item por vez.\n- 'compound': Exibe uma lista com múltiplos itens.\nValores inválidos usam 'compound'.",
              "parsedType": {
                "text": "'simple' | 'compound'"
              }
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "SkipLinkPosition"
              },
              "default": "'top-left'",
              "description": "Define a posição do skip link na tela.\n- 'top-left': Posicionado no canto superior esquerdo.\n- 'top-center': Posicionado no centro superior.\n- 'top-right': Posicionado no canto superior direito.\nValores inválidos usam 'top-left'.",
              "parsedType": {
                "text": "'top-right' | 'top-left' | 'top-center'"
              }
            },
            {
              "kind": "field",
              "name": "zIndex",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Define o z-index do componente.\nControla a ordem de empilhamento do componente na página.\nDeve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "showItemCount",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe a contagem de itens no formato (1/4), (2/4), etc.\nQuando `true`, cada item mostrará sua posição relativa ao total de itens.\nPor padrão, é `true` para o modo simple e `false` para o modo compound.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVariant",
              "type": {
                "text": "SkipLinkVariant"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'simple' | 'compound'"
              }
            },
            {
              "kind": "field",
              "name": "effectivePosition",
              "type": {
                "text": "SkipLinkPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'top-right' | 'top-left' | 'top-center'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveZIndex",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "method",
              "name": "handleOpenChange"
            },
            {
              "kind": "method",
              "name": "updateStyles"
            },
            {
              "kind": "method",
              "name": "watchModeChanges",
              "description": "Observa mudanças nos estados que afetam o modo efetivo (simple/compound)\ne atualiza as contagens dos itens quando necessário."
            },
            {
              "kind": "method",
              "name": "handleItemNavigation",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ itemId: string; target: string }>"
                  }
                }
              ],
              "description": "Listener para eventos de navegação dos itens filhos."
            },
            {
              "kind": "method",
              "name": "handleFocusIn",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ],
              "description": "Listener para evento de foco no componente."
            },
            {
              "kind": "method",
              "name": "handleFocusOut",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "FocusEvent"
                  }
                }
              ],
              "description": "Listener para evento de perda de foco no componente."
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Listener para a tecla Escape."
            },
            {
              "kind": "method",
              "name": "hide",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Oculta o componente programaticamente."
            },
            {
              "kind": "method",
              "name": "show",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Exibe o componente programaticamente."
            },
            {
              "kind": "field",
              "name": "resizeObserver",
              "type": {
                "text": "ResizeObserver"
              },
              "privacy": "private",
              "description": "ResizeObserver para monitorar mudanças no tamanho do container"
            },
            {
              "kind": "method",
              "name": "isInsideComponent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "EventTarget | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getSkipLinkItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrSkiplinkItemElement[]"
                }
              },
              "description": "Manipulador global para atalhos de teclado Alt+[número]."
            },
            {
              "kind": "field",
              "name": "globalKeyHandler",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setFocusedItem",
              "privacy": "private",
              "parameters": [
                {
                  "name": "path",
                  "type": {
                    "text": "EventTarget[]"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "updateContainerSize",
              "privacy": "private",
              "description": "Calcula a largura total dos itens e atualiza os estados do componente"
            },
            {
              "kind": "method",
              "name": "calculateItemsWidth",
              "privacy": "private",
              "description": "Calcula a largura total dos itens do skip-link e determina se deve usar modo simple ou compound."
            },
            {
              "kind": "method",
              "name": "sumItemsWidth",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<number>"
                }
              },
              "parameters": [
                {
                  "name": "items",
                  "type": {
                    "text": "HTMLBrSkiplinkItemElement[]"
                  }
                }
              ],
              "description": "Soma a largura de todos os itens do skip-link"
            },
            {
              "kind": "method",
              "name": "calculateAvailableWidth",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "description": "Calcula a largura disponível descontando margens e margem de segurança"
            },
            {
              "kind": "method",
              "name": "updateItemCounts",
              "privacy": "private",
              "description": "Atualiza os atributos de contagem nos itens filhos.\nAdiciona data-item-index e data-item-total em cada br-skiplink-item.\nA contagem é exibida quando o componente está em modo simple (incluindo modo responsivo)."
            },
            {
              "kind": "method",
              "name": "getEffectivePosition",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "'top-left' | 'top-center' | 'top-right'"
                }
              }
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "open",
              "fieldName": "open",
              "default": "false",
              "description": "Controla se o skip link está aberto."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "default": "'compound'",
              "description": "Define se o skip link apresenta um ou múltiplos itens visíveis.\n- 'simple': Exibe apenas um item por vez.\n- 'compound': Exibe uma lista com múltiplos itens.\nValores inválidos usam 'compound'.",
              "type": {
                "text": "SkipLinkVariant"
              },
              "parsedType": {
                "text": "'simple' | 'compound'"
              }
            },
            {
              "name": "position",
              "fieldName": "position",
              "default": "'top-left'",
              "description": "Define a posição do skip link na tela.\n- 'top-left': Posicionado no canto superior esquerdo.\n- 'top-center': Posicionado no centro superior.\n- 'top-right': Posicionado no canto superior direito.\nValores inválidos usam 'top-left'.",
              "type": {
                "text": "SkipLinkPosition"
              },
              "parsedType": {
                "text": "'top-right' | 'top-left' | 'top-center'"
              }
            },
            {
              "name": "z-index",
              "fieldName": "zIndex",
              "default": "null",
              "description": "Define o z-index do componente.\nControla a ordem de empilhamento do componente na página.\nDeve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.",
              "type": {
                "text": "number | null"
              },
              "parsedType": {
                "text": "number"
              }
            },
            {
              "name": "show-item-count",
              "fieldName": "showItemCount",
              "description": "Exibe a contagem de itens no formato (1/4), (2/4), etc.\nQuando `true`, cada item mostrará sua posição relativa ao total de itens.\nPor padrão, é `true` para o modo simple e `false` para o modo compound.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-skip-link",
          "status": "stable",
          "csspart": {
            "name": "container",
            "description": "Parte para o contêiner principal do componente skip-link, usada para estilização via ::part()."
          },
          "events": [
            {
              "name": "brSkiplinkNavigation",
              "type": {
                "text": "EventEmitter<SkipLinkNavigateDetail>"
              },
              "description": "Evento emitido quando um item do skiplink é ativado.\nO evento contém informações sobre o item acionado e o elemento target.",
              "deprecated": "Use `brSkipLinkNavigate`."
            },
            {
              "name": "brSkipLinkNavigate",
              "type": {
                "text": "EventEmitter<SkipLinkNavigateDetail>"
              },
              "description": "Evento emitido quando um destino é ativado."
            },
            {
              "name": "brDidShow",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o skiplink se torna visível.",
              "deprecated": "Use `brSkipLinkShow`."
            },
            {
              "name": "brSkipLinkShow",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido ao exibir o componente."
            },
            {
              "name": "brDidHide",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido quando o skiplink se torna oculto.",
              "deprecated": "Use `brSkipLinkHide`."
            },
            {
              "name": "brSkipLinkHide",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido ao ocultar o componente."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SkipLink",
          "declaration": {
            "name": "SkipLink",
            "module": "components/skip-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-skip-link",
          "declaration": {
            "name": "SkipLink",
            "module": "components/skip-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/skip-link-item/skip-link-item-alias.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa um atalho de salto dentro do `br-skip-link`.\n\nAponte em `target` o seletor ou `id` do elemento de destino (ex.: `#conteudo`). Coloque o texto no slot padrão.\n\n```html\n<br-skip-link-item target=\"#conteudo\">Ir para o conteúdo principal</br-skip-link-item>\n```",
          "name": "SkipLinkItemAlias",
          "slots": [
            {
              "description": "Texto do link de navegação rápida.",
              "name": "default"
            },
            {
              "description": "Conteúdo da indicação do atalho.",
              "name": "tag"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSkipLinkItemElement"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "string"
              },
              "description": "ID ou seletor CSS de destino."
            },
            {
              "kind": "field",
              "name": "keyNumber",
              "type": {
                "text": "number | undefined"
              },
              "description": "Número inteiro de 1 a 9 do atalho de teclado; valores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string | undefined"
              },
              "description": "Identificador encaminhado ao item legado.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "hideTag",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Oculta a indicação visual do atalho."
            },
            {
              "kind": "field",
              "name": "attributeObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncItemCountAttributes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "itemFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Encaminha o foco para o item legado sem expor seu Shadow DOM ao pai."
            },
            {
              "kind": "method",
              "name": "navigateToTarget",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Encaminha a navegação para o item legado sem expor seu Shadow DOM ao pai."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "target",
              "fieldName": "target",
              "description": "ID ou seletor CSS de destino.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "key-number",
              "fieldName": "keyNumber",
              "description": "Número inteiro de 1 a 9 do atalho de teclado; valores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador encaminhado ao item legado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "hide-tag",
              "fieldName": "hideTag",
              "default": "false",
              "description": "Oculta a indicação visual do atalho."
            }
          ],
          "tagName": "br-skip-link-item",
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SkipLinkItemAlias",
          "declaration": {
            "name": "SkipLinkItemAlias",
            "module": "components/skip-link-item/skip-link-item-alias.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-skip-link-item",
          "declaration": {
            "name": "SkipLinkItemAlias",
            "module": "components/skip-link-item/skip-link-item-alias.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/skip-link-item/skip-link-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Item legado de atalho do `br-skip-link`. Em código novo, utilize `br-skip-link-item`.\n\nDefina o destino em `target` e o texto do link no slot padrão.",
          "name": "SkipLinkItem",
          "slots": [
            {
              "description": "Slot para o texto do link de navegação rápida.",
              "name": "default"
            },
            {
              "description": "Slot para personalizar a tag numérica do atalho de teclado, exibindo o valor de key-number por padrão.",
              "name": "tag"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSkiplinkItemElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "itemIndex",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Estado interno que armazena o índice do item (1, 2, 3...).\nDefinido automaticamente pelo componente pai.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "itemTotal",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Estado interno que armazena o total de itens.\nDefinido automaticamente pelo componente pai.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "target",
              "type": {
                "text": "string"
              },
              "description": "ID do elemento de destino ou seletor CSS.\nEste é o elemento para o qual o usuário será levado ao ativar este item."
            },
            {
              "kind": "field",
              "name": "keyNumber",
              "type": {
                "text": "number | undefined"
              },
              "description": "Número da tecla para acesso rápido.\nPermite que o usuário ative este item pressionando Alt+[keyNumber].\nAceita valores de 1 a 9.\nEsta propriedade implementa uma alternativa ao accessKey nativa,\nfornecendo um atalho de teclado consistente e acessível.\nValores inválidos são ignorados.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "hideTag",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Controla a visibilidade da tag numérica.\nQuando `true`, a tag numérica não será exibida, mesmo que `keyNumber` esteja definido.\nO atalho de teclado continua funcionando, apenas a indicação visual é ocultada."
            },
            {
              "kind": "field",
              "name": "effectiveKeyNumber",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "method",
              "name": "handleClick",
              "parameters": [
                {
                  "name": "_event",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ],
              "description": "Listener para cliques no item."
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Listener para teclas Enter, Space e atalho Alt+[keyNumber]."
            },
            {
              "kind": "method",
              "name": "handleFocus",
              "description": "Listener para foco no item."
            },
            {
              "kind": "method",
              "name": "itemFocus",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Move o foco para este item."
            },
            {
              "kind": "method",
              "name": "navigateToTarget",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Navega para o target definido.\nMove o foco para o elemento alvo e ajusta a rolagem da página se necessário."
            },
            {
              "kind": "field",
              "name": "mutationObserver",
              "type": {
                "text": "MutationObserver | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "MutationObserver para monitorar mudanças nos atributos de contagem.\nObserva quando o componente pai define data-item-index e data-item-total."
            },
            {
              "kind": "method",
              "name": "updateItemCount",
              "privacy": "private",
              "description": "Atualiza a contagem de itens lendo os atributos definidos pelo componente pai."
            },
            {
              "kind": "method",
              "name": "getItemCountText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              },
              "description": "Retorna a string de contagem no formato (X/Y) se disponível."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "target",
              "fieldName": "target",
              "description": "ID do elemento de destino ou seletor CSS.\nEste é o elemento para o qual o usuário será levado ao ativar este item.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "key-number",
              "fieldName": "keyNumber",
              "description": "Número da tecla para acesso rápido.\nPermite que o usuário ative este item pressionando Alt+[keyNumber].\nAceita valores de 1 a 9.\nEsta propriedade implementa uma alternativa ao accessKey nativa,\nfornecendo um atalho de teclado consistente e acessível.\nValores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "hide-tag",
              "fieldName": "hideTag",
              "default": "false",
              "description": "Controla a visibilidade da tag numérica.\nQuando `true`, a tag numérica não será exibida, mesmo que `keyNumber` esteja definido.\nO atalho de teclado continua funcionando, apenas a indicação visual é ocultada."
            }
          ],
          "deprecated": "Use `br-skip-link-item`.",
          "tagName": "br-skiplink-item",
          "status": "deprecated",
          "see": [
            "br-skip-link-item"
          ],
          "events": [
            {
              "name": "brSkiplinkItemClick",
              "type": {
                "text": "EventEmitter<SkipLinkNavigateDetail>"
              },
              "description": "Evento emitido quando o item é clicado/ativado.\nO evento contém informações sobre o item e o target.",
              "deprecated": "Use `brSkipLinkItemActivate`."
            },
            {
              "name": "brSkipLinkItemActivate",
              "type": {
                "text": "EventEmitter<SkipLinkNavigateDetail>"
              },
              "description": "Evento emitido quando o item é ativado."
            },
            {
              "name": "brSkiplinkItemFocus",
              "type": {
                "text": "EventEmitter<SkipLinkItemFocusDetail>"
              },
              "description": "Evento emitido quando o item recebe foco.",
              "deprecated": "Use `brSkipLinkItemFocus`."
            },
            {
              "name": "brSkipLinkItemFocus",
              "type": {
                "text": "EventEmitter<SkipLinkItemFocusDetail>"
              },
              "description": "Evento emitido quando o item recebe foco."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": []
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "SkipLinkItem",
          "declaration": {
            "name": "SkipLinkItem",
            "module": "components/skip-link-item/skip-link-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-skiplink-item",
          "declaration": {
            "name": "SkipLinkItem",
            "module": "components/skip-link-item/skip-link-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/slider.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-slider` seleciona um valor ou uma faixa de valores numéricos em uma trilha graduada.\n\nUse `min`, `max`, `step` e `value` para definir os limites e o valor. Para selecionar um intervalo (faixa com duas alças), use `range` e `range-value`.\n\n```html\n<br-slider min=\"0\" max=\"100\" value=\"50\" label=\"Volume\"></br-slider>\n<br-slider min=\"0\" max=\"1000\" range range-value=\"[200, 800]\" label=\"Faixa de preço\"></br-slider>\n```\n\n### Quando usar\n\n- Ajuste gradual de quantidades contínuas (volume, brilho, zoom).\n- Filtros de intervalos numéricos ou de preços.\n\n### Quando evitar\n\n- Entrada numérica exata arbitrária: use `br-input` com `type=\"number\"`.\n- Poucas escolhas fixas discretas: use `br-radio` ou `br-select`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/slider?tab=designer).",
          "name": "Slider",
          "cssParts": [
            {
              "description": "Contêiner principal do slider.",
              "name": "base"
            },
            {
              "description": "Contêiner de layout do slider.",
              "name": "layout"
            },
            {
              "description": "Área que agrupa trilha e referências.",
              "name": "body"
            },
            {
              "description": "Área interativa da trilha.",
              "name": "track"
            },
            {
              "description": "Trilha visual do slider.",
              "name": "track-visual"
            },
            {
              "description": "Contêiner das etiquetas das marcações.",
              "name": "tick-labels"
            },
            {
              "description": "Etiqueta de uma marcação intermediária.",
              "name": "tick-label"
            },
            {
              "description": "Trecho preenchido da trilha.",
              "name": "filled-track"
            },
            {
              "description": "Etiqueta com o valor da alça.",
              "name": "value-label"
            },
            {
              "description": "Seta da etiqueta de valor.",
              "name": "value-label-arrow"
            },
            {
              "description": "Alça de controle do slider.",
              "name": "thumb"
            },
            {
              "description": "Alça inicial do slider.",
              "name": "thumb-start"
            },
            {
              "description": "Alça final do slider em modo composto.",
              "name": "thumb-end"
            },
            {
              "description": "Contêiner das referências inicial e final.",
              "name": "references"
            },
            {
              "description": "Referência inicial.",
              "name": "reference-start"
            },
            {
              "description": "Referência final.",
              "name": "reference-end"
            },
            {
              "description": "Valor fixo de limite renderizado por `show-bounds`.",
              "name": "reference-bound"
            },
            {
              "description": "Contêiner do campo numérico.",
              "name": "input-wrapper"
            },
            {
              "description": "Campo numérico sincronizado com o slider.",
              "name": "input"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            },
            {
              "description": "Contêiner das marcações de passos customizados.",
              "name": "steps"
            },
            {
              "description": "Botão indicador de passo customizado individual.",
              "name": "step"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo exibido como referência inicial abaixo da trilha.",
              "name": "ref-start"
            },
            {
              "description": "Conteúdo exibido como referência final abaixo da trilha.",
              "name": "ref-end"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            },
            {
              "description": "Ícone customizado na alça de controle em modo simples.",
              "name": "thumb-icon"
            },
            {
              "description": "Ícone customizado na alça inicial em modo composto.",
              "name": "thumb-start-icon"
            },
            {
              "description": "Ícone customizado na alça final em modo composto.",
              "name": "thumb-end-icon"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLElement"
              }
            },
            {
              "kind": "field",
              "name": "dragging",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se alguma alça está sendo arrastada."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasRefEnd",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o slot `ref-end` possui conteúdo."
            },
            {
              "kind": "field",
              "name": "hasRefStart",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o slot `ref-start` possui conteúdo."
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasThumbIconSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasThumbStartIconSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasThumbEndIconSlot",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome do campo, utilizado em formulários nativos (`<form>`)."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto descritivo associado ao slider para acessibilidade."
            },
            {
              "kind": "field",
              "name": "min",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "0",
              "description": "Valor mínimo aceito pelo slider. Valores inválidos usam `0`."
            },
            {
              "kind": "field",
              "name": "max",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "100",
              "description": "Valor máximo aceito pelo slider. Deve ser maior que `min`; valores inválidos usam `100` e relações inválidas usam `min + 100`."
            },
            {
              "kind": "field",
              "name": "step",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "1",
              "description": "Incremento aplicado a cada passo. Deve ser maior que `0`; valores inválidos usam `1`."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "SliderValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao número ou intervalo selecionado.\nNo modo `range`, recebe um objeto com `start` e `end`.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst slider = document.querySelector('br-slider');\nslider.validator = (value) => {\n  const minimum = typeof value === 'number' ? value : value.start;\n  return minimum >= 18 ? null : 'O valor inicial deve ser pelo menos 18';\n};\n```"
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Valor atual do slider (alça inicial no modo composto). Valores não finitos usam o limite mínimo;\nvalores fora do intervalo são limitados."
            },
            {
              "kind": "field",
              "name": "valueEnd",
              "type": {
                "text": "number"
              },
              "default": "NaN",
              "description": "Valor da alça final no modo composto (`range`).\nQuando não fornecido em modo composto, assume o valor de `max`. Valores não finitos usam `max`,\nvalores fora do intervalo são limitados.",
              "deprecated": "Use `rangeValue`."
            },
            {
              "kind": "field",
              "name": "rangeValue",
              "type": {
                "text": "SliderRangeValue | undefined"
              },
              "description": "Valor estruturado das duas alças no modo `range`.\nDeve conter `start` e `end` finitos; valores inválidos mantêm o último valor efetivo.\nPasse o objeto por property binding.",
              "parsedType": {
                "text": "{ start: number, end: number }"
              },
              "example": "```js\nconst slider = document.querySelector('br-slider');\nslider.range = true;\nslider.rangeValue = { start: 20, end: 80 };\n```"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o slider, tornando-o não interativo."
            },
            {
              "kind": "field",
              "name": "vertical",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe o slider na orientação vertical.",
              "deprecated": "Use `orientation`."
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "'horizontal' | 'vertical' | undefined"
              },
              "readonly": true,
              "description": "Orientação padrão. Quando informada, tem precedência sobre `vertical`; valores inválidos usam `horizontal`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "range",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Ativa o modo composto com duas alças para seleção de faixa."
            },
            {
              "kind": "field",
              "name": "showLabel",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe etiqueta com o valor atual acima da alça (horizontal) ou à esquerda (vertical).\nIgnorado quando `show-input` está ativo."
            },
            {
              "kind": "field",
              "name": "showInput",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe um `br-input` numérico sincronizado com a alça.\nNo modo `range`, exibe um campo para o início e outro para o fim; na\norientação horizontal ficam nas extremidades esquerda e direita, e na\nvertical ficam acima e abaixo da trilha. Quando ativo, a etiqueta de valor\nnão é exibida."
            },
            {
              "kind": "field",
              "name": "showTicks",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe gradações na trilha como pequenos espaços que indicam os steps disponíveis,\nforçando a alça de controle a saltar entre os valores predefinidos e\nimpossibilitando a seleção de valores aleatórios."
            },
            {
              "kind": "field",
              "name": "showTickLabels",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe os valores das marcações derivadas de `min`, `max` e `step`."
            },
            {
              "kind": "field",
              "name": "showBounds",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Exibe os limites nas referências inicial e final: `min` no início e `max` no fim\n(limites fixos), tanto em modo simples quanto em modo composto (`range`). O valor\nselecionado por cada alça é exibido na etiqueta (`show-label`), não nas referências.\nQuando ativo, sobrescreve o conteúdo dos slots `ref-start` e `ref-end`."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "SliderDensity | undefined"
              },
              "readonly": true,
              "default": "'medium'",
              "description": "Densidade visual do componente.\nAltera exclusivamente as dimensões da alça de controle (thumb).\nValores aceitos: 'small' (16px), 'medium' (20px - padrão), 'large' (24px).\n'high' e 'low' são aceitos como sinônimos de 'small' e 'large'.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'high' | 'low'"
              }
            },
            {
              "kind": "field",
              "name": "thumbIcon",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Nome do ícone a ser exibido no interior da alça de controle (thumb).\nNo modo `range`, aplica-se a ambas as alças caso `thumbStartIcon` ou `thumbEndIcon` não sejam especificados.\nExemplo: 'fa-solid:arrows-left-right', 'fa-solid:circle'.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "thumbStartIcon",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Nome do ícone da alça inicial (no modo `range`, alça à esquerda/inferior).",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "thumbEndIcon",
              "type": {
                "text": "string | undefined"
              },
              "readonly": true,
              "description": "Nome do ícone da alça final (no modo `range`, alça à direita/superior).",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "gradient",
              "type": {
                "text": "string | boolean | undefined"
              },
              "readonly": true,
              "description": "Habilita gradiente de cores na trilha e sincroniza dinamicamente a cor da alça (thumb)\ne da etiqueta de valor (tooltip) com a cor correspondente à posição atual.\nPode ser um booleano (usa gradiente padrão verde -> amarelo -> vermelho)\nou uma string com cores/gradiente customizado (ex.: '#168821, #ffcd07, #e52207' ou 'linear-gradient(...)').",
              "parsedType": {
                "text": "string | false | true"
              }
            },
            {
              "kind": "field",
              "name": "steps",
              "type": {
                "text": "SliderStep[] | string | undefined"
              },
              "readonly": true,
              "description": "Lista de passos customizados para o slider.\nCada passo pode definir `value`, `label` (texto exibido no tooltip e/ou abaixo da trilha)\ne `icon` (nome do ícone exibido abaixo da marcação do passo).\nAceita array de objetos `SliderStep[]`, array de strings `string[]`, ou string JSON.",
              "parsedType": {
                "text": "string | { value: number, label: string, icon: string, ariaLabel: string }[]"
              },
              "example": "```js\nconst slider = document.querySelector('br-slider');\nslider.steps = [\n  { value: 1, label: 'Péssimo', icon: 'fa-solid:face-frown' },\n  { value: 5, label: 'Excelente', icon: 'fa-solid:face-laugh' },\n];\n```"
            },
            {
              "kind": "field",
              "name": "effectiveMin",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveMax",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveStep",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveValue",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveValueEnd",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "onValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onValueEndChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onRangeValueChange",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "SliderRangeValue"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "trackEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "thumbStartEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "thumbEndEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "valueLabelStartEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "valueLabelEndEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "arrowStartEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "arrowEndEl",
              "type": {
                "text": "HTMLElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupLabelStart",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupLabelEnd",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "inputStartEl",
              "type": {
                "text": "HTMLBrInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "inputEndEl",
              "type": {
                "text": "HTMLBrInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "inputEditing",
              "type": {
                "text": "SliderThumb | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "'start' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "draggingThumb",
              "type": {
                "text": "SliderThumb"
              },
              "privacy": "private",
              "default": "'start'",
              "parsedType": {
                "text": "'start' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "tickValuesCacheKey",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "tickValuesCache",
              "type": {
                "text": "number[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "MAX_VISUAL_TICKS",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "static": true,
              "readonly": true,
              "default": "200",
              "parsedType": {
                "text": "200"
              }
            },
            {
              "kind": "field",
              "name": "initialValue",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "initialValueEnd",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "dragRect",
              "type": {
                "text": "DOMRect | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "pointerBatch",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna se o slider atende às constraints configuradas."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Valida e solicita ao navegador a apresentação do erro atual."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define ou limpa uma mensagem de validade customizada."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do slider e retorna se o valor atual é válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "field",
              "name": "effectiveVertical",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "setupLabelAutoUpdate",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "positionLabels",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "positionSingleLabel",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "label",
                  "type": {
                    "text": "HTMLElement"
                  }
                },
                {
                  "name": "arrowEl",
                  "optional": true,
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getFormValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncRangeValue",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "normalizedSteps",
              "type": {
                "text": "SliderStep[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "hasGradient",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "gradientStops",
              "type": {
                "text": "ColorStop[]"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getGradientColorAt",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "parameters": [
                {
                  "name": "val",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getGradientCss",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "direction",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "clamp",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "max",
                  "default": "this.effectiveMax",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "min",
                  "default": "this.effectiveMin",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "snapToStep",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "percent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              }
            },
            {
              "kind": "method",
              "name": "percentOf",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "val",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applyGradientToFilledStyle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "style",
                  "type": {
                    "text": "SliderInlineStyle"
                  }
                },
                {
                  "name": "pctStart",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "span",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getFilledStyle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SliderInlineStyle"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTrackMaskStyle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SliderInlineStyle | undefined"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTickValues",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "getValueFromX",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "clientX",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "rect",
                  "default": "this.trackEl?.getBoundingClientRect()"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getValueFromY",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "clientY",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "rect",
                  "default": "this.trackEl?.getBoundingClientRect()"
                }
              ]
            },
            {
              "kind": "method",
              "name": "nearerThumb",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SliderThumb"
                }
              },
              "parameters": [
                {
                  "name": "rawValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "applyUpdate",
              "privacy": "private",
              "parameters": [
                {
                  "name": "rawValue",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handlePointerDown",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handlePointerMove",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handlePointerUp",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getInputValueState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateValueFromInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleInputInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleInputChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "calculateNextStepValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number | null"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "current",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "min",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "max",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "calculateNextSliderValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number | null"
                }
              },
              "parameters": [
                {
                  "name": "key",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "current",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "min",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "max",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "shouldShowValueLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getThumbStyle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "SliderInlineStyle"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setValueLabelElement",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "el",
                  "optional": true,
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setValueLabelArrowElement",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "el",
                  "optional": true,
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setThumbElement",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "el",
                  "optional": true,
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderValueLabel",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderThumb",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "style",
                  "type": {
                    "text": "SliderInlineStyle"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderReferences",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setInputElement",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                },
                {
                  "name": "element",
                  "optional": true,
                  "type": {
                    "text": "HTMLBrInputElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderInput",
              "privacy": "private",
              "parameters": [
                {
                  "name": "thumb",
                  "type": {
                    "text": "SliderThumb"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleStepClick",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "renderSteps",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderTrack",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderTickLabels",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo, utilizado em formulários nativos (`<form>`).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo associado ao slider para acessibilidade.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "min",
              "fieldName": "min",
              "default": "0",
              "description": "Valor mínimo aceito pelo slider. Valores inválidos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max",
              "fieldName": "max",
              "default": "100",
              "description": "Valor máximo aceito pelo slider. Deve ser maior que `min`; valores inválidos usam `100` e relações inválidas usam `min + 100`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "step",
              "fieldName": "step",
              "default": "1",
              "description": "Incremento aplicado a cada passo. Deve ser maior que `0`; valores inválidos usam `1`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao número ou intervalo selecionado.\nNo modo `range`, recebe um objeto com `start` e `end`.",
              "type": {
                "text": "SliderValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "0",
              "description": "Valor atual do slider (alça inicial no modo composto). Valores não finitos usam o limite mínimo;\nvalores fora do intervalo são limitados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "value-end",
              "fieldName": "valueEnd",
              "default": "NaN",
              "description": "Valor da alça final no modo composto (`range`).\nQuando não fornecido em modo composto, assume o valor de `max`. Valores não finitos usam `max`,\nvalores fora do intervalo são limitados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "range-value",
              "fieldName": "rangeValue",
              "description": "Valor estruturado das duas alças no modo `range`.\nDeve conter `start` e `end` finitos; valores inválidos mantêm o último valor efetivo.\nPasse o objeto por property binding.",
              "type": {
                "text": "SliderRangeValue"
              },
              "parsedType": {
                "text": "{ start: number, end: number }"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o slider, tornando-o não interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "vertical",
              "fieldName": "vertical",
              "default": "false",
              "description": "Exibe o slider na orientação vertical.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "Orientação padrão. Quando informada, tem precedência sobre `vertical`; valores inválidos usam `horizontal`.",
              "type": {
                "text": "'horizontal' | 'vertical'"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "range",
              "fieldName": "range",
              "default": "false",
              "description": "Ativa o modo composto com duas alças para seleção de faixa.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-label",
              "fieldName": "showLabel",
              "default": "false",
              "description": "Exibe etiqueta com o valor atual acima da alça (horizontal) ou à esquerda (vertical).\nIgnorado quando `show-input` está ativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-input",
              "fieldName": "showInput",
              "default": "false",
              "description": "Exibe um `br-input` numérico sincronizado com a alça.\nNo modo `range`, exibe um campo para o início e outro para o fim; na\norientação horizontal ficam nas extremidades esquerda e direita, e na\nvertical ficam acima e abaixo da trilha. Quando ativo, a etiqueta de valor\nnão é exibida.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-ticks",
              "fieldName": "showTicks",
              "default": "false",
              "description": "Exibe gradações na trilha como pequenos espaços que indicam os steps disponíveis,\nforçando a alça de controle a saltar entre os valores predefinidos e\nimpossibilitando a seleção de valores aleatórios.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-tick-labels",
              "fieldName": "showTickLabels",
              "default": "false",
              "description": "Exibe os valores das marcações derivadas de `min`, `max` e `step`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-bounds",
              "fieldName": "showBounds",
              "default": "false",
              "description": "Exibe os limites nas referências inicial e final: `min` no início e `max` no fim\n(limites fixos), tanto em modo simples quanto em modo composto (`range`). O valor\nselecionado por cada alça é exibido na etiqueta (`show-label`), não nas referências.\nQuando ativo, sobrescreve o conteúdo dos slots `ref-start` e `ref-end`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Densidade visual do componente.\nAltera exclusivamente as dimensões da alça de controle (thumb).\nValores aceitos: 'small' (16px), 'medium' (20px - padrão), 'large' (24px).\n'high' e 'low' são aceitos como sinônimos de 'small' e 'large'.",
              "type": {
                "text": "SliderDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large' | 'high' | 'low'"
              }
            },
            {
              "name": "thumb-icon",
              "fieldName": "thumbIcon",
              "description": "Nome do ícone a ser exibido no interior da alça de controle (thumb).\nNo modo `range`, aplica-se a ambas as alças caso `thumbStartIcon` ou `thumbEndIcon` não sejam especificados.\nExemplo: 'fa-solid:arrows-left-right', 'fa-solid:circle'.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "thumb-start-icon",
              "fieldName": "thumbStartIcon",
              "description": "Nome do ícone da alça inicial (no modo `range`, alça à esquerda/inferior).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "thumb-end-icon",
              "fieldName": "thumbEndIcon",
              "description": "Nome do ícone da alça final (no modo `range`, alça à direita/superior).",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "gradient",
              "fieldName": "gradient",
              "description": "Habilita gradiente de cores na trilha e sincroniza dinamicamente a cor da alça (thumb)\ne da etiqueta de valor (tooltip) com a cor correspondente à posição atual.\nPode ser um booleano (usa gradiente padrão verde -> amarelo -> vermelho)\nou uma string com cores/gradiente customizado (ex.: '#168821, #ffcd07, #e52207' ou 'linear-gradient(...)').",
              "type": {
                "text": "string | boolean"
              },
              "parsedType": {
                "text": "string | false | true"
              }
            },
            {
              "name": "steps",
              "fieldName": "steps",
              "description": "Lista de passos customizados para o slider.\nCada passo pode definir `value`, `label` (texto exibido no tooltip e/ou abaixo da trilha)\ne `icon` (nome do ícone exibido abaixo da marcação do passo).\nAceita array de objetos `SliderStep[]`, array de strings `string[]`, ou string JSON.",
              "type": {
                "text": "SliderStep[] | string"
              },
              "parsedType": {
                "text": "string | { value: number, label: string, icon: string, ariaLabel: string }[]"
              }
            }
          ],
          "tagName": "br-slider",
          "status": "stable",
          "csspart": [
            {
              "name": "base",
              "description": "Contêiner principal do slider."
            },
            {
              "name": "layout",
              "description": "Contêiner de layout do slider."
            },
            {
              "name": "body",
              "description": "Área que agrupa trilha e referências."
            },
            {
              "name": "track",
              "description": "Área interativa da trilha."
            },
            {
              "name": "track-visual",
              "description": "Trilha visual do slider."
            },
            {
              "name": "tick-labels",
              "description": "Contêiner das etiquetas das marcações."
            },
            {
              "name": "tick-label",
              "description": "Etiqueta de uma marcação intermediária."
            },
            {
              "name": "filled-track",
              "description": "Trecho preenchido da trilha."
            },
            {
              "name": "value-label",
              "description": "Etiqueta com o valor da alça."
            },
            {
              "name": "value-label-arrow",
              "description": "Seta da etiqueta de valor."
            },
            {
              "name": "thumb",
              "description": "Alça de controle do slider."
            },
            {
              "name": "thumb-start",
              "description": "Alça inicial do slider."
            },
            {
              "name": "thumb-end",
              "description": "Alça final do slider em modo composto."
            },
            {
              "name": "references",
              "description": "Contêiner das referências inicial e final."
            },
            {
              "name": "reference-start",
              "description": "Referência inicial."
            },
            {
              "name": "reference-end",
              "description": "Referência final."
            },
            {
              "name": "reference-bound",
              "description": "Valor fixo de limite renderizado por `show-bounds`."
            },
            {
              "name": "input-wrapper",
              "description": "Contêiner do campo numérico."
            },
            {
              "name": "input",
              "description": "Campo numérico sincronizado com o slider."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            },
            {
              "name": "steps",
              "description": "Contêiner das marcações de passos customizados."
            },
            {
              "name": "step",
              "description": "Botão indicador de passo customizado individual."
            }
          ],
          "events": [
            {
              "name": "brDidChangeValue",
              "type": {
                "text": "EventEmitter<number>"
              },
              "description": "Disparado após alteração do valor da alça inicial.",
              "deprecated": "Use o evento nativo `input`."
            },
            {
              "name": "brDidChangeValueEnd",
              "type": {
                "text": "EventEmitter<number>"
              },
              "description": "Disparado após alteração do valor da alça final (modo composto).",
              "deprecated": "Use o evento nativo `input` e leia `event.target.rangeValue`."
            },
            {
              "name": "brSliderValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção"
          ]
        },
        {
          "kind": "variable",
          "name": "stepMismatch"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Slider",
          "declaration": {
            "name": "Slider",
            "module": "components/slider.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-slider",
          "declaration": {
            "name": "Slider",
            "module": "components/slider.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/step.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-step` exibe o progresso visual de um fluxo dividido em etapas consecutivas.\n\nDeclare cada etapa com `br-step-item` no slot padrão. Controle a etapa ativa pela propriedade `current`. Suporta orientação horizontal e vertical via `direction`.\n\n```html\n<br-step current=\"2\">\n  <br-step-item step-number=\"1\" label=\"Identificação\"></br-step-item>\n  <br-step-item step-number=\"2\" label=\"Dados Pessoais\"></br-step-item>\n  <br-step-item step-number=\"3\" label=\"Confirmação\"></br-step-item>\n</br-step>\n```\n\n### Quando usar\n\n- Processos lineares com 3 ou mais etapas bem delimitadas.\n\n### Quando evitar\n\n- Formulários de múltiplas páginas onde o próprio componente gerencia as telas: use `br-wizard`.\n- Navegação plana entre abas da mesma tela: use `br-tab`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/step?tab=designer).",
          "name": "Step",
          "cssParts": [
            {
              "description": "Parte para o contêiner principal envolvendo todos os step-items, usada para estilizar layout geral via ::part().",
              "name": "container"
            }
          ],
          "slots": [
            {
              "description": "Slot para os itens do step (br-step-item), aceitando apenas esse componente.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrStepElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "activeStep",
              "type": {
                "text": "number"
              },
              "default": "0"
            },
            {
              "kind": "field",
              "name": "isTablist",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "`true` quando o componente está renderizado dentro de um `br-carousel`.\nDetectado automaticamente em `componentDidLoad` via `closest('br-carousel')`.\nQuando ativo, o container assume `role=\"tablist\"` e cada item assume\n`role=\"tab\"` com roving tabindex — padrão W3C APG para carrossel com indicadores tipo abas."
            },
            {
              "kind": "field",
              "name": "stepItems",
              "type": {
                "text": "HTMLBrStepItemElement[]"
              },
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "layout",
              "type": {
                "text": "BrOrientation"
              },
              "default": "'horizontal'",
              "description": "propriedade responsável por definir a orientação do componente Step. Valores inválidos usam `horizontal`.",
              "deprecated": "Use `orientation`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "BrOrientation | undefined"
              },
              "description": "Orientação do componente. Quando informada, tem precedência sobre `layout`; valores inválidos usam `horizontal`.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "initialStep",
              "type": {
                "text": "string"
              },
              "default": "'0'",
              "description": "\ndefine o passo que começará destacado. Valores inválidos usam 0.",
              "deprecated": "Use `initialIndex`."
            },
            {
              "kind": "field",
              "name": "initialIndex",
              "type": {
                "text": "number | undefined"
              },
              "description": "Índice inicial zero-based. Quando informado, tem precedência sobre `initialStep`; valores inválidos usam 0.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "labelPosition",
              "type": {
                "text": "StepLabelPosition | undefined"
              },
              "default": "'bottom'",
              "description": "\nPropriedade que define a posição onde o texto de destaque, label, ficará localizado no stepItem. Valores inválidos usam `bottom`.",
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "contentType",
              "type": {
                "text": "StepContentType"
              },
              "default": "'default'",
              "description": "\nPropriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem. Valores inválidos usam `default`.",
              "parsedType": {
                "text": "'default' | 'br-icon' | 'no-content' | 'slotted'"
              }
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "StepMode"
              },
              "default": "'step'",
              "description": "\nPropriedade que define o tipo de comportamento que o componente Step deverá seguir. Valores inválidos usam `step`.",
              "parsedType": {
                "text": "'controller' | 'step'"
              }
            },
            {
              "kind": "field",
              "name": "progressionType",
              "type": {
                "text": "BrProgressionType"
              },
              "default": "'nonlinear'",
              "description": "\nPropriedade que define o tipo de progressão de etapas que o step vai executar. Valores inválidos usam `nonlinear`.",
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "kind": "field",
              "name": "verticalContentPlacement",
              "type": {
                "text": "StepVerticalContentPlacement"
              },
              "default": "'between'",
              "description": "Define a posição do conteúdo de cada etapa no layout vertical.\n- `between`: conteúdo abaixo do indicador/rótulo, entre as etapas.\n- `side`: conteúdo em coluna lateral à linha de indicadores.\nValores inválidos usam `between`.",
              "parsedType": {
                "text": "'between' | 'side'"
              }
            },
            {
              "kind": "method",
              "name": "activeStepChanged",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Observa mudanças na etapa ativa e sincroniza os itens filhos."
            },
            {
              "kind": "method",
              "name": "initialStepChanged",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string | number"
                  }
                },
                {
                  "name": "oldValue",
                  "type": {
                    "text": "string | number"
                  }
                }
              ],
              "description": "Observa mudanças no passo inicial e atualiza a etapa ativa."
            },
            {
              "kind": "method",
              "name": "labelPositionChanged",
              "description": "Observa mudanças na posição do label e propaga aos itens."
            },
            {
              "kind": "method",
              "name": "contentTypeChanged",
              "description": "Observa mudanças no tipo de conteúdo e propaga aos itens."
            },
            {
              "kind": "method",
              "name": "modeChanged",
              "parameters": [
                {
                  "name": "_newValue",
                  "type": {
                    "text": "StepMode"
                  }
                }
              ],
              "description": "Observa mudanças no modo e propaga aos itens."
            },
            {
              "kind": "method",
              "name": "layoutChanged",
              "description": "Observa mudanças no layout e atualiza a linha do tempo dos itens."
            },
            {
              "kind": "method",
              "name": "progressionTypeChanged",
              "description": "Observa mudanças no tipo de progressão e atualiza itens desabilitados."
            },
            {
              "kind": "method",
              "name": "verticalContentPlacementChanged",
              "description": "Observa mudanças na posição do conteúdo vertical e propaga aos itens."
            },
            {
              "kind": "field",
              "name": "effectiveInitialIndex",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleClick",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "MouseEvent"
                  }
                }
              ],
              "description": "listener para ouvir o evento de click no componente step\nAtravés desse listener o componente define qual será o proximo passo do step que terá o estado ativo"
            },
            {
              "kind": "method",
              "name": "ProceedToNextStep",
              "description": "\nMétodo disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep",
              "deprecated": "Use `next`."
            },
            {
              "kind": "method",
              "name": "next",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Avança para o próximo passo."
            },
            {
              "kind": "method",
              "name": "BackToPreviousStep",
              "description": "\nMétodo disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep",
              "deprecated": "Use `previous`."
            },
            {
              "kind": "method",
              "name": "previous",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Retorna ao passo anterior."
            },
            {
              "kind": "method",
              "name": "StepValidation",
              "parameters": [
                {
                  "name": "validationStatus",
                  "type": {
                    "text": "StepValidationStatus"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.",
              "deprecated": "Use `setCurrentValidation`."
            },
            {
              "kind": "method",
              "name": "setCurrentValidation",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "validationStatus",
                  "type": {
                    "text": "StepValidationStatus"
                  }
                }
              ],
              "description": "Define o estado de validação do passo ativo."
            },
            {
              "kind": "method",
              "name": "GetActiveStep",
              "description": "\nMétodo disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step."
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "BrOrientation"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveLabelPosition",
              "type": {
                "text": "StepLabelPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveContentType",
              "type": {
                "text": "StepContentType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'default' | 'br-icon' | 'no-content' | 'slotted'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMode",
              "type": {
                "text": "StepMode"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'controller' | 'step'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveProgressionType",
              "type": {
                "text": "BrProgressionType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVerticalContentPlacement",
              "type": {
                "text": "StepVerticalContentPlacement"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'between' | 'side'"
              }
            },
            {
              "kind": "method",
              "name": "updateStepItemsActiveState",
              "privacy": "private",
              "parameters": [
                {
                  "name": "previousActiveStep",
                  "type": {
                    "text": "number"
                  }
                }
              ],
              "description": "Atualiza os atributos 'active' dos step-items de forma segura\nChamado via requestAnimationFrame para garantir que o DOM é atualizado após batched state changes"
            },
            {
              "kind": "method",
              "name": "getStepItemsElements",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getStepItems",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrStepItemElement[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "setStepItemsLabelPosition",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setStepItemsDefaultContent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setStepItemsContentType",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setStepItemsMode",
              "privacy": "private",
              "parameters": [
                {
                  "name": "mode",
                  "default": "this.effectiveMode",
                  "type": {
                    "text": "StepMode"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "setStepItemsVerticalContentPlacement",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "setActiveStep",
              "privacy": "private",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "isValidStepIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "configureStepItems",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "configureTablistMode",
              "privacy": "private",
              "description": "Configura os step-items para o comportamento de tablist (carrossel).\nSobrescreve contentType e mode dos itens para que assumam\n`role=\"tab\"` com semântica W3C APG para carrossel com indicadores tipo abas."
            },
            {
              "kind": "method",
              "name": "getStepItemPosition",
              "privacy": "private",
              "parameters": [
                {
                  "name": "stepItemsElements",
                  "type": {
                    "text": "HTMLBrStepItemElement[]"
                  }
                },
                {
                  "name": "index",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "configureTimeLine",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "configureLinearProgression",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "clearLinearProgression",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "ariaObjectContent",
              "type": {
                "text": "object"
              },
              "privacy": "private",
              "default": "{ step: 'Modo etapas ', controller: 'Modo controle ', default: 'passos com conteúdo numérico ', 'br-icon': 'passos com conteúdo que possuem icones ', slotted: 'passos com conteúdo customizados ', 'no-content': 'passos que apresentam conteúdo por meio de tooltip ', linear: 'progressão linear ', nonlinear: 'progressão não linear ', vertical: 'com layout vertical ', horizontal: 'com layout horizontal ', }"
            },
            {
              "kind": "method",
              "name": "getAreaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            },
            {
              "kind": "method",
              "name": "handleSlotChange",
              "privacy": "private"
            }
          ],
          "attributes": [
            {
              "name": "layout",
              "fieldName": "layout",
              "default": "'horizontal'",
              "description": "propriedade responsável por definir a orientação do componente Step. Valores inválidos usam `horizontal`.",
              "type": {
                "text": "BrOrientation"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "description": "Orientação do componente. Quando informada, tem precedência sobre `layout`; valores inválidos usam `horizontal`.",
              "type": {
                "text": "BrOrientation"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "initial-step",
              "fieldName": "initialStep",
              "default": "'0'",
              "description": "\ndefine o passo que começará destacado. Valores inválidos usam 0.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "initial-index",
              "fieldName": "initialIndex",
              "description": "Índice inicial zero-based. Quando informado, tem precedência sobre `initialStep`; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "label-position",
              "fieldName": "labelPosition",
              "default": "'bottom'",
              "description": "\nPropriedade que define a posição onde o texto de destaque, label, ficará localizado no stepItem. Valores inválidos usam `bottom`.",
              "type": {
                "text": "StepLabelPosition"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "name": "content-type",
              "fieldName": "contentType",
              "default": "'default'",
              "description": "\nPropriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem. Valores inválidos usam `default`.",
              "type": {
                "text": "StepContentType"
              },
              "parsedType": {
                "text": "'default' | 'br-icon' | 'no-content' | 'slotted'"
              }
            },
            {
              "name": "mode",
              "fieldName": "mode",
              "default": "'step'",
              "description": "\nPropriedade que define o tipo de comportamento que o componente Step deverá seguir. Valores inválidos usam `step`.",
              "type": {
                "text": "StepMode"
              },
              "parsedType": {
                "text": "'controller' | 'step'"
              }
            },
            {
              "name": "progression-type",
              "fieldName": "progressionType",
              "default": "'nonlinear'",
              "description": "\nPropriedade que define o tipo de progressão de etapas que o step vai executar. Valores inválidos usam `nonlinear`.",
              "type": {
                "text": "BrProgressionType"
              },
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "name": "vertical-content-placement",
              "fieldName": "verticalContentPlacement",
              "default": "'between'",
              "description": "Define a posição do conteúdo de cada etapa no layout vertical.\n- `between`: conteúdo abaixo do indicador/rótulo, entre as etapas.\n- `side`: conteúdo em coluna lateral à linha de indicadores.\nValores inválidos usam `between`.",
              "type": {
                "text": "StepVerticalContentPlacement"
              },
              "parsedType": {
                "text": "'between' | 'side'"
              }
            }
          ],
          "tagName": "br-step",
          "status": "stable",
          "csspart": {
            "name": "container",
            "description": "Parte para o contêiner principal envolvendo todos os step-items, usada para estilizar layout geral via ::part()."
          },
          "events": [
            {
              "name": "brStepChange",
              "type": {
                "text": "EventEmitter<StepChangeDetail>"
              },
              "description": "Emite um evento quando o step ativo muda.\nO evento carrega o índice do novo step ativo (0-based)."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Progresso"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Step",
          "declaration": {
            "name": "Step",
            "module": "components/step.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-step",
          "declaration": {
            "name": "Step",
            "module": "components/step.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/step-item/step-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Representa uma etapa individual dentro do `br-step`.\n\nDefina o número da etapa em `step-number` e o texto em `label`. Use `status` (`done`, `active`, `pending`) para indicar o estado da etapa.",
          "name": "StepItem",
          "cssParts": [
            {
              "description": "Parte para o contêiner do texto da etapa, usada para estilizar tipografia e cor via ::part().",
              "name": "label"
            }
          ],
          "slots": [
            {
              "description": "Slot para conteúdo customizado dentro do botão do item do step.",
              "name": "content-area"
            },
            {
              "description": "Slot para conteúdo da etapa exibido no layout vertical (texto, formulário, etc.).",
              "name": "step-content"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrStepItemElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "ariaLabelContent",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "content",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "contentType",
              "type": {
                "text": "StepItemContentType"
              },
              "default": "'default'",
              "parsedType": {
                "text": "'default' | 'br-icon' | 'no-content' | 'slotted'"
              }
            },
            {
              "kind": "field",
              "name": "itemRole",
              "type": {
                "text": "StepItemRole"
              },
              "privacy": "private",
              "default": "'option'",
              "description": "Role ARIA do botão interno do item.\n- `option`: padrão — filho de `listbox`, usado no modo step/controller.\n- `tab`: filho de `tablist`, ativa roving tabindex e `aria-controls`.\nDefinido externamente via `setItemRole()` pelo componente pai que conhece\no contexto semântico (ex.: br-step dentro de br-carousel).",
              "parsedType": {
                "text": "'option' | 'tab'"
              }
            },
            {
              "kind": "field",
              "name": "labelPosition",
              "type": {
                "text": "StepItemLabelPosition"
              },
              "default": "'bottom'",
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "mode",
              "type": {
                "text": "StepItemMode"
              },
              "default": "'step'",
              "parsedType": {
                "text": "'controller' | 'step'"
              }
            },
            {
              "kind": "field",
              "name": "showTimeLine",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "stepItemPositionStatus",
              "type": {
                "text": "StepItemPositionStatus"
              },
              "default": "'first'",
              "parsedType": {
                "text": "'first' | 'middle' | 'last'"
              }
            },
            {
              "kind": "field",
              "name": "stepLayout",
              "type": {
                "text": "StepItemLayout"
              },
              "default": "'horizontal'",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "verticalContentPlacement",
              "type": {
                "text": "StepItemVerticalContentPlacement"
              },
              "default": "'between'",
              "parsedType": {
                "text": "'between' | 'side'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Propriedade que define o conteúdo do texto auxiliar de realce do item de Step."
            },
            {
              "kind": "field",
              "name": "highlight",
              "type": {
                "text": "StepItemHighlight | undefined"
              },
              "description": "Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Propriedade que define se o item Step está com estado ativo."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Propriedade que define se o item Step está com estado desativado."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Rótulo acessível explicitamente definido para o botão interno do item.\nQuando preenchido, substitui o texto gerado automaticamente pelo componente\n(\"passo X ...\") em qualquer modo, seguindo o comportamento padrão do\natributo HTML `aria-label`."
            },
            {
              "kind": "field",
              "name": "controlsId",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "ID do elemento controlado por este item, atribuído como `aria-controls`\nno botão interno. Vincula semanticamente o controle ao painel ou região\nque ele gerencia — podendo ser usado em qualquer contexto que exija essa ligação"
            },
            {
              "kind": "field",
              "name": "brIconName",
              "type": {
                "text": "string | undefined"
              },
              "default": "''",
              "description": "Identificador legado do ícone exibido como conteúdo do step item quando `contentType` é `br-icon`.\nPrefira o slot `content-area` com um SVG ou elemento de ícone controlado pela aplicação.",
              "deprecated": "Prefira `contentType=\"slotted\"` com um SVG, asset ou elemento de ícone controlado pela aplicação.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "brIconAria",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon"
            },
            {
              "kind": "field",
              "name": "effectiveHighlight",
              "type": {
                "text": "StepItemHighlight | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "method",
              "name": "setStepItemPositionStatus",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemPositionStatus"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente"
            },
            {
              "kind": "method",
              "name": "handleShowTimeLine",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "boolean"
                  }
                },
                {
                  "name": "layout",
                  "type": {
                    "text": "StepItemLayout"
                  }
                }
              ],
              "description": "Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente."
            },
            {
              "kind": "method",
              "name": "setLabelPosition",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemLabelPosition"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado"
            },
            {
              "kind": "method",
              "name": "setContentType",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemContentType"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem"
            },
            {
              "kind": "method",
              "name": "setMode",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemMode"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo."
            },
            {
              "kind": "method",
              "name": "setItemRole",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemRole"
                  }
                }
              ],
              "description": "Define o role ARIA do botão interno.\nChamado pelo componente pai quando o contexto semântico exige um role\ndiferente do padrão `option` (ex.: `tab` em contexto de tablist)."
            },
            {
              "kind": "method",
              "name": "setContent",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "\nMétodo disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem"
            },
            {
              "kind": "method",
              "name": "getGeneratedAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getDefaultAriaContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "getSlottedAriaContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "setVerticalContentPlacement",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "StepItemVerticalContentPlacement"
                  }
                }
              ],
              "description": "Método que define a posição do conteúdo no layout vertical."
            },
            {
              "kind": "method",
              "name": "getAlertClass",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "highlightAriaLabel",
              "type": {
                "text": "Record<StepItemHighlight, string>"
              },
              "privacy": "private",
              "default": "{ success: 'passo completo', info: 'passo com item informativo', warning: 'passo com alerta', danger: 'passo com erro', }",
              "parsedType": {
                "text": "{ info: Record<StepItemHighlight, string>, warning: Record<StepItemHighlight, string>, danger: Record<StepItemHighlight, string>, success: Record<StepItemHighlight, string> }"
              }
            },
            {
              "kind": "field",
              "name": "iconNames",
              "type": {
                "text": "Record<StepItemHighlight, string>"
              },
              "privacy": "private",
              "default": "{ success: 'fa-solid:check', info: 'fa-solid:info-circle', warning: 'fa-solid:exclamation-triangle', danger: 'fa-solid:times', }",
              "parsedType": {
                "text": "{ info: Record<StepItemHighlight, string>, warning: Record<StepItemHighlight, string>, danger: Record<StepItemHighlight, string>, success: Record<StepItemHighlight, string> }"
              }
            },
            {
              "kind": "method",
              "name": "isInShadowRoot",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Retorna `true` quando este `br-step-item` está hospedado dentro de um shadow root\n(ex.: filho do `br-step` que está no shadow DOM do `br-carousel`).\n\nUsado para suprimir `aria-controls` no botão interno: referências de ID não cruzam shadow\nboundaries, então referenciar um `id` que existe em outra árvore DOM tornaria\no valor inválido para validators ARIA e tecnologias assistivas."
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "highlight",
              "fieldName": "highlight",
              "description": "Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".",
              "type": {
                "text": "StepItemHighlight"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "active",
              "fieldName": "active",
              "default": "false",
              "description": "Propriedade que define se o item Step está com estado ativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Propriedade que define se o item Step está com estado desativado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "''",
              "description": "Rótulo acessível explicitamente definido para o botão interno do item.\nQuando preenchido, substitui o texto gerado automaticamente pelo componente\n(\"passo X ...\") em qualquer modo, seguindo o comportamento padrão do\natributo HTML `aria-label`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "controls-id",
              "fieldName": "controlsId",
              "default": "''",
              "description": "ID do elemento controlado por este item, atribuído como `aria-controls`\nno botão interno. Vincula semanticamente o controle ao painel ou região\nque ele gerencia — podendo ser usado em qualquer contexto que exija essa ligação",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "br-icon-name",
              "fieldName": "brIconName",
              "default": "''",
              "description": "Identificador legado do ícone exibido como conteúdo do step item quando `contentType` é `br-icon`.\nPrefira o slot `content-area` com um SVG ou elemento de ícone controlado pela aplicação.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "br-icon-aria",
              "fieldName": "brIconAria",
              "default": "''",
              "description": "Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-step-item",
          "csspart": {
            "name": "label",
            "description": "Parte para o contêiner do texto da etapa, usada para estilizar tipografia e cor via ::part()."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "StepItem",
          "declaration": {
            "name": "StepItem",
            "module": "components/step-item/step-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-step-item",
          "declaration": {
            "name": "StepItem",
            "module": "components/step-item/step-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/switch.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-switch` alterna instantaneamente entre os estados ligado e desligado.\n\nDefina o estado em `checked`. Opcionalmente configure os rótulos de estado em `label-on` e `label-off`.\n\n```html\n<br-switch label=\"Receber notificações por e-mail\" checked></br-switch>\n<br-switch label=\"Modo escuro\" label-on=\"Ligado\" label-off=\"Desligado\"></br-switch>\n```\n\nEm formulários HTML, o componente integra-se via `ElementInternals`, participando do submit nativo.\n\n### Quando usar\n\n- Ativar ou desativar uma funcionalidade com efeito imediato na tela ou configuração.\n\n### Quando evitar\n\n- Confirmação de termos em formulários (ex.: \"Li e concordo\"): use `br-checkbox`.\n- Escolha entre alternativas mutuamente exclusivas: use `br-radio`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/switch?tab=designer).",
          "name": "Switch",
          "cssParts": [
            {
              "description": "Contêiner visual do switch.",
              "name": "container"
            },
            {
              "description": "Elemento input nativo com role switch.",
              "name": "input"
            },
            {
              "description": "Rótulo do switch.",
              "name": "label"
            },
            {
              "description": "Elemento com textos de estado ligado/desligado.",
              "name": "data"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Slot para o rótulo do switch, com prioridade sobre a propriedade label.",
              "name": "default"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrSwitchElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "_slotDefault",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "manualValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Desativa o switch, tornando-o não interativo."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o switch é obrigatório e deve ser ativado antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "SwitchValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do switch.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst toggle = document.querySelector('br-switch');\ntoggle.validator = (checked) => checked ? null : 'Ative esta opção para continuar';\n```"
            },
            {
              "kind": "field",
              "name": "checked",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define o estado de seleção do checkbox.\nSe definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único; gerado automaticamente quando omitido."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto descritivo.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado."
            },
            {
              "kind": "field",
              "name": "labelPosition",
              "type": {
                "text": "'right' | 'left' | 'top'"
              },
              "readonly": true,
              "default": "'left'",
              "description": "Posição do rótulo em relação ao switch. Valores inválidos usam `left`.",
              "parsedType": {
                "text": "'left' | 'right' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "labelOn",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto exibido quando o switch está ativado."
            },
            {
              "kind": "field",
              "name": "labelOff",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto exibido quando o switch está desativado."
            },
            {
              "kind": "field",
              "name": "hasIcon",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Adiciona um ícone ao switch para indicar a mudança de estado.",
              "deprecated": "Use `showIcon`."
            },
            {
              "kind": "field",
              "name": "showIcon",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Exibe o ícone de estado. Quando informada, tem precedência sobre `hasIcon`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o switch está selecionado.\n**Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "'large' | 'medium' | 'small'"
              },
              "readonly": true,
              "default": "'medium'",
              "description": "Ajusta a área de interação: `small` é compacto, `medium` é o padrão e `large` é mais espaçado.\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "method",
              "name": "checkedChanged"
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do switch for válido, caso contrário `false`.\nSe o switch for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do componente for válido, caso contrário `false`.\nSe for inválido, exibe a mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define uma mensagem de validação customizada para o switch.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do switch e retorna se o valor atual é válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "toggleChecked",
              "description": "Inverte o valor da prop `checked`",
              "deprecated": "Atualize a propriedade `checked` diretamente."
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private",
              "description": "Referência nativa do input checkbox para acessar a API de validação"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "initialChecked",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_hasSlotContentDefault",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAccessibilityLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Determina o texto a ser usado para acessibilidade quando não há label visível"
            },
            {
              "kind": "field",
              "name": "handleCheckedInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleCheckedChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleClick",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "hasVisibleText",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "description": "Verifica se o componente tem texto visível (via slot ou label)"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveLabelPosition",
              "type": {
                "text": "'right' | 'left' | 'top'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'top'"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desativa o switch, tornando-o não interativo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o switch é obrigatório e deve ser ativado antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao estado booleano do switch.\nRetorne uma mensagem para invalidar ou `null` para aceitar o valor.",
              "type": {
                "text": "SwitchValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "checked",
              "fieldName": "checked",
              "default": "false",
              "description": "Define o estado de seleção do checkbox.\nSe definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único; gerado automaticamente quando omitido.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto descritivo.\nCaso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label-position",
              "fieldName": "labelPosition",
              "default": "'left'",
              "description": "Posição do rótulo em relação ao switch. Valores inválidos usam `left`.",
              "type": {
                "text": "'right' | 'left' | 'top'"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'top'"
              }
            },
            {
              "name": "label-on",
              "fieldName": "labelOn",
              "description": "Texto exibido quando o switch está ativado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label-off",
              "fieldName": "labelOff",
              "description": "Texto exibido quando o switch está desativado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "has-icon",
              "fieldName": "hasIcon",
              "default": "false",
              "description": "Adiciona um ícone ao switch para indicar a mudança de estado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "show-icon",
              "fieldName": "showIcon",
              "description": "Exibe o ícone de estado. Quando informada, tem precedência sobre `hasIcon`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\nO valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "fieldName": "value",
              "description": "Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\nEsse valor é enviado com o formulário quando o switch está selecionado.\n**Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Ajusta a área de interação: `small` é compacto, `medium` é o padrão e `large` é mais espaçado.\nValores inválidos usam `medium`.",
              "type": {
                "text": "'large' | 'medium' | 'small'"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            }
          ],
          "tagName": "br-switch",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual do switch."
            },
            {
              "name": "input",
              "description": "Elemento input nativo com role switch."
            },
            {
              "name": "label",
              "description": "Rótulo do switch."
            },
            {
              "name": "data",
              "description": "Elemento com textos de estado ligado/desligado."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "events": [
            {
              "name": "checkedChange",
              "type": {
                "text": "EventEmitter<boolean>"
              },
              "description": "Disparado depois que o valor do `checked` foi alterado.",
              "deprecated": "Use `input`/`change` e leia `event.target.checked`."
            },
            {
              "name": "brSwitchValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Seleção",
            "Ações"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Switch",
          "declaration": {
            "name": "Switch",
            "module": "components/switch.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-switch",
          "declaration": {
            "name": "Switch",
            "module": "components/switch.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/tab.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-tab` organiza diferentes visões ou painéis de conteúdo na mesma página através de abas navegáveis.\n\nDeclare os itens usando `br-tab-item` no slot padrão. O componente gera automaticamente os botões da barra de navegação e controla a exibição do painel correspondente.\n\n```html\n<br-tab>\n  <br-tab-item label=\"Dados Cadastrais\">\n    <p>Conteúdo da primeira aba.</p>\n  </br-tab-item>\n  <br-tab-item label=\"Documentos\">\n    <p>Conteúdo da segunda aba.</p>\n  </br-tab-item>\n</br-tab>\n```\n\n### Quando usar\n\n- Alternar entre conjuntos equivalentes de informação sem sair da página e sem ordem fixa de leitura.\n\n### Quando evitar\n\n- Processos com etapas sequenciais que dependem de preenchimento prévio: use `br-wizard` ou `br-step`.\n- Links para páginas ou rotas distintas: use `br-link` ou `br-header`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/tab?tab=designer).",
          "name": "Tab",
          "cssParts": [
            {
              "description": "Contêiner principal que envolve toda a estrutura do componente (navegação e conteúdo). Expõe o elemento para customizações de fundo, bordas e espaçamentos globais.",
              "name": "container"
            },
            {
              "description": "Área de navegação (`tablist`) onde os botões das abas estão localizados. Permite customizar o alinhamento, espaçamento e plano de fundo da barra de abas.",
              "name": "nav"
            },
            {
              "description": "Botão individual de cada aba.",
              "name": "button"
            },
            {
              "description": "Indicador visual da aba ativa.",
              "name": "indicator"
            },
            {
              "description": "Área de conteúdo das abas.",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Slot para inserir os itens das abas (br-tab-item)",
              "name": "default"
            },
            {
              "description": "Ícone da aba cujo `br-tab-item` tem o `id` informado (ex.: `<i slot=\"icon-avisos\" class=\"fas fa-bell\" aria-hidden=\"true\"></i>`). Forma preferida para ícones por classe CSS, como Font Awesome: o elemento fica em light DOM e recebe os estilos globais da página. Tem precedência sobre a prop `icon` do item.",
              "name": "icon-{id}"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTabElement"
              },
              "description": "Referência ao elemento host do componente."
            },
            {
              "kind": "field",
              "name": "activeTabId",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "ID do tab atualmente ativo"
            },
            {
              "kind": "field",
              "name": "tabItems",
              "type": {
                "text": "HTMLBrTabItemElement[]"
              },
              "privacy": "private",
              "default": "[]",
              "description": "Lista dos tab items registrados"
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "TabDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "TabColorMode | undefined"
              },
              "description": "Define se o Tab usará um esquema de cores escuro. Valores inválidos são ignorados.",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "'Abas de Navegação'",
              "description": "Label de acessibilidade para a navegação das tabs"
            },
            {
              "kind": "field",
              "name": "alignItemsTab",
              "type": {
                "text": "TabAlignItems"
              },
              "default": "'start'",
              "description": "Define o alinhamento horizontal dos itens da tab na barra de navegação.",
              "deprecated": "Use `alignment`.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "alignment",
              "type": {
                "text": "TabAlignItems | undefined"
              },
              "description": "Alinhamento horizontal. Quando informado, tem precedência sobre `alignItemsTab`; valores inválidos usam `start`.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "scrollDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita o scroll automático da área de conteúdo.\nPor padrão, o scroll vertical fica apenas na região de conteúdo.",
              "deprecated": "Use `scrollable`."
            },
            {
              "kind": "field",
              "name": "scrollable",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Controla o scroll interno. Quando informado, tem precedência sobre `scrollDisabled`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "height",
              "type": {
                "text": "string | undefined"
              },
              "description": "Define a altura máxima da área de conteúdo, ativando o scroll interno quando o conteúdo ultrapassa essa altura.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "method",
              "name": "activeTabChanged",
              "parameters": [
                {
                  "name": "newId",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Observa mudanças no tab ativo para atualizar os estados"
            },
            {
              "kind": "method",
              "name": "colorModeChanged",
              "parameters": [
                {
                  "name": "_newValue",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Observa mudanças no color mode para propagar aos filhos"
            },
            {
              "kind": "method",
              "name": "handleTabItemPropsChange",
              "description": "Escuta evento de mudança de propriedades dos tab-items filhos.\nEste listener garante que o componente pai seja re-renderizado quando\npropriedades mudam dinamicamente, sincronizando o painel ativo."
            },
            {
              "kind": "method",
              "name": "setActiveTab",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "tabId",
                  "type": {
                    "text": "string"
                  },
                  "description": "Identificador da aba (`tab-item-id`)."
                }
              ],
              "description": "Ativa programaticamente uma aba a partir do seu identificador."
            },
            {
              "kind": "method",
              "name": "getActiveTab",
              "return": {
                "type": {
                  "text": "Promise<string | undefined>"
                }
              },
              "description": "Retorna o identificador da aba ativa atual."
            },
            {
              "kind": "field",
              "name": "FOCUSABLE_SELECTOR",
              "privacy": "private",
              "static": true,
              "default": "FOCUSABLE_SELECTORS"
            },
            {
              "kind": "field",
              "name": "activeTabInitialized",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Flag para controlar se o activeTabId já foi inicializado"
            },
            {
              "kind": "field",
              "name": "syncingTabStates",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "lastTabItemsSignature",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "slotElement",
              "type": {
                "text": "HTMLSlotElement | undefined"
              },
              "privacy": "private",
              "description": "Referência ao elemento de slot para monitorar mudanças nos tab items filhos."
            },
            {
              "kind": "field",
              "name": "tabSyncFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Observador de mutação para detectar mudanças nos tab items filhos",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "registerTabItems",
              "privacy": "private",
              "description": "Registra os tab items filhos e garante que cada um tenha um ID único.\nTambém propaga o color mode para os tab items.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "updateTabStates",
              "privacy": "private",
              "description": "Atualiza o estado ativo de todos os tab items\nComunicação direta similar ao Vue"
            },
            {
              "kind": "method",
              "name": "handleTabClick",
              "privacy": "private",
              "parameters": [
                {
                  "name": "tabId",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Manipula o clique em um botão de tab"
            },
            {
              "kind": "field",
              "name": "handleTabButtonClick",
              "privacy": "private",
              "description": "Manipula a navegação por teclado nos botões de tab para melhorar a acessibilidade"
            },
            {
              "kind": "field",
              "name": "handleTabButtonKeyDown",
              "privacy": "private",
              "description": "Manipula o evento de pressionamento de tecla nos botões de tab para melhorar a acessibilidade",
              "parameters": [
                {
                  "description": "Evento de teclado",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleKeyNavigation",
              "privacy": "private",
              "parameters": [
                {
                  "name": "currentIndex",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Manipula navegação por teclado (acessibilidade)"
            },
            {
              "kind": "method",
              "name": "focusActivePanelContent",
              "privacy": "private",
              "parameters": [
                {
                  "name": "currentIndex",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapeamento de classes CSS do componente"
            },
            {
              "kind": "method",
              "name": "getTabItemCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "parameters": [
                {
                  "name": "isActive",
                  "type": {
                    "text": "boolean"
                  }
                }
              ],
              "description": "Retorna o mapeamento de classes CSS para cada item de navegação"
            },
            {
              "kind": "method",
              "name": "hasSlottedIcon",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "tabItemId",
                  "type": {
                    "text": "string"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderTabIcon",
              "privacy": "private",
              "parameters": [
                {
                  "name": "item",
                  "type": {
                    "text": "HTMLBrTabItemElement"
                  }
                }
              ],
              "description": "Ícone da aba: o slot `icon-{id}` tem precedência; a prop `icon` do item é o fallback e\naceita identificadores Iconify. Classes CSS na prop não funcionam no Shadow DOM e são ignoradas."
            },
            {
              "kind": "field",
              "name": "handleIconSlotChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getAlignItemsStyle",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna o alinhamento em formato flexbox"
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "TabColorMode | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveAlignment",
              "type": {
                "text": "TabAlignItems"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "method",
              "name": "isValidHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string"
                  },
                  "description": "Valor a ser verificado"
                }
              ],
              "description": "Verifica se o valor fornecido é uma altura válida para o componente, aceitando unidades CSS modernas e a palavra-chave 'auto'."
            },
            {
              "kind": "method",
              "name": "getResolvedHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | undefined"
                }
              },
              "description": "Retorna a altura resolvida do componente, considerando valores válidos."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "active-tab-id",
              "fieldName": "activeTabId",
              "default": "''",
              "description": "ID do tab atualmente ativo"
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "TabDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Define se o Tab usará um esquema de cores escuro. Valores inválidos são ignorados.",
              "type": {
                "text": "TabColorMode"
              },
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "default": "'Abas de Navegação'",
              "description": "Label de acessibilidade para a navegação das tabs"
            },
            {
              "name": "align-items-tab",
              "fieldName": "alignItemsTab",
              "default": "'start'",
              "description": "Define o alinhamento horizontal dos itens da tab na barra de navegação.",
              "type": {
                "text": "TabAlignItems"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "alignment",
              "fieldName": "alignment",
              "description": "Alinhamento horizontal. Quando informado, tem precedência sobre `alignItemsTab`; valores inválidos usam `start`.",
              "type": {
                "text": "TabAlignItems"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "scroll-disabled",
              "fieldName": "scrollDisabled",
              "default": "false",
              "description": "Desabilita o scroll automático da área de conteúdo.\nPor padrão, o scroll vertical fica apenas na região de conteúdo."
            },
            {
              "name": "scrollable",
              "fieldName": "scrollable",
              "description": "Controla o scroll interno. Quando informado, tem precedência sobre `scrollDisabled`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "height",
              "fieldName": "height",
              "description": "Define a altura máxima da área de conteúdo, ativando o scroll interno quando o conteúdo ultrapassa essa altura.",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-tab",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner principal que envolve toda a estrutura do componente (navegação e conteúdo). Expõe o elemento para customizações de fundo, bordas e espaçamentos globais."
            },
            {
              "name": "nav",
              "description": "Área de navegação (`tablist`) onde os botões das abas estão localizados. Permite customizar o alinhamento, espaçamento e plano de fundo da barra de abas."
            },
            {
              "name": "button",
              "description": "Botão individual de cada aba."
            },
            {
              "name": "indicator",
              "description": "Indicador visual da aba ativa."
            },
            {
              "name": "content",
              "description": "Área de conteúdo das abas."
            }
          ],
          "events": [
            {
              "name": "brTabChange",
              "type": {
                "text": "EventEmitter<{ tabId: string; tabIndex: number }>"
              },
              "description": "Evento disparado quando um tab é ativado."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Seleção",
            "Conteúdo"
          ],
          "cssProperties": [
            {
              "name": "--br-tab-height",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Tab",
          "declaration": {
            "name": "Tab",
            "module": "components/tab.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-tab",
          "declaration": {
            "name": "Tab",
            "module": "components/tab.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/tab-item/tab-item.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Define uma aba e seu respectivo painel de conteúdo dentro do `br-tab`.\n\nDefina o título da aba em `label` ou no slot `label`, e insira o conteúdo do painel no slot padrão. Use `active` para iniciar a aba selecionada e `disabled` para desabilitá-la.",
          "name": "TabItem",
          "slots": [
            {
              "description": "Slot para o conteúdo do item da aba.",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTabItemElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasFocusableContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o painel atual possui conteúdo focável interno."
            },
            {
              "kind": "field",
              "name": "tabItemId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do item da tab.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "deprecated": "Use o atributo nativo `id`."
            },
            {
              "kind": "field",
              "name": "tabItemTitle",
              "type": {
                "text": "string"
              },
              "description": "Define o título do item de tab que aparece no botão de navegação",
              "deprecated": "Use `label`."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto do item. Quando informado, tem precedência sobre `tabItemTitle`.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "icon",
              "type": {
                "text": "string"
              },
              "description": "Ícone da aba como identificador Iconify (ex.: `fa6-solid:bell`), renderizado em SVG pelo `br-icon`.\nPara ícones por classe CSS (ex.: Font Awesome), use o slot `icon-{id}` do `br-tab`, a forma\npreferida: `<i slot=\"icon-avisos\" class=\"fas fa-bell\" aria-hidden=\"true\"></i>`.\nO slot tem precedência sobre esta prop.\nUso descontinuado: classes CSS nesta prop (ex.: `fas fa-bell`) não são exibidas no Shadow DOM,\ngeram aviso e devem migrar para o slot `icon-{id}`. Identificadores Iconify continuam suportados."
            },
            {
              "kind": "field",
              "name": "onlyIcon",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se exibe apenas o ícone, sem texto",
              "deprecated": "Use `iconOnly`."
            },
            {
              "kind": "field",
              "name": "iconOnly",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Exibe apenas o ícone. Quando informado, tem precedência sobre `onlyIcon`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "isActive",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Define se o item de tab está ativo/visível",
              "deprecated": "Use `active`."
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "counter",
              "type": {
                "text": "string"
              },
              "description": "Define contador do item de tab (exibido abaixo do botão)"
            },
            {
              "kind": "field",
              "name": "colorMode",
              "type": {
                "text": "'dark'"
              },
              "description": "Define se o Tab usará um esquema de cores escuro",
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveColorMode",
              "type": {
                "text": "'dark' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dark'"
              }
            },
            {
              "kind": "method",
              "name": "tabItemTitleChanged",
              "description": "Observa mudanças no título e notifica o pai"
            },
            {
              "kind": "method",
              "name": "labelChanged"
            },
            {
              "kind": "method",
              "name": "iconChanged",
              "description": "Observa mudanças no ícone e notifica o pai"
            },
            {
              "kind": "method",
              "name": "counterChanged",
              "description": "Observa mudanças no contador e notifica o pai"
            },
            {
              "kind": "method",
              "name": "onlyIconChanged",
              "description": "Observa mudanças em onlyIcon e notifica o pai"
            },
            {
              "kind": "method",
              "name": "iconOnlyChanged"
            },
            {
              "kind": "method",
              "name": "isActiveChanged",
              "description": "Observa mudanças no estado ativo (alterações via JS/DOM direto) e notifica o pai"
            },
            {
              "kind": "method",
              "name": "activeChanged",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "FOCUSABLE_SELECTOR",
              "privacy": "private",
              "static": true,
              "default": "FOCUSABLE_SELECTORS",
              "description": "Seletores de elementos focáveis no conteúdo do painel."
            },
            {
              "kind": "field",
              "name": "mutationObserver",
              "type": {
                "text": "MutationObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "focusableStateFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "hasInitializedFocusableContent",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "syncFocusableObserver",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "applyFocusableContentState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "updateFocusableContentState",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "tab-item-id",
              "fieldName": "tabItemId",
              "description": "Identificador único do item da tab.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "tab-item-title",
              "fieldName": "tabItemTitle",
              "description": "Define o título do item de tab que aparece no botão de navegação",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto do item. Quando informado, tem precedência sobre `tabItemTitle`.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "icon",
              "fieldName": "icon",
              "description": "Ícone da aba como identificador Iconify (ex.: `fa6-solid:bell`), renderizado em SVG pelo `br-icon`.\nPara ícones por classe CSS (ex.: Font Awesome), use o slot `icon-{id}` do `br-tab`, a forma\npreferida: `<i slot=\"icon-avisos\" class=\"fas fa-bell\" aria-hidden=\"true\"></i>`.\nO slot tem precedência sobre esta prop.\nUso descontinuado: classes CSS nesta prop (ex.: `fas fa-bell`) não são exibidas no Shadow DOM,\ngeram aviso e devem migrar para o slot `icon-{id}`. Identificadores Iconify continuam suportados.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "only-icon",
              "fieldName": "onlyIcon",
              "default": "false",
              "description": "Define se exibe apenas o ícone, sem texto"
            },
            {
              "name": "icon-only",
              "fieldName": "iconOnly",
              "description": "Exibe apenas o ícone. Quando informado, tem precedência sobre `onlyIcon`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "is-active",
              "fieldName": "isActive",
              "default": "false",
              "description": "Define se o item de tab está ativo/visível"
            },
            {
              "name": "active",
              "fieldName": "active",
              "description": "Estado ativo atual. Quando informado, tem precedência sobre `isActive`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "counter",
              "fieldName": "counter",
              "description": "Define contador do item de tab (exibido abaixo do botão)",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "color-mode",
              "fieldName": "colorMode",
              "description": "Define se o Tab usará um esquema de cores escuro",
              "type": {
                "text": "'dark'"
              },
              "parsedType": {
                "text": "'dark'"
              }
            }
          ],
          "tagName": "br-tab-item",
          "events": [
            {
              "name": "brTabItemPropsChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento disparado quando as propriedades do tab-item mudam.\nO componente pai (br-tab) escuta este evento para atualizar a navegação."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TabItem",
          "declaration": {
            "name": "TabItem",
            "module": "components/tab-item/tab-item.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-tab-item",
          "declaration": {
            "name": "TabItem",
            "module": "components/tab-item/tab-item.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-table` estrutura e exibe conjuntos de dados organizados em linhas e colunas.\n\nEstruture a tabela usando os subcomponentes `br-table-header`, `br-table-body`, `br-table-row` e `br-table-cell`. Para exibir um indicador de carregamento durante atualizações assíncronas, use a propriedade `loading`.\n\n```html\n<br-table>\n  <br-table-header slot=\"header\">\n    <br-table-row>\n      <br-table-header-cell>Nome</br-table-header-cell>\n      <br-table-header-cell>Cargo</br-table-header-cell>\n    </br-table-row>\n  </br-table-header>\n  <br-table-body slot=\"body\">\n    <br-table-row>\n      <br-table-cell>Maria Silva</br-table-cell>\n      <br-table-cell>Analista</br-table-cell>\n    </br-table-row>\n  </br-table-body>\n</br-table>\n```\n\n### Quando usar\n\n- Dados bidimensionais com cabeçalhos de coluna e necessidades de ordenação ou comparação.\n\n### Quando evitar\n\n- Listas simples de itens lineares: use `br-list`.\n- Agrupamento de informações de um único registro: use `br-card`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/table?tab=designer).",
          "name": "Table",
          "cssParts": [
            {
              "description": "Wrapper principal da tabela.",
              "name": "container"
            },
            {
              "description": "Área de conteúdo que contém header e body.",
              "name": "content"
            },
            {
              "description": "Área do indicador de carregamento.",
              "name": "loading"
            }
          ],
          "slots": [
            {
              "description": "Indicador exibido enquanto as linhas são atualizadas.",
              "name": "loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "columnWidth",
              "type": {
                "text": "ColumnWidth | undefined"
              },
              "description": "Largura global aplicada a todas as colunas.",
              "default": "fill",
              "parsedType": {
                "text": "'fill' | ColumnWidth | ColumnWidth | 'content'"
              },
              "example": "```html\n<br-table column-width=\"160px\"></br-table>\n```"
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "TableDensity | undefined"
              },
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`. Quando omitida, a densidade média é aplicada ao token.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "dividerStyle",
              "type": {
                "text": "TableDividerStyle | undefined"
              },
              "description": "Define o estilo visual dos divisores.",
              "default": "solid",
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "kind": "field",
              "name": "hasColumnDivider",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Ativa divisores verticais entre colunas.",
              "deprecated": "Use `columnDivider`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "columnDivider",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Ativa divisores verticais. Quando informada, tem precedência sobre `hasColumnDivider`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "hasRowDivider",
              "type": {
                "text": "boolean | undefined"
              },
              "default": "false",
              "description": "Ativa divisores horizontais entre linhas.",
              "deprecated": "Use `rowDivider`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "rowDivider",
              "type": {
                "text": "boolean | undefined"
              },
              "description": "Ativa divisores horizontais. Quando informada, tem precedência sobre `hasRowDivider`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "horizontalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento horizontal do conteúdo das células.",
              "default": "start",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "verticalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento vertical do conteúdo das células.",
              "default": "start",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "overflow",
              "type": {
                "text": "TableOverflow | undefined"
              },
              "description": "Define o comportamento de overflow para as células.",
              "default": "wrap",
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipState",
              "type": {
                "text": "TableTooltipState | undefined"
              },
              "description": "Define o estado semântico do tooltip nas células da tabela.",
              "default": "info",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipMode",
              "type": {
                "text": "TableTooltipMode | undefined"
              },
              "description": "Define o modo de resolução do tooltip nas células da tabela.",
              "default": "disabled (valor efetivo)",
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveDividerStyle",
              "type": {
                "text": "TableDividerStyle"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveHorizontalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVerticalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveOverflow",
              "type": {
                "text": "TableOverflow"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTooltipState",
              "type": {
                "text": "TableTooltipState"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveTooltipMode",
              "type": {
                "text": "TableTooltipMode | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "kind": "field",
              "name": "loading",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica que as linhas estão sendo atualizadas pelo consumidor.\nO componente mantém o conteúdo anterior, aplica `aria-busy=\"true\"` e\nexibe o slot `loading` sobre os dados; transporte, erro e substituição das\nlinhas ficam sob responsabilidade da aplicação.\nA prop pode ser alterada diretamente ou pelos métodos `startLoading()` e\n`stopLoading()`."
            },
            {
              "kind": "field",
              "name": "headers",
              "type": {
                "text": "HTMLBrTableHeaderCellElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "rows",
              "type": {
                "text": "HTMLBrTableRowElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "cells",
              "type": {
                "text": "HTMLElement[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "rowCells",
              "privacy": "private",
              "default": "new Map<HTMLElement, HTMLElement[]>()"
            },
            {
              "kind": "field",
              "name": "columnIndexes",
              "privacy": "private",
              "default": "new Map<HTMLElement, number>()"
            },
            {
              "kind": "field",
              "name": "structureReady",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "structureRefreshFrame",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "handleColumnWidthEvent",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleAlignmentEvent",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleOverflowEvent",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleTableColumnWidthChange",
              "privacy": "protected",
              "description": "Reaplica a largura das colunas quando alterada."
            },
            {
              "kind": "method",
              "name": "handleDensityChange",
              "privacy": "protected",
              "description": "Reaplica o token de densidade quando alterado."
            },
            {
              "kind": "method",
              "name": "handleDividerChange",
              "privacy": "protected",
              "description": "Atualiza os tokens de divisor quando qualquer propriedade relacionada é alterada."
            },
            {
              "kind": "method",
              "name": "handleAlignmentChange",
              "privacy": "protected",
              "description": "Atualiza os tokens de alinhamento quando alterados."
            },
            {
              "kind": "method",
              "name": "handleOverflowChange",
              "privacy": "protected",
              "description": "Atualiza os tokens de overflow quando a propriedade é alterada."
            },
            {
              "kind": "method",
              "name": "handleTooltipPropsChange",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "validateTooltipProps",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "startLoading",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Inicia o estado de carregamento da tabela."
            },
            {
              "kind": "method",
              "name": "stopLoading",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Interrompe o estado de carregamento da tabela."
            },
            {
              "kind": "field",
              "name": "generatedHeaderPrefix",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "refreshStructure",
              "privacy": "private",
              "description": "Marca a última linha e a última coluna para permitir estilização condicional."
            },
            {
              "kind": "method",
              "name": "scheduleStructureRefresh",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "updateColumnWidths",
              "privacy": "private",
              "description": "Atualiza a largura das colunas com base nos cabeçalhos.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "buildGridTemplate",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "headers",
                  "type": {
                    "text": "HTMLBrTableHeaderCellElement[]"
                  },
                  "description": "Os elementos de cabeçalho da tabela."
                }
              ],
              "description": "Constrói o template de grid para a tabela com base nos cabeçalhos."
            },
            {
              "kind": "method",
              "name": "resolveTableColumnWidth",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Resolve a largura de uma coluna específica com base no cabeçalho e na largura global da tabela."
            },
            {
              "kind": "method",
              "name": "resolveColumnWidth",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "header",
                  "type": {
                    "text": "HTMLBrTableHeaderCellElement"
                  },
                  "description": "O elemento de cabeçalho da coluna."
                },
                {
                  "name": "fallback",
                  "type": {
                    "text": "string"
                  },
                  "description": "A largura de fallback a ser usada caso o cabeçalho não defina uma largura."
                }
              ],
              "description": "Resolve a largura de uma coluna específica com base no cabeçalho e na largura global da tabela."
            },
            {
              "kind": "method",
              "name": "resolveWidthToken",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "raw",
                  "type": {
                    "text": "string | undefined | null"
                  },
                  "description": "O template de grid bruto a ser aplicado."
                },
                {
                  "name": "fallback",
                  "type": {
                    "text": "string"
                  },
                  "description": "O template de grid de fallback a ser usado caso o valor bruto seja inválido."
                },
                {
                  "name": "host",
                  "type": {
                    "text": "Element"
                  }
                }
              ],
              "description": "Aplica o template de grid à tabela definindo a propriedade CSS customizada correspondente."
            },
            {
              "kind": "method",
              "name": "applyGridTemplate",
              "privacy": "private",
              "parameters": [
                {
                  "name": "template",
                  "type": {
                    "text": "string"
                  },
                  "description": "O template de grid a ser aplicado."
                }
              ],
              "description": "Aplica o template de grid à tabela definindo a propriedade CSS customizada correspondente."
            },
            {
              "kind": "method",
              "name": "updateAllCellAlignments",
              "privacy": "private",
              "description": "Atualiza o alinhamento de todas as células da tabela com base nos tokens de alinhamento."
            },
            {
              "kind": "method",
              "name": "updateAlignmentForCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula a ser atualizada."
                }
              ],
              "description": "Atualiza o alinhamento de uma célula específica com base nos tokens de alinhamento."
            },
            {
              "kind": "method",
              "name": "resolveHorizontalAlignmentForCell",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula a ser avaliada."
                }
              ],
              "description": "Resolve o alinhamento horizontal de uma célula específica com base nos tokens de alinhamento."
            },
            {
              "kind": "method",
              "name": "resolveVerticalAlignmentForCell",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula a ser avaliada."
                }
              ],
              "description": "Resolve o alinhamento vertical de uma célula específica com base nos tokens de alinhamento."
            },
            {
              "kind": "method",
              "name": "resolveAlignmentToken",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "optional": true,
                  "type": {
                    "text": "string | null"
                  },
                  "description": "O valor bruto do token de alinhamento a ser resolvido."
                }
              ],
              "description": "Resolve um valor de token de alinhamento com base no valor bruto e no mapeamento semântico definido."
            },
            {
              "kind": "method",
              "name": "getColumnAlignment",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual o alinhamento da coluna deve ser obtido."
                },
                {
                  "name": "attribute",
                  "type": {
                    "text": "'horizontal-alignment' | 'vertical-alignment'"
                  },
                  "description": "O atributo de alinhamento a ser obtido ('horizontal-alignment' ou 'vertical-alignment')."
                }
              ],
              "description": "Retorna o valor do atributo de alinhamento de uma coluna específica."
            },
            {
              "kind": "method",
              "name": "getColumnIndex",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "number"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual o índice da coluna deve ser obtido."
                }
              ],
              "description": "Obtém o índice da coluna para uma célula específica, permitindo a associação entre células e seus respectivos cabeçalhos para herança de propriedades como alinhamento e largura."
            },
            {
              "kind": "method",
              "name": "getHeaderCells",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLBrTableHeaderCellElement[]"
                }
              },
              "description": "Constrói o template de grid para a tabela com base nos cabeçalhos."
            },
            {
              "kind": "method",
              "name": "getAllCells",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement[]"
                }
              },
              "description": "Obtém todas as células (tanto de corpo quanto de cabeçalho) da tabela, permitindo a aplicação de estilos e tokens de forma abrangente."
            },
            {
              "kind": "field",
              "name": "handleStructureChange",
              "privacy": "private",
              "description": "Recalcula estrutura, tokens e metadados de acessibilidade quando há mudança de slots."
            },
            {
              "kind": "method",
              "name": "applyAriaMetadata",
              "privacy": "private",
              "description": "Aplica metadados ARIA para melhorar a navegação por leitores de tela."
            },
            {
              "kind": "method",
              "name": "updateAllCellOverflow",
              "privacy": "private",
              "description": "Atualiza os tokens de overflow para todas as células da tabela, garantindo que as mudanças na propriedade de overflow sejam refletidas dinamicamente em todas as células, controlando o comportamento de overflow, text-overflow e white-space conforme definido no token."
            },
            {
              "kind": "method",
              "name": "updateAlignmentForTarget",
              "privacy": "private",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateOverflowForTarget",
              "privacy": "private",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "updateOverflowForCell",
              "privacy": "private",
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual os tokens de overflow devem ser atualizados."
                }
              ],
              "description": "Atualiza os tokens de overflow para uma célula específica, controlando o comportamento de overflow, text-overflow e white-space com base na resolução do token de overflow para a célula, que considera atributos específicos da célula, da linha, da coluna e da tabela para determinar o comportamento final de overflow a ser aplicado."
            },
            {
              "kind": "method",
              "name": "resolveOverflowForCell",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "TableOverflow"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual o token de overflow deve ser resolvido."
                }
              ],
              "description": "Resolve o token de overflow para uma célula específica, considerando a hierarquia de atributos (célula, linha, coluna, tabela) para determinar o comportamento de overflow final a ser aplicado à célula."
            },
            {
              "kind": "method",
              "name": "getColumnAttribute",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual o atributo da coluna deve ser obtido."
                },
                {
                  "name": "attribute",
                  "type": {
                    "text": "string"
                  },
                  "description": "O atributo específico a ser obtido da coluna (por exemplo, 'horizontal-alignment' ou 'vertical-alignment')."
                }
              ],
              "description": "Obtém o valor de um atributo específico de uma coluna para uma célula, permitindo a herança de propriedades da coluna para as células associadas com base no cabeçalho correspondente."
            },
            {
              "kind": "method",
              "name": "getHeaderForCell",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              },
              "parameters": [
                {
                  "name": "cell",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "A célula para a qual o cabeçalho correspondente deve ser obtido."
                }
              ],
              "description": "Obtém o elemento de cabeçalho correspondente a uma célula específica, permitindo a associação entre células e seus respectivos cabeçalhos para herança de propriedades como alinhamento e largura."
            },
            {
              "kind": "method",
              "name": "applyDensity",
              "privacy": "private",
              "description": "Resolve e aplica o token de densidade."
            },
            {
              "kind": "method",
              "name": "applyDividers",
              "privacy": "private",
              "description": "Resolve e aplica os tokens relacionados aos divisores\n(estilo e fatores de linha/coluna)."
            },
            {
              "kind": "method",
              "name": "getTableCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "renderContent",
              "privacy": "private",
              "description": "Renderiza a estrutura interna da tabela (header e body).",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "column-width",
              "fieldName": "columnWidth",
              "default": "fill",
              "description": "Largura global aplicada a todas as colunas.",
              "type": {
                "text": "ColumnWidth"
              },
              "parsedType": {
                "text": "'fill' | ColumnWidth | ColumnWidth | 'content'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`. Quando omitida, a densidade média é aplicada ao token.",
              "type": {
                "text": "TableDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "divider-style",
              "fieldName": "dividerStyle",
              "default": "solid",
              "description": "Define o estilo visual dos divisores.",
              "type": {
                "text": "TableDividerStyle"
              },
              "parsedType": {
                "text": "'dashed' | 'solid'"
              }
            },
            {
              "name": "has-column-divider",
              "fieldName": "hasColumnDivider",
              "default": "false",
              "description": "Ativa divisores verticais entre colunas.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "column-divider",
              "fieldName": "columnDivider",
              "description": "Ativa divisores verticais. Quando informada, tem precedência sobre `hasColumnDivider`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "has-row-divider",
              "fieldName": "hasRowDivider",
              "default": "false",
              "description": "Ativa divisores horizontais entre linhas.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "row-divider",
              "fieldName": "rowDivider",
              "description": "Ativa divisores horizontais. Quando informada, tem precedência sobre `hasRowDivider`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "horizontal-alignment",
              "fieldName": "horizontalAlignment",
              "default": "start",
              "description": "Define o alinhamento horizontal do conteúdo das células.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "vertical-alignment",
              "fieldName": "verticalAlignment",
              "default": "start",
              "description": "Define o alinhamento vertical do conteúdo das células.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "overflow",
              "fieldName": "overflow",
              "default": "wrap",
              "description": "Define o comportamento de overflow para as células.",
              "type": {
                "text": "TableOverflow"
              },
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "name": "tooltip-state",
              "fieldName": "tooltipState",
              "default": "info",
              "description": "Define o estado semântico do tooltip nas células da tabela.",
              "type": {
                "text": "TableTooltipState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "tooltip-mode",
              "fieldName": "tooltipMode",
              "default": "disabled (valor efetivo)",
              "description": "Define o modo de resolução do tooltip nas células da tabela.",
              "type": {
                "text": "TableTooltipMode"
              },
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "name": "loading",
              "fieldName": "loading",
              "default": "false",
              "description": "Indica que as linhas estão sendo atualizadas pelo consumidor.\nO componente mantém o conteúdo anterior, aplica `aria-busy=\"true\"` e\nexibe o slot `loading` sobre os dados; transporte, erro e substituição das\nlinhas ficam sob responsabilidade da aplicação.\nA prop pode ser alterada diretamente ou pelos métodos `startLoading()` e\n`stopLoading()`.",
              "type": {
                "text": "boolean"
              }
            }
          ],
          "tagName": "br-table",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal da tabela."
            },
            {
              "name": "content",
              "description": "Área de conteúdo que contém header e body."
            },
            {
              "name": "loading",
              "description": "Área do indicador de carregamento."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Dados",
          "categories": [
            "Dados",
            "Conteúdo"
          ],
          "cssProperties": [
            {
              "name": "--br-table-cell-overflow",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-cell-text-overflow",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-cell-white-space",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-column-divider-factor",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-column-widths",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-density",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-divider-base-width",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-divider-style",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-header-row-divider-style",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-horizontal-alignment",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-loading-opacity",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-row-divider-factor",
              "description": "Variável CSS pública do componente."
            },
            {
              "name": "--br-table-vertical-alignment",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Table",
          "declaration": {
            "name": "Table",
            "module": "components/table.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table",
          "declaration": {
            "name": "Table",
            "module": "components/table.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table-body/table-body.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Corpo de dados (`<tbody>`) da tabela. Use no slot `body` do `br-table`.\n\nAgrupa as linhas `br-table-row` contendo as células de dados `br-table-cell`.",
          "name": "TableBody",
          "cssParts": [
            {
              "description": "Wrapper do corpo da tabela.",
              "name": "body"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableBodyElement"
              },
              "description": "Referência ao elemento host do componente.   *\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "method",
              "name": "getBodyCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "tagName": "br-table-body",
          "csspart": {
            "name": "body",
            "description": "Wrapper do corpo da tabela."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TableBody",
          "declaration": {
            "name": "TableBody",
            "module": "components/table-body/table-body.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table-body",
          "declaration": {
            "name": "TableBody",
            "module": "components/table-body/table-body.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table-cell/table-cell.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Célula de dados (`<td>`) da tabela. Use dentro de um `br-table-row` no corpo da tabela.\n\nColoque o conteúdo do registro no slot padrão.",
          "name": "TableCell",
          "cssParts": [
            {
              "description": "Wrapper da célula.",
              "name": "cell"
            },
            {
              "description": "Área de conteúdo da célula.",
              "name": "content"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableCellElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "isTooltipVisible",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Controla a visibilidade do tooltip associado ao conteúdo truncado."
            },
            {
              "kind": "field",
              "name": "tooltipContent",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Armazena o texto completo exibido no tooltip."
            },
            {
              "kind": "field",
              "name": "horizontalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento horizontal do conteúdo dentro da célula.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "verticalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento vertical do conteúdo dentro da célula.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "overflow",
              "type": {
                "text": "TableOverflow | undefined"
              },
              "description": "Define se o conteúdo dentro da célula deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipState",
              "type": {
                "text": "TableTooltipState | undefined"
              },
              "description": "Define o estado semântico do tooltip nesta célula.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipMode",
              "type": {
                "text": "TableTooltipMode | undefined"
              },
              "description": "Define o modo de resolução do tooltip nesta célula.",
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "kind": "method",
              "name": "validateProps",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleAlignmentChange",
              "privacy": "protected",
              "description": "Observa mudanças nos tokens de alinhamento horizontal e vertical, emitindo um evento para notificar que o alinhamento foi alterado, permitindo que a célula reaja dinamicamente a essas mudanças."
            },
            {
              "kind": "method",
              "name": "handleOverflowChange",
              "privacy": "protected",
              "description": "Observa mudanças no token de overflow, emitindo um evento para notificar que a configuração de overflow foi alterada, permitindo que a célula reaja dinamicamente a essa mudança."
            },
            {
              "kind": "field",
              "name": "tooltipRef",
              "type": {
                "text": "TooltipApi | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "HTMLBrTooltipElement & { setTriggerElement: {  }, showTooltip: {  }, hideTooltip: {  } }"
              }
            },
            {
              "kind": "field",
              "name": "truncateContentRef",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "contentSlotRef",
              "type": {
                "text": "HTMLSlotElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "getFullCellContent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getColumnHeader",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "resolveTooltipState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "TableTooltipState"
                }
              }
            },
            {
              "kind": "method",
              "name": "resolveTooltipMode",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "TableTooltipMode"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleMouseEnter",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMouseLeave",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "notifyAlignmentChange",
              "privacy": "private",
              "description": "Notifica que o alinhamento foi alterado, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "notifyOverflowChange",
              "privacy": "private",
              "description": "Notifica que a configuração de overflow foi alterada, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "getCellCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "horizontal-alignment",
              "fieldName": "horizontalAlignment",
              "description": "Define o alinhamento horizontal do conteúdo dentro da célula.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "vertical-alignment",
              "fieldName": "verticalAlignment",
              "description": "Define o alinhamento vertical do conteúdo dentro da célula.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "overflow",
              "fieldName": "overflow",
              "description": "Define se o conteúdo dentro da célula deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "type": {
                "text": "TableOverflow"
              },
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "name": "tooltip-state",
              "fieldName": "tooltipState",
              "description": "Define o estado semântico do tooltip nesta célula.",
              "type": {
                "text": "TableTooltipState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "tooltip-mode",
              "fieldName": "tooltipMode",
              "description": "Define o modo de resolução do tooltip nesta célula.",
              "type": {
                "text": "TableTooltipMode"
              },
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            }
          ],
          "tagName": "br-table-cell",
          "csspart": [
            {
              "name": "cell",
              "description": "Wrapper da célula."
            },
            {
              "name": "content",
              "description": "Área de conteúdo da célula."
            }
          ],
          "events": [
            {
              "name": "brAlignmentChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando o alinhamento é alterado, permitindo que a célula reaja dinamicamente a mudanças nos tokens de alinhamento."
            },
            {
              "name": "brOverflowChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando a configuração de overflow é alterada, permitindo que a célula reaja dinamicamente a mudanças no token de overflow."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TableCell",
          "declaration": {
            "name": "TableCell",
            "module": "components/table-cell/table-cell.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table-cell",
          "declaration": {
            "name": "TableCell",
            "module": "components/table-cell/table-cell.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table-header/table-header.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Cabeçalho da tabela (`br-table`). Use no slot `header`.\n\nAgrupa as linhas `br-table-row` com as células de cabeçalho `br-table-header-cell`.",
          "name": "TableHeader",
          "cssParts": [
            {
              "description": "Wrapper do cabeçalho da tabela.",
              "name": "header"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableHeaderElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "method",
              "name": "getHeaderCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "tagName": "br-table-header",
          "csspart": {
            "name": "header",
            "description": "Wrapper do cabeçalho da tabela."
          },
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TableHeader",
          "declaration": {
            "name": "TableHeader",
            "module": "components/table-header/table-header.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table-header",
          "declaration": {
            "name": "TableHeader",
            "module": "components/table-header/table-header.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table-header-cell/table-header-cell.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Célula de cabeçalho (`<th>`) da tabela. Use dentro de um `br-table-row` no cabeçalho.\n\nColoque o título da coluna no slot padrão. Para habilitar ordenação, ative `sortable`.",
          "name": "TableHeaderCell",
          "cssParts": [
            {
              "description": "Wrapper da célula de cabeçalho.",
              "name": "cell"
            },
            {
              "description": "Área de conteúdo da célula de cabeçalho.",
              "name": "content"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableHeaderCellElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "isTooltipVisible",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Controla a visibilidade do tooltip associado ao conteúdo truncado."
            },
            {
              "kind": "field",
              "name": "tooltipContent",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''",
              "description": "Armazena o texto completo exibido no tooltip."
            },
            {
              "kind": "field",
              "name": "columnWidth",
              "type": {
                "text": "ColumnWidth | undefined"
              },
              "description": "Define a largura da coluna.\nAceita `fill`, `content`, larguras positivas em `px` ou frações positivas em `fr`.\nValores inválidos usam o fallback da tabela.",
              "parsedType": {
                "text": "'fill' | ColumnWidth | ColumnWidth | 'content'"
              },
              "example": "```html\n<br-table-header-cell column-width=\"2fr\">Descrição</br-table-header-cell>\n```"
            },
            {
              "kind": "field",
              "name": "horizontalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento horizontal do conteúdo dentro da célula de cabeçalho, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "verticalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento vertical do conteúdo dentro da célula de cabeçalho, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "overflow",
              "type": {
                "text": "TableOverflow | undefined"
              },
              "description": "Define se o conteúdo dentro da célula de cabeçalho deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipState",
              "type": {
                "text": "TableTooltipState | undefined"
              },
              "description": "Define o estado semântico do tooltip nesta coluna/célula de cabeçalho.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipMode",
              "type": {
                "text": "TableTooltipMode | undefined"
              },
              "description": "Define o modo de resolução do tooltip nesta coluna/célula de cabeçalho.",
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "kind": "method",
              "name": "validateProps",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleColumnWidthChange",
              "privacy": "protected",
              "description": "Observa mudanças no token de largura da coluna, emitindo um evento para notificar que a largura foi alterada, permitindo que as células reajam dinamicamente a mudanças no layout."
            },
            {
              "kind": "method",
              "name": "handleAlignmentChange",
              "privacy": "protected",
              "description": "Observa mudanças nos tokens de alinhamento horizontal e vertical, emitindo um evento para notificar que o alinhamento foi alterado, permitindo que a célula de cabeçalho reaja dinamicamente a essas mudanças."
            },
            {
              "kind": "method",
              "name": "handleOverflowChange",
              "privacy": "protected",
              "description": "Observa mudanças no token de overflow, emitindo um evento para notificar que a configuração de overflow foi alterada, permitindo que a célula de cabeçalho reaja dinamicamente a essa mudança."
            },
            {
              "kind": "field",
              "name": "tooltipRef",
              "type": {
                "text": "TooltipApi | null"
              },
              "privacy": "private",
              "default": "null",
              "parsedType": {
                "text": "HTMLBrTooltipElement & { setTriggerElement: {  }, showTooltip: {  }, hideTooltip: {  } }"
              }
            },
            {
              "kind": "field",
              "name": "truncateContentRef",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "contentSlotRef",
              "type": {
                "text": "HTMLSlotElement | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "method",
              "name": "getFullCellContent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resolveTooltipState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "TableTooltipState"
                }
              }
            },
            {
              "kind": "method",
              "name": "resolveTooltipMode",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "TableTooltipMode"
                }
              }
            },
            {
              "kind": "field",
              "name": "handleMouseEnter",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleMouseLeave",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "notifyColumnWidthChange",
              "privacy": "private",
              "description": "Notifica que a largura da coluna foi alterada, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "notifyAlignmentChange",
              "privacy": "private",
              "description": "Notifica que o alinhamento foi alterado, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "notifyOverflowChange",
              "privacy": "private",
              "description": "Notifica que a configuração de overflow foi alterada, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "getHeaderCellCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "column-width",
              "fieldName": "columnWidth",
              "description": "Define a largura da coluna.\nAceita `fill`, `content`, larguras positivas em `px` ou frações positivas em `fr`.\nValores inválidos usam o fallback da tabela.",
              "type": {
                "text": "ColumnWidth"
              },
              "parsedType": {
                "text": "'fill' | ColumnWidth | ColumnWidth | 'content'"
              }
            },
            {
              "name": "horizontal-alignment",
              "fieldName": "horizontalAlignment",
              "description": "Define o alinhamento horizontal do conteúdo dentro da célula de cabeçalho, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "vertical-alignment",
              "fieldName": "verticalAlignment",
              "description": "Define o alinhamento vertical do conteúdo dentro da célula de cabeçalho, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "overflow",
              "fieldName": "overflow",
              "description": "Define se o conteúdo dentro da célula de cabeçalho deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "type": {
                "text": "TableOverflow"
              },
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "name": "tooltip-state",
              "fieldName": "tooltipState",
              "description": "Define o estado semântico do tooltip nesta coluna/célula de cabeçalho.",
              "type": {
                "text": "TableTooltipState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "tooltip-mode",
              "fieldName": "tooltipMode",
              "description": "Define o modo de resolução do tooltip nesta coluna/célula de cabeçalho.",
              "type": {
                "text": "TableTooltipMode"
              },
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            }
          ],
          "tagName": "br-table-header-cell",
          "csspart": [
            {
              "name": "cell",
              "description": "Wrapper da célula de cabeçalho."
            },
            {
              "name": "content",
              "description": "Área de conteúdo da célula de cabeçalho."
            }
          ],
          "events": [
            {
              "name": "brColumnWidthChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando a largura da coluna é alterada, permitindo que as células reajam dinamicamente a mudanças no layout."
            },
            {
              "name": "brAlignmentChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando o alinhamento é alterado, permitindo que a célula de cabeçalho reaja dinamicamente a mudanças nos tokens de alinhamento."
            },
            {
              "name": "brOverflowChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando a configuração de overflow é alterada, permitindo que a célula de cabeçalho reaja dinamicamente a mudanças no token de overflow."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TableHeaderCell",
          "declaration": {
            "name": "TableHeaderCell",
            "module": "components/table-header-cell/table-header-cell.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table-header-cell",
          "declaration": {
            "name": "TableHeaderCell",
            "module": "components/table-header-cell/table-header-cell.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/table-row/table-row.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Linha horizontal (`<tr>`) da tabela. Use dentro de `br-table-header` ou `br-table-body`.\n\nUse `selected` para indicar que a linha está selecionada.",
          "name": "TableRow",
          "cssParts": [
            {
              "description": "Wrapper da linha da tabela.",
              "name": "row"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTableRowElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "horizontalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento horizontal das células dentro da linha, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "verticalAlignment",
              "type": {
                "text": "TableAlignment | undefined"
              },
              "description": "Define o alinhamento vertical das células dentro da linha, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "kind": "field",
              "name": "overflow",
              "type": {
                "text": "TableOverflow | undefined"
              },
              "description": "Define se o conteúdo dentro das células da linha deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipState",
              "type": {
                "text": "TableTooltipState | undefined"
              },
              "description": "Define o estado semântico do tooltip nas células desta linha.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "tooltipMode",
              "type": {
                "text": "TableTooltipMode | undefined"
              },
              "description": "Define o modo de resolução do tooltip nas células desta linha.",
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            },
            {
              "kind": "method",
              "name": "validateProps",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "handleAlignmentChange",
              "privacy": "protected",
              "description": "Observa mudanças nos tokens de alinhamento horizontal e vertical, emitindo um evento para notificar que o alinhamento foi alterado, permitindo que as células reajam dinamicamente a essas mudanças."
            },
            {
              "kind": "method",
              "name": "handleOverflowChange",
              "privacy": "protected",
              "description": "Observa mudanças no token de overflow, emitindo um evento para notificar que a configuração de overflow foi alterada, permitindo que as células reajam dinamicamente a essa mudança."
            },
            {
              "kind": "method",
              "name": "notifyAlignmentChange",
              "privacy": "private",
              "description": "Notifica que o alinhamento foi alterado, emitindo o evento customizado correspondente."
            },
            {
              "kind": "method",
              "name": "notifyOverflowChange",
              "privacy": "private",
              "description": "Observa mudanças no token de overflow, emitindo um evento para notificar que a configuração de overflow foi alterada, permitindo que as células reajam dinamicamente a essa mudança."
            },
            {
              "kind": "method",
              "name": "getRowCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna o mapa de classes base do componente."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o host do componente.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "horizontal-alignment",
              "fieldName": "horizontalAlignment",
              "description": "Define o alinhamento horizontal das células dentro da linha, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "vertical-alignment",
              "fieldName": "verticalAlignment",
              "description": "Define o alinhamento vertical das células dentro da linha, permitindo a herança de alinhamento para as células filhas com base no valor definido.",
              "type": {
                "text": "TableAlignment"
              },
              "parsedType": {
                "text": "'start' | 'center' | 'end'"
              }
            },
            {
              "name": "overflow",
              "fieldName": "overflow",
              "description": "Define se o conteúdo dentro das células da linha deve ser truncado, permitindo a herança dessa configuração para as células filhas com base no valor definido.",
              "type": {
                "text": "TableOverflow"
              },
              "parsedType": {
                "text": "'truncate' | 'wrap'"
              }
            },
            {
              "name": "tooltip-state",
              "fieldName": "tooltipState",
              "description": "Define o estado semântico do tooltip nas células desta linha.",
              "type": {
                "text": "TableTooltipState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "tooltip-mode",
              "fieldName": "tooltipMode",
              "description": "Define o modo de resolução do tooltip nas células desta linha.",
              "type": {
                "text": "TableTooltipMode"
              },
              "parsedType": {
                "text": "'inherit' | 'enabled' | 'disabled'"
              }
            }
          ],
          "tagName": "br-table-row",
          "csspart": {
            "name": "row",
            "description": "Wrapper da linha da tabela."
          },
          "events": [
            {
              "name": "brAlignmentChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando o alinhamento é alterado, permitindo que as células reajam dinamicamente a mudanças nos tokens de alinhamento."
            },
            {
              "name": "brOverflowChange",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento customizado emitido quando a configuração de overflow é alterada, permitindo que as células reajam dinamicamente a mudanças no token de overflow."
            }
          ],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "TableRow",
          "declaration": {
            "name": "TableRow",
            "module": "components/table-row/table-row.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-table-row",
          "declaration": {
            "name": "TableRow",
            "module": "components/table-row/table-row.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/tag.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-tag` categoriza, rotula ou destaca informações curtas e metadados.\n\nSuporta modo estático informativo, modo interativo clicável com `action`, modo com botão de fechar (`closable`) e modo selecionável com `selectable`.\n\n```html\n<br-tag>Pendente</br-tag>\n<br-tag status=\"success\">Concluído</br-tag>\n<br-tag closable>Filtro: Brasília</br-tag>\n```\n\n### Quando usar\n\n- Rótulos de estado, tags de categorias ou palavras-chave.\n- Filtros aplicados que podem ser removidos individualmente.\n\n### Quando evitar\n\n- Ações primárias ou envio de formulário: use `br-button`.\n- Contagem numérica pura: use `br-avatar` ou texto de badge.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/tag?tab=designer).",
          "name": "Tag",
          "cssParts": [
            {
              "description": "Elemento principal da tag.",
              "name": "tag"
            },
            {
              "description": "Elemento input da tag de seleção.",
              "name": "input"
            },
            {
              "description": "Rótulo da tag de seleção.",
              "name": "label"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Slot para inserir o conteúdo da tag, como rótulo ou ícone.",
              "name": "default"
            },
            {
              "description": "Rótulo customizado da tag. Quando utilizado, a prop `label` é ignorada.",
              "name": "label"
            },
            {
              "description": "Ícone customizado da tag. Quando utilizado, a prop `icon` é ignorada.",
              "name": "icon"
            },
            {
              "description": "Botão de fechar customizado. Quando utilizado, o botão padrão é substituído.",
              "name": "close-button"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              },
              "description": "API de controle de formulário nativa"
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTagElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "customSizeValue",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Tamanho customizado normalizado a partir da prop ou do atributo no host."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasIconSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\nEla é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente."
            },
            {
              "kind": "field",
              "name": "iconName",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Identificador legado do ícone exibido ao lado do texto.",
              "deprecated": "Use o slot `icon` com um SVG, asset ou elemento de ícone controlado pela aplicação."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\nEla é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente."
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Valor submetido quando a tag selecionável está ativa."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "TagValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada ao estado, valor e rótulo da tag.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst tag = document.querySelector('br-tag');\ntag.validator = ({ selected, label }) =>\n  selected ? null : `Selecione a tag ${label}`;\n```"
            },
            {
              "kind": "field",
              "name": "multiple",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "A tag permite seleção múltipla."
            },
            {
              "kind": "field",
              "name": "selected",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "A tag está selecionada."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "bgColor",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "A propriedade 'color' permite definir a cor do componente.\nAceita valores como 'red', 'blue', entre outros, e é refletida no DOM."
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "BrDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "shape",
              "type": {
                "text": "TagShape"
              },
              "default": "SHAPE_DEFAULT",
              "description": "A propriedade 'shape' define o formato do componente.",
              "parsedType": {
                "text": "'circle' | 'default' | 'rounded'"
              }
            },
            {
              "kind": "field",
              "name": "size",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Define o tamanho personalizado do componente quando o formato for circular (`circle`), arredondado (`rounded`) ou status.\nAceita qualquer valor de tamanho CSS válido (ex: `16px`, `1.5rem`)."
            },
            {
              "kind": "field",
              "name": "variant",
              "type": {
                "text": "TagVariant | undefined"
              },
              "description": "Variante funcional padrão. Aceita `default`, `status`, `action` ou `selectable`.\nValores inválidos são ignorados; nesse caso, os aliases booleanos legados\ncontinuam disponíveis para manter a compatibilidade.",
              "parsedType": {
                "text": "'default' | 'status' | 'action' | 'selectable'"
              }
            },
            {
              "kind": "field",
              "name": "status",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Transforma a tag em um indicador de status, com aparência circular.\nÉ flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).",
              "deprecated": "Use `variant=\"status\"`."
            },
            {
              "kind": "field",
              "name": "interaction",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Interação deve ser habilitada.",
              "deprecated": "Use `variant=\"action\"`."
            },
            {
              "kind": "field",
              "name": "interactionSelect",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Interação de seleção deve ser habilitada.",
              "deprecated": "Use `variant=\"selectable\"`."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exige uma seleção no grupo quando `interaction-select` está ativo."
            },
            {
              "kind": "field",
              "name": "minSelections",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Quantidade mínima de tags selecionadas no mesmo grupo. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "maxSelections",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Quantidade máxima de tags selecionadas no mesmo grupo. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "description": "Define o rótulo acessível usado por tecnologias assistivas."
            },
            {
              "kind": "field",
              "name": "ariaDescribedby",
              "type": {
                "text": "string"
              },
              "default": "null",
              "description": "ID do elemento que fornece descrição adicional da tag.\nReferencia um elemento na página que contém informações complementares sobre a tag.\nA descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.\nExemplo: aria-describedby=\"help-status\" onde existe <div id=\"help-status\">Aguardando aprovação</div>"
            },
            {
              "kind": "field",
              "name": "effectiveShape",
              "type": {
                "text": "TagShape"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'circle' | 'default' | 'rounded'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveVariant",
              "type": {
                "text": "TagVariant | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'default' | 'status' | 'action' | 'selectable'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMinSelections",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveMaxSelections",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleInteractionChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleInteractionSelectChange",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleSelectedChange"
            },
            {
              "kind": "method",
              "name": "handleSizeChange"
            },
            {
              "kind": "method",
              "name": "handleSelectableTagInput",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCheckedChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "effectiveStatus",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "description": "Permite navegação por teclado (setas) entre tags do tipo radio (seleção unica).\nFunciona apenas quando 'interactionSelect' é true e 'multiple' é false.\nIgnora tags desabilitadas.",
              "parameters": [
                {
                  "description": "Evento de teclado",
                  "name": "event"
                }
              ],
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveAction",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveSelectable",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleKeyDown",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "selectNextRadio",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "selectPreviousRadio",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "selectRadioByStep",
              "privacy": "private",
              "parameters": [
                {
                  "name": "step",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "selectRadio",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextRadio",
                  "type": {
                    "text": "HTMLBrTagElement"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "method",
              "name": "getTagAttributes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getAriaDescribedBy",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "hasContent",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "string"
                  },
                  "description": "String a ser verificada"
                }
              ],
              "description": "Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco)."
            },
            {
              "kind": "method",
              "name": "getAriaLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getRole",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAriaChecked",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "getAriaDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateCustomSizeValue",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "hasCustomSize",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "customSizeStyle",
              "type": {
                "text": "Record<string, string>"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "kind": "field",
              "name": "tagStyle",
              "type": {
                "text": "Record<string, string>"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "kind": "method",
              "name": "renderIcon",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderLabel",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderCloseButton",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderStatusLabel",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleClose",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderMainTagContent",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderStatusLayout",
              "privacy": "private",
              "parameters": [
                {
                  "name": "content",
                  "type": {
                    "text": "JSX.Element"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "handleInput",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleChange",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "initialSelected",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna se a tag selecionável atende às constraints configuradas."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Valida e solicita ao navegador a apresentação do erro atual."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define ou limpa uma mensagem de validade customizada."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator da tag e retorna se o valor atual é válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "renderInteractionSelectTag",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "default": "''",
              "description": "A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\nEla é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente."
            },
            {
              "name": "icon-name",
              "fieldName": "iconName",
              "default": "''",
              "description": "Identificador legado do ícone exibido ao lado do texto."
            },
            {
              "name": "name",
              "fieldName": "name",
              "default": "''",
              "description": "A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\nEla é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente."
            },
            {
              "name": "value",
              "fieldName": "value",
              "default": "''",
              "description": "Valor submetido quando a tag selecionável está ativa."
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada ao estado, valor e rótulo da tag.",
              "type": {
                "text": "TagValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "default": "false",
              "description": "A tag permite seleção múltipla."
            },
            {
              "name": "selected",
              "fieldName": "selected",
              "default": "false",
              "description": "A tag está selecionada."
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "bg-color",
              "fieldName": "bgColor",
              "default": "''",
              "description": "A propriedade 'color' permite definir a cor do componente.\nAceita valores como 'red', 'blue', entre outros, e é refletida no DOM."
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "BrDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "shape",
              "fieldName": "shape",
              "default": "SHAPE_DEFAULT",
              "description": "A propriedade 'shape' define o formato do componente.",
              "type": {
                "text": "TagShape"
              },
              "parsedType": {
                "text": "'circle' | 'default' | 'rounded'"
              }
            },
            {
              "name": "size",
              "fieldName": "size",
              "default": "''",
              "description": "Define o tamanho personalizado do componente quando o formato for circular (`circle`), arredondado (`rounded`) ou status.\nAceita qualquer valor de tamanho CSS válido (ex: `16px`, `1.5rem`)."
            },
            {
              "name": "variant",
              "fieldName": "variant",
              "description": "Variante funcional padrão. Aceita `default`, `status`, `action` ou `selectable`.\nValores inválidos são ignorados; nesse caso, os aliases booleanos legados\ncontinuam disponíveis para manter a compatibilidade.",
              "type": {
                "text": "TagVariant"
              },
              "parsedType": {
                "text": "'default' | 'status' | 'action' | 'selectable'"
              }
            },
            {
              "name": "status",
              "fieldName": "status",
              "default": "false",
              "description": "Transforma a tag em um indicador de status, com aparência circular.\nÉ flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores)."
            },
            {
              "name": "interaction",
              "fieldName": "interaction",
              "default": "false",
              "description": "Interação deve ser habilitada."
            },
            {
              "name": "interaction-select",
              "fieldName": "interactionSelect",
              "default": "false",
              "description": "Interação de seleção deve ser habilitada."
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Exige uma seleção no grupo quando `interaction-select` está ativo."
            },
            {
              "name": "min-selections",
              "fieldName": "minSelections",
              "default": "0",
              "description": "Quantidade mínima de tags selecionadas no mesmo grupo. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "name": "max-selections",
              "fieldName": "maxSelections",
              "default": "0",
              "description": "Quantidade máxima de tags selecionadas no mesmo grupo. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Define o rótulo acessível usado por tecnologias assistivas.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-describedby",
              "fieldName": "ariaDescribedby",
              "default": "null",
              "description": "ID do elemento que fornece descrição adicional da tag.\nReferencia um elemento na página que contém informações complementares sobre a tag.\nA descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.\nExemplo: aria-describedby=\"help-status\" onde existe <div id=\"help-status\">Aguardando aprovação</div>",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-tag",
          "status": "stable",
          "csspart": [
            {
              "name": "tag",
              "description": "Elemento principal da tag."
            },
            {
              "name": "input",
              "description": "Elemento input da tag de seleção."
            },
            {
              "name": "label",
              "description": "Rótulo da tag de seleção."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "events": [
            {
              "name": "radioSelected",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Evento emitido quando a tag é selecionada.",
              "deprecated": "Use `input`/`change` e leia `event.target.selected`."
            },
            {
              "name": "brTagValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada."
            }
          ],
          "customElement": true,
          "category": "Conteúdo",
          "categories": [
            "Conteúdo",
            "Dados"
          ],
          "cssProperties": [
            {
              "name": "--br-tag-custom-size",
              "description": "Variável CSS pública do componente."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Tag",
          "declaration": {
            "name": "Tag",
            "module": "components/tag.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-tag",
          "declaration": {
            "name": "Tag",
            "module": "components/tag.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/textarea.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-textarea` captura textos longos em múltiplas linhas em formulários.\n\nConfigure `label`, `placeholder`, `maxlength` e `state` para validação. Use `show-counter` para exibir o contador de caracteres restantes.\n\n```html\n<br-textarea label=\"Observações\" placeholder=\"Digite sua mensagem\" maxlength=\"500\" show-counter></br-textarea>\n```\n\nEm formulários HTML, o componente integra-se via `ElementInternals`, participando da validação nativa com `required`.\n\n### Quando usar\n\n- Mensagens, comentários, justificativas, descrições ou textos extensos.\n\n### Quando evitar\n\n- Dados curtos de linha única (nome, CPF, e-mail): use `br-input`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/textarea?tab=designer).",
          "name": "Textarea",
          "cssParts": [
            {
              "description": "Contêiner visual principal.",
              "name": "container"
            },
            {
              "description": "Rótulo do textarea.",
              "name": "label"
            },
            {
              "description": "Elemento textarea nativo.",
              "name": "textarea"
            },
            {
              "description": "Contêiner do contador.",
              "name": "counter"
            },
            {
              "description": "Texto do contador.",
              "name": "counter-text"
            },
            {
              "description": "Contêiner do conteúdo auxiliar do slot default.",
              "name": "helper"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            }
          ],
          "slots": [
            {
              "description": "Slot para texto adicional ou instruções a serem exibidos junto ao textarea.",
              "name": "default"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            },
            {
              "description": "Indicador exibido durante validação assíncrona.",
              "name": "validation-loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTextareaElement"
              }
            },
            {
              "kind": "field",
              "name": "currentLength",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "description": "Comprimento atual derivado do valor do textarea.",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasDefaultSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o slot padrão possui conteúdo."
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasValidationLoadingSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "value",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Valor exibido no textarea.\nPode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto exibido como rótulo do input."
            },
            {
              "kind": "field",
              "name": "placeholder",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Texto alternativo para acessibilidade quando não há label visível.\nFornece um rótulo para tecnologias assistivas sem exibir visualmente."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string"
              },
              "readonly": true,
              "description": "Nome do campo para identificação no formulário.\nNecessário para participação correta no envio de formulários e integração com frameworks."
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "readonly",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Impede edição sem remover o campo do envio do formulário."
            },
            {
              "kind": "field",
              "name": "minlength",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "0",
              "description": "Número mínimo de caracteres necessário para o valor ser válido. Deve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "maxlength",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "default": "0",
              "description": "Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\nDeve ser um inteiro não negativo; valores inválidos usam 0."
            },
            {
              "kind": "field",
              "name": "showCounter",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Mostra o contador com a quantidade máxima de caracteres."
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "'danger' | 'success' | 'warning'"
              },
              "readonly": true,
              "description": "Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'. Valores inválidos não aplicam estado.",
              "parsedType": {
                "text": "'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "'danger' | 'success' | 'warning' | undefined"
              },
              "readonly": true,
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`; valores inválidos não aplicam estado.",
              "parsedType": {
                "text": "'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "InputValidator | string | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona executada no `change` ou por `validate()`.\nPode consultar um serviço remoto; o componente controla apenas loading,\nvalidade e a precedência do resultado mais recente.",
              "parsedType": {
                "text": "string | {  }"
              },
              "example": "```js\nconst textarea = document.querySelector('br-textarea');\ntextarea.validator = (value) =>\n  value.trim().length >= 20 ? null : 'Informe pelo menos 20 caracteres';\n```"
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "'small' | 'medium' | 'large'"
              },
              "readonly": true,
              "default": "'medium'",
              "description": "Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "isInline",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).",
              "deprecated": "Use `inline`."
            },
            {
              "kind": "field",
              "name": "inline",
              "type": {
                "text": "boolean | undefined"
              },
              "readonly": true,
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "parsedType": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "rows",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "description": "Número de linhas visíveis no textarea.\nDefine a altura do componente em relação ao número de linhas de texto exibidas.\nDeve ser um inteiro positivo; valores inválidos são ignorados."
            },
            {
              "kind": "field",
              "name": "cols",
              "type": {
                "text": "number"
              },
              "readonly": true,
              "description": "Número de colunas (caracteres) visíveis no textarea.\nDefine a largura do componente em relação ao número de caracteres por linha.\nDeve ser um inteiro positivo; valores inválidos são ignorados."
            },
            {
              "kind": "field",
              "name": "autoGrow",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Ajusta automaticamente a altura ao conteúdo sem exibir rolagem vertical.\nQuando ativo, o componente controla a dimensão vertical; `resize=\"vertical\"`\ne `resize=\"both\"` passam a se comportar como `none`, enquanto\n`resize=\"horizontal\"` continua disponível."
            },
            {
              "kind": "field",
              "name": "resize",
              "type": {
                "text": "TextareaResize | undefined"
              },
              "readonly": true,
              "description": "Define os eixos que a pessoa usuária pode redimensionar manualmente.\nQuando omitida, preserva o comportamento nativo atual do navegador.\nValores inválidos são ignorados.",
              "parsedType": {
                "text": "'horizontal' | 'vertical' | 'none' | 'both'"
              }
            },
            {
              "kind": "field",
              "name": "wrap",
              "type": {
                "text": "TextareaWrap | undefined"
              },
              "readonly": true,
              "description": "Encaminha a política nativa de quebra de linha ao `<textarea>` interno.\nQuando omitida, o navegador usa o comportamento nativo `soft`.\nValores inválidos são ignorados.",
              "parsedType": {
                "text": "'soft' | 'hard'"
              }
            },
            {
              "kind": "method",
              "name": "valueChanged"
            },
            {
              "kind": "method",
              "name": "autoGrowChanged"
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do textarea for válido, caso contrário `false`.\nSe o textarea for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do textarea for válido, caso contrário `false`.\nSe for inválido, exibe a mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define uma mensagem de validação customizada para o textarea.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator customizado e retorna se o textarea está válido."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "select",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Seleciona todo o texto do controle nativo, conforme HTMLTextAreaElement.select()."
            },
            {
              "kind": "method",
              "name": "setRangeText",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "replacement",
                  "type": {
                    "text": "string"
                  }
                },
                {
                  "name": "start",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "end",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "selectionMode",
                  "optional": true,
                  "type": {
                    "text": "SelectionMode"
                  }
                }
              ],
              "description": "Substitui um intervalo de texto usando a API nativa do textarea."
            },
            {
              "kind": "method",
              "name": "setSelectionRange",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "start",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "end",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "direction",
                  "optional": true,
                  "type": {
                    "text": "'forward' | 'backward' | 'none'"
                  }
                }
              ],
              "description": "Define o intervalo selecionado no controle nativo."
            },
            {
              "kind": "method",
              "name": "setValue",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string"
                  },
                  "description": "O novo valor a ser definido."
                }
              ],
              "description": "Define um novo valor para o textarea."
            },
            {
              "kind": "field",
              "name": "nativeTextarea",
              "type": {
                "text": "HTMLTextAreaElement | undefined"
              },
              "privacy": "private",
              "description": "Referência nativa do textarea para acessar a API de validação"
            },
            {
              "kind": "field",
              "name": "autoGrowResizeObserver",
              "type": {
                "text": "ResizeObserver | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "autoGrowObservedWidth",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "initialValue",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "manualValidationMessage",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "method",
              "name": "syncProgrammaticValue",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "field",
              "name": "setNativeTextarea",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "syncAutoGrowObservation",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncAutoGrowHeight",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "default": "this.value ?? ''"
                }
              ]
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "resolveValidator",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "InputValidator | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "checkSlotContent",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "getDescribedBy",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Retorna os ids para o atributo aria-describedby do textarea"
            },
            {
              "kind": "method",
              "name": "renderFeedback",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderValidationLoading",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getAccessibilityLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Determina o texto a ser usado para acessibilidade quando não há label\nOrdem de prioridade:\n - aria-label do elemento host\n - propriedade ariaLabel do componente\n - placeholder\n - texto padrão (\"Campo de texto\")"
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "'danger' | 'success' | 'warning' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMinLength",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveMaxLength",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveRows",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveCols",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveResize",
              "type": {
                "text": "TextareaResize | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical' | 'none' | 'both'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveWrap",
              "type": {
                "text": "TextareaWrap | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'soft' | 'hard'"
              }
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "value",
              "fieldName": "value",
              "default": "''",
              "description": "Valor exibido no textarea.\nPode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "description": "Texto exibido como rótulo do input.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "placeholder",
              "fieldName": "placeholder",
              "description": "Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "description": "Texto alternativo para acessibilidade quando não há label visível.\nFornece um rótulo para tecnologias assistivas sem exibir visualmente.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único.\nCaso não seja fornecido, um ID gerado automaticamente será usado.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo para identificação no formulário.\nNecessário para participação correta no envio de formulários e integração com frameworks.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "readonly",
              "fieldName": "readonly",
              "default": "false",
              "description": "Impede edição sem remover o campo do envio do formulário.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "minlength",
              "fieldName": "minlength",
              "default": "0",
              "description": "Número mínimo de caracteres necessário para o valor ser válido. Deve ser um inteiro não negativo; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "maxlength",
              "fieldName": "maxlength",
              "default": "0",
              "description": "Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\nDeve ser um inteiro não negativo; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "show-counter",
              "fieldName": "showCounter",
              "default": "false",
              "description": "Mostra o contador com a quantidade máxima de caracteres.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'. Valores inválidos não aplicam estado.",
              "type": {
                "text": "'danger' | 'success' | 'warning'"
              },
              "parsedType": {
                "text": "'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`; valores inválidos não aplicam estado.",
              "type": {
                "text": "'danger' | 'success' | 'warning'"
              },
              "parsedType": {
                "text": "'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona executada no `change` ou por `validate()`.\nPode consultar um serviço remoto; o componente controla apenas loading,\nvalidade e a precedência do resultado mais recente.",
              "type": {
                "text": "InputValidator | string"
              },
              "parsedType": {
                "text": "string | {  }"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\nValores inválidos usam `medium`.",
              "type": {
                "text": "'small' | 'medium' | 'large'"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "is-inline",
              "fieldName": "isInline",
              "default": "false",
              "description": "Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "inline",
              "fieldName": "inline",
              "description": "Exibe rótulo e controle em linha. Quando informada, tem precedência sobre `isInline`.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "rows",
              "fieldName": "rows",
              "description": "Número de linhas visíveis no textarea.\nDefine a altura do componente em relação ao número de linhas de texto exibidas.\nDeve ser um inteiro positivo; valores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "cols",
              "fieldName": "cols",
              "description": "Número de colunas (caracteres) visíveis no textarea.\nDefine a largura do componente em relação ao número de caracteres por linha.\nDeve ser um inteiro positivo; valores inválidos são ignorados.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "auto-grow",
              "fieldName": "autoGrow",
              "default": "false",
              "description": "Ajusta automaticamente a altura ao conteúdo sem exibir rolagem vertical.\nQuando ativo, o componente controla a dimensão vertical; `resize=\"vertical\"`\ne `resize=\"both\"` passam a se comportar como `none`, enquanto\n`resize=\"horizontal\"` continua disponível.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "resize",
              "fieldName": "resize",
              "description": "Define os eixos que a pessoa usuária pode redimensionar manualmente.\nQuando omitida, preserva o comportamento nativo atual do navegador.\nValores inválidos são ignorados.",
              "type": {
                "text": "TextareaResize"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical' | 'none' | 'both'"
              }
            },
            {
              "name": "wrap",
              "fieldName": "wrap",
              "description": "Encaminha a política nativa de quebra de linha ao `<textarea>` interno.\nQuando omitida, o navegador usa o comportamento nativo `soft`.\nValores inválidos são ignorados.",
              "type": {
                "text": "TextareaWrap"
              },
              "parsedType": {
                "text": "'soft' | 'hard'"
              }
            }
          ],
          "tagName": "br-textarea",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Contêiner visual principal."
            },
            {
              "name": "label",
              "description": "Rótulo do textarea."
            },
            {
              "name": "textarea",
              "description": "Elemento textarea nativo."
            },
            {
              "name": "counter",
              "description": "Contêiner do contador."
            },
            {
              "name": "counter-text",
              "description": "Texto do contador."
            },
            {
              "name": "helper",
              "description": "Contêiner do conteúdo auxiliar do slot default."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            }
          ],
          "events": [
            {
              "name": "valueChange",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Valor atualizado do textarea",
              "deprecated": "Use o evento nativo `input` e leia `event.target.value`."
            },
            {
              "name": "brTextareaValidationChange",
              "type": {
                "text": "EventEmitter<InputValidationChangeDetail>"
              },
              "description": "Informa o início e o resultado do validator; o `detail` contém\n`validating`, `valid` e `message`."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Textarea",
          "declaration": {
            "name": "Textarea",
            "module": "components/textarea.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-textarea",
          "declaration": {
            "name": "Textarea",
            "module": "components/textarea.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/tooltip.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-tooltip` exibe uma dica rápida e contextual quando o usuário foca ou passa o mouse sobre um elemento.\n\nColoque o texto da dica em `text` ou no slot padrão, e vincule-o ao elemento acionador através de `target` ou colocando o acionador no slot `trigger`.\n\n```html\n<br-button id=\"btn-ajuda\" shape=\"circle\" aria-label=\"Ajuda\">?</br-button>\n<br-tooltip target=\"#btn-ajuda\" text=\"Clique para obter informações\"></br-tooltip>\n```\n\n### Quando usar\n\n- Esclarecer o significado de botões que usam apenas ícones ou rótulos abreviados.\n\n### Quando evitar\n\n- Informações essenciais que todos os usuários precisam ler imediatamente: exiba como texto visível na página.\n- Conteúdos longos com links clicáveis: use `br-message` ou diálogo.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/tooltip?tab=designer).",
          "name": "Tooltip",
          "cssParts": [
            {
              "description": "Wrapper principal do tooltip.",
              "name": "container"
            },
            {
              "description": "Área do acionador do tooltip.",
              "name": "trigger"
            },
            {
              "description": "Área de conteúdo do tooltip.",
              "name": "content"
            },
            {
              "description": "Seta indicativa do tooltip.",
              "name": "arrow"
            }
          ],
          "slots": [
            {
              "description": "Slot para o elemento que aciona a exibição do tooltip.",
              "name": "trigger"
            },
            {
              "description": "Slot para o conteúdo exibido no tooltip.",
              "name": "content"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrTooltipElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "hasFocusableTrigger",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o conteúdo do trigger é focável.\nSe for false, o wrapper do trigger receberá tabindex=\"0\"."
            },
            {
              "kind": "field",
              "name": "isVisible",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado interno de visibilidade do tooltip."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "ariaLabel",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "description": "Nome acessível do popover. Quando omitido, usa o rótulo derivado do estado visual.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "position",
              "type": {
                "text": "TooltipPosition"
              },
              "default": "'top'",
              "description": "Posição do tooltip em relação ao acionador. Valores inválidos usam `top`.",
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "type",
              "type": {
                "text": "TooltipType"
              },
              "default": "'standard'",
              "description": "Tipo do tooltip: 'standard' (simples) ou 'popover' (mais rico, com fechamento por interação). Valores inválidos usam `standard`.",
              "parsedType": {
                "text": "'standard' | 'popover'"
              }
            },
            {
              "kind": "field",
              "name": "interaction",
              "type": {
                "text": "'hover' | 'click'"
              },
              "default": "'hover'",
              "description": "Modo de interação para exibição do tooltip: 'hover' ou 'click'. Valores inválidos usam `hover`.",
              "parsedType": {
                "text": "'hover' | 'click'"
              }
            },
            {
              "kind": "field",
              "name": "density",
              "type": {
                "text": "TooltipDensity"
              },
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "TooltipState"
              },
              "default": "'info'",
              "description": "Estado visual do tooltip: 'info', 'warning', 'error', 'danger' ou 'success'. Valores inválidos usam `info`.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success' | 'error'"
              }
            },
            {
              "kind": "field",
              "name": "isAutoVisible",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Exibe automaticamente sem interação quando true; caso contrário, depende do acionador."
            },
            {
              "kind": "field",
              "name": "matchTriggerWidth",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Faz o conteúdo acompanhar a largura do acionador enquanto estiver visível.\nO valor padrão `false` preserva a largura determinada pelo conteúdo."
            },
            {
              "kind": "field",
              "name": "showDelay",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Atraso em milissegundos antes de exibir. Valores negativos usam `0`.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "hideDelay",
              "type": {
                "text": "number | null"
              },
              "default": "null",
              "description": "Atraso em milissegundos antes de ocultar. Valores negativos usam `0`.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveShowDelay",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveHideDelay",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectivePosition",
              "type": {
                "text": "TooltipPosition"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveType",
              "type": {
                "text": "TooltipType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'standard' | 'popover'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveInteraction",
              "type": {
                "text": "'hover' | 'click'"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'hover' | 'click'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "TooltipState"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success' | 'error'"
              }
            },
            {
              "kind": "method",
              "name": "handleVisibilityChange",
              "parameters": [
                {
                  "name": "visible",
                  "type": {
                    "text": "boolean"
                  },
                  "description": "boolean"
                }
              ],
              "description": "Watcher para monitorar alterações na propriedade `isVisible`.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "handleMatchTriggerWidthChange",
              "description": "Recalcula a superfície visível quando a política de largura muda."
            },
            {
              "kind": "method",
              "name": "handleFocusIn",
              "description": "Exibe o tooltip quando o acionador recebe foco."
            },
            {
              "kind": "method",
              "name": "handleFocusOut",
              "description": "Oculta o tooltip quando o acionador perde foco."
            },
            {
              "kind": "method",
              "name": "handleKeyDown",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "KeyboardEvent"
                  }
                }
              ],
              "description": "Fecha com Escape enquanto o tooltip estiver visível."
            },
            {
              "kind": "method",
              "name": "setTriggerElement",
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement | null"
                  }
                }
              ],
              "description": "Define um trigger externo para o tooltip."
            },
            {
              "kind": "method",
              "name": "showTooltip",
              "description": "Exibe o tooltip programaticamente."
            },
            {
              "kind": "method",
              "name": "hideTooltip",
              "description": "Oculta o tooltip programaticamente."
            },
            {
              "kind": "method",
              "name": "show",
              "description": "Exibe o tooltip programaticamente (alias para `showTooltip`)."
            },
            {
              "kind": "method",
              "name": "hide",
              "description": "Oculta o tooltip programaticamente (alias para `hideTooltip`)."
            },
            {
              "kind": "field",
              "name": "floatingManager",
              "type": {
                "text": "FloatingUIManager | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "cleanupBlockingSurfaceDismissal",
              "type": {
                "text": "() => void | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "visibilityKeydownAttached",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "syncVisibilityListeners",
              "privacy": "private",
              "parameters": [
                {
                  "name": "visible",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "detachVisibilityListeners",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "triggerElement",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento que aciona a exibição do tooltip.\nEste elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele."
            },
            {
              "kind": "field",
              "name": "externalTriggerElement",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Trigger externo opcional para posicionamento e interações."
            },
            {
              "kind": "field",
              "name": "interactionTarget",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento que atualmente possui os listeners de interação."
            },
            {
              "kind": "field",
              "name": "contentElement",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento que contém o conteúdo do tooltip.\nEste elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele."
            },
            {
              "kind": "field",
              "name": "arrowElement",
              "type": {
                "text": "HTMLDivElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Elemento que representa a seta do tooltip.\nEste elemento é utilizado para indicar a direção do tooltip em relação ao elemento acionador."
            },
            {
              "kind": "field",
              "name": "supportsNativePopover",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o browser suporta renderização na top layer via Popover API."
            },
            {
              "kind": "field",
              "name": "showTimer",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Tempo limite para exibir o tooltip automaticamente."
            },
            {
              "kind": "field",
              "name": "hideTimer",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Tempo limite para ocultar o tooltip."
            },
            {
              "kind": "field",
              "name": "outsideClickTimer",
              "type": {
                "text": "ReturnType<typeof setTimeout> | null"
              },
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "fromPointerDown",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Indica se o tooltip foi acionado por um clique do mouse.\nIsso é utilizado para evitar conflito com o acionamento por foco."
            },
            {
              "kind": "method",
              "name": "getPositionReferenceElement",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "HTMLElement | null"
                }
              },
              "description": "Retorna o elemento de referência atual para posicionamento."
            },
            {
              "kind": "method",
              "name": "removeTriggerInteractions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement | null"
                  }
                }
              ],
              "description": "Remove listeners de interação do elemento de trigger atual."
            },
            {
              "kind": "method",
              "name": "addTriggerInteractions",
              "privacy": "private",
              "parameters": [
                {
                  "name": "target",
                  "type": {
                    "text": "HTMLElement"
                  }
                }
              ],
              "description": "Adiciona listeners de interação ao elemento de trigger atual."
            },
            {
              "kind": "method",
              "name": "isFocusable",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "element",
                  "type": {
                    "text": "HTMLElement"
                  },
                  "description": "HTMLElement a ser verificado"
                }
              ],
              "description": "Verifica se um elemento HTML é focável."
            },
            {
              "kind": "field",
              "name": "handleTriggerSlotChange",
              "privacy": "private",
              "description": "Manipula a mudança no slot do trigger para verificar se há conteúdo focável.",
              "parameters": [
                {
                  "description": "Evento de mudança do slot",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "positionTooltip",
              "privacy": "private",
              "description": "Controla a exibição do tooltip.\nQuando o tooltip é exibido, ele é posicionado em relação ao elemento acionador.\nIsso é feito utilizando a biblioteca Floating UI, que calcula a posição ideal do tooltip com base no espaço disponível na tela.\nA função `autoUpdate` é utilizada para atualizar automaticamente a posição do tooltip quando o elemento acionador é movido ou redimensionado."
            },
            {
              "kind": "method",
              "name": "cleanupPositioning",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "syncPopoverState",
              "privacy": "private",
              "description": "Mantém a top layer nativa e o posicionamento sincronizados com isVisible."
            },
            {
              "kind": "method",
              "name": "setupInteractions",
              "privacy": "private",
              "description": "Define os eventos de interação do tooltip.\nOs eventos de interação incluem mouseenter, mouseleave, focus e blur.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "toggleContent",
              "privacy": "private",
              "description": "Alterna a exibição do tooltip.\nSe o tooltip estiver visível, ele será ocultado.\nSe o tooltip estiver oculto, ele será exibido."
            },
            {
              "kind": "field",
              "name": "showContent",
              "privacy": "private",
              "description": "Processa as ações relacionadas à exibição do tooltip.\nIsso inclui exibir o tooltip e iniciar o tempo limite de ocultação automática.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "field",
              "name": "hideContent",
              "privacy": "private",
              "description": "Processa as ações relacionadas ao fechamento do tooltip.\nIsso inclui ocultar o tooltip e limpar o tempo limite de ocultação automática.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "setShowTimer",
              "privacy": "private",
              "description": "Configura o tempo limite para exibir o tooltip automaticamente.\nO tempo limite é definido pelo valor da propriedade `showDelay`."
            },
            {
              "kind": "method",
              "name": "clearShowTimer",
              "privacy": "private",
              "description": "Limpa o tempo limite de exibição automática do tooltip."
            },
            {
              "kind": "method",
              "name": "setHideTimer",
              "privacy": "private",
              "description": "Configura o tempo limite para ocultar o tooltip automaticamente.\nO tempo limite é definido pelo valor da propriedade `hideDelay`."
            },
            {
              "kind": "method",
              "name": "clearHideTimer",
              "privacy": "private",
              "description": "Limpa o tempo limite de ocultação automática do tooltip."
            },
            {
              "kind": "method",
              "name": "clearOutsideClickTimer",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleOutsideClick",
              "privacy": "private",
              "description": "Lida com cliques fora do tooltip.\nÉ utilizado para o tooltip do tipo 'popover'.",
              "parameters": [
                {
                  "description": "MouseEvent",
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Determina o mapeamento de classes CSS do componente."
            },
            {
              "kind": "method",
              "name": "getTriggerCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Determina o mapeamento de classes CSS do trigger."
            },
            {
              "kind": "method",
              "name": "getContentCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Determina o mapeamento de classes CSS do conteúdo."
            },
            {
              "kind": "method",
              "name": "getArrowCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Determina o mapeamento de classes CSS da seta."
            },
            {
              "kind": "method",
              "name": "getAccessibilityLabel",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "description": "Determina o texto de acessibilidade baseado no estado do tooltip."
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Renderiza o componente.\nEste método é responsável por gerar o conteúdo HTML do componente.\nEle utiliza a função `h` do Stencil para criar elementos JSX.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "aria-label",
              "fieldName": "ariaLabel",
              "default": "null",
              "description": "Nome acessível do popover. Quando omitido, usa o rótulo derivado do estado visual.",
              "type": {
                "text": "string | null"
              },
              "parsedType": {
                "text": "string"
              }
            },
            {
              "name": "position",
              "fieldName": "position",
              "default": "'top'",
              "description": "Posição do tooltip em relação ao acionador. Valores inválidos usam `top`.",
              "type": {
                "text": "TooltipPosition"
              },
              "parsedType": {
                "text": "'left' | 'right' | 'bottom' | 'top'"
              }
            },
            {
              "name": "type",
              "fieldName": "type",
              "default": "'standard'",
              "description": "Tipo do tooltip: 'standard' (simples) ou 'popover' (mais rico, com fechamento por interação). Valores inválidos usam `standard`.",
              "type": {
                "text": "TooltipType"
              },
              "parsedType": {
                "text": "'standard' | 'popover'"
              }
            },
            {
              "name": "interaction",
              "fieldName": "interaction",
              "default": "'hover'",
              "description": "Modo de interação para exibição do tooltip: 'hover' ou 'click'. Valores inválidos usam `hover`.",
              "type": {
                "text": "'hover' | 'click'"
              },
              "parsedType": {
                "text": "'hover' | 'click'"
              }
            },
            {
              "name": "density",
              "fieldName": "density",
              "default": "'medium'",
              "description": "Define a densidade visual do componente.\n\n- `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).\n- `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.\n- `large`: Baixa densidade (componente maior, mais espaçamento e altura).\n\nValores inválidos usam `medium`.",
              "type": {
                "text": "TooltipDensity"
              },
              "parsedType": {
                "text": "'small' | 'medium' | 'large'"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "default": "'info'",
              "description": "Estado visual do tooltip: 'info', 'warning', 'error', 'danger' ou 'success'. Valores inválidos usam `info`.",
              "type": {
                "text": "TooltipState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success' | 'error'"
              }
            },
            {
              "name": "is-auto-visible",
              "fieldName": "isAutoVisible",
              "default": "false",
              "description": "Exibe automaticamente sem interação quando true; caso contrário, depende do acionador."
            },
            {
              "name": "match-trigger-width",
              "fieldName": "matchTriggerWidth",
              "default": "false",
              "description": "Faz o conteúdo acompanhar a largura do acionador enquanto estiver visível.\nO valor padrão `false` preserva a largura determinada pelo conteúdo."
            },
            {
              "name": "show-delay",
              "fieldName": "showDelay",
              "default": "null",
              "description": "Atraso em milissegundos antes de exibir. Valores negativos usam `0`.",
              "type": {
                "text": "number | null"
              },
              "parsedType": {
                "text": "number"
              }
            },
            {
              "name": "hide-delay",
              "fieldName": "hideDelay",
              "default": "null",
              "description": "Atraso em milissegundos antes de ocultar. Valores negativos usam `0`.",
              "type": {
                "text": "number | null"
              },
              "parsedType": {
                "text": "number"
              }
            }
          ],
          "tagName": "br-tooltip",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do tooltip."
            },
            {
              "name": "trigger",
              "description": "Área do acionador do tooltip."
            },
            {
              "name": "content",
              "description": "Área de conteúdo do tooltip."
            },
            {
              "name": "arrow",
              "description": "Seta indicativa do tooltip."
            }
          ],
          "events": [
            {
              "name": "brDidOpen",
              "type": {
                "text": "EventEmitter<{ id: string; visible: boolean }>"
              },
              "description": "Emitido quando o tooltip abre."
            },
            {
              "name": "brDidClose",
              "type": {
                "text": "EventEmitter<{ id: string; visible: boolean }>"
              },
              "description": "Emitido quando o tooltip fecha."
            }
          ],
          "customElement": true,
          "category": "Feedback",
          "categories": [
            "Feedback",
            "Sobreposições"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Tooltip",
          "declaration": {
            "name": "Tooltip",
            "module": "components/tooltip.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-tooltip",
          "declaration": {
            "name": "Tooltip",
            "module": "components/tooltip.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/upload.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-upload` gerencia a seleção e envio de arquivos em formulários, com suporte a arrastar e soltar (drag and drop).\n\nDefina os tipos aceitos em `accept` e permita múltiplos arquivos com `multiple`. Use a lista de arquivos para exibir o progresso e o botão de exclusão.\n\n```html\n<br-upload label=\"Enviar documento\" accept=\".pdf,.png,.jpg\" multiple></br-upload>\n```\n\nEm formulários HTML, o componente integra-se via `ElementInternals`, enviando a lista de arquivos no submit nativo.\n\n### Quando usar\n\n- Anexar comprovantes, fotos ou documentos em formulários.\n\n### Quando evitar\n\n- Campo de texto ou URL de arquivo remoto: use `br-input`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/upload?tab=designer).",
          "name": "Upload",
          "cssParts": [
            {
              "description": "Wrapper principal do upload.",
              "name": "container"
            },
            {
              "description": "Rótulo do campo de upload.",
              "name": "label"
            },
            {
              "description": "Elemento input de arquivo.",
              "name": "input"
            },
            {
              "description": "Botão de seleção de arquivo.",
              "name": "button"
            },
            {
              "description": "Texto auxiliar do upload.",
              "name": "helper"
            },
            {
              "description": "Botão de remoção de arquivo.",
              "name": "remove-button"
            },
            {
              "description": "Lista de arquivos selecionados.",
              "name": "file-list"
            },
            {
              "description": "Contêiner da mensagem de validação.",
              "name": "feedback"
            },
            {
              "description": "Estado e progresso do envio assíncrono.",
              "name": "loading"
            }
          ],
          "slots": [
            {
              "description": "Conteúdo personalizado do botão de upload, com precedência sobre `buttonLabel` (use a prop para texto simples).",
              "name": "default"
            },
            {
              "description": "Permite customizar a área de listagem de arquivos. Se utilizado, substitui a lista padrão gerada pelo componente.",
              "name": "upload-list"
            },
            {
              "description": "Rótulo customizado do upload. Quando utilizado, a prop `label` é ignorada.",
              "name": "label"
            },
            {
              "description": "Texto auxiliar exibido abaixo da superfície de seleção.",
              "name": "helper"
            },
            {
              "description": "Mensagem de validação, normalmente um `br-message`.",
              "name": "feedback"
            },
            {
              "description": "Conteúdo exibido enquanto o handler fornecido pela aplicação envia um arquivo.",
              "name": "loading"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "fileKeys",
              "privacy": "private",
              "readonly": true,
              "default": "new WeakMap<object, string>()"
            },
            {
              "kind": "field",
              "name": "fileKeySequence",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "elementInternals",
              "type": {
                "text": "ElementInternals"
              }
            },
            {
              "kind": "method",
              "name": "formDisabledCallback",
              "parameters": [
                {
                  "name": "disabled",
                  "type": {
                    "text": "boolean"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "formResetCallback"
            },
            {
              "kind": "method",
              "name": "formStateRestoreCallback",
              "parameters": [
                {
                  "name": "_state",
                  "type": {
                    "text": "string | File | FormData | null"
                  }
                }
              ]
            },
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrUploadElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "allFilesCached",
              "type": {
                "text": "{ file: File | IUploadFile; isNew: boolean }[]"
              },
              "default": "[]",
              "description": "Cache dos arquivos combinados para renderização unificada (evita recálculos desnecessários)."
            },
            {
              "kind": "field",
              "name": "file",
              "type": {
                "text": "File | null"
              },
              "default": "null",
              "description": "Arquivo único quando a seleção não é múltipla."
            },
            {
              "kind": "field",
              "name": "filesSelected",
              "type": {
                "text": "FileList | null"
              },
              "default": "null",
              "description": "Evento emitido quando um arquivo é selecionado.\nEste estado armazena os arquivos que foram selecionados pelo usuário."
            },
            {
              "kind": "field",
              "name": "formDisabled",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "hasFeedbackSlot",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "dragging",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "customValidationMessage",
              "type": {
                "text": "string"
              },
              "default": "''"
            },
            {
              "kind": "field",
              "name": "validatorMessage",
              "type": {
                "text": "string | null"
              },
              "default": "null",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "isValidating",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "field",
              "name": "uploading",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "uploadError",
              "type": {
                "text": "string"
              },
              "privacy": "private",
              "default": "''"
            },
            {
              "kind": "field",
              "name": "parsedUploadFiles",
              "type": {
                "text": "IUploadFile[]"
              },
              "default": "[]",
              "description": "Estado interno para armazenar os arquivos processados da prop uploadFiles."
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "name",
              "type": {
                "text": "string | undefined"
              },
              "description": "Nome do campo enviado no formulário.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "accept",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Tipos de arquivo permitidos (ex.: 'image/*')."
            },
            {
              "kind": "field",
              "name": "capture",
              "type": {
                "text": "'' | 'user' | 'environment' | undefined"
              },
              "description": "Sugere a câmera usada na captura de imagem ou vídeo. Valores inválidos são ignorados.\nO navegador pode ignorar a preferência conforme dispositivo e permissões.",
              "parsedType": {
                "text": "'' | 'user' | 'environment'"
              }
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "default": "'Envio de arquivo'",
              "description": "Rótulo exibido acima do botão de upload."
            },
            {
              "kind": "field",
              "name": "buttonLabel",
              "type": {
                "text": "string | undefined"
              },
              "description": "Texto do botão de seleção. Quando omitido, usa \"Selecione o arquivo\" ou,\ncom `multiple`, \"Selecione o(s) arquivo(s)\". O slot padrão tem precedência.",
              "parsedType": {
                "text": "string"
              }
            },
            {
              "kind": "field",
              "name": "uploadFiles",
              "type": {
                "text": "string | IUploadFile[]"
              },
              "default": "[]",
              "description": "Lista de arquivos já enviados (para edição ou pré-visualização).\nPode ser uma string JSON ou um array de objetos IUploadFile. Cada item deve ter `name` não vazio e `size` numérico não negativo opcional; itens inválidos são ignorados.",
              "deprecated": "Use `existingFiles`.",
              "parsedType": {
                "text": "string | { name: string, size: number }[]"
              },
              "example": "```html\n<!-- Compatibilidade legada; prefira existing-files. -->\n<br-upload upload-files='[{\"name\":\"relatorio.pdf\",\"size\":204800}]'></br-upload>\n```"
            },
            {
              "kind": "field",
              "name": "existingFiles",
              "type": {
                "text": "string | IUploadFile[] | undefined"
              },
              "description": "Arquivos já existentes. Quando informada, tem precedência sobre `uploadFiles`.\nCada item deve ter `name` não vazio e `size` numérico não negativo opcional.\nUse JSON no atributo HTML ou um array por property binding.",
              "parsedType": {
                "text": "string | { name: string, size: number }[]"
              },
              "example": "```js\nconst upload = document.querySelector('br-upload');\nupload.existingFiles = [{ name: 'relatorio.pdf', size: 204800 }];\n```"
            },
            {
              "kind": "field",
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "kind": "field",
              "name": "required",
              "type": {
                "text": "boolean"
              },
              "readonly": true,
              "default": "false",
              "description": "Se verdadeiro, o input de upload é obrigatório antes que o formulário possa ser enviado."
            },
            {
              "kind": "field",
              "name": "state",
              "type": {
                "text": "BrFeedbackState"
              },
              "description": "Estado visual: 'info', 'warning', 'danger' ou 'success'. Valores inválidos não aplicam estado.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "feedbackState",
              "type": {
                "text": "BrFeedbackState | undefined"
              },
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "multiple",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Indica se o componente permite a seleção de múltiplos arquivos.\nQuando definido como `true`, o usuário pode selecionar mais de um arquivo para upload."
            },
            {
              "kind": "field",
              "name": "minFiles",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Quantidade mínima de arquivos, incluindo arquivos já enviados. Deve ser um inteiro não negativo; valores inválidos usam `0`."
            },
            {
              "kind": "field",
              "name": "maxFiles",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Quantidade máxima de arquivos. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam `0`."
            },
            {
              "kind": "field",
              "name": "maxFileSize",
              "type": {
                "text": "number"
              },
              "default": "0",
              "description": "Tamanho máximo permitido para cada arquivo, em bytes. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam `0`."
            },
            {
              "kind": "field",
              "name": "validator",
              "type": {
                "text": "UploadValidator | undefined"
              },
              "readonly": true,
              "description": "Regra síncrona ou assíncrona aplicada à lista de arquivos selecionados.\nO componente valida `File[]`, mas não envia arquivos nem interpreta a\nresposta do servidor.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst upload = document.querySelector('br-upload');\nupload.validator = (files) =>\n  files.every((file) => file.size <= 5_000_000) ? null : 'Cada arquivo deve ter até 5 MB';\n```"
            },
            {
              "kind": "field",
              "name": "uploadHandler",
              "type": {
                "text": "UploadHandler | undefined"
              },
              "readonly": true,
              "description": "Função assíncrona opcional fornecida pela aplicação para enviar cada arquivo.\n\nO componente fornece o arquivo, um `AbortSignal` e uma função de progresso,\nmas não conhece endpoint, autenticação nem formato de resposta.",
              "parsedType": {
                "text": "{  }"
              },
              "example": "```js\nconst upload = document.querySelector('br-upload');\nupload.uploadHandler = ({ file, signal, onProgress }) =>\n  enviarArquivo({ file, signal, onProgress });\n```"
            },
            {
              "kind": "field",
              "name": "files",
              "type": {
                "text": "FileList | null"
              },
              "default": "null",
              "description": "Lista de arquivos selecionados, equivalente a `HTMLInputElement.files`."
            },
            {
              "kind": "method",
              "name": "filesHandler",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "FileList | null"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "uploadFilesHandler",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string | IUploadFile[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "existingFilesHandler",
              "privacy": "protected",
              "parameters": [
                {
                  "name": "newValue",
                  "optional": true,
                  "type": {
                    "text": "string | IUploadFile[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "parseExistingFiles",
              "privacy": "private",
              "parameters": [
                {
                  "name": "newValue",
                  "type": {
                    "text": "string | IUploadFile[]"
                  }
                },
                {
                  "name": "propertyName",
                  "type": {
                    "text": "'existingFiles' | 'uploadFiles'"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "normalizeExistingFiles",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "IUploadFile[]"
                }
              },
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "unknown"
                  }
                },
                {
                  "name": "propertyName",
                  "type": {
                    "text": "'existingFiles' | 'uploadFiles'"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "filesSelectedHandler",
              "privacy": "protected"
            },
            {
              "kind": "method",
              "name": "checkValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do componente for válido, caso contrário `false`.\nSe o componente for inválido, dispara um evento 'invalid'."
            },
            {
              "kind": "method",
              "name": "reportValidity",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna `true` se o valor do componente for válido, caso contrário `false`.\nSe for inválido, exibe a mensagem de erro padrão do navegador."
            },
            {
              "kind": "method",
              "name": "setCustomValidity",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Define uma mensagem de validação customizada para o upload.\nSe a mensagem for uma string vazia, o erro customizado é limpo."
            },
            {
              "kind": "method",
              "name": "validate",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Executa o validator do upload e retorna se a lista atual é válida."
            },
            {
              "kind": "method",
              "name": "getValidationState",
              "return": {
                "type": {
                  "text": "Promise<FormValidationState>"
                }
              },
              "description": "Retorna um snapshot serializável da Constraint Validation API."
            },
            {
              "kind": "method",
              "name": "cancelUpload",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Cancela o envio atual iniciado pelo `uploadHandler`."
            },
            {
              "kind": "method",
              "name": "updateAllFilesCached",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "emitFilesChange",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "nativeInput",
              "type": {
                "text": "HTMLInputElement | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "validationRunId",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "0"
            },
            {
              "kind": "field",
              "name": "uploadController",
              "type": {
                "text": "AbortController | undefined"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "initialUploadFiles",
              "type": {
                "text": "IUploadFile[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "method",
              "name": "syncFormState",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "void"
                }
              }
            },
            {
              "kind": "method",
              "name": "isDisabled",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "cancelPendingUpload",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "uploadSelectedFiles",
              "privacy": "private",
              "parameters": [
                {
                  "name": "files",
                  "type": {
                    "text": "File[]"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getFileDataForForm",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "FormData | null"
                }
              }
            },
            {
              "kind": "method",
              "name": "updateValidity",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isAcceptedFile",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "parameters": [
                {
                  "name": "file",
                  "type": {
                    "text": "File"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "getCssClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              }
            },
            {
              "kind": "field",
              "name": "effectiveCapture",
              "type": {
                "text": "'' | 'user' | 'environment' | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'' | 'user' | 'environment'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveState",
              "type": {
                "text": "BrFeedbackState | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveMinFiles",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveMaxFiles",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "effectiveMaxFileSize",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleRemoveFileSelection",
              "privacy": "private",
              "parameters": [
                {
                  "name": "file",
                  "type": {
                    "text": "File | IUploadFile"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "renderFilesUploaded",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "getFileKey",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "parameters": [
                {
                  "name": "file",
                  "type": {
                    "text": "File | IUploadFile"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "onInputChange",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "File[]"
                }
              },
              "parameters": [
                {
                  "name": "files",
                  "type": {
                    "text": "FileList"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDrop",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "DragEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDragOver",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "DragEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDragEnter",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "DragEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleDragLeave",
              "privacy": "private",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "DragEvent"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleFileSelection",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "handleInputChange",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleNativeInput",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "handleNativeCancel",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "renderUploadStatus",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderUploadError",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "renderFeedback",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "name",
              "fieldName": "name",
              "description": "Nome do campo enviado no formulário.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "accept",
              "fieldName": "accept",
              "default": "''",
              "description": "Tipos de arquivo permitidos (ex.: 'image/*')."
            },
            {
              "name": "capture",
              "fieldName": "capture",
              "description": "Sugere a câmera usada na captura de imagem ou vídeo. Valores inválidos são ignorados.\nO navegador pode ignorar a preferência conforme dispositivo e permissões.",
              "type": {
                "text": "'' | 'user' | 'environment'"
              },
              "parsedType": {
                "text": "'' | 'user' | 'environment'"
              }
            },
            {
              "name": "label",
              "fieldName": "label",
              "default": "'Envio de arquivo'",
              "description": "Rótulo exibido acima do botão de upload."
            },
            {
              "name": "button-label",
              "fieldName": "buttonLabel",
              "description": "Texto do botão de seleção. Quando omitido, usa \"Selecione o arquivo\" ou,\ncom `multiple`, \"Selecione o(s) arquivo(s)\". O slot padrão tem precedência.",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "upload-files",
              "fieldName": "uploadFiles",
              "default": "[]",
              "description": "Lista de arquivos já enviados (para edição ou pré-visualização).\nPode ser uma string JSON ou um array de objetos IUploadFile. Cada item deve ter `name` não vazio e `size` numérico não negativo opcional; itens inválidos são ignorados.",
              "type": {
                "text": "string | IUploadFile[]"
              },
              "parsedType": {
                "text": "string | { name: string, size: number }[]"
              }
            },
            {
              "name": "existing-files",
              "fieldName": "existingFiles",
              "description": "Arquivos já existentes. Quando informada, tem precedência sobre `uploadFiles`.\nCada item deve ter `name` não vazio e `size` numérico não negativo opcional.\nUse JSON no atributo HTML ou um array por property binding.",
              "type": {
                "text": "string | IUploadFile[]"
              },
              "parsedType": {
                "text": "string | { name: string, size: number }[]"
              }
            },
            {
              "name": "disabled",
              "fieldName": "disabled",
              "default": "false",
              "description": "Desabilita a interação com o componente."
            },
            {
              "name": "required",
              "fieldName": "required",
              "default": "false",
              "description": "Se verdadeiro, o input de upload é obrigatório antes que o formulário possa ser enviado.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "state",
              "fieldName": "state",
              "description": "Estado visual: 'info', 'warning', 'danger' ou 'success'. Valores inválidos não aplicam estado.",
              "type": {
                "text": "BrFeedbackState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "feedback-state",
              "fieldName": "feedbackState",
              "description": "Estado de feedback. Quando informado, tem precedência sobre `state`.",
              "type": {
                "text": "BrFeedbackState"
              },
              "parsedType": {
                "text": "'info' | 'warning' | 'danger' | 'success'"
              }
            },
            {
              "name": "multiple",
              "fieldName": "multiple",
              "default": "false",
              "description": "Indica se o componente permite a seleção de múltiplos arquivos.\nQuando definido como `true`, o usuário pode selecionar mais de um arquivo para upload.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "name": "min-files",
              "fieldName": "minFiles",
              "default": "0",
              "description": "Quantidade mínima de arquivos, incluindo arquivos já enviados. Deve ser um inteiro não negativo; valores inválidos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max-files",
              "fieldName": "maxFiles",
              "default": "0",
              "description": "Quantidade máxima de arquivos. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "max-file-size",
              "fieldName": "maxFileSize",
              "default": "0",
              "description": "Tamanho máximo permitido para cada arquivo, em bytes. Zero significa sem limite. Deve ser um inteiro não negativo; valores inválidos usam `0`.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "validator",
              "fieldName": "validator",
              "description": "Regra síncrona ou assíncrona aplicada à lista de arquivos selecionados.\nO componente valida `File[]`, mas não envia arquivos nem interpreta a\nresposta do servidor.",
              "type": {
                "text": "UploadValidator"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "upload-handler",
              "fieldName": "uploadHandler",
              "description": "Função assíncrona opcional fornecida pela aplicação para enviar cada arquivo.\n\nO componente fornece o arquivo, um `AbortSignal` e uma função de progresso,\nmas não conhece endpoint, autenticação nem formato de resposta.",
              "type": {
                "text": "UploadHandler"
              },
              "parsedType": {
                "text": "{  }"
              }
            },
            {
              "name": "files",
              "fieldName": "files",
              "default": "null",
              "description": "Lista de arquivos selecionados, equivalente a `HTMLInputElement.files`.",
              "type": {
                "text": "FileList | null"
              }
            }
          ],
          "tagName": "br-upload",
          "status": "stable",
          "csspart": [
            {
              "name": "container",
              "description": "Wrapper principal do upload."
            },
            {
              "name": "label",
              "description": "Rótulo do campo de upload."
            },
            {
              "name": "input",
              "description": "Elemento input de arquivo."
            },
            {
              "name": "button",
              "description": "Botão de seleção de arquivo."
            },
            {
              "name": "helper",
              "description": "Texto auxiliar do upload."
            },
            {
              "name": "remove-button",
              "description": "Botão de remoção de arquivo."
            },
            {
              "name": "file-list",
              "description": "Lista de arquivos selecionados."
            },
            {
              "name": "feedback",
              "description": "Contêiner da mensagem de validação."
            },
            {
              "name": "loading",
              "description": "Estado e progresso do envio assíncrono."
            }
          ],
          "events": [
            {
              "name": "selectedFilesChange",
              "type": {
                "text": "EventEmitter<FileList>"
              },
              "description": "Emitido quando a lista de arquivos selecionados muda.",
              "deprecated": "Use `input`/`change` e leia `event.target.files`."
            },
            {
              "name": "brRemove",
              "type": {
                "text": "EventEmitter<IUploadFile>"
              },
              "description": "Evento emitido quando um arquivo da lista `uploadFiles` (externos) é removido pelo usuário.\nO objeto emitido contém os dados do arquivo removido.",
              "deprecated": "Use `brUploadRemove`."
            },
            {
              "name": "brUploadRemove",
              "type": {
                "text": "EventEmitter<IUploadFile>"
              },
              "description": "Evento emitido quando um arquivo existente é removido."
            },
            {
              "name": "brUploadCancel",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Emitido quando o usuário fecha a caixa de seleção de arquivos sem escolher nada."
            },
            {
              "name": "brUploadValidationChange",
              "type": {
                "text": "EventEmitter<FormValidationChangeDetail>"
              },
              "description": "Emitido ao iniciar e concluir a validação customizada.\nO `detail` contém `validating`, `valid` e `message`."
            },
            {
              "name": "brUploadStart",
              "type": {
                "text": "EventEmitter<UploadFileDetail>"
              },
              "description": "Emitido antes de o `uploadHandler` processar um arquivo."
            },
            {
              "name": "brUploadProgress",
              "type": {
                "text": "EventEmitter<UploadProgressDetail>"
              },
              "description": "Emitido quando o `uploadHandler` informa o progresso de um arquivo."
            },
            {
              "name": "brUploadSuccess",
              "type": {
                "text": "EventEmitter<UploadFileDetail>"
              },
              "description": "Emitido quando o `uploadHandler` conclui um arquivo."
            },
            {
              "name": "brUploadError",
              "type": {
                "text": "EventEmitter<UploadErrorDetail>"
              },
              "description": "Emitido quando o `uploadHandler` falha ao enviar um arquivo."
            }
          ],
          "customElement": true,
          "category": "Formulários",
          "categories": [
            "Formulários",
            "Dados"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Upload",
          "declaration": {
            "name": "Upload",
            "module": "components/upload.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-upload",
          "declaration": {
            "name": "Upload",
            "module": "components/upload.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/wizard.js",
      "declarations": [
        {
          "kind": "class",
          "description": "O `br-wizard` conduz fluxos passo a passo divididos em telas sequenciais com botões de navegação e barra de progresso.\n\nInsira cada tela com `br-wizard-panel` no slot padrão. Acompanhe a mudança de etapas pelo evento `brStepChange`.\n\n```html\n<br-wizard>\n  <br-wizard-panel title-text=\"Identificação\">\n    <p>Primeira etapa do cadastro.</p>\n  </br-wizard-panel>\n  <br-wizard-panel title-text=\"Endereço\">\n    <p>Segunda etapa do cadastro.</p>\n  </br-wizard-panel>\n  <br-wizard-panel title-text=\"Confirmação\">\n    <p>Revise os dados antes de enviar.</p>\n  </br-wizard-panel>\n</br-wizard>\n```\n\n### Quando usar\n\n- Formulários extensos com dependência lógica entre etapas.\n\n### Quando evitar\n\n- Apenas indicar o status de um pedido já realizado: use `br-step`.\n- Conteúdos independentes onde a ordem de preenchimento é livre: use `br-tab`.\n\nConsulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/wizard?tab=designer).",
          "name": "Wizard",
          "cssParts": [
            {
              "description": "Área do formulário do wizard.",
              "name": "form"
            },
            {
              "description": "Painel ativo do wizard.",
              "name": "panel"
            },
            {
              "description": "Área de progresso do wizard.",
              "name": "progress"
            },
            {
              "description": "Conteúdo do painel ativo.",
              "name": "content"
            },
            {
              "description": "Área de botões de navegação.",
              "name": "buttons"
            }
          ],
          "slots": [
            {
              "description": "Slot para os painéis de etapa (br-wizard-panel) do wizard.",
              "name": "default"
            },
            {
              "description": "Conteúdo customizado do botão de cancelar. Quando utilizado, o texto padrão \"Cancelar\" é substituído.",
              "name": "cancel-button"
            },
            {
              "description": "Conteúdo customizado do botão de avançar/concluir. Quando utilizado, os textos padrão \"Avançar\" e \"Concluir\" são substituídos.",
              "name": "next-button"
            },
            {
              "description": "Conteúdo customizado do botão de voltar. Quando utilizado, o texto padrão \"Voltar\" é substituído.",
              "name": "previous-button"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrWizardElement"
              },
              "description": "Referência ao elemento host do componente.\nUtilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente."
            },
            {
              "kind": "field",
              "name": "ariaLiveMessage",
              "type": {
                "text": "string"
              },
              "default": "''",
              "description": "Mensagem de status para leitores de tela (aria-live)"
            },
            {
              "kind": "field",
              "name": "collapsed",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado collapsed para recolher/expandir barra de progresso (mobile)"
            },
            {
              "kind": "field",
              "name": "currentStep",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Etapa atual sendo exibida.\nGerenciado internamente pelo componente."
            },
            {
              "kind": "field",
              "name": "isMobile",
              "type": {
                "text": "boolean"
              },
              "default": "false",
              "description": "Estado mobile para detecção responsiva"
            },
            {
              "kind": "field",
              "name": "panels",
              "type": {
                "text": "HTMLElement[]"
              },
              "default": "[]",
              "description": "Lista de painéis filhos (br-wizard-panel).\nDescobertos automaticamente via slot."
            },
            {
              "kind": "field",
              "name": "step",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Etapa atual (numeração 1-indexada). Reflete para atributo step."
            },
            {
              "kind": "field",
              "name": "initialStep",
              "type": {
                "text": "number"
              },
              "default": "1",
              "description": "Índice da etapa inicial do wizard.\nDefine qual etapa será exibida ao carregar o componente.\nA numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\nValores inválidos usam 1.",
              "deprecated": "Use `initialIndex`."
            },
            {
              "kind": "field",
              "name": "initialIndex",
              "type": {
                "text": "number | undefined"
              },
              "description": "Índice inicial zero-based. Quando informado, tem precedência sobre `initialStep`; valores inválidos usam 0.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "currentIndex",
              "type": {
                "text": "number | undefined"
              },
              "description": "Índice atual zero-based para controle externo opcional.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "orientation",
              "type": {
                "text": "BrOrientation"
              },
              "default": "'horizontal'",
              "description": "Orientação visual do wizard.\nDefine se os indicadores de progresso serão exibidos horizontalmente ou verticalmente.",
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "progressionType",
              "type": {
                "text": "BrProgressionType"
              },
              "default": "'nonlinear'",
              "description": "Tipo de progressão entre etapas.\n- `linear`: O usuário deve completar cada etapa sequencialmente. Não é possível pular etapas futuras.\n- `nonlinear`: O usuário pode navegar livremente entre qualquer etapa.",
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "kind": "field",
              "name": "customId",
              "type": {
                "text": "string"
              },
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId()."
            },
            {
              "kind": "field",
              "name": "effectiveOrientation",
              "type": {
                "text": "BrOrientation"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveProgressionType",
              "type": {
                "text": "BrProgressionType"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "kind": "field",
              "name": "effectiveInitialIndex",
              "type": {
                "text": "number | undefined"
              },
              "privacy": "private",
              "readonly": true,
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "effectiveInitialStep",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "handleProgressionTypeChange",
              "description": "Observa mudanças no tipo de progressão.\nAtualiza a navegação dos painéis quando muda entre linear/nonlinear."
            },
            {
              "kind": "method",
              "name": "handleInitialStepChange",
              "description": "Observa mudanças na etapa inicial.\nReinicializa o wizard quando a prop initialStep é alterada externamente."
            },
            {
              "kind": "method",
              "name": "handleInitialIndexChange"
            },
            {
              "kind": "method",
              "name": "handleCurrentIndexChange",
              "parameters": [
                {
                  "name": "newIndex",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleStepChangeProp",
              "parameters": [
                {
                  "name": "newStep",
                  "optional": true,
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "handleCurrentStepChange",
              "parameters": [
                {
                  "name": "newStep",
                  "type": {
                    "text": "number"
                  },
                  "description": "Nova etapa"
                },
                {
                  "name": "oldStep",
                  "type": {
                    "text": "number"
                  },
                  "description": "Etapa anterior"
                }
              ],
              "description": "Observa mudanças na etapa atual (fonte única de verdade).\nSincroniza com br-step, atualiza painéis, anuncia mudança e move foco."
            },
            {
              "kind": "method",
              "name": "handleSlotChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "Event"
                  },
                  "description": "Evento slotchange"
                }
              ],
              "description": "Detecta quando o slot muda (painéis adicionados/removidos dinamicamente).\nRedescobre os painéis e ressincroniza o estado."
            },
            {
              "kind": "method",
              "name": "handleStepChange",
              "parameters": [
                {
                  "name": "event",
                  "type": {
                    "text": "CustomEvent<{ activeStep: number }>"
                  },
                  "description": "Evento customizado do br-step"
                }
              ],
              "description": "Detecta quando o br-step muda de etapa ativa.\nValida e sincroniza a navegação com o componente interno br-step."
            },
            {
              "kind": "method",
              "name": "nextStep",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Avança para a próxima etapa.\nExecuta validação via evento `brWizardBeforeStepChange` antes de navegar."
            },
            {
              "kind": "method",
              "name": "next",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Avança para a próxima etapa."
            },
            {
              "kind": "method",
              "name": "previousStep",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Volta para a etapa anterior.\nNão executa validação ao retornar."
            },
            {
              "kind": "method",
              "name": "previous",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "description": "Retorna para a etapa anterior."
            },
            {
              "kind": "method",
              "name": "goToStep",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "stepNumber",
                  "type": {
                    "text": "number"
                  },
                  "description": "Número da etapa de destino (numeração começa em 1)"
                }
              ],
              "description": "Navega para uma etapa específica.\nExecuta validação se estiver avançando (etapa alvo > etapa atual)."
            },
            {
              "kind": "method",
              "name": "reset",
              "return": {
                "type": {
                  "text": "Promise<void>"
                }
              },
              "description": "Retorna à primeira etapa do wizard.\nNão executa validação (útil para reiniciar o fluxo)."
            },
            {
              "kind": "method",
              "name": "getCurrentStep",
              "return": {
                "type": {
                  "text": "Promise<HTMLElement | null>"
                }
              },
              "description": "Retorna o elemento HTML do painel ativo no momento."
            },
            {
              "kind": "method",
              "name": "getAllSteps",
              "return": {
                "type": {
                  "text": "Promise<HTMLElement[]>"
                }
              },
              "description": "Retorna todos os painéis do wizard."
            },
            {
              "kind": "method",
              "name": "getStepByIndex",
              "return": {
                "type": {
                  "text": "Promise<HTMLElement | null>"
                }
              },
              "parameters": [
                {
                  "name": "stepNumber",
                  "type": {
                    "text": "number"
                  },
                  "description": "Número da etapa (numeração começa em 1)"
                }
              ],
              "description": "Retorna um painel específico pelo índice."
            },
            {
              "kind": "method",
              "name": "getCurrentStepIndex",
              "return": {
                "type": {
                  "text": "Promise<number>"
                }
              },
              "description": "Retorna o índice (número) da etapa atual.\nA numeração começa em 1 (primeira etapa = 1, segunda = 2, etc)."
            },
            {
              "kind": "method",
              "name": "getTotalSteps",
              "return": {
                "type": {
                  "text": "Promise<number>"
                }
              },
              "description": "Retorna o número total de etapas do wizard."
            },
            {
              "kind": "field",
              "name": "stepRef",
              "type": {
                "text": "HTMLBrStepElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Referência ao componente br-step."
            },
            {
              "kind": "field",
              "name": "isSyncingWithStep",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Flag para evitar loop quando sincronizamos programaticamente com br-step."
            },
            {
              "kind": "field",
              "name": "progressBarSwipe",
              "type": {
                "text": "UniversalSwipe | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Instância do Swipe para gestos mobile na barra de progresso."
            },
            {
              "kind": "field",
              "name": "progressBarRef",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Referência ao elemento DOM da barra de progresso."
            },
            {
              "kind": "field",
              "name": "formRef",
              "type": {
                "text": "HTMLElement | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Referência ao elemento DOM do formulário/painel ativo."
            },
            {
              "kind": "field",
              "name": "ariaLiveTimeout",
              "type": {
                "text": "number | null"
              },
              "privacy": "private",
              "default": "null",
              "description": "Timer para limpar mensagens aria-live.",
              "parsedType": {
                "text": "number"
              }
            },
            {
              "kind": "field",
              "name": "ARIA_LIVE_CLEANUP_DELAY",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "5000",
              "description": "Tempo de espera para limpar mensagens aria-live (em ms)."
            },
            {
              "kind": "method",
              "name": "navigateToStep",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "Promise<boolean>"
                }
              },
              "parameters": [
                {
                  "name": "targetStep",
                  "type": {
                    "text": "number"
                  },
                  "description": "Número da etapa de destino (numeração começa em 1)"
                },
                {
                  "name": "skipValidation",
                  "default": "false",
                  "description": "Se true, pula validação (útil para reset/programático)"
                }
              ],
              "description": "Método privado central que gerencia toda a navegação com validação.\n\nComportamento unificado para linear e nonlinear:\n- Linear: Valida ao avançar, não permite pular steps\n- Nonlinear: Valida ao avançar, permite pular steps livremente"
            },
            {
              "kind": "method",
              "name": "syncWithBrStep",
              "privacy": "private",
              "description": "Sincroniza estado do wizard com o br-step.\n\nO br-step já gerencia completamente os atributos 'active' via componentShouldUpdate\ne requestAnimationFrame, então apenas chamamos os métodos de navegação dele."
            },
            {
              "kind": "method",
              "name": "discoverPanelsFromSlot",
              "privacy": "private",
              "parameters": [
                {
                  "name": "slot",
                  "type": {
                    "text": "HTMLSlotElement"
                  },
                  "description": "Elemento slot do shadow DOM"
                }
              ],
              "description": "Descobre painéis filhos usando assigned elements do slot."
            },
            {
              "kind": "method",
              "name": "setPanels",
              "privacy": "private",
              "parameters": [
                {
                  "name": "nextPanels",
                  "type": {
                    "text": "HTMLElement[]"
                  }
                }
              ],
              "description": "Atualiza a lista de painéis somente quando a composição realmente mudou.\nEvita uma re-renderização redundante durante `componentDidLoad()`."
            },
            {
              "kind": "method",
              "name": "updatePanels",
              "privacy": "private",
              "description": "Atualiza estados de todos os painéis.\nDefine o índice e o estado ativo de cada painel."
            },
            {
              "kind": "method",
              "name": "setInitialStep",
              "privacy": "private",
              "description": "Define etapa inicial baseada na prop initialStep.\nGarante que o valor esteja dentro dos limites válidos."
            },
            {
              "kind": "method",
              "name": "announceToScreenReader",
              "privacy": "private",
              "parameters": [
                {
                  "name": "message",
                  "type": {
                    "text": "string"
                  },
                  "description": "Mensagem a ser anunciada"
                }
              ],
              "description": "Anuncia mensagem para leitores de tela via aria-live.\nLimpa automaticamente após 5 segundos para evitar poluição."
            },
            {
              "kind": "method",
              "name": "announceStepChange",
              "privacy": "private",
              "parameters": [
                {
                  "name": "newStep",
                  "type": {
                    "text": "number"
                  },
                  "description": "Nova etapa"
                },
                {
                  "name": "oldStep",
                  "type": {
                    "text": "number"
                  },
                  "description": "Etapa anterior"
                }
              ],
              "description": "Anuncia mudança de etapa para leitores de tela.\nInforma direção da navegação e progresso atual."
            },
            {
              "kind": "method",
              "name": "clearAriaLiveTimeout",
              "privacy": "private",
              "description": "Limpa o timeout de mensagens aria-live."
            },
            {
              "kind": "method",
              "name": "setFocusOnActivePanel",
              "privacy": "private",
              "description": "Move foco para o primeiro elemento do painel ativo."
            },
            {
              "kind": "method",
              "name": "setupMobileDetection",
              "privacy": "private",
              "description": "Configura detecção de viewport mobile.\nAtiva listeners de resize e configura gestos swipe."
            },
            {
              "kind": "method",
              "name": "cleanupMobileDetection",
              "privacy": "private",
              "description": "Remove listeners de detecção mobile."
            },
            {
              "kind": "field",
              "name": "handleResize",
              "privacy": "private",
              "description": "Handler de resize da janela.\nAlterna entre modos mobile/desktop e configura/limpa gestos swipe."
            },
            {
              "kind": "method",
              "name": "setupSwipeListeners",
              "privacy": "private",
              "description": "Configura gestos swipe para mobile."
            },
            {
              "kind": "method",
              "name": "cleanupSwipeListeners",
              "privacy": "private",
              "description": "Remove listeners de gestos swipe."
            },
            {
              "kind": "field",
              "name": "handleFormTouchStart",
              "privacy": "private",
              "description": "Handler de toque no formulário.\nRecolhe automaticamente a barra de progresso."
            },
            {
              "kind": "method",
              "name": "collapseSteps",
              "privacy": "private",
              "description": "Recolhe a barra de progresso (mobile).\nAdiciona o atributo 'collapsed' ao host."
            },
            {
              "kind": "method",
              "name": "expandSteps",
              "privacy": "private",
              "description": "Expande a barra de progresso (mobile).\nRemove o atributo 'collapsed' do host."
            },
            {
              "kind": "field",
              "name": "handleNext",
              "privacy": "private",
              "description": "Handler do botão \"Avançar\" ou \"Concluir\".\nSe for a última etapa, valida e emite evento de conclusão.\nCaso contrário, avança para a próxima etapa."
            },
            {
              "kind": "field",
              "name": "handlePrevious",
              "privacy": "private",
              "description": "Handler do botão \"Voltar\".\nNavega para a etapa anterior."
            },
            {
              "kind": "field",
              "name": "handleCancel",
              "privacy": "private",
              "description": "Handler do botão \"Cancelar\".\nEmite evento de cancelamento do wizard."
            },
            {
              "kind": "method",
              "name": "getHostClassMap",
              "privacy": "private",
              "return": {
                "type": {
                  "text": "CssClassMap"
                }
              },
              "description": "Retorna classes CSS do container principal."
            },
            {
              "kind": "method",
              "name": "renderProgress",
              "privacy": "private",
              "description": "Renderiza indicadores de progresso usando br-step.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderPanelContent",
              "privacy": "private",
              "description": "Renderiza conteúdo dos painéis via slot.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderPanelButtons",
              "privacy": "private",
              "description": "Renderiza botões de navegação do wizard.\nAdapta-se ao contexto: primeira etapa, última etapa, mobile/desktop.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "renderAriaLiveRegion",
              "privacy": "private",
              "description": "Renderiza região de anúncios para leitores de tela.\nUsa aria-live para comunicar mudanças de estado de forma acessível.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            },
            {
              "kind": "method",
              "name": "render",
              "description": "Método de renderização principal do componente.\nMonta a estrutura completa do wizard com acessibilidade integrada.",
              "return": {
                "type": {
                  "text": ""
                }
              }
            }
          ],
          "attributes": [
            {
              "name": "step",
              "fieldName": "step",
              "default": "1",
              "description": "Etapa atual (numeração 1-indexada). Reflete para atributo step."
            },
            {
              "name": "initial-step",
              "fieldName": "initialStep",
              "default": "1",
              "description": "Índice da etapa inicial do wizard.\nDefine qual etapa será exibida ao carregar o componente.\nA numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\nValores inválidos usam 1."
            },
            {
              "name": "initial-index",
              "fieldName": "initialIndex",
              "description": "Índice inicial zero-based. Quando informado, tem precedência sobre `initialStep`; valores inválidos usam 0.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "current-index",
              "fieldName": "currentIndex",
              "description": "Índice atual zero-based para controle externo opcional.",
              "type": {
                "text": "number"
              }
            },
            {
              "name": "orientation",
              "fieldName": "orientation",
              "default": "'horizontal'",
              "description": "Orientação visual do wizard.\nDefine se os indicadores de progresso serão exibidos horizontalmente ou verticalmente.",
              "type": {
                "text": "BrOrientation"
              },
              "parsedType": {
                "text": "'horizontal' | 'vertical'"
              }
            },
            {
              "name": "progression-type",
              "fieldName": "progressionType",
              "default": "'nonlinear'",
              "description": "Tipo de progressão entre etapas.\n- `linear`: O usuário deve completar cada etapa sequencialmente. Não é possível pular etapas futuras.\n- `nonlinear`: O usuário pode navegar livremente entre qualquer etapa.",
              "type": {
                "text": "BrProgressionType"
              },
              "parsedType": {
                "text": "'linear' | 'nonlinear'"
              }
            },
            {
              "name": "custom-id",
              "fieldName": "customId",
              "description": "Identificador único do componente.\nQuando omitido, um valor é gerado automaticamente.\n\n> **Padrão:** valor único gerado por generateUniqueId().",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-wizard",
          "status": "stable",
          "csspart": [
            {
              "name": "form",
              "description": "Área do formulário do wizard."
            },
            {
              "name": "panel",
              "description": "Painel ativo do wizard."
            },
            {
              "name": "progress",
              "description": "Área de progresso do wizard."
            },
            {
              "name": "content",
              "description": "Conteúdo do painel ativo."
            },
            {
              "name": "buttons",
              "description": "Área de botões de navegação."
            }
          ],
          "events": [
            {
              "name": "brWizardStepChange",
              "type": {
                "text": "EventEmitter<number>"
              },
              "description": "Evento emitido APÓS mudar de etapa com sucesso.\n\nEste evento é disparado independente da origem da navegação:\n- Botões \"Avançar\" ou \"Voltar\"\n- Click direto em um step do indicador de progresso\n- Chamadas programáticas via métodos públicos (goToStep, nextStep, etc)"
            },
            {
              "name": "brWizardBeforeStepChange",
              "type": {
                "text": "EventEmitter<number>"
              },
              "description": "Evento emitido ANTES de mudar de etapa (permite validação e cancelamento).\n\nComportamento:\n- Disparado apenas ao AVANÇAR (targetStep > currentStep)\n- Não é disparado ao VOLTAR (targetStep < currentStep)\n- Funciona tanto para cliques nos botões quanto para cliques diretos nos steps\n- Pode ser cancelado com `event.preventDefault()` para bloquear a navegação"
            },
            {
              "name": "brWizardComplete",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido ao concluir o wizard (última etapa)."
            },
            {
              "name": "brWizardCancel",
              "type": {
                "text": "EventEmitter<void>"
              },
              "description": "Evento emitido ao cancelar o wizard."
            },
            {
              "name": "brWizardNavigationBlocked",
              "type": {
                "text": "EventEmitter<string>"
              },
              "description": "Evento emitido quando uma ação é bloqueada (validação falha, progressão linear impedida).\nEmite uma string indicando o motivo: 'linear-progression' ou 'validation-failed'.\nUse getCurrentStepIndex() para obter o contexto da etapa atual."
            }
          ],
          "customElement": true,
          "category": "Navegação",
          "categories": [
            "Navegação",
            "Formulários",
            "Progresso"
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Wizard",
          "declaration": {
            "name": "Wizard",
            "module": "components/wizard.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-wizard",
          "declaration": {
            "name": "Wizard",
            "module": "components/wizard.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "components/wizard-panel/wizard-panel.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Painel de conteúdo de uma etapa individual do `br-wizard`.\n\nDefina o título da etapa em `title-text`. Insira os campos e conteúdos dessa fase no slot padrão.",
          "name": "WizardPanel",
          "cssParts": [
            {
              "description": "Wrapper do painel.",
              "name": "panel"
            },
            {
              "description": "Área de conteúdo do painel.",
              "name": "content"
            }
          ],
          "slots": [
            {
              "description": "Slot para o conteúdo da etapa (formulários, campos ou informações da fase atual).",
              "name": "default"
            }
          ],
          "members": [
            {
              "kind": "field",
              "name": "el",
              "type": {
                "text": "HTMLBrWizardPanelElement"
              }
            },
            {
              "kind": "field",
              "name": "active",
              "type": {
                "text": "boolean"
              },
              "privacy": "private",
              "default": "false",
              "description": "Estados internos controlados pelo wizard pai via métodos públicos"
            },
            {
              "kind": "field",
              "name": "index",
              "type": {
                "text": "number"
              },
              "privacy": "private",
              "default": "1",
              "description": "Índice ordinal do painel dentro do fluxo do wizard."
            },
            {
              "kind": "field",
              "name": "label",
              "type": {
                "text": "string"
              },
              "description": "Label do painel (aparece no indicador de progresso)"
            },
            {
              "kind": "method",
              "name": "render"
            }
          ],
          "attributes": [
            {
              "name": "label",
              "fieldName": "label",
              "description": "Label do painel (aparece no indicador de progresso)",
              "type": {
                "text": "string"
              }
            }
          ],
          "tagName": "br-wizard-panel",
          "csspart": [
            {
              "name": "panel",
              "description": "Wrapper do painel."
            },
            {
              "name": "content",
              "description": "Área de conteúdo do painel."
            }
          ],
          "events": [],
          "customElement": true,
          "category": "Interno",
          "categories": [],
          "status": "stable"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "WizardPanel",
          "declaration": {
            "name": "WizardPanel",
            "module": "components/wizard-panel/wizard-panel.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "br-wizard-panel",
          "declaration": {
            "name": "WizardPanel",
            "module": "components/wizard-panel/wizard-panel.js"
          }
        }
      ]
    }
  ]
}
