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

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 (457) 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 +16 -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 +2 -2
  49. package/dist/cjs/br-message.cjs.entry.js.map +1 -1
  50. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  51. package/dist/cjs/br-scrim.cjs.entry.js +17 -29
  52. package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
  53. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  54. package/dist/cjs/br-select.cjs.entry.js +16 -20
  55. package/dist/cjs/br-select.cjs.entry.js.map +1 -1
  56. package/dist/cjs/br-select.entry.cjs.js.map +1 -1
  57. package/dist/cjs/br-step-item.cjs.entry.js +14 -27
  58. package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
  59. package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
  60. package/dist/cjs/br-step.cjs.entry.js +21 -32
  61. package/dist/cjs/br-step.cjs.entry.js.map +1 -1
  62. package/dist/cjs/br-step.entry.cjs.js.map +1 -1
  63. package/dist/cjs/br-switch.cjs.entry.js +4 -7
  64. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  65. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  66. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  67. package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -1
  68. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
  69. package/dist/cjs/br-tab.cjs.entry.js +4 -5
  70. package/dist/cjs/br-tab.cjs.entry.js.map +1 -1
  71. package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
  72. package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
  73. package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
  74. package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
  75. package/dist/cjs/br-table-row.cjs.entry.js +1 -1
  76. package/dist/cjs/br-table.cjs.entry.js +1 -1
  77. package/dist/cjs/br-tag.cjs.entry.js +2 -2
  78. package/dist/cjs/br-textarea.cjs.entry.js +8 -15
  79. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  80. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  81. package/dist/cjs/br-tooltip.cjs.entry.js +18 -28
  82. package/dist/cjs/br-tooltip.cjs.entry.js.map +1 -1
  83. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  84. package/dist/cjs/br-upload.cjs.entry.js +2 -3
  85. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  86. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  87. package/dist/cjs/index-DNnn1o_9.js +4 -0
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/cjs/webcomponents.cjs.js +1 -1
  90. package/dist/collection/collection-manifest.json +1 -0
  91. package/dist/collection/components/avatar/avatar.css +1 -1
  92. package/dist/collection/components/avatar/avatar.js +120 -85
  93. package/dist/collection/components/avatar/avatar.js.map +1 -1
  94. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  95. package/dist/collection/components/breadcrumb/breadcrumb.js +5 -8
  96. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  97. package/dist/collection/components/button/button.css +1 -1
  98. package/dist/collection/components/button/button.js +1 -1
  99. package/dist/collection/components/card/card.css +1 -0
  100. package/dist/collection/components/card/card.js +166 -0
  101. package/dist/collection/components/card/card.js.map +1 -0
  102. package/dist/collection/components/checkbox/checkbox.js +8 -13
  103. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  104. package/dist/collection/components/checkgroup/checkgroup.js +3 -5
  105. package/dist/collection/components/checkgroup/checkgroup.js.map +1 -1
  106. package/dist/collection/components/collapse/collapse.js +11 -18
  107. package/dist/collection/components/collapse/collapse.js.map +1 -1
  108. package/dist/collection/components/divider/divider.js +2 -3
  109. package/dist/collection/components/divider/divider.js.map +1 -1
  110. package/dist/collection/components/dropdown/dropdown.js +14 -21
  111. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  112. package/dist/collection/components/footer/footer.js +1 -1
  113. package/dist/collection/components/footer-category/footer-category.js +2 -2
  114. package/dist/collection/components/footer-item/footer-item.js +1 -1
  115. package/dist/collection/components/footer-legal/footer-legal.js +1 -1
  116. package/dist/collection/components/footer-logo/footer-logo.js +1 -1
  117. package/dist/collection/components/footer-logo/footer-logo.js.map +1 -1
  118. package/dist/collection/components/footer-social/footer-social.js +1 -1
  119. package/dist/collection/components/icon/icon.js +42 -1
  120. package/dist/collection/components/icon/icon.js.map +1 -1
  121. package/dist/collection/components/input/input.js +4 -7
  122. package/dist/collection/components/input/input.js.map +1 -1
  123. package/dist/collection/components/item/item.js +11 -10
  124. package/dist/collection/components/item/item.js.map +1 -1
  125. package/dist/collection/components/list/list.js +3 -4
  126. package/dist/collection/components/list/list.js.map +1 -1
  127. package/dist/collection/components/loading/loading.css +1 -1
  128. package/dist/collection/components/loading/loading.js +3 -4
  129. package/dist/collection/components/loading/loading.js.map +1 -1
  130. package/dist/collection/components/magic-button/magic-button.css +1 -1
  131. package/dist/collection/components/magic-button/magic-button.js +1 -1
  132. package/dist/collection/components/magic-button/magic-button.js.map +1 -1
  133. package/dist/collection/components/message/message.css +1 -1
  134. package/dist/collection/components/message/message.js +1 -1
  135. package/dist/collection/components/message/message.js.map +1 -1
  136. package/dist/collection/components/radio/radio.js +6 -10
  137. package/dist/collection/components/radio/radio.js.map +1 -1
  138. package/dist/collection/components/scrim/scrim.js +17 -29
  139. package/dist/collection/components/scrim/scrim.js.map +1 -1
  140. package/dist/collection/components/select/select.js +16 -20
  141. package/dist/collection/components/select/select.js.map +1 -1
  142. package/dist/collection/components/step/step.js +21 -32
  143. package/dist/collection/components/step/step.js.map +1 -1
  144. package/dist/collection/components/step-item/step-item.js +14 -27
  145. package/dist/collection/components/step-item/step-item.js.map +1 -1
  146. package/dist/collection/components/switch/switch.js +4 -7
  147. package/dist/collection/components/switch/switch.js.map +1 -1
  148. package/dist/collection/components/tab/tab.css +1 -1
  149. package/dist/collection/components/tab/tab.js +3 -4
  150. package/dist/collection/components/tab/tab.js.map +1 -1
  151. package/dist/collection/components/tab-item/tab-item.css +1 -1
  152. package/dist/collection/components/tab-item/tab-item.js +1 -1
  153. package/dist/collection/components/table/table.js +1 -1
  154. package/dist/collection/components/table-cell/table-cell.js +1 -1
  155. package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
  156. package/dist/collection/components/table-header-row/table-header-row.js +1 -1
  157. package/dist/collection/components/table-row/table-row.js +1 -1
  158. package/dist/collection/components/tag/tag.js +2 -2
  159. package/dist/collection/components/textarea/textarea.js +8 -15
  160. package/dist/collection/components/textarea/textarea.js.map +1 -1
  161. package/dist/collection/components/tooltip/tooltip.js +8 -12
  162. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  163. package/dist/collection/components/upload/upload.js +2 -3
  164. package/dist/collection/components/upload/upload.js.map +1 -1
  165. package/dist/collection/pages/components/card/index.js +18 -0
  166. package/dist/collection/pages/scripts/menu.js +13 -0
  167. package/dist/collection/utils/floating-ui.js +10 -16
  168. package/dist/collection/utils/floating-ui.js.map +1 -1
  169. package/dist/components/br-avatar.js +117 -69
  170. package/dist/components/br-avatar.js.map +1 -1
  171. package/dist/components/br-breadcrumb.js +22 -25
  172. package/dist/components/br-breadcrumb.js.map +1 -1
  173. package/dist/components/br-button.js +3 -3
  174. package/dist/components/br-card.d.ts +11 -0
  175. package/dist/components/br-card.js +141 -0
  176. package/dist/components/br-card.js.map +1 -0
  177. package/dist/components/br-checkbox.js +1 -1
  178. package/dist/components/br-checkgroup.js +15 -17
  179. package/dist/components/br-checkgroup.js.map +1 -1
  180. package/dist/components/br-collapse.js +1 -1
  181. package/dist/components/br-divider.js +1 -1
  182. package/dist/components/br-dropdown.js +31 -39
  183. package/dist/components/br-dropdown.js.map +1 -1
  184. package/dist/components/br-footer-category.js +9 -9
  185. package/dist/components/br-footer-item.js +4 -4
  186. package/dist/components/br-footer-legal.js +3 -3
  187. package/dist/components/br-footer-logo.js +8 -7
  188. package/dist/components/br-footer-logo.js.map +1 -1
  189. package/dist/components/br-footer-social.js +5 -5
  190. package/dist/components/br-footer.js +15 -15
  191. package/dist/components/br-icon.js +1 -1
  192. package/dist/components/br-input.js +3 -3
  193. package/dist/components/br-item.js +3 -3
  194. package/dist/components/br-list.js +4 -4
  195. package/dist/components/br-loading.js +7 -6
  196. package/dist/components/br-loading.js.map +1 -1
  197. package/dist/components/br-magic-button.js +10 -9
  198. package/dist/components/br-magic-button.js.map +1 -1
  199. package/dist/components/br-message.js +12 -10
  200. package/dist/components/br-message.js.map +1 -1
  201. package/dist/components/br-radio.js +4 -4
  202. package/dist/components/br-scrim.js +44 -57
  203. package/dist/components/br-scrim.js.map +1 -1
  204. package/dist/components/br-select.js +41 -46
  205. package/dist/components/br-select.js.map +1 -1
  206. package/dist/components/br-step-item.js +36 -50
  207. package/dist/components/br-step-item.js.map +1 -1
  208. package/dist/components/br-step.js +30 -42
  209. package/dist/components/br-step.js.map +1 -1
  210. package/dist/components/br-switch.js +17 -21
  211. package/dist/components/br-switch.js.map +1 -1
  212. package/dist/components/br-tab-item.js +10 -10
  213. package/dist/components/br-tab.js +15 -16
  214. package/dist/components/br-tab.js.map +1 -1
  215. package/dist/components/br-table-cell.js +3 -3
  216. package/dist/components/br-table-header-cell.js +3 -3
  217. package/dist/components/br-table-header-row.js +3 -3
  218. package/dist/components/br-table-row.js +3 -3
  219. package/dist/components/br-table.js +6 -6
  220. package/dist/components/br-tag.js +8 -8
  221. package/dist/components/br-textarea.js +30 -37
  222. package/dist/components/br-textarea.js.map +1 -1
  223. package/dist/components/br-tooltip.js +111 -125
  224. package/dist/components/br-tooltip.js.map +1 -1
  225. package/dist/components/br-upload.js +14 -15
  226. package/dist/components/br-upload.js.map +1 -1
  227. package/dist/components/index.d.ts +2 -0
  228. package/dist/components/index.js +2 -0
  229. package/dist/components/{p-CwEkkt16.js → p-BUfNFi9N.js} +39 -47
  230. package/dist/components/p-BUfNFi9N.js.map +1 -0
  231. package/dist/components/{p-BU5QW70m.js → p-BlryBljm.js} +28 -33
  232. package/dist/components/p-BlryBljm.js.map +1 -0
  233. package/dist/components/{p-0V7YvY_S.js → p-CYtPDYp6.js} +22 -6
  234. package/dist/components/p-CYtPDYp6.js.map +1 -0
  235. package/dist/components/{p-1eKV5oxP.js → p-D0wwETCp.js} +8 -9
  236. package/dist/components/p-D0wwETCp.js.map +1 -0
  237. package/dist/components/{p-B3u7t9TB.js → p-DZhiQXGc.js} +13 -18
  238. package/dist/components/p-DZhiQXGc.js.map +1 -0
  239. package/dist/components/{p-DqQ_qkzV.js → p-DhONBlJ-.js} +6 -7
  240. package/dist/components/p-DhONBlJ-.js.map +1 -0
  241. package/dist/components/{p-DtU3ZpAC.js → p-DvuyuK9Y.js} +20 -26
  242. package/dist/components/{p-DtU3ZpAC.js.map → p-DvuyuK9Y.js.map} +1 -1
  243. package/dist/components/{p-DoUCJxLj.js → p-ssSt5UuQ.js} +6 -6
  244. package/dist/components/{p-B-uKqjsz.js → p-y6TZslWo.js} +21 -26
  245. package/dist/components/p-y6TZslWo.js.map +1 -0
  246. package/dist/custom-docs/output-docs.js +3 -5
  247. package/dist/custom-docs/output-docs.js.map +1 -1
  248. package/dist/custom-docs/path.js +1 -2
  249. package/dist/custom-docs/path.js.map +1 -1
  250. package/dist/custom-elements.json +341 -70
  251. package/dist/esm/br-avatar.entry.js +104 -31
  252. package/dist/esm/br-avatar.entry.js.map +1 -1
  253. package/dist/esm/br-breadcrumb.entry.js +6 -9
  254. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  255. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  256. package/dist/esm/br-button_2.entry.js +16 -3
  257. package/dist/esm/br-button_2.entry.js.map +1 -1
  258. package/dist/esm/br-card.entry.js +95 -0
  259. package/dist/esm/br-card.entry.js.map +1 -0
  260. package/dist/esm/br-checkbox.entry.js +8 -13
  261. package/dist/esm/br-checkbox.entry.js.map +1 -1
  262. package/dist/esm/br-checkgroup.entry.js +3 -5
  263. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  264. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  265. package/dist/esm/br-collapse_2.entry.js +14 -22
  266. package/dist/esm/br-collapse_2.entry.js.map +1 -1
  267. package/dist/esm/br-divider.entry.js +2 -3
  268. package/dist/esm/br-divider.entry.js.map +1 -1
  269. package/dist/esm/br-dropdown.entry.js +14 -21
  270. package/dist/esm/br-dropdown.entry.js.map +1 -1
  271. package/dist/esm/br-footer-category.entry.js +2 -2
  272. package/dist/esm/br-footer-item.entry.js +1 -1
  273. package/dist/esm/br-footer-legal.entry.js +1 -1
  274. package/dist/esm/br-footer-logo.entry.js +1 -1
  275. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  276. package/dist/esm/br-footer-social.entry.js +1 -1
  277. package/dist/esm/br-footer.entry.js +1 -1
  278. package/dist/esm/br-input.br-radio.entry.js.map +1 -1
  279. package/dist/esm/br-input_2.entry.js +10 -17
  280. package/dist/esm/br-input_2.entry.js.map +1 -1
  281. package/dist/esm/br-item.entry.js +11 -10
  282. package/dist/esm/br-item.entry.js.map +1 -1
  283. package/dist/esm/br-loading.entry.js +4 -5
  284. package/dist/esm/br-loading.entry.js.map +1 -1
  285. package/dist/esm/br-magic-button.entry.js +2 -2
  286. package/dist/esm/br-magic-button.entry.js.map +1 -1
  287. package/dist/esm/br-message.entry.js +2 -2
  288. package/dist/esm/br-message.entry.js.map +1 -1
  289. package/dist/esm/br-scrim.entry.js +17 -29
  290. package/dist/esm/br-scrim.entry.js.map +1 -1
  291. package/dist/esm/br-select.entry.js +16 -20
  292. package/dist/esm/br-select.entry.js.map +1 -1
  293. package/dist/esm/br-step-item.entry.js +14 -27
  294. package/dist/esm/br-step-item.entry.js.map +1 -1
  295. package/dist/esm/br-step.entry.js +21 -32
  296. package/dist/esm/br-step.entry.js.map +1 -1
  297. package/dist/esm/br-switch.entry.js +4 -7
  298. package/dist/esm/br-switch.entry.js.map +1 -1
  299. package/dist/esm/br-tab-item.entry.js +2 -2
  300. package/dist/esm/br-tab-item.entry.js.map +1 -1
  301. package/dist/esm/br-tab.entry.js +4 -5
  302. package/dist/esm/br-tab.entry.js.map +1 -1
  303. package/dist/esm/br-table-cell.entry.js +1 -1
  304. package/dist/esm/br-table-header-cell.entry.js +1 -1
  305. package/dist/esm/br-table-header-row.entry.js +1 -1
  306. package/dist/esm/br-table-row.entry.js +1 -1
  307. package/dist/esm/br-table.entry.js +1 -1
  308. package/dist/esm/br-tag.entry.js +2 -2
  309. package/dist/esm/br-textarea.entry.js +8 -15
  310. package/dist/esm/br-textarea.entry.js.map +1 -1
  311. package/dist/esm/br-tooltip.entry.js +18 -28
  312. package/dist/esm/br-tooltip.entry.js.map +1 -1
  313. package/dist/esm/br-upload.entry.js +2 -3
  314. package/dist/esm/br-upload.entry.js.map +1 -1
  315. package/dist/esm/index-DmA0bHaX.js +4 -0
  316. package/dist/esm/loader.js +1 -1
  317. package/dist/esm/webcomponents.js +1 -1
  318. package/dist/hydrate/index.js +428 -350
  319. package/dist/hydrate/index.mjs +428 -350
  320. package/dist/types/components/avatar/avatar.d.ts +63 -27
  321. package/dist/types/components/card/card.d.ts +44 -0
  322. package/dist/types/components/icon/icon.d.ts +35 -0
  323. package/dist/types/components.d.ts +87 -32
  324. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  325. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  326. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  327. package/dist/webcomponents/br-card.entry.esm.js.map +1 -0
  328. package/dist/webcomponents/br-checkbox.entry.esm.js.map +1 -1
  329. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  330. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  331. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  332. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  333. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  334. package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -1
  335. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  336. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  337. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  338. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  339. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  340. package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
  341. package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
  342. package/dist/webcomponents/br-step.entry.esm.js.map +1 -1
  343. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  344. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  345. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  346. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  347. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  348. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  349. package/dist/webcomponents/{p-b16a7896.entry.js → p-096b0875.entry.js} +28 -40
  350. package/dist/webcomponents/{p-b16a7896.entry.js.map → p-096b0875.entry.js.map} +1 -1
  351. package/dist/webcomponents/{p-8b4d5bf1.entry.js → p-0b45efc3.entry.js} +7 -5
  352. package/dist/webcomponents/p-0b45efc3.entry.js.map +1 -0
  353. package/dist/webcomponents/{p-64545afe.entry.js → p-0fe0dcc1.entry.js} +5 -5
  354. package/dist/webcomponents/{p-744eb116.entry.js → p-16f8e426.entry.js} +15 -15
  355. package/dist/webcomponents/{p-67e47dd0.entry.js → p-1d018f30.entry.js} +4 -4
  356. package/dist/webcomponents/{p-d7a4225f.entry.js → p-22682cde.entry.js} +19 -24
  357. package/dist/webcomponents/p-22682cde.entry.js.map +1 -0
  358. package/dist/webcomponents/{p-c966ab17.entry.js → p-24f6adad.entry.js} +28 -35
  359. package/dist/webcomponents/p-24f6adad.entry.js.map +1 -0
  360. package/dist/webcomponents/{p-4f41615a.entry.js → p-2a407917.entry.js} +7 -7
  361. package/dist/webcomponents/{p-d7265a28.entry.js → p-3615200c.entry.js} +11 -10
  362. package/dist/webcomponents/p-3615200c.entry.js.map +1 -0
  363. package/dist/webcomponents/{p-0d46ca85.entry.js → p-46f1f54c.entry.js} +25 -30
  364. package/dist/webcomponents/p-46f1f54c.entry.js.map +1 -0
  365. package/dist/webcomponents/{p-07f5518d.entry.js → p-4b3042fb.entry.js} +44 -53
  366. package/dist/webcomponents/p-4b3042fb.entry.js.map +1 -0
  367. package/dist/webcomponents/{p-db84202e.entry.js → p-502c9692.entry.js} +4 -4
  368. package/dist/webcomponents/{p-6fcaf560.entry.js → p-62ac038c.entry.js} +44 -57
  369. package/dist/webcomponents/p-62ac038c.entry.js.map +1 -0
  370. package/dist/webcomponents/{p-59f07375.entry.js → p-70d4da25.entry.js} +10 -10
  371. package/dist/webcomponents/{p-b7c58efc.entry.js → p-761f7798.entry.js} +7 -7
  372. package/dist/webcomponents/{p-df308ecd.entry.js → p-83df407a.entry.js} +15 -17
  373. package/dist/webcomponents/p-83df407a.entry.js.map +1 -0
  374. package/dist/webcomponents/{p-25addf8c.entry.js → p-88bfa633.entry.js} +4 -4
  375. package/dist/webcomponents/{p-08702123.entry.js → p-8ab5744a.entry.js} +18 -24
  376. package/dist/webcomponents/{p-08702123.entry.js.map → p-8ab5744a.entry.js.map} +1 -1
  377. package/dist/webcomponents/{p-8dba2e0e.entry.js → p-8b15dfc8.entry.js} +114 -128
  378. package/dist/webcomponents/p-8b15dfc8.entry.js.map +1 -0
  379. package/dist/webcomponents/{p-02d3c9c1.entry.js → p-8b24abe6.entry.js} +40 -50
  380. package/dist/webcomponents/p-8b24abe6.entry.js.map +1 -0
  381. package/dist/webcomponents/{p-2190e7a9.entry.js → p-90abf633.entry.js} +5 -6
  382. package/dist/webcomponents/p-90abf633.entry.js.map +1 -0
  383. package/dist/webcomponents/{p-1457ba7e.entry.js → p-94afd91b.entry.js} +10 -9
  384. package/dist/webcomponents/p-94afd91b.entry.js.map +1 -0
  385. package/dist/webcomponents/{p-fb3e3276.entry.js → p-9ed0a45f.entry.js} +9 -8
  386. package/dist/webcomponents/p-9ed0a45f.entry.js.map +1 -0
  387. package/dist/webcomponents/{p-a9af8d3e.entry.js → p-a802ca08.entry.js} +13 -14
  388. package/dist/webcomponents/p-a802ca08.entry.js.map +1 -0
  389. package/dist/webcomponents/{p-e5b33b7e.entry.js → p-abf81334.entry.js} +15 -19
  390. package/dist/webcomponents/{p-e5b33b7e.entry.js.map → p-abf81334.entry.js.map} +1 -1
  391. package/dist/webcomponents/{p-a06b7d9d.entry.js → p-ac4ce40c.entry.js} +30 -44
  392. package/dist/webcomponents/{p-a06b7d9d.entry.js.map → p-ac4ce40c.entry.js.map} +1 -1
  393. package/dist/webcomponents/{p-f7a210a8.entry.js → p-b565e6e5.entry.js} +4 -4
  394. package/dist/webcomponents/{p-33ab56d5.entry.js → p-b600b95e.entry.js} +18 -21
  395. package/dist/webcomponents/p-b600b95e.entry.js.map +1 -0
  396. package/dist/webcomponents/{p-41443414.entry.js → p-bbd38dd7.entry.js} +4 -4
  397. package/dist/webcomponents/{p-cbaac66c.entry.js → p-cac6afba.entry.js} +29 -37
  398. package/dist/webcomponents/{p-cbaac66c.entry.js.map → p-cac6afba.entry.js.map} +1 -1
  399. package/dist/webcomponents/{p-ac0f37e9.entry.js → p-d549a87b.entry.js} +4 -4
  400. package/dist/webcomponents/{p-51cc97aa.entry.js → p-deb094fb.entry.js} +4 -4
  401. package/dist/webcomponents/{p-3350d161.entry.js → p-df6e707a.entry.js} +116 -66
  402. package/dist/webcomponents/p-df6e707a.entry.js.map +1 -0
  403. package/dist/webcomponents/p-ee9fe4a2.entry.js +119 -0
  404. package/dist/webcomponents/p-ee9fe4a2.entry.js.map +1 -0
  405. package/dist/webcomponents/{p-238a6399.entry.js → p-f1738ae0.entry.js} +16 -17
  406. package/dist/webcomponents/p-f1738ae0.entry.js.map +1 -0
  407. package/dist/webcomponents/{p-9e1743b6.entry.js → p-fa0aeb0f.entry.js} +23 -8
  408. package/dist/webcomponents/p-fa0aeb0f.entry.js.map +1 -0
  409. package/dist/webcomponents/webcomponents.esm.js +15 -15
  410. package/dist/webcomponents.html-custom-data.json +15 -6
  411. package/package.json +1 -1
  412. package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
  413. package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
  414. package/dist/components/p-0V7YvY_S.js.map +0 -1
  415. package/dist/components/p-1eKV5oxP.js.map +0 -1
  416. package/dist/components/p-B-uKqjsz.js.map +0 -1
  417. package/dist/components/p-B3u7t9TB.js.map +0 -1
  418. package/dist/components/p-BU5QW70m.js.map +0 -1
  419. package/dist/components/p-CwEkkt16.js.map +0 -1
  420. package/dist/components/p-DIPMDb5E.js +0 -55
  421. package/dist/components/p-DIPMDb5E.js.map +0 -1
  422. package/dist/components/p-DqQ_qkzV.js.map +0 -1
  423. package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
  424. package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
  425. package/dist/webcomponents/p-02d3c9c1.entry.js.map +0 -1
  426. package/dist/webcomponents/p-07f5518d.entry.js.map +0 -1
  427. package/dist/webcomponents/p-0d46ca85.entry.js.map +0 -1
  428. package/dist/webcomponents/p-1457ba7e.entry.js.map +0 -1
  429. package/dist/webcomponents/p-2190e7a9.entry.js.map +0 -1
  430. package/dist/webcomponents/p-238a6399.entry.js.map +0 -1
  431. package/dist/webcomponents/p-3350d161.entry.js.map +0 -1
  432. package/dist/webcomponents/p-33ab56d5.entry.js.map +0 -1
  433. package/dist/webcomponents/p-6fcaf560.entry.js.map +0 -1
  434. package/dist/webcomponents/p-8b4d5bf1.entry.js.map +0 -1
  435. package/dist/webcomponents/p-8dba2e0e.entry.js.map +0 -1
  436. package/dist/webcomponents/p-9e1743b6.entry.js.map +0 -1
  437. package/dist/webcomponents/p-DIPMDb5E.js +0 -55
  438. package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
  439. package/dist/webcomponents/p-a9af8d3e.entry.js.map +0 -1
  440. package/dist/webcomponents/p-c966ab17.entry.js.map +0 -1
  441. package/dist/webcomponents/p-d7265a28.entry.js.map +0 -1
  442. package/dist/webcomponents/p-d7a4225f.entry.js.map +0 -1
  443. package/dist/webcomponents/p-df308ecd.entry.js.map +0 -1
  444. package/dist/webcomponents/p-fb3e3276.entry.js.map +0 -1
  445. /package/dist/components/{p-DoUCJxLj.js.map → p-ssSt5UuQ.js.map} +0 -0
  446. /package/dist/webcomponents/{p-64545afe.entry.js.map → p-0fe0dcc1.entry.js.map} +0 -0
  447. /package/dist/webcomponents/{p-744eb116.entry.js.map → p-16f8e426.entry.js.map} +0 -0
  448. /package/dist/webcomponents/{p-67e47dd0.entry.js.map → p-1d018f30.entry.js.map} +0 -0
  449. /package/dist/webcomponents/{p-4f41615a.entry.js.map → p-2a407917.entry.js.map} +0 -0
  450. /package/dist/webcomponents/{p-db84202e.entry.js.map → p-502c9692.entry.js.map} +0 -0
  451. /package/dist/webcomponents/{p-59f07375.entry.js.map → p-70d4da25.entry.js.map} +0 -0
  452. /package/dist/webcomponents/{p-b7c58efc.entry.js.map → p-761f7798.entry.js.map} +0 -0
  453. /package/dist/webcomponents/{p-25addf8c.entry.js.map → p-88bfa633.entry.js.map} +0 -0
  454. /package/dist/webcomponents/{p-f7a210a8.entry.js.map → p-b565e6e5.entry.js.map} +0 -0
  455. /package/dist/webcomponents/{p-41443414.entry.js.map → p-bbd38dd7.entry.js.map} +0 -0
  456. /package/dist/webcomponents/{p-ac0f37e9.entry.js.map → p-d549a87b.entry.js.map} +0 -0
  457. /package/dist/webcomponents/{p-51cc97aa.entry.js.map → p-deb094fb.entry.js.map} +0 -0
