@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
@@ -3,7 +3,6 @@
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
5
  import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-ByGJPTh2.js';
6
- import { _ as __awaiter } from './tslib.es6-DIPMDb5E.js';
7
6
 
8
7
  const messageCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-message{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);background:var(--message-background);display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:var(--spacing-scale-2x)}.br-message .content{color:var(--message-text);-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:var(--font-size-scale-up-01);padding:var(--spacing-scale-3x) var(--spacing-scale-base) var(--spacing-scale-3x) var(--spacing-scale-2x)}.br-message .content .message-title{font-weight:var(--font-weight-semi-bold)}.br-message .content .message-body{font-weight:var(--font-weigth-regular)}.br-message .content a{font-weight:var(--font-weight-bold);text-decoration:underline}.br-message .content *:last-child{margin-bottom:0}.br-message .icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--message-color-icon);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:var(--spacing-vertical-center) var(--spacing-scale-2x);padding-left:var(--spacing-scale-2x);padding-right:var(--spacing-scale-2x)}.br-message .icon+.content{padding-left:0}.br-message .close{margin-right:var(--spacing-scale-base);margin-top:var(--spacing-scale-base)}.br-message.success,.br-message[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.br-message.success .close .br-button,.br-message[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.br-message.danger,.br-message[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.br-message.danger .close .br-button,.br-message[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.br-message.info,.br-message[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.br-message.info .close .br-button,.br-message[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.br-message.warning,.br-message[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.br-message.warning .close .br-button,.br-message[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}.feedback{--message-background:var(--background);--message-color-icon:var(--color);--feedback-background:var(--background);--message-text:var(--color);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--feedback-background);color:var(--message-text);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-style:italic;font-weight:var(--font-weight-medium);margin-bottom:0;padding:var(--spacing-scale-half)}.feedback .fab{margin-right:var(--spacing-scale-half)}.feedback:not(.is-warning):not(.warning):not([warning]){--message-text:var(--pure-0)}.feedback.warning,.feedback[warning]{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--interactive-light-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light)}.feedback.success,.feedback[success]{--message-background:var(--success-alternative);--feedback-background:var(--success);--message-color-icon:var(--success)}.feedback.success .close .br-button,.feedback[success] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--success-rgb)}.feedback.danger,.feedback[danger]{--message-background:var(--danger-alternative);--feedback-background:var(--danger);--message-color-icon:var(--danger)}.feedback.danger .close .br-button,.feedback[danger] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--danger-rgb)}.feedback.info,.feedback[info]{--message-background:var(--info-alternative);--feedback-background:var(--info);--message-color-icon:var(--info)}.feedback.info .close .br-button,.feedback[info] .close .br-button{--interactive:var(--message-color-icon);--interactive-rgb:var(--info-rgb)}.feedback.warning,.feedback[warning]{--message-background:var(--warning-alternative);--feedback-background:var(--warning)}.feedback.warning .close .br-button,.feedback[warning] .close .br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host{display:block}:host .icon-space{margin-right:var(--spacing-scale-half)}:host .br-message .content .message-title{margin-right:5px}:host .br-message .close br-button{--interactive:var(--message-color-icon)}:host .br-message.warning .close br-button{--interactive:var(--color);--interactive-rgb:var(--color-rgb)}:host .br-message.success .close br-button{--interactive-rgb:var(--success-rgb)}:host .br-message.danger .close br-button{--interactive-rgb:var(--danger-rgb)}:host .br-message.info .close br-button{--interactive-rgb:var(--info-rgb)}";
9
8
 
@@ -86,22 +85,20 @@ const Message = class {
86
85
  }
87
86
  };
88
87
  }
