@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
@@ -4,13 +4,11 @@
4
4
  */
5
5
  import { p as t, H as i, d as e, h as o, c as r } from "./p-DSkSDmzD.js";
6
6
 
7
- import { _ as a } from "./p-DIPMDb5E.js";
7
+ import { H as a } from "./p-D4N4PPot.js";
8
8
 
9
- import { H as n } from "./p-D4N4PPot.js";
9
+ const n = "*,*::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)}:host{--br-scrim-opacity:1}:host .br-scrim{visibility:hidden;-webkit-transition:visibility .3s ease;transition:visibility .3s ease;z-index:var(--z-index-layer-4);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:auto}:host .br-scrim.mode-fullscreen{position:fixed;inset:0}:host .br-scrim.mode-parent{position:absolute;inset:0;width:100%;height:100%}:host .br-scrim.opened{visibility:visible;pointer-events:auto}:host .mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--surface-overlay-scrim);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:auto}:host .br-scrim.opened .mask{opacity:var(--br-scrim-opacity)}:host .content{position:relative;outline:none;pointer-events:auto;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;background:rgba(0,0,0,0);padding:0;margin:0;border:none;-webkit-box-shadow:none;box-shadow:none;overflow:visible;contain:none;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;z-index:calc(var(--z-index-layer-4) + 1)}:host .content:focus{outline:var(--focus-outline);outline-offset:var(--focus-offset);-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow)}:host .br-scrim.opened .content{opacity:1;-webkit-transform:scale(1);transform:scale(1);pointer-events:auto}:host .br-scrim.position-top .content{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-bottom .content{position:absolute;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-left .content{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-right .content{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-center .content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .content ::slotted(*){opacity:1 !important;-webkit-filter:none;filter:none}@media (width <= 768px){:host .content{max-width:95%;max-height:95%;width:auto}:host .br-scrim.position-top .content,:host .br-scrim.position-bottom .content{width:100%;max-width:100%;border-radius:0}}";
10
10
 
