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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
  2. package/dist/cjs/br-checkbox_3.cjs.entry.js +17 -28
  3. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  4. package/dist/cjs/br-collapse_2.cjs.entry.js +10 -15
  5. package/dist/cjs/br-datetime-picker.cjs.entry.js +18 -31
  6. package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
  7. package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
  8. package/dist/cjs/br-dropdown_2.cjs.entry.js +73 -56
  9. package/dist/cjs/br-header-list.cjs.entry.js +6 -13
  10. package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
  11. package/dist/cjs/br-header.cjs.entry.js +2 -5
  12. package/dist/cjs/br-header.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-item.cjs.entry.js +3 -6
  14. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  15. package/dist/cjs/br-message.cjs.entry.js +13 -16
  16. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  17. package/dist/cjs/br-modal.cjs.entry.js +123 -24
  18. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-scrim.cjs.entry.js +108 -25
  20. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  21. package/dist/cjs/br-skip-link.cjs.entry.js +24 -29
  22. package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
  23. package/dist/cjs/br-skiplink-item.cjs.entry.js +32 -37
  24. package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
  26. package/dist/cjs/br-step_2.cjs.entry.js +33 -56
  27. package/dist/cjs/br-switch.cjs.entry.js +3 -6
  28. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  29. package/dist/cjs/br-textarea.cjs.entry.js +5 -8
  30. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  31. package/dist/cjs/br-tooltip.cjs.entry.js +1 -2
  32. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  33. package/dist/cjs/br-wizard-panel.cjs.entry.js +6 -13
  34. package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
  35. package/dist/cjs/br-wizard.cjs.entry.js +147 -182
  36. package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
  37. package/dist/cjs/{floating-ui-D_WzFT9x.js → floating-ui-CkTJEp-y.js} +11 -15
  38. package/dist/{esm/floating-ui-DBIzWbO2.js.map → cjs/floating-ui-CkTJEp-y.js.map} +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/webcomponents.cjs.js +1 -1
  41. package/dist/collection/components/checkbox/checkbox.js +9 -16
  42. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  43. package/dist/collection/components/collapse/collapse.js +10 -15
  44. package/dist/collection/components/collapse/collapse.js.map +1 -1
  45. package/dist/collection/components/datetime-picker/datetime-picker.js +18 -31
  46. package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
  47. package/dist/collection/components/dropdown/dropdown.js +13 -20
  48. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  49. package/dist/collection/components/header/header-list/header-list.js +6 -13
  50. package/dist/collection/components/header/header-list/header-list.js.map +1 -1
  51. package/dist/collection/components/header/header.js +2 -5
  52. package/dist/collection/components/header/header.js.map +1 -1
  53. package/dist/collection/components/item/item.js +3 -6
  54. package/dist/collection/components/item/item.js.map +1 -1
  55. package/dist/collection/components/message/message.js +13 -16
  56. package/dist/collection/components/message/message.js.map +1 -1
  57. package/dist/collection/components/modal/modal.js +156 -46
  58. package/dist/collection/components/modal/modal.js.map +1 -1
  59. package/dist/collection/components/radio/radio.js +8 -13
  60. package/dist/collection/components/radio/radio.js.map +1 -1
  61. package/dist/collection/components/scrim/scrim.js +108 -25
  62. package/dist/collection/components/scrim/scrim.js.map +1 -1
  63. package/dist/collection/components/select/select.js +79 -36
  64. package/dist/collection/components/select/select.js.map +1 -1
  65. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +32 -37
  66. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js.map +1 -1
  67. package/dist/collection/components/skip-link/skip-link.js +24 -29
  68. package/dist/collection/components/skip-link/skip-link.js.map +1 -1
  69. package/dist/collection/components/step/step-item/step-item.js +13 -26
  70. package/dist/collection/components/step/step-item/step-item.js.map +1 -1
  71. package/dist/collection/components/step/step.js +20 -31
  72. package/dist/collection/components/step/step.js.map +1 -1
  73. package/dist/collection/components/switch/switch.js +3 -6
  74. package/dist/collection/components/switch/switch.js.map +1 -1
  75. package/dist/collection/components/textarea/textarea.js +5 -8
  76. package/dist/collection/components/textarea/textarea.js.map +1 -1
  77. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +6 -13
  78. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js.map +1 -1
  79. package/dist/collection/components/wizard/wizard.js +147 -182
  80. package/dist/collection/components/wizard/wizard.js.map +1 -1
  81. package/dist/collection/pages/components/modal/index.js +1 -53
  82. package/dist/collection/utils/floating-ui.js +9 -12
  83. package/dist/collection/utils/floating-ui.js.map +1 -1
  84. package/dist/components/br-breadcrumb.js +3 -3
  85. package/dist/components/br-checkbox.js +4 -4
  86. package/dist/components/br-checkgroup.js +1 -1
  87. package/dist/components/br-collapse.js +4 -4
  88. package/dist/components/br-datetime-picker.js +1981 -1995
  89. package/dist/components/br-datetime-picker.js.map +1 -1
  90. package/dist/components/br-dropdown.js +1 -1
  91. package/dist/components/br-footer-category.js +3 -3
  92. package/dist/components/br-footer-item.js +1 -1
  93. package/dist/components/br-header-function.js +1 -1
  94. package/dist/components/br-header-link.js +1 -1
  95. package/dist/components/br-header-list.js +31 -39
  96. package/dist/components/br-header-list.js.map +1 -1
  97. package/dist/components/br-header.js +63 -67
  98. package/dist/components/br-header.js.map +1 -1
  99. package/dist/components/br-item.js +1 -1
  100. package/dist/components/br-list.js +3 -3
  101. package/dist/components/br-message.js +28 -32
  102. package/dist/components/br-message.js.map +1 -1
  103. package/dist/components/br-modal.js +140 -49
  104. package/dist/components/br-modal.js.map +1 -1
  105. package/dist/components/br-pagination.js +7 -7
  106. package/dist/components/br-radio.js +1 -1
  107. package/dist/components/br-scrim.js +112 -43
  108. package/dist/components/br-scrim.js.map +1 -1
  109. package/dist/components/br-select.js +3 -3
  110. package/dist/components/br-skip-link.js +38 -44
  111. package/dist/components/br-skip-link.js.map +1 -1
  112. package/dist/components/br-skiplink-item.js +55 -61
  113. package/dist/components/br-skiplink-item.js.map +1 -1
  114. package/dist/components/br-step-item.js +4 -4
  115. package/dist/components/br-step.js +4 -4
  116. package/dist/components/br-switch.js +12 -16
  117. package/dist/components/br-switch.js.map +1 -1
  118. package/dist/components/br-textarea.js +14 -18
  119. package/dist/components/br-textarea.js.map +1 -1
  120. package/dist/components/br-tooltip.js +1 -1
  121. package/dist/components/br-wizard-panel.js +13 -21
  122. package/dist/components/br-wizard-panel.js.map +1 -1
  123. package/dist/components/br-wizard.js +190 -228
  124. package/dist/components/br-wizard.js.map +1 -1
  125. package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
  126. package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
  127. package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
  128. package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
  129. package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
  130. package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
  131. package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
  132. package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
  133. package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
  134. package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
  135. package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
  136. package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
  137. package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
  138. package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
  139. package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
  140. package/dist/components/p-DdjKNpU3.js.map +1 -0
  141. package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
  142. package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  143. package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
  144. package/dist/custom-elements.json +1613 -430
  145. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  146. package/dist/esm/br-checkbox_3.entry.js +17 -28
  147. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  148. package/dist/esm/br-collapse_2.entry.js +10 -15
  149. package/dist/esm/br-datetime-picker.entry.js +18 -31
  150. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  151. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  152. package/dist/esm/br-dropdown_2.entry.js +73 -56
  153. package/dist/esm/br-header-list.entry.js +6 -13
  154. package/dist/esm/br-header-list.entry.js.map +1 -1
  155. package/dist/esm/br-header.entry.js +2 -5
  156. package/dist/esm/br-header.entry.js.map +1 -1
  157. package/dist/esm/br-item.entry.js +3 -6
  158. package/dist/esm/br-item.entry.js.map +1 -1
  159. package/dist/esm/br-message.entry.js +13 -16
  160. package/dist/esm/br-message.entry.js.map +1 -1
  161. package/dist/esm/br-modal.entry.js +123 -24
  162. package/dist/esm/br-modal.entry.js.map +1 -1
  163. package/dist/esm/br-scrim.entry.js +108 -25
  164. package/dist/esm/br-scrim.entry.js.map +1 -1
  165. package/dist/esm/br-skip-link.entry.js +24 -29
  166. package/dist/esm/br-skip-link.entry.js.map +1 -1
  167. package/dist/esm/br-skiplink-item.entry.js +32 -37
  168. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  169. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  170. package/dist/esm/br-step_2.entry.js +33 -56
  171. package/dist/esm/br-switch.entry.js +3 -6
  172. package/dist/esm/br-switch.entry.js.map +1 -1
  173. package/dist/esm/br-textarea.entry.js +5 -8
  174. package/dist/esm/br-textarea.entry.js.map +1 -1
  175. package/dist/esm/br-tooltip.entry.js +1 -2
  176. package/dist/esm/br-tooltip.entry.js.map +1 -1
  177. package/dist/esm/br-wizard-panel.entry.js +6 -13
  178. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  179. package/dist/esm/br-wizard.entry.js +147 -182
  180. package/dist/esm/br-wizard.entry.js.map +1 -1
  181. package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
  182. package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
  183. package/dist/esm/loader.js +1 -1
  184. package/dist/esm/webcomponents.js +1 -1
  185. package/dist/hydrate/index.js +634 -578
  186. package/dist/hydrate/index.mjs +634 -578
  187. package/dist/types/components/modal/modal.d.ts +46 -4
  188. package/dist/types/components/scrim/scrim.d.ts +39 -1
  189. package/dist/types/components/select/select.d.ts +5 -0
  190. package/dist/types/components.d.ts +21 -11
  191. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  192. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  193. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  194. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  195. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  196. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  197. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  198. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  199. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  200. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  201. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  202. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  203. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  204. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  205. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  206. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  207. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  208. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  209. package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
  210. package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
  211. package/dist/webcomponents/{p-097912c2.entry.js → p-1991135d.entry.js} +30 -36
  212. package/dist/webcomponents/p-1991135d.entry.js.map +1 -0
  213. package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
  214. package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
  215. package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
  216. package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
  217. package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
  218. package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
  219. package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
  220. package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
  221. package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
  222. package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
  223. package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
  224. package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
  225. package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
  226. package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
  227. package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
  228. package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
  229. package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
  230. package/dist/webcomponents/p-83001853.entry.js.map +1 -0
  231. package/dist/webcomponents/{p-28dba962.entry.js → p-90401ecd.entry.js} +124 -34
  232. package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
  233. package/dist/webcomponents/{p-e7b38c63.entry.js → p-a2eec4fb.entry.js} +112 -43
  234. package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
  235. package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
  236. package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
  237. package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
  238. package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
  239. package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
  240. package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
  241. package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
  242. package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
  243. package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
  244. package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
  245. package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
  246. package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  247. package/dist/webcomponents/webcomponents.esm.js +1 -1
  248. package/dist/webcomponents.html-custom-data.json +1708 -349
  249. package/package.json +1 -1
  250. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  251. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  252. package/dist/components/p-7kxAU6Gr.js.map +0 -1
  253. package/dist/components/p-DIPMDb5E.js +0 -55
  254. package/dist/components/p-DIPMDb5E.js.map +0 -1
  255. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  256. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  257. package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
  258. package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
  259. package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
  260. package/dist/webcomponents/p-28dba962.entry.js.map +0 -1
  261. package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
  262. package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
  263. package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
  264. package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
  265. package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
  266. package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
  267. package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
  268. package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
  269. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  270. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  271. package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
  272. package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
  273. package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
  274. package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
  275. package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
  276. package/dist/webcomponents/p-e7b38c63.entry.js.map +0 -1
  277. /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-wizard.entry.esm.js","sources":["../../packages/webcomponents/src/utils/swipe.ts","../../packages/webcomponents/src/components/wizard/wizard.scss?tag=br-wizard&encapsulation=shadow","../../packages/webcomponents/src/components/wizard/wizard.tsx"],"sourcesContent":["/**\n * Eventos de swipe suportados.\n * @typedef {('SWIPE_UP'|'SWIPE_DOWN'|'SWIPE_LEFT'|'SWIPE_RIGHT')} SwipeEvent\n */\nexport type SwipeEvent = 'SWIPE_UP' | 'SWIPE_DOWN' | 'SWIPE_LEFT' | 'SWIPE_RIGHT'\n\n/**\n * Tipo de callback para eventos de swipe.\n * @typedef {Function} SwipeCallback\n * @param {unknown} [data] - Dados opcionais passados ao callback\n * @returns {void}\n */\nexport type SwipeCallback = (data?: unknown) => void\n\n/**\n * Mapa de eventos e callbacks.\n * @typedef {Object.<SwipeEvent, SwipeCallback[]>} EventMap\n * @private\n */\ntype EventMap = Record<SwipeEvent, SwipeCallback[]>\n\n/**\n * Coordenadas de um ponto.\n * @typedef {Object} Point\n * @property {number} x - Coordenada X\n * @property {number} y - Coordenada Y\n * @private\n */\ninterface Point {\n x: number\n y: number\n}\n\n/**\n * UniversalSwipe - Detecção de gestos de swipe com suporte universal.\n *\n * Estratégia de detecção (prioridade):\n * 1. Pointer Events - API moderna universal (Chrome 55+, Firefox 59+, Safari 13+, Edge 12+)\n * 2. Touch Events - Fallback para dispositivos móveis sem Pointer Events\n * 3. Mouse Events - Fallback para navegadores antigos\n *\n * Compatibilidade:\n * - ✅ Firefox Desktop (mouse events)\n * - ✅ Chrome Desktop/Mobile (pointer/touch events)\n * - ✅ Safari Desktop/Mobile (pointer/touch events)\n * - ✅ Edge (pointer events)\n * - ✅ Navegadores antigos (touch/mouse events)\n *\n */\nexport class UniversalSwipe {\n /**\n * Mapa de eventos e seus callbacks.\n */\n private evtMap: EventMap = {\n SWIPE_UP: [],\n SWIPE_DOWN: [],\n SWIPE_LEFT: [],\n SWIPE_RIGHT: [],\n }\n\n /**\n * Posição inicial do gesto.\n */\n private startPoint: Point | null = null\n\n /**\n * Elemento alvo do swipe.\n */\n private element: HTMLElement\n\n /**\n * Tipo de evento sendo usado (pointer, touch ou mouse).\n */\n private eventType: 'pointer' | 'touch' | 'mouse' = 'touch'\n\n /**\n * Flag indicando se o gesto está ativo.\n */\n private isActive: boolean = false\n\n /**\n * Pointer ID para captura de eventos (usado com Pointer Events).\n */\n private pointerId: number | null = null\n\n /**\n * Limiar mínimo de movimento para detectar swipe (em pixels).\n */\n private readonly threshold: number = 30\n\n /**\n * Direção do swipe esperado ('horizontal' | 'vertical' | 'both').\n */\n private swipeDirection: 'horizontal' | 'vertical' | 'both' = 'both'\n\n /**\n * Bound handlers para remoção de listeners.\n */\n private boundHandleStart: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n private boundHandleEnd: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n private boundHandleCancel: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n\n /**\n * Cria uma nova instância de UniversalSwipe.\n * @constructor\n * @param {HTMLElement} element - Elemento HTML que receberá os gestos de swipe\n * @param {Object} [options] - Opções de configuração\n * @param {'horizontal'|'vertical'|'both'} [options.direction='both'] - Direção do swipe a ser detectado\n */\n constructor(element: HTMLElement, options?: { direction?: 'horizontal' | 'vertical' | 'both' }) {\n this.element = element\n this.swipeDirection = options?.direction || 'both'\n\n this.boundHandleStart = this.handleStart.bind(this)\n this.boundHandleEnd = this.handleEnd.bind(this)\n this.boundHandleCancel = this.handleCancel.bind(this)\n\n this.applyCSSFix()\n\n this.detectAndAttachListeners()\n }\n\n /**\n * Aplica CSS touch-action para prevenir gestos nativos do browser.\n * Usa 'pan-y' para permitir scroll vertical enquanto detecta swipes horizontais.\n * Usa 'pan-x' para permitir scroll horizontal enquanto detecta swipes verticais.\n * @private\n * @returns {void}\n */\n private applyCSSFix(): void {\n // Configura touch-action baseado na direção do swipe\n if (this.swipeDirection === 'horizontal') {\n // Permite scroll vertical, bloqueia horizontal para detectar SWIPE_LEFT/RIGHT\n this.element.style.touchAction = 'pan-y'\n } else if (this.swipeDirection === 'vertical') {\n // Permite scroll horizontal, bloqueia vertical para detectar SWIPE_UP/DOWN\n this.element.style.touchAction = 'pan-x'\n } else {\n // Bloqueia scroll em ambas direções para detectar qualquer swipe\n // Use 'manipulation' se houver elementos clicáveis dentro\n this.element.style.touchAction = 'manipulation'\n }\n }\n\n /**\n * Detecta qual tipo de evento usar e anexa os listeners apropriados.\n * Estratégia: Prioriza Pointer Events (universal), depois Touch, depois Mouse.\n * @private\n * @returns {void}\n */\n private detectAndAttachListeners(): void {\n // 1. Pointer Events: API moderna e universal (Chrome 55+, Firefox 59+, Safari 13+)\n if (window.PointerEvent) {\n this.eventType = 'pointer'\n this.element.addEventListener('pointerdown', this.boundHandleStart)\n this.element.addEventListener('pointerup', this.boundHandleEnd)\n this.element.addEventListener('pointercancel', this.boundHandleCancel)\n }\n // 2. Touch Events: Fallback para navegadores sem Pointer Events\n else if ('ontouchstart' in window && navigator.maxTouchPoints > 0) {\n this.eventType = 'touch'\n // Passive: false permite preventDefault()\n this.element.addEventListener('touchstart', this.boundHandleStart, { passive: false })\n this.element.addEventListener('touchend', this.boundHandleEnd, { passive: false })\n this.element.addEventListener('touchcancel', this.boundHandleCancel, { passive: false })\n }\n // 3. Mouse Events: Fallback final para navegadores antigos\n else {\n this.eventType = 'mouse'\n this.element.addEventListener('mousedown', this.boundHandleStart)\n // mousemove e mouseup são adicionados ao document no handleStart\n }\n }\n\n /**\n * Remove todos os event listeners do elemento.\n * @private\n * @returns {void}\n */\n private detachListeners(): void {\n if (this.eventType === 'pointer') {\n this.element.removeEventListener('pointerdown', this.boundHandleStart)\n this.element.removeEventListener('pointerup', this.boundHandleEnd)\n this.element.removeEventListener('pointercancel', this.boundHandleCancel)\n } else if (this.eventType === 'touch') {\n this.element.removeEventListener('touchstart', this.boundHandleStart)\n this.element.removeEventListener('touchend', this.boundHandleEnd)\n this.element.removeEventListener('touchcancel', this.boundHandleCancel)\n } else {\n this.element.removeEventListener('mousedown', this.boundHandleStart)\n this.removeDocumentMouseListeners()\n }\n }\n\n /**\n * Adiciona listeners de mouse ao document (necessário para rastrear fora do elemento).\n * @private\n * @returns {void}\n */\n private addDocumentMouseListeners(): void {\n document.addEventListener('mouseup', this.boundHandleEnd)\n document.addEventListener('mouseleave', this.boundHandleCancel)\n }\n\n /**\n * Remove listeners de mouse do document.\n * @private\n * @returns {void}\n */\n private removeDocumentMouseListeners(): void {\n document.removeEventListener('mouseup', this.boundHandleEnd)\n document.removeEventListener('mouseleave', this.boundHandleCancel)\n }\n\n /**\n * Extrai coordenadas do evento independente do tipo.\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento de pointer, touch ou mouse\n * @returns {Point} Coordenadas {x, y} do evento\n */\n private getCoordinates(evt: PointerEvent | TouchEvent | MouseEvent): Point {\n if ('touches' in evt && evt.touches.length > 0) {\n // Touch Event\n return {\n x: evt.touches[0].clientX,\n y: evt.touches[0].clientY,\n }\n } else if ('changedTouches' in evt && evt.changedTouches.length > 0) {\n // Touch Event (touchend)\n return {\n x: evt.changedTouches[0].clientX,\n y: evt.changedTouches[0].clientY,\n }\n } else if ('clientX' in evt && 'clientY' in evt) {\n // Pointer Event ou Mouse Event\n return {\n x: evt.clientX,\n y: evt.clientY,\n }\n }\n\n return { x: 0, y: 0 }\n }\n\n /**\n * Handler do início do gesto (pointerdown, touchstart, mousedown).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento do browser\n * @returns {void}\n */\n private handleStart(evt: PointerEvent | TouchEvent | MouseEvent): void {\n this.isActive = true\n this.startPoint = this.getCoordinates(evt)\n\n // Para Pointer Events, captura o pointer para rastrear fora do elemento\n if (this.eventType === 'pointer' && 'pointerId' in evt) {\n this.pointerId = evt.pointerId\n try {\n this.element.setPointerCapture(evt.pointerId)\n } catch {\n // Ignora erro se captura não for suportada\n }\n }\n\n // Para Mouse Events, adiciona listeners ao document\n if (this.eventType === 'mouse') {\n this.addDocumentMouseListeners()\n }\n }\n\n /**\n * Handler do fim do gesto (pointerup, touchend, mouseup).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento do browser\n * @returns {void}\n */\n private handleEnd(evt: PointerEvent | TouchEvent | MouseEvent): void {\n if (!this.isActive || this.startPoint === null) {\n return\n }\n\n const endPoint = this.getCoordinates(evt)\n const deltaX = endPoint.x - this.startPoint.x\n const deltaY = endPoint.y - this.startPoint.y\n\n // Threshold para evitar detecção acidental\n const absDeltaX = Math.abs(deltaX)\n const absDeltaY = Math.abs(deltaY)\n\n // Só dispara swipe se movimento for maior que threshold\n if (absDeltaX < this.threshold && absDeltaY < this.threshold) {\n this.cleanup()\n return\n }\n\n // Determina direção do swipe baseado no maior delta\n if (absDeltaX > absDeltaY) {\n // Swipe horizontal\n if (deltaX < 0) {\n this.trigger('SWIPE_LEFT')\n } else {\n this.trigger('SWIPE_RIGHT')\n }\n } else {\n // Swipe vertical\n if (deltaY < 0) {\n this.trigger('SWIPE_UP')\n } else {\n this.trigger('SWIPE_DOWN')\n }\n }\n\n this.cleanup()\n }\n\n /**\n * Handler de cancelamento do gesto (pointercancel, touchcancel, mouseleave).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} _evt - Evento do browser (não utilizado)\n * @returns {void}\n */\n private handleCancel(_evt: PointerEvent | TouchEvent | MouseEvent): void {\n this.cleanup()\n }\n\n /**\n * Limpa o estado do gesto e remove listeners temporários.\n * @private\n * @returns {void}\n */\n private cleanup(): void {\n this.isActive = false\n this.startPoint = null\n\n // Para Pointer Events, libera a captura\n if (this.eventType === 'pointer' && this.pointerId !== null) {\n try {\n this.element.releasePointerCapture(this.pointerId)\n } catch {\n // Ignora erro se pointer já foi liberado\n }\n this.pointerId = null\n }\n\n if (this.eventType === 'mouse') {\n this.removeDocumentMouseListeners()\n }\n }\n\n /**\n * Registra um callback para um evento de swipe.\n * @param evt - Nome do evento ('SWIPE_UP', 'SWIPE_DOWN', 'SWIPE_LEFT', 'SWIPE_RIGHT')\n * @param cb - Função callback a ser executada quando o evento ocorrer\n */\n public on(evt: SwipeEvent, cb: SwipeCallback): void {\n this.evtMap[evt].push(cb)\n }\n\n /**\n * Remove um callback de um evento de swipe.\n * @param evt - Nome do evento\n * @param cb - Função callback a ser removida\n */\n public off(evt: SwipeEvent, cb: SwipeCallback): void {\n this.evtMap[evt] = this.evtMap[evt].filter((callback) => callback !== cb)\n }\n\n /**\n * Dispara um evento de swipe, executando todos os callbacks registrados.\n * @private\n * @param {SwipeEvent} evt - Nome do evento a ser disparado\n * @param {unknown} [data] - Dados opcionais a serem passados aos callbacks\n * @returns {void}\n */\n private trigger(evt: SwipeEvent, data?: unknown): void {\n this.evtMap[evt].forEach((handler) => handler(data))\n }\n\n /**\n * Destrói a instância, removendo todos os event listeners.\n * Deve ser chamado quando o elemento for removido do DOM.\n * Remove o CSS touch-action aplicado no construtor.\n * @public\n * @returns {void}\n * @example\n * ```typescript\n * disconnectedCallback() {\n * this.swipe?.destroy();\n * }\n * ```\n */\n public destroy(): void {\n this.cleanup()\n this.detachListeners()\n this.element.style.touchAction = ''\n this.evtMap = {\n SWIPE_UP: [],\n SWIPE_DOWN: [],\n SWIPE_LEFT: [],\n SWIPE_RIGHT: [],\n }\n }\n}\n\nexport default UniversalSwipe\n","@import \"~@govbr-ds/core/src/components/wizard/mixins\";\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n:host {\n @include wizard-tokens;\n @include wizard-default;\n @include wizard-progress;\n @include wizard-progress-collapsed;\n @include wizard-vertical;\n @include wizard-form;\n @include wizard-dark-mode;\n\n br-step-item::part(item-container)::after {\n z-index: 0;\n }\n\n br-step-item::part(item-content) {\n background-color: transparent;\n }\n\n br-step-item[active] {\n --step-label-font-weight: var(--font-weight-semi-bold);\n --step-label-color: var(--active);\n }\n\n br-step-item::part(label) {\n display: block;\n font-size: var(--font-size-scale-down-02);\n line-height: 1em;\n text-align: center;\n }\n\n .wizard-progress {\n padding-top: 0;\n }\n\n @include media-breakpoint-down(sm) {\n .wizard-progress {\n max-height: none;\n height: auto;\n }\n }\n}\n\n:host([collapsed]) {\n br-step-item::part(label) {\n display: none;\n }\n\n @include media-breakpoint-down(sm) {\n br-step-item::part(label) {\n display: none;\n }\n\n br-step-item::part(item-container) {\n &::after {\n bottom: 50%;\n left: 50%;\n transform: translateY(50%);\n }\n }\n\n .wizard-progress {\n max-height: 100px;\n min-height: 100px;\n\n &::after {\n margin-top: var(--spacing-scale-4xh);\n }\n }\n }\n}\n\n:host([vertical]) {\n .wizard-progress {\n flex: 1;\n float: none;\n grid-template-columns: 1fr;\n height: auto;\n max-width: 260px;\n overflow: hidden auto;\n }\n\n @include media-breakpoint-down(sm) {\n .wizard-progress {\n max-height: 100%;\n max-width: 110px;\n\n &::after {\n height: 1em;\n left: unset;\n margin-top: -0.5em;\n right: 2px;\n top: 50%;\n transform: rotate(-90deg);\n width: 1em;\n }\n }\n\n .wizard-form {\n max-width: calc(100% - 110px);\n min-width: calc(100% - 110px);\n }\n\n br-step-item::part(item-container) {\n &::before {\n left: calc(100% - 32px);\n line-height: 26px;\n margin-top: calc(var(--spacing-scale-2x) * -1);\n position: absolute;\n text-align: center;\n top: 50%;\n }\n\n &::after {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 1px;\n }\n }\n\n &[collapsed] {\n br-step-item::part(label) {\n visibility: hidden;\n width: 0;\n height: 0;\n overflow: hidden;\n }\n\n .wizard-progress {\n max-width: 60px;\n padding-bottom: 0;\n padding-top: 0;\n }\n }\n }\n}\n\n:host(.dark-mode) {\n @include dark-mode;\n @include button-dark-mode;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\nimport { UniversalSwipe } from '../../utils/swipe'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/wizard?tab=designer).\n *\n * @slot default - Slot para os painéis de etapa (br-wizard-panel) do wizard.\n */\n@Component({\n tag: 'br-wizard',\n styleUrl: 'wizard.scss',\n shadow: true,\n})\nexport class Wizard {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el!: HTMLBrWizardElement\n\n /**\n * Internals API para suporte a formulários nativos.\n */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Índice da etapa inicial do wizard.\n * Define qual etapa será exibida ao carregar o componente.\n * A numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\n */\n @Prop({ reflect: true }) initialStep: number = 1\n\n /**\n * Orientação visual do wizard.\n * Define se os indicadores de progresso serão exibidos horizontalmente ou verticalmente.\n */\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\n /**\n * Tipo de progressão entre etapas.\n * - `linear`: O usuário deve completar cada etapa sequencialmente. Não é possível pular etapas futuras.\n * - `nonlinear`: O usuário pode navegar livremente entre qualquer etapa.\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n /**\n * ID customizado para o componente.\n * Se não fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) customId: string = Helpers.generateUniqueId()\n\n /**\n * Etapa atual sendo exibida.\n * Gerenciado internamente pelo componente.\n */\n @State() currentStep: number = 1\n\n /** Estado mobile para detecção responsiva */\n @State() isMobile: boolean = false\n\n /**\n * Estado collapsed para recolher/expandir barra de progresso (mobile)\n */\n @State() collapsed: boolean = false\n\n /**\n * Lista de painéis filhos (br-wizard-panel).\n * Descobertos automaticamente via slot.\n */\n @State() panels: HTMLElement[] = []\n\n /**\n * Mensagem de status para leitores de tela (aria-live)\n */\n @State() ariaLiveMessage: string = ''\n\n // ========================================\n // EVENTOS\n // ========================================\n\n /**\n * Evento emitido APÓS mudar de etapa com sucesso.\n *\n * Este evento é disparado independente da origem da navegação:\n * - Botões \"Avançar\" ou \"Voltar\"\n * - Click direto em um step do indicador de progresso\n * - Chamadas programáticas via métodos públicos (goToStep, nextStep, etc)\n */\n @Event() brWizardStepChange: EventEmitter<number>\n\n /**\n * Evento emitido ANTES de mudar de etapa (permite validação e cancelamento).\n *\n * Comportamento:\n * - Disparado apenas ao AVANÇAR (targetStep > currentStep)\n * - Não é disparado ao VOLTAR (targetStep < currentStep)\n * - Funciona tanto para cliques nos botões quanto para cliques diretos nos steps\n * - Pode ser cancelado com `event.preventDefault()` para bloquear a navegação\n */\n @Event({ cancelable: true }) brWizardBeforeStepChange: EventEmitter<number>\n\n /**\n * Evento emitido ao concluir o wizard (última etapa).\n */\n @Event() brWizardComplete: EventEmitter<void>\n\n /**\n * Evento emitido ao cancelar o wizard.\n */\n @Event() brWizardCancel: EventEmitter<void>\n\n /**\n * Evento emitido quando uma ação é bloqueada (validação falha, progressão linear impedida).\n * Emite uma string indicando o motivo: 'linear-progression' ou 'validation-failed'.\n * Use getCurrentStepIndex() para obter o contexto da etapa atual.\n */\n @Event() brWizardNavigationBlocked: EventEmitter<string>\n\n // ========================================\n // PROPRIEDADES PRIVADAS\n // ========================================\n\n /**\n * Referência ao componente br-step.\n */\n private stepRef: HTMLBrStepElement | null = null\n\n /**\n * Flag para evitar loop quando sincronizamos programaticamente com br-step.\n */\n private isSyncingWithStep: boolean = false\n\n /**\n * Instância do Swipe para gestos mobile na barra de progresso.\n */\n private progressBarSwipe: UniversalSwipe | null = null\n\n /**\n * Referência ao elemento DOM da barra de progresso.\n */\n private progressBarRef: HTMLElement | null = null\n\n /**\n * Referência ao elemento DOM do formulário/painel ativo.\n */\n private formRef: HTMLElement | null = null\n\n /**\n * Timer para limpar mensagens aria-live.\n */\n private ariaLiveTimeout: number | null = null\n\n // ========================================\n // CONSTANTES\n // ========================================\n\n /**\n * Tempo de espera para limpar mensagens aria-live (em ms).\n */\n private readonly ARIA_LIVE_CLEANUP_DELAY = 5000\n\n /**\n * Seletor de elementos focáveis dentro dos painéis.\n */\n private readonly FOCUSABLE_SELECTOR =\n 'br-button, button, [href], br-item, br-input, input, br-select, select, br-textarea, textarea, [tabindex]:not([tabindex=\"-1\"])'\n\n // ========================================\n // WATCHERS\n // ========================================\n\n /**\n * Observa mudanças no tipo de progressão.\n * Atualiza a navegação dos painéis quando muda entre linear/nonlinear.\n */\n @Watch('progressionType')\n handleProgressionTypeChange() {\n this.updatePanels()\n }\n\n /**\n * Observa mudanças na etapa inicial.\n * Reinicializa o wizard quando a prop initialStep é alterada externamente.\n */\n @Watch('initialStep')\n async handleInitialStepChange() {\n this.setInitialStep()\n await this.syncWithBrStep()\n this.updatePanels()\n }\n\n /**\n * Observa mudanças na etapa atual (fonte única de verdade).\n * Sincroniza com br-step, atualiza painéis, anuncia mudança e move foco.\n * @param newStep - Nova etapa\n * @param oldStep - Etapa anterior\n */\n @Watch('currentStep')\n async handleCurrentStepChange(newStep: number, oldStep: number) {\n if (newStep !== oldStep) {\n await this.syncWithBrStep()\n this.updatePanels()\n\n this.announceStepChange(newStep, oldStep)\n\n this.setFocusOnActivePanel()\n }\n }\n\n // ========================================\n // LISTENERS\n // ========================================\n\n /**\n * Detecta quando o slot muda (painéis adicionados/removidos dinamicamente).\n * Redescobre os painéis e ressincroniza o estado.\n * @param event - Evento slotchange\n */\n @Listen('slotchange')\n async handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement\n this.discoverPanelsFromSlot(slot)\n await this.syncWithBrStep()\n this.updatePanels()\n }\n\n /**\n * Detecta quando o br-step muda de etapa ativa.\n * Valida e sincroniza a navegação com o componente interno br-step.\n * @param event - Evento customizado do br-step\n */\n @Listen('brStepChange')\n async handleStepChange(event: CustomEvent<{ activeStep: number }>) {\n if (this.isSyncingWithStep) {\n return\n }\n\n const requestedStep = event.detail.activeStep + 1\n const success = await this.navigateToStep(requestedStep)\n\n if (!success) {\n event.stopPropagation()\n await this.syncWithBrStep()\n }\n }\n\n // ========================================\n // LIFECYCLE HOOKS\n // ========================================\n\n /**\n * Lifecycle: inicializa painéis antes da renderização.\n */\n componentWillLoad() {\n this.panels = Array.from(this.el.querySelectorAll('br-wizard-panel'))\n this.setInitialStep()\n }\n\n /**\n * Lifecycle: carrega painéis e configura estado inicial.\n * Sincroniza com br-step, atualiza painéis e configura detecção mobile.\n */\n async componentDidLoad() {\n const slot = this.el.shadowRoot?.querySelector('slot')\n if (slot !== null && typeof slot !== 'undefined') {\n const assignedElements = slot.assignedElements()\n const slotPanels = assignedElements.filter(\n (el) => el.tagName.toLowerCase() === 'br-wizard-panel'\n ) as HTMLElement[]\n\n if (slotPanels.length !== this.panels.length) {\n this.panels = slotPanels\n }\n }\n\n await this.syncWithBrStep()\n this.updatePanels()\n this.setupMobileDetection()\n\n if (this.isMobile) {\n this.collapsed = true\n }\n }\n\n /**\n * Lifecycle: limpa listeners quando componente é removido.\n */\n disconnectedCallback() {\n this.cleanupMobileDetection()\n this.cleanupSwipeListeners()\n this.clearAriaLiveTimeout()\n }\n\n // ========================================\n // MÉTODOS PÚBLICOS\n // ========================================\n\n /**\n * Avança para a próxima etapa.\n * Executa validação via evento `brWizardBeforeStepChange` antes de navegar.\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async nextStep(): Promise<boolean> {\n return await this.navigateToStep(this.currentStep + 1)\n }\n\n /**\n * Volta para a etapa anterior.\n * Não executa validação ao retornar.\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async previousStep(): Promise<boolean> {\n return await this.navigateToStep(this.currentStep - 1)\n }\n\n /**\n * Navega para uma etapa específica.\n * Executa validação se estiver avançando (etapa alvo > etapa atual).\n * @param stepNumber - Número da etapa de destino (numeração começa em 1)\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async goToStep(stepNumber: number): Promise<boolean> {\n return await this.navigateToStep(stepNumber)\n }\n\n /**\n * Retorna à primeira etapa do wizard.\n * Não executa validação (útil para reiniciar o fluxo).\n * @returns Promise<void>\n */\n @Method()\n async reset(): Promise<void> {\n await this.navigateToStep(1, true)\n }\n\n /**\n * Retorna o elemento HTML do painel ativo no momento.\n * @returns Promise<HTMLElement | null>\n */\n @Method()\n async getCurrentStep(): Promise<HTMLElement | null> {\n return this.panels[this.currentStep - 1] || null\n }\n\n /**\n * Retorna todos os painéis do wizard.\n * @returns Promise<HTMLElement[]>\n */\n @Method()\n async getAllSteps(): Promise<HTMLElement[]> {\n return [...this.panels]\n }\n\n /**\n * Retorna um painel específico pelo índice.\n * @param stepNumber - Número da etapa (numeração começa em 1)\n * @returns Promise<HTMLElement | null>\n */\n @Method()\n async getStepByIndex(stepNumber: number): Promise<HTMLElement | null> {\n return this.panels[stepNumber - 1] || null\n }\n\n /**\n * Retorna o índice (número) da etapa atual.\n * A numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\n * @returns Promise<number>\n */\n @Method()\n async getCurrentStepIndex(): Promise<number> {\n return this.currentStep\n }\n\n /**\n * Retorna o número total de etapas do wizard.\n * @returns Promise<number>\n */\n @Method()\n async getTotalSteps(): Promise<number> {\n return this.panels.length\n }\n\n // ========================================\n // NAVEGAÇÃO E VALIDAÇÃO\n // ========================================\n\n /**\n * Método privado central que gerencia toda a navegação com validação.\n *\n * Comportamento unificado para linear e nonlinear:\n * - Linear: Valida ao avançar, não permite pular steps\n * - Nonlinear: Valida ao avançar, permite pular steps livremente\n *\n * @param targetStep - Número da etapa de destino (numeração começa em 1)\n * @param skipValidation - Se true, pula validação (útil para reset/programático)\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n private async navigateToStep(targetStep: number, skipValidation: boolean = false): Promise<boolean> {\n /**\n * VALIDAÇÕES BÁSICAS\n * 1. Verifica se targetStep está dentro dos limites válidos\n * 2. Se já estamos na etapa alvo, retorna sucesso imediatamente\n */\n if (targetStep < 1 || targetStep > this.panels.length) {\n return false\n }\n\n if (targetStep === this.currentStep) {\n return true\n }\n\n /**\n * MODO LINEAR: RESTRIÇÕES\n * No modo linear, não é permitido pular para etapas futuras não visitadas.\n * É possível voltar, mas não avançar além da próxima etapa sequencial.\n */\n if (this.progressionType === 'linear') {\n if (targetStep > this.currentStep + 1) {\n const message = `Não é possível pular etapas. Complete a etapa ${this.currentStep + 1} antes de avançar.`\n\n this.announceToScreenReader(message)\n\n this.brWizardNavigationBlocked.emit('linear-progression')\n\n return false\n }\n }\n\n /**\n * VALIDAÇÃO CUSTOMIZADA\n * Emite evento brWizardBeforeStepChange APENAS se:\n * 1. Não estamos pulando validação (skipValidation=false)\n * 2. Estamos AVANÇANDO (targetStep > currentStep)\n *\n * Observações:\n * - Voltar não precisa validar\n * - Validação se aplica a ambos os modos (linear e nonlinear)\n */\n const shouldValidate = !skipValidation && targetStep > this.currentStep\n\n if (shouldValidate) {\n const eventResult = this.brWizardBeforeStepChange.emit(targetStep)\n\n /**\n * Se preventDefault() foi chamado no listener do evento,\n * bloqueia a navegação e retorna false\n */\n if (eventResult.defaultPrevented) {\n const message = 'Não é possível avançar. Verifique os campos obrigatórios da etapa atual.'\n\n this.announceToScreenReader(message)\n\n this.brWizardNavigationBlocked.emit('validation-failed')\n\n return false\n }\n }\n\n /**\n * EXECUTA NAVEGAÇÃO\n * Atualiza o estado interno e emite evento de confirmação\n */\n this.currentStep = targetStep\n\n this.brWizardStepChange.emit(this.currentStep)\n\n return true\n }\n\n // ========================================\n // SINCRONIZAÇÃO COM BR-STEP\n // ========================================\n\n /**\n * Sincroniza estado do wizard com o br-step.\n *\n * O br-step já gerencia completamente os atributos 'active' via componentShouldUpdate\n * e requestAnimationFrame, então apenas chamamos os métodos de navegação dele.\n */\n private async syncWithBrStep() {\n if (this.stepRef === null) return\n\n if (typeof this.stepRef.GetActiveStep !== 'function') {\n return\n }\n\n this.isSyncingWithStep = true\n\n try {\n const targetStepIndex = this.currentStep - 1\n const currentActiveStep = await this.stepRef.GetActiveStep()\n\n if (currentActiveStep !== targetStepIndex) {\n const diff = targetStepIndex - currentActiveStep\n\n if (diff > 0) {\n for (let i = 0; i < diff; i++) {\n await this.stepRef.ProceedToNextStep()\n }\n } else {\n for (let i = 0; i < Math.abs(diff); i++) {\n await this.stepRef.BackToPreviousStep()\n }\n }\n }\n } finally {\n this.isSyncingWithStep = false\n }\n }\n\n // ========================================\n // GERENCIAMENTO DE PAINÉIS\n // ========================================\n\n /**\n * Descobre painéis filhos usando assigned elements do slot.\n * @param slot - Elemento slot do shadow DOM\n */\n private discoverPanelsFromSlot(slot: HTMLSlotElement) {\n const assignedElements = slot.assignedElements()\n this.panels = assignedElements.filter((el) => el.tagName.toLowerCase() === 'br-wizard-panel') as HTMLElement[]\n }\n\n /**\n * Atualiza estados de todos os painéis.\n * Define o índice e o estado ativo de cada painel.\n */\n private async updatePanels() {\n for (let idx = 0; idx < this.panels.length; idx++) {\n const panel = this.panels[idx] as HTMLBrWizardPanelElement\n const stepNumber = idx + 1\n const isActive = stepNumber === this.currentStep\n\n await panel.setIndex(stepNumber)\n await panel.setActive(isActive)\n }\n }\n\n /**\n * Define etapa inicial baseada na prop initialStep.\n * Garante que o valor esteja dentro dos limites válidos.\n */\n private setInitialStep() {\n this.currentStep = Math.max(1, Math.min(this.initialStep, this.panels.length))\n }\n\n // ========================================\n // ACESSIBILIDADE\n // ========================================\n\n /**\n * Anuncia mensagem para leitores de tela via aria-live.\n * Limpa automaticamente após 5 segundos para evitar poluição.\n * @param message - Mensagem a ser anunciada\n */\n private announceToScreenReader(message: string) {\n this.ariaLiveMessage = ''\n\n requestAnimationFrame(() => {\n this.ariaLiveMessage = message\n\n this.clearAriaLiveTimeout()\n this.ariaLiveTimeout = window.setTimeout(() => {\n this.ariaLiveMessage = ''\n }, this.ARIA_LIVE_CLEANUP_DELAY)\n })\n }\n\n /**\n * Anuncia mudança de etapa para leitores de tela.\n * Informa direção da navegação e progresso atual.\n * @param newStep - Nova etapa\n * @param oldStep - Etapa anterior\n */\n private announceStepChange(newStep: number, oldStep: number) {\n const totalSteps = this.panels.length\n\n let direction = ''\n if (newStep > oldStep) {\n direction = 'Avançando para'\n } else if (newStep < oldStep) {\n direction = 'Retornando para'\n }\n\n const message = `${direction}, etapa ${newStep} de ${totalSteps}`\n this.announceToScreenReader(message)\n }\n\n /**\n * Limpa o timeout de mensagens aria-live.\n */\n private clearAriaLiveTimeout() {\n if (this.ariaLiveTimeout !== null) {\n clearTimeout(this.ariaLiveTimeout)\n this.ariaLiveTimeout = null\n }\n }\n\n /**\n * Move foco para o primeiro elemento do painel ativo.\n *\n */\n private setFocusOnActivePanel() {\n requestAnimationFrame(() => {\n const activePanel = this.panels[this.currentStep - 1] as HTMLBrWizardPanelElement | undefined\n if (typeof activePanel === 'undefined') return\n\n const panelElement = activePanel.shadowRoot?.querySelector('.wizard-panel-content')\n if (typeof panelElement === 'undefined' || panelElement === null) return\n\n const focusableElements = panelElement.querySelectorAll(this.FOCUSABLE_SELECTOR)\n\n if (focusableElements.length > 0) {\n ;(focusableElements[0] as HTMLElement).focus()\n }\n })\n }\n\n // ========================================\n // DETECÇÃO MOBILE E RESPONSIVIDADE\n // ========================================\n\n /**\n * Configura detecção de viewport mobile.\n * Ativa listeners de resize e configura gestos swipe.\n */\n private setupMobileDetection() {\n this.isMobile = window.innerWidth <= 992\n window.addEventListener('resize', this.handleResize)\n\n if (this.isMobile) {\n this.setupSwipeListeners()\n }\n }\n\n /**\n * Remove listeners de detecção mobile.\n */\n private cleanupMobileDetection() {\n window.removeEventListener('resize', this.handleResize)\n }\n\n /**\n * Handler de resize da janela.\n * Alterna entre modos mobile/desktop e configura/limpa gestos swipe.\n */\n private handleResize = () => {\n const wasMobile = this.isMobile\n this.isMobile = window.innerWidth <= 992\n\n if (this.isMobile && !wasMobile) {\n this.collapsed = true\n this.setupSwipeListeners()\n } else if (!this.isMobile && wasMobile) {\n this.cleanupSwipeListeners()\n this.collapsed = false\n }\n }\n\n // ========================================\n // GESTOS SWIPE (MOBILE)\n // ========================================\n\n /**\n * Configura gestos swipe para mobile.\n */\n private setupSwipeListeners() {\n if (!this.isMobile) return\n\n requestAnimationFrame(() => {\n this.progressBarRef = this.el.shadowRoot?.querySelector('.wizard-progress') || null\n this.formRef = this.el.shadowRoot?.querySelector('.wizard-form') || null\n\n if (this.progressBarRef !== null) {\n const direction = this.orientation === 'horizontal' ? 'vertical' : 'horizontal'\n this.progressBarSwipe = new UniversalSwipe(this.progressBarRef, { direction })\n\n if (this.orientation === 'horizontal') {\n this.progressBarSwipe.on('SWIPE_DOWN', () => this.expandSteps())\n this.progressBarSwipe.on('SWIPE_UP', () => this.collapseSteps())\n } else {\n this.progressBarSwipe.on('SWIPE_RIGHT', () => this.expandSteps())\n this.progressBarSwipe.on('SWIPE_LEFT', () => this.collapseSteps())\n }\n }\n\n if (this.formRef !== null) {\n this.formRef.addEventListener('touchstart', this.handleFormTouchStart)\n }\n })\n }\n\n /**\n * Remove listeners de gestos swipe.\n */\n private cleanupSwipeListeners() {\n if (this.progressBarSwipe !== null) {\n this.progressBarSwipe.off('SWIPE_DOWN', this.expandSteps)\n this.progressBarSwipe.off('SWIPE_UP', this.collapseSteps)\n this.progressBarSwipe.off('SWIPE_RIGHT', this.expandSteps)\n this.progressBarSwipe.off('SWIPE_LEFT', this.collapseSteps)\n\n this.progressBarSwipe.destroy()\n this.progressBarSwipe = null\n }\n\n if (this.formRef !== null) {\n this.formRef.removeEventListener('touchstart', this.handleFormTouchStart)\n }\n }\n\n /**\n * Handler de toque no formulário.\n * Recolhe automaticamente a barra de progresso.\n */\n private handleFormTouchStart = () => {\n this.collapseSteps()\n }\n\n /**\n * Recolhe a barra de progresso (mobile).\n * Adiciona o atributo 'collapsed' ao host.\n */\n private collapseSteps() {\n if (this.isMobile) {\n this.collapsed = true\n }\n }\n\n /**\n * Expande a barra de progresso (mobile).\n * Remove o atributo 'collapsed' do host.\n */\n private expandSteps() {\n if (this.isMobile) {\n this.collapsed = false\n }\n }\n\n // ========================================\n // HANDLERS DE EVENTOS DE BOTÕES\n // ========================================\n\n /**\n * Handler do botão \"Avançar\" ou \"Concluir\".\n * Se for a última etapa, valida e emite evento de conclusão.\n * Caso contrário, avança para a próxima etapa.\n */\n private handleNext = async () => {\n if (this.currentStep === this.panels.length) {\n // Última etapa: validar antes de completar\n const eventResult = this.brWizardBeforeStepChange.emit(this.currentStep)\n\n // Se preventDefault() foi chamado, bloqueia conclusão\n if (!eventResult.defaultPrevented) {\n this.brWizardComplete.emit()\n }\n } else {\n await this.nextStep()\n }\n }\n\n /**\n * Handler do botão \"Voltar\".\n * Navega para a etapa anterior.\n */\n private handlePrevious = async () => {\n await this.previousStep()\n }\n\n /**\n * Handler do botão \"Cancelar\".\n * Emite evento de cancelamento do wizard.\n */\n private handleCancel = () => {\n this.brWizardCancel.emit()\n }\n\n // ========================================\n // MÉTODOS DE RENDERIZAÇÃO\n // ========================================\n\n /**\n * Retorna classes CSS do container principal.\n * @returns CssClassMap - Mapa de classes CSS\n */\n private getHostClassMap(): CssClassMap {\n return {\n 'br-wizard': true,\n }\n }\n\n /**\n * Renderiza indicadores de progresso usando br-step.\n * @returns JSX.Element | null - Elemento de progresso ou null se não houver painéis\n */\n private renderProgress() {\n if (this.panels.length === 0) {\n return null\n }\n\n return (\n <div class=\"wizard-progress\">\n <br-step\n ref={(el) => (this.stepRef = el)}\n initial-step={String(this.currentStep - 1)}\n layout={this.orientation}\n label-position={this.orientation === 'vertical' ? 'bottom' : 'bottom'}\n progression-type={this.progressionType}\n mode=\"step\"\n >\n {this.panels.map((panel) => {\n const label = panel.getAttribute('label') || ''\n return <br-step-item label={label}></br-step-item>\n })}\n </br-step>\n </div>\n )\n }\n\n /**\n * Renderiza conteúdo dos painéis via slot.\n * @returns JSX.Element - Container com slot dos painéis\n */\n private renderPanelContent() {\n return (\n <div class=\"wizard-panel-content\">\n <slot />\n </div>\n )\n }\n\n /**\n * Renderiza botões de navegação do wizard.\n * Adapta-se ao contexto: primeira etapa, última etapa, mobile/desktop.\n * @returns JSX.Element - Container com botões de navegação\n */\n private renderPanelButtons() {\n const isFirst = this.currentStep === 1\n const isLast = this.currentStep === this.panels.length\n\n const buttonShape = this.isMobile ? 'block' : undefined\n\n return (\n <div class=\"wizard-panel-btn\">\n <br-button\n class=\"wizard-btn-canc\"\n type=\"button\"\n shape={buttonShape}\n emphasis=\"tertiary\"\n onClick={this.handleCancel}\n >\n Cancelar\n </br-button>\n\n <br-button\n class={isLast ? 'wizard-btn' : 'wizard-btn-next'}\n emphasis=\"primary\"\n type=\"button\"\n shape={buttonShape}\n onClick={this.handleNext}\n >\n {isLast ? 'Concluir' : 'Avançar'}\n </br-button>\n\n {!isFirst && (\n <br-button\n class=\"wizard-btn-prev\"\n emphasis=\"secondary\"\n type=\"button\"\n shape={buttonShape}\n onClick={this.handlePrevious}\n >\n Voltar\n </br-button>\n )}\n </div>\n )\n }\n\n /**\n * Renderiza região de anúncios para leitores de tela.\n * Usa aria-live para comunicar mudanças de estado de forma acessível.\n * @returns JSX.Element - Elemento sr-only com aria-live\n */\n private renderAriaLiveRegion() {\n return (\n <div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {this.ariaLiveMessage}\n </div>\n )\n }\n\n /**\n * Método de renderização principal do componente.\n * Monta a estrutura completa do wizard com acessibilidade integrada.\n * @returns JSX.Element - Estrutura completa do wizard\n */\n render() {\n const hostClass = this.getHostClassMap()\n const verticalAttr = this.orientation === 'vertical' ? { vertical: '' } : {}\n const collapsedAttr = this.collapsed ? { collapsed: '' } : {}\n const activePanelAttr = { active: '' }\n\n // Atributos ARIA para o painel ativo\n const totalSteps = this.panels.length\n const currentPanel = this.panels[this.currentStep - 1]\n const stepLabel = currentPanel?.getAttribute('label') || `Etapa ${this.currentStep}`\n\n return (\n <Host class={hostClass} {...verticalAttr} {...collapsedAttr} step={String(this.currentStep)}>\n {this.renderAriaLiveRegion()}\n\n {this.renderProgress()}\n\n <div class=\"wizard-form\" role=\"region\" aria-label={`Wizard: ${stepLabel}`}>\n <div\n class=\"wizard-panel\"\n {...activePanelAttr}\n role=\"group\"\n aria-label={`${stepLabel}, etapa ${this.currentStep} de ${totalSteps}`}\n >\n {this.renderPanelContent()}\n {this.renderPanelButtons()}\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-wizard.entry.esm.js","sources":["../../packages/webcomponents/src/utils/swipe.ts","../../packages/webcomponents/src/components/wizard/wizard.scss?tag=br-wizard&encapsulation=shadow","../../packages/webcomponents/src/components/wizard/wizard.tsx"],"sourcesContent":["/**\n * Eventos de swipe suportados.\n * @typedef {('SWIPE_UP'|'SWIPE_DOWN'|'SWIPE_LEFT'|'SWIPE_RIGHT')} SwipeEvent\n */\nexport type SwipeEvent = 'SWIPE_UP' | 'SWIPE_DOWN' | 'SWIPE_LEFT' | 'SWIPE_RIGHT'\n\n/**\n * Tipo de callback para eventos de swipe.\n * @typedef {Function} SwipeCallback\n * @param {unknown} [data] - Dados opcionais passados ao callback\n * @returns {void}\n */\nexport type SwipeCallback = (data?: unknown) => void\n\n/**\n * Mapa de eventos e callbacks.\n * @typedef {Object.<SwipeEvent, SwipeCallback[]>} EventMap\n * @private\n */\ntype EventMap = Record<SwipeEvent, SwipeCallback[]>\n\n/**\n * Coordenadas de um ponto.\n * @typedef {Object} Point\n * @property {number} x - Coordenada X\n * @property {number} y - Coordenada Y\n * @private\n */\ninterface Point {\n x: number\n y: number\n}\n\n/**\n * UniversalSwipe - Detecção de gestos de swipe com suporte universal.\n *\n * Estratégia de detecção (prioridade):\n * 1. Pointer Events - API moderna universal (Chrome 55+, Firefox 59+, Safari 13+, Edge 12+)\n * 2. Touch Events - Fallback para dispositivos móveis sem Pointer Events\n * 3. Mouse Events - Fallback para navegadores antigos\n *\n * Compatibilidade:\n * - ✅ Firefox Desktop (mouse events)\n * - ✅ Chrome Desktop/Mobile (pointer/touch events)\n * - ✅ Safari Desktop/Mobile (pointer/touch events)\n * - ✅ Edge (pointer events)\n * - ✅ Navegadores antigos (touch/mouse events)\n *\n */\nexport class UniversalSwipe {\n /**\n * Mapa de eventos e seus callbacks.\n */\n private evtMap: EventMap = {\n SWIPE_UP: [],\n SWIPE_DOWN: [],\n SWIPE_LEFT: [],\n SWIPE_RIGHT: [],\n }\n\n /**\n * Posição inicial do gesto.\n */\n private startPoint: Point | null = null\n\n /**\n * Elemento alvo do swipe.\n */\n private element: HTMLElement\n\n /**\n * Tipo de evento sendo usado (pointer, touch ou mouse).\n */\n private eventType: 'pointer' | 'touch' | 'mouse' = 'touch'\n\n /**\n * Flag indicando se o gesto está ativo.\n */\n private isActive: boolean = false\n\n /**\n * Pointer ID para captura de eventos (usado com Pointer Events).\n */\n private pointerId: number | null = null\n\n /**\n * Limiar mínimo de movimento para detectar swipe (em pixels).\n */\n private readonly threshold: number = 30\n\n /**\n * Direção do swipe esperado ('horizontal' | 'vertical' | 'both').\n */\n private swipeDirection: 'horizontal' | 'vertical' | 'both' = 'both'\n\n /**\n * Bound handlers para remoção de listeners.\n */\n private boundHandleStart: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n private boundHandleEnd: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n private boundHandleCancel: (evt: PointerEvent | TouchEvent | MouseEvent) => void\n\n /**\n * Cria uma nova instância de UniversalSwipe.\n * @constructor\n * @param {HTMLElement} element - Elemento HTML que receberá os gestos de swipe\n * @param {Object} [options] - Opções de configuração\n * @param {'horizontal'|'vertical'|'both'} [options.direction='both'] - Direção do swipe a ser detectado\n */\n constructor(element: HTMLElement, options?: { direction?: 'horizontal' | 'vertical' | 'both' }) {\n this.element = element\n this.swipeDirection = options?.direction || 'both'\n\n this.boundHandleStart = this.handleStart.bind(this)\n this.boundHandleEnd = this.handleEnd.bind(this)\n this.boundHandleCancel = this.handleCancel.bind(this)\n\n this.applyCSSFix()\n\n this.detectAndAttachListeners()\n }\n\n /**\n * Aplica CSS touch-action para prevenir gestos nativos do browser.\n * Usa 'pan-y' para permitir scroll vertical enquanto detecta swipes horizontais.\n * Usa 'pan-x' para permitir scroll horizontal enquanto detecta swipes verticais.\n * @private\n * @returns {void}\n */\n private applyCSSFix(): void {\n // Configura touch-action baseado na direção do swipe\n if (this.swipeDirection === 'horizontal') {\n // Permite scroll vertical, bloqueia horizontal para detectar SWIPE_LEFT/RIGHT\n this.element.style.touchAction = 'pan-y'\n } else if (this.swipeDirection === 'vertical') {\n // Permite scroll horizontal, bloqueia vertical para detectar SWIPE_UP/DOWN\n this.element.style.touchAction = 'pan-x'\n } else {\n // Bloqueia scroll em ambas direções para detectar qualquer swipe\n // Use 'manipulation' se houver elementos clicáveis dentro\n this.element.style.touchAction = 'manipulation'\n }\n }\n\n /**\n * Detecta qual tipo de evento usar e anexa os listeners apropriados.\n * Estratégia: Prioriza Pointer Events (universal), depois Touch, depois Mouse.\n * @private\n * @returns {void}\n */\n private detectAndAttachListeners(): void {\n // 1. Pointer Events: API moderna e universal (Chrome 55+, Firefox 59+, Safari 13+)\n if (window.PointerEvent) {\n this.eventType = 'pointer'\n this.element.addEventListener('pointerdown', this.boundHandleStart)\n this.element.addEventListener('pointerup', this.boundHandleEnd)\n this.element.addEventListener('pointercancel', this.boundHandleCancel)\n }\n // 2. Touch Events: Fallback para navegadores sem Pointer Events\n else if ('ontouchstart' in window && navigator.maxTouchPoints > 0) {\n this.eventType = 'touch'\n // Passive: false permite preventDefault()\n this.element.addEventListener('touchstart', this.boundHandleStart, { passive: false })\n this.element.addEventListener('touchend', this.boundHandleEnd, { passive: false })\n this.element.addEventListener('touchcancel', this.boundHandleCancel, { passive: false })\n }\n // 3. Mouse Events: Fallback final para navegadores antigos\n else {\n this.eventType = 'mouse'\n this.element.addEventListener('mousedown', this.boundHandleStart)\n // mousemove e mouseup são adicionados ao document no handleStart\n }\n }\n\n /**\n * Remove todos os event listeners do elemento.\n * @private\n * @returns {void}\n */\n private detachListeners(): void {\n if (this.eventType === 'pointer') {\n this.element.removeEventListener('pointerdown', this.boundHandleStart)\n this.element.removeEventListener('pointerup', this.boundHandleEnd)\n this.element.removeEventListener('pointercancel', this.boundHandleCancel)\n } else if (this.eventType === 'touch') {\n this.element.removeEventListener('touchstart', this.boundHandleStart)\n this.element.removeEventListener('touchend', this.boundHandleEnd)\n this.element.removeEventListener('touchcancel', this.boundHandleCancel)\n } else {\n this.element.removeEventListener('mousedown', this.boundHandleStart)\n this.removeDocumentMouseListeners()\n }\n }\n\n /**\n * Adiciona listeners de mouse ao document (necessário para rastrear fora do elemento).\n * @private\n * @returns {void}\n */\n private addDocumentMouseListeners(): void {\n document.addEventListener('mouseup', this.boundHandleEnd)\n document.addEventListener('mouseleave', this.boundHandleCancel)\n }\n\n /**\n * Remove listeners de mouse do document.\n * @private\n * @returns {void}\n */\n private removeDocumentMouseListeners(): void {\n document.removeEventListener('mouseup', this.boundHandleEnd)\n document.removeEventListener('mouseleave', this.boundHandleCancel)\n }\n\n /**\n * Extrai coordenadas do evento independente do tipo.\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento de pointer, touch ou mouse\n * @returns {Point} Coordenadas {x, y} do evento\n */\n private getCoordinates(evt: PointerEvent | TouchEvent | MouseEvent): Point {\n if ('touches' in evt && evt.touches.length > 0) {\n // Touch Event\n return {\n x: evt.touches[0].clientX,\n y: evt.touches[0].clientY,\n }\n } else if ('changedTouches' in evt && evt.changedTouches.length > 0) {\n // Touch Event (touchend)\n return {\n x: evt.changedTouches[0].clientX,\n y: evt.changedTouches[0].clientY,\n }\n } else if ('clientX' in evt && 'clientY' in evt) {\n // Pointer Event ou Mouse Event\n return {\n x: evt.clientX,\n y: evt.clientY,\n }\n }\n\n return { x: 0, y: 0 }\n }\n\n /**\n * Handler do início do gesto (pointerdown, touchstart, mousedown).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento do browser\n * @returns {void}\n */\n private handleStart(evt: PointerEvent | TouchEvent | MouseEvent): void {\n this.isActive = true\n this.startPoint = this.getCoordinates(evt)\n\n // Para Pointer Events, captura o pointer para rastrear fora do elemento\n if (this.eventType === 'pointer' && 'pointerId' in evt) {\n this.pointerId = evt.pointerId\n try {\n this.element.setPointerCapture(evt.pointerId)\n } catch {\n // Ignora erro se captura não for suportada\n }\n }\n\n // Para Mouse Events, adiciona listeners ao document\n if (this.eventType === 'mouse') {\n this.addDocumentMouseListeners()\n }\n }\n\n /**\n * Handler do fim do gesto (pointerup, touchend, mouseup).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} evt - Evento do browser\n * @returns {void}\n */\n private handleEnd(evt: PointerEvent | TouchEvent | MouseEvent): void {\n if (!this.isActive || this.startPoint === null) {\n return\n }\n\n const endPoint = this.getCoordinates(evt)\n const deltaX = endPoint.x - this.startPoint.x\n const deltaY = endPoint.y - this.startPoint.y\n\n // Threshold para evitar detecção acidental\n const absDeltaX = Math.abs(deltaX)\n const absDeltaY = Math.abs(deltaY)\n\n // Só dispara swipe se movimento for maior que threshold\n if (absDeltaX < this.threshold && absDeltaY < this.threshold) {\n this.cleanup()\n return\n }\n\n // Determina direção do swipe baseado no maior delta\n if (absDeltaX > absDeltaY) {\n // Swipe horizontal\n if (deltaX < 0) {\n this.trigger('SWIPE_LEFT')\n } else {\n this.trigger('SWIPE_RIGHT')\n }\n } else {\n // Swipe vertical\n if (deltaY < 0) {\n this.trigger('SWIPE_UP')\n } else {\n this.trigger('SWIPE_DOWN')\n }\n }\n\n this.cleanup()\n }\n\n /**\n * Handler de cancelamento do gesto (pointercancel, touchcancel, mouseleave).\n * @private\n * @param {PointerEvent|TouchEvent|MouseEvent} _evt - Evento do browser (não utilizado)\n * @returns {void}\n */\n private handleCancel(_evt: PointerEvent | TouchEvent | MouseEvent): void {\n this.cleanup()\n }\n\n /**\n * Limpa o estado do gesto e remove listeners temporários.\n * @private\n * @returns {void}\n */\n private cleanup(): void {\n this.isActive = false\n this.startPoint = null\n\n // Para Pointer Events, libera a captura\n if (this.eventType === 'pointer' && this.pointerId !== null) {\n try {\n this.element.releasePointerCapture(this.pointerId)\n } catch {\n // Ignora erro se pointer já foi liberado\n }\n this.pointerId = null\n }\n\n if (this.eventType === 'mouse') {\n this.removeDocumentMouseListeners()\n }\n }\n\n /**\n * Registra um callback para um evento de swipe.\n * @param evt - Nome do evento ('SWIPE_UP', 'SWIPE_DOWN', 'SWIPE_LEFT', 'SWIPE_RIGHT')\n * @param cb - Função callback a ser executada quando o evento ocorrer\n */\n public on(evt: SwipeEvent, cb: SwipeCallback): void {\n this.evtMap[evt].push(cb)\n }\n\n /**\n * Remove um callback de um evento de swipe.\n * @param evt - Nome do evento\n * @param cb - Função callback a ser removida\n */\n public off(evt: SwipeEvent, cb: SwipeCallback): void {\n this.evtMap[evt] = this.evtMap[evt].filter((callback) => callback !== cb)\n }\n\n /**\n * Dispara um evento de swipe, executando todos os callbacks registrados.\n * @private\n * @param {SwipeEvent} evt - Nome do evento a ser disparado\n * @param {unknown} [data] - Dados opcionais a serem passados aos callbacks\n * @returns {void}\n */\n private trigger(evt: SwipeEvent, data?: unknown): void {\n this.evtMap[evt].forEach((handler) => handler(data))\n }\n\n /**\n * Destrói a instância, removendo todos os event listeners.\n * Deve ser chamado quando o elemento for removido do DOM.\n * Remove o CSS touch-action aplicado no construtor.\n * @public\n * @returns {void}\n * @example\n * ```typescript\n * disconnectedCallback() {\n * this.swipe?.destroy();\n * }\n * ```\n */\n public destroy(): void {\n this.cleanup()\n this.detachListeners()\n this.element.style.touchAction = ''\n this.evtMap = {\n SWIPE_UP: [],\n SWIPE_DOWN: [],\n SWIPE_LEFT: [],\n SWIPE_RIGHT: [],\n }\n }\n}\n\nexport default UniversalSwipe\n","@import \"~@govbr-ds/core/src/components/wizard/mixins\";\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n:host {\n @include wizard-tokens;\n @include wizard-default;\n @include wizard-progress;\n @include wizard-progress-collapsed;\n @include wizard-vertical;\n @include wizard-form;\n @include wizard-dark-mode;\n\n br-step-item::part(item-container)::after {\n z-index: 0;\n }\n\n br-step-item::part(item-content) {\n background-color: transparent;\n }\n\n br-step-item[active] {\n --step-label-font-weight: var(--font-weight-semi-bold);\n --step-label-color: var(--active);\n }\n\n br-step-item::part(label) {\n display: block;\n font-size: var(--font-size-scale-down-02);\n line-height: 1em;\n text-align: center;\n }\n\n .wizard-progress {\n padding-top: 0;\n }\n\n @include media-breakpoint-down(sm) {\n .wizard-progress {\n max-height: none;\n height: auto;\n }\n }\n}\n\n:host([collapsed]) {\n br-step-item::part(label) {\n display: none;\n }\n\n @include media-breakpoint-down(sm) {\n br-step-item::part(label) {\n display: none;\n }\n\n br-step-item::part(item-container) {\n &::after {\n bottom: 50%;\n left: 50%;\n transform: translateY(50%);\n }\n }\n\n .wizard-progress {\n max-height: 100px;\n min-height: 100px;\n\n &::after {\n margin-top: var(--spacing-scale-4xh);\n }\n }\n }\n}\n\n:host([vertical]) {\n .wizard-progress {\n flex: 1;\n float: none;\n grid-template-columns: 1fr;\n height: auto;\n max-width: 260px;\n overflow: hidden auto;\n }\n\n @include media-breakpoint-down(sm) {\n .wizard-progress {\n max-height: 100%;\n max-width: 110px;\n\n &::after {\n height: 1em;\n left: unset;\n margin-top: -0.5em;\n right: 2px;\n top: 50%;\n transform: rotate(-90deg);\n width: 1em;\n }\n }\n\n .wizard-form {\n max-width: calc(100% - 110px);\n min-width: calc(100% - 110px);\n }\n\n br-step-item::part(item-container) {\n &::before {\n left: calc(100% - 32px);\n line-height: 26px;\n margin-top: calc(var(--spacing-scale-2x) * -1);\n position: absolute;\n text-align: center;\n top: 50%;\n }\n\n &::after {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n width: 1px;\n }\n }\n\n &[collapsed] {\n br-step-item::part(label) {\n visibility: hidden;\n width: 0;\n height: 0;\n overflow: hidden;\n }\n\n .wizard-progress {\n max-width: 60px;\n padding-bottom: 0;\n padding-top: 0;\n }\n }\n }\n}\n\n:host(.dark-mode) {\n @include dark-mode;\n @include button-dark-mode;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\nimport { UniversalSwipe } from '../../utils/swipe'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/wizard?tab=designer).\n *\n * @slot default - Slot para os painéis de etapa (br-wizard-panel) do wizard.\n */\n@Component({\n tag: 'br-wizard',\n styleUrl: 'wizard.scss',\n shadow: true,\n})\nexport class Wizard {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el!: HTMLBrWizardElement\n\n /**\n * Internals API para suporte a formulários nativos.\n */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Índice da etapa inicial do wizard.\n * Define qual etapa será exibida ao carregar o componente.\n * A numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\n */\n @Prop({ reflect: true }) initialStep: number = 1\n\n /**\n * Orientação visual do wizard.\n * Define se os indicadores de progresso serão exibidos horizontalmente ou verticalmente.\n */\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\n /**\n * Tipo de progressão entre etapas.\n * - `linear`: O usuário deve completar cada etapa sequencialmente. Não é possível pular etapas futuras.\n * - `nonlinear`: O usuário pode navegar livremente entre qualquer etapa.\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n /**\n * ID customizado para o componente.\n * Se não fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) customId: string = Helpers.generateUniqueId()\n\n /**\n * Etapa atual sendo exibida.\n * Gerenciado internamente pelo componente.\n */\n @State() currentStep: number = 1\n\n /** Estado mobile para detecção responsiva */\n @State() isMobile: boolean = false\n\n /**\n * Estado collapsed para recolher/expandir barra de progresso (mobile)\n */\n @State() collapsed: boolean = false\n\n /**\n * Lista de painéis filhos (br-wizard-panel).\n * Descobertos automaticamente via slot.\n */\n @State() panels: HTMLElement[] = []\n\n /**\n * Mensagem de status para leitores de tela (aria-live)\n */\n @State() ariaLiveMessage: string = ''\n\n // ========================================\n // EVENTOS\n // ========================================\n\n /**\n * Evento emitido APÓS mudar de etapa com sucesso.\n *\n * Este evento é disparado independente da origem da navegação:\n * - Botões \"Avançar\" ou \"Voltar\"\n * - Click direto em um step do indicador de progresso\n * - Chamadas programáticas via métodos públicos (goToStep, nextStep, etc)\n */\n @Event() brWizardStepChange: EventEmitter<number>\n\n /**\n * Evento emitido ANTES de mudar de etapa (permite validação e cancelamento).\n *\n * Comportamento:\n * - Disparado apenas ao AVANÇAR (targetStep > currentStep)\n * - Não é disparado ao VOLTAR (targetStep < currentStep)\n * - Funciona tanto para cliques nos botões quanto para cliques diretos nos steps\n * - Pode ser cancelado com `event.preventDefault()` para bloquear a navegação\n */\n @Event({ cancelable: true }) brWizardBeforeStepChange: EventEmitter<number>\n\n /**\n * Evento emitido ao concluir o wizard (última etapa).\n */\n @Event() brWizardComplete: EventEmitter<void>\n\n /**\n * Evento emitido ao cancelar o wizard.\n */\n @Event() brWizardCancel: EventEmitter<void>\n\n /**\n * Evento emitido quando uma ação é bloqueada (validação falha, progressão linear impedida).\n * Emite uma string indicando o motivo: 'linear-progression' ou 'validation-failed'.\n * Use getCurrentStepIndex() para obter o contexto da etapa atual.\n */\n @Event() brWizardNavigationBlocked: EventEmitter<string>\n\n // ========================================\n // PROPRIEDADES PRIVADAS\n // ========================================\n\n /**\n * Referência ao componente br-step.\n */\n private stepRef: HTMLBrStepElement | null = null\n\n /**\n * Flag para evitar loop quando sincronizamos programaticamente com br-step.\n */\n private isSyncingWithStep: boolean = false\n\n /**\n * Instância do Swipe para gestos mobile na barra de progresso.\n */\n private progressBarSwipe: UniversalSwipe | null = null\n\n /**\n * Referência ao elemento DOM da barra de progresso.\n */\n private progressBarRef: HTMLElement | null = null\n\n /**\n * Referência ao elemento DOM do formulário/painel ativo.\n */\n private formRef: HTMLElement | null = null\n\n /**\n * Timer para limpar mensagens aria-live.\n */\n private ariaLiveTimeout: number | null = null\n\n // ========================================\n // CONSTANTES\n // ========================================\n\n /**\n * Tempo de espera para limpar mensagens aria-live (em ms).\n */\n private readonly ARIA_LIVE_CLEANUP_DELAY = 5000\n\n /**\n * Seletor de elementos focáveis dentro dos painéis.\n */\n private readonly FOCUSABLE_SELECTOR =\n 'br-button, button, [href], br-item, br-input, input, br-select, select, br-textarea, textarea, [tabindex]:not([tabindex=\"-1\"])'\n\n // ========================================\n // WATCHERS\n // ========================================\n\n /**\n * Observa mudanças no tipo de progressão.\n * Atualiza a navegação dos painéis quando muda entre linear/nonlinear.\n */\n @Watch('progressionType')\n handleProgressionTypeChange() {\n this.updatePanels()\n }\n\n /**\n * Observa mudanças na etapa inicial.\n * Reinicializa o wizard quando a prop initialStep é alterada externamente.\n */\n @Watch('initialStep')\n async handleInitialStepChange() {\n this.setInitialStep()\n await this.syncWithBrStep()\n this.updatePanels()\n }\n\n /**\n * Observa mudanças na etapa atual (fonte única de verdade).\n * Sincroniza com br-step, atualiza painéis, anuncia mudança e move foco.\n * @param newStep - Nova etapa\n * @param oldStep - Etapa anterior\n */\n @Watch('currentStep')\n async handleCurrentStepChange(newStep: number, oldStep: number) {\n if (newStep !== oldStep) {\n await this.syncWithBrStep()\n this.updatePanels()\n\n this.announceStepChange(newStep, oldStep)\n\n this.setFocusOnActivePanel()\n }\n }\n\n // ========================================\n // LISTENERS\n // ========================================\n\n /**\n * Detecta quando o slot muda (painéis adicionados/removidos dinamicamente).\n * Redescobre os painéis e ressincroniza o estado.\n * @param event - Evento slotchange\n */\n @Listen('slotchange')\n async handleSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement\n this.discoverPanelsFromSlot(slot)\n await this.syncWithBrStep()\n this.updatePanels()\n }\n\n /**\n * Detecta quando o br-step muda de etapa ativa.\n * Valida e sincroniza a navegação com o componente interno br-step.\n * @param event - Evento customizado do br-step\n */\n @Listen('brStepChange')\n async handleStepChange(event: CustomEvent<{ activeStep: number }>) {\n if (this.isSyncingWithStep) {\n return\n }\n\n const requestedStep = event.detail.activeStep + 1\n const success = await this.navigateToStep(requestedStep)\n\n if (!success) {\n event.stopPropagation()\n await this.syncWithBrStep()\n }\n }\n\n // ========================================\n // LIFECYCLE HOOKS\n // ========================================\n\n /**\n * Lifecycle: inicializa painéis antes da renderização.\n */\n componentWillLoad() {\n this.panels = Array.from(this.el.querySelectorAll('br-wizard-panel'))\n this.setInitialStep()\n }\n\n /**\n * Lifecycle: carrega painéis e configura estado inicial.\n * Sincroniza com br-step, atualiza painéis e configura detecção mobile.\n */\n async componentDidLoad() {\n const slot = this.el.shadowRoot?.querySelector('slot')\n if (slot !== null && typeof slot !== 'undefined') {\n const assignedElements = slot.assignedElements()\n const slotPanels = assignedElements.filter(\n (el) => el.tagName.toLowerCase() === 'br-wizard-panel'\n ) as HTMLElement[]\n\n if (slotPanels.length !== this.panels.length) {\n this.panels = slotPanels\n }\n }\n\n await this.syncWithBrStep()\n this.updatePanels()\n this.setupMobileDetection()\n\n if (this.isMobile) {\n this.collapsed = true\n }\n }\n\n /**\n * Lifecycle: limpa listeners quando componente é removido.\n */\n disconnectedCallback() {\n this.cleanupMobileDetection()\n this.cleanupSwipeListeners()\n this.clearAriaLiveTimeout()\n }\n\n // ========================================\n // MÉTODOS PÚBLICOS\n // ========================================\n\n /**\n * Avança para a próxima etapa.\n * Executa validação via evento `brWizardBeforeStepChange` antes de navegar.\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async nextStep(): Promise<boolean> {\n return await this.navigateToStep(this.currentStep + 1)\n }\n\n /**\n * Volta para a etapa anterior.\n * Não executa validação ao retornar.\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async previousStep(): Promise<boolean> {\n return await this.navigateToStep(this.currentStep - 1)\n }\n\n /**\n * Navega para uma etapa específica.\n * Executa validação se estiver avançando (etapa alvo > etapa atual).\n * @param stepNumber - Número da etapa de destino (numeração começa em 1)\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n @Method()\n async goToStep(stepNumber: number): Promise<boolean> {\n return await this.navigateToStep(stepNumber)\n }\n\n /**\n * Retorna à primeira etapa do wizard.\n * Não executa validação (útil para reiniciar o fluxo).\n * @returns Promise<void>\n */\n @Method()\n async reset(): Promise<void> {\n await this.navigateToStep(1, true)\n }\n\n /**\n * Retorna o elemento HTML do painel ativo no momento.\n * @returns Promise<HTMLElement | null>\n */\n @Method()\n async getCurrentStep(): Promise<HTMLElement | null> {\n return this.panels[this.currentStep - 1] || null\n }\n\n /**\n * Retorna todos os painéis do wizard.\n * @returns Promise<HTMLElement[]>\n */\n @Method()\n async getAllSteps(): Promise<HTMLElement[]> {\n return [...this.panels]\n }\n\n /**\n * Retorna um painel específico pelo índice.\n * @param stepNumber - Número da etapa (numeração começa em 1)\n * @returns Promise<HTMLElement | null>\n */\n @Method()\n async getStepByIndex(stepNumber: number): Promise<HTMLElement | null> {\n return this.panels[stepNumber - 1] || null\n }\n\n /**\n * Retorna o índice (número) da etapa atual.\n * A numeração começa em 1 (primeira etapa = 1, segunda = 2, etc).\n * @returns Promise<number>\n */\n @Method()\n async getCurrentStepIndex(): Promise<number> {\n return this.currentStep\n }\n\n /**\n * Retorna o número total de etapas do wizard.\n * @returns Promise<number>\n */\n @Method()\n async getTotalSteps(): Promise<number> {\n return this.panels.length\n }\n\n // ========================================\n // NAVEGAÇÃO E VALIDAÇÃO\n // ========================================\n\n /**\n * Método privado central que gerencia toda a navegação com validação.\n *\n * Comportamento unificado para linear e nonlinear:\n * - Linear: Valida ao avançar, não permite pular steps\n * - Nonlinear: Valida ao avançar, permite pular steps livremente\n *\n * @param targetStep - Número da etapa de destino (numeração começa em 1)\n * @param skipValidation - Se true, pula validação (útil para reset/programático)\n * @returns Promise<boolean> - true se navegou com sucesso, false se bloqueado\n */\n private async navigateToStep(targetStep: number, skipValidation: boolean = false): Promise<boolean> {\n /**\n * VALIDAÇÕES BÁSICAS\n * 1. Verifica se targetStep está dentro dos limites válidos\n * 2. Se já estamos na etapa alvo, retorna sucesso imediatamente\n */\n if (targetStep < 1 || targetStep > this.panels.length) {\n return false\n }\n\n if (targetStep === this.currentStep) {\n return true\n }\n\n /**\n * MODO LINEAR: RESTRIÇÕES\n * No modo linear, não é permitido pular para etapas futuras não visitadas.\n * É possível voltar, mas não avançar além da próxima etapa sequencial.\n */\n if (this.progressionType === 'linear') {\n if (targetStep > this.currentStep + 1) {\n const message = `Não é possível pular etapas. Complete a etapa ${this.currentStep + 1} antes de avançar.`\n\n this.announceToScreenReader(message)\n\n this.brWizardNavigationBlocked.emit('linear-progression')\n\n return false\n }\n }\n\n /**\n * VALIDAÇÃO CUSTOMIZADA\n * Emite evento brWizardBeforeStepChange APENAS se:\n * 1. Não estamos pulando validação (skipValidation=false)\n * 2. Estamos AVANÇANDO (targetStep > currentStep)\n *\n * Observações:\n * - Voltar não precisa validar\n * - Validação se aplica a ambos os modos (linear e nonlinear)\n */\n const shouldValidate = !skipValidation && targetStep > this.currentStep\n\n if (shouldValidate) {\n const eventResult = this.brWizardBeforeStepChange.emit(targetStep)\n\n /**\n * Se preventDefault() foi chamado no listener do evento,\n * bloqueia a navegação e retorna false\n */\n if (eventResult.defaultPrevented) {\n const message = 'Não é possível avançar. Verifique os campos obrigatórios da etapa atual.'\n\n this.announceToScreenReader(message)\n\n this.brWizardNavigationBlocked.emit('validation-failed')\n\n return false\n }\n }\n\n /**\n * EXECUTA NAVEGAÇÃO\n * Atualiza o estado interno e emite evento de confirmação\n */\n this.currentStep = targetStep\n\n this.brWizardStepChange.emit(this.currentStep)\n\n return true\n }\n\n // ========================================\n // SINCRONIZAÇÃO COM BR-STEP\n // ========================================\n\n /**\n * Sincroniza estado do wizard com o br-step.\n *\n * O br-step já gerencia completamente os atributos 'active' via componentShouldUpdate\n * e requestAnimationFrame, então apenas chamamos os métodos de navegação dele.\n */\n private async syncWithBrStep() {\n if (this.stepRef === null) return\n\n if (typeof this.stepRef.GetActiveStep !== 'function') {\n return\n }\n\n this.isSyncingWithStep = true\n\n try {\n const targetStepIndex = this.currentStep - 1\n const currentActiveStep = await this.stepRef.GetActiveStep()\n\n if (currentActiveStep !== targetStepIndex) {\n const diff = targetStepIndex - currentActiveStep\n\n if (diff > 0) {\n for (let i = 0; i < diff; i++) {\n await this.stepRef.ProceedToNextStep()\n }\n } else {\n for (let i = 0; i < Math.abs(diff); i++) {\n await this.stepRef.BackToPreviousStep()\n }\n }\n }\n } finally {\n this.isSyncingWithStep = false\n }\n }\n\n // ========================================\n // GERENCIAMENTO DE PAINÉIS\n // ========================================\n\n /**\n * Descobre painéis filhos usando assigned elements do slot.\n * @param slot - Elemento slot do shadow DOM\n */\n private discoverPanelsFromSlot(slot: HTMLSlotElement) {\n const assignedElements = slot.assignedElements()\n this.panels = assignedElements.filter((el) => el.tagName.toLowerCase() === 'br-wizard-panel') as HTMLElement[]\n }\n\n /**\n * Atualiza estados de todos os painéis.\n * Define o índice e o estado ativo de cada painel.\n */\n private async updatePanels() {\n for (let idx = 0; idx < this.panels.length; idx++) {\n const panel = this.panels[idx] as HTMLBrWizardPanelElement\n const stepNumber = idx + 1\n const isActive = stepNumber === this.currentStep\n\n await panel.setIndex(stepNumber)\n await panel.setActive(isActive)\n }\n }\n\n /**\n * Define etapa inicial baseada na prop initialStep.\n * Garante que o valor esteja dentro dos limites válidos.\n */\n private setInitialStep() {\n this.currentStep = Math.max(1, Math.min(this.initialStep, this.panels.length))\n }\n\n // ========================================\n // ACESSIBILIDADE\n // ========================================\n\n /**\n * Anuncia mensagem para leitores de tela via aria-live.\n * Limpa automaticamente após 5 segundos para evitar poluição.\n * @param message - Mensagem a ser anunciada\n */\n private announceToScreenReader(message: string) {\n this.ariaLiveMessage = ''\n\n requestAnimationFrame(() => {\n this.ariaLiveMessage = message\n\n this.clearAriaLiveTimeout()\n this.ariaLiveTimeout = window.setTimeout(() => {\n this.ariaLiveMessage = ''\n }, this.ARIA_LIVE_CLEANUP_DELAY)\n })\n }\n\n /**\n * Anuncia mudança de etapa para leitores de tela.\n * Informa direção da navegação e progresso atual.\n * @param newStep - Nova etapa\n * @param oldStep - Etapa anterior\n */\n private announceStepChange(newStep: number, oldStep: number) {\n const totalSteps = this.panels.length\n\n let direction = ''\n if (newStep > oldStep) {\n direction = 'Avançando para'\n } else if (newStep < oldStep) {\n direction = 'Retornando para'\n }\n\n const message = `${direction}, etapa ${newStep} de ${totalSteps}`\n this.announceToScreenReader(message)\n }\n\n /**\n * Limpa o timeout de mensagens aria-live.\n */\n private clearAriaLiveTimeout() {\n if (this.ariaLiveTimeout !== null) {\n clearTimeout(this.ariaLiveTimeout)\n this.ariaLiveTimeout = null\n }\n }\n\n /**\n * Move foco para o primeiro elemento do painel ativo.\n *\n */\n private setFocusOnActivePanel() {\n requestAnimationFrame(() => {\n const activePanel = this.panels[this.currentStep - 1] as HTMLBrWizardPanelElement | undefined\n if (typeof activePanel === 'undefined') return\n\n const panelElement = activePanel.shadowRoot?.querySelector('.wizard-panel-content')\n if (typeof panelElement === 'undefined' || panelElement === null) return\n\n const focusableElements = panelElement.querySelectorAll(this.FOCUSABLE_SELECTOR)\n\n if (focusableElements.length > 0) {\n ;(focusableElements[0] as HTMLElement).focus()\n }\n })\n }\n\n // ========================================\n // DETECÇÃO MOBILE E RESPONSIVIDADE\n // ========================================\n\n /**\n * Configura detecção de viewport mobile.\n * Ativa listeners de resize e configura gestos swipe.\n */\n private setupMobileDetection() {\n this.isMobile = window.innerWidth <= 992\n window.addEventListener('resize', this.handleResize)\n\n if (this.isMobile) {\n this.setupSwipeListeners()\n }\n }\n\n /**\n * Remove listeners de detecção mobile.\n */\n private cleanupMobileDetection() {\n window.removeEventListener('resize', this.handleResize)\n }\n\n /**\n * Handler de resize da janela.\n * Alterna entre modos mobile/desktop e configura/limpa gestos swipe.\n */\n private handleResize = () => {\n const wasMobile = this.isMobile\n this.isMobile = window.innerWidth <= 992\n\n if (this.isMobile && !wasMobile) {\n this.collapsed = true\n this.setupSwipeListeners()\n } else if (!this.isMobile && wasMobile) {\n this.cleanupSwipeListeners()\n this.collapsed = false\n }\n }\n\n // ========================================\n // GESTOS SWIPE (MOBILE)\n // ========================================\n\n /**\n * Configura gestos swipe para mobile.\n */\n private setupSwipeListeners() {\n if (!this.isMobile) return\n\n requestAnimationFrame(() => {\n this.progressBarRef = this.el.shadowRoot?.querySelector('.wizard-progress') || null\n this.formRef = this.el.shadowRoot?.querySelector('.wizard-form') || null\n\n if (this.progressBarRef !== null) {\n const direction = this.orientation === 'horizontal' ? 'vertical' : 'horizontal'\n this.progressBarSwipe = new UniversalSwipe(this.progressBarRef, { direction })\n\n if (this.orientation === 'horizontal') {\n this.progressBarSwipe.on('SWIPE_DOWN', () => this.expandSteps())\n this.progressBarSwipe.on('SWIPE_UP', () => this.collapseSteps())\n } else {\n this.progressBarSwipe.on('SWIPE_RIGHT', () => this.expandSteps())\n this.progressBarSwipe.on('SWIPE_LEFT', () => this.collapseSteps())\n }\n }\n\n if (this.formRef !== null) {\n this.formRef.addEventListener('touchstart', this.handleFormTouchStart)\n }\n })\n }\n\n /**\n * Remove listeners de gestos swipe.\n */\n private cleanupSwipeListeners() {\n if (this.progressBarSwipe !== null) {\n this.progressBarSwipe.off('SWIPE_DOWN', this.expandSteps)\n this.progressBarSwipe.off('SWIPE_UP', this.collapseSteps)\n this.progressBarSwipe.off('SWIPE_RIGHT', this.expandSteps)\n this.progressBarSwipe.off('SWIPE_LEFT', this.collapseSteps)\n\n this.progressBarSwipe.destroy()\n this.progressBarSwipe = null\n }\n\n if (this.formRef !== null) {\n this.formRef.removeEventListener('touchstart', this.handleFormTouchStart)\n }\n }\n\n /**\n * Handler de toque no formulário.\n * Recolhe automaticamente a barra de progresso.\n */\n private handleFormTouchStart = () => {\n this.collapseSteps()\n }\n\n /**\n * Recolhe a barra de progresso (mobile).\n * Adiciona o atributo 'collapsed' ao host.\n */\n private collapseSteps() {\n if (this.isMobile) {\n this.collapsed = true\n }\n }\n\n /**\n * Expande a barra de progresso (mobile).\n * Remove o atributo 'collapsed' do host.\n */\n private expandSteps() {\n if (this.isMobile) {\n this.collapsed = false\n }\n }\n\n // ========================================\n // HANDLERS DE EVENTOS DE BOTÕES\n // ========================================\n\n /**\n * Handler do botão \"Avançar\" ou \"Concluir\".\n * Se for a última etapa, valida e emite evento de conclusão.\n * Caso contrário, avança para a próxima etapa.\n */\n private handleNext = async () => {\n if (this.currentStep === this.panels.length) {\n // Última etapa: validar antes de completar\n const eventResult = this.brWizardBeforeStepChange.emit(this.currentStep)\n\n // Se preventDefault() foi chamado, bloqueia conclusão\n if (!eventResult.defaultPrevented) {\n this.brWizardComplete.emit()\n }\n } else {\n await this.nextStep()\n }\n }\n\n /**\n * Handler do botão \"Voltar\".\n * Navega para a etapa anterior.\n */\n private handlePrevious = async () => {\n await this.previousStep()\n }\n\n /**\n * Handler do botão \"Cancelar\".\n * Emite evento de cancelamento do wizard.\n */\n private handleCancel = () => {\n this.brWizardCancel.emit()\n }\n\n // ========================================\n // MÉTODOS DE RENDERIZAÇÃO\n // ========================================\n\n /**\n * Retorna classes CSS do container principal.\n * @returns CssClassMap - Mapa de classes CSS\n */\n private getHostClassMap(): CssClassMap {\n return {\n 'br-wizard': true,\n }\n }\n\n /**\n * Renderiza indicadores de progresso usando br-step.\n * @returns JSX.Element | null - Elemento de progresso ou null se não houver painéis\n */\n private renderProgress() {\n if (this.panels.length === 0) {\n return null\n }\n\n return (\n <div class=\"wizard-progress\">\n <br-step\n ref={(el) => (this.stepRef = el)}\n initial-step={String(this.currentStep - 1)}\n layout={this.orientation}\n label-position={this.orientation === 'vertical' ? 'bottom' : 'bottom'}\n progression-type={this.progressionType}\n mode=\"step\"\n >\n {this.panels.map((panel) => {\n const label = panel.getAttribute('label') || ''\n return <br-step-item label={label}></br-step-item>\n })}\n </br-step>\n </div>\n )\n }\n\n /**\n * Renderiza conteúdo dos painéis via slot.\n * @returns JSX.Element - Container com slot dos painéis\n */\n private renderPanelContent() {\n return (\n <div class=\"wizard-panel-content\">\n <slot />\n </div>\n )\n }\n\n /**\n * Renderiza botões de navegação do wizard.\n * Adapta-se ao contexto: primeira etapa, última etapa, mobile/desktop.\n * @returns JSX.Element - Container com botões de navegação\n */\n private renderPanelButtons() {\n const isFirst = this.currentStep === 1\n const isLast = this.currentStep === this.panels.length\n\n const buttonShape = this.isMobile ? 'block' : undefined\n\n return (\n <div class=\"wizard-panel-btn\">\n <br-button\n class=\"wizard-btn-canc\"\n type=\"button\"\n shape={buttonShape}\n emphasis=\"tertiary\"\n onClick={this.handleCancel}\n >\n Cancelar\n </br-button>\n\n <br-button\n class={isLast ? 'wizard-btn' : 'wizard-btn-next'}\n emphasis=\"primary\"\n type=\"button\"\n shape={buttonShape}\n onClick={this.handleNext}\n >\n {isLast ? 'Concluir' : 'Avançar'}\n </br-button>\n\n {!isFirst && (\n <br-button\n class=\"wizard-btn-prev\"\n emphasis=\"secondary\"\n type=\"button\"\n shape={buttonShape}\n onClick={this.handlePrevious}\n >\n Voltar\n </br-button>\n )}\n </div>\n )\n }\n\n /**\n * Renderiza região de anúncios para leitores de tela.\n * Usa aria-live para comunicar mudanças de estado de forma acessível.\n * @returns JSX.Element - Elemento sr-only com aria-live\n */\n private renderAriaLiveRegion() {\n return (\n <div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {this.ariaLiveMessage}\n </div>\n )\n }\n\n /**\n * Método de renderização principal do componente.\n * Monta a estrutura completa do wizard com acessibilidade integrada.\n * @returns JSX.Element - Estrutura completa do wizard\n */\n render() {\n const hostClass = this.getHostClassMap()\n const verticalAttr = this.orientation === 'vertical' ? { vertical: '' } : {}\n const collapsedAttr = this.collapsed ? { collapsed: '' } : {}\n const activePanelAttr = { active: '' }\n\n // Atributos ARIA para o painel ativo\n const totalSteps = this.panels.length\n const currentPanel = this.panels[this.currentStep - 1]\n const stepLabel = currentPanel?.getAttribute('label') || `Etapa ${this.currentStep}`\n\n return (\n <Host class={hostClass} {...verticalAttr} {...collapsedAttr} step={String(this.currentStep)}>\n {this.renderAriaLiveRegion()}\n\n {this.renderProgress()}\n\n <div class=\"wizard-form\" role=\"region\" aria-label={`Wizard: ${stepLabel}`}>\n <div\n class=\"wizard-panel\"\n {...activePanelAttr}\n role=\"group\"\n aria-label={`${stepLabel}, etapa ${this.currentStep} de ${totalSteps}`}\n >\n {this.renderPanelContent()}\n {this.renderPanelButtons()}\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -4,13 +4,11 @@
4
4
  */
5
5
  import { r as t, c as e, h as i, a as r, g as a } from "./p-ByGJPTh2.js";
6
6
 
7
- import { _ as o } from "./p-DIPMDb5E.js";
7
+ import { H as o } from "./p-D4N4PPot.js";
8
8
 
9
- import { H as n } from "./p-D4N4PPot.js";
9
+ const n = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block;width:100%}:host .br-collapse .trigger{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host .br-collapse .trigger:not(:disabled):hover,:host .br-collapse .trigger:not(:disabled):focus-visible{background-image:-webkit-gradient(linear, left top, left bottom, from(rgb(var(--color-rgb), var(--hover))), to(rgb(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgb(var(--color-rgb), var(--hover)), rgb(var(--color-rgb), var(--hover)))}:host .br-collapse .trigger-content{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}:host .br-collapse .content{-webkit-transition:height .3s;transition:height .3s;overflow:hidden}:host .br-collapse br-icon{color:var(--interactive)}:host details{width:100%}:host details summary{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;height:48px;outline:none}:host details summary::-webkit-details-marker{display:none}:host details summary:focus-visible{outline:var(--focus-width) var(--focus-style) var(--focus)}:host .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
10
10
 
11
- const l = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block;width:100%}:host .br-collapse .trigger{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host .br-collapse .trigger:not(:disabled):hover,:host .br-collapse .trigger:not(:disabled):focus-visible{background-image:-webkit-gradient(linear, left top, left bottom, from(rgb(var(--color-rgb), var(--hover))), to(rgb(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgb(var(--color-rgb), var(--hover)), rgb(var(--color-rgb), var(--hover)))}:host .br-collapse .trigger-content{-webkit-box-flex:1 !important;-ms-flex:1 1 auto !important;flex:1 1 auto !important}:host .br-collapse .content{-webkit-transition:height .3s;transition:height .3s;overflow:hidden}:host .br-collapse br-icon{color:var(--interactive)}:host details{width:100%}:host details summary{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;height:48px;outline:none}:host details summary::-webkit-details-marker{display:none}:host details summary:focus-visible{outline:var(--focus-width) var(--focus-style) var(--focus)}:host .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
12
-
13
- const s = class {
11
+ const l = class {
14
12
  constructor(i) {
15
13
  t(this, i);
16
14
  this.brDidOpen = e(this, "brDidOpen", 7);
@@ -23,7 +21,7 @@ const s = class {
23
21
  }
24
22
  /**
25
23
  * Identificador único do componente. Um valor é gerado automaticamente quando não informado.
26
- */ this.customId = n.generateUniqueId("clp");
24
+ */ this.customId = o.generateUniqueId("clp");
27
25
  /**
28
26
  * Controla se o collapse está aberto.
29
27
  */ this.open = false;
@@ -92,29 +90,25 @@ const s = class {
92
90
  }
93
91
  /**
94
92
  * Abre o collapse programaticamente.
95
- */ openCollapse() {
96
- return o(this, void 0, void 0, (function*() {
97
- this.open = true;
98
- this.syncDetailsWithOpen();
99
- // Fecha outros do mesmo grupo antes de emitir evento
100
- this.closeOthersInGroup();
101
- this.brDidOpen.emit({
102
- id: this.customId,
103
- accordionGroup: this.accordionGroup
104
- });
105
- }));
93
+ */ async openCollapse() {
94
+ this.open = true;
95
+ this.syncDetailsWithOpen();
96
+ // Fecha outros do mesmo grupo antes de emitir evento
97
+ this.closeOthersInGroup();
98
+ this.brDidOpen.emit({
99
+ id: this.customId,
100
+ accordionGroup: this.accordionGroup
101
+ });
106
102
  }
107
103
  /**
108
104
  * Fecha o collapse programaticamente.
109
- */ closeCollapse() {
110
- return o(this, void 0, void 0, (function*() {
111
- this.open = false;
112
- this.syncDetailsWithOpen();
113
- this.brDidClose.emit({
114
- id: this.customId,
115
- accordionGroup: this.accordionGroup
116
- });
117
- }));
105
+ */ async closeCollapse() {
106
+ this.open = false;
107
+ this.syncDetailsWithOpen();
108
+ this.brDidClose.emit({
109
+ id: this.customId,
110
+ accordionGroup: this.accordionGroup
111
+ });
118
112
  }
119
113
  /**
120
114
  * Fecha outros collapses abertos no mesmo accordion, buscando apenas no pai imediato.
@@ -187,11 +181,11 @@ const s = class {
187
181
  }
188
182
  };
189
183
 
190
- s.style = l;
184
+ l.style = n;
191
185
 
192
- const c = '*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-list.horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.br-list.horizontal>.header{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%}.br-list.horizontal>.header+.br-divider{border-top:1px solid var(--border-color);width:100%}.br-list.horizontal>.br-item+.br-divider,.br-list.horizontal>.group+.br-divider{border-width:0 1px 0 0;width:1px}.br-list.horizontal>.br-item,.br-list.horizontal>.group{-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-height:56px;width:auto}.br-list.horizontal[data-toggle]>.br-item,.br-list.horizontal.toggle>.br-item{display:block}.br-list{background-color:var(--background)}.br-list .br-item{text-align:left;width:100%}.br-list .br-item .fab{text-align:center}.br-list .br-item>.content{-webkit-box-align:var(--spacing-vertical-top);-ms-flex-align:var(--spacing-vertical-top);align-items:var(--spacing-vertical-top);display:-webkit-box;display:-ms-flexbox;display:flex}.br-list .br-item>.content>.content{-webkit-box-flex:1;-ms-flex:1;flex:1}.br-list .br-item .content:hover button.br-button{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-list .br-item[data-toggle]{cursor:pointer}.br-list .br-item[data-toggle]~.br-list .br-item{padding:var(--spacing-scale-base) var(--spacing-scale-3x)}.br-list .br-list{overflow:hidden;-webkit-transition:all 400ms ease-in-out;transition:all 400ms ease-in-out}.br-list .header{-webkit-box-align:var(--spacing-vertical-center);-ms-flex-align:var(--spacing-vertical-center);align-items:var(--spacing-vertical-center);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-bold);-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--spacing-scale-base) var(--spacing-scale-2x)}.br-divider,hr{--divider-size:var(--surface-width-sm);border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);display:block}.br-divider.content,hr.content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.br-divider.content::after,.br-divider.content::before,hr.content::after,hr.content::before{border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);content:"";-webkit-box-flex:1;-ms-flex:1;flex:1}.br-divider.content::after,hr.content::after{margin-left:var(--spacing-scale-base)}.br-divider.content::before,hr.content::before{margin-right:var(--spacing-scale-base)}.br-divider.vertical,hr.vertical{-ms-flex-item-align:stretch;align-self:stretch;border-right-width:var(--divider-size);border-top-width:0}.br-divider.vertical.content,hr.vertical.content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.br-divider.vertical.content::after,.br-divider.vertical.content::before,hr.vertical.content::after,hr.vertical.content::before{border-right-width:var(--divider-size);border-top-width:0;margin:0}.br-divider.inverted,.br-divider.dark-mode,hr.inverted,hr.dark-mode{--border-color:var(--pure-0)}.br-divider.dashed,hr.dashed{border-style:dashed}.br-divider.sm,hr.sm{--divider-size:var(--surface-width-sm)}.br-divider.md,hr.md{--divider-size:var(--surface-width-md)}hr{--divider-padding:var(--spacing-scale-2x);margin:var(--divider-padding) 0}:host{display:block}:host .br-list.horizontal ::slotted(br-item){-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-height:56px;width:auto}';
186
+ const s = '*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-list.horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.br-list.horizontal>.header{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%}.br-list.horizontal>.header+.br-divider{border-top:1px solid var(--border-color);width:100%}.br-list.horizontal>.br-item+.br-divider,.br-list.horizontal>.group+.br-divider{border-width:0 1px 0 0;width:1px}.br-list.horizontal>.br-item,.br-list.horizontal>.group{-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-height:56px;width:auto}.br-list.horizontal[data-toggle]>.br-item,.br-list.horizontal.toggle>.br-item{display:block}.br-list{background-color:var(--background)}.br-list .br-item{text-align:left;width:100%}.br-list .br-item .fab{text-align:center}.br-list .br-item>.content{-webkit-box-align:var(--spacing-vertical-top);-ms-flex-align:var(--spacing-vertical-top);align-items:var(--spacing-vertical-top);display:-webkit-box;display:-ms-flexbox;display:flex}.br-list .br-item>.content>.content{-webkit-box-flex:1;-ms-flex:1;flex:1}.br-list .br-item .content:hover button.br-button{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-list .br-item[data-toggle]{cursor:pointer}.br-list .br-item[data-toggle]~.br-list .br-item{padding:var(--spacing-scale-base) var(--spacing-scale-3x)}.br-list .br-list{overflow:hidden;-webkit-transition:all 400ms ease-in-out;transition:all 400ms ease-in-out}.br-list .header{-webkit-box-align:var(--spacing-vertical-center);-ms-flex-align:var(--spacing-vertical-center);align-items:var(--spacing-vertical-center);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-bold);-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--spacing-scale-base) var(--spacing-scale-2x)}.br-divider,hr{--divider-size:var(--surface-width-sm);border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);display:block}.br-divider.content,hr.content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.br-divider.content::after,.br-divider.content::before,hr.content::after,hr.content::before{border-color:var(--border-color);border-style:solid;border-width:0;border-top-width:var(--divider-size);content:"";-webkit-box-flex:1;-ms-flex:1;flex:1}.br-divider.content::after,hr.content::after{margin-left:var(--spacing-scale-base)}.br-divider.content::before,hr.content::before{margin-right:var(--spacing-scale-base)}.br-divider.vertical,hr.vertical{-ms-flex-item-align:stretch;align-self:stretch;border-right-width:var(--divider-size);border-top-width:0}.br-divider.vertical.content,hr.vertical.content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.br-divider.vertical.content::after,.br-divider.vertical.content::before,hr.vertical.content::after,hr.vertical.content::before{border-right-width:var(--divider-size);border-top-width:0;margin:0}.br-divider.inverted,.br-divider.dark-mode,hr.inverted,hr.dark-mode{--border-color:var(--pure-0)}.br-divider.dashed,hr.dashed{border-style:dashed}.br-divider.sm,hr.sm{--divider-size:var(--surface-width-sm)}.br-divider.md,hr.md{--divider-size:var(--surface-width-md)}hr{--divider-padding:var(--spacing-scale-2x);margin:var(--divider-padding) 0}:host{display:block}:host .br-list.horizontal ::slotted(br-item){-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-height:56px;width:auto}';
193
187
 
194
- const g = class {
188
+ const c = class {
195
189
  constructor(e) {
196
190
  t(this, e);
197
191
  if (e.$hostElement$["s-ei"]) {
@@ -209,7 +203,7 @@ const g = class {
209
203
  /**
210
204
  * Identificador único.
211
205
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
212
- */ this.customId = `br-list-${d++}`
206
+ */ this.customId = `br-list-${g++}`
213
207
  /**
214
208
  * Indica que o divider para o título da lista estará oculto.
215
209
  */;
@@ -316,10 +310,10 @@ const g = class {
316
310
  }
317
311
  };
318
312
 
319
- let d = 0;
313
+ let g = 0;
320
314
 
321
- g.style = c;
315
+ c.style = s;
322
316
 
323
- export { s as br_collapse, g as br_list };
317
+ export { l as br_collapse, c as br_list };
324
318
  //# sourceMappingURL=br-collapse.br-list.entry.esm.js.map
325
- //# sourceMappingURL=p-2fe329d6.entry.js.map
319
+ //# sourceMappingURL=p-10e25a32.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["registerInstance","createEvent","h","Host","getElement","Helpers","collapseCss","Collapse","constructor","hostRef","this","brDidOpen","brDidClose","$hostElement$","elementInternals","attachInternals","customId","generateUniqueId","open","accordionGroup","iconToShow","iconToHide","iconPosition","handleCollapse","event","details","target","isOpen","closeOthersInGroup","emit","id","handleOpen","detail","closeCollapse","componentWillLoad","syncDetailsWithOpen","disconnectedCallback","_a","el","shadowRoot","querySelector","removeEventListener","openCollapse","parent","parentElement","others","Array","from","querySelectorAll","filter","c","getAttribute","hasAttribute","forEach","renderIcon","render","itemCount","length","key","class","onToggle","role","String","tabindex","name","formAssociated","style","listCss","List","header","isHorizontal","listId","hideHeaderDivider","collapse","accordion","renderHeader","hasSlotContent","slot","Boolean","componentDidLoad","slotItems","item","nextElement","nextElementSibling","classList","contains","divider","borderWidth","width","items","setAttribute","getCssClassMap","horizontal","slotName","directChildren","child","renderDivider","renderListBody"],"sources":["0"],"mappings":";;;;cAIcA,QAAuBC,QAAaC,QAAQC,QAAWC,SAAkB;;cACzEC,SAAe;;AAE7B,MAAMC,IAAc;;AAEpB,MAAMC,IAAW;EACb,WAAAC,CAAYC;IACRT,EAAiBU,MAAMD;IACvBC,KAAKC,YAAYV,EAAYS,MAAM,aAAa;IAChDA,KAAKE,aAAaX,EAAYS,MAAM,cAAc;IAClD,IAAID,EAAQI,cAAc,SAAS;MAC/BH,KAAKI,mBAAmBL,EAAQI,cAAc;AAClD,WACK;MACDH,KAAKI,mBAAmBL,EAAQI,cAAcE;MAC9CN,EAAQI,cAAc,UAAUH,KAAKI;AACzC;;;eAIAJ,KAAKM,WAAWX,EAAQY,iBAAiB;;;eAIzCP,KAAKQ,OAAO;;;eAIZR,KAAKS,iBAAiB;;;eAItBT,KAAKU,aAAa;;;eAIlBV,KAAKW,aAAa;;;eAIlBX,KAAKY,eAAe;;;eAIpBZ,KAAKa,iBAAkBC;MACnB,MAAMC,IAAUD,EAAME;MACtB,MAAMC,IAASF,EAAQP;MACvBR,KAAKQ,OAAOS;MACZ,IAAIjB,KAAKQ,MAAM;;QAEXR,KAAKkB;QACLlB,KAAKC,UAAUkB,KAAK;UAAEC,IAAIpB,KAAKM;UAAUG,gBAAgBT,KAAKS;;AAClE,aACK;QACDT,KAAKE,WAAWiB,KAAK;UAAEC,IAAIpB,KAAKM;UAAUG,gBAAgBT,KAAKS;;AACnE;AAAA;AAER;;;SAIA,UAAAY,CAAWP;IACP,IAAId,KAAKS,kBACLT,KAAKS,mBAAmBK,EAAMQ,OAAOb,kBACrCK,EAAMQ,OAAOF,OAAOpB,KAAKM,UAAU;MACnCN,KAAKuB;AACT;AACJ;;;SAIA,iBAAAC;IACIxB,KAAKyB;AACT;;;SAIA,oBAAAC;IACI,IAAIC;IACJ,MAAMZ,KAAWY,IAAK3B,KAAK4B,GAAGC,gBAAgB,QAAQF,WAAY,SAAS,IAAIA,EAAGG,cAAc;IAChG,IAAIf,MAAY,MAAM;MAClBA,EAAQgB,oBAAoB,UAAU/B,KAAKa;AAC/C;AACJ;;;SAIA,mBAAAY;IACI,IAAIE;IACJ,MAAMZ,KAAWY,IAAK3B,KAAK4B,GAAGC,gBAAgB,QAAQF,WAAY,SAAS,IAAIA,EAAGG,cAAc;IAChG,IAAIf,MAAY,MAAM;MAClBA,EAAQP,OAAOR,KAAKQ;AACxB;AACJ;;;SAIA,kBAAMwB;IACFhC,KAAKQ,OAAO;IACZR,KAAKyB;;QAELzB,KAAKkB;IACLlB,KAAKC,UAAUkB,KAAK;MAAEC,IAAIpB,KAAKM;MAAUG,gBAAgBT,KAAKS;;AAClE;;;SAIA,mBAAMc;IACFvB,KAAKQ,OAAO;IACZR,KAAKyB;IACLzB,KAAKE,WAAWiB,KAAK;MAAEC,IAAIpB,KAAKM;MAAUG,gBAAgBT,KAAKS;;AACnE;;;SAIA,kBAAAS;IACI,IAAIlB,KAAKS,kBAAkB,QAAQT,KAAKS,mBAAmB,IACvD;IACJ,MAAMwB,IAASjC,KAAK4B,GAAGM;IACvB,KAAKD,GACD;IACJ,MAAME,IAASC,MAAMC,KAAKJ,EAAOK,iBAAiB;IAClDH,EACKI,QAAQC,KAAMA,MAAMxC,KAAK4B,MAAMY,EAAEC,aAAa,uBAAuBzC,KAAKS,kBAAkB+B,EAAEE,aAAa,UAC3GC,SAASH;MACV,IAAIb;;YAEJa,EAAEhC,OAAO;MACT,MAAMO,KAAWY,IAAKa,EAAEX,gBAAgB,QAAQF,WAAY,SAAS,IAAIA,EAAGG,cAAc;MAC1F,IAAIf,GACAA,EAAQP,OAAO;AAAK;AAEhC;;;SAIA,UAAAoC;IACI,OAAOpD,EAAE,WAAW;MAAE,aAAaQ,KAAKQ,OAAOR,KAAKW,aAAaX,KAAKU;;AAC1E;;;SAIA,MAAAmC;IACI,MAAMC,IAAY9C,KAAK4B,GAAGU,iBAAiB,WAAWS;IACtD,OAAQvD,EAAEC,GAAM;MAAEuD,KAAK;OAA8CxD,EAAE,WAAW;MAAEwD,KAAK;MAA4CC,OAAO;MAAezC,MAAMR,KAAKQ;MAAM0C,UAAUlD,KAAKa;MAAgBO,IAAIpB,KAAKM;OAAYd,EAAE,WAAW;MAAEwD,KAAK;MAA4CC,OAAO;MAAWE,MAAM;MAAU,iBAAiBC,OAAOpD,KAAKQ;MAAO,iBAAiB,WAAWR,KAAKM;MAAY,mBAAmB,SAASN,KAAKM;MAAY+C,UAAU;MAAK,aAAa;OAAYrD,KAAKY,iBAAiB,UAAUZ,KAAK4C,cAAcpD,EAAE,OAAO;MAAEwD,KAAK;MAA4CC,OAAO;MAAmB7B,IAAI,SAASpB,KAAKM;OAAcd,EAAE,QAAQ;MAAEwD,KAAK;MAA4CM,MAAM;SAAetD,KAAKY,iBAAiB,WAAWZ,KAAK4C,eAAepD,EAAE,OAAO;MAAEwD,KAAK;MAA4CC,OAAO;MAAW7B,IAAI,WAAWpB,KAAKM;MAAY,aAAa;MAAU,mBAAmB,SAASN,KAAKM;OAAcN,KAAKQ,QAAQsC,IAAY,KAAMtD,EAAE,OAAO;MAAEwD,KAAK;MAA4CC,OAAO;OAAqBH,GAAW,KAAKA,MAAc,IAAI,SAAS,SAAS,cAAetD,EAAE,QAAQ;MAAEwD,KAAK;;AAC3pC;EACA,yBAAWO;IAAmB,OAAO;AAAM;EAC3C,MAAI3B;IAAO,OAAOlC,EAAWM;AAAO;;;AAExCH,EAAS2D,QAAQ5D;;AAEjB,MAAM6D,IAAU;;AAEhB,MAAMC,IAAO;EACT,WAAA5D,CAAYC;IACRT,EAAiBU,MAAMD;IACvB,IAAIA,EAAQI,cAAc,SAAS;MAC/BH,KAAKI,mBAAmBL,EAAQI,cAAc;AAClD,WACK;MACDH,KAAKI,mBAAmBL,EAAQI,cAAcE;MAC9CN,EAAQI,cAAc,UAAUH,KAAKI;AACzC;;;eAIAJ,KAAK2D,SAAS;;;eAId3D,KAAK4D,eAAe;;;;eAKpB5D,KAAKM,WAAW,WAAWuD;;;;IAI3B7D,KAAK8D,oBAAoB;;;eAIzB9D,KAAK+D,WAAW;;;;eAKhB/D,KAAKgE,YAAY;;;;eAKjBhE,KAAKiE,eAAe;MAChB,IAAItC;MACJ,MAAMA,IAAK3B,KAAK2D,YAAY,QAAQhC,WAAY,SAAS,IAAIA,EAAGoB,UAAU,KAAK/C,KAAKkE,eAAe,WAAW;QAC1G,OAAQ1E,EAAE,OAAO;UAAEyD,QAAQjD,KAAKkE,eAAe,YAAY,WAAW;UAAMC,MAAMnE,KAAK+D,YAAYK,QAAQpE,KAAKgE,aAAa,YAAY;WAAQxE,EAAE,QAAQ;UAAE8D,MAAM;YAAatD,KAAKkE,eAAe,YAAY1E,EAAE,OAAO;UAAEyD,OAAO;WAAWjD,KAAK2D,UAAU;AAChQ;MACA,OAAO;AAAI;AAEnB;;;SAIA,gBAAAU;IACI,IAAIrE,KAAK4D,cAAc;MACnB,MAAMU,IAAYlC,MAAMC,KAAKrC,KAAK4B,GAAGU,iBAAiB;MACtDgC,EAAU3B,SAAS4B;QACf,MAAMC,IAAcD,EAAKE;QACzB,IAAID,MAAgB,QAAQA,WAAqB,SAAS,IAAIA,EAAYE,UAAUC,SAAS,eAAe;UACxG,MAAMC,IAAUJ;UAChBI,EAAQpB,MAAMqB,cAAc;UAC5BD,EAAQpB,MAAMsB,QAAQ;AAC1B;AAAA;AAER;;QAEA,MAAMC,IAAQ3C,MAAMC,KAAKrC,KAAK4B,GAAGU,iBAAiB;IAClDyC,EAAMpC,SAAS4B;MACXA,EAAKS,aAAa,QAAQ;AAAW;AAE7C;;;;SAKA,cAAAC;IACI,OAAO;MACH,WAAW;MACXC,YAAYlF,KAAK4D;;AAEzB;;;;;SAMA,cAAAM,CAAeiB;IACX,MAAMC,IAAiBhD,MAAMC,KAAKrC,KAAK4B,GAAGU,iBAAiB,UAAU6C,QAAe5C,QAAQ8C,KAAUA,EAAMnD,kBAAkBlC,KAAK4B;IACnI,OAAOwC,QAAQgB,EAAerC;AAClC;;;;SAKA,aAAAuC;IACI,KAAKtF,KAAK2D,UAAU3D,KAAKkE,eAAe,eAAelE,KAAK8D,mBAAmB;MAC3E,OAAOtE,EAAE,OAAO;QAAEyD,OAAO;;AAC7B;IACA,OAAO;AACX;;;;SAKA,cAAAsC;IACI,OAAO,EAACvF,KAAKiE,gBAAgBjE,KAAKsF,iBAAiB9F,EAAE,QAAQ;AACjE;;;;SAKA,MAAAqD;IACI,OAAQrD,EAAEC,GAAM;MAAEuD,KAAK;MAA4CG,MAAM;OAAU3D,EAAE,OAAO;MAAEwD,KAAK;MAA4CC,OAAOjD,KAAKiF;MAAkB7D,IAAIpB,KAAKM;OAAY8D,QAAQpE,KAAKgE,cAAchE,KAAK+D,WAAYvE,EAAE,eAAe;MAAE,mBAAmBQ,KAAKgE,aAAa;OAAQhE,KAAKuF,oBAAsBvF,KAAKuF;AAClV;EACA,yBAAWhC;IAAmB,OAAO;AAAM;EAC3C,MAAI3B;IAAO,OAAOlC,EAAWM;AAAO;;;AAExC,IAAI6D,IAAS;;AACbH,EAAKF,QAAQC;;SAEJ5D,kBAAyB6D","ignoreList":[]}