@govbr-ds/webcomponents 2.0.0-next.41 → 2.0.0-next.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  2. package/dist/cjs/br-button_2.cjs.entry.js +21 -2
  3. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  4. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  5. package/dist/cjs/br-collapse_2.cjs.entry.js +1 -1
  6. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -1
  7. package/dist/cjs/br-dropdown.cjs.entry.js +324 -10
  8. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  9. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
  10. package/dist/cjs/br-item.cjs.entry.js +1 -1
  11. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  12. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-scrim.cjs.entry.js +1 -1
  14. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/webcomponents.cjs.js +1 -1
  18. package/dist/collection/components/dropdown/dropdown.css +1 -1
  19. package/dist/collection/components/dropdown/dropdown.js +346 -9
  20. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  21. package/dist/collection/components/icon/icon.css +1 -1
  22. package/dist/collection/components/icon/icon.js +40 -1
  23. package/dist/collection/components/icon/icon.js.map +1 -1
  24. package/dist/collection/components/item/item.css +1 -1
  25. package/dist/collection/components/list/list.js +1 -1
  26. package/dist/collection/components/list/list.js.map +1 -1
  27. package/dist/collection/components/scrim/scrim.css +1 -1
  28. package/dist/collection/pages/scripts/menu.js +1 -1
  29. package/dist/components/br-avatar.js +1 -1
  30. package/dist/components/br-breadcrumb.js +4 -4
  31. package/dist/components/br-collapse.js +4 -4
  32. package/dist/components/br-dropdown.js +332 -25
  33. package/dist/components/br-dropdown.js.map +1 -1
  34. package/dist/components/br-footer-category.js +3 -3
  35. package/dist/components/br-footer-item.js +1 -1
  36. package/dist/components/br-footer-social.js +1 -1
  37. package/dist/components/br-icon.js +4 -4
  38. package/dist/components/br-input.js +3 -3
  39. package/dist/components/br-item.js +4 -4
  40. package/dist/components/br-list.js +4 -4
  41. package/dist/components/br-message.js +1 -1
  42. package/dist/components/br-scrim.js +1 -1
  43. package/dist/components/br-scrim.js.map +1 -1
  44. package/dist/components/br-select.js +4 -4
  45. package/dist/components/br-step-item.js +1 -1
  46. package/dist/components/br-tab-item.js +1 -1
  47. package/dist/components/br-tag.js +6 -6
  48. package/dist/components/br-upload.js +1 -1
  49. package/dist/components/{p-BxU9TOn1.js → p-BbFx1RUd.js} +3 -3
  50. package/dist/components/{p-pq3SZemh.js → p-CIINlcIu.js} +3 -3
  51. package/dist/components/{p-brOPUYUL.js → p-DJtFpYiN.js} +3 -3
  52. package/dist/components/p-DJtFpYiN.js.map +1 -0
  53. package/dist/components/{p-DlMJ2wZW.js → p-rHgHl2v-.js} +6 -6
  54. package/dist/components/{p-DlMJ2wZW.js.map → p-rHgHl2v-.js.map} +1 -1
  55. package/dist/components/{p-jx7aLpDh.js → p-vi3ehOfu.js} +40 -23
  56. package/dist/components/p-vi3ehOfu.js.map +1 -0
  57. package/dist/custom-elements.json +167 -0
  58. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  59. package/dist/esm/br-button_2.entry.js +21 -2
  60. package/dist/esm/br-button_2.entry.js.map +1 -1
  61. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  62. package/dist/esm/br-collapse_2.entry.js +1 -1
  63. package/dist/esm/br-collapse_2.entry.js.map +1 -1
  64. package/dist/esm/br-dropdown.entry.js +324 -10
  65. package/dist/esm/br-dropdown.entry.js.map +1 -1
  66. package/dist/esm/br-item.entry.js +1 -1
  67. package/dist/esm/br-item.entry.js.map +1 -1
  68. package/dist/esm/br-scrim.entry.js +1 -1
  69. package/dist/esm/br-scrim.entry.js.map +1 -1
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/webcomponents.js +1 -1
  72. package/dist/hydrate/index.js +353 -18
  73. package/dist/hydrate/index.mjs +353 -18
  74. package/dist/types/components/dropdown/dropdown.d.ts +48 -1
  75. package/dist/types/components/icon/icon.d.ts +7 -0
  76. package/dist/types/components.d.ts +12 -0
  77. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  78. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  79. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  80. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  81. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  82. package/dist/webcomponents/{p-713035b5.entry.js → p-0d6df204.entry.js} +3 -3
  83. package/dist/webcomponents/{p-713035b5.entry.js.map → p-0d6df204.entry.js.map} +1 -1
  84. package/dist/webcomponents/{p-c3267481.entry.js → p-3d5600cb.entry.js} +2 -2
  85. package/dist/webcomponents/p-3d5600cb.entry.js.map +1 -0
  86. package/dist/webcomponents/{p-ab251560.entry.js → p-8ac9dcff.entry.js} +329 -23
  87. package/dist/webcomponents/p-8ac9dcff.entry.js.map +1 -0
  88. package/dist/webcomponents/{p-dbfc2a44.entry.js → p-c25d500c.entry.js} +2 -2
  89. package/dist/webcomponents/p-c25d500c.entry.js.map +1 -0
  90. package/dist/webcomponents/{p-383a4240.entry.js → p-e33ca888.entry.js} +23 -7
  91. package/dist/webcomponents/p-e33ca888.entry.js.map +1 -0
  92. package/dist/webcomponents/webcomponents.esm.js +9 -7
  93. package/dist/webcomponents.html-custom-data.json +3 -2
  94. package/package.json +1 -1
  95. package/dist/components/p-brOPUYUL.js.map +0 -1
  96. package/dist/components/p-jx7aLpDh.js.map +0 -1
  97. package/dist/webcomponents/p-383a4240.entry.js.map +0 -1
  98. package/dist/webcomponents/p-ab251560.entry.js.map +0 -1
  99. package/dist/webcomponents/p-c3267481.entry.js.map +0 -1
  100. package/dist/webcomponents/p-dbfc2a44.entry.js.map +0 -1
  101. /package/dist/components/{p-BxU9TOn1.js.map → p-BbFx1RUd.js.map} +0 -0
  102. /package/dist/components/{p-pq3SZemh.js.map → p-CIINlcIu.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-collapse.br-list.entry.cjs.js","sources":["../../packages/webcomponents/src/components/collapse/collapse.scss?tag=br-collapse&encapsulation=shadow","../../packages/webcomponents/src/components/collapse/collapse.tsx","../../packages/webcomponents/src/components/list/list.scss?tag=br-list&encapsulation=shadow","../../packages/webcomponents/src/components/list/list.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n\n .br-collapse {\n .trigger {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:not(:disabled):hover,\n &:not(:disabled):focus-visible {\n background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));\n }\n }\n\n .trigger-content {\n flex: 1 1 auto !important;\n }\n\n .content {\n transition: height 0.3s;\n overflow: hidden;\n }\n\n br-icon {\n color: var(--interactive);\n }\n }\n\n details {\n width: 100%;\n\n summary {\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 8px 12px;\n height: 48px;\n outline: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n }\n }\n }\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n\n .br-list.horizontal ::slotted(br-item) {\n flex: 1;\n height: auto;\n min-height: 56px;\n width: auto;\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot padrão para inclusão dos itens da lista.\n * @slot header - Slot nomeado para inclusão de ações relacionadas ao cabeçalho do list (uso de botões por exemplo).\n */\n@Component({\n tag: 'br-list',\n styleUrl: 'list.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class List {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrListElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o cabeçalho para a lista.\n */\n @Prop({ reflect: true }) readonly header: string = null\n\n /**\n * Indica se a lista será horizontal. Por padrão, a lista é vertical.\n */\n @Prop({ reflect: true }) readonly isHorizontal: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-list-${listId++}`\n\n /**\n * Indica que o divider para o título da lista estará oculto.\n */\n @Prop({ reflect: true }) readonly hideHeaderDivider: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de collapse.\n */\n @Prop({ reflect: true }) readonly collapse: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de accordion.\n * O valor da propriedade define o grupo, ou seja, o accordion é aplicado a todas as listas que possuem o mesmo valor para esta propriedade.\n */\n @Prop({ reflect: true }) readonly accordion: string = null\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentDidLoad() {\n if (this.isHorizontal) {\n const slotItems = Array.from(this.el.querySelectorAll('br-item'))\n\n slotItems.forEach((item) => {\n const nextElement = item.nextElementSibling\n if (nextElement?.classList.contains('br-divider')) {\n const divider = nextElement as HTMLElement\n divider.style.borderWidth = '0 1px 0 0'\n divider.style.width = '1px'\n }\n })\n }\n\n // adicionar role=\"listitem\" para os itens dentro do slot\n const items = Array.from(this.el.querySelectorAll('br-item'))\n items.forEach((item) => {\n item.setAttribute('role', 'listitem')\n })\n }\n\n /**\n * Método que retorna as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-list': true,\n horizontal: this.isHorizontal,\n }\n }\n\n /**\n * Verifica se o slot possui conteúdo.\n * @param slotName Nome do slot a ser verificado.\n * @returns true se o slot possui conteúdo, false caso contrário.\n */\n private hasSlotContent(slotName: string): boolean {\n const directChildren = Array.from(this.el.querySelectorAll(`[slot=\"${slotName}\"]`)).filter(\n (child) => child.parentElement === this.el\n )\n return Boolean(directChildren.length)\n }\n\n /**\n * Renderiza o cabeçalho da lista.\n * @returns JSX do cabeçalho da lista\n */\n\n\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || this.hasSlotContent('header')) {\n return (\n <div\n class={!this.hasSlotContent('header') ? 'header' : null}\n slot={this.collapse || Boolean(this.accordion) ? 'trigger' : null}\n >\n <slot name=\"header\">{!this.hasSlotContent('header') ? <div class=\"title\">{this.header}</div> : null}</slot>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza o divider do cabeçalho.\n * @returns JSX do divider\n */\n private renderDivider() {\n if ((this.header || this.hasSlotContent('header')) && !this.hideHeaderDivider) {\n return <div class=\"br-divider\"></div>\n }\n return null\n }\n\n /**\n * Renderiza o corpo da lista.\n * @returns JSX do corpo da lista.\n */\n private renderListBody() {\n return [this.renderHeader(), this.renderDivider(), <slot></slot>]\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente\n */\n render() {\n return (\n <Host role=\"list\">\n <div class={this.getCssClassMap()} id={this.customId}>\n {Boolean(this.accordion) || this.collapse ? (\n <br-collapse accordion-group={this.accordion || null}>{this.renderListBody()}</br-collapse>\n ) : (\n this.renderListBody()\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet listId = 0\n"],"names":["Helpers","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"br-collapse.br-list.entry.cjs.js","sources":["../../packages/webcomponents/src/components/collapse/collapse.scss?tag=br-collapse&encapsulation=shadow","../../packages/webcomponents/src/components/collapse/collapse.tsx","../../packages/webcomponents/src/components/list/list.scss?tag=br-list&encapsulation=shadow","../../packages/webcomponents/src/components/list/list.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n\n .br-collapse {\n .trigger {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:not(:disabled):hover,\n &:not(:disabled):focus-visible {\n background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));\n }\n }\n\n .trigger-content {\n flex: 1 1 auto !important;\n }\n\n .content {\n transition: height 0.3s;\n overflow: hidden;\n }\n\n br-icon {\n color: var(--interactive);\n }\n }\n\n details {\n width: 100%;\n\n summary {\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 8px 12px;\n height: 48px;\n outline: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n }\n }\n }\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n\n .br-list.horizontal ::slotted(br-item) {\n flex: 1;\n height: auto;\n min-height: 56px;\n width: auto;\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot padrão para inclusão dos itens da lista.\n * @slot header - Slot nomeado para inclusão de ações relacionadas ao cabeçalho do list (uso de botões por exemplo).\n */\n@Component({\n tag: 'br-list',\n styleUrl: 'list.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class List {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrListElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o cabeçalho para a lista.\n */\n @Prop({ reflect: true }) readonly header: string = null\n\n /**\n * Indica se a lista será horizontal. Por padrão, a lista é vertical.\n */\n @Prop({ reflect: true }) readonly isHorizontal: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-list-${listId++}`\n\n /**\n * Indica que o divider para o título da lista estará oculto.\n */\n @Prop({ reflect: true }) readonly hideHeaderDivider: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de collapse.\n */\n @Prop({ reflect: true }) readonly collapse: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de accordion.\n * O valor da propriedade define o grupo, ou seja, o accordion é aplicado a todas as listas que possuem o mesmo valor para esta propriedade.\n */\n @Prop({ reflect: true }) readonly accordion: string = null\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentDidLoad() {\n if (this.isHorizontal) {\n const slotItems = Array.from(this.el.querySelectorAll('br-item'))\n\n slotItems.forEach((item) => {\n const nextElement = item.nextElementSibling\n if (nextElement?.classList.contains('br-divider')) {\n const divider = nextElement as HTMLElement\n divider.style.borderWidth = '0 1px 0 0'\n divider.style.width = '1px'\n }\n })\n }\n\n // adicionar role=\"listitem\" para os itens dentro do slot\n const items = Array.from(this.el.querySelectorAll('br-item'))\n items.forEach((item) => {\n item.setAttribute('role', 'listitem')\n })\n }\n\n /**\n * Método que retorna as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-list': true,\n horizontal: this.isHorizontal,\n }\n }\n\n /**\n * Verifica se o slot possui conteúdo.\n * @param slotName Nome do slot a ser verificado.\n * @returns true se o slot possui conteúdo, false caso contrário.\n */\n private hasSlotContent(slotName: string): boolean {\n const directChildren = Array.from(this.el.querySelectorAll(`[slot=\"${slotName}\"]`)).filter(\n (child) => child.parentElement === this.el\n )\n return Boolean(directChildren.length)\n }\n\n /**\n * Renderiza o cabeçalho da lista.\n * @returns JSX do cabeçalho da lista\n */\n\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || this.hasSlotContent('header')) {\n return (\n <div\n class={!this.hasSlotContent('header') ? 'header' : null}\n slot={this.collapse || Boolean(this.accordion) ? 'trigger' : null}\n >\n <slot name=\"header\">{!this.hasSlotContent('header') ? <div class=\"title\">{this.header}</div> : null}</slot>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza o divider do cabeçalho.\n * @returns JSX do divider\n */\n private renderDivider() {\n if ((this.header || this.hasSlotContent('header')) && !this.hideHeaderDivider) {\n return <div class=\"br-divider\"></div>\n }\n return null\n }\n\n /**\n * Renderiza o corpo da lista.\n * @returns JSX do corpo da lista.\n */\n private renderListBody() {\n return [this.renderHeader(), this.renderDivider(), <slot></slot>]\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente\n */\n render() {\n return (\n <Host role=\"list\">\n <div class={this.getCssClassMap()} id={this.customId}>\n {Boolean(this.accordion) || this.collapse ? (\n <br-collapse accordion-group={this.accordion || null}>{this.renderListBody()}</br-collapse>\n ) : (\n this.renderListBody()\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet listId = 0\n"],"names":["Helpers","h","Host"],"mappings":"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"}