11
- const s = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{--br-scrim-opacity:1}:host .br-scrim{visibility:hidden;-webkit-transition:visibility .3s ease;transition:visibility .3s ease;z-index:var(--z-index-layer-4);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:auto}:host .br-scrim.mode-fullscreen{position:fixed;inset:0}:host .br-scrim.mode-parent{position:absolute;inset:0;width:100%;height:100%}:host .br-scrim.opened{visibility:visible;pointer-events:auto}:host .mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--surface-overlay-scrim);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:auto}:host .br-scrim.opened .mask{opacity:var(--br-scrim-opacity)}:host .content{position:relative;outline:none;pointer-events:auto;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;background:rgba(0,0,0,0);padding:0;margin:0;border:none;-webkit-box-shadow:none;box-shadow:none;overflow:visible;contain:none;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;z-index:calc(var(--z-index-layer-4) + 1)}:host .content:focus{outline:var(--focus-outline);outline-offset:var(--focus-offset);-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow)}:host .br-scrim.opened .content{opacity:1;-webkit-transform:scale(1);transform:scale(1);pointer-events:auto}:host .br-scrim.position-top .content{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-bottom .content{position:absolute;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-left .content{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-right .content{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-center .content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .content ::slotted(*){opacity:1 !important;-webkit-filter:none;filter:none}@media (width <= 768px){:host .content{max-width:95%;max-height:95%;width:auto}:host .br-scrim.position-top .content,:host .br-scrim.position-bottom .content{width:100%;max-width:100%;border-radius:0}}";
12
-
13
- const l = t(class t extends i {
11
+ const s = t(class t extends i {
14
12
  constructor(t) {
15
13
  super();
16
14
  if (t !== false) {
@@ -23,7 +21,7 @@ const l = t(class t extends i {
23
21
  /**
24
22
  * Identificador único.
25
23
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
26
- */ this.customId = n.generateUniqueId();
24
+ */ this.customId = a.generateUniqueId();
27
25
  /**
28
26
  * Ativa/desativa o scrim
29
27
  */ this.isOpen = false;
@@ -77,6 +75,25 @@ const l = t(class t extends i {
77
75
  this.previouslyFocusedElement = null;
78
76
  this.focusTimeoutId = null;
79
77
  this.restoreFocusTimeoutId = null;
78
+ // ======================================================================
79
+ // GERENCIAMENTO DE COMPONENTES FILHOS
80
+ // ======================================================================
81
+ /**
82
+ * Handler para evento brModalOpen emitido por modal filha
83
+ */ this.handleModalOpen = t => {
84
+ const i = t.target;
85
+ if (!this.isDirectChild(i)) return;
86
+ if (!this.isOpen) {
87
+ this.open();
88
+ }
89
+ };
90
+ /**
91
+ * Handler para evento brModalClose emitido por modal filha
92
+ */ this.handleModalClose = t => {
93
+ const i = t.target;
94
+ if (!this.isDirectChild(i)) return;
95
+ this.close();
96
+ };
80
97
  this.handleActivatorClick = () => {
81
98
  this.toggle();
82
99
  };
@@ -94,6 +111,10 @@ const l = t(class t extends i {
94
111
  const e = (t = this.scrollOrigin) !== null && t !== void 0 ? t : this.lastScrollTop;
95
112
  if (Math.abs(i - e) > this.scrollThreshold) {
96
113
  this.scrollOrigin = null;
114
+ // Não fecha se tiver modal filha com autoClose=false ou não definido
115
+ if (this.hasModalWithAutoClose()) {
116
+ return;
117
+ }
97
118
  this.isOpen = false;
98
119
  this.handleOpenChange(false);
99
120
  return;
@@ -127,7 +148,9 @@ const l = t(class t extends i {
127
148
  }
128
149
  if (t.key === "Escape" && !this.disableCloseOnClick) {
129
150
  t.preventDefault();
130
- this.isOpen = false;
151
+ if (!this.hasModalWithAutoClose()) {
152
+ this.isOpen = false;
153
+ }
131
154
  }
132
155
  };
133
156
  // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo
@@ -158,11 +181,14 @@ const l = t(class t extends i {
158
181
  }), 0);
159
182
  }
160
183
  };
161
- // ======================================================================
162
- // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS
163
- // ======================================================================
164
- this.handleMaskClick = t => {
184
+ /**
185
+ * Handler para clique na máscara do scrim
186
+ * Fecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false
187
+ */ this.handleMaskClick = t => {
165
188
  if (!this.disableCloseOnClick) {
189
+ if (this.hasModalWithAutoClose()) {
190
+ return;
191
+ }
166
192
  this.close();
167
193
  }
168
194
  };
@@ -170,7 +196,7 @@ const l = t(class t extends i {
170
196
  // ======================================================================
171
197
  // LIFECYCLE HOOKS E WATCHERS
172
198
  // ======================================================================
173
- handleOpenChange(t) {
199
+ async handleOpenChange(t) {
174
200
  // Cancelar qualquer timeout anterior
175
201
  if (this.focusTimeoutId !== null) {
176
202
  clearTimeout(this.focusTimeoutId);
@@ -227,6 +253,7 @@ const l = t(class t extends i {
227
253
  this.setupActivator();
228
254
  this.setupActivatorSlotClick();
229
255
  this.addContentEventListener();
256
+ this.listenToModalEvents();
230
257
  if (this.isActive) {
231
258
  this.applyScrollStrategy();
232
259
  this.addGlobalEventInterception();
@@ -259,8 +286,7 @@ const l = t(class t extends i {
259
286
  clearTimeout(this.restoreFocusTimeoutId);
260
287
  this.restoreFocusTimeoutId = null;
261
288
  }
262
- // Remover event listeners
263
- window.removeEventListener("scroll", this.handleScrollClose);
289
+ window.removeEventListener("scroll", this.handleScrollClose);
264
290
  window.removeEventListener("scroll", this.handleBlockScroll);
265
291
  if (this.contentRef !== null) {
266
292
  this.contentRef.removeEventListener("keydown", this.handleKeyDown);
@@ -268,6 +294,50 @@ const l = t(class t extends i {
268
294
  this.removeActivatorClickListener();
269
295
  this.cleanupActivatorSlotClick();
270
296
  this.removeGlobalEventInterception();
297
+ this.removeModalEventListener();
298
+ }
299
+ /**
300
+ * Verifica se um elemento é filho direto deste scrim (não nested)
301
+ */ isDirectChild(t) {
302
+ const i = this.getDirectChildren();
303
+ return i.some((i => i === t || i.contains(t)));
304
+ }
305
+ /**
306
+ * Adiciona listeners para eventos brModalOpen e brModalClose das modais filhas
307
+ */ listenToModalEvents() {
308
+ this.el.addEventListener("brModalOpen", this.handleModalOpen);
309
+ this.el.addEventListener("brModalClose", this.handleModalClose);
310
+ }
311
+ /**
312
+ * Remove listeners dos eventos da modal
313
+ */ removeModalEventListener() {
314
+ this.el.removeEventListener("brModalOpen", this.handleModalOpen);
315
+ this.el.removeEventListener("brModalClose", this.handleModalClose);
316
+ }
317
+ /**
318
+ * Retorna os elementos filhos diretos do scrim via slot padrão
319
+ */ getDirectChildren() {
320
+ const t = this.el.shadowRoot;
321
+ if (t === null) return [];
322
+ const i = t.querySelector("slot:not([name])");
323
+ if (i === null) return [];
324
+ return i.assignedElements();
325
+ }
326
+ /**
327
+ * Busca uma modal filha direta do scrim
328
+ */ findModalChild() {
329
+ var t;
330
+ const i = this.getDirectChildren();
331
+ const e = i.find((t => t.tagName === "BR-MODAL"));
332
+ return (t = e) !== null && t !== void 0 ? t : null;
333
+ }
334
+ /**
335
+ * Verifica se há uma modal filha com autoClose=false (padrão ou explícito)
336
+ * Retorna true se:
337
+ * - Existe modal filha E autoClose não é explicitamente true
338
+ */ hasModalWithAutoClose() {
339
+ const t = this.findModalChild();
340
+ return t !== null && t.autoClose !== true;
271
341
  }
272
342
  // ======================================================================
273
343
  // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)
@@ -447,7 +517,11 @@ const l = t(class t extends i {
447
517
  return t.filter((t => t.offsetWidth > 0 && t.offsetHeight > 0 && getComputedStyle(t).visibility !== "hidden"));
448
518
  }
449
519
  shouldHandleEscape(t) {
450
- return (t.key === "Escape" || t.key === "Esc") && this.isActive && !this.disableCloseOnClick;
520
+ if ((t.key === "Escape" || t.key === "Esc") && this.isActive && !this.disableCloseOnClick) {
521
+ // Não fecha se tiver modal filha com autoClose=false ou não definido
522
+ return !this.hasModalWithAutoClose();
523
+ }
524
+ return false;
451
525
  }
452
526
  handleTabNavigation(t) {
453
527
  const i = this.getFocusableElements();
@@ -504,6 +578,9 @@ const l = t(class t extends i {
504
578
  document.removeEventListener("focus", this.handleGlobalFocus, true);
505
579
  document.removeEventListener("focusin", this.handleGlobalFocus, true);
506
580
  }
581
+ // ======================================================================
582
+ // UTILITÁRIOS
583
+ // ======================================================================
507
584
  getCssClassMap() {
508
585
  return {
509
586
  "br-scrim": true,
@@ -524,40 +601,32 @@ const l = t(class t extends i {
524
601
  /**
525
602
  * Define o limite de rolagem para o fechamento automático do scrim.
526
603
  */
527
- setScrollThreshold(t) {
528
- return a(this, void 0, void 0, (function*() {
529
- this.scrollThreshold = t;
530
- }));
604
+ async setScrollThreshold(t) {
605
+ this.scrollThreshold = t;
531
606
  }
532
607
  /**
533
608
  * Método público para exibir o scrim
534
- */ open() {
535
- return a(this, void 0, void 0, (function*() {
536
- this.isOpen = true;
537
- }));
609
+ */ async open() {
610
+ this.isOpen = true;
538
611
  }
539
612
  /**
540
613
  * Método público para esconder o scrim
541
- */ close() {
542
- return a(this, void 0, void 0, (function*() {
543
- this.isOpen = false;
544
- }));
614
+ */ async close() {
615
+ this.isOpen = false;
545
616
  }
546
617
  /**
547
618
  * Método público para alternar o estado de exibição do scrim
548
- */ toggle() {
549
- return a(this, void 0, void 0, (function*() {
550
- this.isOpen = !this.isActive;
551
- }));
619
+ */ async toggle() {
620
+ this.isOpen = !this.isActive;
552
621
  }
553
622
  render() {
554
623
  return o(r, {
555
- key: "1aea7418642867cfb24c099729f34412f9aec7bf"
624
+ key: "249de7af4056263464615cbe086b419f74b8981b"
556
625
  }, o("slot", {
557
- key: "4468892291450f13cded3627ee91f31716108443",
626
+ key: "1698faa6b492e1ec594eba8425f20582a2af0e4a",
558
627
  name: "activator"
559
628
  }), o("div", {
560
- key: "6019de52484c176a5f5d706ca1dc759039dae940",
629
+ key: "adedf3eb84f3d8f79ac9bb19209022301453c019",
561
630
  class: this.getCssClassMap(),
562
631
  id: this.customId,
563
632
  role: "dialog",
@@ -565,18 +634,18 @@ const l = t(class t extends i {
565
634
  "aria-label": this.ariaLabel || "Conteúdo do diálogo",
566
635
  "data-visible": this.isActive ? "true" : "false"
567
636
  }, o("div", {
568
- key: "6c6df83177f1a14097ec5c08e409caaca3953d3b",
637
+ key: "ef7408a6672fabf4d2f79bc7922f301fd102652e",
569
638
  class: "mask",
570
639
  onClick: this.handleMaskClick
571
640
  }), o("div", {
572
- key: "1af0ecd53a0aaf630069139a7e6935533a563e10",
641
+ key: "91ffb1a84478f09fc90cefbb97180c5db13dba5c",
573
642
  ref: t => this.contentRef = t,
574
643
  id: `${this.customId}-content`,
575
644
  class: "content",
576
645
  tabIndex: -1,
577
646
  onKeyDown: this.handleKeyDown
578
647
  }, o("slot", {
579
- key: "2cb75f5b254ed22bbe821998700d9c1f4152dd5b"
648
+ key: "0600ac804980446103154cebf83389ac92e44d9d"
580
649
  }))));
581
650
  }
582
651
  static get formAssociated() {
@@ -595,7 +664,7 @@ const l = t(class t extends i {
595
664
  };
596
665
  }
597
666
  static get style() {
598
- return s;
667
+ return n;
599
668
  }
600
669
  }, [ 321, "br-scrim", {
601
670
  customId: [ 513, "custom-id" ],
@@ -624,7 +693,7 @@ const l = t(class t extends i {
624
693
  activator: [ "handleActivatorChange" ]
625
694
  } ]);
626
695
 
627
- l.FOCUSABLE_SELECTORS = [ "a[href]:not([disabled])", "button:not([disabled])", "br-button:not([disabled])", "input:not([disabled])", "br-input:not([disabled])", "select:not([disabled])", "br-select:not([disabled])", "textarea:not([disabled])", "br-textarea:not([disabled])", '[tabindex]:not([tabindex="-1"])' ].join(",");
696
+ s.FOCUSABLE_SELECTORS = [ "a[href]:not([disabled])", "button:not([disabled])", "br-button:not([disabled])", "input:not([disabled])", "br-input:not([disabled])", "select:not([disabled])", "br-select:not([disabled])", "textarea:not([disabled])", "br-textarea:not([disabled])", '[tabindex]:not([tabindex="-1"])' ].join(",");
628
697
 
629
698
  function defineCustomElement$1() {
630
699
  if (typeof customElements === "undefined") {
@@ -635,17 +704,17 @@ function defineCustomElement$1() {
635
704
  switch (t) {
636
705
  case "br-scrim":
637
706
  if (!customElements.get(t)) {
638
- customElements.define(t, l);
707
+ customElements.define(t, s);
639
708
  }
640
709
  break;
641
710
  }
642
711
  }));
643
712
  }
644
713
 
645
- const c = l;
714
+ const l = s;
646
715
 
647
- const h = defineCustomElement$1;
716
+ const c = defineCustomElement$1;
648
717
 
649
- export { c as BrScrim, h as defineCustomElement };
718
+ export { l as BrScrim, c as defineCustomElement };
650
719
  //# sourceMappingURL=br-scrim.js.map
651
720
  //# sourceMappingURL=br-scrim.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["scrimCss","Scrim","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","Helpers","generateUniqueId","isOpen","disableCloseOnClick","zIndex","bgColor","customOpacity","displayMode","scrollThreshold","activator","ariaLabel","isActive","hasActivatorSlot","contentRef","activatorElement","scrollOffset","lastScrollTop","scrollOrigin","previouslyFocusedElement","focusTimeoutId","restoreFocusTimeoutId","handleActivatorClick","toggle","handleBlockScroll","e","scrollStrategy","window","scrollTo","preventDefault","stopPropagation","handleScrollClose","currentScroll","getScrollPosition","reference","_a","Math","abs","handleOpenChange","handleKeyDown","event","shouldHandleEscape","key","handleTabNavigation","handleGlobalKeyDown","target","isElementInsideScrim","stopImmediatePropagation","focusFirstElement","handleGlobalClick","close","handleGlobalFocus","setTimeout","handleMaskClick","_event","newValue","clearTimeout","scrollY","updateStyles","document","activeElement","applyScrollStrategy","addGlobalEventInterception","brScrimOpen","emit","resetScrolling","removeGlobalEventInterception","restoreFocus","brScrimClose","undefined","el","style","setProperty","handleActivatorChange","removeActivatorClickListener","setupActivator","componentWillLoad","checkActivatorSlot","componentDidLoad","setupActivatorSlotClick","addContentEventListener","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","cleanupActivatorSlotClick","slotName","querySelector","shadowRoot","slotEl","assignedElements","_b","call","length","console","warn","parentElement","element","addActivatorClickListener","enableScrollBlock","enableScrollWatcher","targetWindow","ownerDocument","defaultView","_d","_c","pageYOffset","body","documentElement","removeProperty","setAttribute","focus","focusableElements","getFocusableElements","firstElement","scrollIntoView","block","inline","preventScroll","targetElement","isConnected","error","defaultSlot","flatten","forEach","matches","FOCUSABLE_SELECTORS","push","nestedFocusables","Array","from","querySelectorAll","filterVisibleElements","elements","filter","offsetWidth","offsetHeight","getComputedStyle","visibility","lastElement","isTabForward","shiftKey","shouldTrapFocus","wrapFocus","contains","getCssClassMap","opened","positionContent","setScrollThreshold","threshold","open","render","h","Host","name","class","id","role","onClick","ref","tabIndex","onKeyDown","join"],"sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} 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/scrim?tab=designer).\n *\n * @slot default - Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.\n * @slot activator - Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\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()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private scrollOrigin: number | null = null\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n if (newValue && this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n }\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n // Remover event listeners\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private getScrollPosition(): number {\n const targetWindow = this.el?.ownerDocument?.defaultView || window\n return targetWindow?.scrollY ?? targetWindow?.pageYOffset ?? 0\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n this.scrollOrigin = null\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = this.getScrollPosition()\n const reference = this.scrollOrigin ?? this.lastScrollTop\n if (Math.abs(currentScroll - reference) > this.scrollThreshold) {\n this.scrollOrigin = null\n this.isOpen = false\n this.handleOpenChange(false)\n return\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.isOpen = false\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n this.isOpen = false\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n // ======================================================================\n // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS\n // ======================================================================\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n this.close()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.isOpen = true\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.isOpen = false\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.isOpen = !this.isActive\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["scrimCss","Scrim","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","Helpers","generateUniqueId","isOpen","disableCloseOnClick","zIndex","bgColor","customOpacity","displayMode","scrollThreshold","activator","ariaLabel","isActive","hasActivatorSlot","contentRef","activatorElement","scrollOffset","lastScrollTop","scrollOrigin","previouslyFocusedElement","focusTimeoutId","restoreFocusTimeoutId","handleModalOpen","event","modalElement","target","isDirectChild","open","handleModalClose","close","handleActivatorClick","toggle","handleBlockScroll","e","scrollStrategy","window","scrollTo","preventDefault","stopPropagation","handleScrollClose","currentScroll","getScrollPosition","reference","_a","Math","abs","hasModalWithAutoClose","handleOpenChange","handleKeyDown","shouldHandleEscape","key","handleTabNavigation","handleGlobalKeyDown","isElementInsideScrim","stopImmediatePropagation","focusFirstElement","handleGlobalClick","handleGlobalFocus","setTimeout","handleMaskClick","_event","newValue","clearTimeout","scrollY","updateStyles","document","activeElement","applyScrollStrategy","addGlobalEventInterception","brScrimOpen","emit","resetScrolling","removeGlobalEventInterception","restoreFocus","brScrimClose","undefined","el","style","setProperty","handleActivatorChange","removeActivatorClickListener","setupActivator","componentWillLoad","checkActivatorSlot","componentDidLoad","setupActivatorSlotClick","addContentEventListener","listenToModalEvents","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","cleanupActivatorSlotClick","removeModalEventListener","element","children","getDirectChildren","some","child","contains","shadowRoot","slot","querySelector","assignedElements","findModalChild","find","tagName","modal","autoClose","slotName","slotEl","_b","call","length","console","warn","parentElement","addActivatorClickListener","enableScrollBlock","enableScrollWatcher","targetWindow","ownerDocument","defaultView","_d","_c","pageYOffset","body","documentElement","removeProperty","setAttribute","focus","focusableElements","getFocusableElements","firstElement","scrollIntoView","block","inline","preventScroll","targetElement","isConnected","error","defaultSlot","flatten","forEach","matches","FOCUSABLE_SELECTORS","push","nestedFocusables","Array","from","querySelectorAll","filterVisibleElements","elements","filter","offsetWidth","offsetHeight","getComputedStyle","visibility","lastElement","isTabForward","shiftKey","shouldTrapFocus","wrapFocus","getCssClassMap","opened","positionContent","setScrollThreshold","threshold","render","h","Host","name","class","id","role","onClick","ref","tabIndex","onKeyDown","join"],"sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} 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/scrim?tab=designer).\n *\n * @slot default - Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.\n * @slot activator - Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\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()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private scrollOrigin: number | null = null\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n async handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n if (newValue && this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n }\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n this.listenToModalEvents()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n this.removeModalEventListener()\n }\n\n // ======================================================================\n // GERENCIAMENTO DE COMPONENTES FILHOS\n // ======================================================================\n\n /**\n * Handler para evento brModalOpen emitido por modal filha\n */\n private handleModalOpen = (event: Event) => {\n const modalElement = event.target as HTMLElement\n if (!this.isDirectChild(modalElement)) return\n\n if (!this.isOpen) {\n this.open()\n }\n }\n\n /**\n * Handler para evento brModalClose emitido por modal filha\n */\n private handleModalClose = (event: Event) => {\n const modalElement = event.target as HTMLElement\n if (!this.isDirectChild(modalElement)) return\n\n this.close()\n }\n\n /**\n * Verifica se um elemento é filho direto deste scrim (não nested)\n */\n private isDirectChild(element: HTMLElement): boolean {\n const children = this.getDirectChildren()\n return children.some((child) => child === element || child.contains(element))\n }\n\n /**\n * Adiciona listeners para eventos brModalOpen e brModalClose das modais filhas\n */\n private listenToModalEvents() {\n this.el.addEventListener('brModalOpen', this.handleModalOpen)\n this.el.addEventListener('brModalClose', this.handleModalClose)\n }\n\n /**\n * Remove listeners dos eventos da modal\n */\n private removeModalEventListener() {\n this.el.removeEventListener('brModalOpen', this.handleModalOpen)\n this.el.removeEventListener('brModalClose', this.handleModalClose)\n }\n\n /**\n * Retorna os elementos filhos diretos do scrim via slot padrão\n */\n private getDirectChildren(): Element[] {\n const shadowRoot = this.el.shadowRoot\n if (shadowRoot === null) return []\n\n const slot = shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement | null\n if (slot === null) return []\n\n return slot.assignedElements()\n }\n\n /**\n * Busca uma modal filha direta do scrim\n */\n private findModalChild(): HTMLBrModalElement | null {\n const children = this.getDirectChildren()\n const modalElement = children.find((child) => child.tagName === 'BR-MODAL')\n return (modalElement as HTMLBrModalElement | undefined) ?? null\n }\n\n /**\n * Verifica se há uma modal filha com autoClose=false (padrão ou explícito)\n * Retorna true se:\n * - Existe modal filha E autoClose não é explicitamente true\n */\n private hasModalWithAutoClose(): boolean {\n const modal = this.findModalChild()\n return modal !== null && modal.autoClose !== true\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private getScrollPosition(): number {\n const targetWindow = this.el?.ownerDocument?.defaultView || window\n return targetWindow?.scrollY ?? targetWindow?.pageYOffset ?? 0\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n this.scrollOrigin = null\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = this.getScrollPosition()\n const reference = this.scrollOrigin ?? this.lastScrollTop\n if (Math.abs(currentScroll - reference) > this.scrollThreshold) {\n this.scrollOrigin = null\n // Não fecha se tiver modal filha com autoClose=false ou não definido\n if (this.hasModalWithAutoClose()) {\n return\n }\n this.isOpen = false\n this.handleOpenChange(false)\n return\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.isOpen = false\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n if (!this.hasModalWithAutoClose()) {\n this.isOpen = false\n }\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n if ((event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick) {\n // Não fecha se tiver modal filha com autoClose=false ou não definido\n return !this.hasModalWithAutoClose()\n }\n return false\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Handler para clique na máscara do scrim\n * Fecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false\n */\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n if (this.hasModalWithAutoClose()) {\n return\n }\n this.close()\n }\n }\n\n // ======================================================================\n // UTILITÁRIOS\n // ======================================================================\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.isOpen = true\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.isOpen = false\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.isOpen = !this.isActive\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,12 +2,12 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { S as o, d as s } from "./p-7kxAU6Gr.js";
5
+ import { S as o, d as s } from "./p-DdjKNpU3.js";
6
6
 
7
- const r = o;
7
+ const p = o;
8
8
 
9
9
  const t = s;
10
10
 
11
- export { r as BrSelect, t as defineCustomElement };
11
+ export { p as BrSelect, t as defineCustomElement };
12
12
  //# sourceMappingURL=br-select.js.map
13
13
  //# sourceMappingURL=br-select.js.map