@govbr-ds/webcomponents 2.0.0-next.44 → 2.0.0-next.45

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 (445) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +104 -31
  2. package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
  3. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
  4. package/dist/cjs/br-breadcrumb.cjs.entry.js +6 -9
  5. package/dist/cjs/br-breadcrumb.cjs.entry.js.map +1 -1
  6. package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
  7. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  8. package/dist/cjs/br-button_2.cjs.entry.js +3 -3
  9. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/br-card.cjs.entry.js +97 -0
  11. package/dist/cjs/br-card.cjs.entry.js.map +1 -0
  12. package/dist/cjs/br-card.entry.cjs.js.map +1 -0
  13. package/dist/cjs/br-checkbox.cjs.entry.js +8 -13
  14. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -1
  16. package/dist/cjs/br-checkgroup.cjs.entry.js +3 -5
  17. package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -1
  18. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  20. package/dist/cjs/br-collapse_2.cjs.entry.js +14 -22
  21. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/br-divider.cjs.entry.js +2 -3
  23. package/dist/cjs/br-divider.cjs.entry.js.map +1 -1
  24. package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-dropdown.cjs.entry.js +14 -21
  26. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  27. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
  28. package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
  29. package/dist/cjs/br-footer-item.cjs.entry.js +1 -1
  30. package/dist/cjs/br-footer-legal.cjs.entry.js +1 -1
  31. package/dist/cjs/br-footer-logo.cjs.entry.js +1 -1
  32. package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -1
  33. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
  34. package/dist/cjs/br-footer-social.cjs.entry.js +1 -1
  35. package/dist/cjs/br-footer.cjs.entry.js +1 -1
  36. package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -1
  37. package/dist/cjs/br-input_2.cjs.entry.js +10 -17
  38. package/dist/cjs/br-input_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/br-item.cjs.entry.js +11 -10
  40. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  42. package/dist/cjs/br-loading.cjs.entry.js +4 -5
  43. package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
  44. package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
  45. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  46. package/dist/cjs/br-magic-button.cjs.entry.js.map +1 -1
  47. package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
  48. package/dist/cjs/br-message.cjs.entry.js +1 -1
  49. package/dist/cjs/br-scrim.cjs.entry.js +17 -29
  50. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
  51. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  52. package/dist/cjs/br-select.cjs.entry.js +16 -20
  53. package/dist/cjs/br-select.cjs.entry.js.map +1 -1
  54. package/dist/cjs/br-select.entry.cjs.js.map +1 -1
  55. package/dist/cjs/br-step-item.cjs.entry.js +14 -27
  56. package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
  57. package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
  58. package/dist/cjs/br-step.cjs.entry.js +21 -32
  59. package/dist/cjs/br-step.cjs.entry.js.map +1 -1
  60. package/dist/cjs/br-step.entry.cjs.js.map +1 -1
  61. package/dist/cjs/br-switch.cjs.entry.js +4 -7
  62. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  64. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  65. package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -1
  66. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
  67. package/dist/cjs/br-tab.cjs.entry.js +4 -5
  68. package/dist/cjs/br-tab.cjs.entry.js.map +1 -1
  69. package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
  70. package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
  71. package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
  72. package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
  73. package/dist/cjs/br-table-row.cjs.entry.js +1 -1
  74. package/dist/cjs/br-table.cjs.entry.js +1 -1
  75. package/dist/cjs/br-tag.cjs.entry.js +2 -2
  76. package/dist/cjs/br-textarea.cjs.entry.js +8 -15
  77. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  78. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  79. package/dist/cjs/br-tooltip.cjs.entry.js +18 -28
  80. package/dist/cjs/br-tooltip.cjs.entry.js.map +1 -1
  81. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  82. package/dist/cjs/br-upload.cjs.entry.js +2 -3
  83. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  84. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  85. package/dist/cjs/index-DNnn1o_9.js +4 -0
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/cjs/webcomponents.cjs.js +1 -1
  88. package/dist/collection/collection-manifest.json +1 -0
  89. package/dist/collection/components/avatar/avatar.css +1 -1
  90. package/dist/collection/components/avatar/avatar.js +120 -85
  91. package/dist/collection/components/avatar/avatar.js.map +1 -1
  92. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  93. package/dist/collection/components/breadcrumb/breadcrumb.js +5 -8
  94. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  95. package/dist/collection/components/button/button.css +1 -1
  96. package/dist/collection/components/button/button.js +1 -1
  97. package/dist/collection/components/card/card.css +1 -0
  98. package/dist/collection/components/card/card.js +166 -0
  99. package/dist/collection/components/card/card.js.map +1 -0
  100. package/dist/collection/components/checkbox/checkbox.js +8 -13
  101. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  102. package/dist/collection/components/checkgroup/checkgroup.js +3 -5
  103. package/dist/collection/components/checkgroup/checkgroup.js.map +1 -1
  104. package/dist/collection/components/collapse/collapse.js +11 -18
  105. package/dist/collection/components/collapse/collapse.js.map +1 -1
  106. package/dist/collection/components/divider/divider.js +2 -3
  107. package/dist/collection/components/divider/divider.js.map +1 -1
  108. package/dist/collection/components/dropdown/dropdown.js +14 -21
  109. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  110. package/dist/collection/components/footer/footer.js +1 -1
  111. package/dist/collection/components/footer-category/footer-category.js +2 -2
  112. package/dist/collection/components/footer-item/footer-item.js +1 -1
  113. package/dist/collection/components/footer-legal/footer-legal.js +1 -1
  114. package/dist/collection/components/footer-logo/footer-logo.js +1 -1
  115. package/dist/collection/components/footer-logo/footer-logo.js.map +1 -1
  116. package/dist/collection/components/footer-social/footer-social.js +1 -1
  117. package/dist/collection/components/icon/icon.js +1 -1
  118. package/dist/collection/components/input/input.js +4 -7
  119. package/dist/collection/components/input/input.js.map +1 -1
  120. package/dist/collection/components/item/item.js +11 -10
  121. package/dist/collection/components/item/item.js.map +1 -1
  122. package/dist/collection/components/list/list.js +3 -4
  123. package/dist/collection/components/list/list.js.map +1 -1
  124. package/dist/collection/components/loading/loading.css +1 -1
  125. package/dist/collection/components/loading/loading.js +3 -4
  126. package/dist/collection/components/loading/loading.js.map +1 -1
  127. package/dist/collection/components/magic-button/magic-button.css +1 -1
  128. package/dist/collection/components/magic-button/magic-button.js +1 -1
  129. package/dist/collection/components/magic-button/magic-button.js.map +1 -1
  130. package/dist/collection/components/message/message.js +1 -1
  131. package/dist/collection/components/radio/radio.js +6 -10
  132. package/dist/collection/components/radio/radio.js.map +1 -1
  133. package/dist/collection/components/scrim/scrim.js +17 -29
  134. package/dist/collection/components/scrim/scrim.js.map +1 -1
  135. package/dist/collection/components/select/select.js +16 -20
  136. package/dist/collection/components/select/select.js.map +1 -1
  137. package/dist/collection/components/step/step.js +21 -32
  138. package/dist/collection/components/step/step.js.map +1 -1
  139. package/dist/collection/components/step-item/step-item.js +14 -27
  140. package/dist/collection/components/step-item/step-item.js.map +1 -1
  141. package/dist/collection/components/switch/switch.js +4 -7
  142. package/dist/collection/components/switch/switch.js.map +1 -1
  143. package/dist/collection/components/tab/tab.css +1 -1
  144. package/dist/collection/components/tab/tab.js +3 -4
  145. package/dist/collection/components/tab/tab.js.map +1 -1
  146. package/dist/collection/components/tab-item/tab-item.css +1 -1
  147. package/dist/collection/components/tab-item/tab-item.js +1 -1
  148. package/dist/collection/components/table/table.js +1 -1
  149. package/dist/collection/components/table-cell/table-cell.js +1 -1
  150. package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
  151. package/dist/collection/components/table-header-row/table-header-row.js +1 -1
  152. package/dist/collection/components/table-row/table-row.js +1 -1
  153. package/dist/collection/components/tag/tag.js +2 -2
  154. package/dist/collection/components/textarea/textarea.js +8 -15
  155. package/dist/collection/components/textarea/textarea.js.map +1 -1
  156. package/dist/collection/components/tooltip/tooltip.js +8 -12
  157. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  158. package/dist/collection/components/upload/upload.js +2 -3
  159. package/dist/collection/components/upload/upload.js.map +1 -1
  160. package/dist/collection/pages/components/card/index.js +18 -0
  161. package/dist/collection/pages/scripts/menu.js +13 -0
  162. package/dist/collection/utils/floating-ui.js +10 -16
  163. package/dist/collection/utils/floating-ui.js.map +1 -1
  164. package/dist/components/br-avatar.js +117 -69
  165. package/dist/components/br-avatar.js.map +1 -1
  166. package/dist/components/br-breadcrumb.js +22 -25
  167. package/dist/components/br-breadcrumb.js.map +1 -1
  168. package/dist/components/br-button.js +3 -3
  169. package/dist/components/br-card.d.ts +11 -0
  170. package/dist/components/br-card.js +141 -0
  171. package/dist/components/br-card.js.map +1 -0
  172. package/dist/components/br-checkbox.js +1 -1
  173. package/dist/components/br-checkgroup.js +15 -17
  174. package/dist/components/br-checkgroup.js.map +1 -1
  175. package/dist/components/br-collapse.js +4 -4
  176. package/dist/components/br-divider.js +1 -1
  177. package/dist/components/br-dropdown.js +31 -39
  178. package/dist/components/br-dropdown.js.map +1 -1
  179. package/dist/components/br-footer-category.js +9 -9
  180. package/dist/components/br-footer-item.js +4 -4
  181. package/dist/components/br-footer-legal.js +3 -3
  182. package/dist/components/br-footer-logo.js +8 -7
  183. package/dist/components/br-footer-logo.js.map +1 -1
  184. package/dist/components/br-footer-social.js +5 -5
  185. package/dist/components/br-footer.js +15 -15
  186. package/dist/components/br-icon.js +1 -1
  187. package/dist/components/br-input.js +3 -3
  188. package/dist/components/br-item.js +3 -3
  189. package/dist/components/br-list.js +4 -4
  190. package/dist/components/br-loading.js +7 -6
  191. package/dist/components/br-loading.js.map +1 -1
  192. package/dist/components/br-magic-button.js +10 -9
  193. package/dist/components/br-magic-button.js.map +1 -1
  194. package/dist/components/br-message.js +3 -3
  195. package/dist/components/br-radio.js +4 -4
  196. package/dist/components/br-scrim.js +44 -57
  197. package/dist/components/br-scrim.js.map +1 -1
  198. package/dist/components/br-select.js +41 -46
  199. package/dist/components/br-select.js.map +1 -1
  200. package/dist/components/br-step-item.js +36 -50
  201. package/dist/components/br-step-item.js.map +1 -1
  202. package/dist/components/br-step.js +30 -42
  203. package/dist/components/br-step.js.map +1 -1
  204. package/dist/components/br-switch.js +17 -21
  205. package/dist/components/br-switch.js.map +1 -1
  206. package/dist/components/br-tab-item.js +10 -10
  207. package/dist/components/br-tab.js +15 -16
  208. package/dist/components/br-tab.js.map +1 -1
  209. package/dist/components/br-table-cell.js +3 -3
  210. package/dist/components/br-table-header-cell.js +3 -3
  211. package/dist/components/br-table-header-row.js +3 -3
  212. package/dist/components/br-table-row.js +3 -3
  213. package/dist/components/br-table.js +6 -6
  214. package/dist/components/br-tag.js +8 -8
  215. package/dist/components/br-textarea.js +30 -37
  216. package/dist/components/br-textarea.js.map +1 -1
  217. package/dist/components/br-tooltip.js +118 -132
  218. package/dist/components/br-tooltip.js.map +1 -1
  219. package/dist/components/br-upload.js +14 -15
  220. package/dist/components/br-upload.js.map +1 -1
  221. package/dist/components/index.d.ts +2 -0
  222. package/dist/components/index.js +2 -0
  223. package/dist/components/{p-1eKV5oxP.js → p-3-jhm6pC.js} +8 -9
  224. package/dist/components/p-3-jhm6pC.js.map +1 -0
  225. package/dist/components/{p-BU5QW70m.js → p-BlryBljm.js} +28 -33
  226. package/dist/components/p-BlryBljm.js.map +1 -0
  227. package/dist/components/{p-DqQ_qkzV.js → p-DhONBlJ-.js} +6 -7
  228. package/dist/components/p-DhONBlJ-.js.map +1 -0
  229. package/dist/components/{p-DtU3ZpAC.js → p-DvuyuK9Y.js} +20 -26
  230. package/dist/components/{p-DtU3ZpAC.js.map → p-DvuyuK9Y.js.map} +1 -1
  231. package/dist/components/{p-CwEkkt16.js → p-Hceu1c6D.js} +39 -47
  232. package/dist/components/p-Hceu1c6D.js.map +1 -0
  233. package/dist/components/{p-B3u7t9TB.js → p-mX_ZX0bR.js} +13 -18
  234. package/dist/components/p-mX_ZX0bR.js.map +1 -0
  235. package/dist/components/{p-DoUCJxLj.js → p-ssSt5UuQ.js} +6 -6
  236. package/dist/components/{p-0V7YvY_S.js → p-xvM_htUS.js} +4 -4
  237. package/dist/components/{p-B-uKqjsz.js → p-y6TZslWo.js} +21 -26
  238. package/dist/components/p-y6TZslWo.js.map +1 -0
  239. package/dist/custom-docs/output-docs.js +3 -5
  240. package/dist/custom-docs/output-docs.js.map +1 -1
  241. package/dist/custom-docs/path.js +1 -2
  242. package/dist/custom-docs/path.js.map +1 -1
  243. package/dist/custom-elements.json +317 -70
  244. package/dist/esm/br-avatar.entry.js +104 -31
  245. package/dist/esm/br-avatar.entry.js.map +1 -1
  246. package/dist/esm/br-breadcrumb.entry.js +6 -9
  247. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  248. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  249. package/dist/esm/br-button_2.entry.js +3 -3
  250. package/dist/esm/br-button_2.entry.js.map +1 -1
  251. package/dist/esm/br-card.entry.js +95 -0
  252. package/dist/esm/br-card.entry.js.map +1 -0
  253. package/dist/esm/br-checkbox.entry.js +8 -13
  254. package/dist/esm/br-checkbox.entry.js.map +1 -1
  255. package/dist/esm/br-checkgroup.entry.js +3 -5
  256. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  257. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  258. package/dist/esm/br-collapse_2.entry.js +14 -22
  259. package/dist/esm/br-collapse_2.entry.js.map +1 -1
  260. package/dist/esm/br-divider.entry.js +2 -3
  261. package/dist/esm/br-divider.entry.js.map +1 -1
  262. package/dist/esm/br-dropdown.entry.js +14 -21
  263. package/dist/esm/br-dropdown.entry.js.map +1 -1
  264. package/dist/esm/br-footer-category.entry.js +2 -2
  265. package/dist/esm/br-footer-item.entry.js +1 -1
  266. package/dist/esm/br-footer-legal.entry.js +1 -1
  267. package/dist/esm/br-footer-logo.entry.js +1 -1
  268. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  269. package/dist/esm/br-footer-social.entry.js +1 -1
  270. package/dist/esm/br-footer.entry.js +1 -1
  271. package/dist/esm/br-input.br-radio.entry.js.map +1 -1
  272. package/dist/esm/br-input_2.entry.js +10 -17
  273. package/dist/esm/br-input_2.entry.js.map +1 -1
  274. package/dist/esm/br-item.entry.js +11 -10
  275. package/dist/esm/br-item.entry.js.map +1 -1
  276. package/dist/esm/br-loading.entry.js +4 -5
  277. package/dist/esm/br-loading.entry.js.map +1 -1
  278. package/dist/esm/br-magic-button.entry.js +2 -2
  279. package/dist/esm/br-magic-button.entry.js.map +1 -1
  280. package/dist/esm/br-message.entry.js +1 -1
  281. package/dist/esm/br-scrim.entry.js +17 -29
  282. package/dist/esm/br-scrim.entry.js.map +1 -1
  283. package/dist/esm/br-select.entry.js +16 -20
  284. package/dist/esm/br-select.entry.js.map +1 -1
  285. package/dist/esm/br-step-item.entry.js +14 -27
  286. package/dist/esm/br-step-item.entry.js.map +1 -1
  287. package/dist/esm/br-step.entry.js +21 -32
  288. package/dist/esm/br-step.entry.js.map +1 -1
  289. package/dist/esm/br-switch.entry.js +4 -7
  290. package/dist/esm/br-switch.entry.js.map +1 -1
  291. package/dist/esm/br-tab-item.entry.js +2 -2
  292. package/dist/esm/br-tab-item.entry.js.map +1 -1
  293. package/dist/esm/br-tab.entry.js +4 -5
  294. package/dist/esm/br-tab.entry.js.map +1 -1
  295. package/dist/esm/br-table-cell.entry.js +1 -1
  296. package/dist/esm/br-table-header-cell.entry.js +1 -1
  297. package/dist/esm/br-table-header-row.entry.js +1 -1
  298. package/dist/esm/br-table-row.entry.js +1 -1
  299. package/dist/esm/br-table.entry.js +1 -1
  300. package/dist/esm/br-tag.entry.js +2 -2
  301. package/dist/esm/br-textarea.entry.js +8 -15
  302. package/dist/esm/br-textarea.entry.js.map +1 -1
  303. package/dist/esm/br-tooltip.entry.js +18 -28
  304. package/dist/esm/br-tooltip.entry.js.map +1 -1
  305. package/dist/esm/br-upload.entry.js +2 -3
  306. package/dist/esm/br-upload.entry.js.map +1 -1
  307. package/dist/esm/index-DmA0bHaX.js +4 -0
  308. package/dist/esm/loader.js +1 -1
  309. package/dist/esm/webcomponents.js +1 -1
  310. package/dist/hydrate/index.js +411 -347
  311. package/dist/hydrate/index.mjs +411 -347
  312. package/dist/types/components/avatar/avatar.d.ts +63 -27
  313. package/dist/types/components/card/card.d.ts +44 -0
  314. package/dist/types/components.d.ts +73 -32
  315. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  316. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  317. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  318. package/dist/webcomponents/br-card.entry.esm.js.map +1 -0
  319. package/dist/webcomponents/br-checkbox.entry.esm.js.map +1 -1
  320. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  321. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  322. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  323. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  324. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  325. package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -1
  326. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  327. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  328. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  329. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  330. package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
  331. package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
  332. package/dist/webcomponents/br-step.entry.esm.js.map +1 -1
  333. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  334. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  335. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  336. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  337. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  338. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  339. package/dist/webcomponents/{p-b16a7896.entry.js → p-096b0875.entry.js} +28 -40
  340. package/dist/webcomponents/{p-b16a7896.entry.js.map → p-096b0875.entry.js.map} +1 -1
  341. package/dist/webcomponents/{p-64545afe.entry.js → p-0fe0dcc1.entry.js} +5 -5
  342. package/dist/webcomponents/{p-744eb116.entry.js → p-16f8e426.entry.js} +15 -15
  343. package/dist/webcomponents/{p-67e47dd0.entry.js → p-1d018f30.entry.js} +4 -4
  344. package/dist/webcomponents/{p-d7a4225f.entry.js → p-22682cde.entry.js} +19 -24
  345. package/dist/webcomponents/p-22682cde.entry.js.map +1 -0
  346. package/dist/webcomponents/{p-c966ab17.entry.js → p-24f6adad.entry.js} +28 -35
  347. package/dist/webcomponents/p-24f6adad.entry.js.map +1 -0
  348. package/dist/webcomponents/{p-4f41615a.entry.js → p-2a407917.entry.js} +7 -7
  349. package/dist/webcomponents/{p-d7265a28.entry.js → p-3615200c.entry.js} +11 -10
  350. package/dist/webcomponents/p-3615200c.entry.js.map +1 -0
  351. package/dist/webcomponents/{p-0d46ca85.entry.js → p-46f1f54c.entry.js} +25 -30
  352. package/dist/webcomponents/p-46f1f54c.entry.js.map +1 -0
  353. package/dist/webcomponents/{p-07f5518d.entry.js → p-4b3042fb.entry.js} +44 -53
  354. package/dist/webcomponents/p-4b3042fb.entry.js.map +1 -0
  355. package/dist/webcomponents/{p-db84202e.entry.js → p-502c9692.entry.js} +4 -4
  356. package/dist/webcomponents/{p-6fcaf560.entry.js → p-62ac038c.entry.js} +44 -57
  357. package/dist/webcomponents/p-62ac038c.entry.js.map +1 -0
  358. package/dist/webcomponents/{p-59f07375.entry.js → p-70d4da25.entry.js} +10 -10
  359. package/dist/webcomponents/{p-b7c58efc.entry.js → p-761f7798.entry.js} +7 -7
  360. package/dist/webcomponents/{p-df308ecd.entry.js → p-83df407a.entry.js} +15 -17
  361. package/dist/webcomponents/p-83df407a.entry.js.map +1 -0
  362. package/dist/webcomponents/{p-25addf8c.entry.js → p-88bfa633.entry.js} +4 -4
  363. package/dist/webcomponents/{p-08702123.entry.js → p-8ab5744a.entry.js} +18 -24
  364. package/dist/webcomponents/{p-08702123.entry.js.map → p-8ab5744a.entry.js.map} +1 -1
  365. package/dist/webcomponents/{p-8dba2e0e.entry.js → p-8b15dfc8.entry.js} +114 -128
  366. package/dist/webcomponents/p-8b15dfc8.entry.js.map +1 -0
  367. package/dist/webcomponents/{p-02d3c9c1.entry.js → p-8b24abe6.entry.js} +40 -50
  368. package/dist/webcomponents/p-8b24abe6.entry.js.map +1 -0
  369. package/dist/webcomponents/{p-2190e7a9.entry.js → p-90abf633.entry.js} +5 -6
  370. package/dist/webcomponents/p-90abf633.entry.js.map +1 -0
  371. package/dist/webcomponents/{p-1457ba7e.entry.js → p-94afd91b.entry.js} +10 -9
  372. package/dist/webcomponents/p-94afd91b.entry.js.map +1 -0
  373. package/dist/webcomponents/{p-fb3e3276.entry.js → p-9ed0a45f.entry.js} +9 -8
  374. package/dist/webcomponents/p-9ed0a45f.entry.js.map +1 -0
  375. package/dist/webcomponents/{p-8b4d5bf1.entry.js → p-9f9f80c1.entry.js} +2 -2
  376. package/dist/webcomponents/{p-a9af8d3e.entry.js → p-a802ca08.entry.js} +13 -14
  377. package/dist/webcomponents/p-a802ca08.entry.js.map +1 -0
  378. package/dist/webcomponents/{p-e5b33b7e.entry.js → p-abf81334.entry.js} +15 -19
  379. package/dist/webcomponents/{p-e5b33b7e.entry.js.map → p-abf81334.entry.js.map} +1 -1
  380. package/dist/webcomponents/{p-a06b7d9d.entry.js → p-ac4ce40c.entry.js} +30 -44
  381. package/dist/webcomponents/{p-a06b7d9d.entry.js.map → p-ac4ce40c.entry.js.map} +1 -1
  382. package/dist/webcomponents/{p-9e1743b6.entry.js → p-b019dfca.entry.js} +7 -7
  383. package/dist/webcomponents/{p-f7a210a8.entry.js → p-b565e6e5.entry.js} +4 -4
  384. package/dist/webcomponents/{p-33ab56d5.entry.js → p-b600b95e.entry.js} +18 -21
  385. package/dist/webcomponents/p-b600b95e.entry.js.map +1 -0
  386. package/dist/webcomponents/{p-41443414.entry.js → p-bbd38dd7.entry.js} +4 -4
  387. package/dist/webcomponents/{p-cbaac66c.entry.js → p-cac6afba.entry.js} +29 -37
  388. package/dist/webcomponents/{p-cbaac66c.entry.js.map → p-cac6afba.entry.js.map} +1 -1
  389. package/dist/webcomponents/{p-ac0f37e9.entry.js → p-d549a87b.entry.js} +4 -4
  390. package/dist/webcomponents/{p-51cc97aa.entry.js → p-deb094fb.entry.js} +4 -4
  391. package/dist/webcomponents/{p-3350d161.entry.js → p-df6e707a.entry.js} +116 -66
  392. package/dist/webcomponents/p-df6e707a.entry.js.map +1 -0
  393. package/dist/webcomponents/p-ee9fe4a2.entry.js +119 -0
  394. package/dist/webcomponents/p-ee9fe4a2.entry.js.map +1 -0
  395. package/dist/webcomponents/{p-238a6399.entry.js → p-f1738ae0.entry.js} +16 -17
  396. package/dist/webcomponents/p-f1738ae0.entry.js.map +1 -0
  397. package/dist/webcomponents/webcomponents.esm.js +15 -15
  398. package/dist/webcomponents.html-custom-data.json +13 -5
  399. package/package.json +1 -1
  400. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  401. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  402. package/dist/components/p-1eKV5oxP.js.map +0 -1
  403. package/dist/components/p-B-uKqjsz.js.map +0 -1
  404. package/dist/components/p-B3u7t9TB.js.map +0 -1
  405. package/dist/components/p-BU5QW70m.js.map +0 -1
  406. package/dist/components/p-CwEkkt16.js.map +0 -1
  407. package/dist/components/p-DIPMDb5E.js +0 -55
  408. package/dist/components/p-DIPMDb5E.js.map +0 -1
  409. package/dist/components/p-DqQ_qkzV.js.map +0 -1
  410. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  411. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  412. package/dist/webcomponents/p-02d3c9c1.entry.js.map +0 -1
  413. package/dist/webcomponents/p-07f5518d.entry.js.map +0 -1
  414. package/dist/webcomponents/p-0d46ca85.entry.js.map +0 -1
  415. package/dist/webcomponents/p-1457ba7e.entry.js.map +0 -1
  416. package/dist/webcomponents/p-2190e7a9.entry.js.map +0 -1
  417. package/dist/webcomponents/p-238a6399.entry.js.map +0 -1
  418. package/dist/webcomponents/p-3350d161.entry.js.map +0 -1
  419. package/dist/webcomponents/p-33ab56d5.entry.js.map +0 -1
  420. package/dist/webcomponents/p-6fcaf560.entry.js.map +0 -1
  421. package/dist/webcomponents/p-8dba2e0e.entry.js.map +0 -1
  422. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  423. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  424. package/dist/webcomponents/p-a9af8d3e.entry.js.map +0 -1
  425. package/dist/webcomponents/p-c966ab17.entry.js.map +0 -1
  426. package/dist/webcomponents/p-d7265a28.entry.js.map +0 -1
  427. package/dist/webcomponents/p-d7a4225f.entry.js.map +0 -1
  428. package/dist/webcomponents/p-df308ecd.entry.js.map +0 -1
  429. package/dist/webcomponents/p-fb3e3276.entry.js.map +0 -1
  430. /package/dist/components/{p-DoUCJxLj.js.map → p-ssSt5UuQ.js.map} +0 -0
  431. /package/dist/components/{p-0V7YvY_S.js.map → p-xvM_htUS.js.map} +0 -0
  432. /package/dist/webcomponents/{p-64545afe.entry.js.map → p-0fe0dcc1.entry.js.map} +0 -0
  433. /package/dist/webcomponents/{p-744eb116.entry.js.map → p-16f8e426.entry.js.map} +0 -0
  434. /package/dist/webcomponents/{p-67e47dd0.entry.js.map → p-1d018f30.entry.js.map} +0 -0
  435. /package/dist/webcomponents/{p-4f41615a.entry.js.map → p-2a407917.entry.js.map} +0 -0
  436. /package/dist/webcomponents/{p-db84202e.entry.js.map → p-502c9692.entry.js.map} +0 -0
  437. /package/dist/webcomponents/{p-59f07375.entry.js.map → p-70d4da25.entry.js.map} +0 -0
  438. /package/dist/webcomponents/{p-b7c58efc.entry.js.map → p-761f7798.entry.js.map} +0 -0
  439. /package/dist/webcomponents/{p-25addf8c.entry.js.map → p-88bfa633.entry.js.map} +0 -0
  440. /package/dist/webcomponents/{p-8b4d5bf1.entry.js.map → p-9f9f80c1.entry.js.map} +0 -0
  441. /package/dist/webcomponents/{p-9e1743b6.entry.js.map → p-b019dfca.entry.js.map} +0 -0
  442. /package/dist/webcomponents/{p-f7a210a8.entry.js.map → p-b565e6e5.entry.js.map} +0 -0
  443. /package/dist/webcomponents/{p-41443414.entry.js.map → p-bbd38dd7.entry.js.map} +0 -0
  444. /package/dist/webcomponents/{p-ac0f37e9.entry.js.map → p-d549a87b.entry.js.map} +0 -0
  445. /package/dist/webcomponents/{p-51cc97aa.entry.js.map → p-deb094fb.entry.js.map} +0 -0