@@ -0,0 +1,166 @@
1
+ /*!
2
+ * Construído por SERPRO
3
+ * © https://serpro.gov.br/ - MIT License.
4
+ */
5
+ import { h, Host } from "@stencil/core";
6
+ /**
7
+ * O componente Card é um container versátil para apresentação de conteúdo estruturado.
8
+ * Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
9
+ * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
10
+ *
11
+ * @slot default - Conteúdo principal do card quando não usar slots estruturados
12
+ * @slot header - Conteúdo do cabeçalho do card
13
+ * @slot content - Conteúdo principal do card (quando usar estrutura com slots)
14
+ * @slot footer - Conteúdo do rodapé do card
15
+ */
16
+ export class BrCard {
17
+ constructor() {
18
+ /**
19
+ * Identificador único.
20
+ * Caso não seja fornecido, um ID gerado automaticamente será usado.
21
+ */
22
+ this.customId = `br-card-${brCardId++}`;
23
+ /**
24
+ * Define se o card está desabilitado.
25
+ * Quando true, o card fica com opacidade reduzida e não responde a interações.
26
+ */
27
+ this.disabled = false;
28
+ /**
29
+ * Define se o card tem hover interativo.
30
+ * Quando true, o card terá efeitos visuais ao passar o mouse.
31
+ */
32
+ this.hover = false;
33
+ this.hasHeader = false;
34
+ this.hasContent = false;
35
+ this.hasFooter = false;
36
+ }
37
+ componentWillLoad() {
38
+ this.checkSlots();
39
+ }
40
+ componentDidLoad() {
41
+ // Observar mudanças nos slots
42
+ const slotElements = this.el.shadowRoot?.querySelectorAll('slot');
43
+ slotElements?.forEach((slot) => {
44
+ slot.addEventListener('slotchange', () => this.checkSlots());
45
+ });
46
+ }
47
+ checkSlots() {
48
+ const headerSlot = this.el.querySelector('[slot="header"]');
49
+ const contentSlot = this.el.querySelector('[slot="content"]');
50
+ const footerSlot = this.el.querySelector('[slot="footer"]');
51
+ this.hasHeader = !!headerSlot;
52
+ this.hasContent = !!contentSlot;
53
+ this.hasFooter = !!footerSlot;
54
+ }
55
+ getCssClassMap() {
56
+ return {
57
+ 'br-card': true,
58
+ disabled: this.disabled,
59
+ hover: this.hover && !this.disabled,
60
+ };
61
+ }
62
+ getHeaderClassMap() {
63
+ return {
64
+ 'card-header': true,
65
+ };
66
+ }
67
+ getContentClassMap() {
68
+ return {
69
+ 'card-content': true,
70
+ };
71
+ }
72
+ getFooterClassMap() {
73
+ return {
74
+ 'card-footer': true,
75
+ };
76
+ }
77
+ render() {
78
+ const hasStructuredContent = this.hasHeader || this.hasContent || this.hasFooter;
79
+ return (h(Host, { key: '6f0edeab8a09a60a59194e1ed8bee79e8d311883', id: this.customId, "aria-disabled": this.disabled ? 'true' : null }, h("div", { key: '393ee59c13b0e0aa227b59f5265b6d6709227e9d', class: this.getCssClassMap(), part: "wrapper" }, hasStructuredContent ? ([
80
+ this.hasHeader && (h("div", { class: this.getHeaderClassMap(), part: "header" }, h("slot", { name: "header" }))),
81
+ (this.hasContent || (!this.hasHeader && !this.hasFooter)) && (h("div", { class: this.getContentClassMap(), part: "content" }, h("slot", { name: "content" }, h("slot", null)))),
82
+ this.hasFooter && (h("div", { class: this.getFooterClassMap(), part: "footer" }, h("slot", { name: "footer" }))),
83
+ ]) : (h("div", { class: this.getContentClassMap(), part: "content" }, h("slot", null))))));
84
+ }
85
+ static get is() { return "br-card"; }
86
+ static get encapsulation() { return "shadow"; }
87
+ static get formAssociated() { return true; }
88
+ static get originalStyleUrls() {
89
+ return {
90
+ "$": ["card.scss"]
91
+ };
92
+ }
93
+ static get styleUrls() {
94
+ return {
95
+ "$": ["card.css"]
96
+ };
97
+ }
98
+ static get properties() {
99
+ return {
100
+ "customId": {
101
+ "type": "string",
102
+ "mutable": false,
103
+ "complexType": {
104
+ "original": "string",
105
+ "resolved": "string",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": false,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": "Identificador \u00FAnico.\nCaso n\u00E3o seja fornecido, um ID gerado automaticamente ser\u00E1 usado."
113
+ },
114
+ "getter": false,
115
+ "setter": false,
116
+ "attribute": "custom-id",
117
+ "reflect": true,
118
+ "defaultValue": "`br-card-${brCardId++}`"
119
+ },
120
+ "disabled": {
121
+ "type": "boolean",
122
+ "mutable": false,
123
+ "complexType": {
124
+ "original": "boolean",
125
+ "resolved": "boolean",
126
+ "references": {}
127
+ },
128
+ "required": false,
129
+ "optional": false,
130
+ "docs": {
131
+ "tags": [],
132
+ "text": "Define se o card est\u00E1 desabilitado.\nQuando true, o card fica com opacidade reduzida e n\u00E3o responde a intera\u00E7\u00F5es."
133
+ },
134
+ "getter": false,
135
+ "setter": false,
136
+ "attribute": "disabled",
137
+ "reflect": true,
138
+ "defaultValue": "false"
139
+ },
140
+ "hover": {
141
+ "type": "boolean",
142
+ "mutable": false,
143
+ "complexType": {
144
+ "original": "boolean",
145
+ "resolved": "boolean",
146
+ "references": {}
147
+ },
148
+ "required": false,
149
+ "optional": false,
150
+ "docs": {
151
+ "tags": [],
152
+ "text": "Define se o card tem hover interativo.\nQuando true, o card ter\u00E1 efeitos visuais ao passar o mouse."
153
+ },
154
+ "getter": false,
155
+ "setter": false,
156
+ "attribute": "hover",
157
+ "reflect": true,
158
+ "defaultValue": "false"
159
+ }
160
+ };
161
+ }
162
+ static get elementRef() { return "el"; }
163
+ static get attachInternalsMemberName() { return "elementInternals"; }
164
+ }
165
+ let brCardId = 0;
166
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/card/card.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O componente Card é um container versátil para apresentação de conteúdo estruturado.\n * Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).\n *\n * @slot default - Conteúdo principal do card quando não usar slots estruturados\n * @slot header - Conteúdo do cabeçalho do card\n * @slot content - Conteúdo principal do card (quando usar estrutura com slots)\n * @slot footer - Conteúdo do rodapé do card\n */\n@Component({\n tag: 'br-card',\n styleUrl: 'card.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class BrCard {\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: HTMLBrCardElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-card-${brCardId++}`\n\n /**\n * Define se o card está desabilitado.\n * Quando true, o card fica com opacidade reduzida e não responde a interações.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define se o card tem hover interativo.\n * Quando true, o card terá efeitos visuais ao passar o mouse.\n */\n @Prop({ reflect: true }) hover: boolean = false\n\n private hasHeader: boolean = false\n private hasContent: boolean = false\n private hasFooter: boolean = false\n\n componentWillLoad() {\n this.checkSlots()\n }\n\n componentDidLoad() {\n // Observar mudanças nos slots\n const slotElements = this.el.shadowRoot?.querySelectorAll('slot')\n slotElements?.forEach((slot) => {\n slot.addEventListener('slotchange', () => this.checkSlots())\n })\n }\n\n private checkSlots() {\n const headerSlot = this.el.querySelector('[slot=\"header\"]')\n const contentSlot = this.el.querySelector('[slot=\"content\"]')\n const footerSlot = this.el.querySelector('[slot=\"footer\"]')\n\n this.hasHeader = !!headerSlot\n this.hasContent = !!contentSlot\n this.hasFooter = !!footerSlot\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-card': true,\n disabled: this.disabled,\n hover: this.hover && !this.disabled,\n }\n }\n\n private getHeaderClassMap(): CssClassMap {\n return {\n 'card-header': true,\n }\n }\n\n private getContentClassMap(): CssClassMap {\n return {\n 'card-content': true,\n }\n }\n\n private getFooterClassMap(): CssClassMap {\n return {\n 'card-footer': true,\n }\n }\n\n render() {\n const hasStructuredContent = this.hasHeader || this.hasContent || this.hasFooter\n\n return (\n <Host id={this.customId} aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()} part=\"wrapper\">\n {hasStructuredContent ? (\n [\n this.hasHeader && (\n <div class={this.getHeaderClassMap()} part=\"header\">\n <slot name=\"header\" />\n </div>\n ),\n (this.hasContent || (!this.hasHeader && !this.hasFooter)) && (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n ),\n this.hasFooter && (\n <div class={this.getFooterClassMap()} part=\"footer\">\n <slot name=\"footer\" />\n </div>\n ),\n ]\n ) : (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot />\n </div>\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet brCardId = 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/checkbox?tab=designer).
@@ -84,24 +83,20 @@ export class Checkbox {
84
83
  * Define o estado indeterminado do checkbox.
85
84
  * @param value Novo valor para o estado indeterminado.
86
85
  */
87
- setIndeterminate(value) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- this.indeterminate = value;
90
- this.updateIndeterminate(value);
91
- this.indeterminateChange.emit(this.indeterminate);
92
- });
86
+ async setIndeterminate(value) {
87
+ this.indeterminate = value;
88
+ this.updateIndeterminate(value);
89
+ this.indeterminateChange.emit(this.indeterminate);
93
90
  }
94
91
  /**
95
92
  * Inverte o valor da prop `checked`
96
93
  */
97
- toggleChecked() {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- this.checked = !this.checked;
100
- this.checkedChange.emit(this.checked);
101
- });
94
+ async toggleChecked() {
95
+ this.checked = !this.checked;
96
+ this.checkedChange.emit(this.checked);
102
97
  }
103
98
  render() {
104
- return (h(Host, { key: 'b8140bc039c827a27ba1152fc769c4c372e6d856' }, h("div", { key: 'c0eed4bfa3e0d07176b5a0bd4492d52e7910787b', class: this.getCssClassMap() }, h("input", { key: '77851d28057919206a706d2d072108cedaaf77ab', type: "checkbox", id: this.customId, name: this.name, checked: this.checked, disabled: this.disabled, value: this.value, onChange: this.handleCheckedChange, ref: (el) => el && (el.indeterminate = this.indeterminate), "aria-checked": this.getAriaCheckedValue() }), h("label", { key: '223f18ae206722e17a4132325e1d421817fe84be', htmlFor: this.customId, class: this.hasHiddenLabel ? 'visually-hidden' : undefined }, this.slotDefault ? h("slot", null) : this.label))));
99
+ return (h(Host, { key: '9de109b1a7f821b2e6a91142fcdb9a15d6e9f4b5' }, h("div", { key: '5a1104832549e0c24f85113826102c84417bcc4b', class: this.getCssClassMap() }, h("input", { key: '1a77d373058264b36600119aba2f7d4492a17b43', type: "checkbox", id: this.customId, name: this.name, checked: this.checked, disabled: this.disabled, value: this.value, onChange: this.handleCheckedChange, ref: (el) => el && (el.indeterminate = this.indeterminate), "aria-checked": this.getAriaCheckedValue() }), h("label", { key: 'fbf048549dfd036823bd1ce24311d667cfb0c67a', htmlFor: this.customId, class: this.hasHiddenLabel ? 'visually-hidden' : undefined }, this.slotDefault ? h("slot", null) : this.label))));
105
100
  }
106
101
  static get is() { return "br-checkbox"; }
107
102
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/checkbox/checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,GACN,MAAM,eAAe,CAAA;AAItB;;;;GAIG;AAOH,MAAM,OAAO,QAAQ;IANrB;QAeE;;;;;WAKG;QACqC,kBAAa,GAAY,KAAK,CAAA;QAEtE;;;WAGG;QACqC,YAAO,GAAY,KAAK,CAAA;QAEhE;;;WAGG;QAC+B,aAAQ,GAAW,eAAe,UAAU,EAAE,EAAE,CAAA;QAElF;;WAEG;QAC+B,aAAQ,GAAY,KAAK,CAAA;QAE3D;;;WAGG;QAC+B,mBAAc,GAAY,KAAK,CAAA;QA8BxD,gBAAW,GAAY,KAAK,CAAA;QA6CpB,wBAAmB,GAAG,GAAG,EAAE;YAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,8DAA8D;gBAC9D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;gBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;gBAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;YAC5B,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC,CAAA;KA4CF;IAxFC,mBAAmB,CAAC,QAAiB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAA;QAChC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAA;IAC7C,CAAC;IAEO,cAAc;QACpB,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;YAC7B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACxC,CAAC;IAgBD;;;OAGG;IAEG,gBAAgB,CAAC,KAAc;;YACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;YAC1B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACnD,CAAC;KAAA;IAED;;OAEG;IAEG,aAAa;;YACjB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;KAAA;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC/B,8DACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAClC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,kBAC5C,IAAI,CAAC,mBAAmB,EAAE,GACxC;gBACF,8DAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,IACtF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CACxC,CACJ,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF;AAED,IAAI,UAAU,GAAG,CAAC,CAAA","sourcesContent":["import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport { 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/checkbox?tab=designer).\n *\n * @slot default - O texto descritivo pode ser passado por propriedade (label) ou por slot.\n */\n@Component({\n tag: 'br-checkbox',\n styleUrl: 'checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Checkbox {\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: HTMLBrCheckboxElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o estado intermediário do checkbox.\n * Quando verdadeiro, exibe uma marcação parcial visual que indica seleção parcial.\n * Útil para representar grupos onde alguns itens estão selecionados, mas não todos.\n * Ao clicar no checkbox neste estado, ele será automaticamente alterado para marcado.\n */\n @Prop({ reflect: true, mutable: true }) indeterminate: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: 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-checkbox-${checkboxId++}`\n\n /**\n * Desativa o checkbox, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define se o label associado ao checkbox deve ser oculto.\n * Se definido como verdadeiro, o texto do label será oculto, mas o checkbox ainda estará visível e funcional.\n */\n @Prop({ reflect: true }) readonly hasHiddenLabel: boolean = false\n\n /**\n * Texto descritivo exibido à direita do checkbox.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Define o nome do checkbox, que é utilizado para agrupar checkboxes em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name!: string\n\n /**\n * Indica a validade do checkbox.\n * Valores possíveis:\n * 'valid': O checkbox é considerado válido.\n * 'invalid': O checkbox é considerado inválido.\n * Se não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.\n */\n @Prop({ reflect: true }) readonly state: 'valid' | 'invalid'\n\n /**\n * Define o valor associado ao checkbox quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o checkbox está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o checkbox está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n @State() slotDefault: boolean = false\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n\n /**\n * Disparado depois que o valor do `indeterminate` foi alterado.\n */\n @Event() indeterminateChange: EventEmitter<boolean>\n\n @Watch('indeterminate')\n updateIndeterminate(newValue: boolean) {\n const input = this.el.shadowRoot.querySelector('input')\n if (input !== null) {\n input.indeterminate = newValue\n }\n }\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML !== ''\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkbox': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n private getAriaCheckedValue(): string {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n private readonly handleCheckedChange = () => {\n if (this.indeterminate) {\n // Sai do estado indeterminado ao clicar e define como marcado\n this.indeterminate = false\n this.checked = true\n this.indeterminateChange.emit(this.indeterminate)\n } else {\n // Alterna entre marcado e desmarcado\n this.checked = !this.checked\n this.indeterminate = false\n }\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o estado indeterminado do checkbox.\n * @param value Novo valor para o estado indeterminado.\n */\n @Method()\n async setIndeterminate(value: boolean) {\n this.indeterminate = value\n this.updateIndeterminate(value)\n this.indeterminateChange.emit(this.indeterminate)\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n type=\"checkbox\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onChange={this.handleCheckedChange}\n ref={(el) => el && (el.indeterminate = this.indeterminate)}\n aria-checked={this.getAriaCheckedValue()}\n />\n <label htmlFor={this.customId} class={this.hasHiddenLabel ? 'visually-hidden' : undefined}>\n {this.slotDefault ? <slot></slot> : this.label}\n </label>\n </div>\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n"]}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/checkbox/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,GACN,MAAM,eAAe,CAAA;AAItB;;;;GAIG;AAOH,MAAM,OAAO,QAAQ;IANrB;QAeE;;;;;WAKG;QACqC,kBAAa,GAAY,KAAK,CAAA;QAEtE;;;WAGG;QACqC,YAAO,GAAY,KAAK,CAAA;QAEhE;;;WAGG;QAC+B,aAAQ,GAAW,eAAe,UAAU,EAAE,EAAE,CAAA;QAElF;;WAEG;QAC+B,aAAQ,GAAY,KAAK,CAAA;QAE3D;;;WAGG;QAC+B,mBAAc,GAAY,KAAK,CAAA;QA8BxD,gBAAW,GAAY,KAAK,CAAA;QA6CpB,wBAAmB,GAAG,GAAG,EAAE;YAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,8DAA8D;gBAC9D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;gBAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;gBACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACnD,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;gBAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;YAC5B,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC,CAAA;KA4CF;IAxFC,mBAAmB,CAAC,QAAiB;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAA;QAChC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAA;IAC7C,CAAC;IAEO,cAAc;QACpB,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;YAC7B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACxC,CAAC;IAgBD;;;OAGG;IAEH,KAAK,CAAC,gBAAgB,CAAC,KAAc;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC/B,8DACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAClC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,kBAC5C,IAAI,CAAC,mBAAmB,EAAE,GACxC;gBACF,8DAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,IACtF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,eAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CACxC,CACJ,CACD,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF;AAED,IAAI,UAAU,GAAG,CAAC,CAAA","sourcesContent":["import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport { 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/checkbox?tab=designer).\n *\n * @slot default - O texto descritivo pode ser passado por propriedade (label) ou por slot.\n */\n@Component({\n tag: 'br-checkbox',\n styleUrl: 'checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Checkbox {\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: HTMLBrCheckboxElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o estado intermediário do checkbox.\n * Quando verdadeiro, exibe uma marcação parcial visual que indica seleção parcial.\n * Útil para representar grupos onde alguns itens estão selecionados, mas não todos.\n * Ao clicar no checkbox neste estado, ele será automaticamente alterado para marcado.\n */\n @Prop({ reflect: true, mutable: true }) indeterminate: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: 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-checkbox-${checkboxId++}`\n\n /**\n * Desativa o checkbox, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define se o label associado ao checkbox deve ser oculto.\n * Se definido como verdadeiro, o texto do label será oculto, mas o checkbox ainda estará visível e funcional.\n */\n @Prop({ reflect: true }) readonly hasHiddenLabel: boolean = false\n\n /**\n * Texto descritivo exibido à direita do checkbox.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Define o nome do checkbox, que é utilizado para agrupar checkboxes em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name!: string\n\n /**\n * Indica a validade do checkbox.\n * Valores possíveis:\n * 'valid': O checkbox é considerado válido.\n * 'invalid': O checkbox é considerado inválido.\n * Se não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.\n */\n @Prop({ reflect: true }) readonly state: 'valid' | 'invalid'\n\n /**\n * Define o valor associado ao checkbox quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o checkbox está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o checkbox está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n @State() slotDefault: boolean = false\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n\n /**\n * Disparado depois que o valor do `indeterminate` foi alterado.\n */\n @Event() indeterminateChange: EventEmitter<boolean>\n\n @Watch('indeterminate')\n updateIndeterminate(newValue: boolean) {\n const input = this.el.shadowRoot.querySelector('input')\n if (input !== null) {\n input.indeterminate = newValue\n }\n }\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML !== ''\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkbox': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n private getAriaCheckedValue(): string {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n private readonly handleCheckedChange = () => {\n if (this.indeterminate) {\n // Sai do estado indeterminado ao clicar e define como marcado\n this.indeterminate = false\n this.checked = true\n this.indeterminateChange.emit(this.indeterminate)\n } else {\n // Alterna entre marcado e desmarcado\n this.checked = !this.checked\n this.indeterminate = false\n }\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o estado indeterminado do checkbox.\n * @param value Novo valor para o estado indeterminado.\n */\n @Method()\n async setIndeterminate(value: boolean) {\n this.indeterminate = value\n this.updateIndeterminate(value)\n this.indeterminateChange.emit(this.indeterminate)\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n type=\"checkbox\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onChange={this.handleCheckedChange}\n ref={(el) => el && (el.indeterminate = this.indeterminate)}\n aria-checked={this.getAriaCheckedValue()}\n />\n <label htmlFor={this.customId} class={this.hasHiddenLabel ? 'visually-hidden' : undefined}>\n {this.slotDefault ? <slot></slot> : this.label}\n </label>\n </div>\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n"]}
@@ -39,13 +39,12 @@ export class Checkgroup {
39
39
  */
40
40
  this.isIndeterminate = false;
41
41
  this.handleAllCheckboxChange = () => {
42
- var _a;
43
42
  const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'));
44
43
  checkListAll.forEach((item) => {
45
44
  item.checked = this.checked;
46
45
  item.indeterminate = false;
47
46
  });
48
- const parentCheckbox = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-checkbox');
47
+ const parentCheckbox = this.el.shadowRoot?.querySelector('br-checkbox');
49
48
  if (parentCheckbox !== null) {
50
49
  parentCheckbox.indeterminate = false;
51
50
  }
@@ -71,8 +70,7 @@ export class Checkgroup {
71
70
  }
72
71
  }
73
72
  isParentCheckbox(target) {
74
- var _a;
75
- return target === ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('br-checkbox'));
73
+ return target === this.el.shadowRoot?.querySelector('br-checkbox');
76
74
  }
77
75
  updateGroupState() {
78
76
  const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'));
@@ -92,7 +90,7 @@ export class Checkgroup {
92
90
  }
93
91
  }
94
92
  render() {
95
- return (h(Host, { key: '584369e5d1eff98042d7f72a637235734a141ec7' }, h("div", { key: 'a528f80d77410796c0af686f0547f072fcc45fe9', class: this.getCssClassMap(), style: { width: '100%' } }, this.label && h("label", { key: '80565dd71b014b6854eb8cf50d256d7f1ba911ed' }, this.label), h("div", { key: '8f5479895fbec97644ed0a0ad00b5fac05619965', class: "mb-1" }, h("div", { key: '4fc35e4c7c2bc629010fc5a3d6cf4c30cc5a1549', class: "checkgroup-example" }, h("br-checkbox", { key: '2e5c7fcc0a38a19090c1756f7c4936650848a6bc', name: `checkgroup-${this.customId}`, checked: this.checked, indeterminate: this.isIndeterminate, label: this.checked ? this.labelDesselecionado : this.labelSelecionado, "aria-label": this.checked ? this.labelDesselecionado : this.labelSelecionado, onCheckedChange: this.handleChange.bind(this) }))), h("div", { key: '74f30a4dc24e649a612b3160286dd5bb499bca16', class: "mb-1 ml-2" }, h("slot", { key: '58e3bf06d48e1f9d34f52b69ff0cdcf79081b025' })))));
93
+ return (h(Host, { key: 'fb3950bcab241e2411853ff1a2491c567198afbd' }, h("div", { key: 'c0ff160e7720d1653aa4096805f509c5e0c5b62d', class: this.getCssClassMap(), style: { width: '100%' } }, this.label && h("label", { key: 'b2760957e14d47de1742136f59da0ef8fa073b69' }, this.label), h("div", { key: 'c796b5d35383665b5a134cf1e47f596756702f75', class: "mb-1" }, h("div", { key: '25ffac4bb5a98abf329b0afc97ec1274e1588cc4', class: "checkgroup-example" }, h("br-checkbox", { key: '05362ca6f95b500d3546506350d59338e53683a9', name: `checkgroup-${this.customId}`, checked: this.checked, indeterminate: this.isIndeterminate, label: this.checked ? this.labelDesselecionado : this.labelSelecionado, "aria-label": this.checked ? this.labelDesselecionado : this.labelSelecionado, onCheckedChange: this.handleChange.bind(this) }))), h("div", { key: 'ecd2f87464520e2c994dc91c86550a44a778a2c7', class: "mb-1 ml-2" }, h("slot", { key: '2dd728be25b6e663b07d50e35fa180c5954d266e' })))));
96
94
  }
97
95
  static get is() { return "br-checkgroup"; }
98
96
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"checkgroup.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/checkgroup/checkgroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, h, Host, Listen, Prop, State } 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/utilitarios/js/checkgroup?tab=desenvolvedor).\n *\n * @slot default - Slot para adicionar os checkboxes que serão controlados pelo checkgroup.\n */\n@Component({\n tag: 'br-checkgroup',\n styleUrl: 'checkgroup.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Checkgroup {\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: HTMLBrCheckgroupElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Texto descritivo do grupo.\n */\n @Prop() label: string\n\n /**\n * Define o texto do label quando o checkbox está marcado.\n */\n @Prop({ reflect: true }) labelSelecionado: string = 'Desselecionar tudo'\n\n /**\n * Define o texto do label quando o checkbox está desmarcado.\n */\n @Prop({ reflect: true }) labelDesselecionado: string = 'Selecionar tudo'\n\n /**\n * Define o estado intermediário do checkbox.\n * Se definido como verdadeiro, o checkbox exibirá um estado intermediário, que é um estado visual que indica que a opção está parcialmente selecionada.\n * Este estado é útil quando o checkbox faz parte de um grupo com seleção parcial.\n */\n @Prop({ reflect: true }) indeterminate: 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-checkgroup-${checkgroupId++}`\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @State() checked: boolean = false\n\n /**\n * Indica se o grupo de checkboxes está indeterminado\n */\n @State() isIndeterminate: boolean = false\n\n componentWillLoad() {\n this.isIndeterminate = this.el.hasAttribute('indeterminate')\n\n this.updateGroupState()\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkgroup': true,\n }\n }\n\n @Listen('checkedChange', {\n target: 'document',\n })\n handleChange(event: Event) {\n const target = event.target as HTMLBrCheckboxElement\n\n if (this.isParentCheckbox(target)) {\n this.checked = !this.checked\n this.handleAllCheckboxChange()\n } else {\n this.updateGroupState()\n }\n }\n\n private isParentCheckbox(target: HTMLBrCheckboxElement): boolean {\n return target === this.el.shadowRoot?.querySelector('br-checkbox')\n }\n\n private readonly handleAllCheckboxChange = () => {\n const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkListAll.forEach((item) => {\n item.checked = this.checked\n item.indeterminate = false\n })\n\n const parentCheckbox = this.el.shadowRoot?.querySelector('br-checkbox')\n if (parentCheckbox !== null) {\n parentCheckbox.indeterminate = false\n }\n }\n\n private updateGroupState() {\n const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'))\n const allChecked = checkListAll.every((item) => item.checked)\n const noneChecked = checkListAll.every((item) => !item.checked)\n\n if (allChecked) {\n this.checked = true\n this.isIndeterminate = false\n } else if (noneChecked) {\n this.checked = false\n this.isIndeterminate = false\n } else {\n this.checked = false\n this.isIndeterminate = true\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} style={{ width: '100%' }}>\n {this.label && <label>{this.label}</label>}\n <div class=\"mb-1\">\n <div class=\"checkgroup-example\">\n <br-checkbox\n name={`checkgroup-${this.customId}`}\n checked={this.checked}\n indeterminate={this.isIndeterminate}\n label={this.checked ? this.labelDesselecionado : this.labelSelecionado}\n aria-label={this.checked ? this.labelDesselecionado : this.labelSelecionado}\n onCheckedChange={this.handleChange.bind(this)}\n ></br-checkbox>\n </div>\n </div>\n <div class=\"mb-1 ml-2\">\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet checkgroupId = 0\n"]}
1
+ {"version":3,"file":"checkgroup.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/checkgroup/checkgroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, h, Host, Listen, Prop, State } 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/utilitarios/js/checkgroup?tab=desenvolvedor).\n *\n * @slot default - Slot para adicionar os checkboxes que serão controlados pelo checkgroup.\n */\n@Component({\n tag: 'br-checkgroup',\n styleUrl: 'checkgroup.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Checkgroup {\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: HTMLBrCheckgroupElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Texto descritivo do grupo.\n */\n @Prop() label: string\n\n /**\n * Define o texto do label quando o checkbox está marcado.\n */\n @Prop({ reflect: true }) labelSelecionado: string = 'Desselecionar tudo'\n\n /**\n * Define o texto do label quando o checkbox está desmarcado.\n */\n @Prop({ reflect: true }) labelDesselecionado: string = 'Selecionar tudo'\n\n /**\n * Define o estado intermediário do checkbox.\n * Se definido como verdadeiro, o checkbox exibirá um estado intermediário, que é um estado visual que indica que a opção está parcialmente selecionada.\n * Este estado é útil quando o checkbox faz parte de um grupo com seleção parcial.\n */\n @Prop({ reflect: true }) indeterminate: 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-checkgroup-${checkgroupId++}`\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @State() checked: boolean = false\n\n /**\n * Indica se o grupo de checkboxes está indeterminado\n */\n @State() isIndeterminate: boolean = false\n\n componentWillLoad() {\n this.isIndeterminate = this.el.hasAttribute('indeterminate')\n\n this.updateGroupState()\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkgroup': true,\n }\n }\n\n @Listen('checkedChange', {\n target: 'document',\n })\n handleChange(event: Event) {\n const target = event.target as HTMLBrCheckboxElement\n\n if (this.isParentCheckbox(target)) {\n this.checked = !this.checked\n this.handleAllCheckboxChange()\n } else {\n this.updateGroupState()\n }\n }\n\n private isParentCheckbox(target: HTMLBrCheckboxElement): boolean {\n return target === this.el.shadowRoot?.querySelector('br-checkbox')\n }\n\n private readonly handleAllCheckboxChange = () => {\n const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkListAll.forEach((item) => {\n item.checked = this.checked\n item.indeterminate = false\n })\n\n const parentCheckbox = this.el.shadowRoot?.querySelector('br-checkbox')\n if (parentCheckbox !== null) {\n parentCheckbox.indeterminate = false\n }\n }\n\n private updateGroupState() {\n const checkListAll = Array.from(this.el.querySelectorAll('br-checkbox'))\n const allChecked = checkListAll.every((item) => item.checked)\n const noneChecked = checkListAll.every((item) => !item.checked)\n\n if (allChecked) {\n this.checked = true\n this.isIndeterminate = false\n } else if (noneChecked) {\n this.checked = false\n this.isIndeterminate = false\n } else {\n this.checked = false\n this.isIndeterminate = true\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} style={{ width: '100%' }}>\n {this.label && <label>{this.label}</label>}\n <div class=\"mb-1\">\n <div class=\"checkgroup-example\">\n <br-checkbox\n name={`checkgroup-${this.customId}`}\n checked={this.checked}\n indeterminate={this.isIndeterminate}\n label={this.checked ? this.labelDesselecionado : this.labelSelecionado}\n aria-label={this.checked ? this.labelDesselecionado : this.labelSelecionado}\n onCheckedChange={this.handleChange.bind(this)}\n ></br-checkbox>\n </div>\n </div>\n <div class=\"mb-1 ml-2\">\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet checkgroupId = 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
  import Helpers from "../../utils/helpers";
8
7
  /**
@@ -89,8 +88,7 @@ export class Collapse {
89
88
  * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.
90
89
  */
91
90
  disconnectedCallback() {
92
- var _a;
93
- const details = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('details');
91
+ const details = this.el.shadowRoot?.querySelector('details');
94
92
  if (details !== null) {
95
93
  details.removeEventListener('toggle', this.handleCollapse);
96
94
  }
@@ -100,8 +98,7 @@ export class Collapse {
100
98
  * Isso garante que o estado visual do componente corresponda ao estado interno.
101
99
  */
102
100
  syncDetailsWithOpen() {
103
- var _a;
104
- const details = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('details');
101
+ const details = this.el.shadowRoot?.querySelector('details');
105
102
  if (details !== null) {
106
103
  details.open = this.open;
107
104
  }
@@ -110,23 +107,19 @@ export class Collapse {
110
107
  * Método público para abrir.
111
108
  * Este método pode ser chamado externamente para abrir o componente.
112
109
  */
113
- openCollapse() {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- this.open = true;
116
- this.syncDetailsWithOpen();
117
- this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup });
118
- });
110
+ async openCollapse() {
111
+ this.open = true;
112
+ this.syncDetailsWithOpen();
113
+ this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup });
119
114
  }
120
115
  /**
121
116
  * Método público para fechar.
122
117
  * Este método pode ser chamado externamente para fechar o componente.
123
118
  */
124
- closeCollapse() {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- this.open = false;
127
- this.syncDetailsWithOpen();
128
- this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup });
129
- });
119
+ async closeCollapse() {
120
+ this.open = false;
121
+ this.syncDetailsWithOpen();
122
+ this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup });
130
123
  }
