@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
@@ -4124,38 +4124,6 @@ class Button {
4124
4124
  }; }
4125
4125
  }
4126
4126
 
4127
- /******************************************************************************
4128
- Copyright (c) Microsoft Corporation.
4129
-
4130
- Permission to use, copy, modify, and/or distribute this software for any
4131
- purpose with or without fee is hereby granted.
4132
-
4133
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
4134
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
4135
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
4136
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
4137
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
4138
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
4139
- PERFORMANCE OF THIS SOFTWARE.
4140
- ***************************************************************************** */
4141
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
4142
-
4143
-
4144
- function __awaiter(thisArg, _arguments, P, generator) {
4145
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4146
- return new (P || (P = Promise))(function (resolve, reject) {
4147
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
4148
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
4149
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
4150
- step((generator = generator.apply(thisArg, _arguments || [])).next());
4151
- });
4152
- }
4153
-
4154
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
4155
- var e = new Error(message);
4156
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
4157
- };
4158
-
4159
4127
  const checkboxCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-checkbox{--checkbox-padding:var(--spacing-scale-base);--checkbox-size:24px;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.br-checkbox+.br-checkbox{margin-top:var(--spacing-scale-base)}.br-checkbox input{margin:0;opacity:0;position:absolute}.br-checkbox input+label{cursor:pointer;display:inline-block;margin-bottom:0;min-height:var(--checkbox-size);min-width:var(--checkbox-size);padding-left:calc(var(--spacing-scale-base) + var(--checkbox-size));position:relative}.br-checkbox input+label::before{background:var(--background-light);border:1px solid var(--border-color);border-radius:4px;content:\"\";height:var(--checkbox-size);left:0;position:absolute;width:var(--checkbox-size)}.br-checkbox input+label:empty{padding:0}.br-checkbox label{font-weight:var(--font-weight-medium)}.br-checkbox.hidden-label label{padding-left:calc(var(--checkbox-size) + var(--surface-width-md)*2);text-indent:-10000px;white-space:nowrap;width:0}.br-checkbox input:checked+label::after,.br-checkbox input:indeterminate+label::after{border:solid var(--selected);border-width:0 3px 3px 0;content:\"\";height:var(--icon-size-sm);left:8px;position:absolute;top:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:8px}.br-checkbox input[indeterminate]+label::before,.br-checkbox input:indeterminate+label::before{--interactive-rgb:var(--color-rgb);background:var(--selected);border-color:var(--selected)}.br-checkbox input[indeterminate]:hover:not(:disabled)+label::before,.br-checkbox input:indeterminate:hover:not(:disabled)+label::before{--interactive-rgb:var(--color-dark-rgb)}.br-checkbox input[indeterminate]:checked+label::after,.br-checkbox input[indeterminate]+label::after,.br-checkbox input:indeterminate:checked+label::after,.br-checkbox input:indeterminate+label::after{border-color:var(--background-light);border-width:0 0 3px;top:2px;-webkit-transform:none;transform:none}.br-checkbox.invalid input+label::before,.br-checkbox[invalid] input+label::before{--border-color:var(--danger)}.br-checkbox.invalid input:focus-visible:checked+label::before,.br-checkbox.invalid input:focus-visible+label::before,.br-checkbox[invalid] input:focus-visible:checked+label::before,.br-checkbox[invalid] input:focus-visible+label::before{--border-color:var(--focus-color)}.br-checkbox.invalid input:checked+label::before,.br-checkbox[invalid] input:checked+label::before{--border-color:var(--danger)}.br-checkbox.valid input+label::before,.br-checkbox[valid] input+label::before{--border-color:var(--success)}.br-checkbox.valid input:focus-visible:checked+label::before,.br-checkbox.valid input:focus-visible+label::before,.br-checkbox[valid] input:focus-visible:checked+label::before,.br-checkbox[valid] input:focus-visible+label::before{--border-color:var(--focus-color)}.br-checkbox.valid input:checked+label::before,.br-checkbox[valid] input:checked+label::before{--border-color:var(--success)}.br-checkbox.small input+label,.br-checkbox[small] input+label{line-height:var(--spacing-scale-2xh);min-height:var(--spacing-scale-2xh)}.br-checkbox.small input+label::before,.br-checkbox[small] input+label::before{height:var(--spacing-scale-2xh);width:var(--spacing-scale-2xh)}.br-checkbox.small input:checked+label::after,.br-checkbox[small] input:checked+label::after{border-width:0 2px 2px 0;height:var(--icon-size-sm);left:7px;top:4px;width:6px}.br-checkbox.small input[indeterminate]+label::after,.br-checkbox.small input:indeterminate+label::after,.br-checkbox[small] input[indeterminate]+label::after,.br-checkbox[small] input:indeterminate+label::after{border-color:var(--background-light);border-width:0 0 3px;left:7px;top:1px;-webkit-transform:none;transform:none;width:6px}.br-checkbox input:invalid+label::before{--border-color:var(--danger)}.br-checkbox input:focus-visible:checked+label::before,.br-checkbox input:focus-visible+label::before{border-color:var(--focus) !important;-webkit-box-shadow:0 0 0 var(--surface-width-md) var(--focus);box-shadow:0 0 0 var(--surface-width-md) var(--focus);outline:none}.br-checkbox input:hover:not(:disabled)+label::before{--interactive-rgb:var(--interactive-light-rgb);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)))}.br-checkbox:not(.disabled) input:disabled+label{cursor:not-allowed;opacity:var(--disabled)}.br-checkbox:not(.disabled) input:disabled+label *{pointer-events:none}.br-checkbox.inverted,.br-checkbox.inverted label,.br-checkbox.dark-mode,.br-checkbox.dark-mode label{color:var(--color-dark)}:host{display:inline-block}:host .br-checkbox{--checkbox-padding:var(--spacing-scale-half);--checkbox-size:24px;display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}:host .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0}";
4160
4128
 
4161
4129
  /**
@@ -4261,30 +4229,24 @@ class Checkbox {
4261
4229
  * Define o estado indeterminado do checkbox.
4262
4230
  * @param value Novo valor para o estado indeterminado.
4263
4231
  */
4264
- setIndeterminate(value) {
4265
- return __awaiter(this, void 0, void 0, function* () {
4266
- this.indeterminate = value;
4267
- this.updateIndeterminate(value);
4268
- this.indeterminateChange.emit(this.indeterminate);
4269
- });
4232
+ async setIndeterminate(value) {
4233
+ this.indeterminate = value;
4234
+ this.updateIndeterminate(value);
4235
+ this.indeterminateChange.emit(this.indeterminate);
4270
4236
  }
4271
4237
  /**
4272
4238
  * Inverte o valor da prop `checked`
4273
4239
  */
4274
- toggleChecked() {
4275
- return __awaiter(this, void 0, void 0, function* () {
4276
- this.checked = !this.checked;
4277
- this.checkedChange.emit(this.checked);
4278
- });
4240
+ async toggleChecked() {
4241
+ this.checked = !this.checked;
4242
+ this.checkedChange.emit(this.checked);
4279
4243
  }
4280
4244
  /**
4281
4245
  * Define o número de checkboxes filhos em um grupo de checkboxes.
4282
4246
  * @param value Número de checkboxes filhos.
4283
4247
  */
4284
- setNumberOfChildren(value) {
4285
- return __awaiter(this, void 0, void 0, function* () {
4286
- this.numberOfChildren = value;
4287
- });
4248
+ async setNumberOfChildren(value) {
4249
+ this.numberOfChildren = value;
4288
4250
  }
4289
4251
  render() {
4290
4252
  return (hAsync(Host, { key: '9b59d349f3bc58cf43e668035d8c9d4778e74cdc' }, hAsync("div", { key: '58cd8b77fc77dcad639a79e8284d521d2f0bd940', class: this.getCssClassMap() }, hAsync("input", { key: '155fa67ad05467008162c1fe1fd429afe8291a1d', type: "checkbox", id: this.customId, name: this.name, checked: this.checked, disabled: this.disabled, value: this.value, onChange: this.handleCheckedChange, ref: (el) => el && (el.indeterminate = this.indeterminate), "aria-checked": this.getAriaCheckedValue(), "aria-describedby": this.numberOfChildren > 0 ? 'children-number' : null }), hAsync("label", { key: 'ca122a41698c6123d2726400f6e521f0053821d0', htmlFor: this.customId, class: this.hasHiddenLabel ? 'visually-hidden' : undefined }, this.slotDefault ? hAsync("slot", null) : this.label)), this.isFather ? (hAsync("span", { id: "children-number", class: "sr-only" }, "N\u00FAmero de op\u00E7\u00F5es: ", this.numberOfChildren)) : null));
@@ -4571,24 +4533,20 @@ class Collapse {
4571
4533
  /**
4572
4534
  * Abre o collapse programaticamente.
4573
4535
  */
4574
- openCollapse() {
4575
- return __awaiter(this, void 0, void 0, function* () {
4576
- this.open = true;
4577
- this.syncDetailsWithOpen();
4578
- // Fecha outros do mesmo grupo antes de emitir evento
4579
- this.closeOthersInGroup();
4580
- this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup });
4581
- });
4536
+ async openCollapse() {
4537
+ this.open = true;
4538
+ this.syncDetailsWithOpen();
4539
+ // Fecha outros do mesmo grupo antes de emitir evento
4540
+ this.closeOthersInGroup();
4541
+ this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup });
4582
4542
  }
4583
4543
  /**
4584
4544
  * Fecha o collapse programaticamente.
4585
4545
  */
4586
- closeCollapse() {
4587
- return __awaiter(this, void 0, void 0, function* () {
4588
- this.open = false;
4589
- this.syncDetailsWithOpen();
4590
- this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup });
4591
- });
4546
+ async closeCollapse() {
4547
+ this.open = false;
4548
+ this.syncDetailsWithOpen();
4549
+ this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup });
4592
4550
  }
4593
4551
  /**
4594
4552
  * Fecha outros collapses abertos no mesmo accordion, buscando apenas no pai imediato.
@@ -27163,57 +27121,45 @@ class DatetimePicker {
27163
27121
  /**
27164
27122
  * Fecha o dropdown do calendário.
27165
27123
  */
27166
- close() {
27167
- return __awaiter(this, void 0, void 0, function* () {
27168
- this.isOpen = false;
27169
- });
27124
+ async close() {
27125
+ this.isOpen = false;
27170
27126
  }
27171
27127
  /**
27172
27128
  * Retorna a data atualmente selecionada no datetime-picker.
27173
27129
  */
27174
- getValue() {
27175
- return __awaiter(this, void 0, void 0, function* () {
27176
- return this.currentSelectedDate;
27177
- });
27130
+ async getValue() {
27131
+ return this.currentSelectedDate;
27178
27132
  }
27179
27133
  /**
27180
27134
  * Abre o dropdown do calendário.
27181
27135
  */
27182
- open() {
27183
- return __awaiter(this, void 0, void 0, function* () {
27184
- this.isOpen = true;
27185
- });
27136
+ async open() {
27137
+ this.isOpen = true;
27186
27138
  }
27187
27139
  /**
27188
27140
  * Reseta o estado interno do componente para os valores iniciais.
27189
27141
  */
27190
- reset() {
27191
- return __awaiter(this, void 0, void 0, function* () {
27192
- this.resetInternal();
27193
- });
27142
+ async reset() {
27143
+ this.resetInternal();
27194
27144
  }
27195
27145
  /**
27196
27146
  * Define a data selecionada no datetime-picker.
27197
27147
  * @param value Data a ser definida ou null para resetar o valor
27198
27148
  */
27199
- setValue(value) {
27200
- return __awaiter(this, void 0, void 0, function* () {
27201
- if (value === null) {
27202
- this.resetInternal();
27203
- return;
27204
- }
27205
- const date = new Date(value);
27206
- this.currentBaseDate = date;
27207
- this.currentSelectedDate = date;
27208
- });
27149
+ async setValue(value) {
27150
+ if (value === null) {
27151
+ this.resetInternal();
27152
+ return;
27153
+ }
27154
+ const date = new Date(value);
27155
+ this.currentBaseDate = date;
27156
+ this.currentSelectedDate = date;
27209
27157
  }
27210
27158
  /**
27211
27159
  * Alterna o estado do dropdown do calendário entre aberto e fechado.
27212
27160
  */
27213
- toggle() {
27214
- return __awaiter(this, void 0, void 0, function* () {
27215
- this.isOpen = !this.isOpen;
27216
- });
27161
+ async toggle() {
27162
+ this.isOpen = !this.isOpen;
27217
27163
  }
27218
27164
  /**
27219
27165
  * Manipulador de reset do formulário.
@@ -29780,18 +29726,16 @@ class FloatingUIManager {
29780
29726
  * Além disso, define o atributo de dados `data-placement` no elemento de conteúdo para refletir a posição atual.
29781
29727
  * @returns {Promise<void>} Uma promessa que resolve quando a posição é atualizada.
29782
29728
  */
29783
- updatePosition() {
29784
- return __awaiter(this, void 0, void 0, function* () {
29785
- var _a;
29786
- const data = yield computePosition(this.triggerElement, this.contentElement, {
29787
- placement: this.placement,
29788
- middleware: this.buildMiddleware(),
29789
- });
29790
- this.updateTooltipPosition(data);
29791
- this.updateArrowPosition(data);
29792
- this.setPlacementDataAttribute(data);
29793
- (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.call(this, data);
29729
+ async updatePosition() {
29730
+ var _a;
29731
+ const data = await computePosition(this.triggerElement, this.contentElement, {
29732
+ placement: this.placement,
29733
+ middleware: this.buildMiddleware(),
29794
29734
  });
29735
+ this.updateTooltipPosition(data);
29736
+ this.updateArrowPosition(data);
29737
+ this.setPlacementDataAttribute(data);
29738
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.call(this, data);
29795
29739
  }
29796
29740
  /**
29797
29741
  * Constrói os middlewares necessários para o Floating UI.
@@ -30250,22 +30194,18 @@ class Dropdown {
30250
30194
  * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.
30251
30195
  * Este método pode ser chamado externamente.
30252
30196
  */
30253
- open() {
30254
- return __awaiter(this, void 0, void 0, function* () {
30255
- this.isOpen = true;
30256
- return { isOpen: this.isOpen };
30257
- });
30197
+ async open() {
30198
+ this.isOpen = true;
30199
+ return { isOpen: this.isOpen };
30258
30200
  }
30259
30201
  /**
30260
30202
  * Esconde o dropdown.
30261
30203
  * Define a propriedade `isOpen` como falsa e retorna o novo estado.
30262
30204
  * Este método pode ser chamado externamente.
30263
30205
  */
30264
- hide() {
30265
- return __awaiter(this, void 0, void 0, function* () {
30266
- this.isOpen = false;
30267
- return { isOpen: this.isOpen };
30268
- });
30206
+ async hide() {
30207
+ this.isOpen = false;
30208
+ return { isOpen: this.isOpen };
30269
30209
  }
30270
30210
  /**
30271
30211
  * Foca em um elemento específico com suporte a componentes personalizados
@@ -30321,15 +30261,13 @@ class Dropdown {
30321
30261
  * Define o foco no elemento interno do componente.
30322
30262
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
30323
30263
  */
30324
- setFocus() {
30325
- return __awaiter(this, void 0, void 0, function* () {
30326
- if (this.focusableElement !== null && this.focusableElement !== undefined) {
30327
- this.focusableElement.focus();
30328
- }
30329
- else {
30330
- this.focusOnTriggerElement();
30331
- }
30332
- });
30264
+ async setFocus() {
30265
+ if (this.focusableElement !== null && this.focusableElement !== undefined) {
30266
+ this.focusableElement.focus();
30267
+ }
30268
+ else {
30269
+ this.focusOnTriggerElement();
30270
+ }
30333
30271
  }
30334
30272
  render() {
30335
30273
  return (hAsync(Host, { key: 'ace8369063aaebea08e9dda7ceaee5df229a247e', "is-open": this.isOpen, placement: this.placement, "prevent-auto-dismiss": this.preventAutoDismiss }, hAsync("div", { key: '21f85062c8490852b88ef55c948d332678088137', class: this.getCssClassMap(), id: this.customId }, hAsync("div", { key: '58e55ee7fe8445682a08d117f412593640198c84', id: "trigger", onClick: this.toggle, "aria-controls": "target", "aria-haspopup": "true", "aria-expanded": this.isOpen ? 'true' : 'false' }, hAsync("slot", { key: '0f95c368ec27b2eb71eea1ef4a5fdaa0b9587af5', name: "trigger" })), hAsync("div", { key: '2eb72f2596b06376979e9b8ead83b1a07ad8ada8', id: "target", "aria-hidden": this.isOpen ? 'false' : 'true' }, hAsync("slot", { key: 'b231bb498abfa1d98572ae22385eabdfc20d0620', name: "target" })))));
@@ -31267,10 +31205,8 @@ class Header {
31267
31205
  * Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.
31268
31206
  * Pode ser chamado externamente para forçar a atualização das listas.
31269
31207
  */
31270
- resetHeaderList() {
31271
- return __awaiter(this, void 0, void 0, function* () {
31272
- this.handleListResize();
31273
- });
31208
+ async resetHeaderList() {
31209
+ this.handleListResize();
31274
31210
  }
31275
31211
  /**
31276
31212
  * Manipula as mudanças de breakpoint.
@@ -31886,27 +31822,21 @@ class HeaderList {
31886
31822
  /**
31887
31823
  * Fecha a lista.
31888
31824
  */
31889
- closeList() {
31890
- return __awaiter(this, void 0, void 0, function* () {
31891
- this.showList = false;
31892
- });
31825
+ async closeList() {
31826
+ this.showList = false;
31893
31827
  }
31894
31828
  /**
31895
31829
  * Verifica se a lista está aberta.
31896
31830
  * @returns Um booleano indicando se a lista está aberta.
31897
31831
  */
31898
- isListOpen() {
31899
- return __awaiter(this, void 0, void 0, function* () {
31900
- return this.showList;
31901
- });
31832
+ async isListOpen() {
31833
+ return this.showList;
31902
31834
  }
31903
31835
  /**
31904
31836
  * Abre a lista.
31905
31837
  */
31906
- openList() {
31907
- return __awaiter(this, void 0, void 0, function* () {
31908
- this.showList = true;
31909
- });
31838
+ async openList() {
31839
+ this.showList = true;
31910
31840
  }
31911
31841
  /**
31912
31842
  * Adiciona os listeners ao botão de disparo.
@@ -35142,11 +35072,9 @@ class Item {
35142
35072
  * Define o foco no elemento interno do componente.
35143
35073
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
35144
35074
  */
35145
- setFocus() {
35146
- return __awaiter(this, void 0, void 0, function* () {
35147
- var _a;
35148
- (_a = this.focusableElement) === null || _a === void 0 ? void 0 : _a.focus();
35149
- });
35075
+ async setFocus() {
35076
+ var _a;
35077
+ (_a = this.focusableElement) === null || _a === void 0 ? void 0 : _a.focus();
35150
35078
  }
35151
35079
  render() {
35152
35080
  const TagType = this.getTagType();
@@ -36921,22 +36849,20 @@ class Message {
36921
36849
  }
36922
36850
  };
36923
36851
  }
36924
- componentDidLoad() {
36925
- return __awaiter(this, void 0, void 0, function* () {
36926
- var _a, _b;
36927
- if (this.isClosable && !this.isFeedback) {
36928
- this.previousFocus = document.activeElement;
36929
- yield new Promise((resolve) => setTimeout(resolve, 150));
36930
- const closeButton = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-button');
36931
- if (closeButton != null) {
36932
- const button = (_b = closeButton.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('button');
36933
- button === null || button === void 0 ? void 0 : button.focus();
36934
- }
36935
- }
36936
- if (this.isClosable && this.autoRemove) {
36937
- this.el.addEventListener('keydown', this.handleKeyDown);
36852
+ async componentDidLoad() {
36853
+ var _a, _b;
36854
+ if (this.isClosable && !this.isFeedback) {
36855
+ this.previousFocus = document.activeElement;
36856
+ await new Promise((resolve) => setTimeout(resolve, 150));
36857
+ const closeButton = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-button');
36858
+ if (closeButton != null) {
36859
+ const button = (_b = closeButton.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('button');
36860
+ button === null || button === void 0 ? void 0 : button.focus();
36938
36861
  }
36939
- });
36862
+ }
36863
+ if (this.isClosable && this.autoRemove) {
36864
+ this.el.addEventListener('keydown', this.handleKeyDown);
36865
+ }
36940
36866
  }
36941
36867
  disconnectedCallback() {
36942
36868
  if (this.isClosable && !this.autoRemove) {
@@ -37014,7 +36940,9 @@ const modalCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:
37014
36940
  class Modal {
37015
36941
  constructor(hostRef) {
37016
36942
  registerInstance(this, hostRef);
36943
+ this.brModalOpen = createEvent(this, "brModalOpen", 7);
37017
36944
  this.brModalClose = createEvent(this, "brModalClose", 7);
36945
+ this.brModalBeforeClose = createEvent(this, "brModalBeforeClose", 7);
37018
36946
  if (hostRef.$hostElement$["s-ei"]) {
37019
36947
  this.elementInternals = hostRef.$hostElement$["s-ei"];
37020
36948
  }
@@ -37029,32 +36957,132 @@ class Modal {
37029
36957
  this.customId = Helpers.generateUniqueId('modal');
37030
36958
  /** Controla a visibilidade do modal. */
37031
36959
  this.show = false;
37032
- /** Se `true`, o modal se fechará automaticamente ao clicar no botão de fechar ou pressionar a tecla 'Escape'. */
36960
+ /**
36961
+ * Define o comportamento de fechamento do modal.
36962
+ *
36963
+ * - `true`: O modal fecha automaticamente ao clicar no botão fechar.
36964
+ * - `false`: O modal emite `brModalBeforeClose` mas não fecha, permitindo a implementação de lógica customizada (validação, confirmação, etc.) antes do fechamento. O desenvolvedor deve
36965
+ * controlar manualmente o fechamento.
36966
+ */
37033
36967
  this.autoClose = false;
37034
36968
  /**
37035
36969
  * Define o tamanho (largura) do modal.
37036
36970
  */
37037
36971
  this.size = 'medium';
37038
- /** Se `true`, exibe um fundo escurecido (scrim) atrás do modal. */
37039
- this.scrim = false;
37040
36972
  /** Se `true`, habilita a rolagem interna do conteúdo do modal. */
37041
36973
  this.scrollable = false;
37042
36974
  /**
37043
36975
  * Define o alinhamento do conteúdo do rodapé (slot="footer").
37044
36976
  */
37045
36977
  this.alignFooter = 'center';
36978
+ this.isOpeningParentScrim = false;
36979
+ /**
36980
+ * Handler para evento brScrimOpen do parent scrim
36981
+ * Quando scrim abre programaticamente, a modal deve abrir também
36982
+ */
36983
+ this.handleParentScrimOpen = () => {
36984
+ const parentScrim = this.el.closest('br-scrim');
36985
+ if (parentScrim === null)
36986
+ return;
36987
+ if (!this.show) {
36988
+ this.show = true;
36989
+ }
36990
+ };
36991
+ /**
36992
+ * Handler para evento brScrimClose do parent scrim
36993
+ * Se autoClose=true, fecha a modal junto com o scrim
36994
+ * Se autoClose=false, não faz nada (modal permanece aberta)
36995
+ */
36996
+ this.handleParentScrimClose = () => {
36997
+ const parentScrim = this.el.closest('br-scrim');
36998
+ if (parentScrim === null)
36999
+ return;
37000
+ if (this.autoClose && this.show) {
37001
+ this.show = false;
37002
+ }
37003
+ };
37046
37004
  this.handleClose = () => {
37047
- this.brModalClose.emit();
37005
+ this.brModalBeforeClose.emit();
37048
37006
  if (this.autoClose) {
37049
37007
  this.show = false;
37050
- // Se o modal está dentro de um br-scrim, fecha o scrim também
37051
- const parentScrim = this.el.closest('br-scrim');
37052
- if (parentScrim) {
37053
- parentScrim.close();
37054
- }
37055
37008
  }
37056
37009
  };
37057
37010
  }
37011
+ handleShowChange(newValue, oldValue) {
37012
+ if (newValue) {
37013
+ this.brModalOpen.emit();
37014
+ this.openParentScrim();
37015
+ }
37016
+ else if (oldValue === true) {
37017
+ this.brModalClose.emit();
37018
+ this.closeParentScrim();
37019
+ }
37020
+ }
37021
+ closeParentScrim() {
37022
+ const parentScrim = this.el.closest('br-scrim');
37023
+ if (parentScrim && typeof parentScrim.close === 'function') {
37024
+ parentScrim.close();
37025
+ }
37026
+ }
37027
+ componentWillLoad() {
37028
+ if (!this.show) {
37029
+ const parentScrim = this.el.closest('br-scrim');
37030
+ if (parentScrim !== null && parentScrim.isOpen) {
37031
+ this.show = true;
37032
+ }
37033
+ }
37034
+ }
37035
+ componentDidLoad() {
37036
+ this.listenToParentScrimEvents();
37037
+ if (this.show) {
37038
+ this.openParentScrim();
37039
+ }
37040
+ }
37041
+ disconnectedCallback() {
37042
+ this.isOpeningParentScrim = false;
37043
+ this.removeParentScrimEventListeners();
37044
+ }
37045
+ /**
37046
+ * Adiciona listeners para eventos do parent scrim
37047
+ */
37048
+ listenToParentScrimEvents() {
37049
+ const parentScrim = this.el.closest('br-scrim');
37050
+ if (parentScrim !== null) {
37051
+ parentScrim.addEventListener('brScrimOpen', this.handleParentScrimOpen);
37052
+ parentScrim.addEventListener('brScrimClose', this.handleParentScrimClose);
37053
+ }
37054
+ }
37055
+ /**
37056
+ * Remove listeners de eventos do parent scrim
37057
+ */
37058
+ removeParentScrimEventListeners() {
37059
+ const parentScrim = this.el.closest('br-scrim');
37060
+ if (parentScrim !== null) {
37061
+ parentScrim.removeEventListener('brScrimOpen', this.handleParentScrimOpen);
37062
+ parentScrim.removeEventListener('brScrimClose', this.handleParentScrimClose);
37063
+ }
37064
+ }
37065
+ openParentScrim() {
37066
+ if (this.isOpeningParentScrim)
37067
+ return;
37068
+ const parentScrim = this.el.closest('br-scrim');
37069
+ if (parentScrim && !parentScrim.isOpen) {
37070
+ this.isOpeningParentScrim = true;
37071
+ Promise.resolve()
37072
+ .then(() => {
37073
+ try {
37074
+ return parentScrim.open();
37075
+ }
37076
+ catch (error) {
37077
+ console.warn('br-modal: Erro ao abrir scrim pai:', error);
37078
+ throw error;
37079
+ }
37080
+ })
37081
+ .finally(() => {
37082
+ this.isOpeningParentScrim = false;
37083
+ });
37084
+ }
37085
+ }
37058
37086
  get titleId() {
37059
37087
  return `${this.customId}-title`;
37060
37088
  }
@@ -37071,32 +37099,30 @@ class Modal {
37071
37099
  /**
37072
37100
  * Método público para abrir o modal
37073
37101
  */
37074
- open() {
37075
- return __awaiter(this, void 0, void 0, function* () {
37076
- this.show = true;
37077
- });
37102
+ async open() {
37103
+ this.show = true;
37104
+ this.openParentScrim();
37078
37105
  }
37079
37106
  /**
37080
37107
  * Método público para fechar o modal
37081
37108
  */
37082
- close() {
37083
- return __awaiter(this, void 0, void 0, function* () {
37084
- this.show = false;
37085
- // Se o modal está dentro de um br-scrim, fecha o scrim também
37086
- const parentScrim = this.el.closest('br-scrim');
37087
- if (parentScrim) {
37088
- parentScrim.close();
37089
- }
37090
- });
37109
+ async close() {
37110
+ if (!this.autoClose) {
37111
+ return;
37112
+ }
37113
+ this.show = false;
37091
37114
  }
37092
37115
  render() {
37093
37116
  if (!this.show) {
37094
37117
  return null;
37095
37118
  }
37096
- return (hAsync(Host, null, hAsync("div", { class: this.getCssClassMap(), role: "dialog", "aria-modal": "true", "aria-labelledby": this.titleId, "aria-describedby": this.contentId }, hAsync("div", { class: "br-modal-header" }, hAsync("div", { class: "modal-title", id: this.titleId }, hAsync("slot", { name: "header" }, this.titleText)), hAsync("slot", { name: "close-button" }, hAsync("br-button", { class: "close", shape: "circle", density: "small", "aria-label": "Fechar", onClick: this.handleClose }, hAsync("br-icon", { "icon-name": "fa-solid:times" })))), hAsync("div", { id: this.contentId, class: "br-modal-body" }, hAsync("slot", null)), hAsync("div", { class: `br-modal-footer ${this.alignFooter ? `justify-content-${this.alignFooter}` : ''}` }, hAsync("slot", { name: "footer" })))));
37119
+ return (hAsync(Host, null, hAsync("div", { class: this.getCssClassMap(), role: "dialog", "aria-modal": "true", "aria-labelledby": this.titleId, "aria-describedby": this.contentId }, hAsync("div", { class: "br-modal-header" }, hAsync("div", { class: "modal-title", id: this.titleId }, hAsync("slot", { name: "header" }, this.titleText)), hAsync("slot", { name: "close-button" }, hAsync("br-button", { class: "close", shape: "circle", density: "small", "aria-label": "Fechar", onClick: this.handleClose }, hAsync("br-icon", { "icon-name": "fa-solid:times" })))), hAsync("div", { id: this.contentId, class: "br-modal-body" }, hAsync("slot", null)), hAsync("div", { class: `br-modal-footer ${this.alignFooter !== undefined ? `justify-content-${this.alignFooter}` : ''}` }, hAsync("slot", { name: "footer" })))));
37097
37120
  }
37098
37121
  static get formAssociated() { return true; }
37099
37122
  get el() { return getElement(this); }
37123
+ static get watchers() { return {
37124
+ "show": ["handleShowChange"]
37125
+ }; }
37100
37126
  static get style() { return modalCss; }
37101
37127
  static get cmpMeta() { return {
37102
37128
  "$flags$": 329,
@@ -37108,7 +37134,6 @@ class Modal {
37108
37134
  "autoClose": [516, "auto-close"],
37109
37135
  "initialFocusSelector": [1, "initial-focus-selector"],
37110
37136
  "size": [513],
37111
- "scrim": [516],
37112
37137
  "scrollable": [516],
37113
37138
  "alignFooter": [513, "align-footer"],
37114
37139
  "open": [64],
@@ -37116,7 +37141,7 @@ class Modal {
37116
37141
  },
37117
37142
  "$listeners$": undefined,
37118
37143
  "$lazyBundleId$": "-",
37119
- "$attrsToReflect$": [["customId", "custom-id"], ["show", "show"], ["autoClose", "auto-close"], ["size", "size"], ["scrim", "scrim"], ["scrollable", "scrollable"], ["alignFooter", "align-footer"]]
37144
+ "$attrsToReflect$": [["customId", "custom-id"], ["show", "show"], ["autoClose", "auto-close"], ["size", "size"], ["scrollable", "scrollable"], ["alignFooter", "align-footer"]]
37120
37145
  }; }
37121
37146
  }
37122
37147
 
@@ -37688,19 +37713,15 @@ class Radio {
37688
37713
  /**
37689
37714
  * Inverte o valor da prop `checked`
37690
37715
  */
37691
- toggleChecked() {
37692
- return __awaiter(this, void 0, void 0, function* () {
37693
- this.checked = !this.checked;
37694
- });
37716
+ async toggleChecked() {
37717
+ this.checked = !this.checked;
37695
37718
  }
37696
- setFocus() {
37697
- return __awaiter(this, void 0, void 0, function* () {
37698
- var _a;
37699
- const input = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');
37700
- if (input) {
37701
- input.focus();
37702
- }
37703
- });
37719
+ async setFocus() {
37720
+ var _a;
37721
+ const input = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');
37722
+ if (input) {
37723
+ input.focus();
37724
+ }
37704
37725
  }
37705
37726
  getCssClassMap() {
37706
37727
  return {
@@ -37846,6 +37867,29 @@ class Scrim {
37846
37867
  this.previouslyFocusedElement = null;
37847
37868
  this.focusTimeoutId = null;
37848
37869
  this.restoreFocusTimeoutId = null;
37870
+ // ======================================================================
37871
+ // GERENCIAMENTO DE COMPONENTES FILHOS
37872
+ // ======================================================================
37873
+ /**
37874
+ * Handler para evento brModalOpen emitido por modal filha
37875
+ */
37876
+ this.handleModalOpen = (event) => {
37877
+ const modalElement = event.target;
37878
+ if (!this.isDirectChild(modalElement))
37879
+ return;
37880
+ if (!this.isOpen) {
37881
+ this.open();
37882
+ }
37883
+ };
37884
+ /**
37885
+ * Handler para evento brModalClose emitido por modal filha
37886
+ */
37887
+ this.handleModalClose = (event) => {
37888
+ const modalElement = event.target;
37889
+ if (!this.isDirectChild(modalElement))
37890
+ return;
37891
+ this.close();
37892
+ };
37849
37893
  this.handleActivatorClick = () => {
37850
37894
  this.toggle();
37851
37895
  };
@@ -37863,6 +37907,10 @@ class Scrim {
37863
37907
  const reference = (_a = this.scrollOrigin) !== null && _a !== void 0 ? _a : this.lastScrollTop;
37864
37908
  if (Math.abs(currentScroll - reference) > this.scrollThreshold) {
37865
37909
  this.scrollOrigin = null;
37910
+ // Não fecha se tiver modal filha com autoClose=false ou não definido
37911
+ if (this.hasModalWithAutoClose()) {
37912
+ return;
37913
+ }
37866
37914
  this.isOpen = false;
37867
37915
  this.handleOpenChange(false);
37868
37916
  return;
@@ -37898,7 +37946,9 @@ class Scrim {
37898
37946
  }
37899
37947
  if (event.key === 'Escape' && !this.disableCloseOnClick) {
37900
37948
  event.preventDefault();
37901
- this.isOpen = false;
37949
+ if (!this.hasModalWithAutoClose()) {
37950
+ this.isOpen = false;
37951
+ }
37902
37952
  }
37903
37953
  };
37904
37954
  // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo
@@ -37932,11 +37982,15 @@ class Scrim {
37932
37982
  }, 0);
37933
37983
  }
37934
37984
  };
37935
- // ======================================================================
37936
- // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS
37937
- // ======================================================================
37985
+ /**
37986
+ * Handler para clique na máscara do scrim
37987
+ * Fecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false
37988
+ */
37938
37989
  this.handleMaskClick = (_event) => {
37939
37990
  if (!this.disableCloseOnClick) {
37991
+ if (this.hasModalWithAutoClose()) {
37992
+ return;
37993
+ }
37940
37994
  this.close();
37941
37995
  }
37942
37996
  };
@@ -37944,7 +37998,7 @@ class Scrim {
37944
37998
  // ======================================================================
37945
37999
  // LIFECYCLE HOOKS E WATCHERS
37946
38000
  // ======================================================================
37947
- handleOpenChange(newValue) {
38001
+ async handleOpenChange(newValue) {
37948
38002
  // Cancelar qualquer timeout anterior
37949
38003
  if (this.focusTimeoutId !== null) {
37950
38004
  clearTimeout(this.focusTimeoutId);
@@ -38002,6 +38056,7 @@ class Scrim {
38002
38056
  this.setupActivator();
38003
38057
  this.setupActivatorSlotClick();
38004
38058
  this.addContentEventListener();
38059
+ this.listenToModalEvents();
38005
38060
  if (this.isActive) {
38006
38061
  this.applyScrollStrategy();
38007
38062
  this.addGlobalEventInterception();
@@ -38035,7 +38090,6 @@ class Scrim {
38035
38090
  clearTimeout(this.restoreFocusTimeoutId);
38036
38091
  this.restoreFocusTimeoutId = null;
38037
38092
  }
38038
- // Remover event listeners
38039
38093
  window.removeEventListener('scroll', this.handleScrollClose);
38040
38094
  window.removeEventListener('scroll', this.handleBlockScroll);
38041
38095
  if (this.contentRef !== null) {
@@ -38044,6 +38098,58 @@ class Scrim {
38044
38098
  this.removeActivatorClickListener();
38045
38099
  this.cleanupActivatorSlotClick();
38046
38100
  this.removeGlobalEventInterception();
38101
+ this.removeModalEventListener();
38102
+ }
38103
+ /**
38104
+ * Verifica se um elemento é filho direto deste scrim (não nested)
38105
+ */
38106
+ isDirectChild(element) {
38107
+ const children = this.getDirectChildren();
38108
+ return children.some((child) => child === element || child.contains(element));
38109
+ }
38110
+ /**
38111
+ * Adiciona listeners para eventos brModalOpen e brModalClose das modais filhas
38112
+ */
38113
+ listenToModalEvents() {
38114
+ this.el.addEventListener('brModalOpen', this.handleModalOpen);
38115
+ this.el.addEventListener('brModalClose', this.handleModalClose);
38116
+ }
38117
+ /**
38118
+ * Remove listeners dos eventos da modal
38119
+ */
38120
+ removeModalEventListener() {
38121
+ this.el.removeEventListener('brModalOpen', this.handleModalOpen);
38122
+ this.el.removeEventListener('brModalClose', this.handleModalClose);
38123
+ }
38124
+ /**
38125
+ * Retorna os elementos filhos diretos do scrim via slot padrão
38126
+ */
38127
+ getDirectChildren() {
38128
+ const shadowRoot = this.el.shadowRoot;
38129
+ if (shadowRoot === null)
38130
+ return [];
38131
+ const slot = shadowRoot.querySelector('slot:not([name])');
38132
+ if (slot === null)
38133
+ return [];
38134
+ return slot.assignedElements();
38135
+ }
38136
+ /**
38137
+ * Busca uma modal filha direta do scrim
38138
+ */
38139
+ findModalChild() {
38140
+ var _a;
38141
+ const children = this.getDirectChildren();
38142
+ const modalElement = children.find((child) => child.tagName === 'BR-MODAL');
38143
+ return (_a = modalElement) !== null && _a !== void 0 ? _a : null;
38144
+ }
38145
+ /**
38146
+ * Verifica se há uma modal filha com autoClose=false (padrão ou explícito)
38147
+ * Retorna true se:
38148
+ * - Existe modal filha E autoClose não é explicitamente true
38149
+ */
38150
+ hasModalWithAutoClose() {
38151
+ const modal = this.findModalChild();
38152
+ return modal !== null && modal.autoClose !== true;
38047
38153
  }
38048
38154
  // ======================================================================
38049
38155
  // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)
@@ -38232,7 +38338,11 @@ class Scrim {
38232
38338
  return elements.filter((el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden');
38233
38339
  }
38234
38340
  shouldHandleEscape(event) {
38235
- return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick;
38341
+ if ((event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick) {
38342
+ // Não fecha se tiver modal filha com autoClose=false ou não definido
38343
+ return !this.hasModalWithAutoClose();
38344
+ }
38345
+ return false;
38236
38346
  }
38237
38347
  handleTabNavigation(event) {
38238
38348
  const focusableElements = this.getFocusableElements();
@@ -38293,6 +38403,9 @@ class Scrim {
38293
38403
  document.removeEventListener('focus', this.handleGlobalFocus, true);
38294
38404
  document.removeEventListener('focusin', this.handleGlobalFocus, true);
38295
38405
  }
38406
+ // ======================================================================
38407
+ // UTILITÁRIOS
38408
+ // ======================================================================
38296
38409
  getCssClassMap() {
38297
38410
  return {
38298
38411
  'br-scrim': true,
@@ -38313,37 +38426,29 @@ class Scrim {
38313
38426
  /**
38314
38427
  * Define o limite de rolagem para o fechamento automático do scrim.
38315
38428
  */
38316
- setScrollThreshold(threshold) {
38317
- return __awaiter(this, void 0, void 0, function* () {
38318
- this.scrollThreshold = threshold;
38319
- });
38429
+ async setScrollThreshold(threshold) {
38430
+ this.scrollThreshold = threshold;
38320
38431
  }
38321
38432
  /**
38322
38433
  * Método público para exibir o scrim
38323
38434
  */
38324
- open() {
38325
- return __awaiter(this, void 0, void 0, function* () {
38326
- this.isOpen = true;
38327
- });
38435
+ async open() {
38436
+ this.isOpen = true;
38328
38437
  }
38329
38438
  /**
38330
38439
  * Método público para esconder o scrim
38331
38440
  */
38332
- close() {
38333
- return __awaiter(this, void 0, void 0, function* () {
38334
- this.isOpen = false;
38335
- });
38441
+ async close() {
38442
+ this.isOpen = false;
38336
38443
  }
38337
38444
  /**
38338
38445
  * Método público para alternar o estado de exibição do scrim
38339
38446
  */
38340
- toggle() {
38341
- return __awaiter(this, void 0, void 0, function* () {
38342
- this.isOpen = !this.isActive;
38343
- });
38447
+ async toggle() {
38448
+ this.isOpen = !this.isActive;
38344
38449
  }
38345
38450
  render() {
38346
- return (hAsync(Host, { key: '1aea7418642867cfb24c099729f34412f9aec7bf' }, hAsync("slot", { key: '4468892291450f13cded3627ee91f31716108443', name: "activator" }), hAsync("div", { key: '6019de52484c176a5f5d706ca1dc759039dae940', class: this.getCssClassMap(), id: this.customId, role: "dialog", "aria-modal": "true", "aria-label": this.ariaLabel || 'Conteúdo do diálogo', "data-visible": this.isActive ? 'true' : 'false' }, hAsync("div", { key: '6c6df83177f1a14097ec5c08e409caaca3953d3b', class: "mask", onClick: this.handleMaskClick }), hAsync("div", { key: '1af0ecd53a0aaf630069139a7e6935533a563e10', ref: (el) => (this.contentRef = el), id: `${this.customId}-content`, class: "content", tabIndex: -1, onKeyDown: this.handleKeyDown }, hAsync("slot", { key: '2cb75f5b254ed22bbe821998700d9c1f4152dd5b' })))));
38451
+ return (hAsync(Host, { key: '249de7af4056263464615cbe086b419f74b8981b' }, hAsync("slot", { key: '1698faa6b492e1ec594eba8425f20582a2af0e4a', name: "activator" }), hAsync("div", { key: 'adedf3eb84f3d8f79ac9bb19209022301453c019', class: this.getCssClassMap(), id: this.customId, role: "dialog", "aria-modal": "true", "aria-label": this.ariaLabel || 'Conteúdo do diálogo', "data-visible": this.isActive ? 'true' : 'false' }, hAsync("div", { key: 'ef7408a6672fabf4d2f79bc7922f301fd102652e', class: "mask", onClick: this.handleMaskClick }), hAsync("div", { key: '91ffb1a84478f09fc90cefbb97180c5db13dba5c', ref: (el) => (this.contentRef = el), id: `${this.customId}-content`, class: "content", tabIndex: -1, onKeyDown: this.handleKeyDown }, hAsync("slot", { key: '0600ac804980446103154cebf83389ac92e44d9d' })))));
38347
38452
  }
38348
38453
  static get formAssociated() { return true; }
38349
38454
  get el() { return getElement(this); }
@@ -38457,6 +38562,11 @@ class Select {
38457
38562
  * Útil para casos contextuais como paginação.
38458
38563
  */
38459
38564
  this.isInline = false;
38565
+ /**
38566
+ * Desabilita a interação com o componente `br-select`.
38567
+ * Quando `true`, o input e as opções ficam desabilitados e não respondem a cliques ou teclas.
38568
+ */
38569
+ this.disabled = false;
38460
38570
  /**
38461
38571
  * Propaga para o input interno a remoção da borda quando desfocado.
38462
38572
  */
@@ -38772,17 +38882,44 @@ class Select {
38772
38882
  renderInput() {
38773
38883
  // Se estiver focado, mostramos EXATAMENTE o que está sendo digitado (searchTerm), mesmo que seja vazio.
38774
38884
  // Se não estiver focado, mostramos o termo de busca (se houver) ou o valor selecionado (inputValue).
38775
- const displayValue = this.isFocused ? this.searchTerm : (this.searchTerm || this.inputValue);
38776
- return (hAsync("br-input", { exportparts: "label", value: displayValue, label: this.label, isInline: this.isInline, controlWidth: this.inputWidth, borderless: this.borderless, placeholder: this.placeholder, actionLabel: this.isExpanded ? 'Recolher lista de opções' : 'Exibir lista de opções', actionTabIndex: -1, readonly: false, onClick: () => this.toggleOpen(), onInput: (event) => this.handleSearchInput(event), onFocus: () => this.handleSearchFocus(), onBlur: (event) => this.handleSearchBlur(event), onKeyDown: (event) => this.handleKeydownOnInput(event) }, this.showSearchIcon && hAsync("br-icon", { slot: "icon", "icon-name": "fa-solid:search", "aria-hidden": "true" }), hAsync("br-icon", { slot: "action", "icon-name": this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down', height: "16", "aria-hidden": "true" })));
38885
+ const displayValue = this.isFocused ? this.searchTerm : this.searchTerm || this.inputValue;
38886
+ return (hAsync("br-input", { exportparts: "label", value: displayValue, label: this.label, isInline: this.isInline, controlWidth: this.inputWidth, borderless: this.borderless, placeholder: this.placeholder, actionLabel: this.isExpanded ? 'Recolher lista de opções' : 'Exibir lista de opções', actionTabIndex: -1, readonly: false, disabled: this.disabled, onClick: () => {
38887
+ if (!this.disabled)
38888
+ this.toggleOpen();
38889
+ }, onInput: (event) => this.handleSearchInput(event), onFocus: () => this.handleSearchFocus(), onBlur: (event) => this.handleSearchBlur(event), onKeyDown: (event) => {
38890
+ if (!this.disabled)
38891
+ this.handleKeydownOnInput(event);
38892
+ } }, this.showSearchIcon && hAsync("br-icon", { slot: "icon", "icon-name": "fa-solid:search", "aria-hidden": "true" }), hAsync("br-icon", { slot: "action", "icon-name": this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down', height: "16", "aria-hidden": "true" })));
38777
38893
  }
38778
38894
  renderSelectAllCheckbox() {
38779
- return (hAsync("div", { class: `br-item highlighted ${this.isAllSelected ? 'selected' : ''}`, "data-all": "data-all", tabindex: "-1", role: "option", "aria-selected": this.isAllSelected, onKeyDown: (event) => this.handleSelectAllKeyDown(event), onClick: () => this.toggleSelectAll() }, hAsync("br-checkbox", { name: `checkbox-${this.customId}`, label: this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel, checked: this.isAllSelected, indeterminate: this.isIndeterminate, onClick: (e) => e.stopPropagation(), onCheckedChange: () => this.toggleSelectAll() })));
38895
+ return (hAsync("div", { class: `br-item highlighted ${this.isAllSelected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`, "data-all": "data-all", tabindex: "-1", role: "option", "aria-selected": this.isAllSelected, "aria-disabled": this.disabled, onKeyDown: (event) => {
38896
+ if (!this.disabled)
38897
+ this.handleSelectAllKeyDown(event);
38898
+ }, onClick: () => {
38899
+ if (!this.disabled)
38900
+ this.toggleSelectAll();
38901
+ } }, hAsync("br-checkbox", { name: `checkbox-${this.customId}`, label: this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel, checked: this.isAllSelected, indeterminate: this.isIndeterminate, disabled: this.disabled, onClick: (e) => e.stopPropagation(), onCheckedChange: () => {
38902
+ if (!this.disabled)
38903
+ this.toggleSelectAll();
38904
+ } })));
38780
38905
  }
38781
38906
  renderOptions() {
38782
38907
  if (this.filteredOptions.length === 0) {
38783
38908
  return (hAsync("div", { class: "br-item empty", role: "option", "aria-selected": "false", tabindex: -1 }, "Nenhum resultado encontrado"));
38784
38909
  }
38785
- return this.filteredOptions.map((option, index) => (hAsync("div", { class: `br-item ${option.selected ? 'selected' : ''}`, key: `${option.label}-${this.customId}`, role: "option", tabindex: this.focusedIndex === index ? 0 : -1, "aria-selected": option.selected, "data-value": option.value, onClick: () => this.handleSelectionByValue(option.value), onKeyDown: (event) => this.handleKeydownOnItem(event, index), onMouseOver: () => this.emitHoverFromOption(option), onPointerOver: () => this.emitHoverFromOption(option), onFocus: () => this.emitHoverFromOption(option) }, this.isMultiple ? (hAsync("br-checkbox", { name: `checkbox-${index}-${this.customId}`, label: option.label || option.value, checked: option.selected === true, onClick: (e) => e.stopPropagation(), onCheckedChange: () => this.handleSelectionByValue(option.value) })) : (hAsync("br-radio", { exportparts: "radio-input, radio-label", name: `radio-${index}-${this.customId}`, label: option.label || option.value, checked: option.selected === true, onClick: (e) => e.stopPropagation(), onCheckedChange: () => this.handleSelectionByValue(option.value) })))));
38910
+ return this.filteredOptions.map((option, index) => (hAsync("div", { class: `br-item ${option.selected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`, key: `${option.label}-${this.customId}`, role: "option", tabindex: this.disabled ? -1 : this.focusedIndex === index ? 0 : -1, "aria-selected": option.selected, "aria-disabled": this.disabled, "data-value": option.value, onClick: () => {
38911
+ if (!this.disabled)
38912
+ this.handleSelectionByValue(option.value);
38913
+ }, onKeyDown: (event) => {
38914
+ if (!this.disabled)
38915
+ this.handleKeydownOnItem(event, index);
38916
+ }, onMouseOver: () => this.emitHoverFromOption(option), onPointerOver: () => this.emitHoverFromOption(option), onFocus: () => this.emitHoverFromOption(option) }, this.isMultiple ? (hAsync("br-checkbox", { name: `checkbox-${index}-${this.customId}`, label: option.label || option.value, checked: option.selected === true, disabled: this.disabled, onClick: (e) => e.stopPropagation(), onCheckedChange: () => {
38917
+ if (!this.disabled)
38918
+ this.handleSelectionByValue(option.value);
38919
+ } })) : (hAsync("br-radio", { exportparts: "radio-input, radio-label", name: `radio-${index}-${this.customId}`, label: option.label || option.value, checked: option.selected === true, disabled: this.disabled, onClick: (e) => e.stopPropagation(), onCheckedChange: () => {
38920
+ if (!this.disabled)
38921
+ this.handleSelectionByValue(option.value);
38922
+ } })))));
38786
38923
  }
38787
38924
  /**
38788
38925
  * Determina um id para o radio.
@@ -38794,50 +38931,42 @@ class Select {
38794
38931
  /**
38795
38932
  * Inverte o valor da prop `isOpen`
38796
38933
  */
38797
- toggleOpen() {
38798
- return __awaiter(this, void 0, void 0, function* () {
38799
- this.isExpanded = !this.isExpanded;
38800
- });
38934
+ async toggleOpen() {
38935
+ this.isExpanded = !this.isExpanded;
38801
38936
  }
38802
38937
  /**
38803
38938
  * Limpa todas as opções selecionadas.
38804
38939
  */
38805
- clear() {
38806
- return __awaiter(this, void 0, void 0, function* () {
38807
- const updatedOptions = this.parsedOptions.map((option) => (Object.assign(Object.assign({}, option), { selected: false })));
38808
- this.parsedOptions = updatedOptions;
38809
- const newValue = this.isMultiple ? [] : undefined;
38810
- this.selectedValue = newValue;
38811
- this.value = newValue;
38812
- this.updateSelectedOptions();
38813
- this.updateSelectedAllState();
38814
- this.valueChange.emit(newValue);
38815
- try {
38816
- this.elementInternals.setFormValue(JSON.stringify(newValue !== null && newValue !== void 0 ? newValue : (this.isMultiple ? [] : null)));
38817
- }
38818
- catch (_a) {
38819
- // Ignora erro em testes onde setFormValue não é implementado
38820
- }
38821
- });
38940
+ async clear() {
38941
+ const updatedOptions = this.parsedOptions.map((option) => (Object.assign(Object.assign({}, option), { selected: false })));
38942
+ this.parsedOptions = updatedOptions;
38943
+ const newValue = this.isMultiple ? [] : undefined;
38944
+ this.selectedValue = newValue;
38945
+ this.value = newValue;
38946
+ this.updateSelectedOptions();
38947
+ this.updateSelectedAllState();
38948
+ this.valueChange.emit(newValue);
38949
+ try {
38950
+ this.elementInternals.setFormValue(JSON.stringify(newValue !== null && newValue !== void 0 ? newValue : (this.isMultiple ? [] : null)));
38951
+ }
38952
+ catch (_a) {
38953
+ // Ignora erro em testes onde setFormValue não é implementado
38954
+ }
38822
38955
  }
38823
38956
  /**
38824
38957
  * Retorna o valor selecionado.
38825
38958
  * @returns {Promise<string | string[]>} O valor atual.
38826
38959
  */
38827
- getValue() {
38828
- return __awaiter(this, void 0, void 0, function* () {
38829
- return this.value;
38830
- });
38960
+ async getValue() {
38961
+ return this.value;
38831
38962
  }
38832
38963
  /**
38833
38964
  * Define o valor do componente.
38834
38965
  * @param {string | string[]} newValue O novo valor a ser definido.
38835
38966
  */
38836
- setValue(newValue) {
38837
- return __awaiter(this, void 0, void 0, function* () {
38838
- this.value = newValue;
38839
- // O @Watch('value') cuidará da sincronização
38840
- });
38967
+ async setValue(newValue) {
38968
+ this.value = newValue;
38969
+ // O @Watch('value') cuidará da sincronização
38841
38970
  }
38842
38971
  getCssClassMap() {
38843
38972
  return {
@@ -38869,7 +38998,7 @@ class Select {
38869
38998
  this.filteredOptions = this.getFilteredOptions('');
38870
38999
  }
38871
39000
  render() {
38872
- return (hAsync("div", { key: '5bb0e5a75ee4869f3bf6fb4543d1edb93d7b420c', class: this.getCssClassMap(), id: this.getComputedId() }, this.renderInput(), this.isExpanded && (hAsync("br-list", { key: 'e3fb9c6d10e224ee05c9b3adb5e9f4f1b98d4f67', tabindex: -1, onKeyDown: (event) => this.handleKeydownOnList(event), style: this.inputWidth !== undefined ? { width: this.inputWidth } : undefined }, this.isMultiple && this.renderSelectAllCheckbox(), this.renderOptions()))));
39001
+ return (hAsync("div", { key: '94bc55d4369cb86db9253fef83ab491f90998dd5', class: this.getCssClassMap(), id: this.getComputedId(), "aria-disabled": this.disabled }, this.renderInput(), this.isExpanded && (hAsync("br-list", { key: 'fb5d789013c6a1c7e858161c1a370b746f4c9e1e', tabindex: -1, onKeyDown: (event) => this.handleKeydownOnList(event), style: this.inputWidth !== undefined ? { width: this.inputWidth } : undefined }, this.isMultiple && this.renderSelectAllCheckbox(), this.renderOptions()))));
38873
39002
  }
38874
39003
  static get formAssociated() { return true; }
38875
39004
  get el() { return getElement(this); }
@@ -38893,6 +39022,7 @@ class Select {
38893
39022
  "isOpen": [516, "is-open"],
38894
39023
  "isInline": [516, "is-inline"],
38895
39024
  "inputWidth": [513, "input-width"],
39025
+ "disabled": [516],
38896
39026
  "borderless": [516],
38897
39027
  "customId": [513, "custom-id"],
38898
39028
  "value": [1025],
@@ -38913,7 +39043,7 @@ class Select {
38913
39043
  },
38914
39044
  "$listeners$": undefined,
38915
39045
  "$lazyBundleId$": "-",
38916
- "$attrsToReflect$": [["label", "label"], ["placeholder", "placeholder"], ["isMultiple", "is-multiple"], ["options", "options"], ["selectAllLabel", "select-all-label"], ["unselectAllLabel", "unselect-all-label"], ["showSearchIcon", "show-search-icon"], ["isOpen", "is-open"], ["isInline", "is-inline"], ["inputWidth", "input-width"], ["borderless", "borderless"], ["customId", "custom-id"]]
39046
+ "$attrsToReflect$": [["label", "label"], ["placeholder", "placeholder"], ["isMultiple", "is-multiple"], ["options", "options"], ["selectAllLabel", "select-all-label"], ["unselectAllLabel", "unselect-all-label"], ["showSearchIcon", "show-search-icon"], ["isOpen", "is-open"], ["isInline", "is-inline"], ["inputWidth", "input-width"], ["disabled", "disabled"], ["borderless", "borderless"], ["customId", "custom-id"]]
38917
39047
  }; }
38918
39048
  }
38919
39049
  let selectId = 0;
@@ -39301,40 +39431,36 @@ class SkipLink {
39301
39431
  /**
39302
39432
  * Oculta o componente programaticamente.
39303
39433
  */
39304
- hide() {
39305
- return __awaiter(this, void 0, void 0, function* () {
39306
- const focusedElement = this.el.querySelector(':focus');
39307
- if (focusedElement instanceof HTMLElement) {
39308
- focusedElement.blur();
39309
- }
39310
- this.isVisible = false;
39311
- this.brDidHide.emit();
39312
- return Promise.resolve();
39313
- });
39434
+ async hide() {
39435
+ const focusedElement = this.el.querySelector(':focus');
39436
+ if (focusedElement instanceof HTMLElement) {
39437
+ focusedElement.blur();
39438
+ }
39439
+ this.isVisible = false;
39440
+ this.brDidHide.emit();
39441
+ return Promise.resolve();
39314
39442
  }
39315
39443
  /**
39316
39444
  * Exibe o componente programaticamente.
39317
39445
  */
39318
- show() {
39319
- return __awaiter(this, void 0, void 0, function* () {
39320
- var _a;
39321
- this.isVisible = true;
39322
- yield new Promise((resolve) => requestAnimationFrame(resolve));
39323
- const firstItem = this.el.querySelector('br-skiplink-item');
39324
- if (firstItem !== null) {
39325
- if (typeof firstItem.itemFocus === 'function') {
39326
- yield firstItem.itemFocus();
39327
- }
39328
- else {
39329
- const focusableElement = (_a = firstItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('a, button');
39330
- if (focusableElement !== null) {
39331
- focusableElement.focus();
39332
- }
39446
+ async show() {
39447
+ var _a;
39448
+ this.isVisible = true;
39449
+ await new Promise((resolve) => requestAnimationFrame(resolve));
39450
+ const firstItem = this.el.querySelector('br-skiplink-item');
39451
+ if (firstItem !== null) {
39452
+ if (typeof firstItem.itemFocus === 'function') {
39453
+ await firstItem.itemFocus();
39454
+ }
39455
+ else {
39456
+ const focusableElement = (_a = firstItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('a, button');
39457
+ if (focusableElement !== null) {
39458
+ focusableElement.focus();
39333
39459
  }
39334
39460
  }
39335
- this.brDidShow.emit();
39336
- return Promise.resolve();
39337
- });
39461
+ }
39462
+ this.brDidShow.emit();
39463
+ return Promise.resolve();
39338
39464
  }
39339
39465
  getEffectivePosition() {
39340
39466
  if (this.isSmallScreen) {
@@ -39436,51 +39562,47 @@ class SkipLinkItem {
39436
39562
  /**
39437
39563
  * Move o foco para este item.
39438
39564
  */
39439
- itemFocus() {
39440
- return __awaiter(this, void 0, void 0, function* () {
39441
- var _a;
39442
- const brItemElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-item');
39443
- if (brItemElement !== null) {
39444
- yield new Promise((resolve) => requestAnimationFrame(resolve));
39445
- const brItemShadowRoot = brItemElement.shadowRoot;
39446
- if (brItemShadowRoot !== null) {
39447
- const focusableElement = brItemShadowRoot.querySelector('a, button');
39448
- if (focusableElement !== null) {
39449
- focusableElement.focus();
39450
- this.brSkiplinkItemFocus.emit({ itemId: this.customId });
39451
- return;
39452
- }
39565
+ async itemFocus() {
39566
+ var _a;
39567
+ const brItemElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-item');
39568
+ if (brItemElement !== null) {
39569
+ await new Promise((resolve) => requestAnimationFrame(resolve));
39570
+ const brItemShadowRoot = brItemElement.shadowRoot;
39571
+ if (brItemShadowRoot !== null) {
39572
+ const focusableElement = brItemShadowRoot.querySelector('a, button');
39573
+ if (focusableElement !== null) {
39574
+ focusableElement.focus();
39575
+ this.brSkiplinkItemFocus.emit({ itemId: this.customId });
39576
+ return;
39453
39577
  }
39454
- brItemElement.focus();
39455
- this.brSkiplinkItemFocus.emit({ itemId: this.customId });
39456
39578
  }
39457
- });
39579
+ brItemElement.focus();
39580
+ this.brSkiplinkItemFocus.emit({ itemId: this.customId });
39581
+ }
39458
39582
  }
39459
39583
  /**
39460
39584
  * Navega para o target definido.
39461
39585
  * Move o foco para o elemento alvo e ajusta a rolagem da página se necessário.
39462
39586
  */
39463
- navigateToTarget() {
39464
- return __awaiter(this, void 0, void 0, function* () {
39465
- try {
39466
- const targetElement = document.querySelector(this.target);
39467
- if (targetElement !== null) {
39468
- targetElement.setAttribute('tabindex', '-1');
39469
- targetElement.focus();
39470
- targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
39471
- this.brSkiplinkItemClick.emit({
39472
- itemId: this.customId,
39473
- target: this.target,
39474
- });
39475
- }
39476
- else {
39477
- console.warn(`Skip Link: Target element "${this.target}" not found`);
39478
- }
39587
+ async navigateToTarget() {
39588
+ try {
39589
+ const targetElement = document.querySelector(this.target);
39590
+ if (targetElement !== null) {
39591
+ targetElement.setAttribute('tabindex', '-1');
39592
+ targetElement.focus();
39593
+ targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
39594
+ this.brSkiplinkItemClick.emit({
39595
+ itemId: this.customId,
39596
+ target: this.target,
39597
+ });
39479
39598
  }
39480
- catch (error) {
39481
- console.error('Skip Link: Error navigating to target', error);
39599
+ else {
39600
+ console.warn(`Skip Link: Target element "${this.target}" not found`);
39482
39601
  }
39483
- });
39602
+ }
39603
+ catch (error) {
39604
+ console.error('Skip Link: Error navigating to target', error);
39605
+ }
39484
39606
  }
39485
39607
  /**
39486
39608
  * Listener para cliques no item.
@@ -39755,14 +39877,12 @@ class Step {
39755
39877
  elements.setContent(indicatorContent.toString());
39756
39878
  });
39757
39879
  }
39758
- setStepItemsContentType() {
39759
- return __awaiter(this, void 0, void 0, function* () {
39760
- const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'));
39761
- yield Promise.all(slotItems.map((element) => element.setContentType(this.contentType)));
39762
- slotItems.forEach((elements, index) => {
39763
- elements.setAttribute('aria-posinset', `${index + 1}`);
39764
- elements.setAttribute('aria-setsize', `${slotItems.length}`);
39765
- });
39880
+ async setStepItemsContentType() {
39881
+ const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'));
39882
+ await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)));
39883
+ slotItems.forEach((elements, index) => {
39884
+ elements.setAttribute('aria-posinset', `${index + 1}`);
39885
+ elements.setAttribute('aria-setsize', `${slotItems.length}`);
39766
39886
  });
39767
39887
  }
39768
39888
  setStepItemsMode(mode) {
@@ -39808,44 +39928,36 @@ class Step {
39808
39928
  *
39809
39929
  * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep
39810
39930
  */
39811
- ProceedToNextStep() {
39812
- return __awaiter(this, void 0, void 0, function* () {
39813
- if (this.activeStep + 1 < this.stepItems.length) {
39814
- this.activeStep = this.activeStep + 1;
39815
- if (this.progressionType === 'linear') {
39816
- this.stepItems[this.activeStep].removeAttribute('disabled');
39817
- }
39931
+ async ProceedToNextStep() {
39932
+ if (this.activeStep + 1 < this.stepItems.length) {
39933
+ this.activeStep = this.activeStep + 1;
39934
+ if (this.progressionType === 'linear') {
39935
+ this.stepItems[this.activeStep].removeAttribute('disabled');
39818
39936
  }
39819
- });
39937
+ }
39820
39938
  }
39821
39939
  /**
39822
39940
  *
39823
39941
  * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep
39824
39942
  */
39825
- BackToPreviousStep() {
39826
- return __awaiter(this, void 0, void 0, function* () {
39827
- if (this.activeStep - 1 >= 0) {
39828
- this.activeStep = this.activeStep - 1;
39829
- }
39830
- });
39943
+ async BackToPreviousStep() {
39944
+ if (this.activeStep - 1 >= 0) {
39945
+ this.activeStep = this.activeStep - 1;
39946
+ }
39831
39947
  }
39832
39948
  /**
39833
39949
  *
39834
39950
  * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.
39835
39951
  */
39836
- StepValidation(validationStatus) {
39837
- return __awaiter(this, void 0, void 0, function* () {
39838
- this.stepItems[this.activeStep].setAttribute('highlight', validationStatus);
39839
- });
39952
+ async StepValidation(validationStatus) {
39953
+ this.stepItems[this.activeStep].setAttribute('highlight', validationStatus);
39840
39954
  }
39841
39955
  /**
39842
39956
  *
39843
39957
  * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.
39844
39958
  */
39845
- GetActiveStep() {
39846
- return __awaiter(this, void 0, void 0, function* () {
39847
- return this.activeStep;
39848
- });
39959
+ async GetActiveStep() {
39960
+ return this.activeStep;
39849
39961
  }
39850
39962
  getCssClassMap() {
39851
39963
  return {
@@ -40019,55 +40131,43 @@ class StepItem {
40019
40131
  *
40020
40132
  * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente
40021
40133
  */
40022
- setStepItemPositionStatus(value) {
40023
- return __awaiter(this, void 0, void 0, function* () {
40024
- this.stepItemPositionStatus = value;
40025
- });
40134
+ async setStepItemPositionStatus(value) {
40135
+ this.stepItemPositionStatus = value;
40026
40136
  }
40027
40137
  /**
40028
40138
  * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.
40029
40139
  */
40030
- handleShowTimeLine(value, layout) {
40031
- return __awaiter(this, void 0, void 0, function* () {
40032
- this.showTimeLine = value;
40033
- this.stepLayout = layout;
40034
- });
40140
+ async handleShowTimeLine(value, layout) {
40141
+ this.showTimeLine = value;
40142
+ this.stepLayout = layout;
40035
40143
  }
40036
40144
  /**
40037
40145
  *
40038
40146
  * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado
40039
40147
  */
40040
- setLabelPosition(value) {
40041
- return __awaiter(this, void 0, void 0, function* () {
40042
- this.labelPosition = value;
40043
- });
40148
+ async setLabelPosition(value) {
40149
+ this.labelPosition = value;
40044
40150
  }
40045
40151
  /**
40046
40152
  *
40047
40153
  * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem
40048
40154
  */
40049
- setContentType(value) {
40050
- return __awaiter(this, void 0, void 0, function* () {
40051
- this.contentType = value;
40052
- });
40155
+ async setContentType(value) {
40156
+ this.contentType = value;
40053
40157
  }
40054
40158
  /**
40055
40159
  *
40056
40160
  * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.
40057
40161
  */
40058
- setMode(value) {
40059
- return __awaiter(this, void 0, void 0, function* () {
40060
- this.mode = value;
40061
- });
40162
+ async setMode(value) {
40163
+ this.mode = value;
40062
40164
  }
40063
40165
  /**
40064
40166
  *
40065
40167
  * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem
40066
40168
  */
40067
- setContent(value) {
40068
- return __awaiter(this, void 0, void 0, function* () {
40069
- this.content = value;
40070
- });
40169
+ async setContent(value) {
40170
+ this.content = value;
40071
40171
  }
40072
40172
  getStepContainerClassMap() {
40073
40173
  return {
@@ -40250,11 +40350,9 @@ class Switch {
40250
40350
  /**
40251
40351
  * Inverte o valor da prop `checked`
40252
40352
  */
40253
- toggleChecked() {
40254
- return __awaiter(this, void 0, void 0, function* () {
40255
- this.checked = !this.checked;
40256
- this.checkedChange.emit(this.checked);
40257
- });
40353
+ async toggleChecked() {
40354
+ this.checked = !this.checked;
40355
+ this.checkedChange.emit(this.checked);
40258
40356
  }
40259
40357
  /**
40260
40358
  * Verifica se o componente tem texto visível (via slot ou label)
@@ -41382,13 +41480,11 @@ class Textarea {
41382
41480
  * Define um novo valor para o textarea.
41383
41481
  * @param newValue - O novo valor a ser definido.
41384
41482
  */
41385
- setValue(newValue) {
41386
- return __awaiter(this, void 0, void 0, function* () {
41387
- var _a;
41388
- this.value = newValue;
41389
- this.currentLength = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
41390
- this.valueChange.emit(this.value);
41391
- });
41483
+ async setValue(newValue) {
41484
+ var _a;
41485
+ this.value = newValue;
41486
+ this.currentLength = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
41487
+ this.valueChange.emit(this.value);
41392
41488
  }
41393
41489
  /**
41394
41490
  * Retorna os ids para o atributo aria-describedby do textarea
@@ -42553,7 +42649,7 @@ class Wizard {
42553
42649
  * Se for a última etapa, valida e emite evento de conclusão.
42554
42650
  * Caso contrário, avança para a próxima etapa.
42555
42651
  */
42556
- this.handleNext = () => __awaiter(this, void 0, void 0, function* () {
42652
+ this.handleNext = async () => {
42557
42653
  if (this.currentStep === this.panels.length) {
42558
42654
  // Última etapa: validar antes de completar
42559
42655
  const eventResult = this.brWizardBeforeStepChange.emit(this.currentStep);
@@ -42563,16 +42659,16 @@ class Wizard {
42563
42659
  }
42564
42660
  }
42565
42661
  else {
42566
- yield this.nextStep();
42662
+ await this.nextStep();
42567
42663
  }
42568
- });
42664
+ };
42569
42665
  /**
42570
42666
  * Handler do botão "Voltar".
42571
42667
  * Navega para a etapa anterior.
42572
42668
  */
42573
- this.handlePrevious = () => __awaiter(this, void 0, void 0, function* () {
42574
- yield this.previousStep();
42575
- });
42669
+ this.handlePrevious = async () => {
42670
+ await this.previousStep();
42671
+ };
42576
42672
  /**
42577
42673
  * Handler do botão "Cancelar".
42578
42674
  * Emite evento de cancelamento do wizard.
@@ -42595,12 +42691,10 @@ class Wizard {
42595
42691
  * Observa mudanças na etapa inicial.
42596
42692
  * Reinicializa o wizard quando a prop initialStep é alterada externamente.
42597
42693
  */
42598
- handleInitialStepChange() {
42599
- return __awaiter(this, void 0, void 0, function* () {
42600
- this.setInitialStep();
42601
- yield this.syncWithBrStep();
42602
- this.updatePanels();
42603
- });
42694
+ async handleInitialStepChange() {
42695
+ this.setInitialStep();
42696
+ await this.syncWithBrStep();
42697
+ this.updatePanels();
42604
42698
  }
42605
42699
  /**
42606
42700
  * Observa mudanças na etapa atual (fonte única de verdade).
@@ -42608,15 +42702,13 @@ class Wizard {
42608
42702
  * @param newStep - Nova etapa
42609
42703
  * @param oldStep - Etapa anterior
42610
42704
  */
42611
- handleCurrentStepChange(newStep, oldStep) {
42612
- return __awaiter(this, void 0, void 0, function* () {
42613
- if (newStep !== oldStep) {
42614
- yield this.syncWithBrStep();
42615
- this.updatePanels();
42616
- this.announceStepChange(newStep, oldStep);
42617
- this.setFocusOnActivePanel();
42618
- }
42619
- });
42705
+ async handleCurrentStepChange(newStep, oldStep) {
42706
+ if (newStep !== oldStep) {
42707
+ await this.syncWithBrStep();
42708
+ this.updatePanels();
42709
+ this.announceStepChange(newStep, oldStep);
42710
+ this.setFocusOnActivePanel();
42711
+ }
42620
42712
  }
42621
42713
  // ========================================
42622
42714
  // LISTENERS
@@ -42626,31 +42718,27 @@ class Wizard {
42626
42718
  * Redescobre os painéis e ressincroniza o estado.
42627
42719
  * @param event - Evento slotchange
42628
42720
  */
42629
- handleSlotChange(event) {
42630
- return __awaiter(this, void 0, void 0, function* () {
42631
- const slot = event.target;
42632
- this.discoverPanelsFromSlot(slot);
42633
- yield this.syncWithBrStep();
42634
- this.updatePanels();
42635
- });
42721
+ async handleSlotChange(event) {
42722
+ const slot = event.target;
42723
+ this.discoverPanelsFromSlot(slot);
42724
+ await this.syncWithBrStep();
42725
+ this.updatePanels();
42636
42726
  }
42637
42727
  /**
42638
42728
  * Detecta quando o br-step muda de etapa ativa.
42639
42729
  * Valida e sincroniza a navegação com o componente interno br-step.
42640
42730
  * @param event - Evento customizado do br-step
42641
42731
  */
42642
- handleStepChange(event) {
42643
- return __awaiter(this, void 0, void 0, function* () {
42644
- if (this.isSyncingWithStep) {
42645
- return;
42646
- }
42647
- const requestedStep = event.detail.activeStep + 1;
42648
- const success = yield this.navigateToStep(requestedStep);
42649
- if (!success) {
42650
- event.stopPropagation();
42651
- yield this.syncWithBrStep();
42652
- }
42653
- });
42732
+ async handleStepChange(event) {
42733
+ if (this.isSyncingWithStep) {
42734
+ return;
42735
+ }
42736
+ const requestedStep = event.detail.activeStep + 1;
42737
+ const success = await this.navigateToStep(requestedStep);
42738
+ if (!success) {
42739
+ event.stopPropagation();
42740
+ await this.syncWithBrStep();
42741
+ }
42654
42742
  }
42655
42743
  // ========================================
42656
42744
  // LIFECYCLE HOOKS
@@ -42666,24 +42754,22 @@ class Wizard {
42666
42754
  * Lifecycle: carrega painéis e configura estado inicial.
42667
42755
  * Sincroniza com br-step, atualiza painéis e configura detecção mobile.
42668
42756
  */
42669
- componentDidLoad() {
42670
- return __awaiter(this, void 0, void 0, function* () {
42671
- var _a;
42672
- const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
42673
- if (slot !== null && typeof slot !== 'undefined') {
42674
- const assignedElements = slot.assignedElements();
42675
- const slotPanels = assignedElements.filter((el) => el.tagName.toLowerCase() === 'br-wizard-panel');
42676
- if (slotPanels.length !== this.panels.length) {
42677
- this.panels = slotPanels;
42678
- }
42679
- }
42680
- yield this.syncWithBrStep();
42681
- this.updatePanels();
42682
- this.setupMobileDetection();
42683
- if (this.isMobile) {
42684
- this.collapsed = true;
42757
+ async componentDidLoad() {
42758
+ var _a;
42759
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
42760
+ if (slot !== null && typeof slot !== 'undefined') {
42761
+ const assignedElements = slot.assignedElements();
42762
+ const slotPanels = assignedElements.filter((el) => el.tagName.toLowerCase() === 'br-wizard-panel');
42763
+ if (slotPanels.length !== this.panels.length) {
42764
+ this.panels = slotPanels;
42685
42765
  }
42686
- });
42766
+ }
42767
+ await this.syncWithBrStep();
42768
+ this.updatePanels();
42769
+ this.setupMobileDetection();
42770
+ if (this.isMobile) {
42771
+ this.collapsed = true;
42772
+ }
42687
42773
  }
42688
42774
  /**
42689
42775
  * Lifecycle: limpa listeners quando componente é removido.
@@ -42701,20 +42787,16 @@ class Wizard {
42701
42787
  * Executa validação via evento `brWizardBeforeStepChange` antes de navegar.
42702
42788
  * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado
42703
42789
  */
42704
- nextStep() {
42705
- return __awaiter(this, void 0, void 0, function* () {
42706
- return yield this.navigateToStep(this.currentStep + 1);
42707
- });
42790
+ async nextStep() {
42791
+ return await this.navigateToStep(this.currentStep + 1);
42708
42792
  }
42709
42793
  /**
42710
42794
  * Volta para a etapa anterior.
42711
42795
  * Não executa validação ao retornar.
42712
42796
  * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado
42713
42797
  */
42714
- previousStep() {
42715
- return __awaiter(this, void 0, void 0, function* () {
42716
- return yield this.navigateToStep(this.currentStep - 1);
42717
- });
42798
+ async previousStep() {
42799
+ return await this.navigateToStep(this.currentStep - 1);
42718
42800
  }
42719
42801
  /**
42720
42802
  * Navega para uma etapa específica.
@@ -42722,67 +42804,53 @@ class Wizard {
42722
42804
  * @param stepNumber - Número da etapa de destino (numeração começa em 1)
42723
42805
  * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado
42724
42806
  */
42725
- goToStep(stepNumber) {
42726
- return __awaiter(this, void 0, void 0, function* () {
42727
- return yield this.navigateToStep(stepNumber);
42728
- });
42807
+ async goToStep(stepNumber) {
42808
+ return await this.navigateToStep(stepNumber);
42729
42809
  }
42730
42810
  /**
42731
42811
  * Retorna à primeira etapa do wizard.
42732
42812
  * Não executa validação (útil para reiniciar o fluxo).
42733
42813
  * @returns Promise<void>
42734
42814
  */
42735
- reset() {
42736
- return __awaiter(this, void 0, void 0, function* () {
42737
- yield this.navigateToStep(1, true);
42738
- });
42815
+ async reset() {
42816
+ await this.navigateToStep(1, true);
42739
42817
  }
42740
42818
  /**
42741
42819
  * Retorna o elemento HTML do painel ativo no momento.
42742
42820
  * @returns Promise<HTMLElement | null>
42743
42821
  */
42744
- getCurrentStep() {
42745
- return __awaiter(this, void 0, void 0, function* () {
42746
- return this.panels[this.currentStep - 1] || null;
42747
- });
42822
+ async getCurrentStep() {
42823
+ return this.panels[this.currentStep - 1] || null;
42748
42824
  }
42749
42825
  /**
42750
42826
  * Retorna todos os painéis do wizard.
42751
42827
  * @returns Promise<HTMLElement[]>
42752
42828
  */
42753
- getAllSteps() {
42754
- return __awaiter(this, void 0, void 0, function* () {
42755
- return [...this.panels];
42756
- });
42829
+ async getAllSteps() {
42830
+ return [...this.panels];
42757
42831
  }
42758
42832
  /**
42759
42833
  * Retorna um painel específico pelo índice.
42760
42834
  * @param stepNumber - Número da etapa (numeração começa em 1)
42761
42835
  * @returns Promise<HTMLElement | null>
42762
42836
  */
42763
- getStepByIndex(stepNumber) {
42764
- return __awaiter(this, void 0, void 0, function* () {
42765
- return this.panels[stepNumber - 1] || null;
42766
- });
42837
+ async getStepByIndex(stepNumber) {
42838
+ return this.panels[stepNumber - 1] || null;
42767
42839
  }
42768
42840
  /**
42769
42841
  * Retorna o índice (número) da etapa atual.
42770
42842
  * A numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).
42771
42843
  * @returns Promise<number>
42772
42844
  */
42773
- getCurrentStepIndex() {
42774
- return __awaiter(this, void 0, void 0, function* () {
42775
- return this.currentStep;
42776
- });
42845
+ async getCurrentStepIndex() {
42846
+ return this.currentStep;
42777
42847
  }
42778
42848
  /**
42779
42849
  * Retorna o número total de etapas do wizard.
42780
42850
  * @returns Promise<number>
42781
42851
  */
42782
- getTotalSteps() {
42783
- return __awaiter(this, void 0, void 0, function* () {
42784
- return this.panels.length;
42785
- });
42852
+ async getTotalSteps() {
42853
+ return this.panels.length;
42786
42854
  }
42787
42855
  // ========================================
42788
42856
  // NAVEGAÇÃO E VALIDAÇÃO
@@ -42798,64 +42866,62 @@ class Wizard {
42798
42866
  * @param skipValidation - Se true, pula validação (útil para reset/programático)
42799
42867
  * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado
42800
42868
  */
42801
- navigateToStep(targetStep_1) {
42802
- return __awaiter(this, arguments, void 0, function* (targetStep, skipValidation = false) {
42803
- /**
42804
- * VALIDAÇÕES BÁSICAS
42805
- * 1. Verifica se targetStep está dentro dos limites válidos
42806
- * 2. Se já estamos na etapa alvo, retorna sucesso imediatamente
42807
- */
42808
- if (targetStep < 1 || targetStep > this.panels.length) {
42869
+ async navigateToStep(targetStep, skipValidation = false) {
42870
+ /**
42871
+ * VALIDAÇÕES BÁSICAS
42872
+ * 1. Verifica se targetStep está dentro dos limites válidos
42873
+ * 2. Se já estamos na etapa alvo, retorna sucesso imediatamente
42874
+ */
42875
+ if (targetStep < 1 || targetStep > this.panels.length) {
42876
+ return false;
42877
+ }
42878
+ if (targetStep === this.currentStep) {
42879
+ return true;
42880
+ }
42881
+ /**
42882
+ * MODO LINEAR: RESTRIÇÕES
42883
+ * No modo linear, não é permitido pular para etapas futuras não visitadas.
42884
+ * É possível voltar, mas não avançar além da próxima etapa sequencial.
42885
+ */
42886
+ if (this.progressionType === 'linear') {
42887
+ if (targetStep > this.currentStep + 1) {
42888
+ const message = `Não é possível pular etapas. Complete a etapa ${this.currentStep + 1} antes de avançar.`;
42889
+ this.announceToScreenReader(message);
42890
+ this.brWizardNavigationBlocked.emit('linear-progression');
42809
42891
  return false;
42810
42892
  }
42811
- if (targetStep === this.currentStep) {
42812
- return true;
42813
- }
42814
- /**
42815
- * MODO LINEAR: RESTRIÇÕES
42816
- * No modo linear, não é permitido pular para etapas futuras não visitadas.
42817
- * É possível voltar, mas não avançar além da próxima etapa sequencial.
42818
- */
42819
- if (this.progressionType === 'linear') {
42820
- if (targetStep > this.currentStep + 1) {
42821
- const message = `Não é possível pular etapas. Complete a etapa ${this.currentStep + 1} antes de avançar.`;
42822
- this.announceToScreenReader(message);
42823
- this.brWizardNavigationBlocked.emit('linear-progression');
42824
- return false;
42825
- }
42826
- }
42893
+ }
42894
+ /**
42895
+ * VALIDAÇÃO CUSTOMIZADA
42896
+ * Emite evento brWizardBeforeStepChange APENAS se:
42897
+ * 1. Não estamos pulando validação (skipValidation=false)
42898
+ * 2. Estamos AVANÇANDO (targetStep > currentStep)
42899
+ *
42900
+ * Observações:
42901
+ * - Voltar não precisa validar
42902
+ * - Validação se aplica a ambos os modos (linear e nonlinear)
42903
+ */
42904
+ const shouldValidate = !skipValidation && targetStep > this.currentStep;
42905
+ if (shouldValidate) {
42906
+ const eventResult = this.brWizardBeforeStepChange.emit(targetStep);
42827
42907
  /**
42828
- * VALIDAÇÃO CUSTOMIZADA
42829
- * Emite evento brWizardBeforeStepChange APENAS se:
42830
- * 1. Não estamos pulando validação (skipValidation=false)
42831
- * 2. Estamos AVANÇANDO (targetStep > currentStep)
42832
- *
42833
- * Observações:
42834
- * - Voltar não precisa validar
42835
- * - Validação se aplica a ambos os modos (linear e nonlinear)
42908
+ * Se preventDefault() foi chamado no listener do evento,
42909
+ * bloqueia a navegação e retorna false
42836
42910
  */
42837
- const shouldValidate = !skipValidation && targetStep > this.currentStep;
42838
- if (shouldValidate) {
42839
- const eventResult = this.brWizardBeforeStepChange.emit(targetStep);
42840
- /**
42841
- * Se preventDefault() foi chamado no listener do evento,
42842
- * bloqueia a navegação e retorna false
42843
- */
42844
- if (eventResult.defaultPrevented) {
42845
- const message = 'Não é possível avançar. Verifique os campos obrigatórios da etapa atual.';
42846
- this.announceToScreenReader(message);
42847
- this.brWizardNavigationBlocked.emit('validation-failed');
42848
- return false;
42849
- }
42911
+ if (eventResult.defaultPrevented) {
42912
+ const message = 'Não é possível avançar. Verifique os campos obrigatórios da etapa atual.';
42913
+ this.announceToScreenReader(message);
42914
+ this.brWizardNavigationBlocked.emit('validation-failed');
42915
+ return false;
42850
42916
  }
42851
- /**
42852
- * EXECUTA NAVEGAÇÃO
42853
- * Atualiza o estado interno e emite evento de confirmação
42854
- */
42855
- this.currentStep = targetStep;
42856
- this.brWizardStepChange.emit(this.currentStep);
42857
- return true;
42858
- });
42917
+ }
42918
+ /**
42919
+ * EXECUTA NAVEGAÇÃO
42920
+ * Atualiza o estado interno e emite evento de confirmação
42921
+ */
42922
+ this.currentStep = targetStep;
42923
+ this.brWizardStepChange.emit(this.currentStep);
42924
+ return true;
42859
42925
  }
42860
42926
  // ========================================
42861
42927
  // SINCRONIZAÇÃO COM BR-STEP
@@ -42866,35 +42932,33 @@ class Wizard {
42866
42932
  * O br-step já gerencia completamente os atributos 'active' via componentShouldUpdate
42867
42933
  * e requestAnimationFrame, então apenas chamamos os métodos de navegação dele.
42868
42934
  */
42869
- syncWithBrStep() {
42870
- return __awaiter(this, void 0, void 0, function* () {
42871
- if (this.stepRef === null)
42872
- return;
42873
- if (typeof this.stepRef.GetActiveStep !== 'function') {
42874
- return;
42875
- }
42876
- this.isSyncingWithStep = true;
42877
- try {
42878
- const targetStepIndex = this.currentStep - 1;
42879
- const currentActiveStep = yield this.stepRef.GetActiveStep();
42880
- if (currentActiveStep !== targetStepIndex) {
42881
- const diff = targetStepIndex - currentActiveStep;
42882
- if (diff > 0) {
42883
- for (let i = 0; i < diff; i++) {
42884
- yield this.stepRef.ProceedToNextStep();
42885
- }
42935
+ async syncWithBrStep() {
42936
+ if (this.stepRef === null)
42937
+ return;
42938
+ if (typeof this.stepRef.GetActiveStep !== 'function') {
42939
+ return;
42940
+ }
42941
+ this.isSyncingWithStep = true;
42942
+ try {
42943
+ const targetStepIndex = this.currentStep - 1;
42944
+ const currentActiveStep = await this.stepRef.GetActiveStep();
42945
+ if (currentActiveStep !== targetStepIndex) {
42946
+ const diff = targetStepIndex - currentActiveStep;
42947
+ if (diff > 0) {
42948
+ for (let i = 0; i < diff; i++) {
42949
+ await this.stepRef.ProceedToNextStep();
42886
42950
  }
42887
- else {
42888
- for (let i = 0; i < Math.abs(diff); i++) {
42889
- yield this.stepRef.BackToPreviousStep();
42890
- }
42951
+ }
42952
+ else {
42953
+ for (let i = 0; i < Math.abs(diff); i++) {
42954
+ await this.stepRef.BackToPreviousStep();
42891
42955
  }
42892
42956
  }
42893
42957
  }
42894
- finally {
42895
- this.isSyncingWithStep = false;
42896
- }
42897
- });
42958
+ }
42959
+ finally {
42960
+ this.isSyncingWithStep = false;
42961
+ }
42898
42962
  }
42899
42963
  // ========================================
42900
42964
  // GERENCIAMENTO DE PAINÉIS
@@ -42911,16 +42975,14 @@ class Wizard {
42911
42975
  * Atualiza estados de todos os painéis.
42912
42976
  * Define o índice e o estado ativo de cada painel.
42913
42977
  */
42914
- updatePanels() {
42915
- return __awaiter(this, void 0, void 0, function* () {
42916
- for (let idx = 0; idx < this.panels.length; idx++) {
42917
- const panel = this.panels[idx];
42918
- const stepNumber = idx + 1;
42919
- const isActive = stepNumber === this.currentStep;
42920
- yield panel.setIndex(stepNumber);
42921
- yield panel.setActive(isActive);
42922
- }
42923
- });
42978
+ async updatePanels() {
42979
+ for (let idx = 0; idx < this.panels.length; idx++) {
42980
+ const panel = this.panels[idx];
42981
+ const stepNumber = idx + 1;
42982
+ const isActive = stepNumber === this.currentStep;
42983
+ await panel.setIndex(stepNumber);
42984
+ await panel.setActive(isActive);
42985
+ }
42924
42986
  }
42925
42987
  /**
42926
42988
  * Define etapa inicial baseada na prop initialStep.
@@ -43201,28 +43263,22 @@ class WizardPanel {
43201
43263
  * Define se o painel está ativo
43202
43264
  * @internal Método interno chamado apenas pelo wizard pai
43203
43265
  */
43204
- setActive(value) {
43205
- return __awaiter(this, void 0, void 0, function* () {
43206
- this.active = value;
43207
- });
43266
+ async setActive(value) {
43267
+ this.active = value;
43208
43268
  }
43209
43269
  /**
43210
43270
  * Define o índice do painel
43211
43271
  * @internal Método interno chamado apenas pelo wizard pai
43212
43272
  */
43213
- setIndex(value) {
43214
- return __awaiter(this, void 0, void 0, function* () {
43215
- this.index = value;
43216
- });
43273
+ async setIndex(value) {
43274
+ this.index = value;
43217
43275
  }
43218
43276
  /**
43219
43277
  * Retorna se o painel está ativo
43220
43278
  * @internal Método interno para o wizard pai consultar o estado
43221
43279
  */
43222
- isActive() {
43223
- return __awaiter(this, void 0, void 0, function* () {
43224
- return this.active;
43225
- });
43280
+ async isActive() {
43281
+ return this.active;
43226
43282
  }
43227
43283
  render() {
43228
43284
  const hostAttrs = Object.assign({}, (this.active && { active: 'true' }));