@govbr-ds/webcomponents 2.0.0-next.62 → 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 (274) 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 +8 -13
  18. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-scrim.cjs.entry.js +40 -51
  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 +8 -13
  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 +40 -51
  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/utils/floating-ui.js +9 -12
  82. package/dist/collection/utils/floating-ui.js.map +1 -1
  83. package/dist/components/br-breadcrumb.js +3 -3
  84. package/dist/components/br-checkbox.js +4 -4
  85. package/dist/components/br-checkgroup.js +1 -1
  86. package/dist/components/br-collapse.js +4 -4
  87. package/dist/components/br-datetime-picker.js +1981 -1995
  88. package/dist/components/br-datetime-picker.js.map +1 -1
  89. package/dist/components/br-dropdown.js +1 -1
  90. package/dist/components/br-footer-category.js +3 -3
  91. package/dist/components/br-footer-item.js +1 -1
  92. package/dist/components/br-header-function.js +1 -1
  93. package/dist/components/br-header-link.js +1 -1
  94. package/dist/components/br-header-list.js +31 -39
  95. package/dist/components/br-header-list.js.map +1 -1
  96. package/dist/components/br-header.js +63 -67
  97. package/dist/components/br-header.js.map +1 -1
  98. package/dist/components/br-item.js +1 -1
  99. package/dist/components/br-list.js +3 -3
  100. package/dist/components/br-message.js +28 -32
  101. package/dist/components/br-message.js.map +1 -1
  102. package/dist/components/br-modal.js +21 -27
  103. package/dist/components/br-modal.js.map +1 -1
  104. package/dist/components/br-pagination.js +7 -7
  105. package/dist/components/br-radio.js +1 -1
  106. package/dist/components/br-scrim.js +49 -61
  107. package/dist/components/br-scrim.js.map +1 -1
  108. package/dist/components/br-select.js +3 -3
  109. package/dist/components/br-skip-link.js +38 -44
  110. package/dist/components/br-skip-link.js.map +1 -1
  111. package/dist/components/br-skiplink-item.js +55 -61
  112. package/dist/components/br-skiplink-item.js.map +1 -1
  113. package/dist/components/br-step-item.js +4 -4
  114. package/dist/components/br-step.js +4 -4
  115. package/dist/components/br-switch.js +12 -16
  116. package/dist/components/br-switch.js.map +1 -1
  117. package/dist/components/br-textarea.js +14 -18
  118. package/dist/components/br-textarea.js.map +1 -1
  119. package/dist/components/br-tooltip.js +1 -1
  120. package/dist/components/br-wizard-panel.js +13 -21
  121. package/dist/components/br-wizard-panel.js.map +1 -1
  122. package/dist/components/br-wizard.js +190 -228
  123. package/dist/components/br-wizard.js.map +1 -1
  124. package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
  125. package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
  126. package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
  127. package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
  128. package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
  129. package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
  130. package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
  131. package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
  132. package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
  133. package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
  134. package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
  135. package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
  136. package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
  137. package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
  138. package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
  139. package/dist/components/p-DdjKNpU3.js.map +1 -0
  140. package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
  141. package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  142. package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
  143. package/dist/custom-elements.json +19459 -0
  144. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  145. package/dist/esm/br-checkbox_3.entry.js +17 -28
  146. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  147. package/dist/esm/br-collapse_2.entry.js +10 -15
  148. package/dist/esm/br-datetime-picker.entry.js +18 -31
  149. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  150. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  151. package/dist/esm/br-dropdown_2.entry.js +73 -56
  152. package/dist/esm/br-header-list.entry.js +6 -13
  153. package/dist/esm/br-header-list.entry.js.map +1 -1
  154. package/dist/esm/br-header.entry.js +2 -5
  155. package/dist/esm/br-header.entry.js.map +1 -1
  156. package/dist/esm/br-item.entry.js +3 -6
  157. package/dist/esm/br-item.entry.js.map +1 -1
  158. package/dist/esm/br-message.entry.js +13 -16
  159. package/dist/esm/br-message.entry.js.map +1 -1
  160. package/dist/esm/br-modal.entry.js +8 -13
  161. package/dist/esm/br-modal.entry.js.map +1 -1
  162. package/dist/esm/br-scrim.entry.js +40 -51
  163. package/dist/esm/br-scrim.entry.js.map +1 -1
  164. package/dist/esm/br-skip-link.entry.js +24 -29
  165. package/dist/esm/br-skip-link.entry.js.map +1 -1
  166. package/dist/esm/br-skiplink-item.entry.js +32 -37
  167. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  168. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  169. package/dist/esm/br-step_2.entry.js +33 -56
  170. package/dist/esm/br-switch.entry.js +3 -6
  171. package/dist/esm/br-switch.entry.js.map +1 -1
  172. package/dist/esm/br-textarea.entry.js +5 -8
  173. package/dist/esm/br-textarea.entry.js.map +1 -1
  174. package/dist/esm/br-tooltip.entry.js +1 -2
  175. package/dist/esm/br-tooltip.entry.js.map +1 -1
  176. package/dist/esm/br-wizard-panel.entry.js +6 -13
  177. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  178. package/dist/esm/br-wizard.entry.js +147 -182
  179. package/dist/esm/br-wizard.entry.js.map +1 -1
  180. package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
  181. package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/webcomponents.js +1 -1
  184. package/dist/hydrate/index.js +450 -591
  185. package/dist/hydrate/index.mjs +450 -591
  186. package/dist/types/components/select/select.d.ts +5 -0
  187. package/dist/types/components.d.ts +10 -0
  188. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  189. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  190. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  191. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  192. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  193. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  194. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  195. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  196. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  197. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  198. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  199. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  200. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  201. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  202. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  203. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  204. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  205. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  206. package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
  207. package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
  208. package/dist/webcomponents/{p-097912c2.entry.js → p-1991135d.entry.js} +30 -36
  209. package/dist/webcomponents/p-1991135d.entry.js.map +1 -0
  210. package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
  211. package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
  212. package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
  213. package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
  214. package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
  215. package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
  216. package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
  217. package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
  218. package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
  219. package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
  220. package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
  221. package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
  222. package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
  223. package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
  224. package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
  225. package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
  226. package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
  227. package/dist/webcomponents/p-83001853.entry.js.map +1 -0
  228. package/dist/webcomponents/{p-463b06a4.entry.js → p-90401ecd.entry.js} +32 -38
  229. package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
  230. package/dist/webcomponents/{p-216dc111.entry.js → p-a2eec4fb.entry.js} +49 -61
  231. package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
  232. package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
  233. package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
  234. package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
  235. package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
  236. package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
  237. package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
  238. package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
  239. package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
  240. package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
  241. package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
  242. package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
  243. package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
  244. package/dist/webcomponents/webcomponents.esm.js +1 -1
  245. package/dist/webcomponents.html-custom-data.json +2573 -0
  246. package/package.json +1 -1
  247. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  248. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  249. package/dist/components/p-7kxAU6Gr.js.map +0 -1
  250. package/dist/components/p-DIPMDb5E.js +0 -55
  251. package/dist/components/p-DIPMDb5E.js.map +0 -1
  252. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  253. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  254. package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
  255. package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
  256. package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
  257. package/dist/webcomponents/p-216dc111.entry.js.map +0 -1
  258. package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
  259. package/dist/webcomponents/p-463b06a4.entry.js.map +0 -1
  260. package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
  261. package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
  262. package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
  263. package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
  264. package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
  265. package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
  266. package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
  267. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  268. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  269. package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
  270. package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
  271. package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
  272. package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
  273. package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
  274. /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
@@ -4,11 +4,9 @@
4
4
  */
5
5
  import { p as t, H as e, d as r, h as a, c as i } from "./p-DSkSDmzD.js";
6
6
 