89
- componentDidLoad() {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- var _a, _b;
92
- if (this.isClosable && !this.isFeedback) {
93
- this.previousFocus = document.activeElement;
94
- yield new Promise((resolve) => setTimeout(resolve, 150));
95
- const closeButton = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-button');
96
- if (closeButton != null) {
97
- const button = (_b = closeButton.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('button');
98
- button === null || button === void 0 ? void 0 : button.focus();
99
- }
88
+ async componentDidLoad() {
89
+ var _a, _b;
90
+ if (this.isClosable && !this.isFeedback) {
91
+ this.previousFocus = document.activeElement;
92
+ await new Promise((resolve) => setTimeout(resolve, 150));
93
+ const closeButton = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-button');
94
+ if (closeButton != null) {
95
+ const button = (_b = closeButton.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('button');
96
+ button === null || button === void 0 ? void 0 : button.focus();
100
97
  }
101
- if (this.isClosable && this.autoRemove) {
102
- this.el.addEventListener('keydown', this.handleKeyDown);
103
- }
104
- });
98
+ }
99
+ if (this.isClosable && this.autoRemove) {
100
+ this.el.addEventListener('keydown', this.handleKeyDown);
101
+ }
105
102
  }
106
103
  disconnectedCallback() {
107
104
  if (this.isClosable && !this.autoRemove) {
@@ -1 +1 @@
1
- {"version":3,"file":"br-message.entry.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.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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"}
@@ -3,7 +3,6 @@
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
5
  import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-ByGJPTh2.js';
6
- import { _ as __awaiter } from './tslib.es6-DIPMDb5E.js';
7
6
  import { H as Helpers } from './helpers-D4N4PPot.js';
8
7
 
9
8
  const modalCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-modal{--modal-size:var(--modal-medium);--modal-xsmall:220px;--modal-small:300px;--modal-medium:500px;--modal-large:640px;--modal-auto:auto;background:var(--background);-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:var(--modal-size);z-index:var(--z-index-layer-4)}.br-modal-header{font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-bold);padding:var(--spacing-scale-2x) var(--spacing-scale-2x) 0;position:relative}.br-modal-header .close{position:absolute;right:var(--spacing-scale-base);top:var(--spacing-scale-base)}.br-modal .modal-title{font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-bold);margin-right:40px;max-height:calc(var(--font-size-scale-up-01)*3);overflow:hidden;text-overflow:ellipsis}.br-modal-body{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:var(--spacing-scale-3x) 0 var(--spacing-scale-2x);overflow:auto;padding:0 var(--spacing-scale-2x);width:auto}.br-modal-body::-webkit-scrollbar{height:var(--spacing-scale-base);width:var(--spacing-scale-base)}.br-modal-body::-webkit-scrollbar-track{background:var(--gray-10)}.br-modal-body::-webkit-scrollbar-thumb{background:var(--gray-30)}.br-modal-body:hover::-webkit-scrollbar-thumb{background:var(--gray-40)}.br-modal-body>*:last-child{margin-bottom:0}.br-modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:var(--spacing-scale-2x)}.br-modal.xsmall{--modal-size:var(--modal-xsmall)}.br-modal.small{--modal-size:var(--modal-small)}.br-modal.is-medium,.br-modal.medium{--modal-size:var(--modal-medium)}.br-modal.large{--modal-size:var(--modal-large)}.br-modal.auto{--modal-size:var(--modal-auto)}.br-modal .loading.medium{min-height:calc(var(--loading-indetermined-diameter-md) + var(--spacing-scale-2x)*2)}@media (max-width: 991px){.br-modal-header .close{top:0}}.br-modal.scrollable{max-height:400px}.br-modal-footer.justify-content-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}";