131
124
  /**
132
125
  * Renderiza o ícone de acordo com o estado do collapse.
@@ -144,7 +137,7 @@ export class Collapse {
144
137
  */
145
138
  render() {
146
139
  const itemCount = this.el.querySelectorAll('br-item').length;
147
- return (h(Host, { key: '1a832a24006eb9f9a430783b5ba5f76e647b4ced' }, h("details", { key: 'c3daa16f5d23b0c9074b2c090b6c24db26bc36dc', class: "br-collapse", open: this.open, onToggle: this.handleCollapse, id: this.customId }, h("summary", { key: '1477adb677338705749b7fa5e6a0dd12e4cd1d3b', class: "trigger", role: "button", "aria-expanded": String(this.open), "aria-controls": `content-${this.customId}`, "aria-labelledby": `label-${this.customId}`, tabindex: "0", "aria-live": "polite" }, this.iconPosition === 'left' && this.renderIcon(), h("div", { key: '5478d4af34f5d76c6944fb164b7046f92fd92abc', class: "trigger-content", id: `label-${this.customId}` }, h("slot", { key: 'cc9b393aa5555e23037926f6d7fb3bd7a897b47b', name: "trigger" })), this.iconPosition === 'right' && this.renderIcon()), h("div", { key: 'b5b53ae0a57a603795e5ed3ee848c6325431d829', class: "content", id: `content-${this.customId}`, "aria-live": "polite", "aria-labelledby": `label-${this.customId}` }, this.open && itemCount > 0 && (h("div", { key: 'c394cf7b1d2f15ace669aecb5c1d1b9374cd77d9', class: "visually-hidden" }, itemCount, " ", itemCount === 1 ? 'item' : 'itens', " na lista")), h("slot", { key: 'ecbc97ea6ba79611b03c4d81103913ab7693c18c' })))));
140
+ return (h(Host, { key: 'bdc33c7f9436e64e1f0a2ff33ff648987d7f4dcc' }, h("details", { key: '3a6a5b96cb4d9100371c649d9db5f9d42cec4419', class: "br-collapse", open: this.open, onToggle: this.handleCollapse, id: this.customId }, h("summary", { key: '5be15fe8dfe9c86be7ff7685219fc3de70de4b50', class: "trigger", role: "button", "aria-expanded": String(this.open), "aria-controls": `content-${this.customId}`, "aria-labelledby": `label-${this.customId}`, tabindex: "0", "aria-live": "polite" }, this.iconPosition === 'left' && this.renderIcon(), h("div", { key: '99f051bdbf281b5b4637cd1447a0b02249580ff4', class: "trigger-content", id: `label-${this.customId}` }, h("slot", { key: 'a351418fc0cd5f704e6ad06ed7658839c6d0b3bb', name: "trigger" })), this.iconPosition === 'right' && this.renderIcon()), h("div", { key: '8ed72974af1220852433fa1b5513a059e3144f46', class: "content", id: `content-${this.customId}`, "aria-live": "polite", "aria-labelledby": `label-${this.customId}` }, this.open && itemCount > 0 && (h("div", { key: '34cc836bb68cfcdde3239f012af41a1fe194adf9', class: "visually-hidden" }, itemCount, " ", itemCount === 1 ? 'item' : 'itens', " na lista")), h("slot", { key: 'b7c7347e3b758ecde297b1b14df15dd6b54a871a' })))));
148
141
  }