7
- import { _ as o } from "./p-DIPMDb5E.js";
7
+ const o = '*,*::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-item{background:var(--background);--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-base);--item-padding:var(--item-padding-y) var(--item-padding-x);--focus-offset:calc(var(--focus-width) * -1);border:0;color:var(--color);display:block;font-weight:var(--font-weight);padding:var(--item-padding);text-align:left;width:100%}.br-item .row{margin-left:calc(-1*var(--spacing-scale-base));margin-right:calc(-1*var(--spacing-scale-base))}.br-item .row .col,.br-item .row [class*=col-]{padding-left:var(--spacing-scale-base);padding-right:var(--spacing-scale-base)}.br-item::after{clear:both;content:"";display:block}.br-item[data-toggle]{cursor:pointer}.br-item[data-toggle=selection]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item>.br-checkbox:not(.hidden-label),.br-item>.br-radio:not(.hidden-label){margin-bottom:calc(var(--item-padding-y)*-1);margin-left:calc(var(--item-padding-x)*-1);margin-right:calc(var(--item-padding-x)*-1);margin-top:calc(var(--item-padding-y)*-1)}.br-item>.br-checkbox:not(.hidden-label) input+label,.br-item>.br-radio:not(.hidden-label) input+label{padding-bottom:var(--item-padding-y);padding-top:var(--item-padding-y);top:1px;width:100%}.br-item>.br-checkbox:not(.hidden-label) input+label::before,.br-item>.br-radio:not(.hidden-label) input+label::before{left:var(--item-padding-x);top:calc(var(--item-padding-y) - 1px)}.br-item>.br-checkbox:not(.hidden-label) input+label:empty,.br-item>.br-radio:not(.hidden-label) input+label:empty{left:0;top:1px}.br-item>.br-checkbox:not(.hidden-label) input:hover:not(:disabled)+label::before,.br-item>.br-radio:not(.hidden-label) input:hover:not(:disabled)+label::before{background-image:none}.br-item>.br-checkbox input:not(:indeterminate)+label{min-height:calc(var(--checkbox-size) + var(--item-padding-y)*2)}.br-item>.br-checkbox input:not(:indeterminate)+label:not(:empty){padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-item>.br-checkbox input:not(:indeterminate)+label::after{left:calc(var(--item-padding-x) + 8px);top:calc(var(--item-padding-y) + 4px)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty{min-height:var(--checkbox-size)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty::after{left:8px;top:4px}.br-item .br-radio input+label{min-height:calc(var(--radio-size) + var(--item-padding-y)*2);padding-left:calc(var(--spacing-scale-base) + var(--radio-size) + var(--item-padding-x))}.br-item .br-radio input+label::after{left:calc(var(--item-padding-x) + var(--radio-bullet-position));top:calc(var(--item-padding-y) + var(--radio-bullet-position) - 1px)}.br-item .br-radio input+label:empty{min-height:var(--radio-size)}.br-item .br-radio input+label:empty::after{left:var(--radio-bullet-position);top:var(--radio-bullet-position)}.br-item.highlight{--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)}.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);background-color:var(--selected)}.br-item.active{--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);background-color:var(--active);color:var(--color)}.br-item.inverted,.br-item.dark-mode{--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)}.br-item.inverted.active,.br-item.dark-mode.active{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--active-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);background-color:var(--background-light);color:var(--active)}.br-item[data-toggle]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item[data-toggle] .content i{color:var(--interactive)}.br-item .content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.br-item [class*=fa-]{height:16px;width:14px !important}a.br-item{color:var(--interactive)}a.br-item: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.br-item: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)))}button.br-item{background-color:rgba(0,0,0,0);color:var(--color)}button.br-item:focus{outline:none}button.br-item:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}button.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}button.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--pressed))), to(rgba(var(--color-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--color-rgb), var(--pressed)), rgba(var(--color-rgb), var(--pressed)))}:host{display:block}::slotted(br-checkbox){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}::slotted(br-radio){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}.br-item:focus{cursor:auto;outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:var(--focus-offset)}.no-text-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}';
8
8
 
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)}.br-item{background:var(--background);--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-base);--item-padding:var(--item-padding-y) var(--item-padding-x);--focus-offset:calc(var(--focus-width) * -1);border:0;color:var(--color);display:block;font-weight:var(--font-weight);padding:var(--item-padding);text-align:left;width:100%}.br-item .row{margin-left:calc(-1*var(--spacing-scale-base));margin-right:calc(-1*var(--spacing-scale-base))}.br-item .row .col,.br-item .row [class*=col-]{padding-left:var(--spacing-scale-base);padding-right:var(--spacing-scale-base)}.br-item::after{clear:both;content:"";display:block}.br-item[data-toggle]{cursor:pointer}.br-item[data-toggle=selection]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item>.br-checkbox:not(.hidden-label),.br-item>.br-radio:not(.hidden-label){margin-bottom:calc(var(--item-padding-y)*-1);margin-left:calc(var(--item-padding-x)*-1);margin-right:calc(var(--item-padding-x)*-1);margin-top:calc(var(--item-padding-y)*-1)}.br-item>.br-checkbox:not(.hidden-label) input+label,.br-item>.br-radio:not(.hidden-label) input+label{padding-bottom:var(--item-padding-y);padding-top:var(--item-padding-y);top:1px;width:100%}.br-item>.br-checkbox:not(.hidden-label) input+label::before,.br-item>.br-radio:not(.hidden-label) input+label::before{left:var(--item-padding-x);top:calc(var(--item-padding-y) - 1px)}.br-item>.br-checkbox:not(.hidden-label) input+label:empty,.br-item>.br-radio:not(.hidden-label) input+label:empty{left:0;top:1px}.br-item>.br-checkbox:not(.hidden-label) input:hover:not(:disabled)+label::before,.br-item>.br-radio:not(.hidden-label) input:hover:not(:disabled)+label::before{background-image:none}.br-item>.br-checkbox input:not(:indeterminate)+label{min-height:calc(var(--checkbox-size) + var(--item-padding-y)*2)}.br-item>.br-checkbox input:not(:indeterminate)+label:not(:empty){padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-item>.br-checkbox input:not(:indeterminate)+label::after{left:calc(var(--item-padding-x) + 8px);top:calc(var(--item-padding-y) + 4px)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty{min-height:var(--checkbox-size)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty::after{left:8px;top:4px}.br-item .br-radio input+label{min-height:calc(var(--radio-size) + var(--item-padding-y)*2);padding-left:calc(var(--spacing-scale-base) + var(--radio-size) + var(--item-padding-x))}.br-item .br-radio input+label::after{left:calc(var(--item-padding-x) + var(--radio-bullet-position));top:calc(var(--item-padding-y) + var(--radio-bullet-position) - 1px)}.br-item .br-radio input+label:empty{min-height:var(--radio-size)}.br-item .br-radio input+label:empty::after{left:var(--radio-bullet-position);top:var(--radio-bullet-position)}.br-item.highlight{--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)}.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);background-color:var(--selected)}.br-item.active{--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);background-color:var(--active);color:var(--color)}.br-item.inverted,.br-item.dark-mode{--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)}.br-item.inverted.active,.br-item.dark-mode.active{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--active-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);background-color:var(--background-light);color:var(--active)}.br-item[data-toggle]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item[data-toggle] .content i{color:var(--interactive)}.br-item .content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.br-item [class*=fa-]{height:16px;width:14px !important}a.br-item{color:var(--interactive)}a.br-item: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.br-item: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)))}button.br-item{background-color:rgba(0,0,0,0);color:var(--color)}button.br-item:focus{outline:none}button.br-item:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}button.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}button.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--pressed))), to(rgba(var(--color-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--color-rgb), var(--pressed)), rgba(var(--color-rgb), var(--pressed)))}:host{display:block}::slotted(br-checkbox){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}::slotted(br-radio){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}.br-item:focus{cursor:auto;outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:var(--focus-offset)}.no-text-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}';
10
-
11
- const l = t(class t extends e {
9
+ const n = t(class t extends e {
12
10
  constructor(t) {
13
11
  super();
14
12
  if (t !== false) {
@@ -24,7 +22,7 @@ const l = t(class t extends e {
24
22
  /**
25
23
  * Identificador único.
26
24
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
27
- */ this.customId = `br-item-${s++}`
25
+ */ this.customId = `br-item-${l++}`
28
26
  /**
29
27
  * Indica se o item está no estado ativo.
30
28
  * Se definido como verdadeiro, o item será exibido como ativo.
@@ -275,11 +273,9 @@ const l = t(class t extends e {
275
273
  /**
276
274
  * Define o foco no elemento interno do componente.
277
275
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
278
- */ setFocus() {
279
- return o(this, void 0, void 0, (function*() {
280
- var t;
281
- (t = this.focusableElement) === null || t === void 0 ? void 0 : t.focus();
282
- }));
276
+ */ async setFocus() {
277
+ var t;
278
+ (t = this.focusableElement) === null || t === void 0 ? void 0 : t.focus();
283
279
  }
284
280
  render() {
285
281
  const t = this.getTagType();
@@ -317,7 +313,7 @@ const l = t(class t extends e {
317
313
  return this;
318
314
  }
319
315
  static get style() {
320
- return n;
316
+ return o;
321
317
  }
322
318
  }, [ 321, "br-item", {
323
319
  disabled: [ 516 ],
@@ -338,7 +334,7 @@ const l = t(class t extends e {
338
334
  setFocus: [ 64 ]
339
335
  }, [ [ 4, "checkedChange", "handleRadioChange" ], [ 4, "checkedChange", "handleCheckboxChange" ] ] ]);
340
336
 
341
- let s = 0;
337
+ let l = 0;
342
338
 
343
339
  function defineCustomElement() {
344
340
  if (typeof customElements === "undefined") {
@@ -349,13 +345,13 @@ function defineCustomElement() {
349
345
  switch (t) {
350
346
  case "br-item":
351
347
  if (!customElements.get(t)) {
352
- customElements.define(t, l);
348
+ customElements.define(t, n);
353
349
  }
354
350
  break;
355
351
  }
356
352
  }));
357
353
  }
358
354
 
359
- export { l as I, defineCustomElement as d };
360
- //# sourceMappingURL=p-D0dPo1K5.js.map
361
- //# sourceMappingURL=p-D0dPo1K5.js.map
355
+ export { n as I, defineCustomElement as d };
356
+ //# sourceMappingURL=p-CwtLw60M.js.map
357
+ //# sourceMappingURL=p-CwtLw60M.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["itemCss","Item","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","disabled","customId","itemId","isActive","isSelected","isInteractive","isButton","density","hasSlotDefault","hasSlotStart","hasSlotEnd","selectedValue","hasRadios","handleMouseDown","event","shouldPreventDefault","href","undefined","length","preventDefault","handleClick","stopPropagation","clickedElement","target","brDidClick","emit","isClickInsideInteractiveElement","previousSelectedValue","brDidSelect","selected","updateCheckboxes","handleKeydownEvent","handleKeydown","handleRadioChange","requestAnimationFrame","updateRadioSelectionState","handleCheckboxChange","el","contains","updateCheckboxSelectionState","componentWillLoad","hasSlotContentDefault","hasSlotContent","type","radios","Array","from","querySelectorAll","checkboxes","forEach","checkbox","checked","innerHTML","slotName","querySelector","getCssClassMap","active","getTagType","_a","getAttributes","TagType","baseAttributes","value","Object","assign","some","radio","interactiveSelectors","interactiveElements","console","log","listContainer","closest","error","listItems","warn","currentIndex","indexOf","targetItem","key","MouseEvent","setFocus","scrollIntoView","behavior","block","inline","focusableElement","focus","render","attributes","classList","h","Host","class","onClick","id","ref","onKeyDown","onMouseDown","name"],"sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAU;;MCiCHC,KAAIC,EAAA,MAAAD,UAAAE;EANjB,WAAAC,CAAAC;;;;;;;;;;;eAkBoCC,KAAQC,WAAY;;;;eAMpBD,KAAAE,WAAmB,WAAWC;;;;;IAM9BH,KAAQI,WAAY;;;;eAMpBJ,KAAUK,aAAY;;;eAKtBL,KAAaM,gBAAY;;;eAmBzBN,KAAQO,WAAY;;;eAkBpBP,KAAOQ,UAAiC;;QAGjER,KAAcS,iBAAY;IAE1BT,KAAYU,eAAY;IAExBV,KAAUW,aAAY;;QAGtBX,KAAaY,gBAAY;;QAG1BZ,KAASa,YAAY;;;;;;eA6HrBb,KAAAc,kBAAmBC;MACzB,MAAMC,IAAwBhB,KAAKiB,SAASC,aAAalB,KAAKiB,KAAKE,SAAS,KAAMnB,KAAKC;MACvF,IAAIe,GAAsB;QACxBD,EAAMK;;;IAmBOpB,KAAAqB,cAAeN;MAC9B,IAAIf,KAAKC,UAAU;QACjBc,EAAMK;QACNL,EAAMO;QACN;;MAGF,MAAMC,IAAiBR,EAAMS;MAE7B,IAAIxB,KAAKa,WAAW;QAClB;;MAGF,IAAIb,KAAKO,UAAU;QACjBP,KAAKyB,WAAWC;aACX,IAAI1B,KAAKM,kBAAkBN,KAAK2B,gCAAgCJ,IAAiB;;QAEtF,MAAMK,IAAwB5B,KAAKY;QACnCZ,KAAKY,iBAAiBZ,KAAKY;QAE3B,IAAIgB,MAA0B5B,KAAKY,eAAe;UAChDZ,KAAK6B,YAAYH,KAAK;YAAEI,UAAU9B,KAAKY;;;QAGzCZ,KAAK+B;;MAGPhB,EAAMO;AAAiB;;;;eAORtB,KAAAgC,qBAAsBjB;MACrCf,KAAKiC,cAAclB;AAAM;AAmI5B;EAnTC,iBAAAmB;IACEC,uBAAsB;MACpBnC,KAAKoC;AAA2B;;EAKpC,oBAAAC,CAAqBtB;IACnB,MAAMS,IAAST,EAAMS;IAErB,IAAIxB,KAAKsC,GAAGC,SAASf,IAAS;MAC5BxB,KAAKwC;;;EAeT,iBAAAC;IACEzC,KAAK0C;IACL1C,KAAKU,eAAeV,KAAK2C,eAAe;IACxC3C,KAAKW,aAAaX,KAAK2C,eAAe;IACtC3C,KAAKY,gBAAgBZ,KAAKK;IAC1B,IAAIL,KAAKO,UAAU;MACjBP,KAAK4C,OAAO5C,KAAK4C,QAAQ;;IAE3B,MAAMC,IAASC,MAAMC,KAAK/C,KAAKsC,GAAGU,iBAAiB;IACnD,MAAMC,IAAaH,MAAMC,KAAK/C,KAAKsC,GAAGU,iBAAiB;IACvDhD,KAAKa,YAAYgC,EAAO1B,SAAS;IAEjC,IAAInB,KAAKK,YAAY;MACnB,IAAI4C,EAAW9B,SAAS,GAAG;QACzB8B,EAAWC,SAASC,KAAcA,EAASC,UAAU;;MAEvD,IAAIP,EAAO1B,SAAS,GAAG;QACrB0B,EAAO,GAAGO,UAAU;;;IAIxBpD,KAAKoC;IACLpC,KAAKwC;;EAGC,qBAAAE;IACN1C,KAAKS,iBAAiBT,KAAKsC,GAAGe,cAAc;;EAGtC,cAAAV,CAAeW;IACrB,OAAOtD,KAAKsC,GAAGiB,cAAc,UAAUD,WAAkB;;EAGnD,cAAAE;IACN,OAAO;MACL,WAAW;MACXvD,UAAUD,KAAKC;MACfwD,QAAQzD,KAAKI;MACb0B,UAAU9B,KAAKY;MACf,QAAQZ,KAAKQ,YAAY;MACzB,QAAQR,KAAKQ,YAAY;MACzB,qBAAqBR,KAAKO,YAAaP,KAAKiB,SAASC,aAAalB,KAAKiB,KAAKE,SAAS,KAAMnB,KAAKC;;;EAI5F,UAAAyD;;IACN,IAAI1D,KAAKO,UAAU;MACjB,OAAO;;IAET,MAAIoD,IAAA3D,KAAKiB,UAAI,QAAA0C,WAAA,aAAAA,EAAExC,UAAS,GAAG;MACzB,OAAO;;IAET,OAAO;;EAGD,aAAAyC;IACN,MAAMC,IAAU7D,KAAK0D;IACrB,MAAMI,IACJD,MAAY,WAAW;MAAEjB,MAAM5C,KAAK4C;MAAMmB,OAAO/D,KAAK+D;QAAU;MAAE9C,MAAMjB,KAAKiB;MAAMO,QAAQxB,KAAKwB;;IAElG,OACKwC,OAAAC,OAAAD,OAAAC,OAAA,IAAAH,IACH;MAAA,iBAAiB9D,KAAKC,WAAW,SAAS;MAC1C,gBAAgBD,KAAKI,WAAW,SAAS;MACzC,eAAeJ,KAAKM,gBAAgB,cAAc;MAClD,eAAeN,KAAKY,gBAAgB,OAAO;;;EAIvC,4BAAA4B;IACN,IAAIxC,KAAKa,WAAW;IAEpB,MAAMoC,IAAaH,MAAMC,KAAK/C,KAAKsC,GAAGU,iBAAiB;IAEvDhD,KAAKY,gBAAgBqC,EAAWiB,MAAMf,KAAaA,EAASC;IAC5DpD,KAAK6B,YAAYH,KAAK;MAAEI,UAAU9B,KAAKY;;;EAGjC,yBAAAwB;IACN,KAAKpC,KAAKa,WAAW;IAErB,MAAMgC,IAASC,MAAMC,KAAK/C,KAAKsC,GAAGU,iBAAiB;IAEnDhD,KAAKY,gBAAgBiC,EAAOqB,MAAMC,KAAUA,EAAMf;IAClDpD,KAAK6B,YAAYH,KAAK;MAAEI,UAAU9B,KAAKY;;;;EAiBjC,+BAAAe,CAAgCH;IACtC,MAAM4C,IAAuB;IAC7B,MAAMC,IAAsBrE,KAAKsC,GAAGU,iBAAiBoB;IACrD,OAAOtB,MAAMC,KAAKsB,GAAqBH,MAAM5B,KAAOA,EAAGC,SAASf,MAAWA,MAAWc;;EAGhF,gBAAAP;IACN,MAAMkB,IAAaH,MAAMC,KAAK/C,KAAKsC,GAAGU,iBAAiB;IAEvDC,EAAWC,SAASC;MAClBA,EAASC,UAAUpD,KAAKY;AAAa;;;;SA6CjC,aAAAqB,CAAclB;IACpB,IAAIf,KAAKC,UAAU;MACjBqE,QAAQC,IAAI,YAAYvE,KAAKE;MAC7B;;IAGF,MAAMsE,IAAgBxE,KAAKsC,GAAGmC,QAAQ;IACtC,IAAID,MAAkB,QAAQA,MAAkBtD,WAAW;MACzDoD,QAAQI,MAAM,YAAY1E,KAAKE;MAC/B;;IAGF,MAAMyE,IAAY7B,MAAMC,KAAKyB,EAAcxB,iBAAiB;IAC5D,IAAI2B,EAAUxD,WAAW,GAAG;MAC1BmD,QAAQM,KAAK,YAAY5E,KAAKE;MAC9B;;IAGF,MAAM2E,IAAeF,EAAUG,QAAQ9E,KAAKsC;IAE5C,IAAIuC,OAAiB,GAAI;MACvBP,QAAQI,MAAM,YAAY1E,KAAKE;MAC/B;;;IAGF,IAAI6E,IAAuC;IAE3C,QAAQhE,EAAMiE;KACZ,KAAK;MACHjE,EAAMK;MACN,IAAIyD,IAAeF,EAAUxD,SAAS,GAAG;QACvC4D,IAAaJ,EAAUE,IAAe;aACjC;QACLP,QAAQC,IAAI,YAAYvE,KAAKE;;MAE/B;;KAEF,KAAK;MACHa,EAAMK;MACN,IAAIyD,IAAe,GAAG;QACpBE,IAAaJ,EAAUE,IAAe;aACjC;QACLP,QAAQC,IAAI,YAAYvE,KAAKE;;MAE/B;;KAEF,KAAK;KACL,KAAK;MACHa,EAAMK;MACNpB,KAAKqB,YAAY,IAAI4D,WAAW;MAChC;;KAEF,KAAK;MACHlE,EAAMK;MACN2D,IAAaJ,EAAU;MACvB;;KAEF,KAAK;MACH5D,EAAMK;MACN2D,IAAaJ,EAAUA,EAAUxD,SAAS;MAC1C;;KAEF;MACE;;IAGJ,IAAI4D,KAAcA,MAAe/E,KAAKsC,IAAI;MACxC,IAAI,cAAcyC,GAAY;QAE1BA,EAAwCG;;;YAG5CH,EAAWI,eAAe;QAAEC,UAAU;QAAUC,OAAO;QAAWC,QAAQ;;;;;;;SASxE,QAAAJ;;;OACJvB,IAAA3D,KAAKuF,sBAAkB,QAAA5B,WAAA,aAAAA,EAAA6B;AACzB;;EAEA,MAAAC;IACE,MAAM5B,IAAU7D,KAAK0D;IACrB,MAAMgC,IAAa1F,KAAK4D;IACxB,MAAM+B,IAAY3F,KAAKwD;IACvB,OACEoC,EAACC,GAAI;MAAAb,KAAA;OACHY,EAAC/B,GAAOG,OAAAC,OAAA;MAAAe,KAAA;MACNc,OAAOH;OACHD,GAAU;MACdK,SAAS/F,KAAKqB;MACd2E,IAAIhG,KAAKE;MACT+F,KAAM3D,KAAQtC,KAAKuF,mBAAmBjD;MACtC4D,WAAWlG,KAAKgC;MAChBmE,aAAanG,KAAKc;QAEjBd,KAAKU,gBAAgBV,KAAKW,aACzBiF,EAAK;MAAAE,OAAM;OACR9F,KAAKU,gBACJkF,EAAK;MAAAE,OAAM;OACTF,EAAA;MAAMQ,MAAK;SAIfR,EAAK;MAAAE,OAAM;OACTF,EAAA,gBAGD5F,KAAKW,cACJiF,EAAK;MAAAE,OAAM;OACTF,EAAA;MAAMQ,MAAK;WAKjBR,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQZ,IAAIzF,IAAS","ignoreList":[]}
1
+ {"version":3,"names":["itemCss","Item","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","disabled","customId","itemId","isActive","isSelected","isInteractive","isButton","density","hasSlotDefault","hasSlotStart","hasSlotEnd","selectedValue","hasRadios","handleMouseDown","event","shouldPreventDefault","href","undefined","length","preventDefault","handleClick","stopPropagation","clickedElement","target","brDidClick","emit","isClickInsideInteractiveElement","previousSelectedValue","brDidSelect","selected","updateCheckboxes","handleKeydownEvent","handleKeydown","handleRadioChange","requestAnimationFrame","updateRadioSelectionState","handleCheckboxChange","el","contains","updateCheckboxSelectionState","componentWillLoad","hasSlotContentDefault","hasSlotContent","type","radios","Array","from","querySelectorAll","checkboxes","forEach","checkbox","checked","innerHTML","slotName","querySelector","getCssClassMap","active","getTagType","_a","getAttributes","TagType","baseAttributes","value","Object","assign","some","radio","interactiveSelectors","interactiveElements","console","log","listContainer","closest","error","listItems","warn","currentIndex","indexOf","targetItem","key","MouseEvent","setFocus","scrollIntoView","behavior","block","inline","focusableElement","focus","render","attributes","classList","h","Host","class","onClick","id","ref","onKeyDown","onMouseDown","name"],"sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"mappings":"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","ignoreList":[]}
@@ -4,15 +4,13 @@
4
4
  */
5
5
  import { p as t, H as e, d as i, h as a, c as r } from "./p-DSkSDmzD.js";
6
6
 
7
- import { _ as o } from "./p-DIPMDb5E.js";
7
+ import { F as o } from "./p-k0WZfTfL.js";
8
8
 
9
- import { F as n } from "./p-B4au_byv.js";
9
+ import { H as n } from "./p-D4N4PPot.js";
10
10
 
11
- import { H as s } from "./p-D4N4PPot.js";
11
+ const s = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{display:block;position:relative}:host #trigger{display:inline-block;cursor:pointer;outline:none}:host #trigger::slotted([slot=trigger]):focus:focus{outline:none}:host #trigger::slotted([slot=trigger]):focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host ::slotted([slot=target] *:focus):focus{outline:none}:host ::slotted([slot=target] *:focus):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host #target{display:none;position:absolute;-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);z-index:var(--z-index-layer-1)}:host #target:focus:focus{outline:none}:host #target:focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host([is-open]) #target{display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content}@media (max-width: 575px){:host([is-open]) #target{width:100vw !important;max-width:100vw !important}}";
12
12
 
13
- 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;position:relative}:host #trigger{display:inline-block;cursor:pointer;outline:none}:host #trigger::slotted([slot=trigger]):focus:focus{outline:none}:host #trigger::slotted([slot=trigger]):focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host ::slotted([slot=target] *:focus):focus{outline:none}:host ::slotted([slot=target] *:focus):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host #target{display:none;position:absolute;-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);z-index:var(--z-index-layer-1)}:host #target:focus:focus{outline:none}:host #target:focus:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host([is-open]) #target{display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content}@media (max-width: 575px){:host([is-open]) #target{width:100vw !important;max-width:100vw !important}}";
14
-
15
- const c = t(class t extends e {
13
+ const l = t(class t extends e {
16
14
  constructor(t) {
17
15
  super();
18
16
  if (t !== false) {
@@ -30,7 +28,7 @@ const c = t(class t extends e {
30
28
  /**
31
29
  * Identificador único.
32
30
  * Caso não seja fornecido, um ID gerado automaticamente será usado.
33
- */ this.customId = s.generateUniqueId();
31
+ */ this.customId = n.generateUniqueId();
34
32
  /**
35
33
  * Define o posicionamento do target (alvo) em relação ao trigger (acionador).
36
34
  */ this.placement = "bottom-start";
@@ -237,7 +235,7 @@ const c = t(class t extends e {
237
235
  * Posiciona o dropdown usando Floating UI
238
236
  */ positionDropdown() {
239
237
  if (this.triggerElement == null || this.targetElement == null) return;
240
- this.floatingManager = new n({
238
+ this.floatingManager = new o({
241
239
  triggerElement: this.triggerElement,
242
240
  contentElement: this.targetElement,
243
241
  placement: this.placement
@@ -366,25 +364,21 @@ const c = t(class t extends e {
366
364
  * Abre o dropdown.
367
365
  * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.
368
366
  * Este método pode ser chamado externamente.
369
- */ open() {
370
- return o(this, void 0, void 0, (function*() {
371
- this.isOpen = true;
372
- return {
373
- isOpen: this.isOpen
374
- };
375
- }));
367
+ */ async open() {
368
+ this.isOpen = true;
369
+ return {
370
+ isOpen: this.isOpen
371
+ };
376
372
  }
377
373
  /**
378
374
  * Esconde o dropdown.
379
375
  * Define a propriedade `isOpen` como falsa e retorna o novo estado.
380
376
  * Este método pode ser chamado externamente.
381
- */ hide() {
382
- return o(this, void 0, void 0, (function*() {
383
- this.isOpen = false;
384
- return {
385
- isOpen: this.isOpen
386
- };
387
- }));
377
+ */ async hide() {
378
+ this.isOpen = false;
379
+ return {
380
+ isOpen: this.isOpen
381
+ };
388
382
  }
389
383
  /**
390
384
  * Foca em um elemento específico com suporte a componentes personalizados
@@ -444,14 +438,12 @@ const c = t(class t extends e {
444
438
  /**
445
439
  * Define o foco no elemento interno do componente.
446
440
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
447
- */ setFocus() {
448
- return o(this, void 0, void 0, (function*() {
449
- if (this.focusableElement !== null && this.focusableElement !== undefined) {
450
- this.focusableElement.focus();
451
- } else {
452
- this.focusOnTriggerElement();
453
- }
454
- }));
441
+ */ async setFocus() {
442
+ if (this.focusableElement !== null && this.focusableElement !== undefined) {
443
+ this.focusableElement.focus();
444
+ } else {
445
+ this.focusOnTriggerElement();
446
+ }
455
447
  }
456
448
  render() {
457
449
  return a(r, {
@@ -495,7 +487,7 @@ const c = t(class t extends e {
495
487
  };
496
488
  }
497
489
  static get style() {
498
- return l;
490
+ return s;
499
491
  }
500
492
  }, [ 321, "br-dropdown", {
501
493
  isOpen: [ 1540, "is-open" ],
@@ -520,13 +512,13 @@ function defineCustomElement() {
520
512
  switch (t) {
521
513
  case "br-dropdown":
522
514
  if (!customElements.get(t)) {
523
- customElements.define(t, c);
515
+ customElements.define(t, l);
524
516
  }
525
517
  break;
526
518
  }
527
519
  }));
528
520
  }
529
521
 
530
- export { c as D, defineCustomElement as d };
531
- //# sourceMappingURL=p-z1PVVVFI.js.map
532
- //# sourceMappingURL=p-z1PVVVFI.js.map
522
+ export { l as D, defineCustomElement as d };
523
+ //# sourceMappingURL=p-DW63EY0U.js.map
524
+ //# sourceMappingURL=p-DW63EY0U.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["dropdownCss","Dropdown","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","isOpen","customId","Helpers","generateUniqueId","placement","preventAutoDismiss","targetZIndex","targetElement","dropdownItems","dropdownLinks","focusableElement","handleLinkKeydown","event","link","currentTarget","key","linkIndex","indexOf","lastLinkIndex","length","preventDefault","stopPropagation","shiftKey","focusOnElement","tagName","toLowerCase","setTimeout","hide","focusOnTriggerElement","handleItemKeydown","item","currentIndex","lastIndex","click","toggle","isOpenChanged","newValue","brDidOpen","emit","id","initializeDropdownItems","positionDropdown","cleanupPositioning","triggerElement","undefined","brDropdownChange","targetZIndexChanged","updateTargetZIndex","connectedCallback","clickHandler","onClickOutside","bind","document","addEventListener","dropdownOpenHandler","onDropdownDidOpen","disconnectedCallback","removeEventListener","triggerKeydownHandler","targetKeydownHandler","clearDropdownItemListeners","customEvent","detail","forEach","componentDidLoad","el","shadowRoot","querySelector","setBehavior","floatingManager","FloatingUIManager","contentElement","start","_a","stop","style","zIndex","handleTriggerBehavior","setAttribute","focus","targetSlot","assignedElements","nonLinkSelector","linkSelector","element","matches","push","linkChildren","Array","from","querySelectorAll","concat","nonLinkChildren","getCssClassMap","path","composedPath","includes","open","setFocus","scrollIntoView","behavior","block","inline","triggerSlot","slotElements","firstElement","focusTrigger","render","h","Host","class","onClick","name"],"sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/partial/scss/base\";\n\n:host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n /* Garante que o conteúdo do dropdown fique acima do trigger/botões ao redor */\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-1);\n\n &:focus {\n @include focus;\n }\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n width: max-content;\n }\n}\n\n@include media-breakpoint-down(xs) {\n :host([is-open]) {\n #target {\n width: 100vw !important;\n max-width: 100vw !important;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a abertura do dropdown.\n * @slot target - Slot para o conteúdo exibido pelo dropdown.\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\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: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define o posicionamento do target (alvo) em relação ao trigger (acionador).\n */\n @Prop({ reflect: true }) placement:\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom'\n | 'top' = 'bottom-start'\n\n /**\n * Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\n * Quando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\n * Quando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.\n */\n @Prop({ reflect: true }) preventAutoDismiss: boolean = false\n\n /**\n * Define o z-index do elemento target (alvo) do dropdown.\n * Permite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\n * O valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).\n */\n @Prop() targetZIndex: string = 'var(--z-index-layer-1)'\n\n // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // FloatingUI Manager\n private floatingManager: FloatingUIManager\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\n\n // Handler para o evento brDidOpen de outros dropdowns\n private dropdownOpenHandler: EventListener\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ isOpen: boolean }>\n /**\n * Evento emitido quando o dropdown é aberto.\n * Este evento é usado para implementar o auto-dismiss de outros dropdowns.\n */\n @Event() brDidOpen: EventEmitter<{ id: string }>\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged(newValue: boolean) {\n if (newValue) {\n this.brDidOpen.emit({ id: this.customId })\n\n this.initializeDropdownItems()\n this.positionDropdown()\n } else {\n this.cleanupPositioning()\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ isOpen: newValue })\n }\n\n /**\n * Aplica o novo valor de z-index ao elemento target.\n */\n @Watch('targetZIndex')\n targetZIndexChanged() {\n this.updateTargetZIndex()\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n\n this.dropdownOpenHandler = this.onDropdownDidOpen.bind(this)\n document.addEventListener('brDidOpen', this.dropdownOpenHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n document.removeEventListener('brDidOpen', this.dropdownOpenHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.cleanupPositioning()\n this.clearDropdownItemListeners()\n }\n\n /**\n * Método que lida com o evento brDidOpen de outros dropdowns\n * Fecha este dropdown se não for o emissor do evento e preventAutoDismiss=false\n */\n private onDropdownDidOpen(event: Event) {\n if (this.preventAutoDismiss) {\n return\n }\n\n const customEvent = event as CustomEvent<{ id: string }>\n if (this.isOpen && customEvent.detail.id !== this.customId) {\n this.hide()\n }\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n this.updateTargetZIndex()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n this.positionDropdown()\n }\n }\n\n /**\n * Posiciona o dropdown usando Floating UI\n */\n private positionDropdown() {\n if (this.triggerElement == null || this.targetElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.targetElement,\n placement: this.placement,\n })\n\n this.floatingManager.start()\n }\n\n /**\n * Limpa o posicionamento do Floating UI\n */\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Atualiza o z-index do target conforme a propriedade targetZIndex\n */\n private updateTargetZIndex() {\n if (this.targetElement === null) {\n return\n }\n\n if (this.targetZIndex !== null && this.targetZIndex !== undefined) {\n this.targetElement.style.zIndex = this.targetZIndex\n }\n }\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement !== null) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen }\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot !== null) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n this.focusTrigger()\n }\n } else {\n this.focusTrigger()\n }\n }\n\n /**\n * Auxiliar para focar no elemento trigger\n */\n private focusTrigger() {\n if (typeof this.triggerElement !== 'undefined') {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen} placement={this.placement} prevent-auto-dismiss={this.preventAutoDismiss}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n >\n <slot name=\"trigger\"></slot>\n </div>\n\n <div id=\"target\" aria-hidden={this.isOpen ? 'false' : 'true'}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,MAAMA,IAAc;;MCoBPC,KAAQC,EAAA,MAAAD,UAAAE;EANrB,WAAAC,CAAAC;;;;;;;;;;;;;eAoB0CC,KAAMC,SAAY;;;;eAMxBD,KAAAE,WAAmBC,EAAQC;;;eAKpCJ,KAASK,YAQtB;;;;;eAOaL,KAAkBM,qBAAY;;;;;eAO/CN,KAAYO,eAAW;IAIvBP,KAAaQ,gBAAuB;IACpCR,KAAaS,gBAAkB;IAC/BT,KAAaU,gBAAkB;IAC/BV,KAAgBW,mBAAmC;;;eAyQnDX,KAAAY,oBAAqBC;MAC3B,MAAMC,IAAOD,EAAME;MACnB,MAAMC,IAAMH,EAAMG;MAClB,MAAMC,IAAYjB,KAAKU,cAAcQ,QAAQJ;MAC7C,MAAMK,IAAgBnB,KAAKU,cAAcU,SAAS;MAElD,QAAQJ;OACN,KAAK;OACL,KAAK;OACL,KAAK;OACL,KAAK;QACHH,EAAMQ;QACNR,EAAMS;QACN;;OACF,KAAK;QACHT,EAAMQ;QAEN,KAAKR,EAAMU,UAAU;UACnB,IAAIN,KAAaE,GAAe;YAC9BnB,KAAKwB,eAAexB,KAAKU,cAAc;iBAClC;YACLV,KAAKwB,eAAexB,KAAKU,cAAcO,IAAY;;eAEhD;UACL,IAAIA,KAAa,GAAG;YAClBjB,KAAKwB,eAAexB,KAAKU,cAAcS;iBAClC;YACLnB,KAAKwB,eAAexB,KAAKU,cAAcO,IAAY;;;QAGvD;;OACF,KAAK;OACL,KAAK;QACH,IAAID,MAAQ,OAAOF,EAAKW,QAAQC,kBAAkB,KAAK;UACrDb,EAAMQ;;QAERM,YAAW,MAAM3B,KAAK4B,SAAQ;QAC9B;;OACF,KAAK;QACHf,EAAMQ;QACNrB,KAAK4B;QACL5B,KAAK6B;QACL;;;;;;eAUE7B,KAAA8B,oBAAqBjB;MAC3B,MAAMkB,IAAOlB,EAAME;MACnB,MAAMC,IAAMH,EAAMG;MAClB,MAAMgB,IAAehC,KAAKS,cAAcS,QAAQa;MAChD,MAAME,IAAYjC,KAAKS,cAAcW,SAAS;MAE9C,QAAQJ;OACN,KAAK;QACHH,EAAMQ;QACN,IAAIW,KAAgB,GAAG;UACrBhC,KAAKwB,eAAexB,KAAKS,cAAcwB;eAClC;UACLjC,KAAKwB,eAAexB,KAAKS,cAAcuB,IAAe;;QAExD;;OAEF,KAAK;QACHnB,EAAMQ;QACN,IAAIW,KAAgBC,GAAW;UAC7BjC,KAAKwB,eAAexB,KAAKS,cAAc;eAClC;UACLT,KAAKwB,eAAexB,KAAKS,cAAcuB,IAAe;;QAExD;;OAEF,KAAK;QACHnB,EAAMQ;QACNrB,KAAKwB,eAAexB,KAAKS,cAAc;QACvC;;OAEF,KAAK;QACHI,EAAMQ;QACNrB,KAAKwB,eAAexB,KAAKS,cAAcwB;QACvC;;OAEF,KAAK;OACL,KAAK;QACHpB,EAAMQ;QACNU,EAAKG;QACLlC,KAAK4B;QACL5B,KAAK6B;QACL;;OAEF,KAAK;QACH;;OAEF,KAAK;QACHhB,EAAMQ;QACNrB,KAAK4B;QACL5B,KAAK6B;QACL;;;;;eAgBW7B,KAAAmC,SAAUtB;MACzBA,EAAMS;MACNtB,KAAKC,UAAUD,KAAKC;AAAM;AAgI7B;;;;SAreC,aAAAmC,CAAcC;IACZ,IAAIA,GAAU;MACZrC,KAAKsC,UAAUC,KAAK;QAAEC,IAAIxC,KAAKE;;MAE/BF,KAAKyC;MACLzC,KAAK0C;WACA;MACL1C,KAAK2C;MAEL,IAAI3C,KAAK4C,mBAAmB,QAAQ5C,KAAK4C,mBAAmBC,WAAW;QACrE7C,KAAK6B;;;IAIT7B,KAAK8C,iBAAiBP,KAAK;MAAEtC,QAAQoC;;;;;SAOvC,mBAAAU;IACE/C,KAAKgD;;EAGP,iBAAAC;IACEjD,KAAKkD,eAAelD,KAAKmD,eAAeC,KAAKpD;IAC7CqD,SAASC,iBAAiB,SAAStD,KAAKkD;IAExClD,KAAKuD,sBAAsBvD,KAAKwD,kBAAkBJ,KAAKpD;IACvDqD,SAASC,iBAAiB,aAAatD,KAAKuD;;EAG9C,oBAAAE;IACEJ,SAASK,oBAAoB,SAAS1D,KAAKkD;IAC3CG,SAASK,oBAAoB,aAAa1D,KAAKuD;IAE/C,IAAIvD,KAAK4C,mBAAmB,QAAQ5C,KAAK4C,mBAAmBC,WAAW;MACrE7C,KAAK4C,eAAec,oBAAoB,WAAW1D,KAAK2D;;IAG1D,IAAI3D,KAAKQ,kBAAkB,QAAQR,KAAKQ,kBAAkBqC,WAAW;MACnE7C,KAAKQ,cAAckD,oBAAoB,WAAW1D,KAAK4D;;IAGzD5D,KAAK2C;IACL3C,KAAK6D;;;;;SAOC,iBAAAL,CAAkB3C;IACxB,IAAIb,KAAKM,oBAAoB;MAC3B;;IAGF,MAAMwD,IAAcjD;IACpB,IAAIb,KAAKC,UAAU6D,EAAYC,OAAOvB,OAAOxC,KAAKE,UAAU;MAC1DF,KAAK4B;;;EAID,0BAAAiC;IACN7D,KAAKS,cAAcuD,SAASjC;MAC1BA,EAAK2B,oBAAoB,WAAW1D,KAAK8B;AAAkB;IAG7D9B,KAAKU,cAAcsD,SAASlD;MAC1BA,EAAK4C,oBAAoB,WAAW1D,KAAKY;AAAkB;IAG7DZ,KAAKS,gBAAgB;IACrBT,KAAKU,gBAAgB;;EAGvB,gBAAAuD;IACEjE,KAAK4C,iBAAiB5C,KAAKkE,GAAGC,WAAWC,cAAc;IACvDpE,KAAKQ,gBAAgBR,KAAKkE,GAAGC,WAAWC,cAAc;IAEtDpE,KAAKqE;IACLrE,KAAKgD;IAEL,IAAIhD,KAAKC,QAAQ;MACfD,KAAKyC;MACLzC,KAAK0C;;;;;SAOD,gBAAAA;IACN,IAAI1C,KAAK4C,kBAAkB,QAAQ5C,KAAKQ,iBAAiB,MAAM;IAE/DR,KAAKsE,kBAAkB,IAAIC,EAAkB;MAC3C3B,gBAAgB5C,KAAK4C;MACrB4B,gBAAgBxE,KAAKQ;MACrBH,WAAWL,KAAKK;;IAGlBL,KAAKsE,gBAAgBG;;;;SAMf,kBAAA9B;;KACN+B,IAAA1E,KAAKsE,qBAAiB,QAAAI,WAAA,aAAAA,EAAAC;;;;SAMhB,kBAAA3B;IACN,IAAIhD,KAAKQ,kBAAkB,MAAM;MAC/B;;IAGF,IAAIR,KAAKO,iBAAiB,QAAQP,KAAKO,iBAAiBsC,WAAW;MACjE7C,KAAKQ,cAAcoE,MAAMC,SAAS7E,KAAKO;;;;;SAOnC,WAAA8D;IACN,IAAIrE,KAAK4C,mBAAmB,MAAM;IAElC5C,KAAK2D,wBAAyB9C;MAC5B,IAAIA,EAAMG,QAAQ,WAAWH,EAAMG,QAAQ,KAAK;QAC9CH,EAAMQ;QACNrB,KAAK8E,sBAAsBjE;aACtB,IAAIA,EAAMG,QAAQ,UAAU;QACjCH,EAAMQ;QACNrB,KAAK4B;QACL5B,KAAK6B;aACA,IAAIhB,EAAMG,QAAQ,eAAehB,KAAKC,QAAQ;QACnDY,EAAMQ;QACNrB,KAAKyC;QACL,IAAIzC,KAAKU,cAAcU,SAAS,GAAG;UACjCpB,KAAKwB,eAAexB,KAAKU,cAAc;eAClC,IAAIV,KAAKS,cAAcW,SAAS,GAAG;UACxCpB,KAAKwB,eAAexB,KAAKS,cAAc;;;;IAK7CT,KAAK4D,uBAAwB/C;MAC3B,IAAIA,EAAMG,QAAQ,UAAU;QAC1BH,EAAMQ;QACNrB,KAAK4B;QACL5B,KAAK6B;;;IAIT7B,KAAK4C,eAAeU,iBAAiB,WAAWtD,KAAK2D;IACrD,IAAI3D,KAAKQ,kBAAkB,MAAM;MAC/BR,KAAKQ,cAAc8C,iBAAiB,WAAWtD,KAAK4D;;;;;SAOhD,qBAAAkB,CAAsBjE;IAC5BA,EAAMQ;IACNrB,KAAKmC,OAAOtB;IAEZ,IAAIb,KAAKC,QAAQ;MACf0B,YAAW;QACT3B,KAAKyC;AAAyB,UAC7B;;;;;;SAQC,uBAAAA;IACN,IAAIzC,KAAKQ,kBAAkB,MAAM;IAEjCR,KAAK6D;IAEL7D,KAAKQ,cAAcuE,aAAa,YAAY;IAC5C/E,KAAKQ,cAAcwE;IAEnB,MAAMC,IAAajF,KAAKkE,GAAGC,WAAWC,cAAc;IACpD,IAAIa,MAAe,QAAQA,MAAepC,WAAW;IAErD,MAAMqC,IAAmBD,EAAWC;IACpC,IAAIA,EAAiB9D,WAAW,GAAG;IAEnC,MAAM+D,IACJ;IAEF,MAAMC,IAAe;IAErBF,EAAiBlB,SAASqB;MACxB,IAAIA,aAAmBxF,GAAa;QAClC,IAAIwF,EAAQC,QAAQF,IAAe;UACjCpF,KAAKU,cAAc6E,KAAKF;eACnB,IAAIA,EAAQC,QAAQH,IAAkB;UAC3CnF,KAAKS,cAAc8E,KAAKF;;;MAI5B,MAAMG,IAAeC,MAAMC,KAAKL,EAAQM,iBAAiBP;MACzDpF,KAAKU,gBAAgBV,KAAKU,cAAckF,OAAOJ;MAE/C,MAAMK,IAAkBJ,MAAMC,KAAKL,EAAQM,iBAAiBR;MAC5DnF,KAAKS,gBAAgBT,KAAKS,cAAcmF,OAAOC;AAAgB;IAGjE7F,KAAKS,cAAcuD,SAASjC;MAC1BA,EAAKuB,iBAAiB,WAAWtD,KAAK8B;AAAkB;IAG1D9B,KAAKU,cAAcsD,SAASlD;MAC1BA,EAAKwC,iBAAiB,WAAWtD,KAAKY;AAAkB;IAG1D,IAAIZ,KAAKU,cAAcU,SAAS,GAAG;MACjCpB,KAAKwB,eAAexB,KAAKU,cAAc;MACvCV,KAAKW,mBAAmBX,KAAKU,cAAc;WACtC,IAAIV,KAAKS,cAAcW,SAAS,GAAG;MACxCpB,KAAKwB,eAAexB,KAAKS,cAAc;MACvCT,KAAKW,mBAAmBX,KAAKS,cAAc;;;EAoHvC,cAAAqF;IACN,OAAO;MACL,eAAe;;;;;;;SAiBX,cAAA3C,CAAetC;IACrB,KAAKb,KAAKC,QAAQ;IAElB,MAAM8F,IAAOlF,EAAMmF;IAEnB,IACEhG,KAAK4C,kBACL5C,KAAKQ,kBACJuF,EAAKE,SAASjG,KAAK4C,oBACnBmD,EAAKE,SAASjG,KAAKQ,gBACpB;MACAR,KAAK4B;;;;;;;SAUH,IAAAsE;;MACJlG,KAAKC,SAAS;MACd,OAAO;QAAEA,QAAQD,KAAKC;;AACxB;;;;;;SAQM,IAAA2B;;MACJ5B,KAAKC,SAAS;MACd,OAAO;QAAEA,QAAQD,KAAKC;;AACxB;;;;;SAMQ,cAAAuB,CAAehB;IACrB,IAAIA,KAAiBA,MAAkBR,KAAKkE,IAAI;MAC9C,IAAI,cAAc1D,GAAe;QAC7BA,EAA2C2F;aACxC;QACL3F,EAAcwE;;MAEhBxE,EAAc4F,eAAe;QAAEC,UAAU;QAAUC,OAAO;QAAWC,QAAQ;;;;;;;SAQzE,qBAAA1E;IACN,MAAM2E,IAAcxG,KAAKkE,GAAGC,WAAWC,cAAc;IACrD,IAAIoC,MAAgB,MAAM;MACxB,MAAMC,IAAeD,EAAYtB;MACjC,IAAIuB,EAAarF,SAAS,GAAG;QAC3B,MAAMsF,IAAeD,EAAa;QAClC,IAAI,cAAcC,GAAc;UAC5BA,EAA0CP;eACvC;UACLO,EAAa1B;;QAEf0B,EAAaN,eAAe;UAAEC,UAAU;UAAUC,OAAO;UAAWC,QAAQ;;aACvE;QACLvG,KAAK2G;;WAEF;MACL3G,KAAK2G;;;;;SAOD,YAAAA;IACN,WAAW3G,KAAK4C,mBAAmB,aAAa;MAC9C5C,KAAK4C,eAAeoC;MACpBhF,KAAK4C,eAAewD,eAAe;QAAEC,UAAU;QAAUC,OAAO;QAAWC,QAAQ;;;;;;;SASjF,QAAAJ;;MACJ,IAAInG,KAAKW,qBAAqB,QAAQX,KAAKW,qBAAqBkC,WAAW;QACzE7C,KAAKW,iBAAiBqE;aACjB;QACLhF,KAAK6B;;AAET;;EAEA,MAAA+E;IACE,OACEC,EAACC,GAAc;MAAA9F,KAAA;MAAA,WAAAhB,KAAKC;MAAQI,WAAWL,KAAKK;MAAiC,wBAAAL,KAAKM;OAChFuG,EAAK;MAAA7F,KAAA;MAAA+F,OAAO/G,KAAK8F;MAAkBtD,IAAIxC,KAAKE;OAC1C2G,EACE;MAAA7F,KAAA;MAAAwB,IAAG;MACHwE,SAAShH,KAAKmC;MAAM,iBACN;MAAQ,iBACR;MACC,iBAAAnC,KAAKC,SAAS,SAAS;OAEtC4G,EAAA;MAAA7F,KAAA;MAAMiG,MAAK;SAGbJ,EAAA;MAAA7F,KAAA;MAAKwB,IAAG;MAAQ,eAAcxC,KAAKC,SAAS,UAAU;OACpD4G,EAAM;MAAA7F,KAAA;MAAAiG,MAAK","ignoreList":[]}
1
+ {"version":3,"names":["dropdownCss","Dropdown","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","isOpen","customId","Helpers","generateUniqueId","placement","preventAutoDismiss","targetZIndex","targetElement","dropdownItems","dropdownLinks","focusableElement","handleLinkKeydown","event","link","currentTarget","key","linkIndex","indexOf","lastLinkIndex","length","preventDefault","stopPropagation","shiftKey","focusOnElement","tagName","toLowerCase","setTimeout","hide","focusOnTriggerElement","handleItemKeydown","item","currentIndex","lastIndex","click","toggle","isOpenChanged","newValue","brDidOpen","emit","id","initializeDropdownItems","positionDropdown","cleanupPositioning","triggerElement","undefined","brDropdownChange","targetZIndexChanged","updateTargetZIndex","connectedCallback","clickHandler","onClickOutside","bind","document","addEventListener","dropdownOpenHandler","onDropdownDidOpen","disconnectedCallback","removeEventListener","triggerKeydownHandler","targetKeydownHandler","clearDropdownItemListeners","customEvent","detail","forEach","componentDidLoad","el","shadowRoot","querySelector","setBehavior","floatingManager","FloatingUIManager","contentElement","start","_a","stop","style","zIndex","handleTriggerBehavior","setAttribute","focus","targetSlot","assignedElements","nonLinkSelector","linkSelector","element","matches","push","linkChildren","Array","from","querySelectorAll","concat","nonLinkChildren","getCssClassMap","path","composedPath","includes","open","setFocus","scrollIntoView","behavior","block","inline","triggerSlot","slotElements","firstElement","focusTrigger","render","h","Host","class","onClick","name"],"sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/partial/scss/base\";\n\n:host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n /* Garante que o conteúdo do dropdown fique acima do trigger/botões ao redor */\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-1);\n\n &:focus {\n @include focus;\n }\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n width: max-content;\n }\n}\n\n@include media-breakpoint-down(xs) {\n :host([is-open]) {\n #target {\n width: 100vw !important;\n max-width: 100vw !important;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a abertura do dropdown.\n * @slot target - Slot para o conteúdo exibido pelo dropdown.\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\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: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define o posicionamento do target (alvo) em relação ao trigger (acionador).\n */\n @Prop({ reflect: true }) placement:\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom'\n | 'top' = 'bottom-start'\n\n /**\n * Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\n * Quando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\n * Quando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.\n */\n @Prop({ reflect: true }) preventAutoDismiss: boolean = false\n\n /**\n * Define o z-index do elemento target (alvo) do dropdown.\n * Permite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\n * O valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).\n */\n @Prop() targetZIndex: string = 'var(--z-index-layer-1)'\n\n // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // FloatingUI Manager\n private floatingManager: FloatingUIManager\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\n\n // Handler para o evento brDidOpen de outros dropdowns\n private dropdownOpenHandler: EventListener\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ isOpen: boolean }>\n /**\n * Evento emitido quando o dropdown é aberto.\n * Este evento é usado para implementar o auto-dismiss de outros dropdowns.\n */\n @Event() brDidOpen: EventEmitter<{ id: string }>\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged(newValue: boolean) {\n if (newValue) {\n this.brDidOpen.emit({ id: this.customId })\n\n this.initializeDropdownItems()\n this.positionDropdown()\n } else {\n this.cleanupPositioning()\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ isOpen: newValue })\n }\n\n /**\n * Aplica o novo valor de z-index ao elemento target.\n */\n @Watch('targetZIndex')\n targetZIndexChanged() {\n this.updateTargetZIndex()\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n\n this.dropdownOpenHandler = this.onDropdownDidOpen.bind(this)\n document.addEventListener('brDidOpen', this.dropdownOpenHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n document.removeEventListener('brDidOpen', this.dropdownOpenHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.cleanupPositioning()\n this.clearDropdownItemListeners()\n }\n\n /**\n * Método que lida com o evento brDidOpen de outros dropdowns\n * Fecha este dropdown se não for o emissor do evento e preventAutoDismiss=false\n */\n private onDropdownDidOpen(event: Event) {\n if (this.preventAutoDismiss) {\n return\n }\n\n const customEvent = event as CustomEvent<{ id: string }>\n if (this.isOpen && customEvent.detail.id !== this.customId) {\n this.hide()\n }\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n this.updateTargetZIndex()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n this.positionDropdown()\n }\n }\n\n /**\n * Posiciona o dropdown usando Floating UI\n */\n private positionDropdown() {\n if (this.triggerElement == null || this.targetElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.targetElement,\n placement: this.placement,\n })\n\n this.floatingManager.start()\n }\n\n /**\n * Limpa o posicionamento do Floating UI\n */\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Atualiza o z-index do target conforme a propriedade targetZIndex\n */\n private updateTargetZIndex() {\n if (this.targetElement === null) {\n return\n }\n\n if (this.targetZIndex !== null && this.targetZIndex !== undefined) {\n this.targetElement.style.zIndex = this.targetZIndex\n }\n }\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement !== null) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen }\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot !== null) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n this.focusTrigger()\n }\n } else {\n this.focusTrigger()\n }\n }\n\n /**\n * Auxiliar para focar no elemento trigger\n */\n private focusTrigger() {\n if (typeof this.triggerElement !== 'undefined') {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen} placement={this.placement} prevent-auto-dismiss={this.preventAutoDismiss}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n >\n <slot name=\"trigger\"></slot>\n </div>\n\n <div id=\"target\" aria-hidden={this.isOpen ? 'false' : 'true'}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}