@@ -11,7 +10,9 @@ const modalCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:
11
10
  const Modal = class {
12
11
  constructor(hostRef) {
13
12
  registerInstance(this, hostRef);
13
+ this.brModalOpen = createEvent(this, "brModalOpen", 7);
14
14
  this.brModalClose = createEvent(this, "brModalClose", 7);
15
+ this.brModalBeforeClose = createEvent(this, "brModalBeforeClose", 7);
15
16
  if (hostRef.$hostElement$["s-ei"]) {
16
17
  this.elementInternals = hostRef.$hostElement$["s-ei"];
17
18
  }
@@ -26,32 +27,132 @@ const Modal = class {
26
27
  this.customId = Helpers.generateUniqueId('modal');
27
28
  /** Controla a visibilidade do modal. */
28
29
  this.show = false;
29
- /** Se `true`, o modal se fechará automaticamente ao clicar no botão de fechar ou pressionar a tecla 'Escape'. */
30
+ /**
31
+ * Define o comportamento de fechamento do modal.
32
+ *
33
+ * - `true`: O modal fecha automaticamente ao clicar no botão fechar.
34
+ * - `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
35
+ * controlar manualmente o fechamento.
36
+ */
30
37
  this.autoClose = false;
31
38
  /**
32
39
  * Define o tamanho (largura) do modal.
33
40
  */
34
41
  this.size = 'medium';
35
- /** Se `true`, exibe um fundo escurecido (scrim) atrás do modal. */
36
- this.scrim = false;
37
42
  /** Se `true`, habilita a rolagem interna do conteúdo do modal. */
38
43
  this.scrollable = false;
39
44
  /**
40
45
  * Define o alinhamento do conteúdo do rodapé (slot="footer").
41
46
  */
42
47
  this.alignFooter = 'center';
48
+ this.isOpeningParentScrim = false;
49
+ /**
50
+ * Handler para evento brScrimOpen do parent scrim
51
+ * Quando scrim abre programaticamente, a modal deve abrir também
52
+ */
53
+ this.handleParentScrimOpen = () => {
54
+ const parentScrim = this.el.closest('br-scrim');
55
+ if (parentScrim === null)
56
+ return;
57
+ if (!this.show) {
58
+ this.show = true;
59
+ }
60
+ };
61
+ /**
62
+ * Handler para evento brScrimClose do parent scrim
63
+ * Se autoClose=true, fecha a modal junto com o scrim
64
+ * Se autoClose=false, não faz nada (modal permanece aberta)
65
+ */
66
+ this.handleParentScrimClose = () => {
67
+ const parentScrim = this.el.closest('br-scrim');
68
+ if (parentScrim === null)
69
+ return;
70
+ if (this.autoClose && this.show) {
71
+ this.show = false;
72
+ }
73
+ };
43
74
  this.handleClose = () => {
44
- this.brModalClose.emit();
75
+ this.brModalBeforeClose.emit();
45
76
  if (this.autoClose) {
46
77
  this.show = false;
47
- // Se o modal está dentro de um br-scrim, fecha o scrim também
48
- const parentScrim = this.el.closest('br-scrim');
49
- if (parentScrim) {
50
- parentScrim.close();
51
- }
52
78
  }
53
79
  };
54
80
  }
81
+ handleShowChange(newValue, oldValue) {
82
+ if (newValue) {
83
+ this.brModalOpen.emit();
84
+ this.openParentScrim();
85
+ }
86
+ else if (oldValue === true) {
87
+ this.brModalClose.emit();
88
+ this.closeParentScrim();
89
+ }
90
+ }
91
+ closeParentScrim() {
92
+ const parentScrim = this.el.closest('br-scrim');
93
+ if (parentScrim && typeof parentScrim.close === 'function') {
94
+ parentScrim.close();
95
+ }
96
+ }
97
+ componentWillLoad() {
98
+ if (!this.show) {
99
+ const parentScrim = this.el.closest('br-scrim');
100
+ if (parentScrim !== null && parentScrim.isOpen) {
101
+ this.show = true;
102
+ }
103
+ }
104
+ }
105
+ componentDidLoad() {
106
+ this.listenToParentScrimEvents();
107
+ if (this.show) {
108
+ this.openParentScrim();
109
+ }
110
+ }
111
+ disconnectedCallback() {
112
+ this.isOpeningParentScrim = false;
113
+ this.removeParentScrimEventListeners();
114
+ }
115
+ /**
116
+ * Adiciona listeners para eventos do parent scrim
117
+ */
118
+ listenToParentScrimEvents() {
119
+ const parentScrim = this.el.closest('br-scrim');
120
+ if (parentScrim !== null) {
121
+ parentScrim.addEventListener('brScrimOpen', this.handleParentScrimOpen);
122
+ parentScrim.addEventListener('brScrimClose', this.handleParentScrimClose);
123
+ }
124
+ }
125
+ /**
126
+ * Remove listeners de eventos do parent scrim
127
+ */
128
+ removeParentScrimEventListeners() {
129
+ const parentScrim = this.el.closest('br-scrim');
130
+ if (parentScrim !== null) {
131
+ parentScrim.removeEventListener('brScrimOpen', this.handleParentScrimOpen);
132
+ parentScrim.removeEventListener('brScrimClose', this.handleParentScrimClose);
133
+ }
134
+ }
135
+ openParentScrim() {
136
+ if (this.isOpeningParentScrim)
137
+ return;
138
+ const parentScrim = this.el.closest('br-scrim');
139
+ if (parentScrim && !parentScrim.isOpen) {
140
+ this.isOpeningParentScrim = true;
141
+ Promise.resolve()
142
+ .then(() => {
143
+ try {
144
+ return parentScrim.open();
145
+ }
146
+ catch (error) {
147
+ console.warn('br-modal: Erro ao abrir scrim pai:', error);
148
+ throw error;
149
+ }
150
+ })
151
+ .finally(() => {
152
+ this.isOpeningParentScrim = false;
153
+ });
154
+ }
155
+ }
55
156
  get titleId() {
56
157
  return `${this.customId}-title`;
57
158
  }
@@ -68,32 +169,30 @@ const Modal = class {
68
169
  /**
69
170
  * Método público para abrir o modal
70
171
  */
71
- open() {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- this.show = true;
74
- });
172
+ async open() {
173
+ this.show = true;
174
+ this.openParentScrim();
75
175
  }
76
176
  /**
77
177
  * Método público para fechar o modal
78
178
  */
79
- close() {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- this.show = false;
82
- // Se o modal está dentro de um br-scrim, fecha o scrim também
83
- const parentScrim = this.el.closest('br-scrim');
84
- if (parentScrim) {
85
- parentScrim.close();
86
- }
87
- });
179
+ async close() {
180
+ if (!this.autoClose) {
181
+ return;
182
+ }
183
+ this.show = false;
88
184
  }
89
185
  render() {
90
186
  if (!this.show) {
91
187
  return null;
92
188
  }
93
- return (h(Host, null, h("div", { class: this.getCssClassMap(), role: "dialog", "aria-modal": "true", "aria-labelledby": this.titleId, "aria-describedby": this.contentId }, h("div", { class: "br-modal-header" }, h("div", { class: "modal-title", id: this.titleId }, h("slot", { name: "header" }, this.titleText)), h("slot", { name: "close-button" }, h("br-button", { class: "close", shape: "circle", density: "small", "aria-label": "Fechar", onClick: this.handleClose }, h("br-icon", { "icon-name": "fa-solid:times" })))), h("div", { id: this.contentId, class: "br-modal-body" }, h("slot", null)), h("div", { class: `br-modal-footer ${this.alignFooter ? `justify-content-${this.alignFooter}` : ''}` }, h("slot", { name: "footer" })))));
189
+ return (h(Host, null, h("div", { class: this.getCssClassMap(), role: "dialog", "aria-modal": "true", "aria-labelledby": this.titleId, "aria-describedby": this.contentId }, h("div", { class: "br-modal-header" }, h("div", { class: "modal-title", id: this.titleId }, h("slot", { name: "header" }, this.titleText)), h("slot", { name: "close-button" }, h("br-button", { class: "close", shape: "circle", density: "small", "aria-label": "Fechar", onClick: this.handleClose }, h("br-icon", { "icon-name": "fa-solid:times" })))), h("div", { id: this.contentId, class: "br-modal-body" }, h("slot", null)), h("div", { class: `br-modal-footer ${this.alignFooter !== undefined ? `justify-content-${this.alignFooter}` : ''}` }, h("slot", { name: "footer" })))));
94
190
  }
95
191
  static get formAssociated() { return true; }
96
192
  get el() { return getElement(this); }
193
+ static get watchers() { return {
194
+ "show": ["handleShowChange"]
195
+ }; }
97
196
  };
98
197
  Modal.style = modalCss;
99
198
 
@@ -1 +1 @@
1
- {"version":3,"file":"br-modal.entry.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.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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"}