@@ -2,7 +2,6 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { __awaiter } from "tslib";
6
5
  import { h, Host } from "@stencil/core";
7
6
  /**
8
7
  * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).
@@ -319,22 +318,18 @@ export class Dropdown {
319
318
  * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.
320
319
  * Este método é marcado com @Method() para que possa ser chamado externamente.
321
320
  */
322
- open() {
323
- return __awaiter(this, void 0, void 0, function* () {
324
- this.isOpen = true;
325
- return { isOpen: this.isOpen };
326
- });
321
+ async open() {
322
+ this.isOpen = true;
323
+ return { isOpen: this.isOpen };
327
324
  }
328
325
  /**
329
326
  * Esconde o dropdown.
330
327
  * Define a propriedade `isOpen` como falsa e retorna o novo estado.
331
328
  * Este método é marcado com @Method() para que possa ser chamado externamente.
332
329
  */
333
- hide() {
334
- return __awaiter(this, void 0, void 0, function* () {
335
- this.isOpen = false;
336
- return { isOpen: this.isOpen };
337
- });
330
+ async hide() {
331
+ this.isOpen = false;
332
+ return { isOpen: this.isOpen };
338
333
  }
339
334
  /**
340
335
  * Foca em um elemento específico com suporte a componentes personalizados
@@ -389,18 +384,16 @@ export class Dropdown {
389
384
  * Define o foco no elemento interno do componente.
390
385
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
391
386
  */
392
- setFocus() {
393
- return __awaiter(this, void 0, void 0, function* () {
394
- if (this.focusableElement !== null && this.focusableElement !== undefined) {
395
- this.focusableElement.focus();
396
- }
397
- else {
398
- this.focusOnTriggerElement();
399
- }
400
- });
387
+ async setFocus() {
388
+ if (this.focusableElement !== null && this.focusableElement !== undefined) {
389
+ this.focusableElement.focus();
390
+ }
391
+ else {
392
+ this.focusOnTriggerElement();
393
+ }
401
394
  }
402
395
  render() {
403
- return (h(Host, { key: '02cb03b288f7a36357cce0c3fd835ae67f357473', "is-open": this.isOpen }, h("div", { key: '7cd2f136a3c4479e56b0846c62379127524006c9', class: this.getCssClassMap(), id: this.customId }, h("div", { key: 'ced3927426f40e6768a242fb18c370c143b494fb', id: "trigger", onClick: this.toggle, "aria-controls": "target", "aria-haspopup": "true" }, h("slot", { key: '844d8f708daf611c70f36a293ab852305e4231ba', name: "trigger" })), h("div", { key: '835dd4b23f3a09faa9ced1bd5b0c3c05f8e7bc76', id: "target", "aria-hidden": !this.isOpen, role: "menu" }, h("slot", { key: 'e8286c83c4231ba7324ce322729bb290bc69fa96', name: "target" })))));
396
+ return (h(Host, { key: '63e96ba58309dfbadec6e2371d5d9a5340cf219b', "is-open": this.isOpen }, h("div", { key: '2ecb19878b352dd7849ae6b4690ee36233be5831', class: this.getCssClassMap(), id: this.customId }, h("div", { key: '2cbc250d8bfab582f37993d1a524e7bcbf268782', id: "trigger", onClick: this.toggle, "aria-controls": "target", "aria-haspopup": "true" }, h("slot", { key: '139a0bb114287d8a179f3c8df2a7ffc4afaf430e', name: "trigger" })), h("div", { key: '25cd93e4c4bcfbaf0512fd4334c7cc30ca270adf', id: "target", "aria-hidden": !this.isOpen, role: "menu" }, h("slot", { key: '14dfdb6e61a0a05ae38bc88593b74aa6c3d33eaa', name: "target" })))));
404
397
  }
405
398
  static get is() { return "br-dropdown"; }
406
399
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot que recebe o elemento acionador\n * @slot target - Slot que recebe o elemento alvo\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 = `br-dropdown-${dropdownId++}`\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 // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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 (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\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.clearDropdownItemListeners()\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\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\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) {\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 é marcado com @Method() para que possa 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 é marcado com @Method() para que possa 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) {\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 if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"]}
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot que recebe o elemento acionador\n * @slot target - Slot que recebe o elemento alvo\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 = `br-dropdown-${dropdownId++}`\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 // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\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 (this.triggerElement !== null && this.triggerElement !== undefined) {\n if (newValue) {\n this.triggerElement.setAttribute('aria-expanded', 'true')\n } else {\n this.triggerElement.removeAttribute('aria-expanded')\n }\n }\n\n if (newValue) {\n this.initializeDropdownItems()\n } else {\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ 'is-opened': newValue })\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\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.clearDropdownItemListeners()\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\n if (this.isOpen) {\n this.initializeDropdownItems()\n }\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\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) {\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 é marcado com @Method() para que possa 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 é marcado com @Method() para que possa 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) {\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 if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n } else {\n if (this.triggerElement) {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\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}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div id=\"trigger\" onClick={this.toggle} aria-controls=\"target\" aria-haspopup=\"true\">\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen} role=\"menu\">\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"]}
@@ -50,7 +50,7 @@ export class Footer {
50
50
  * @returns JSX do componente.
51
51
  */
52
52
  render() {
53
- return (h(Host, { key: '9a668d729f2afa1ede952db8f5fb567f3bfd5061' }, h("div", { key: 'b2dcfe659556e47e02a4f5f05a34f50852da3de6', id: this.customId, class: this.getCssClassMap() }, h("div", { key: '85f0f59803d39cb3a51c4821529116348bdd5247', class: "container-lg" }, h("slot", { key: '27ebdfd88166e76f57ecdc6fbfe29eb39e1e115a', name: "logo" }), h("div", { key: 'f6bf55d6c74e6c2f37c1b0c029cfb2f6c8173021', class: "site-map" }, h("slot", { key: '9f022b635a43c2cb5129ebb8ab0d7af0a850eae7' })), h("div", { key: 'ec96f1f3a94563bf938a2861c854030e788f9df0', class: "social-and-partners" }, h("div", { key: 'b8d4d47e2d8671e3b1ec7f2077b6c5655ee36e49', class: "social-network" }, h("p", { key: 'c8aa69762db105eef740778cf3b2f7ca65bb95ee', class: "social-network-title" }, this.socialNetworkTitle), h("slot", { key: '46b9df88a42c31a9bd6bf6eb370a7d5ba1760b8f', name: "social-network" })), h("div", { key: '85b9b3a74c089b55b4afec28eb76b74b608ae505', class: "partners text-right" }, h("slot", { key: '8978d9110f1e3d67378658ffb6f622befe78fdce', name: "partner-logo" }))), this.hasSlotContent('legal') && h("br-divider", { key: '5a333a73460323060a1d89cf61e7fd470df6ad92', bleed: true }), h("slot", { key: '404d97bb568f00371796576e8691bdcb8d78a75c', name: "legal" })))));
53
+ return (h(Host, { key: '2887a0194f1cea1eb0e17c335c5d6901391dca40' }, h("div", { key: '96fa25e728602479ee2460f47e23912e783e9b57', id: this.customId, class: this.getCssClassMap() }, h("div", { key: '4a94837e94fd46f37075cb4e8c985b4df2f710ac', class: "container-lg" }, h("slot", { key: 'be7eb7d264accc16f8173a6f2ac2ece6ae758ea7', name: "logo" }), h("div", { key: 'e6f8e505a10afd2eebd2f673ccbe45d43b06713f', class: "site-map" }, h("slot", { key: '80f78292898fa52b373e820177aca491466239bc' })), h("div", { key: '01c495915a5a493df53b29158eeb6beeca4a0c04', class: "social-and-partners" }, h("div", { key: 'ddf1ffdd194a754e1327259f64afcc0c05db085e', class: "social-network" }, h("p", { key: '9f50c2372b4aa0e759e68335c0246099f0e32e47', class: "social-network-title" }, this.socialNetworkTitle), h("slot", { key: '9bccafb9773952d2d7743c78192830cd33455e35', name: "social-network" })), h("div", { key: '75fcae4de6300f3f24f1686ad324f6c0db96c8c5', class: "partners text-right" }, h("slot", { key: '1e3205882f8907fd1a1c3603f18aae200ca80289', name: "partner-logo" }))), this.hasSlotContent('legal') && h("br-divider", { key: 'f431c3382d3015b8219578dc9baaf7c26ebf7c23', bleed: true }), h("slot", { key: '74b3bcd7d9c09fb1ee97b48b64d0e702930b2afe', name: "legal" })))));
54
54
  }
55
55
  static get is() { return "br-footer"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -98,9 +98,9 @@ export class FooterCategory {
98
98
  * @returns JSX do componente.
99
99
  */
100
100
  render() {
101
- return (h(Host, { key: '05ef591f5a15ca06a0f9e42c30f71bef8d4190dd', class: this.getRootClassMap() }, h("br-list", { key: '82b9b2cbff33dfe3359c55de3bed6301e8661c14', id: this.customId, class: this.getCssClassMap(), role: "list", "hide-header-divider": this.isDesktop ? true : null, accordion: !this.isDesktop ? this.accordionGroup : null }, this.label &&
101
+ return (h(Host, { key: 'abb0543ec0eb65cc8d0cfe28fe7db1159514e3bb', class: this.getRootClassMap() }, h("br-list", { key: 'fea24187ba0a82145a275f650f72e81d3f9be4be', id: this.customId, class: this.getCssClassMap(), role: "list", "hide-header-divider": this.isDesktop ? true : null, accordion: !this.isDesktop ? this.accordionGroup : null }, this.label &&
102
102
  this.label.trim() !== '' &&
103
- (this.isDesktop ? (h("br-item", null, h("div", { class: "content text-down-01 text-bold text-uppercase" }, this.label))) : (h("div", { slot: "header", class: "content text-down-01 text-bold text-uppercase" }, this.label))), h("slot", { key: '7e8b83a967fbe3f6b871199ce6031c02c0270f91' }), !this.isDesktop && h("br-divider", { key: '82fbb7e6a03d31b9a285f160866150c4aff81922' }))));
103
+ (this.isDesktop ? (h("br-item", null, h("div", { class: "content text-down-01 text-bold text-uppercase" }, this.label))) : (h("div", { slot: "header", class: "content text-down-01 text-bold text-uppercase" }, this.label))), h("slot", { key: '9c327107095ca6da373b3a971d6bc40d1307bd8d' }), !this.isDesktop && h("br-divider", { key: '43de34c23c54f6730e161baf0e65c35f4d7d0108' }))));
104
104
  }
105
105
  static get is() { return "br-footer-category"; }
106
106
  static get encapsulation() { return "shadow"; }
@@ -69,7 +69,7 @@ export class FooterItem {
69
69
  * @returns JSX do componente
70
70
  */
71
71
  render() {
72
- return (h(Host, { key: '57745569a864dfcd7f4bada7892c143896ce224c' }, h("br-item", { key: 'a832f52e5ca96904cdebc066c804b9ad98da3c3a', id: this.customId, href: this.href, role: "listitem", class: this.getCssClassMap() }, h("slot", { key: '627983ffc3f6745424a46f44ffb9b3b56aa95109' }))));
72
+ return (h(Host, { key: 'f4eca1da6fcb20530372cd44e95fef3f58dff574' }, h("br-item", { key: 'dc68c2c11d22e240ba89c85aed6ea274e2a106e4', id: this.customId, href: this.href, role: "listitem", class: this.getCssClassMap() }, h("slot", { key: 'b795e27082ce53b78320211bf4e99ca2784530b0' }))));
73
73
  }
74
74
  static get is() { return "br-footer-item"; }
75
75
  static get encapsulation() { return "shadow"; }
@@ -31,7 +31,7 @@ export class FooterLegal {
31
31
  * @returns JSX do componente.
32
32
  */
33
33
  render() {
34
- return (h(Host, { key: '86e2d3576dc0f1a0189e6d740c0dd4d246825199' }, h("div", { key: 'b249b50298d2c6769f8b6c19af6185ce249acd85', id: this.customId, class: this.getCssClassMap() }, h("slot", { key: '04931c1c8a3cef7995276f8382e1e8d9b0c340c3' }))));
34
+ return (h(Host, { key: '9544e0061bb600ccca17528b1b7b9c94c406cdba' }, h("div", { key: '56791c297d536820f5ccc8d0b957aa361d7bcb01', id: this.customId, class: this.getCssClassMap() }, h("slot", { key: '5b5c12a5c6878b4b3791562155458cca1392b3ce' }))));
35
35
  }
36
36
  static get is() { return "br-footer-legal"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -73,7 +73,7 @@ export class FooterLogo {
73
73
  * @returns JSX que representa o componente.
74
74
  */
75
75
  render() {
76
- return (h(Host, { key: 'f02772139cd2064756d6a17eb56acf3ece4aba65', class: this.getRootCssClassMap() }, h("div", { key: '47ef453a03f934905b744e471dab6bb4ddfdd992', id: this.customId, class: this.getCssClassMap() }, this.href && this.href.trim() !== '' ? (h("a", Object.assign({ href: this.href, target: this.target }, (this.target === '_blank' && { rel: 'noopener noreferrer' })), this.createImageElement())) : (this.createImageElement()))));
76
+ return (h(Host, { key: '15b1c5760240afaf8c2f9712666d2956861d613a', class: this.getRootCssClassMap() }, h("div", { key: '7dd04f9ede2ada71d24897b177146b4d537ea5a5', id: this.customId, class: this.getCssClassMap() }, this.href && this.href.trim() !== '' ? (h("a", { href: this.href, target: this.target, ...(this.target === '_blank' && { rel: 'noopener noreferrer' }) }, this.createImageElement())) : (this.createImageElement()))));
77
77
  }
78
78
  static get is() { return "br-footer-logo"; }
79
79
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"footer-logo.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/footer-logo/footer-logo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAGzC;;;;;GAKG;AAMH,MAAM,OAAO,UAAU;IALvB;QAYE;;;WAGG;QAC+B,aAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE,CAAA;QAE/E;;WAEG;QACsB,QAAG,GAAW,EAAE,CAAA;QAEzC;;WAEG;QACsB,gBAAW,GAAW,MAAM,CAAA;QAErD;;WAEG;QACsB,aAAQ,GAAgC,MAAM,CAAA;QAEvE;;WAEG;QAC+B,cAAS,GAAY,KAAK,CAAA;QAQ5D;;WAEG;QACsB,WAAM,GAA6C,OAAO,CAAA;KAsDpF;IApDC;;;OAGG;IACK,cAAc;QACpB,OAAO;YACL,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;YACxC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC5C,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,OAAO,WAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAI,CAAA;IACtD,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACpC,4DAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CACtC,uBAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,GACtG,IAAI,CAAC,kBAAkB,EAAE,CACxB,CACL,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CACG,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-logo` representa a logo principal do site ou a logo dos parceiros.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n * Para que ele represente a logo principal do site, o atributo `is-partner` deve ser definido como `false`, ou não deve ser definido.\n * Para que ele represente a logo de um parceiro, o atributo `is-partner` deve ser definido como `true`.\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\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: HTMLBrFooterLogoElement\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 * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * URL de destino quando a logo for clicada.\n * Se fornecido, a logo será envolvida em um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Target do link quando href é fornecido.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top' = '_self'\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Cria o elemento de imagem da logo.\n * @returns JSX do elemento img.\n */\n private createImageElement() {\n return <img src={this.src} alt={this.description} />\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n {this.href && this.href.trim() !== '' ? (\n <a href={this.href} target={this.target} {...(this.target === '_blank' && { rel: 'noopener noreferrer' })}>\n {this.createImageElement()}\n </a>\n ) : (\n this.createImageElement()\n )}\n </div>\n </Host>\n )\n }\n}\n"]}
1
+ {"version":3,"file":"footer-logo.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/footer-logo/footer-logo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAGzC;;;;;GAKG;AAMH,MAAM,OAAO,UAAU;IALvB;QAYE;;;WAGG;QAC+B,aAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE,CAAA;QAE/E;;WAEG;QACsB,QAAG,GAAW,EAAE,CAAA;QAEzC;;WAEG;QACsB,gBAAW,GAAW,MAAM,CAAA;QAErD;;WAEG;QACsB,aAAQ,GAAgC,MAAM,CAAA;QAEvE;;WAEG;QAC+B,cAAS,GAAY,KAAK,CAAA;QAQ5D;;WAEG;QACsB,WAAM,GAA6C,OAAO,CAAA;KAsDpF;IApDC;;;OAGG;IACK,cAAc;QACpB,OAAO;YACL,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;YACxC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;YAC5C,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,OAAO,WAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAI,CAAA;IACtD,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACpC,4DAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IACjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CACtC,SAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,KAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,IACtG,IAAI,CAAC,kBAAkB,EAAE,CACxB,CACL,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CACG,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-logo` representa a logo principal do site ou a logo dos parceiros.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n * Para que ele represente a logo principal do site, o atributo `is-partner` deve ser definido como `false`, ou não deve ser definido.\n * Para que ele represente a logo de um parceiro, o atributo `is-partner` deve ser definido como `true`.\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\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: HTMLBrFooterLogoElement\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 * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * URL de destino quando a logo for clicada.\n * Se fornecido, a logo será envolvida em um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Target do link quando href é fornecido.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top' = '_self'\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Cria o elemento de imagem da logo.\n * @returns JSX do elemento img.\n */\n private createImageElement() {\n return <img src={this.src} alt={this.description} />\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n {this.href && this.href.trim() !== '' ? (\n <a href={this.href} target={this.target} {...(this.target === '_blank' && { rel: 'noopener noreferrer' })}>\n {this.createImageElement()}\n </a>\n ) : (\n this.createImageElement()\n )}\n </div>\n </Host>\n )\n }\n}\n"]}
@@ -35,7 +35,7 @@ export class FooterSocial {
35
35
  * @returns JSX do componente.
36
36
  */
37
37
  render() {
38
- return (h("br-button", { key: '9ccaa39cfd8034146b6e1c4af3488f65ad3e79eb', role: "link", class: this.getCssClassMap(), id: this.customId, emphasis: "tertiary", shape: "circle", "aria-label": this.description }, h("a", { key: '4d5ee4dc0a39d0d143037e3456e0d82229402dc6', href: this.href, tabindex: "-1" }, h("br-icon", { key: '6211b526e75cb726e68e1b6734f4876f972f6dbc', "icon-name": `fa-brands:${this.icon}`, "aria-hidden": "true" }))));
38
+ return (h("br-button", { key: '80cbb9b7501ad211d570ceaca4968b7598762531', role: "link", class: this.getCssClassMap(), id: this.customId, emphasis: "tertiary", shape: "circle", "aria-label": this.description }, h("a", { key: 'd65feae0c6fdd881ac90f5a832b36c3c10e482ae', href: this.href, tabindex: "-1" }, h("br-icon", { key: 'e4d304645f910d3fb28f0d5d97e3bfec8530f5ce', "icon-name": `fa-brands:${this.icon}`, "aria-hidden": "true" }))));
39
39
  }
40
40
  static get is() { return "br-footer-social"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -59,7 +59,7 @@ export class Icon {
59
59
  }
60
60
  }
61
61
  render() {
62
- return (h(Host, { key: '34031622cda86244d787398152efa29e0c1be9fb' }, h("iconify-icon", { key: '6d83737d9b4ee08a333b972cd081d13799fb166a', id: this.customId, flip: this.flip, width: this.width, class: this.cssClasses, icon: this.iconName, inline: this.isInline, height: this.height, rotate: this.rotate, role: this.isFocusable ? 'img' : null, tabindex: this.isFocusable ? 0 : '-1', "aria-hidden": this.isFocusable ? null : 'true', focusable: this.isFocusable ? true : 'false' })));
62
+ return (h(Host, { key: 'd355c0319a0a9e39b715a8b8fb306daaa2dbe921' }, h("iconify-icon", { key: '7cf05e8c2b8524db8936068d6a4fe6498b1d047a', id: this.customId, flip: this.flip, width: this.width, class: this.cssClasses, icon: this.iconName, inline: this.isInline, height: this.height, rotate: this.rotate, role: this.isFocusable ? 'img' : null, tabindex: this.isFocusable ? 0 : '-1', "aria-hidden": this.isFocusable ? null : 'true', focusable: this.isFocusable ? true : 'false' })));
63
63
  }
64
64
  static get is() { return "br-icon"; }
65
65
  static get encapsulation() { return "shadow"; }
@@ -75,8 +75,7 @@ export class Input {
75
75
  this.valueChange.emit(this.value);
76
76
  };
77
77
  this.renderLabel = () => {
78
- var _a;
79
- if (((_a = this.label) === null || _a === void 0 ? void 0 : _a.length) > 0) {
78
+ if (this.label?.length > 0) {
80
79
  if (this.isInline) {
81
80
  return (h("div", { class: "input-label" }, h("label", { class: "text-nowrap", htmlFor: this.customId }, this.label)));
82
81
  }
@@ -89,8 +88,7 @@ export class Input {
89
88
  return (h("input", { class: this.isHighlight ? 'input-highlight' : null, id: this.customId, autocomplete: this.autocomplete, disabled: this.disabled, autoCorrect: this.autocorrect, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, step: this.step, onInput: this.handleInput, placeholder: this.placeholder, readonly: this.readonly, required: this.required, title: this.el.title, type: this.type, value: this.value }));
90
89
  };
91
90
  this.renderHelpText = () => {
92
- var _a;
93
- return ((_a = this.helpText) === null || _a === void 0 ? void 0 : _a.length) > 0 ? h("p", null, this.helpText) : h("slot", { name: "help-text" });
91
+ return this.helpText?.length > 0 ? h("p", null, this.helpText) : h("slot", { name: "help-text" });
94
92
  };
95
93
  this.renderIconPassword = () => {
96
94
  const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye';
@@ -144,8 +142,7 @@ export class Input {
144
142
  }
145
143
  }
146
144
  setupSlotFeedbackListener() {
147
- var _a;
148
- const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="feedback"]');
145
+ const slot = this.el.shadowRoot?.querySelector('slot[name="feedback"]');
149
146
  if (slot) {
150
147
  slot.addEventListener('slotchange', () => {
151
148
  this.syncStateWithSlotFeedback();
@@ -199,7 +196,7 @@ export class Input {
199
196
  }
200
197
  }
201
198
  render() {
202
- return (h(Host, { key: '145ba0db2dfa33902007af70f297e06f4e510887' }, h("div", { key: '08e84189a992b361dca3d0ce57a31d90ff6efcd6', class: this.getInputCssClassMap() }, this.renderLabel(), this.isInline ? this.renderInlineInputContent() : this.renderInputContent(), this.renderFeedback())));
199
+ return (h(Host, { key: 'dd61cca5554a7c548384604b909c72339eec480c' }, h("div", { key: '11fe03981e72e889a9bbf14002062a7640dedf6a', class: this.getInputCssClassMap() }, this.renderLabel(), this.isInline ? this.renderInlineInputContent() : this.renderInputContent(), this.renderFeedback())));
203
200
  }
204
201
  static get is() { return "br-input"; }
205
202
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/input/input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n * @slot feedback - Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\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: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) readonly type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) readonly autocomplete: 'on' | 'off'\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 /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) readonly isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-input-${inputId++}`\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) readonly required: boolean = false\n\n /**\n * Valor exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) readonly helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) readonly autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) readonly pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n /**\n * Texto exibido no botão de ação à direita do input.\n */\n @Prop({ reflect: true }) readonly actionLabel: string\n\n @State() isPasswordVisible: boolean = false\n\n @State() internalState: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n @State() hasFeedbackSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.hasFeedbackSlot = this.hasSlotContent('feedback')\n this.internalState = this.state\n\n if (this.hasFeedbackSlot) {\n this.initializeStateWithFeedback()\n }\n }\n\n componentDidLoad() {\n if (this.hasFeedbackSlot) {\n this.setupSlotFeedbackListener()\n }\n }\n\n private initializeStateWithFeedback() {\n const initialMessageElement = this.el.querySelector('br-message')\n\n if (initialMessageElement) {\n const messageState = initialMessageElement.getAttribute('state')\n this.internalState = (messageState as 'info' | 'warning' | 'danger' | 'success') || this.state\n } else {\n this.internalState = this.state\n }\n }\n\n private setupSlotFeedbackListener() {\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"feedback\"]')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.syncStateWithSlotFeedback()\n })\n }\n }\n\n private syncStateWithSlotFeedback() {\n const messageElement = this.el.querySelector('br-message')\n\n if (messageElement) {\n this.internalState = messageElement.getAttribute('state') as 'info' | 'warning' | 'danger' | 'success'\n } else {\n this.internalState = this.state\n }\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.internalState === 'success',\n danger: this.internalState === 'danger',\n info: this.internalState === 'info',\n warning: this.internalState === 'warning',\n }\n }\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange: EventEmitter<string>\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.isPasswordVisible ? 'Esconder senha' : 'Mostrar senha'}\n aria-pressed={this.isPasswordVisible ? 'true' : 'false'}\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button class=\"button-transform\" shape=\"circle\" density=\"small\" aria-label={this.actionLabel}>\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n private renderFeedback() {\n if (this.hasFeedbackSlot) {\n return <slot name=\"feedback\"></slot>\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n\n {this.renderFeedback()}\n </div>\n </Host>\n )\n }\n}\n\nlet inputId = 0\n"]}
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/input/input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n * @slot feedback - Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\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: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) readonly type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) readonly autocomplete: 'on' | 'off'\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 /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) readonly isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-input-${inputId++}`\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) readonly required: boolean = false\n\n /**\n * Valor exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) readonly helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) readonly autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) readonly pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n /**\n * Texto exibido no botão de ação à direita do input.\n */\n @Prop({ reflect: true }) readonly actionLabel: string\n\n @State() isPasswordVisible: boolean = false\n\n @State() internalState: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n @State() hasFeedbackSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.hasFeedbackSlot = this.hasSlotContent('feedback')\n this.internalState = this.state\n\n if (this.hasFeedbackSlot) {\n this.initializeStateWithFeedback()\n }\n }\n\n componentDidLoad() {\n if (this.hasFeedbackSlot) {\n this.setupSlotFeedbackListener()\n }\n }\n\n private initializeStateWithFeedback() {\n const initialMessageElement = this.el.querySelector('br-message')\n\n if (initialMessageElement) {\n const messageState = initialMessageElement.getAttribute('state')\n this.internalState = (messageState as 'info' | 'warning' | 'danger' | 'success') || this.state\n } else {\n this.internalState = this.state\n }\n }\n\n private setupSlotFeedbackListener() {\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"feedback\"]')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.syncStateWithSlotFeedback()\n })\n }\n }\n\n private syncStateWithSlotFeedback() {\n const messageElement = this.el.querySelector('br-message')\n\n if (messageElement) {\n this.internalState = messageElement.getAttribute('state') as 'info' | 'warning' | 'danger' | 'success'\n } else {\n this.internalState = this.state\n }\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.internalState === 'success',\n danger: this.internalState === 'danger',\n info: this.internalState === 'info',\n warning: this.internalState === 'warning',\n }\n }\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange: EventEmitter<string>\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.isPasswordVisible ? 'Esconder senha' : 'Mostrar senha'}\n aria-pressed={this.isPasswordVisible ? 'true' : 'false'}\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button class=\"button-transform\" shape=\"circle\" density=\"small\" aria-label={this.actionLabel}>\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n private renderFeedback() {\n if (this.hasFeedbackSlot) {\n return <slot name=\"feedback\"></slot>\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n\n {this.renderFeedback()}\n </div>\n </Host>\n )\n }\n}\n\nlet inputId = 0\n"]}
@@ -2,7 +2,6 @@
2
2
  * Construído por SERPRO
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
- import { __awaiter } from "tslib";
6
5
  import { h, Host, } from "@stencil/core";
7
6
  /**
8
7
  * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).
@@ -131,11 +130,10 @@ export class Item {
131
130
  };
132
131
  }
133
132
  getTagType() {
134
- var _a;
135
133
  if (this.isButton) {
136
134
  return 'button';
137
135
  }
138
- if (((_a = this.href) === null || _a === void 0 ? void 0 : _a.length) > 0) {
136
+ if (this.href?.length > 0) {
139
137
  return 'a';
140
138
  }
141
139
  return 'div';
@@ -143,7 +141,13 @@ export class Item {
143
141
  getAttributes() {
144
142
  const TagType = this.getTagType();
145
143
  const baseAttributes = TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target };
146
- return Object.assign(Object.assign({}, baseAttributes), { 'aria-disabled': this.disabled ? 'true' : null, 'aria-current': this.isActive ? 'true' : null, 'data-toggle': this.isInteractive ? 'selection' : null, 'is-selected': this.selectedValue ? true : null });
144
+ return {
145
+ ...baseAttributes,
146
+ 'aria-disabled': this.disabled ? 'true' : null,
147
+ 'aria-current': this.isActive ? 'true' : null,
148
+ 'data-toggle': this.isInteractive ? 'selection' : null,
149
+ 'is-selected': this.selectedValue ? true : null,
150
+ };
147
151
  }
148
152
  updateCheckboxSelectionState() {
149
153
  if (this.hasRadios)
@@ -245,17 +249,14 @@ export class Item {
245
249
  * Define o foco no elemento interno do componente.
246
250
  * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
247
251
  */
248
- setFocus() {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- var _a;
251
- (_a = this.focusableElement) === null || _a === void 0 ? void 0 : _a.focus();
252
- });
252
+ async setFocus() {
253
+ this.focusableElement?.focus();
253
254
  }
254
255
  render() {
255
256
  const TagType = this.getTagType();
256
257
  const attributes = this.getAttributes();
257
258
  const classList = this.getCssClassMap();
258
- return (h(Host, { key: 'f61dbe87513b7975c1eb1a7e121addb2cc3d3703' }, h(TagType, Object.assign({ key: '56f0183bc036790c8ce8792753559fd147ecf59a', class: classList }, attributes, { onClick: this.handleClick, id: this.customId, tabIndex: this.disabled ? -1 : this.isInteractive ? 0 : -1, ref: (el) => (this.focusableElement = el), onKeyDown: (event) => this.handleKeydown(event), onMouseDown: (e) => e.preventDefault() }), this.hasSlotStart || this.hasSlotEnd ? (h("div", { class: "row align-items-center" }, this.hasSlotStart && (h("div", { class: "col-auto" }, h("slot", { name: "start" }))), h("div", { class: "col" }, h("slot", null)), this.hasSlotEnd && (h("div", { class: "col-auto" }, h("slot", { name: "end" }))))) : (h("slot", null)))));
259
+ return (h(Host, { key: 'c03a213e92501778b7b448b20c04f210b350271b' }, h(TagType, { key: 'e2b88fa9f4147f0d0056566c9a013fa79ee06c2f', class: classList, ...attributes, onClick: this.handleClick, id: this.customId, tabIndex: this.disabled ? -1 : this.isInteractive ? 0 : -1, ref: (el) => (this.focusableElement = el), onKeyDown: (event) => this.handleKeydown(event), onMouseDown: (e) => e.preventDefault() }, this.hasSlotStart || this.hasSlotEnd ? (h("div", { class: "row align-items-center" }, this.hasSlotStart && (h("div", { class: "col-auto" }, h("slot", { name: "start" }))), h("div", { class: "col" }, h("slot", null)), this.hasSlotEnd && (h("div", { class: "col-auto" }, h("slot", { name: "end" }))))) : (h("slot", null)))));
259
260
  }
260
261
  static get is() { return "br-item"; }
261
262
  static get encapsulation() { return "shadow"; }