@@ -272,7 +272,7 @@ const List = class {
272
272
  * @returns JSX do componente
273
273
  */
274
274
  render() {
275
- return (index.h(index.Host, { key: '95bb10d6bf44f672224bab17e6082bbc1f41d693', role: "list" }, index.h("div", { key: 'b32d8d912530aca00b26d8d8308a6265a6d40841', class: this.getCssClassMap(), id: this.customId }, Boolean(this.accordion) || this.collapse ? (index.h("br-collapse", { "accordion-group": this.accordion || null }, this.renderListBody())) : (this.renderListBody()))));
275
+ return (index.h(index.Host, { key: '207b67a6cad4399daf1ccb6750a01d1c80ef3cb8', role: "list" }, index.h("div", { key: '4543ca47a0b5d24f71afe9a6daa6c7aedc756fc5', class: this.getCssClassMap(), id: this.customId }, Boolean(this.accordion) || this.collapse ? (index.h("br-collapse", { "accordion-group": this.accordion || null }, this.renderListBody())) : (this.renderListBody()))));
276
276
  }
277
277
  static get formAssociated() { return true; }
278
278
  };
@@ -1 +1 @@
1
- {"file":"br-collapse.br-list.entry.cjs.js","mappings":"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","names":["Helpers","h","Host"],"sources":["../../packages/webcomponents/src/components/collapse/collapse.scss?tag=br-collapse&encapsulation=shadow","../../packages/webcomponents/src/components/collapse/collapse.tsx","../../packages/webcomponents/src/components/list/list.scss?tag=br-list&encapsulation=shadow","../../packages/webcomponents/src/components/list/list.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n\n .br-collapse {\n .trigger {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:not(:disabled):hover,\n &:not(:disabled):focus-visible {\n background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));\n }\n }\n\n .trigger-content {\n flex: 1 1 auto !important;\n }\n\n .content {\n transition: height 0.3s;\n overflow: hidden;\n }\n\n br-icon {\n color: var(--interactive);\n }\n }\n\n details {\n width: 100%;\n\n summary {\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 8px 12px;\n height: 48px;\n outline: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n }\n }\n }\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n\n .br-list.horizontal ::slotted(br-item) {\n flex: 1;\n height: auto;\n min-height: 56px;\n width: auto;\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot padrão para inclusão dos itens da lista.\n * @slot header - Slot nomeado para inclusão de ações relacionadas ao cabeçalho do list (uso de botões por exemplo).\n */\n@Component({\n tag: 'br-list',\n styleUrl: 'list.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class List {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrListElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o cabeçalho para a lista.\n */\n @Prop({ reflect: true }) readonly header: string = null\n\n /**\n * Indica se a lista será horizontal. Por padrão, a lista é vertical.\n */\n @Prop({ reflect: true }) readonly isHorizontal: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-list-${listId++}`\n\n /**\n * Indica que o divider para o título da lista estará oculto.\n */\n @Prop({ reflect: true }) readonly hideHeaderDivider: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de collapse.\n */\n @Prop({ reflect: true }) readonly collapse: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de accordion.\n * O valor da propriedade define o grupo, ou seja, o accordion é aplicado a todas as listas que possuem o mesmo valor para esta propriedade.\n */\n @Prop({ reflect: true }) readonly accordion: string = null\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentDidLoad() {\n if (this.isHorizontal) {\n const slotItems = Array.from(this.el.querySelectorAll('br-item'))\n\n slotItems.forEach((item) => {\n const nextElement = item.nextElementSibling\n if (nextElement?.classList.contains('br-divider')) {\n const divider = nextElement as HTMLElement\n divider.style.borderWidth = '0 1px 0 0'\n divider.style.width = '1px'\n }\n })\n }\n\n // adicionar role=\"listitem\" para os itens dentro do slot\n const items = Array.from(this.el.querySelectorAll('br-item'))\n items.forEach((item) => {\n item.setAttribute('role', 'listitem')\n })\n }\n\n /**\n * Método que retorna as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-list': true,\n horizontal: this.isHorizontal,\n }\n }\n\n /**\n * Verifica se o slot possui conteúdo.\n * @param slotName Nome do slot a ser verificado.\n * @returns true se o slot possui conteúdo, false caso contrário.\n */\n private hasSlotContent(slotName: string): boolean {\n const directChildren = Array.from(this.el.querySelectorAll(`[slot=\"${slotName}\"]`)).filter(\n (child) => child.parentElement === this.el\n )\n return Boolean(directChildren.length)\n }\n\n /**\n * Renderiza o cabeçalho da lista.\n * @returns JSX do cabeçalho da lista\n */\n\n\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || this.hasSlotContent('header')) {\n return (\n <div\n class={!this.hasSlotContent('header') ? 'header' : null}\n slot={this.collapse || Boolean(this.accordion) ? 'trigger' : null}\n >\n <slot name=\"header\">{!this.hasSlotContent('header') ? <div class=\"title\">{this.header}</div> : null}</slot>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza o divider do cabeçalho.\n * @returns JSX do divider\n */\n private renderDivider() {\n if ((this.header || this.hasSlotContent('header')) && !this.hideHeaderDivider) {\n return <div class=\"br-divider\"></div>\n }\n return null\n }\n\n /**\n * Renderiza o corpo da lista.\n * @returns JSX do corpo da lista.\n */\n private renderListBody() {\n return [this.renderHeader(), this.renderDivider(), <slot></slot>]\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente\n */\n render() {\n return (\n <Host role=\"list\">\n <div class={this.getCssClassMap()} id={this.customId}>\n {Boolean(this.accordion) || this.collapse ? (\n <br-collapse accordion-group={this.accordion || null}>{this.renderListBody()}</br-collapse>\n ) : (\n this.renderListBody()\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet listId = 0\n"],"version":3}
1
+ {"file":"br-collapse.br-list.entry.cjs.js","mappings":"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","names":["Helpers","h","Host"],"sources":["../../packages/webcomponents/src/components/collapse/collapse.scss?tag=br-collapse&encapsulation=shadow","../../packages/webcomponents/src/components/collapse/collapse.tsx","../../packages/webcomponents/src/components/list/list.scss?tag=br-list&encapsulation=shadow","../../packages/webcomponents/src/components/list/list.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n\n .br-collapse {\n .trigger {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:not(:disabled):hover,\n &:not(:disabled):focus-visible {\n background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));\n }\n }\n\n .trigger-content {\n flex: 1 1 auto !important;\n }\n\n .content {\n transition: height 0.3s;\n overflow: hidden;\n }\n\n br-icon {\n color: var(--interactive);\n }\n }\n\n details {\n width: 100%;\n\n summary {\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 8px 12px;\n height: 48px;\n outline: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n }\n }\n }\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n\n .br-list.horizontal ::slotted(br-item) {\n flex: 1;\n height: auto;\n min-height: 56px;\n width: auto;\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot padrão para inclusão dos itens da lista.\n * @slot header - Slot nomeado para inclusão de ações relacionadas ao cabeçalho do list (uso de botões por exemplo).\n */\n@Component({\n tag: 'br-list',\n styleUrl: 'list.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class List {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrListElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o cabeçalho para a lista.\n */\n @Prop({ reflect: true }) readonly header: string = null\n\n /**\n * Indica se a lista será horizontal. Por padrão, a lista é vertical.\n */\n @Prop({ reflect: true }) readonly isHorizontal: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-list-${listId++}`\n\n /**\n * Indica que o divider para o título da lista estará oculto.\n */\n @Prop({ reflect: true }) readonly hideHeaderDivider: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de collapse.\n */\n @Prop({ reflect: true }) readonly collapse: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de accordion.\n * O valor da propriedade define o grupo, ou seja, o accordion é aplicado a todas as listas que possuem o mesmo valor para esta propriedade.\n */\n @Prop({ reflect: true }) readonly accordion: string = null\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentDidLoad() {\n if (this.isHorizontal) {\n const slotItems = Array.from(this.el.querySelectorAll('br-item'))\n\n slotItems.forEach((item) => {\n const nextElement = item.nextElementSibling\n if (nextElement?.classList.contains('br-divider')) {\n const divider = nextElement as HTMLElement\n divider.style.borderWidth = '0 1px 0 0'\n divider.style.width = '1px'\n }\n })\n }\n\n // adicionar role=\"listitem\" para os itens dentro do slot\n const items = Array.from(this.el.querySelectorAll('br-item'))\n items.forEach((item) => {\n item.setAttribute('role', 'listitem')\n })\n }\n\n /**\n * Método que retorna as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-list': true,\n horizontal: this.isHorizontal,\n }\n }\n\n /**\n * Verifica se o slot possui conteúdo.\n * @param slotName Nome do slot a ser verificado.\n * @returns true se o slot possui conteúdo, false caso contrário.\n */\n private hasSlotContent(slotName: string): boolean {\n const directChildren = Array.from(this.el.querySelectorAll(`[slot=\"${slotName}\"]`)).filter(\n (child) => child.parentElement === this.el\n )\n return Boolean(directChildren.length)\n }\n\n /**\n * Renderiza o cabeçalho da lista.\n * @returns JSX do cabeçalho da lista\n */\n\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || this.hasSlotContent('header')) {\n return (\n <div\n class={!this.hasSlotContent('header') ? 'header' : null}\n slot={this.collapse || Boolean(this.accordion) ? 'trigger' : null}\n >\n <slot name=\"header\">{!this.hasSlotContent('header') ? <div class=\"title\">{this.header}</div> : null}</slot>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza o divider do cabeçalho.\n * @returns JSX do divider\n */\n private renderDivider() {\n if ((this.header || this.hasSlotContent('header')) && !this.hideHeaderDivider) {\n return <div class=\"br-divider\"></div>\n }\n return null\n }\n\n /**\n * Renderiza o corpo da lista.\n * @returns JSX do corpo da lista.\n */\n private renderListBody() {\n return [this.renderHeader(), this.renderDivider(), <slot></slot>]\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente\n */\n render() {\n return (\n <Host role=\"list\">\n <div class={this.getCssClassMap()} id={this.customId}>\n {Boolean(this.accordion) || this.collapse ? (\n <br-collapse accordion-group={this.accordion || null}>{this.renderListBody()}</br-collapse>\n ) : (\n this.renderListBody()\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet listId = 0\n"],"version":3}