@govbr-ds/webcomponents 2.0.0-next.62 → 2.0.0-next.63

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 (274) hide show
  1. package/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
  2. package/dist/cjs/br-checkbox_3.cjs.entry.js +17 -28
  3. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  4. package/dist/cjs/br-collapse_2.cjs.entry.js +10 -15
  5. package/dist/cjs/br-datetime-picker.cjs.entry.js +18 -31
  6. package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
  7. package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
  8. package/dist/cjs/br-dropdown_2.cjs.entry.js +73 -56
  9. package/dist/cjs/br-header-list.cjs.entry.js +6 -13
  10. package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
  11. package/dist/cjs/br-header.cjs.entry.js +2 -5
  12. package/dist/cjs/br-header.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-item.cjs.entry.js +3 -6
  14. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  15. package/dist/cjs/br-message.cjs.entry.js +13 -16
  16. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  17. package/dist/cjs/br-modal.cjs.entry.js +8 -13
  18. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-scrim.cjs.entry.js +40 -51
  20. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  21. package/dist/cjs/br-skip-link.cjs.entry.js +24 -29
  22. package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
  23. package/dist/cjs/br-skiplink-item.cjs.entry.js +32 -37
  24. package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
  26. package/dist/cjs/br-step_2.cjs.entry.js +33 -56
  27. package/dist/cjs/br-switch.cjs.entry.js +3 -6
  28. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  29. package/dist/cjs/br-textarea.cjs.entry.js +5 -8
  30. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  31. package/dist/cjs/br-tooltip.cjs.entry.js +1 -2
  32. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  33. package/dist/cjs/br-wizard-panel.cjs.entry.js +6 -13
  34. package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
  35. package/dist/cjs/br-wizard.cjs.entry.js +147 -182
  36. package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
  37. package/dist/cjs/{floating-ui-D_WzFT9x.js → floating-ui-CkTJEp-y.js} +11 -15
  38. package/dist/{esm/floating-ui-DBIzWbO2.js.map → cjs/floating-ui-CkTJEp-y.js.map} +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/webcomponents.cjs.js +1 -1
  41. package/dist/collection/components/checkbox/checkbox.js +9 -16
  42. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  43. package/dist/collection/components/collapse/collapse.js +10 -15
  44. package/dist/collection/components/collapse/collapse.js.map +1 -1
  45. package/dist/collection/components/datetime-picker/datetime-picker.js +18 -31
  46. package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
  47. package/dist/collection/components/dropdown/dropdown.js +13 -20
  48. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  49. package/dist/collection/components/header/header-list/header-list.js +6 -13
  50. package/dist/collection/components/header/header-list/header-list.js.map +1 -1
  51. package/dist/collection/components/header/header.js +2 -5
  52. package/dist/collection/components/header/header.js.map +1 -1
  53. package/dist/collection/components/item/item.js +3 -6
  54. package/dist/collection/components/item/item.js.map +1 -1
  55. package/dist/collection/components/message/message.js +13 -16
  56. package/dist/collection/components/message/message.js.map +1 -1
  57. package/dist/collection/components/modal/modal.js +8 -13
  58. package/dist/collection/components/modal/modal.js.map +1 -1
  59. package/dist/collection/components/radio/radio.js +8 -13
  60. package/dist/collection/components/radio/radio.js.map +1 -1
  61. package/dist/collection/components/scrim/scrim.js +40 -51
  62. package/dist/collection/components/scrim/scrim.js.map +1 -1
  63. package/dist/collection/components/select/select.js +79 -36
  64. package/dist/collection/components/select/select.js.map +1 -1
  65. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +32 -37
  66. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js.map +1 -1
  67. package/dist/collection/components/skip-link/skip-link.js +24 -29
  68. package/dist/collection/components/skip-link/skip-link.js.map +1 -1
  69. package/dist/collection/components/step/step-item/step-item.js +13 -26
  70. package/dist/collection/components/step/step-item/step-item.js.map +1 -1
  71. package/dist/collection/components/step/step.js +20 -31
  72. package/dist/collection/components/step/step.js.map +1 -1
  73. package/dist/collection/components/switch/switch.js +3 -6
  74. package/dist/collection/components/switch/switch.js.map +1 -1
  75. package/dist/collection/components/textarea/textarea.js +5 -8
  76. package/dist/collection/components/textarea/textarea.js.map +1 -1
  77. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +6 -13
  78. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js.map +1 -1
  79. package/dist/collection/components/wizard/wizard.js +147 -182
  80. package/dist/collection/components/wizard/wizard.js.map +1 -1
  81. package/dist/collection/utils/floating-ui.js +9 -12
  82. package/dist/collection/utils/floating-ui.js.map +1 -1
  83. package/dist/components/br-breadcrumb.js +3 -3
  84. package/dist/components/br-checkbox.js +4 -4
  85. package/dist/components/br-checkgroup.js +1 -1
  86. package/dist/components/br-collapse.js +4 -4
  87. package/dist/components/br-datetime-picker.js +1981 -1995
  88. package/dist/components/br-datetime-picker.js.map +1 -1
  89. package/dist/components/br-dropdown.js +1 -1
  90. package/dist/components/br-footer-category.js +3 -3
  91. package/dist/components/br-footer-item.js +1 -1
  92. package/dist/components/br-header-function.js +1 -1
  93. package/dist/components/br-header-link.js +1 -1
  94. package/dist/components/br-header-list.js +31 -39
  95. package/dist/components/br-header-list.js.map +1 -1
  96. package/dist/components/br-header.js +63 -67
  97. package/dist/components/br-header.js.map +1 -1
  98. package/dist/components/br-item.js +1 -1
  99. package/dist/components/br-list.js +3 -3
  100. package/dist/components/br-message.js +28 -32
  101. package/dist/components/br-message.js.map +1 -1
  102. package/dist/components/br-modal.js +21 -27
  103. package/dist/components/br-modal.js.map +1 -1
  104. package/dist/components/br-pagination.js +7 -7
  105. package/dist/components/br-radio.js +1 -1
  106. package/dist/components/br-scrim.js +49 -61
  107. package/dist/components/br-scrim.js.map +1 -1
  108. package/dist/components/br-select.js +3 -3
  109. package/dist/components/br-skip-link.js +38 -44
  110. package/dist/components/br-skip-link.js.map +1 -1
  111. package/dist/components/br-skiplink-item.js +55 -61
  112. package/dist/components/br-skiplink-item.js.map +1 -1
  113. package/dist/components/br-step-item.js +4 -4
  114. package/dist/components/br-step.js +4 -4
  115. package/dist/components/br-switch.js +12 -16
  116. package/dist/components/br-switch.js.map +1 -1
  117. package/dist/components/br-textarea.js +14 -18
  118. package/dist/components/br-textarea.js.map +1 -1
  119. package/dist/components/br-tooltip.js +1 -1
  120. package/dist/components/br-wizard-panel.js +13 -21
  121. package/dist/components/br-wizard-panel.js.map +1 -1
  122. package/dist/components/br-wizard.js +190 -228
  123. package/dist/components/br-wizard.js.map +1 -1
  124. package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
  125. package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
  126. package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
  127. package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
  128. package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
  129. package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
  130. package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
  131. package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
  132. package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
  133. package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
  134. package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
  135. package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
  136. package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
  137. package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
  138. package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
  139. package/dist/components/p-DdjKNpU3.js.map +1 -0
  140. package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
  141. package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  142. package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
  143. package/dist/custom-elements.json +19459 -0
  144. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  145. package/dist/esm/br-checkbox_3.entry.js +17 -28
  146. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  147. package/dist/esm/br-collapse_2.entry.js +10 -15
  148. package/dist/esm/br-datetime-picker.entry.js +18 -31
  149. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  150. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  151. package/dist/esm/br-dropdown_2.entry.js +73 -56
  152. package/dist/esm/br-header-list.entry.js +6 -13
  153. package/dist/esm/br-header-list.entry.js.map +1 -1
  154. package/dist/esm/br-header.entry.js +2 -5
  155. package/dist/esm/br-header.entry.js.map +1 -1
  156. package/dist/esm/br-item.entry.js +3 -6
  157. package/dist/esm/br-item.entry.js.map +1 -1
  158. package/dist/esm/br-message.entry.js +13 -16
  159. package/dist/esm/br-message.entry.js.map +1 -1
  160. package/dist/esm/br-modal.entry.js +8 -13
  161. package/dist/esm/br-modal.entry.js.map +1 -1
  162. package/dist/esm/br-scrim.entry.js +40 -51
  163. package/dist/esm/br-scrim.entry.js.map +1 -1
  164. package/dist/esm/br-skip-link.entry.js +24 -29
  165. package/dist/esm/br-skip-link.entry.js.map +1 -1
  166. package/dist/esm/br-skiplink-item.entry.js +32 -37
  167. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  168. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  169. package/dist/esm/br-step_2.entry.js +33 -56
  170. package/dist/esm/br-switch.entry.js +3 -6
  171. package/dist/esm/br-switch.entry.js.map +1 -1
  172. package/dist/esm/br-textarea.entry.js +5 -8
  173. package/dist/esm/br-textarea.entry.js.map +1 -1
  174. package/dist/esm/br-tooltip.entry.js +1 -2
  175. package/dist/esm/br-tooltip.entry.js.map +1 -1
  176. package/dist/esm/br-wizard-panel.entry.js +6 -13
  177. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  178. package/dist/esm/br-wizard.entry.js +147 -182
  179. package/dist/esm/br-wizard.entry.js.map +1 -1
  180. package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
  181. package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/webcomponents.js +1 -1
  184. package/dist/hydrate/index.js +450 -591
  185. package/dist/hydrate/index.mjs +450 -591
  186. package/dist/types/components/select/select.d.ts +5 -0
  187. package/dist/types/components.d.ts +10 -0
  188. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  189. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  190. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  191. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  192. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  193. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  194. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  195. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  196. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  197. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  198. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  199. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  200. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  201. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  202. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  203. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  204. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  205. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  206. package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
  207. package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
  208. package/dist/webcomponents/{p-097912c2.entry.js → p-1991135d.entry.js} +30 -36
  209. package/dist/webcomponents/p-1991135d.entry.js.map +1 -0
  210. package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
  211. package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
  212. package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
  213. package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
  214. package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
  215. package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
  216. package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
  217. package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
  218. package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
  219. package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
  220. package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
  221. package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
  222. package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
  223. package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
  224. package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
  225. package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
  226. package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
  227. package/dist/webcomponents/p-83001853.entry.js.map +1 -0
  228. package/dist/webcomponents/{p-463b06a4.entry.js → p-90401ecd.entry.js} +32 -38
  229. package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
  230. package/dist/webcomponents/{p-216dc111.entry.js → p-a2eec4fb.entry.js} +49 -61
  231. package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
  232. package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
  233. package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
  234. package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
  235. package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
  236. package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
  237. package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
  238. package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
  239. package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
  240. package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
  241. package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
  242. package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
  243. package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  244. package/dist/webcomponents/webcomponents.esm.js +1 -1
  245. package/dist/webcomponents.html-custom-data.json +2573 -0
  246. package/package.json +1 -1
  247. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  248. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  249. package/dist/components/p-7kxAU6Gr.js.map +0 -1
  250. package/dist/components/p-DIPMDb5E.js +0 -55
  251. package/dist/components/p-DIPMDb5E.js.map +0 -1
  252. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  253. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  254. package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
  255. package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
  256. package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
  257. package/dist/webcomponents/p-216dc111.entry.js.map +0 -1
  258. package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
  259. package/dist/webcomponents/p-463b06a4.entry.js.map +0 -1
  260. package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
  261. package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
  262. package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
  263. package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
  264. package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
  265. package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
  266. package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
  267. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  268. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  269. package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
  270. package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
  271. package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
  272. package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
  273. package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
  274. /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["headerCss","HeaderSlotNames","LOGO","SIGNATURE","LINKS","FUNCTIONS","SEARCH_ICON","SEARCH","ACCESS","MENU_TRIGGER","CAPTION","SUBCAPTION","Header","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","caption","captionUrl","customId","Helpers","generateUniqueId","density","isCompact","isSticky","signature","shrinkFirst","subcaption","subcaptionUrl","headerArea","cssClassMap","breakpoints","loose","BreakpointObserver","getBreakpoints","BREAKPOINTS","X_SMALL","compact","hasContent","isVisible","SMALL","Boolean","trim","length","MEDIUM","event","click","handleSearchIconClick","bind","focus","handleSearchIconFocus","LARGE","isActive","parentScrollTop","resizeTimeout","handleParentScroll","parent","el","parentElement","atTop","scrollTop","shouldBeCompact","requestAnimationFrame","handleBreakpointChange","currentBreakpoint","handleSearchCloseClick","updateHeaderArea","_b","_a","includes","watchIsCompact","newValue","headerCompactChange","emit","parentId","verifyListSpace","handleHeaderListUpdate","detail","id","listName","handleListResize","clearTimeout","window","setTimeout","headerWidthChange","listNames","shrink","connectedCallback","setBreakpointObserver","syncHeaderAreaStates","setScrollOnParent","componentDidLoad","monitorSlotContent","disconnectedCallback","unsetScrollOnParent","breakpointObserver","unsubscribe","destroy","resetHeaderList","breakpoint","Object","keys","forEach","area","name","controlHeaderAreaUpdateStates","shadowRoot","querySelectorAll","slot","brHeaderList","assignedElements","find","tagName","toLowerCase","closeList","state","_c","getCssClassMap","small","large","isHeaderSlotName","value","values","addEventListener","slotName","assignedNodes","subscribe","element","removeEventListener","updates","assign","style","paddingLeft","paddingRight","totalWidth","bottomLeftWidth","topLeftWidth","topRightWidth","availableWidth","getComputedStyle","parseFloat","clientWidth","querySelector","_d","_e","isOverflowing","renderDefaultCaptionContent","h","href","class","renderDefaultSignatureContent","renderDefaultSubcaptionContent","renderDivider","mainArea","secondaryAreas","some","orientation","hidden","renderHeaderArea","onClick","_f","onFocusin","_h","_g","renderSlotDefaultContent","_j","renderSearchCloseButton","shape","emphasis","iconName","render","Host","key"],"sources":["../../packages/webcomponents/src/components/header/header.scss?tag=br-header&encapsulation=shadow","../../packages/webcomponents/src/components/header/header.tsx"],"sourcesContent":[":host {\n --header-padding: var(--header-padding-medium);\n --header-padding-small: var(--spacing-scale-base);\n --header-padding-medium: var(--spacing-scale-2x);\n --header-padding-large: var(--spacing-scale-3x);\n\n --header-logo-size: var(--header-logo-medium);\n --header-logo-small: 16px;\n --header-logo-medium: 24px;\n --header-logo-large: 40px;\n\n --header-title-size: var(--font-size-scale-base);\n\n --header-subtitle-size: var(--font-size-scale-down-01);\n\n --header-logo-desktop-width: 120px;\n --header-logo-desktop-height: 48px;\n --header-logo-compact: 60px;\n --header-logo-compact-height: 32px;\n --header-logo-mobile-width: 80px;\n --header-logo-mobile-height: 40px;\n\n display: block;\n width: 100%;\n}\n\n:host([is-sticky]) {\n transition: all 0.15s ease;\n position: sticky;\n top: 0;\n z-index: var(--z-index-layer-2);\n}\n\n.br-header {\n display: flex;\n flex-direction: column;\n background: var(--background);\n box-shadow: var(--surface-shadow-sm);\n padding: var(--header-padding) 0;\n position: relative;\n\n br-divider {\n &::part(hr) {\n margin: 0 var(--spacing-scale-base);\n }\n }\n\n &.compact {\n --header-padding: var(--header-padding-small);\n\n .header-bottom-left {\n flex: 0 0 auto;\n }\n }\n\n &.small {\n --header-padding: var(--header-padding-small);\n }\n\n &.large {\n --header-padding: var(--header-padding-large);\n }\n\n .header-top {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .header-top-left,\n .header-top-right {\n display: flex;\n }\n\n .header-top-left {\n flex: 0 0 auto;\n\n .header-logo {\n align-self: center;\n }\n\n .header-signature {\n align-self: center;\n font-weight: 500;\n overflow: hidden;\n }\n }\n\n .header-top-right {\n flex: 1 0 auto;\n justify-content: flex-end;\n\n .header-links {\n align-self: center;\n }\n\n .header-functions {\n align-self: center;\n }\n\n .header-search-icon {\n align-self: center;\n }\n\n .header-access {\n align-self: center;\n }\n }\n }\n\n .header-bottom {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: var(--header-padding-small);\n\n .header-bottom-left {\n display: flex;\n\n .header-caption-wrapper {\n margin-left: var(--spacing-scale-2x);\n }\n\n .header-caption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--header-title-size);\n margin-top: 2px;\n }\n\n .header-subcaption {\n font-size: var(--header-subtitle-size);\n font-weight: 500;\n margin-top: var(--spacing-scale-half);\n }\n }\n\n .header-bottom-right {\n display: none;\n min-width: 268px;\n flex: 0 0 auto;\n\n &.is-active {\n display: flex;\n }\n }\n }\n\n .header-access {\n margin-left: var(--spacing-scale-3x);\n }\n\n .header-menu-trigger {\n margin-right: var(--spacing-scale-half);\n }\n\n .header-search {\n &[is-active] {\n align-items: center;\n background: var(--background);\n inset: 0;\n display: flex;\n padding: 0 var(--spacing-scale-2x);\n position: absolute;\n\n ::slotted(br-input) {\n width: 100%;\n }\n\n .search-close {\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header {\n .header-top {\n .header-top-right {\n position: relative;\n }\n }\n\n .header-bottom {\n .header-bottom-left {\n .header-caption {\n --header-title-size: var(--font-size-scale-up-02);\n\n margin-top: 0;\n }\n\n .header-subcaption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &.compact {\n .container-lg {\n position: relative;\n }\n\n .header-top {\n display: block;\n }\n\n .header-top-left {\n float: left;\n }\n\n .header-top-right {\n float: right;\n margin-top: var(--spacing-scale-2xh);\n position: relative;\n }\n\n .header-bottom {\n clear: left;\n }\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header {\n .header-bottom {\n .header-bottom-right {\n display: flex;\n }\n\n ::slotted([slot=\"search\"]) {\n width: 385px;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../utils/breakpoint-observer'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Nomes das áreas do cabeçalho.\n */\nconst HeaderSlotNames = {\n LOGO: 'logo',\n SIGNATURE: 'signature',\n LINKS: 'links',\n FUNCTIONS: 'functions',\n SEARCH_ICON: 'search-icon',\n SEARCH: 'search',\n ACCESS: 'access',\n MENU_TRIGGER: 'menu-trigger',\n CAPTION: 'caption',\n SUBCAPTION: 'subcaption',\n} as const\n\n/**\n * Tipo que representa os nomes das áreas do cabeçalho.\n */\ntype HeaderSlotName = (typeof HeaderSlotNames)[keyof typeof HeaderSlotNames]\n\n/**\n * Tipo que representa as configurações de uma área do cabeçalho.\n */\ntype HeaderAreaConfig = {\n cssClassMap: CssClassMap\n breakpoints: { loose: Breakpoint[]; compact: Breakpoint[] }\n hasContent: boolean\n isVisible: boolean\n isActive?: boolean\n event?: { click?: (event: MouseEvent) => void; focus?: (event: FocusEvent) => void }\n}\n\n/**\n * Tipo que representa as áreas do cabeçalho.\n */\ntype HeaderArea = {\n [K in HeaderSlotName]: HeaderAreaConfig\n}\n\n/**\n * Tipo que representa as densidades do cabeçalho.\n */\ntype HeaderDensity = 'small' | 'medium' | 'large'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot logo - Slot para a logo do cabeçalho.\n * @slot signature - Slot para a assinatura visual da organização.\n * @slot links - Slot para links de navegação principais.\n * @slot functions - Slot para botões de ação no cabeçalho.\n * @slot search - Slot para o campo de busca.\n * @slot access - Slot para o botão de acesso ou autenticação.\n * @slot menu-trigger - Slot para o botão que abre o menu.\n * @slot caption - Slot para o título do cabeçalho.\n * @slot subcaption - Slot para o subtítulo do cabeçalho.\n */\n@Component({\n tag: 'br-header',\n styleUrl: 'header.scss',\n shadow: true,\n})\nexport class Header {\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: HTMLBrHeaderElement\n\n /**\n * Texto exibido como título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly caption: string = null\n\n /**\n * URL associada ao título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly captionUrl: string = null\n\n /**\n * Identificador único do cabeçalho; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Densidade do cabeçalho: controla espaçamento e proporções.\n */\n @Prop({ reflect: true }) readonly density: HeaderDensity = 'medium'\n\n /**\n * Ativa o modo compacto do cabeçalho.\n */\n @Prop({ reflect: true, mutable: true }) isCompact: boolean = false\n\n /**\n * Fixa o cabeçalho no topo durante a rolagem.\n */\n @Prop({ reflect: true }) readonly isSticky: boolean = false\n\n /**\n * Texto da assinatura exibida ao lado da logo.\n */\n @Prop({ reflect: true }) readonly signature: string = null\n\n /**\n * Define qual lista encolhe primeiro quando o espaço é limitado.\n */\n @Prop({ reflect: true }) readonly shrinkFirst: 'links' | 'functions' = 'functions'\n\n /**\n * Texto exibido como subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaption: string = null\n\n /**\n * URL associada ao subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaptionUrl: string = null\n\n /**\n * Representa as configurações da área do cabeçalho.\n */\n @State() headerArea: HeaderArea = {\n [HeaderSlotNames.LOGO]: {\n cssClassMap: {\n 'header-logo': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SIGNATURE]: {\n cssClassMap: {\n 'header-signature': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [],\n },\n hasContent: Boolean(this.signature && this.signature.trim().length > 0),\n isVisible: Boolean(this.signature && this.signature.trim().length > 0),\n },\n [HeaderSlotNames.LINKS]: {\n cssClassMap: {\n 'header-links': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.FUNCTIONS]: {\n cssClassMap: {\n 'header-functions': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SEARCH_ICON]: {\n cssClassMap: {\n 'header-search-icon': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n event: {\n click: this.handleSearchIconClick.bind(this),\n focus: this.handleSearchIconFocus.bind(this),\n },\n },\n [HeaderSlotNames.SEARCH]: {\n cssClassMap: {\n 'header-search': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE)],\n compact: [],\n },\n hasContent: false,\n isVisible: false,\n isActive: false,\n },\n [HeaderSlotNames.ACCESS]: {\n cssClassMap: {\n 'header-access': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.MENU_TRIGGER]: {\n cssClassMap: {\n 'header-menu-trigger': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.CAPTION]: {\n cssClassMap: {\n 'header-caption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SUBCAPTION]: {\n cssClassMap: {\n 'header-subcaption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n }\n\n /**\n * Evento disparado quando o cabeçalho entra ou sai do modo compacto.\n * O evento contém os detalhes do estado compacto e o ID do componente pai.\n * @event headerCompactChange\n */\n @Event({\n eventName: 'headerCompactChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerCompactChange: EventEmitter<{ parentId: string; isCompact: boolean }>\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento contém os detalhes do ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerWidthChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerWidthChange: EventEmitter<{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }>\n\n /**\n * Observa mudanças na propriedade isCompact.\n * @param newValue O novo valor de isCompact.\n */\n @Watch('isCompact')\n watchIsCompact(newValue: boolean) {\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: newValue })\n this.verifyListSpace(this.shrinkFirst)\n }\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Indica o breakpoint atual.\n */\n private currentBreakpoint: Breakpoint\n\n /**\n * Armazena a posição de scroll do elemento pai.\n */\n private parentScrollTop = 0\n\n /**\n * Timeout para o evento de redimensionamento.\n */\n private resizeTimeout: number = null\n\n /**\n * Listener para o evento 'headerListUpdate', disparado pelos componentes filhos 'br-header-list'.\n * O evento contém o ID do componente pai e o nome da lista.\n */\n @Listen('headerListUpdate', { target: 'document', passive: true })\n private handleHeaderListUpdate(event: CustomEvent<{ id: string; listName: string }>) {\n if (event.detail.id === this.customId) {\n requestAnimationFrame(() => {\n switch (event.detail.listName) {\n case 'functions':\n this.verifyListSpace('links')\n break\n case 'links':\n this.verifyListSpace('functions')\n break\n }\n })\n }\n }\n\n /**\n * Listener para o evento 'resize' da janela.\n * Dispara o evento de redimensionamento do cabeçalho após um breve atraso de 100ms\n */\n @Listen('resize', { target: 'window', passive: true })\n private handleListResize() {\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(() => {\n this.headerWidthChange.emit({ id: this.customId, listNames: ['links', 'functions'], shrink: false })\n }, 100)\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.syncHeaderAreaStates()\n this.setScrollOnParent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado ao DOM.\n */\n componentDidLoad() {\n this.monitorSlotContent()\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: this.isCompact })\n this.verifyListSpace(this.shrinkFirst)\n\n void this.handleHeaderListUpdate\n void this.handleListResize\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetScrollOnParent()\n this.breakpointObserver.unsubscribe(this.handleBreakpointChange.bind(this))\n this.breakpointObserver.destroy()\n clearTimeout(this.resizeTimeout)\n }\n\n /**\n * Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.\n * Pode ser chamado externamente para forçar a atualização das listas.\n */\n @Method()\n async resetHeaderList() {\n this.handleListResize()\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange(breakpoint: Breakpoint) {\n this.currentBreakpoint = breakpoint\n Object.keys(this.headerArea).forEach((area) => {\n const name = area as HeaderSlotName\n this.controlHeaderAreaUpdateStates(name)\n })\n }\n\n /**\n * Manipula o evento de scroll no elemento pai.\n */\n private handleParentScroll = () => {\n const parent = this.el.parentElement\n if (parent == null) return\n\n const atTop = parent.scrollTop === 0\n const shouldBeCompact = this.isSticky && !atTop\n\n if (this.isCompact !== shouldBeCompact) {\n this.parentScrollTop = parent.scrollTop\n this.isCompact = shouldBeCompact\n requestAnimationFrame(() => {\n parent.scrollTop = this.parentScrollTop\n })\n this.handleBreakpointChange(this.currentBreakpoint)\n }\n }\n\n /**\n * Manipula o clique no botão de fechar busca.\n */\n private handleSearchCloseClick = () => {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isActive: false,\n isVisible: this.headerArea[HeaderSlotNames.SEARCH]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint),\n })\n }\n\n /**\n * Manipula o clique no ícone de busca.\n */\n private handleSearchIconClick() {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isVisible: true,\n isActive: true,\n })\n }\n\n /**\n * Manipula o foco no ícone de busca.\n */\n private handleSearchIconFocus() {\n this.el.shadowRoot.querySelectorAll('slot[name=\"links\"], slot[name=\"functions\"]').forEach((slot: Element) => {\n const brHeaderList = (slot as HTMLSlotElement)\n .assignedElements()\n .find((el) => el.tagName.toLowerCase() === 'br-header-list')\n if (brHeaderList != null) {\n ;(brHeaderList as HTMLBrHeaderListElement).closeList()\n }\n })\n }\n\n /**\n *\n * Controla a atualização dos estados da área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n */\n private controlHeaderAreaUpdateStates(name: HeaderSlotName) {\n const state = this.headerArea[name]?.breakpoints[`${this.isCompact ? 'compact' : 'loose'}`]?.includes(\n this.currentBreakpoint\n )\n switch (name) {\n case HeaderSlotNames.SEARCH:\n this.updateHeaderArea(name, {\n isVisible: state,\n isActive: state ? null : this.headerArea[name]?.isActive,\n })\n break\n default:\n this.updateHeaderArea(name, {\n isVisible: state,\n })\n }\n }\n\n /**\n * Retorna um mapa de classes CSS para o componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header': true,\n compact: this.isCompact,\n small: this.density === 'small' && !this.isCompact,\n large: this.density === 'large' && !this.isCompact,\n }\n }\n\n /**\n * Verifica se um valor é um nome de slot de cabeçalho válido.\n * @param value O valor a ser verificado.\n * @returns Um valor booleano indicando se o valor é um nome de slot de cabeçalho válido.\n */\n private isHeaderSlotName(value: string): value is HeaderSlotName {\n return Object.values(HeaderSlotNames).includes(value as HeaderSlotName)\n }\n\n /**\n * Monitora as mudanças de conteúdo dos slots.\n */\n private monitorSlotContent() {\n this.el.shadowRoot.querySelectorAll('slot').forEach((slot) => {\n slot.addEventListener('slotchange', () => {\n const slotName = slot.name\n if (this.isHeaderSlotName(slotName)) {\n this.updateHeaderArea(slotName, { hasContent: slot.assignedNodes().length > 0 })\n }\n })\n })\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange.bind(this))\n }\n\n /**\n * Configura o evento de scroll no elemento pai.\n */\n private setScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.addEventListener('scroll', this.handleParentScroll)\n this.handleParentScroll()\n }\n }\n\n /**\n * Atualiza o estado da área do cabeçalho com base no conteúdo dos slots.\n */\n private syncHeaderAreaStates() {\n this.el.querySelectorAll('[slot]').forEach((element) => {\n const slotName = element.slot\n if (this.isHeaderSlotName(slotName)) {\n this.headerArea[slotName].hasContent = true\n this.headerArea[slotName].isVisible = this.headerArea[slotName]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint)\n }\n })\n }\n\n /**\n * Remove scroll event listener from parent element.\n */\n private unsetScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.removeEventListener('scroll', this.handleParentScroll)\n }\n }\n\n /**\n * Atualiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @param updates As atualizações a serem aplicadas.\n */\n private updateHeaderArea(name: HeaderSlotName, updates: Partial<HeaderAreaConfig>) {\n this.headerArea = {\n ...this.headerArea,\n [name]: { ...this.headerArea[name], ...updates },\n }\n }\n\n /**\n * Verifica o espaço disponível para uma lista específica no cabeçalho.\n * @param listName O nome da lista a ser verificada.\n */\n private verifyListSpace(listName: 'links' | 'functions') {\n let style, paddingLeft, paddingRight, totalWidth, bottomLeftWidth, topLeftWidth, topRightWidth, availableWidth\n if (this.isCompact) {\n style = window.getComputedStyle(this.el)\n paddingLeft = parseFloat(style.paddingLeft) || 0\n paddingRight = parseFloat(style.paddingRight) || 0\n totalWidth = this.el.clientWidth - paddingLeft - paddingRight\n bottomLeftWidth = this.el.shadowRoot.querySelector('.header-bottom-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - bottomLeftWidth\n } else {\n totalWidth = this.el.shadowRoot.querySelector('.header-top')?.clientWidth || 0\n topLeftWidth = this.el.shadowRoot.querySelector('.header-top-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - topLeftWidth\n }\n\n const isOverflowing = topRightWidth > availableWidth\n if (isOverflowing) {\n this.headerWidthChange.emit({ id: this.customId, listNames: [listName], shrink: true })\n }\n }\n\n /**\n * Renderiza o conteúdo padrão do título.\n * @returns Um elemento JSX representando o conteúdo padrão do título.\n */\n private renderDefaultCaptionContent() {\n return typeof this.caption === 'string' && this.caption.trim().length > 0 ? (\n typeof this.captionUrl === 'string' && this.captionUrl.trim().length > 0 ? (\n <a href={this.captionUrl} class=\"caption-link\">\n {this.caption}\n </a>\n ) : (\n <span class=\"caption-text\">{this.caption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão da assinatura.\n * @returns Um elemento JSX representando o conteúdo padrão da assinatura.\n */\n private renderDefaultSignatureContent() {\n return typeof this.signature === 'string' && this.signature.trim().length > 0 ? (\n <span class=\"signature-text\">{this.signature}</span>\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão do subtítulo.\n * @returns Um elemento JSX representando o conteúdo padrão do subtítulo.\n */\n private renderDefaultSubcaptionContent() {\n return typeof this.subcaption === 'string' && this.subcaption.trim().length > 0 ? (\n typeof this.subcaptionUrl === 'string' && this.subcaptionUrl.trim().length > 0 ? (\n <a href={this.subcaptionUrl} class=\"subcaption-link\">\n {this.subcaption}\n </a>\n ) : (\n <span class=\"subcaption-text\">{this.subcaption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o divisor entre as áreas do cabeçalho.\n * @param mainArea A área principal do cabeçalho.\n * @param secondaryAreas As áreas secundárias do cabeçalho.\n * @returns Um elemento JSX representando o divisor entre as áreas do cabeçalho.\n */\n private renderDivider(mainArea: HeaderSlotName, secondaryAreas: HeaderSlotName[] = []) {\n const isVisible =\n this.headerArea[mainArea]?.hasContent &&\n this.headerArea[mainArea]?.isVisible &&\n secondaryAreas.some((area) => this.headerArea[area]?.hasContent && this.headerArea[area]?.isVisible)\n return <br-divider orientation=\"vertical\" class=\"header-divider\" hidden={!isVisible}></br-divider>\n }\n\n /**\n * Renderiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @returns Um elemento JSX representando a área do cabeçalho.\n */\n private renderHeaderArea(name: HeaderSlotName) {\n return (\n <div\n class={this.headerArea[name]?.cssClassMap}\n hidden={!this.headerArea[name]?.isVisible && !this.headerArea[name]?.isActive}\n is-active={this.headerArea[name]?.isActive}\n onClick={this.headerArea[name]?.event?.click}\n onFocusin={this.headerArea[name]?.event?.focus}\n >\n <slot name={name}>{this.renderSlotDefaultContent(name)}</slot>\n {name === HeaderSlotNames.SEARCH && this.headerArea[name]?.isActive && this.renderSearchCloseButton()}\n </div>\n )\n }\n\n /**\n * Renderiza o botão de fechar busca.\n * @returns Um elemento JSX representando o botão de fechar busca.\n */\n private renderSearchCloseButton() {\n return (\n <br-button\n class=\"search-close\"\n shape=\"circle\"\n density=\"small\"\n emphasis=\"tertiary\"\n onClick={this.handleSearchCloseClick}\n aria-label=\"Fechar busca\"\n >\n <br-icon iconName=\"fa7-solid:close\"></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o conteúdo padrão do slot.\n * @param name O nome do slot.\n * @returns Um elemento JSX representando o conteúdo padrão do slot.\n */\n private renderSlotDefaultContent(name: HeaderSlotName) {\n switch (name) {\n case HeaderSlotNames.CAPTION:\n return this.renderDefaultCaptionContent()\n case HeaderSlotNames.SUBCAPTION:\n return this.renderDefaultSubcaptionContent()\n case HeaderSlotNames.SIGNATURE:\n return this.renderDefaultSignatureContent()\n default:\n return null\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <header id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <div class=\"header-top\">\n <div class=\"header-top-left\">\n {this.renderHeaderArea(HeaderSlotNames.LOGO)}\n {this.renderDivider(HeaderSlotNames.LOGO, [HeaderSlotNames.SIGNATURE])}\n {this.renderHeaderArea(HeaderSlotNames.SIGNATURE)}\n </div>\n <div class=\"header-top-right\">\n {this.renderHeaderArea(HeaderSlotNames.LINKS)}\n {this.renderDivider(HeaderSlotNames.LINKS, [HeaderSlotNames.FUNCTIONS, HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.FUNCTIONS)}\n {this.renderDivider(HeaderSlotNames.FUNCTIONS, [HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.SEARCH_ICON)}\n {this.renderHeaderArea(HeaderSlotNames.ACCESS)}\n </div>\n </div>\n <div class=\"header-bottom\">\n <div class=\"header-bottom-left\">\n {this.renderHeaderArea(HeaderSlotNames.MENU_TRIGGER)}\n <div class=\"header-caption-wrapper\">\n {this.renderHeaderArea(HeaderSlotNames.CAPTION)}\n {this.renderHeaderArea(HeaderSlotNames.SUBCAPTION)}\n </div>\n </div>\n <div\n class={{\n 'header-bottom-right': true,\n 'is-active': this.headerArea[HeaderSlotNames.SEARCH]?.isActive,\n }}\n >\n {this.renderHeaderArea(HeaderSlotNames.SEARCH)}\n </div>\n </div>\n </div>\n </header>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["headerCss","HeaderSlotNames","LOGO","SIGNATURE","LINKS","FUNCTIONS","SEARCH_ICON","SEARCH","ACCESS","MENU_TRIGGER","CAPTION","SUBCAPTION","Header","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","caption","captionUrl","customId","Helpers","generateUniqueId","density","isCompact","isSticky","signature","shrinkFirst","subcaption","subcaptionUrl","headerArea","cssClassMap","breakpoints","loose","BreakpointObserver","getBreakpoints","BREAKPOINTS","X_SMALL","compact","hasContent","isVisible","SMALL","Boolean","trim","length","MEDIUM","event","click","handleSearchIconClick","bind","focus","handleSearchIconFocus","LARGE","isActive","parentScrollTop","resizeTimeout","handleParentScroll","parent","el","parentElement","atTop","scrollTop","shouldBeCompact","requestAnimationFrame","handleBreakpointChange","currentBreakpoint","handleSearchCloseClick","updateHeaderArea","_b","_a","includes","watchIsCompact","newValue","headerCompactChange","emit","parentId","verifyListSpace","handleHeaderListUpdate","detail","id","listName","handleListResize","clearTimeout","window","setTimeout","headerWidthChange","listNames","shrink","connectedCallback","setBreakpointObserver","syncHeaderAreaStates","setScrollOnParent","componentDidLoad","monitorSlotContent","disconnectedCallback","unsetScrollOnParent","breakpointObserver","unsubscribe","destroy","resetHeaderList","breakpoint","Object","keys","forEach","area","name","controlHeaderAreaUpdateStates","shadowRoot","querySelectorAll","slot","brHeaderList","assignedElements","find","tagName","toLowerCase","closeList","state","_c","getCssClassMap","small","large","isHeaderSlotName","value","values","addEventListener","slotName","assignedNodes","subscribe","element","removeEventListener","updates","assign","style","paddingLeft","paddingRight","totalWidth","bottomLeftWidth","topLeftWidth","topRightWidth","availableWidth","getComputedStyle","parseFloat","clientWidth","querySelector","_d","_e","isOverflowing","renderDefaultCaptionContent","h","href","class","renderDefaultSignatureContent","renderDefaultSubcaptionContent","renderDivider","mainArea","secondaryAreas","some","orientation","hidden","renderHeaderArea","onClick","_f","onFocusin","_h","_g","renderSlotDefaultContent","_j","renderSearchCloseButton","shape","emphasis","iconName","render","Host","key"],"sources":["../../packages/webcomponents/src/components/header/header.scss?tag=br-header&encapsulation=shadow","../../packages/webcomponents/src/components/header/header.tsx"],"sourcesContent":[":host {\n --header-padding: var(--header-padding-medium);\n --header-padding-small: var(--spacing-scale-base);\n --header-padding-medium: var(--spacing-scale-2x);\n --header-padding-large: var(--spacing-scale-3x);\n\n --header-logo-size: var(--header-logo-medium);\n --header-logo-small: 16px;\n --header-logo-medium: 24px;\n --header-logo-large: 40px;\n\n --header-title-size: var(--font-size-scale-base);\n\n --header-subtitle-size: var(--font-size-scale-down-01);\n\n --header-logo-desktop-width: 120px;\n --header-logo-desktop-height: 48px;\n --header-logo-compact: 60px;\n --header-logo-compact-height: 32px;\n --header-logo-mobile-width: 80px;\n --header-logo-mobile-height: 40px;\n\n display: block;\n width: 100%;\n}\n\n:host([is-sticky]) {\n transition: all 0.15s ease;\n position: sticky;\n top: 0;\n z-index: var(--z-index-layer-2);\n}\n\n.br-header {\n display: flex;\n flex-direction: column;\n background: var(--background);\n box-shadow: var(--surface-shadow-sm);\n padding: var(--header-padding) 0;\n position: relative;\n\n br-divider {\n &::part(hr) {\n margin: 0 var(--spacing-scale-base);\n }\n }\n\n &.compact {\n --header-padding: var(--header-padding-small);\n\n .header-bottom-left {\n flex: 0 0 auto;\n }\n }\n\n &.small {\n --header-padding: var(--header-padding-small);\n }\n\n &.large {\n --header-padding: var(--header-padding-large);\n }\n\n .header-top {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .header-top-left,\n .header-top-right {\n display: flex;\n }\n\n .header-top-left {\n flex: 0 0 auto;\n\n .header-logo {\n align-self: center;\n }\n\n .header-signature {\n align-self: center;\n font-weight: 500;\n overflow: hidden;\n }\n }\n\n .header-top-right {\n flex: 1 0 auto;\n justify-content: flex-end;\n\n .header-links {\n align-self: center;\n }\n\n .header-functions {\n align-self: center;\n }\n\n .header-search-icon {\n align-self: center;\n }\n\n .header-access {\n align-self: center;\n }\n }\n }\n\n .header-bottom {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: var(--header-padding-small);\n\n .header-bottom-left {\n display: flex;\n\n .header-caption-wrapper {\n margin-left: var(--spacing-scale-2x);\n }\n\n .header-caption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--header-title-size);\n margin-top: 2px;\n }\n\n .header-subcaption {\n font-size: var(--header-subtitle-size);\n font-weight: 500;\n margin-top: var(--spacing-scale-half);\n }\n }\n\n .header-bottom-right {\n display: none;\n min-width: 268px;\n flex: 0 0 auto;\n\n &.is-active {\n display: flex;\n }\n }\n }\n\n .header-access {\n margin-left: var(--spacing-scale-3x);\n }\n\n .header-menu-trigger {\n margin-right: var(--spacing-scale-half);\n }\n\n .header-search {\n &[is-active] {\n align-items: center;\n background: var(--background);\n inset: 0;\n display: flex;\n padding: 0 var(--spacing-scale-2x);\n position: absolute;\n\n ::slotted(br-input) {\n width: 100%;\n }\n\n .search-close {\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header {\n .header-top {\n .header-top-right {\n position: relative;\n }\n }\n\n .header-bottom {\n .header-bottom-left {\n .header-caption {\n --header-title-size: var(--font-size-scale-up-02);\n\n margin-top: 0;\n }\n\n .header-subcaption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &.compact {\n .container-lg {\n position: relative;\n }\n\n .header-top {\n display: block;\n }\n\n .header-top-left {\n float: left;\n }\n\n .header-top-right {\n float: right;\n margin-top: var(--spacing-scale-2xh);\n position: relative;\n }\n\n .header-bottom {\n clear: left;\n }\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header {\n .header-bottom {\n .header-bottom-right {\n display: flex;\n }\n\n ::slotted([slot=\"search\"]) {\n width: 385px;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../utils/breakpoint-observer'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Nomes das áreas do cabeçalho.\n */\nconst HeaderSlotNames = {\n LOGO: 'logo',\n SIGNATURE: 'signature',\n LINKS: 'links',\n FUNCTIONS: 'functions',\n SEARCH_ICON: 'search-icon',\n SEARCH: 'search',\n ACCESS: 'access',\n MENU_TRIGGER: 'menu-trigger',\n CAPTION: 'caption',\n SUBCAPTION: 'subcaption',\n} as const\n\n/**\n * Tipo que representa os nomes das áreas do cabeçalho.\n */\ntype HeaderSlotName = (typeof HeaderSlotNames)[keyof typeof HeaderSlotNames]\n\n/**\n * Tipo que representa as configurações de uma área do cabeçalho.\n */\ntype HeaderAreaConfig = {\n cssClassMap: CssClassMap\n breakpoints: { loose: Breakpoint[]; compact: Breakpoint[] }\n hasContent: boolean\n isVisible: boolean\n isActive?: boolean\n event?: { click?: (event: MouseEvent) => void; focus?: (event: FocusEvent) => void }\n}\n\n/**\n * Tipo que representa as áreas do cabeçalho.\n */\ntype HeaderArea = {\n [K in HeaderSlotName]: HeaderAreaConfig\n}\n\n/**\n * Tipo que representa as densidades do cabeçalho.\n */\ntype HeaderDensity = 'small' | 'medium' | 'large'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot logo - Slot para a logo do cabeçalho.\n * @slot signature - Slot para a assinatura visual da organização.\n * @slot links - Slot para links de navegação principais.\n * @slot functions - Slot para botões de ação no cabeçalho.\n * @slot search - Slot para o campo de busca.\n * @slot access - Slot para o botão de acesso ou autenticação.\n * @slot menu-trigger - Slot para o botão que abre o menu.\n * @slot caption - Slot para o título do cabeçalho.\n * @slot subcaption - Slot para o subtítulo do cabeçalho.\n */\n@Component({\n tag: 'br-header',\n styleUrl: 'header.scss',\n shadow: true,\n})\nexport class Header {\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: HTMLBrHeaderElement\n\n /**\n * Texto exibido como título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly caption: string = null\n\n /**\n * URL associada ao título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly captionUrl: string = null\n\n /**\n * Identificador único do cabeçalho; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Densidade do cabeçalho: controla espaçamento e proporções.\n */\n @Prop({ reflect: true }) readonly density: HeaderDensity = 'medium'\n\n /**\n * Ativa o modo compacto do cabeçalho.\n */\n @Prop({ reflect: true, mutable: true }) isCompact: boolean = false\n\n /**\n * Fixa o cabeçalho no topo durante a rolagem.\n */\n @Prop({ reflect: true }) readonly isSticky: boolean = false\n\n /**\n * Texto da assinatura exibida ao lado da logo.\n */\n @Prop({ reflect: true }) readonly signature: string = null\n\n /**\n * Define qual lista encolhe primeiro quando o espaço é limitado.\n */\n @Prop({ reflect: true }) readonly shrinkFirst: 'links' | 'functions' = 'functions'\n\n /**\n * Texto exibido como subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaption: string = null\n\n /**\n * URL associada ao subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaptionUrl: string = null\n\n /**\n * Representa as configurações da área do cabeçalho.\n */\n @State() headerArea: HeaderArea = {\n [HeaderSlotNames.LOGO]: {\n cssClassMap: {\n 'header-logo': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SIGNATURE]: {\n cssClassMap: {\n 'header-signature': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [],\n },\n hasContent: Boolean(this.signature && this.signature.trim().length > 0),\n isVisible: Boolean(this.signature && this.signature.trim().length > 0),\n },\n [HeaderSlotNames.LINKS]: {\n cssClassMap: {\n 'header-links': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.FUNCTIONS]: {\n cssClassMap: {\n 'header-functions': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SEARCH_ICON]: {\n cssClassMap: {\n 'header-search-icon': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n event: {\n click: this.handleSearchIconClick.bind(this),\n focus: this.handleSearchIconFocus.bind(this),\n },\n },\n [HeaderSlotNames.SEARCH]: {\n cssClassMap: {\n 'header-search': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE)],\n compact: [],\n },\n hasContent: false,\n isVisible: false,\n isActive: false,\n },\n [HeaderSlotNames.ACCESS]: {\n cssClassMap: {\n 'header-access': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.MENU_TRIGGER]: {\n cssClassMap: {\n 'header-menu-trigger': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.CAPTION]: {\n cssClassMap: {\n 'header-caption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SUBCAPTION]: {\n cssClassMap: {\n 'header-subcaption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n }\n\n /**\n * Evento disparado quando o cabeçalho entra ou sai do modo compacto.\n * O evento contém os detalhes do estado compacto e o ID do componente pai.\n * @event headerCompactChange\n */\n @Event({\n eventName: 'headerCompactChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerCompactChange: EventEmitter<{ parentId: string; isCompact: boolean }>\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento contém os detalhes do ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerWidthChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerWidthChange: EventEmitter<{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }>\n\n /**\n * Observa mudanças na propriedade isCompact.\n * @param newValue O novo valor de isCompact.\n */\n @Watch('isCompact')\n watchIsCompact(newValue: boolean) {\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: newValue })\n this.verifyListSpace(this.shrinkFirst)\n }\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Indica o breakpoint atual.\n */\n private currentBreakpoint: Breakpoint\n\n /**\n * Armazena a posição de scroll do elemento pai.\n */\n private parentScrollTop = 0\n\n /**\n * Timeout para o evento de redimensionamento.\n */\n private resizeTimeout: number = null\n\n /**\n * Listener para o evento 'headerListUpdate', disparado pelos componentes filhos 'br-header-list'.\n * O evento contém o ID do componente pai e o nome da lista.\n */\n @Listen('headerListUpdate', { target: 'document', passive: true })\n private handleHeaderListUpdate(event: CustomEvent<{ id: string; listName: string }>) {\n if (event.detail.id === this.customId) {\n requestAnimationFrame(() => {\n switch (event.detail.listName) {\n case 'functions':\n this.verifyListSpace('links')\n break\n case 'links':\n this.verifyListSpace('functions')\n break\n }\n })\n }\n }\n\n /**\n * Listener para o evento 'resize' da janela.\n * Dispara o evento de redimensionamento do cabeçalho após um breve atraso de 100ms\n */\n @Listen('resize', { target: 'window', passive: true })\n private handleListResize() {\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(() => {\n this.headerWidthChange.emit({ id: this.customId, listNames: ['links', 'functions'], shrink: false })\n }, 100)\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.syncHeaderAreaStates()\n this.setScrollOnParent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado ao DOM.\n */\n componentDidLoad() {\n this.monitorSlotContent()\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: this.isCompact })\n this.verifyListSpace(this.shrinkFirst)\n\n void this.handleHeaderListUpdate\n void this.handleListResize\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetScrollOnParent()\n this.breakpointObserver.unsubscribe(this.handleBreakpointChange.bind(this))\n this.breakpointObserver.destroy()\n clearTimeout(this.resizeTimeout)\n }\n\n /**\n * Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.\n * Pode ser chamado externamente para forçar a atualização das listas.\n */\n @Method()\n async resetHeaderList() {\n this.handleListResize()\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange(breakpoint: Breakpoint) {\n this.currentBreakpoint = breakpoint\n Object.keys(this.headerArea).forEach((area) => {\n const name = area as HeaderSlotName\n this.controlHeaderAreaUpdateStates(name)\n })\n }\n\n /**\n * Manipula o evento de scroll no elemento pai.\n */\n private handleParentScroll = () => {\n const parent = this.el.parentElement\n if (parent == null) return\n\n const atTop = parent.scrollTop === 0\n const shouldBeCompact = this.isSticky && !atTop\n\n if (this.isCompact !== shouldBeCompact) {\n this.parentScrollTop = parent.scrollTop\n this.isCompact = shouldBeCompact\n requestAnimationFrame(() => {\n parent.scrollTop = this.parentScrollTop\n })\n this.handleBreakpointChange(this.currentBreakpoint)\n }\n }\n\n /**\n * Manipula o clique no botão de fechar busca.\n */\n private handleSearchCloseClick = () => {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isActive: false,\n isVisible: this.headerArea[HeaderSlotNames.SEARCH]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint),\n })\n }\n\n /**\n * Manipula o clique no ícone de busca.\n */\n private handleSearchIconClick() {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isVisible: true,\n isActive: true,\n })\n }\n\n /**\n * Manipula o foco no ícone de busca.\n */\n private handleSearchIconFocus() {\n this.el.shadowRoot.querySelectorAll('slot[name=\"links\"], slot[name=\"functions\"]').forEach((slot: Element) => {\n const brHeaderList = (slot as HTMLSlotElement)\n .assignedElements()\n .find((el) => el.tagName.toLowerCase() === 'br-header-list')\n if (brHeaderList != null) {\n ;(brHeaderList as HTMLBrHeaderListElement).closeList()\n }\n })\n }\n\n /**\n *\n * Controla a atualização dos estados da área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n */\n private controlHeaderAreaUpdateStates(name: HeaderSlotName) {\n const state = this.headerArea[name]?.breakpoints[`${this.isCompact ? 'compact' : 'loose'}`]?.includes(\n this.currentBreakpoint\n )\n switch (name) {\n case HeaderSlotNames.SEARCH:\n this.updateHeaderArea(name, {\n isVisible: state,\n isActive: state ? null : this.headerArea[name]?.isActive,\n })\n break\n default:\n this.updateHeaderArea(name, {\n isVisible: state,\n })\n }\n }\n\n /**\n * Retorna um mapa de classes CSS para o componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header': true,\n compact: this.isCompact,\n small: this.density === 'small' && !this.isCompact,\n large: this.density === 'large' && !this.isCompact,\n }\n }\n\n /**\n * Verifica se um valor é um nome de slot de cabeçalho válido.\n * @param value O valor a ser verificado.\n * @returns Um valor booleano indicando se o valor é um nome de slot de cabeçalho válido.\n */\n private isHeaderSlotName(value: string): value is HeaderSlotName {\n return Object.values(HeaderSlotNames).includes(value as HeaderSlotName)\n }\n\n /**\n * Monitora as mudanças de conteúdo dos slots.\n */\n private monitorSlotContent() {\n this.el.shadowRoot.querySelectorAll('slot').forEach((slot) => {\n slot.addEventListener('slotchange', () => {\n const slotName = slot.name\n if (this.isHeaderSlotName(slotName)) {\n this.updateHeaderArea(slotName, { hasContent: slot.assignedNodes().length > 0 })\n }\n })\n })\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange.bind(this))\n }\n\n /**\n * Configura o evento de scroll no elemento pai.\n */\n private setScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.addEventListener('scroll', this.handleParentScroll)\n this.handleParentScroll()\n }\n }\n\n /**\n * Atualiza o estado da área do cabeçalho com base no conteúdo dos slots.\n */\n private syncHeaderAreaStates() {\n this.el.querySelectorAll('[slot]').forEach((element) => {\n const slotName = element.slot\n if (this.isHeaderSlotName(slotName)) {\n this.headerArea[slotName].hasContent = true\n this.headerArea[slotName].isVisible = this.headerArea[slotName]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint)\n }\n })\n }\n\n /**\n * Remove scroll event listener from parent element.\n */\n private unsetScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.removeEventListener('scroll', this.handleParentScroll)\n }\n }\n\n /**\n * Atualiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @param updates As atualizações a serem aplicadas.\n */\n private updateHeaderArea(name: HeaderSlotName, updates: Partial<HeaderAreaConfig>) {\n this.headerArea = {\n ...this.headerArea,\n [name]: { ...this.headerArea[name], ...updates },\n }\n }\n\n /**\n * Verifica o espaço disponível para uma lista específica no cabeçalho.\n * @param listName O nome da lista a ser verificada.\n */\n private verifyListSpace(listName: 'links' | 'functions') {\n let style, paddingLeft, paddingRight, totalWidth, bottomLeftWidth, topLeftWidth, topRightWidth, availableWidth\n if (this.isCompact) {\n style = window.getComputedStyle(this.el)\n paddingLeft = parseFloat(style.paddingLeft) || 0\n paddingRight = parseFloat(style.paddingRight) || 0\n totalWidth = this.el.clientWidth - paddingLeft - paddingRight\n bottomLeftWidth = this.el.shadowRoot.querySelector('.header-bottom-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - bottomLeftWidth\n } else {\n totalWidth = this.el.shadowRoot.querySelector('.header-top')?.clientWidth || 0\n topLeftWidth = this.el.shadowRoot.querySelector('.header-top-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - topLeftWidth\n }\n\n const isOverflowing = topRightWidth > availableWidth\n if (isOverflowing) {\n this.headerWidthChange.emit({ id: this.customId, listNames: [listName], shrink: true })\n }\n }\n\n /**\n * Renderiza o conteúdo padrão do título.\n * @returns Um elemento JSX representando o conteúdo padrão do título.\n */\n private renderDefaultCaptionContent() {\n return typeof this.caption === 'string' && this.caption.trim().length > 0 ? (\n typeof this.captionUrl === 'string' && this.captionUrl.trim().length > 0 ? (\n <a href={this.captionUrl} class=\"caption-link\">\n {this.caption}\n </a>\n ) : (\n <span class=\"caption-text\">{this.caption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão da assinatura.\n * @returns Um elemento JSX representando o conteúdo padrão da assinatura.\n */\n private renderDefaultSignatureContent() {\n return typeof this.signature === 'string' && this.signature.trim().length > 0 ? (\n <span class=\"signature-text\">{this.signature}</span>\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão do subtítulo.\n * @returns Um elemento JSX representando o conteúdo padrão do subtítulo.\n */\n private renderDefaultSubcaptionContent() {\n return typeof this.subcaption === 'string' && this.subcaption.trim().length > 0 ? (\n typeof this.subcaptionUrl === 'string' && this.subcaptionUrl.trim().length > 0 ? (\n <a href={this.subcaptionUrl} class=\"subcaption-link\">\n {this.subcaption}\n </a>\n ) : (\n <span class=\"subcaption-text\">{this.subcaption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o divisor entre as áreas do cabeçalho.\n * @param mainArea A área principal do cabeçalho.\n * @param secondaryAreas As áreas secundárias do cabeçalho.\n * @returns Um elemento JSX representando o divisor entre as áreas do cabeçalho.\n */\n private renderDivider(mainArea: HeaderSlotName, secondaryAreas: HeaderSlotName[] = []) {\n const isVisible =\n this.headerArea[mainArea]?.hasContent &&\n this.headerArea[mainArea]?.isVisible &&\n secondaryAreas.some((area) => this.headerArea[area]?.hasContent && this.headerArea[area]?.isVisible)\n return <br-divider orientation=\"vertical\" class=\"header-divider\" hidden={!isVisible}></br-divider>\n }\n\n /**\n * Renderiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @returns Um elemento JSX representando a área do cabeçalho.\n */\n private renderHeaderArea(name: HeaderSlotName) {\n return (\n <div\n class={this.headerArea[name]?.cssClassMap}\n hidden={!this.headerArea[name]?.isVisible && !this.headerArea[name]?.isActive}\n is-active={this.headerArea[name]?.isActive}\n onClick={this.headerArea[name]?.event?.click}\n onFocusin={this.headerArea[name]?.event?.focus}\n >\n <slot name={name}>{this.renderSlotDefaultContent(name)}</slot>\n {name === HeaderSlotNames.SEARCH && this.headerArea[name]?.isActive && this.renderSearchCloseButton()}\n </div>\n )\n }\n\n /**\n * Renderiza o botão de fechar busca.\n * @returns Um elemento JSX representando o botão de fechar busca.\n */\n private renderSearchCloseButton() {\n return (\n <br-button\n class=\"search-close\"\n shape=\"circle\"\n density=\"small\"\n emphasis=\"tertiary\"\n onClick={this.handleSearchCloseClick}\n aria-label=\"Fechar busca\"\n >\n <br-icon iconName=\"fa7-solid:close\"></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o conteúdo padrão do slot.\n * @param name O nome do slot.\n * @returns Um elemento JSX representando o conteúdo padrão do slot.\n */\n private renderSlotDefaultContent(name: HeaderSlotName) {\n switch (name) {\n case HeaderSlotNames.CAPTION:\n return this.renderDefaultCaptionContent()\n case HeaderSlotNames.SUBCAPTION:\n return this.renderDefaultSubcaptionContent()\n case HeaderSlotNames.SIGNATURE:\n return this.renderDefaultSignatureContent()\n default:\n return null\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <header id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <div class=\"header-top\">\n <div class=\"header-top-left\">\n {this.renderHeaderArea(HeaderSlotNames.LOGO)}\n {this.renderDivider(HeaderSlotNames.LOGO, [HeaderSlotNames.SIGNATURE])}\n {this.renderHeaderArea(HeaderSlotNames.SIGNATURE)}\n </div>\n <div class=\"header-top-right\">\n {this.renderHeaderArea(HeaderSlotNames.LINKS)}\n {this.renderDivider(HeaderSlotNames.LINKS, [HeaderSlotNames.FUNCTIONS, HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.FUNCTIONS)}\n {this.renderDivider(HeaderSlotNames.FUNCTIONS, [HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.SEARCH_ICON)}\n {this.renderHeaderArea(HeaderSlotNames.ACCESS)}\n </div>\n </div>\n <div class=\"header-bottom\">\n <div class=\"header-bottom-left\">\n {this.renderHeaderArea(HeaderSlotNames.MENU_TRIGGER)}\n <div class=\"header-caption-wrapper\">\n {this.renderHeaderArea(HeaderSlotNames.CAPTION)}\n {this.renderHeaderArea(HeaderSlotNames.SUBCAPTION)}\n </div>\n </div>\n <div\n class={{\n 'header-bottom-right': true,\n 'is-active': this.headerArea[HeaderSlotNames.SEARCH]?.isActive,\n }}\n >\n {this.renderHeaderArea(HeaderSlotNames.SEARCH)}\n </div>\n </div>\n </div>\n </header>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { I as o, d as s } from "./p-D0dPo1K5.js";
5
+ import { I as o, d as s } from "./p-CwtLw60M.js";
6
6
 
7
7
  const t = o;
8
8
 
@@ -2,12 +2,12 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { L as o, d as s } from "./p-OKkBxn1z.js";
5
+ import { L as o, d as s } from "./p-lIb35q2K.js";
6
6
 
7
7
  const t = o;
8
8
 
9
- const n = s;
9
+ const p = s;
10
10
 
11
- export { t as BrList, n as defineCustomElement };
11
+ export { t as BrList, p as defineCustomElement };
12
12
  //# sourceMappingURL=br-list.js.map
13
13
  //# sourceMappingURL=br-list.js.map
@@ -2,29 +2,27 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { p as e, H as t, d as a, h as r, c as i } from "./p-DSkSDmzD.js";
5
+ import { p as e, H as a, d as t, h as r, c as i } from "./p-DSkSDmzD.js";
6
6
 
7
- import { _ as o } from "./p-DIPMDb5E.js";
7
+ import { d as o } from "./p-AOxMWARt.js";
8
8
 
9
- import { d as n } from "./p-AOxMWARt.js";
9
+ import { d as n } from "./p-CBj_WCYf.js";
10
10
 
11
- import { d as s } from "./p-CBj_WCYf.js";
11
+ const s = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-message{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);background:var(--message-background);display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:var(--spacing-scale-2x)}.br-message .content{color:var(--message-text);-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:var(--font-size-scale-up-01);padding:var(--spacing-scale-3x) var(--spacing-scale-base) var(--spacing-scale-3x) var(--spacing-scale-2x)}.br-message .content .message-title{font-weight:var(--font-weight-semi-bold)}.br-message .content .message-body{font-weight:var(--font-weigth-regular)}.br-message .content a{font-weight:var(--font-weight-bold);text-decoration:underline}.br-message .content *:last-child{margin-bottom:0}.br-message .icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--message-color-icon);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:var(--spacing-vertical-center) var(--spacing-scale-2x);padding-left:var(--spacing-scale-2x);padding-right:var(--spacing-scale-2x)}.br-message .icon+.content{padding-left:0}.br-message .close{margin-right:var(--spacing-scale-base);margin-top:var(--spacing-scale-base)}.br-message.success,.br-message[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.br-message.success .close .br-button,.br-message[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.br-message.danger,.br-message[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.br-message.danger .close .br-button,.br-message[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.br-message.info,.br-message[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.br-message.info .close .br-button,.br-message[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.br-message.warning,.br-message[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.br-message.warning .close .br-button,.br-message[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}.feedback{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--feedback-background);color:var(--message-text);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-style:italic;font-weight:var(--font-weight-medium);margin-bottom:0;padding:var(--spacing-scale-half)}.feedback .fab{margin-right:var(--spacing-scale-half)}.feedback:not(.is-warning):not(.warning):not([warning]){--message-text:var(--pure-0)}.feedback.warning,.feedback[warning]{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light)}.feedback.success,.feedback[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.feedback.success .close .br-button,.feedback[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.feedback.danger,.feedback[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.feedback.danger .close .br-button,.feedback[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.feedback.info,.feedback[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.feedback.info .close .br-button,.feedback[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.feedback.warning,.feedback[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.feedback.warning .close .br-button,.feedback[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host{display:block}:host .icon-space{margin-right:var(--spacing-scale-half)}:host .br-message .content .message-title{margin-right:5px}:host .br-message .close br-button{--interactive:var(--message-color-icon)}:host .br-message.warning .close br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host .br-message.success .close br-button{--interactive-rgb:var(--success-rgb)}:host .br-message.danger .close br-button{--interactive-rgb:var(--danger-rgb)}:host .br-message.info .close br-button{--interactive-rgb:var(--info-rgb)}";
12
12
 
13
- const c = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-message{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);background:var(--message-background);display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:var(--spacing-scale-2x)}.br-message .content{color:var(--message-text);-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:var(--font-size-scale-up-01);padding:var(--spacing-scale-3x) var(--spacing-scale-base) var(--spacing-scale-3x) var(--spacing-scale-2x)}.br-message .content .message-title{font-weight:var(--font-weight-semi-bold)}.br-message .content .message-body{font-weight:var(--font-weigth-regular)}.br-message .content a{font-weight:var(--font-weight-bold);text-decoration:underline}.br-message .content *:last-child{margin-bottom:0}.br-message .icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--message-color-icon);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:var(--spacing-vertical-center) var(--spacing-scale-2x);padding-left:var(--spacing-scale-2x);padding-right:var(--spacing-scale-2x)}.br-message .icon+.content{padding-left:0}.br-message .close{margin-right:var(--spacing-scale-base);margin-top:var(--spacing-scale-base)}.br-message.success,.br-message[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.br-message.success .close .br-button,.br-message[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.br-message.danger,.br-message[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.br-message.danger .close .br-button,.br-message[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.br-message.info,.br-message[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.br-message.info .close .br-button,.br-message[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.br-message.warning,.br-message[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.br-message.warning .close .br-button,.br-message[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}.feedback{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--feedback-background);color:var(--message-text);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-style:italic;font-weight:var(--font-weight-medium);margin-bottom:0;padding:var(--spacing-scale-half)}.feedback .fab{margin-right:var(--spacing-scale-half)}.feedback:not(.is-warning):not(.warning):not([warning]){--message-text:var(--pure-0)}.feedback.warning,.feedback[warning]{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light)}.feedback.success,.feedback[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.feedback.success .close .br-button,.feedback[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.feedback.danger,.feedback[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.feedback.danger .close .br-button,.feedback[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.feedback.info,.feedback[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.feedback.info .close .br-button,.feedback[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.feedback.warning,.feedback[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.feedback.warning .close .br-button,.feedback[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host{display:block}:host .icon-space{margin-right:var(--spacing-scale-half)}:host .br-message .content .message-title{margin-right:5px}:host .br-message .close br-button{--interactive:var(--message-color-icon)}:host .br-message.warning .close br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host .br-message.success .close br-button{--interactive-rgb:var(--success-rgb)}:host .br-message.danger .close br-button{--interactive-rgb:var(--danger-rgb)}:host .br-message.info .close br-button{--interactive-rgb:var(--info-rgb)}";
14
-
15
- const l = e(class e extends t {
13
+ const c = e(class e extends a {
16
14
  constructor(e) {
17
15
  super();
18
16
  if (e !== false) {
19
17
  this.__registerHost();
20
18
  }
21
19
  this.__attachShadow();
22
- this.brDidClose = a(this, "brDidClose", 7);
20
+ this.brDidClose = t(this, "brDidClose", 7);
23
21
  this.elementInternals = this.attachInternals();
24
22
  /**
25
23
  * Identificador único.
26
24
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
27
- */ this.customId = `br-message-${g++}`
25
+ */ this.customId = `br-message-${l++}`
28
26
  /**
29
27
  * Se definido como verdadeiro, o título da mensagem será exibido na mesma linha que a mensagem principal.
30
28
  * Isso pode ser útil para criar um layout onde o título e a mensagem estão alinhados horizontalmente.
@@ -82,22 +80,20 @@ const l = e(class e extends t {
82
80
  }
83
81
  };
84
82
  }
85
- componentDidLoad() {
86
- return o(this, void 0, void 0, (function*() {
87
- var e, t;
88
- if (this.isClosable && !this.isFeedback) {
89
- this.previousFocus = document.activeElement;
90
- yield new Promise((e => setTimeout(e, 150)));
91
- const a = (e = this.el.shadowRoot) === null || e === void 0 ? void 0 : e.querySelector("br-button");
92
- if (a != null) {
93
- const e = (t = a.shadowRoot) === null || t === void 0 ? void 0 : t.querySelector("button");
94
- e === null || e === void 0 ? void 0 : e.focus();
95
- }
96
- }
97
- if (this.isClosable && this.autoRemove) {
98
- this.el.addEventListener("keydown", this.handleKeyDown);
83
+ async componentDidLoad() {
84
+ var e, a;
85
+ if (this.isClosable && !this.isFeedback) {
86
+ this.previousFocus = document.activeElement;
87
+ await new Promise((e => setTimeout(e, 150)));
88
+ const t = (e = this.el.shadowRoot) === null || e === void 0 ? void 0 : e.querySelector("br-button");
89
+ if (t != null) {
90
+ const e = (a = t.shadowRoot) === null || a === void 0 ? void 0 : a.querySelector("button");
91
+ e === null || e === void 0 ? void 0 : e.focus();
99
92
  }
100
- }));
93
+ }
94
+ if (this.isClosable && this.autoRemove) {
95
+ this.el.addEventListener("keydown", this.handleKeyDown);
96
+ }
101
97
  }
102
98
  disconnectedCallback() {
103
99
  if (this.isClosable && !this.autoRemove) {
@@ -183,7 +179,7 @@ const l = e(class e extends t {
183
179
  return this;
184
180
  }
185
181
  static get style() {
186
- return c;
182
+ return s;
187
183
  }
188
184
  }, [ 321, "br-message", {
189
185
  messageTitle: [ 513, "message-title" ],
@@ -198,7 +194,7 @@ const l = e(class e extends t {
198
194
  ariaLabel: [ 513, "aria-label" ]
199
195
  } ]);
200
196
 
201
- let g = 0;
197
+ let l = 0;
202
198
 
203
199
  function defineCustomElement$1() {
204
200
  if (typeof customElements === "undefined") {
@@ -209,29 +205,29 @@ function defineCustomElement$1() {
209
205
  switch (e) {
210
206
  case "br-message":
211
207
  if (!customElements.get(e)) {
212
- customElements.define(e, l);
208
+ customElements.define(e, c);
213
209
  }
214
210
  break;
215
211
 
216
212
  case "br-button":
217
213
  if (!customElements.get(e)) {
218
- n();
214
+ o();
219
215
  }
220
216
  break;
221
217
 
222
218
  case "br-icon":
223
219
  if (!customElements.get(e)) {
224
- s();
220
+ n();
225
221
  }
226
222
  break;
227
223
  }
228
224
  }));
229
225
  }
230
226
 
231
- const b = l;
227
+ const g = c;
232
228
 
233
- const d = defineCustomElement$1;
229
+ const b = defineCustomElement$1;
234
230
 
235
- export { b as BrMessage, d as defineCustomElement };
231
+ export { g as BrMessage, b as defineCustomElement };
236
232
  //# sourceMappingURL=br-message.js.map
237
233
  //# sourceMappingURL=br-message.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["messageCss","Message","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","messageId","isInline","isClosable","autoRemove","showIcon","isFeedback","state","ariaLabel","previousFocus","dismissHandler","brDidClose","emit","focus","el","remove","handleKeyDown","event","key","preventDefault","componentDidLoad","document","activeElement","Promise","resolve","setTimeout","closeButton","_a","shadowRoot","querySelector","button","_b","addEventListener","disconnectedCallback","removeEventListener","checkIconState","iconMap","success","warning","danger","info","getAriaLive","getStateLabel","labelMap","getCssClassMap","render","h","Host","class","role","id","message","length","height","name","messageTitle","shape","type","onClick"],"sources":["../../packages/webcomponents/src/components/message/message.scss?tag=br-message&encapsulation=shadow","../../packages/webcomponents/src/components/message/message.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/message/message\";\n\n:host {\n display: block;\n\n .icon-space {\n margin-right: var(--spacing-scale-half);\n }\n\n $br-message-color-map: (\n success: var(--success-rgb),\n danger: var(--danger-rgb),\n info: var(--info-rgb),\n );\n\n .br-message {\n .content .message-title {\n margin-right: 5px;\n }\n\n .close br-button {\n --interactive: var(--message-color-icon);\n }\n\n &.warning .close br-button {\n --interactive: var(--color);\n --interactive-rgb: var(--color-rgb);\n }\n\n @each $variant, $rgb in $br-message-color-map {\n &.#{$variant} .close br-button {\n --interactive-rgb: #{$rgb};\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/message?tab=designer).\n *\n * @slot default - Utilizado para inserir qualquer conteúdo que será exibido no corpo da mensagem.\n *\n * @slot icon - Slot para ícone customizado. Se usado, certifique-se de adicionar aria-label apropriado ou aria-hidden=\"true\" se for decorativo.\n */\n@Component({\n tag: 'br-message',\n styleUrl: 'message.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Message {\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: HTMLBrMessageElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o título da mensagem, que é exibido no início, acima da mensagem principal.\n * Este título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly messageTitle: string\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-message-${messageId++}`\n\n /**\n * Define o texto da mensagem que será exibido.\n * Este é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça.\n */\n @Prop({ reflect: true }) readonly message!: string\n\n /**\n * Se definido como verdadeiro, o título da mensagem será exibido na mesma linha que a mensagem principal.\n * Isso pode ser útil para criar um layout onde o título e a mensagem estão alinhados horizontalmente.\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\n * O 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`.\n * Este recurso não está disponível para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly isClosable: boolean = false\n\n /**\n * 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 *\n * Esta propriedade não tem efeito se `isClosable` for `false`.\n * O valor padrão é `false`.\n */\n @Prop({ reflect: true }) autoRemove: boolean = false\n\n /**\n * Se definido como verdadeiro, um ícone associado à mensagem será exibido.\n * Use esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário.\n */\n @Prop({ reflect: true }) readonly showIcon: boolean = false\n\n /**\n * Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\n * Exemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback.\n */\n @Prop({ reflect: true }) readonly isFeedback: boolean = false\n\n /**\n * Define o estado do message.\n * Os 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.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n /**\n * Define um rótulo customizado para leitores de tela.\n * Se não fornecido, será gerado automaticamente baseado no estado da mensagem.\n * Exemplo: \"Mensagem de sucesso\", \"Mensagem de erro\", etc.\n */\n @Prop({ reflect: true }) readonly ariaLabel: string = ''\n\n /** Evento emitido quando o usuário fecha a mensagem, se closable for true. */\n @Event() brDidClose: EventEmitter\n\n private previousFocus: HTMLElement | null = null\n\n private readonly dismissHandler = () => {\n this.brDidClose.emit()\n\n if (this.previousFocus && this.isClosable) {\n this.previousFocus.focus()\n }\n\n if (this.autoRemove) {\n this.el.remove()\n }\n }\n\n async componentDidLoad() {\n if (this.isClosable && !this.isFeedback) {\n this.previousFocus = document.activeElement as HTMLElement\n\n await new Promise((resolve) => setTimeout(resolve, 150))\n\n const closeButton = this.el.shadowRoot?.querySelector('br-button')\n if (closeButton != null) {\n const button = closeButton.shadowRoot?.querySelector('button')\n button?.focus()\n }\n }\n\n if (this.isClosable && this.autoRemove) {\n this.el.addEventListener('keydown', this.handleKeyDown as EventListener)\n }\n }\n\n disconnectedCallback() {\n if (this.isClosable && !this.autoRemove) {\n this.el.removeEventListener('keydown', this.handleKeyDown as EventListener)\n }\n }\n\n private readonly handleKeyDown = (event: KeyboardEvent) => {\n if (this.isClosable && this.autoRemove && event.key === 'Escape') {\n event.preventDefault()\n this.dismissHandler()\n }\n }\n\n private checkIconState() {\n const iconMap = {\n success: 'fa-solid:check-circle',\n warning: 'fa-solid:exclamation-triangle',\n danger: 'fa-solid:times-circle',\n info: 'fa-solid:info-circle',\n }\n return iconMap[this.state] || 'check-circle'\n }\n\n private getAriaLive(): 'polite' | 'assertive' {\n return this.state === 'warning' || this.state === 'danger' ? 'assertive' : 'polite'\n }\n\n private getStateLabel(): string {\n const labelMap = {\n success: 'Mensagem de sucesso',\n warning: 'Mensagem de aviso',\n danger: 'Mensagem de erro',\n info: 'Mensagem informativa',\n }\n return labelMap[this.state]\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-message': true,\n [this.state]: true,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isFeedback ? (\n <span\n class={`feedback ${this.state}`}\n role=\"status\"\n aria-live={this.getAriaLive()}\n aria-label={this.ariaLabel || this.getStateLabel()}\n aria-atomic=\"true\"\n id={this.customId}\n >\n {this.showIcon ? <br-icon class=\"icon-space\" icon-name={this.checkIconState()}></br-icon> : null}\n {this.message && this.message.length > 0 ? this.message : <slot></slot>}\n </span>\n ) : (\n <div\n class={this.getCssClassMap()}\n role=\"status\"\n aria-live={this.getAriaLive()}\n aria-label={this.ariaLabel || this.getStateLabel()}\n id={this.customId}\n >\n <div class=\"icon\">\n {this.showIcon ? (\n <br-icon icon-name={this.checkIconState()} height=\"20\" aria-hidden=\"true\"></br-icon>\n ) : (\n <slot name=\"icon\"></slot>\n )}\n </div>\n <div class=\"content\">\n {this.message && this.message.length > 0 ? (\n <div>\n {this.messageTitle && <span class=\"message-title\">{this.messageTitle}</span>}\n {this.messageTitle && !this.isInline && <br />}\n {this.message && <span class=\"message-body\">{this.message}</span>}\n </div>\n ) : (\n <div>\n {this.messageTitle && this.isInline && <strong>{this.messageTitle}</strong>}\n {this.messageTitle && !this.isInline && <br />}\n <slot></slot>\n </div>\n )}\n </div>\n {this.isClosable && !this.isFeedback && (\n <div class=\"close\">\n <br-button shape=\"circle\" type=\"button\" aria-label=\"Fechar a mensagem\" onClick={this.dismissHandler}>\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n )}\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet messageId = 0\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["messageCss","Message","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","messageId","isInline","isClosable","autoRemove","showIcon","isFeedback","state","ariaLabel","previousFocus","dismissHandler","brDidClose","emit","focus","el","remove","handleKeyDown","event","key","preventDefault","componentDidLoad","document","activeElement","Promise","resolve","setTimeout","closeButton","_a","shadowRoot","querySelector","button","_b","addEventListener","disconnectedCallback","removeEventListener","checkIconState","iconMap","success","warning","danger","info","getAriaLive","getStateLabel","labelMap","getCssClassMap","render","h","Host","class","role","id","message","length","height","name","messageTitle","shape","type","onClick"],"sources":["../../packages/webcomponents/src/components/message/message.scss?tag=br-message&encapsulation=shadow","../../packages/webcomponents/src/components/message/message.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/message/message\";\n\n:host {\n display: block;\n\n .icon-space {\n margin-right: var(--spacing-scale-half);\n }\n\n $br-message-color-map: (\n success: var(--success-rgb),\n danger: var(--danger-rgb),\n info: var(--info-rgb),\n );\n\n .br-message {\n .content .message-title {\n margin-right: 5px;\n }\n\n .close br-button {\n --interactive: var(--message-color-icon);\n }\n\n &.warning .close br-button {\n --interactive: var(--color);\n --interactive-rgb: var(--color-rgb);\n }\n\n @each $variant, $rgb in $br-message-color-map {\n &.#{$variant} .close br-button {\n --interactive-rgb: #{$rgb};\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/message?tab=designer).\n *\n * @slot default - Utilizado para inserir qualquer conteúdo que será exibido no corpo da mensagem.\n *\n * @slot icon - Slot para ícone customizado. Se usado, certifique-se de adicionar aria-label apropriado ou aria-hidden=\"true\" se for decorativo.\n */\n@Component({\n tag: 'br-message',\n styleUrl: 'message.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Message {\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: HTMLBrMessageElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o título da mensagem, que é exibido no início, acima da mensagem principal.\n * Este título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly messageTitle: string\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-message-${messageId++}`\n\n /**\n * Define o texto da mensagem que será exibido.\n * Este é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça.\n */\n @Prop({ reflect: true }) readonly message!: string\n\n /**\n * Se definido como verdadeiro, o título da mensagem será exibido na mesma linha que a mensagem principal.\n * Isso pode ser útil para criar um layout onde o título e a mensagem estão alinhados horizontalmente.\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\n * O 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`.\n * Este recurso não está disponível para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly isClosable: boolean = false\n\n /**\n * 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 *\n * Esta propriedade não tem efeito se `isClosable` for `false`.\n * O valor padrão é `false`.\n */\n @Prop({ reflect: true }) autoRemove: boolean = false\n\n /**\n * Se definido como verdadeiro, um ícone associado à mensagem será exibido.\n * Use esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário.\n */\n @Prop({ reflect: true }) readonly showIcon: boolean = false\n\n /**\n * Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\n * Exemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback.\n */\n @Prop({ reflect: true }) readonly isFeedback: boolean = false\n\n /**\n * Define o estado do message.\n * Os 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.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n /**\n * Define um rótulo customizado para leitores de tela.\n * Se não fornecido, será gerado automaticamente baseado no estado da mensagem.\n * Exemplo: \"Mensagem de sucesso\", \"Mensagem de erro\", etc.\n */\n @Prop({ reflect: true }) readonly ariaLabel: string = ''\n\n /** Evento emitido quando o usuário fecha a mensagem, se closable for true. */\n @Event() brDidClose: EventEmitter\n\n private previousFocus: HTMLElement | null = null\n\n private readonly dismissHandler = () => {\n this.brDidClose.emit()\n\n if (this.previousFocus && this.isClosable) {\n this.previousFocus.focus()\n }\n\n if (this.autoRemove) {\n this.el.remove()\n }\n }\n\n async componentDidLoad() {\n if (this.isClosable && !this.isFeedback) {\n this.previousFocus = document.activeElement as HTMLElement\n\n await new Promise((resolve) => setTimeout(resolve, 150))\n\n const closeButton = this.el.shadowRoot?.querySelector('br-button')\n if (closeButton != null) {\n const button = closeButton.shadowRoot?.querySelector('button')\n button?.focus()\n }\n }\n\n if (this.isClosable && this.autoRemove) {\n this.el.addEventListener('keydown', this.handleKeyDown as EventListener)\n }\n }\n\n disconnectedCallback() {\n if (this.isClosable && !this.autoRemove) {\n this.el.removeEventListener('keydown', this.handleKeyDown as EventListener)\n }\n }\n\n private readonly handleKeyDown = (event: KeyboardEvent) => {\n if (this.isClosable && this.autoRemove && event.key === 'Escape') {\n event.preventDefault()\n this.dismissHandler()\n }\n }\n\n private checkIconState() {\n const iconMap = {\n success: 'fa-solid:check-circle',\n warning: 'fa-solid:exclamation-triangle',\n danger: 'fa-solid:times-circle',\n info: 'fa-solid:info-circle',\n }\n return iconMap[this.state] || 'check-circle'\n }\n\n private getAriaLive(): 'polite' | 'assertive' {\n return this.state === 'warning' || this.state === 'danger' ? 'assertive' : 'polite'\n }\n\n private getStateLabel(): string {\n const labelMap = {\n success: 'Mensagem de sucesso',\n warning: 'Mensagem de aviso',\n danger: 'Mensagem de erro',\n info: 'Mensagem informativa',\n }\n return labelMap[this.state]\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-message': true,\n [this.state]: true,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isFeedback ? (\n <span\n class={`feedback ${this.state}`}\n role=\"status\"\n aria-live={this.getAriaLive()}\n aria-label={this.ariaLabel || this.getStateLabel()}\n aria-atomic=\"true\"\n id={this.customId}\n >\n {this.showIcon ? <br-icon class=\"icon-space\" icon-name={this.checkIconState()}></br-icon> : null}\n {this.message && this.message.length > 0 ? this.message : <slot></slot>}\n </span>\n ) : (\n <div\n class={this.getCssClassMap()}\n role=\"status\"\n aria-live={this.getAriaLive()}\n aria-label={this.ariaLabel || this.getStateLabel()}\n id={this.customId}\n >\n <div class=\"icon\">\n {this.showIcon ? (\n <br-icon icon-name={this.checkIconState()} height=\"20\" aria-hidden=\"true\"></br-icon>\n ) : (\n <slot name=\"icon\"></slot>\n )}\n </div>\n <div class=\"content\">\n {this.message && this.message.length > 0 ? (\n <div>\n {this.messageTitle && <span class=\"message-title\">{this.messageTitle}</span>}\n {this.messageTitle && !this.isInline && <br />}\n {this.message && <span class=\"message-body\">{this.message}</span>}\n </div>\n ) : (\n <div>\n {this.messageTitle && this.isInline && <strong>{this.messageTitle}</strong>}\n {this.messageTitle && !this.isInline && <br />}\n <slot></slot>\n </div>\n )}\n </div>\n {this.isClosable && !this.isFeedback && (\n <div class=\"close\">\n <br-button shape=\"circle\" type=\"button\" aria-label=\"Fechar a mensagem\" onClick={this.dismissHandler}>\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n )}\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet messageId = 0\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAa;;MCmBNC,KAAOC,EAAA,MAAAD,UAAAE;EANpB,WAAAC,CAAAC;;;;;;;;;;;eAyBoCC,KAAAC,WAAmB,cAAcC;;;;;IAYjCF,KAAQG,WAAY;;;;;eAOpBH,KAAUI,aAAY;;;;;;;;eAU/BJ,KAAUK,aAAY;;;;eAMbL,KAAQM,WAAY;;;;eAMpBN,KAAUO,aAAY;;;;;;;;;eAWtBP,KAAKQ,QAA8C;;;;;eAOnDR,KAASS,YAAW;IAK9CT,KAAaU,gBAAuB;IAE3BV,KAAcW,iBAAG;MAChCX,KAAKY,WAAWC;MAEhB,IAAIb,KAAKU,iBAAiBV,KAAKI,YAAY;QACzCJ,KAAKU,cAAcI;;MAGrB,IAAId,KAAKK,YAAY;QACnBL,KAAKe,GAAGC;;;IA4BKhB,KAAAiB,gBAAiBC;MAChC,IAAIlB,KAAKI,cAAcJ,KAAKK,cAAca,EAAMC,QAAQ,UAAU;QAChED,EAAME;QACNpB,KAAKW;;;AA4FV;EAvHC,sBAAMU;;IACJ,IAAIrB,KAAKI,eAAeJ,KAAKO,YAAY;MACvCP,KAAKU,gBAAgBY,SAASC;YAExB,IAAIC,SAASC,KAAYC,WAAWD,GAAS;MAEnD,MAAME,KAAcC,IAAA5B,KAAKe,GAAGc,gBAAY,QAAAD,WAAA,aAAAA,EAAAE,cAAc;MACtD,IAAIH,KAAe,MAAM;QACvB,MAAMI,KAASC,IAAAL,EAAYE,gBAAU,QAAAG,WAAA,aAAAA,EAAEF,cAAc;QACrDC,MAAM,QAANA,WAAM,aAANA,EAAQjB;;;IAIZ,IAAId,KAAKI,cAAcJ,KAAKK,YAAY;MACtCL,KAAKe,GAAGkB,iBAAiB,WAAWjC,KAAKiB;;;EAI7C,oBAAAiB;IACE,IAAIlC,KAAKI,eAAeJ,KAAKK,YAAY;MACvCL,KAAKe,GAAGoB,oBAAoB,WAAWnC,KAAKiB;;;EAWxC,cAAAmB;IACN,MAAMC,IAAU;MACdC,SAAS;MACTC,SAAS;MACTC,QAAQ;MACRC,MAAM;;IAER,OAAOJ,EAAQrC,KAAKQ,UAAU;;EAGxB,WAAAkC;IACN,OAAO1C,KAAKQ,UAAU,aAAaR,KAAKQ,UAAU,WAAW,cAAc;;EAGrE,aAAAmC;IACN,MAAMC,IAAW;MACfN,SAAS;MACTC,SAAS;MACTC,QAAQ;MACRC,MAAM;;IAER,OAAOG,EAAS5C,KAAKQ;;EAGf,cAAAqC;IACN,OAAO;MACL,cAAc;MACd,CAAC7C,KAAKQ,QAAQ;;;EAIlB,MAAAsC;IACE,OACEC,EAACC,GAAI;MAAA7B,KAAA;OACFnB,KAAKO,aACJwC,EACE;MAAAE,OAAO,YAAYjD,KAAKQ;MACxB0C,MAAK;MACM,aAAAlD,KAAK0C;MAAa,cACjB1C,KAAKS,aAAaT,KAAK2C;MAAe,eACtC;MACZQ,IAAInD,KAAKC;OAERD,KAAKM,WAAWyC,EAAA;MAASE,OAAM;MAAwB,aAAAjD,KAAKoC;SAA+B,MAC3FpC,KAAKoD,WAAWpD,KAAKoD,QAAQC,SAAS,IAAIrD,KAAKoD,UAAUL,EAAA,iBAG5DA,EACE;MAAAE,OAAOjD,KAAK6C;MACZK,MAAK;MACM,aAAAlD,KAAK0C;MAAa,cACjB1C,KAAKS,aAAaT,KAAK2C;MACnCQ,IAAInD,KAAKC;OAET8C,EAAA;MAAKE,OAAM;OACRjD,KAAKM,WACJyC,EAAA;MAAA,aAAoB/C,KAAKoC;MAAkBkB,QAAO;MAAI,eAAa;SAEnEP,EAAA;MAAMQ,MAAK;SAGfR,EAAA;MAAKE,OAAM;OACRjD,KAAKoD,WAAWpD,KAAKoD,QAAQC,SAAS,IACrCN,EAAA,aACG/C,KAAKwD,gBAAgBT,EAAM;MAAAE,OAAM;OAAiBjD,KAAKwD,eACvDxD,KAAKwD,iBAAiBxD,KAAKG,YAAY4C,EAAM,aAC7C/C,KAAKoD,WAAWL,EAAM;MAAAE,OAAM;OAAgBjD,KAAKoD,YAGpDL,EAAA,aACG/C,KAAKwD,gBAAgBxD,KAAKG,YAAY4C,EAAS,gBAAA/C,KAAKwD,eACpDxD,KAAKwD,iBAAiBxD,KAAKG,YAAY4C,EAAM,aAC9CA,EAAa,iBAIlB/C,KAAKI,eAAeJ,KAAKO,cACxBwC,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAWU,OAAM;MAASC,MAAK;MAAoB;MAAoBC,SAAS3D,KAAKW;OACnFoC,EAAmB;MAAA;MAA6B;;;;;;;;;;;;;;;;;;;;;;;;;AAWlE,IAAI7C,IAAY","ignoreList":[]}