149
142
  static get is() { return "br-collapse"; }
150
143
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"collapse.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/collapse/collapse.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\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: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n"]}
1
+ {"version":3,"file":"collapse.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/collapse/collapse.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\n/**\n * O componente `br-collapse` pode ser utilizado em dois cenários principais: collapse simples ou accordion.\n *\n * - Collapse simples: Cada instância funciona de forma independente, permitindo abrir ou fechar o conteúdo conforme necessário, sem impactar outros componentes na página.\n * - Accordion: Quando configurado com a propriedade `accordionGroup`, múltiplos componentes `br-collapse` são agrupados. Nesse caso, apenas um item pode estar expandido por vez. Ao abrir um novo item, o anteriormente expandido será automaticamente fechado.\n *\n * @slot default - O conteúdo expansível mostrado/ocultado dinamicamente.\n * @slot trigger - Permite personalizar o conteúdo do acionador (texto, imagens, etc.).\n */\n@Component({\n tag: 'br-collapse',\n styleUrl: 'collapse.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Collapse {\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: HTMLBrCollapseElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Define se o collapse está aberto ou fechado.\n * @default false\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Define se o collapse faz parte de um accordion\n * @default null\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS para o ícone de expansão\n * @default 'fa6-solid:chevron-down'\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS para o ícone de recolhimento\n * @default 'fa6-solid:chevron-up'\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone: 'left' ou 'right'\n * @default 'right'\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Evento emitido ao expandir.\n */\n @Event() brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento emitido ao recolher.\n */\n @Event() brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Evento disparado quando o componente é aberto.\n * @param event Evento disparado quando o componente é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n /**\n * Handler para o evento de abertura do componente.\n * Fecha o collapse atual se ele não for parte do mesmo grupo de accordion.\n * @param event Evento disparado quando o componente é aberto.\n */\n handleOpen(event: CustomEvent) {\n if (\n this.accordionGroup &&\n this.accordionGroup === event.detail.accordionGroup &&\n event.detail.id !== this.customId\n ) {\n this.closeCollapse()\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado uma vez logo após o componente ser adicionado ao DOM.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Ciclo de vida do componente. Chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.removeEventListener('toggle', this.handleCollapse)\n }\n }\n\n /**\n * Sincroniza o estado do elemento <details> com a propriedade open.\n * Isso garante que o estado visual do componente corresponda ao estado interno.\n */\n private syncDetailsWithOpen() {\n const details = this.el.shadowRoot?.querySelector('details')\n if (details !== null) {\n details.open = this.open\n }\n }\n\n /**\n * Método chamado quando o elemento <details> é aberto ou fechado.\n * Atualiza o estado interno do componente e emite eventos apropriados.\n * @param event O evento de toggle do elemento <details>.\n */\n private handleCollapse = (event: Event) => {\n const details = event.target as HTMLDetailsElement\n const isOpen = details.open\n\n this.open = isOpen\n if (this.open) {\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n } else {\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n }\n\n /**\n * Método público para abrir.\n * Este método pode ser chamado externamente para abrir o componente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Método público para fechar.\n * Este método pode ser chamado externamente para fechar o componente.\n */\n @Method()\n async closeCollapse() {\n this.open = false\n this.syncDetailsWithOpen()\n this.brDidClose.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Renderiza o ícone de acordo com o estado do collapse.\n * Se o collapse estiver aberto, renderiza o ícone para ocultar.\n * Caso contrário, renderiza o ícone para mostrar.\n * @returns JSX do ícone\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o componente.\n * O componente é renderizado como um elemento <details> com um <summary> que contém o acionador.\n * @returns JSX do componente.\n */\n render() {\n const itemCount = this.el.querySelectorAll('br-item').length\n\n return (\n <Host>\n <details class=\"br-collapse\" open={this.open} onToggle={this.handleCollapse} id={this.customId}>\n <summary\n class=\"trigger\"\n role=\"button\"\n aria-expanded={String(this.open)}\n aria-controls={`content-${this.customId}`}\n aria-labelledby={`label-${this.customId}`}\n tabindex=\"0\"\n aria-live=\"polite\"\n >\n {this.iconPosition === 'left' && this.renderIcon()}\n <div class=\"trigger-content\" id={`label-${this.customId}`}>\n <slot name=\"trigger\"></slot>\n </div>\n {this.iconPosition === 'right' && this.renderIcon()}\n </summary>\n\n <div\n class=\"content\"\n id={`content-${this.customId}`}\n aria-live=\"polite\"\n aria-labelledby={`label-${this.customId}`}\n >\n {this.open && itemCount > 0 && (\n <div class=\"visually-hidden\">\n {itemCount} {itemCount === 1 ? 'item' : 'itens'} na lista\n </div>\n )}\n <slot></slot>\n </div>\n </details>\n </Host>\n )\n }\n}\n"]}
@@ -140,9 +140,8 @@ export class Divider {
140
140
  * Isso é necessário quando o divisor está configurado para sangrar (bleed).
141
141
  */
142
142
  applyMarginOnRootElement() {
143
- var _a;
144
143
  const { paddingLeft, paddingRight } = this.getHostParentPadding();
145
- const rootElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.br-divider');
144
+ const rootElement = this.el.shadowRoot?.querySelector('.br-divider');
146
145
  rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`);
147
146
  }
148
147
  /**
@@ -171,7 +170,7 @@ export class Divider {
171
170
  * @returns JSX.Element
172
171
  */
173
172
  render() {
174
- return h(Host, { key: '36c3af884e14861cc254f6dad916e0b79877b4a6' }, this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider());
173
+ return h(Host, { key: '0b49ed1db151aee4da2a2b26472177baf5279f22' }, this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider());
175
174
  }
176
175
  static get is() { return "br-divider"; }
177
176
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/divider/divider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/divider?tab=designer).\n *\n * @slot default - Conteúdo opcional que pode ser exibido dentro do divisor, como texto, ícones ou outros elementos personalizados.\n */\n@Component({\n tag: 'br-divider',\n styleUrl: 'divider.scss',\n shadow: true,\n})\nexport class Divider {\n @Element() el: HTMLBrDividerElement\n\n /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\n <div\n class={this.getCssClassMap()}\n role=\"separator\"\n aria-orientation={this.orientation}\n aria-labelledby={this.customId}\n >\n <span id={this.customId}>\n <slot></slot>\n </span>\n </div>\n )\n }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"]}
1
+ {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/divider/divider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAExE,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAOzC;;;;GAIG;AAMH,MAAM,OAAO,OAAO;IALpB;QAQE;;;WAGG;QAC+B,aAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE,CAAA;QAE/E;;;;;WAKG;QACsB,gBAAW,GAAuB,YAAY,CAAA;QAEvE;;;;WAIG;QACsB,cAAS,GAAqB,OAAO,CAAA;QAE9D;;;;WAIG;QACsB,gBAAW,GAAuB,OAAO,CAAA;QAElE;;;WAGG;QACsB,eAAU,GAAY,KAAK,CAAA;QAEpD;;;;;WAKG;QACsB,UAAK,GAAW,IAAI,CAAA;QAS7C;;;;WAIG;QACK,UAAK,GAAY,KAAK,CAAA;KAgJ/B;IA9IC;;;;OAIG;IAEH,WAAW;QACT,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IACD;;;OAGG;IACK,sBAAsB;QAC5B,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACzC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAA;YAClC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;YACzB,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;YACjD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAC/B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IACxC,CAAC;IAED;;;OAGG;IACK,oBAAoB;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAA;QACxC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;YAC1C,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAA;QACrG,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACK,wBAAwB;QAC9B,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;QACpE,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,WAAW,sBAAsB,YAAY,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5G,CAAC;IAED;;;OAGG;IACK,cAAc;QACpB,OAAO,sBAAsB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAC3I,CAAC;IAED;;;OAGG;IACK,wBAAwB;QAC9B,OAAO,CACL,WACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,WAAW,sBACE,IAAI,CAAC,WAAW,qBACjB,IAAI,CAAC,QAAQ;YAE9B,YAAM,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACrB,eAAa,CACR,CACH,CACP,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC3B,OAAO,UAAI,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,GAAI,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,EAAC,IAAI,uDAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAQ,CAAA;IACrH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/divider?tab=designer).\n *\n * @slot default - Conteúdo opcional que pode ser exibido dentro do divisor, como texto, ícones ou outros elementos personalizados.\n */\n@Component({\n tag: 'br-divider',\n styleUrl: 'divider.scss',\n shadow: true,\n})\nexport class Divider {\n @Element() el: HTMLBrDividerElement\n\n /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define a orientação do divisor.\n * Pode ser 'horizontal' ou 'vertical'.\n * Caso seja usado como vertical, o divider deve ser colocado dentro de um container com altura definida.\n * @default horizontal\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Define a espessura do divisor.\n * Pode ser 'small', 'medium' ou 'large'.\n * @default small\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Define o estilo da borda do divisor.\n * Pode ser 'dashed' ou 'solid'.\n * @default solid\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Define se o divisor deve ser exibido no modo escuro.\n * @default false\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Pode ser uma cor hexadecimal, RGB ou nome de cor CSS.\n * Se não for especificada, o divisor usará a cor padrão definida pelo tema.\n * @default null\n */\n @Prop({ reflect: true }) color: string = null\n\n /**\n * Alinhamento do conteúdo do divisor.\n * Pode ser 'start', 'center' ou 'end'.\n * @default undefined\n */\n @Prop() align: DividerAlign\n\n /**\n * Define se o divisor deve \"sangrar\" (bleed) nas laterais, ou seja, se deve ocupar toda a largura do container pai.\n * Isso é útil quando o divisor precisa se estender além do padding do container pai.\n * @default false\n */\n @Prop() bleed: boolean = false\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setVerticalOrientation()\n this.setBleed()\n this.updateColor()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n /**\n * Configura o divisor para orientação vertical.\n * Se a orientação for 'vertical', cria um elemento <div> adicional para manter o layout correto.\n */\n private setVerticalOrientation() {\n if (this.orientation === 'vertical') {\n const div = document.createElement('div')\n div.className = 'vertical-divider'\n div.style.display = 'flex'\n div.style.height = '100%'\n this.el.insertAdjacentElement('beforebegin', div)\n div.appendChild(this.el)\n }\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider')\n rootElement.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\n <div\n class={this.getCssClassMap()}\n role=\"separator\"\n aria-orientation={this.orientation}\n aria-labelledby={this.customId}\n >\n <span id={this.customId}>\n <slot></slot>\n </span>\n </div>\n )\n }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n /**\n * Renderiza o divisor.\n * @returns JSX.Element\n */\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"]}