@govbr-ds/webcomponents 2.0.0-next.61 → 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 (277) 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 +123 -24
  18. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-scrim.cjs.entry.js +108 -25
  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 +156 -46
  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 +108 -25
  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/pages/components/modal/index.js +1 -53
  82. package/dist/collection/utils/floating-ui.js +9 -12
  83. package/dist/collection/utils/floating-ui.js.map +1 -1
  84. package/dist/components/br-breadcrumb.js +3 -3
  85. package/dist/components/br-checkbox.js +4 -4
  86. package/dist/components/br-checkgroup.js +1 -1
  87. package/dist/components/br-collapse.js +4 -4
  88. package/dist/components/br-datetime-picker.js +1981 -1995
  89. package/dist/components/br-datetime-picker.js.map +1 -1
  90. package/dist/components/br-dropdown.js +1 -1
  91. package/dist/components/br-footer-category.js +3 -3
  92. package/dist/components/br-footer-item.js +1 -1
  93. package/dist/components/br-header-function.js +1 -1
  94. package/dist/components/br-header-link.js +1 -1
  95. package/dist/components/br-header-list.js +31 -39
  96. package/dist/components/br-header-list.js.map +1 -1
  97. package/dist/components/br-header.js +63 -67
  98. package/dist/components/br-header.js.map +1 -1
  99. package/dist/components/br-item.js +1 -1
  100. package/dist/components/br-list.js +3 -3
  101. package/dist/components/br-message.js +28 -32
  102. package/dist/components/br-message.js.map +1 -1
  103. package/dist/components/br-modal.js +140 -49
  104. package/dist/components/br-modal.js.map +1 -1
  105. package/dist/components/br-pagination.js +7 -7
  106. package/dist/components/br-radio.js +1 -1
  107. package/dist/components/br-scrim.js +112 -43
  108. package/dist/components/br-scrim.js.map +1 -1
  109. package/dist/components/br-select.js +3 -3
  110. package/dist/components/br-skip-link.js +38 -44
  111. package/dist/components/br-skip-link.js.map +1 -1
  112. package/dist/components/br-skiplink-item.js +55 -61
  113. package/dist/components/br-skiplink-item.js.map +1 -1
  114. package/dist/components/br-step-item.js +4 -4
  115. package/dist/components/br-step.js +4 -4
  116. package/dist/components/br-switch.js +12 -16
  117. package/dist/components/br-switch.js.map +1 -1
  118. package/dist/components/br-textarea.js +14 -18
  119. package/dist/components/br-textarea.js.map +1 -1
  120. package/dist/components/br-tooltip.js +1 -1
  121. package/dist/components/br-wizard-panel.js +13 -21
  122. package/dist/components/br-wizard-panel.js.map +1 -1
  123. package/dist/components/br-wizard.js +190 -228
  124. package/dist/components/br-wizard.js.map +1 -1
  125. package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
  126. package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
  127. package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
  128. package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
  129. package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
  130. package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
  131. package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
  132. package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
  133. package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
  134. package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
  135. package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
  136. package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
  137. package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
  138. package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
  139. package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
  140. package/dist/components/p-DdjKNpU3.js.map +1 -0
  141. package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
  142. package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  143. package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
  144. package/dist/custom-elements.json +1613 -430
  145. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  146. package/dist/esm/br-checkbox_3.entry.js +17 -28
  147. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  148. package/dist/esm/br-collapse_2.entry.js +10 -15
  149. package/dist/esm/br-datetime-picker.entry.js +18 -31
  150. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  151. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  152. package/dist/esm/br-dropdown_2.entry.js +73 -56
  153. package/dist/esm/br-header-list.entry.js +6 -13
  154. package/dist/esm/br-header-list.entry.js.map +1 -1
  155. package/dist/esm/br-header.entry.js +2 -5
  156. package/dist/esm/br-header.entry.js.map +1 -1
  157. package/dist/esm/br-item.entry.js +3 -6
  158. package/dist/esm/br-item.entry.js.map +1 -1
  159. package/dist/esm/br-message.entry.js +13 -16
  160. package/dist/esm/br-message.entry.js.map +1 -1
  161. package/dist/esm/br-modal.entry.js +123 -24
  162. package/dist/esm/br-modal.entry.js.map +1 -1
  163. package/dist/esm/br-scrim.entry.js +108 -25
  164. package/dist/esm/br-scrim.entry.js.map +1 -1
  165. package/dist/esm/br-skip-link.entry.js +24 -29
  166. package/dist/esm/br-skip-link.entry.js.map +1 -1
  167. package/dist/esm/br-skiplink-item.entry.js +32 -37
  168. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  169. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  170. package/dist/esm/br-step_2.entry.js +33 -56
  171. package/dist/esm/br-switch.entry.js +3 -6
  172. package/dist/esm/br-switch.entry.js.map +1 -1
  173. package/dist/esm/br-textarea.entry.js +5 -8
  174. package/dist/esm/br-textarea.entry.js.map +1 -1
  175. package/dist/esm/br-tooltip.entry.js +1 -2
  176. package/dist/esm/br-tooltip.entry.js.map +1 -1
  177. package/dist/esm/br-wizard-panel.entry.js +6 -13
  178. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  179. package/dist/esm/br-wizard.entry.js +147 -182
  180. package/dist/esm/br-wizard.entry.js.map +1 -1
  181. package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
  182. package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
  183. package/dist/esm/loader.js +1 -1
  184. package/dist/esm/webcomponents.js +1 -1
  185. package/dist/hydrate/index.js +634 -578
  186. package/dist/hydrate/index.mjs +634 -578
  187. package/dist/types/components/modal/modal.d.ts +46 -4
  188. package/dist/types/components/scrim/scrim.d.ts +39 -1
  189. package/dist/types/components/select/select.d.ts +5 -0
  190. package/dist/types/components.d.ts +21 -11
  191. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  192. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  193. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  194. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  195. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  196. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  197. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  198. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  199. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  200. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  201. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  202. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  203. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  204. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  205. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  206. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  207. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  208. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  209. package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
  210. package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
  211. package/dist/webcomponents/{p-097912c2.entry.js → p-1991135d.entry.js} +30 -36
  212. package/dist/webcomponents/p-1991135d.entry.js.map +1 -0
  213. package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
  214. package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
  215. package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
  216. package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
  217. package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
  218. package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
  219. package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
  220. package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
  221. package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
  222. package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
  223. package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
  224. package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
  225. package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
  226. package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
  227. package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
  228. package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
  229. package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
  230. package/dist/webcomponents/p-83001853.entry.js.map +1 -0
  231. package/dist/webcomponents/{p-28dba962.entry.js → p-90401ecd.entry.js} +124 -34
  232. package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
  233. package/dist/webcomponents/{p-e7b38c63.entry.js → p-a2eec4fb.entry.js} +112 -43
  234. package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
  235. package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
  236. package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
  237. package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
  238. package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
  239. package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
  240. package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
  241. package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
  242. package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
  243. package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
  244. package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
  245. package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
  246. package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  247. package/dist/webcomponents/webcomponents.esm.js +1 -1
  248. package/dist/webcomponents.html-custom-data.json +1708 -349
  249. package/package.json +1 -1
  250. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  251. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  252. package/dist/components/p-7kxAU6Gr.js.map +0 -1
  253. package/dist/components/p-DIPMDb5E.js +0 -55
  254. package/dist/components/p-DIPMDb5E.js.map +0 -1
  255. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  256. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  257. package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
  258. package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
  259. package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
  260. package/dist/webcomponents/p-28dba962.entry.js.map +0 -1
  261. package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
  262. package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
  263. package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
  264. package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
  265. package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
  266. package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
  267. package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
  268. package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
  269. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  270. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  271. package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
  272. package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
  273. package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
  274. package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
  275. package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
  276. package/dist/webcomponents/p-e7b38c63.entry.js.map +0 -1
  277. /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-header.entry.esm.js","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-header.entry.esm.js","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"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} 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/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\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: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} 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/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\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: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-message.entry.esm.js","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-message.entry.esm.js","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"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-modal.entry.esm.js","sources":["../../packages/webcomponents/src/components/modal/modal.scss?tag=br-modal&encapsulation=shadow","../../packages/webcomponents/src/components/modal/modal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/modal/modal\";\n\n.br-modal.scrollable {\n max-height: 400px;\n}\n\n.br-modal-footer.justify-content-end {\n justify-content: flex-end;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\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/modal?tab=designer).\n *\n * @slot header - Cabeçalho do modal. Se não for usado, o `title-text` será exibido.\n * @slot default - Corpo do modal.\n * @slot footer - Rodapé do modal.\n * @slot close-button - Botão de fechar customizado. Se não for usado, o botão padrão será exibido.\n *\n */\n@Component({\n tag: 'br-modal',\n styleUrl: 'modal.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Modal {\n /** Referência ao elemento host do componente. */\n @Element() el: HTMLBrModalElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('modal')\n\n /** O texto do título a ser exibido no cabeçalho do modal. Usado quando o slot `header` não é fornecido. */\n @Prop() readonly titleText: string\n\n /** Controla a visibilidade do modal. */\n @Prop({ reflect: true, mutable: true }) show = false\n\n /** Se `true`, o modal se fechará automaticamente ao clicar no botão de fechar ou pressionar a tecla 'Escape'. */\n @Prop({ reflect: true }) autoClose = false\n\n /** Seletor CSS para o elemento que deve receber foco quando o modal é aberto. */\n @Prop() readonly initialFocusSelector: string\n\n /**\n * Define o tamanho (largura) do modal.\n */\n @Prop({ reflect: true }) readonly size: 'xsmall' | 'small' | 'medium' | 'large' | 'auto' = 'medium'\n\n /** Se `true`, exibe um fundo escurecido (scrim) atrás do modal. */\n @Prop({ reflect: true }) readonly scrim = false\n\n /** Se `true`, habilita a rolagem interna do conteúdo do modal. */\n @Prop({ reflect: true }) readonly scrollable = false\n\n /**\n * Define o alinhamento do conteúdo do rodapé (slot=\"footer\").\n */\n @Prop({ reflect: true }) readonly alignFooter: 'start' | 'end' | 'center' = 'center'\n\n /** Evento emitido quando o modal solicita ser fechado (pelo botão 'x', tecla 'Escape' ou clique no scrim). */\n @Event() brModalClose: EventEmitter<void>\n\n private get titleId() {\n return `${this.customId}-title`\n }\n\n private get contentId() {\n return `${this.customId}-content`\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-modal': true,\n [this.size]: true,\n scrollable: this.scrollable,\n }\n }\n\n private handleClose = () => {\n this.brModalClose.emit()\n if (this.autoClose) {\n this.show = false\n\n // Se o modal está dentro de um br-scrim, fecha o scrim também\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim) {\n parentScrim.close()\n }\n }\n }\n\n /**\n * Método público para abrir o modal\n */\n @Method()\n async open() {\n this.show = true\n }\n\n /**\n * Método público para fechar o modal\n */\n @Method()\n async close() {\n this.show = false\n\n // Se o modal está dentro de um br-scrim, fecha o scrim também\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim) {\n parentScrim.close()\n }\n }\n\n render() {\n if (!this.show) {\n return null\n }\n\n return (\n <Host>\n <div\n class={this.getCssClassMap()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.titleId}\n aria-describedby={this.contentId}\n >\n <div class=\"br-modal-header\">\n <div class=\"modal-title\" id={this.titleId}>\n <slot name=\"header\">{this.titleText}</slot>\n </div>\n <slot name=\"close-button\">\n <br-button class=\"close\" shape=\"circle\" density=\"small\" aria-label=\"Fechar\" onClick={this.handleClose}>\n <br-icon icon-name=\"fa-solid:times\"></br-icon>\n </br-button>\n </slot>\n </div>\n <div id={this.contentId} class=\"br-modal-body\">\n <slot></slot>\n </div>\n <div class={`br-modal-footer ${this.alignFooter ? `justify-content-${this.alignFooter}` : ''}`}>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-modal.entry.esm.js","sources":["../../packages/webcomponents/src/components/modal/modal.scss?tag=br-modal&encapsulation=shadow","../../packages/webcomponents/src/components/modal/modal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/modal/modal\";\n\n.br-modal.scrollable {\n max-height: 400px;\n}\n\n.br-modal-footer.justify-content-end {\n justify-content: flex-end;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\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/modal?tab=designer).\n *\n * @slot header - Cabeçalho do modal. Se não for usado, o `title-text` será exibido.\n * @slot default - Corpo do modal.\n * @slot footer - Rodapé do modal.\n * @slot close-button - Botão de fechar customizado. Se não for usado, o botão padrão será exibido.\n *\n */\n@Component({\n tag: 'br-modal',\n styleUrl: 'modal.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Modal {\n /** Referência ao elemento host do componente. */\n @Element() el: HTMLBrModalElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('modal')\n\n /** O texto do título a ser exibido no cabeçalho do modal. Usado quando o slot `header` não é fornecido. */\n @Prop() readonly titleText: string\n\n /** Controla a visibilidade do modal. */\n @Prop({ reflect: true, mutable: true }) show = false\n\n /**\n * Define o comportamento de fechamento do modal.\n *\n * - `true`: O modal fecha automaticamente ao clicar no botão fechar.\n * - `false`: O modal emite `brModalBeforeClose` mas não fecha, permitindo a implementação de lógica customizada (validação, confirmação, etc.) antes do fechamento. O desenvolvedor deve\n * controlar manualmente o fechamento.\n */\n @Prop({ reflect: true }) autoClose = false\n\n /** Seletor CSS para o elemento que deve receber foco quando o modal é aberto. */\n @Prop() readonly initialFocusSelector: string\n\n /**\n * Define o tamanho (largura) do modal.\n */\n @Prop({ reflect: true }) readonly size: 'xsmall' | 'small' | 'medium' | 'large' | 'auto' = 'medium'\n\n /** Se `true`, habilita a rolagem interna do conteúdo do modal. */\n @Prop({ reflect: true }) readonly scrollable = false\n\n /**\n * Define o alinhamento do conteúdo do rodapé (slot=\"footer\").\n */\n @Prop({ reflect: true }) readonly alignFooter: 'start' | 'end' | 'center' = 'center'\n\n private isOpeningParentScrim = false\n\n /**\n * Evento emitido quando o modal é aberto (quando `show` muda de `false` para `true`).\n */\n @Event() brModalOpen: EventEmitter<void>\n\n /**\n * Evento emitido após o modal ser fechado (quando `show` muda de `true` para `false`).\n */\n @Event() brModalClose: EventEmitter<void>\n\n /**\n * Evento emitido antes do fechamento do modal (quando o botão X é clicado).\n * Se autoClose está desativado, o desenvolvedor deve fechar manualmente o modal após este evento.\n * Se autoClose está ativado, o modal fecha automaticamente após este evento.\n */\n @Event() brModalBeforeClose: EventEmitter<void>\n\n @Watch('show')\n handleShowChange(newValue: boolean, oldValue: boolean) {\n if (newValue) {\n this.brModalOpen.emit()\n this.openParentScrim()\n } else if (oldValue === true) {\n this.brModalClose.emit()\n this.closeParentScrim()\n }\n }\n\n private closeParentScrim() {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim && typeof parentScrim.close === 'function') {\n parentScrim.close()\n }\n }\n\n componentWillLoad() {\n if (!this.show) {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim !== null && parentScrim.isOpen) {\n this.show = true\n }\n }\n }\n\n componentDidLoad() {\n this.listenToParentScrimEvents()\n\n if (this.show) {\n this.openParentScrim()\n }\n }\n\n disconnectedCallback() {\n this.isOpeningParentScrim = false\n this.removeParentScrimEventListeners()\n }\n\n /**\n * Adiciona listeners para eventos do parent scrim\n */\n private listenToParentScrimEvents() {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim !== null) {\n parentScrim.addEventListener('brScrimOpen', this.handleParentScrimOpen)\n parentScrim.addEventListener('brScrimClose', this.handleParentScrimClose)\n }\n }\n\n /**\n * Remove listeners de eventos do parent scrim\n */\n private removeParentScrimEventListeners() {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim !== null) {\n parentScrim.removeEventListener('brScrimOpen', this.handleParentScrimOpen)\n parentScrim.removeEventListener('brScrimClose', this.handleParentScrimClose)\n }\n }\n\n /**\n * Handler para evento brScrimOpen do parent scrim\n * Quando scrim abre programaticamente, a modal deve abrir também\n */\n private handleParentScrimOpen = () => {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim === null) return\n\n if (!this.show) {\n this.show = true\n }\n }\n\n /**\n * Handler para evento brScrimClose do parent scrim\n * Se autoClose=true, fecha a modal junto com o scrim\n * Se autoClose=false, não faz nada (modal permanece aberta)\n */\n private handleParentScrimClose = () => {\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim === null) return\n\n if (this.autoClose && this.show) {\n this.show = false\n }\n }\n\n private openParentScrim() {\n if (this.isOpeningParentScrim) return\n\n const parentScrim = this.el.closest('br-scrim')\n if (parentScrim && !parentScrim.isOpen) {\n this.isOpeningParentScrim = true\n\n Promise.resolve()\n .then(() => {\n try {\n return parentScrim.open()\n } catch (error) {\n console.warn('br-modal: Erro ao abrir scrim pai:', error)\n throw error\n }\n })\n .finally(() => {\n this.isOpeningParentScrim = false\n })\n }\n }\n\n private get titleId() {\n return `${this.customId}-title`\n }\n\n private get contentId() {\n return `${this.customId}-content`\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-modal': true,\n [this.size]: true,\n scrollable: this.scrollable,\n }\n }\n\n private handleClose = () => {\n this.brModalBeforeClose.emit()\n\n if (this.autoClose) {\n this.show = false\n }\n }\n\n /**\n * Método público para abrir o modal\n */\n @Method()\n async open() {\n this.show = true\n\n this.openParentScrim()\n }\n\n /**\n * Método público para fechar o modal\n */\n @Method()\n async close() {\n if (!this.autoClose) {\n return\n }\n\n this.show = false\n }\n\n render() {\n if (!this.show) {\n return null\n }\n\n return (\n <Host>\n <div\n class={this.getCssClassMap()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.titleId}\n aria-describedby={this.contentId}\n >\n <div class=\"br-modal-header\">\n <div class=\"modal-title\" id={this.titleId}>\n <slot name=\"header\">{this.titleText}</slot>\n </div>\n <slot name=\"close-button\">\n <br-button class=\"close\" shape=\"circle\" density=\"small\" aria-label=\"Fechar\" onClick={this.handleClose}>\n <br-icon icon-name=\"fa-solid:times\"></br-icon>\n </br-button>\n </slot>\n </div>\n <div id={this.contentId} class=\"br-modal-body\">\n <slot></slot>\n </div>\n <div class={`br-modal-footer ${this.alignFooter !== undefined ? `justify-content-${this.alignFooter}` : ''}`}>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}