@govbr-ds/webcomponents 2.0.0-next.36 → 2.0.0-next.38

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 (533) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +1 -1
  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 +1 -1
  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 +10 -4
  9. package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/br-checkbox.cjs.entry.js +1 -1
  11. package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
  12. package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
  14. package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -1
  15. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
  16. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -0
  17. package/dist/cjs/br-collapse_2.cjs.entry.js +286 -0
  18. package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -0
  19. package/dist/cjs/br-divider.cjs.entry.js +1 -1
  20. package/dist/cjs/br-divider.cjs.entry.js.map +1 -1
  21. package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
  22. package/dist/cjs/br-dropdown.cjs.entry.js +1 -1
  23. package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
  24. package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-footer-category.cjs.entry.js +110 -0
  26. package/dist/cjs/br-footer-category.cjs.entry.js.map +1 -0
  27. package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -0
  28. package/dist/cjs/br-footer-item.cjs.entry.js +52 -0
  29. package/dist/cjs/br-footer-item.cjs.entry.js.map +1 -0
  30. package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -0
  31. package/dist/cjs/br-footer-legal.cjs.entry.js +43 -0
  32. package/dist/cjs/br-footer-legal.cjs.entry.js.map +1 -0
  33. package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -0
  34. package/dist/cjs/br-footer-logo.cjs.entry.js +74 -0
  35. package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -0
  36. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -0
  37. package/dist/cjs/br-footer-social.cjs.entry.js +57 -0
  38. package/dist/cjs/br-footer-social.cjs.entry.js.map +1 -0
  39. package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -0
  40. package/dist/cjs/br-footer.cjs.entry.js +49 -0
  41. package/dist/cjs/br-footer.cjs.entry.js.map +1 -0
  42. package/dist/cjs/br-footer.entry.cjs.js.map +1 -0
  43. package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -1
  44. package/dist/cjs/br-input_2.cjs.entry.js +33 -4
  45. package/dist/cjs/br-input_2.cjs.entry.js.map +1 -1
  46. package/dist/cjs/br-item.cjs.entry.js +2 -2
  47. package/dist/cjs/br-item.cjs.entry.js.map +1 -1
  48. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  49. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  50. package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
  51. package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
  52. package/dist/cjs/br-message.cjs.entry.js +2 -2
  53. package/dist/cjs/br-message.cjs.entry.js.map +1 -1
  54. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  55. package/dist/cjs/br-select.cjs.entry.js +2 -2
  56. package/dist/cjs/br-select.cjs.entry.js.map +1 -1
  57. package/dist/cjs/br-select.entry.cjs.js.map +1 -1
  58. package/dist/cjs/br-step-item.cjs.entry.js +2 -2
  59. package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
  61. package/dist/cjs/br-step.cjs.entry.js +2 -2
  62. package/dist/cjs/br-step.cjs.entry.js.map +1 -1
  63. package/dist/cjs/br-step.entry.cjs.js.map +1 -1
  64. package/dist/cjs/br-switch.cjs.entry.js +2 -2
  65. package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
  66. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  67. package/dist/cjs/br-tab-item.cjs.entry.js +76 -0
  68. package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -0
  69. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -0
  70. package/dist/cjs/{br-collapse.cjs.entry.js → br-tab.cjs.entry.js} +254 -60
  71. package/dist/cjs/br-tab.cjs.entry.js.map +1 -0
  72. package/dist/cjs/br-tab.entry.cjs.js.map +1 -0
  73. package/dist/cjs/br-table-cell.cjs.entry.js +81 -0
  74. package/dist/cjs/br-table-cell.cjs.entry.js.map +1 -0
  75. package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -0
  76. package/dist/cjs/br-table-header-cell.cjs.entry.js +70 -0
  77. package/dist/cjs/br-table-header-cell.cjs.entry.js.map +1 -0
  78. package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -0
  79. package/dist/cjs/br-table-header-row.cjs.entry.js +44 -0
  80. package/dist/cjs/br-table-header-row.cjs.entry.js.map +1 -0
  81. package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -0
  82. package/dist/cjs/br-table-row.cjs.entry.js +36 -0
  83. package/dist/cjs/br-table-row.cjs.entry.js.map +1 -0
  84. package/dist/cjs/br-table-row.entry.cjs.js.map +1 -0
  85. package/dist/cjs/br-table.cjs.entry.js +44 -0
  86. package/dist/cjs/br-table.cjs.entry.js.map +1 -0
  87. package/dist/cjs/br-table.entry.cjs.js.map +1 -0
  88. package/dist/cjs/br-tag.cjs.entry.js +3 -3
  89. package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
  90. package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
  91. package/dist/cjs/br-textarea.cjs.entry.js +2 -2
  92. package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
  93. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  94. package/dist/cjs/br-upload.cjs.entry.js +2 -2
  95. package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
  96. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  97. package/dist/cjs/helpers-BOXIHVCc.js +23 -0
  98. package/dist/cjs/helpers-BOXIHVCc.js.map +1 -0
  99. package/dist/cjs/index-DAOr34NM.js +58 -10
  100. package/dist/cjs/loader.cjs.js +1 -1
  101. package/dist/cjs/webcomponents.cjs.js +1 -1
  102. package/dist/collection/collection-manifest.json +13 -0
  103. package/dist/collection/components/avatar/avatar.css +1 -1
  104. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  105. package/dist/collection/components/button/button.css +1 -1
  106. package/dist/collection/components/button/button.js +7 -1
  107. package/dist/collection/components/button/button.js.map +1 -1
  108. package/dist/collection/components/checkbox/checkbox.css +1 -1
  109. package/dist/collection/components/checkgroup/checkgroup.css +1 -1
  110. package/dist/collection/components/collapse/collapse.css +1 -1
  111. package/dist/collection/components/collapse/collapse.js +131 -43
  112. package/dist/collection/components/collapse/collapse.js.map +1 -1
  113. package/dist/collection/components/divider/divider.css +1 -1
  114. package/dist/collection/components/dropdown/dropdown.css +1 -1
  115. package/dist/collection/components/footer/footer.css +1 -0
  116. package/dist/collection/components/footer/footer.js +128 -0
  117. package/dist/collection/components/footer/footer.js.map +1 -0
  118. package/dist/collection/components/footer-category/footer-category.css +1 -0
  119. package/dist/collection/components/footer-category/footer-category.js +178 -0
  120. package/dist/collection/components/footer-category/footer-category.js.map +1 -0
  121. package/dist/collection/components/footer-item/footer-item.css +1 -0
  122. package/dist/collection/components/footer-item/footer-item.js +117 -0
  123. package/dist/collection/components/footer-item/footer-item.js.map +1 -0
  124. package/dist/collection/components/footer-legal/footer-legal.css +1 -0
  125. package/dist/collection/components/footer-legal/footer-legal.js +77 -0
  126. package/dist/collection/components/footer-legal/footer-legal.js.map +1 -0
  127. package/dist/collection/components/footer-logo/footer-logo.css +1 -0
  128. package/dist/collection/components/footer-logo/footer-logo.js +188 -0
  129. package/dist/collection/components/footer-logo/footer-logo.js.map +1 -0
  130. package/dist/collection/components/footer-social/footer-social.css +1 -0
  131. package/dist/collection/components/footer-social/footer-social.js +147 -0
  132. package/dist/collection/components/footer-social/footer-social.js.map +1 -0
  133. package/dist/collection/components/icon/icon.css +1 -1
  134. package/dist/collection/components/icon/icon.js +1 -1
  135. package/dist/collection/components/input/input.css +1 -1
  136. package/dist/collection/components/input/input.js +1 -1
  137. package/dist/collection/components/item/item.css +1 -1
  138. package/dist/collection/components/item/item.js +1 -1
  139. package/dist/collection/components/list/list.css +1 -1
  140. package/dist/collection/components/list/list.js +91 -8
  141. package/dist/collection/components/list/list.js.map +1 -1
  142. package/dist/collection/components/loading/loading.css +1 -1
  143. package/dist/collection/components/loading/loading.js +1 -1
  144. package/dist/collection/components/message/message.css +1 -1
  145. package/dist/collection/components/message/message.js +1 -1
  146. package/dist/collection/components/radio/radio.css +1 -1
  147. package/dist/collection/components/radio/radio.js +36 -1
  148. package/dist/collection/components/radio/radio.js.map +1 -1
  149. package/dist/collection/components/select/select.css +1 -1
  150. package/dist/collection/components/select/select.js +1 -1
  151. package/dist/collection/components/step/step.css +1 -1
  152. package/dist/collection/components/step/step.js +1 -1
  153. package/dist/collection/components/step-item/step-item.css +1 -1
  154. package/dist/collection/components/step-item/step-item.js +2 -2
  155. package/dist/collection/components/step-item/step-item.js.map +1 -1
  156. package/dist/collection/components/switch/switch.css +1 -1
  157. package/dist/collection/components/switch/switch.js +1 -1
  158. package/dist/collection/components/tab/tab.css +1 -0
  159. package/dist/collection/components/tab/tab.js +372 -0
  160. package/dist/collection/components/tab/tab.js.map +1 -0
  161. package/dist/collection/components/tab-item/tab-item.css +1 -0
  162. package/dist/collection/components/tab-item/tab-item.js +256 -0
  163. package/dist/collection/components/tab-item/tab-item.js.map +1 -0
  164. package/dist/collection/components/table/table.css +1 -0
  165. package/dist/collection/components/table/table.js +77 -0
  166. package/dist/collection/components/table/table.js.map +1 -0
  167. package/dist/collection/components/table-cell/table-cell.css +1 -0
  168. package/dist/collection/components/table-cell/table-cell.js +171 -0
  169. package/dist/collection/components/table-cell/table-cell.js.map +1 -0
  170. package/dist/collection/components/table-header-cell/table-header-cell.css +1 -0
  171. package/dist/collection/components/table-header-cell/table-header-cell.js +164 -0
  172. package/dist/collection/components/table-header-cell/table-header-cell.js.map +1 -0
  173. package/dist/collection/components/table-header-row/table-header-row.css +1 -0
  174. package/dist/collection/components/table-header-row/table-header-row.js +77 -0
  175. package/dist/collection/components/table-header-row/table-header-row.js.map +1 -0
  176. package/dist/collection/components/table-row/table-row.css +1 -0
  177. package/dist/collection/components/table-row/table-row.js +69 -0
  178. package/dist/collection/components/table-row/table-row.js.map +1 -0
  179. package/dist/collection/components/tag/tag.css +1 -1
  180. package/dist/collection/components/tag/tag.js +2 -2
  181. package/dist/collection/components/textarea/textarea.css +1 -1
  182. package/dist/collection/components/textarea/textarea.js +1 -1
  183. package/dist/collection/components/upload/upload.css +1 -1
  184. package/dist/collection/components/upload/upload.js +1 -1
  185. package/dist/collection/pages/components/footer/index.js +18 -0
  186. package/dist/collection/pages/components/tab/index.js +18 -0
  187. package/dist/collection/pages/components/table/index.js +18 -0
  188. package/dist/collection/pages/scripts/menu.js +18 -4
  189. package/dist/collection/utils/css-variables.js +10 -0
  190. package/dist/collection/utils/css-variables.js.map +1 -0
  191. package/dist/collection/utils/helpers.js +17 -0
  192. package/dist/collection/utils/helpers.js.map +1 -0
  193. package/dist/collection/utils/types.js +2 -0
  194. package/dist/collection/utils/types.js.map +1 -0
  195. package/dist/components/br-avatar.js +3 -3
  196. package/dist/components/br-breadcrumb.js +29 -21
  197. package/dist/components/br-breadcrumb.js.map +1 -1
  198. package/dist/components/br-button.js +4 -4
  199. package/dist/components/br-checkbox.js +3 -3
  200. package/dist/components/br-checkgroup.js +3 -3
  201. package/dist/components/br-collapse.js +4 -171
  202. package/dist/components/br-collapse.js.map +1 -1
  203. package/dist/components/br-divider.js +4 -131
  204. package/dist/components/br-divider.js.map +1 -1
  205. package/dist/components/br-dropdown.js +2 -2
  206. package/dist/components/br-footer-category.d.ts +11 -0
  207. package/dist/components/br-footer-category.js +169 -0
  208. package/dist/components/br-footer-category.js.map +1 -0
  209. package/dist/components/br-footer-item.d.ts +11 -0
  210. package/dist/components/br-footer-item.js +95 -0
  211. package/dist/components/br-footer-item.js.map +1 -0
  212. package/dist/components/br-footer-legal.d.ts +11 -0
  213. package/dist/components/br-footer-legal.js +85 -0
  214. package/dist/components/br-footer-legal.js.map +1 -0
  215. package/dist/components/br-footer-logo.d.ts +11 -0
  216. package/dist/components/br-footer-logo.js +112 -0
  217. package/dist/components/br-footer-logo.js.map +1 -0
  218. package/dist/components/br-footer-social.d.ts +11 -0
  219. package/dist/components/br-footer-social.js +116 -0
  220. package/dist/components/br-footer-social.js.map +1 -0
  221. package/dist/components/br-footer.d.ts +11 -0
  222. package/dist/components/br-footer.js +113 -0
  223. package/dist/components/br-footer.js.map +1 -0
  224. package/dist/components/br-icon.js +1 -1
  225. package/dist/components/br-input.js +3 -3
  226. package/dist/components/br-item.js +4 -4
  227. package/dist/components/br-list.js +1 -1
  228. package/dist/components/br-loading.js +3 -3
  229. package/dist/components/br-message.js +7 -7
  230. package/dist/components/br-message.js.map +1 -1
  231. package/dist/components/br-radio.js +4 -4
  232. package/dist/components/br-select.js +33 -25
  233. package/dist/components/br-select.js.map +1 -1
  234. package/dist/components/br-step-item.js +18 -20
  235. package/dist/components/br-step-item.js.map +1 -1
  236. package/dist/components/br-step.js +9 -9
  237. package/dist/components/br-switch.js +7 -7
  238. package/dist/components/br-tab-item.d.ts +11 -0
  239. package/dist/components/br-tab-item.js +142 -0
  240. package/dist/components/br-tab-item.js.map +1 -0
  241. package/dist/components/br-tab.d.ts +11 -0
  242. package/dist/components/br-tab.js +323 -0
  243. package/dist/components/br-tab.js.map +1 -0
  244. package/dist/components/br-table-cell.d.ts +11 -0
  245. package/dist/components/br-table-cell.js +118 -0
  246. package/dist/components/br-table-cell.js.map +1 -0
  247. package/dist/components/br-table-header-cell.d.ts +11 -0
  248. package/dist/components/br-table-header-cell.js +108 -0
  249. package/dist/components/br-table-header-cell.js.map +1 -0
  250. package/dist/components/br-table-header-row.d.ts +11 -0
  251. package/dist/components/br-table-header-row.js +76 -0
  252. package/dist/components/br-table-header-row.js.map +1 -0
  253. package/dist/components/br-table-row.d.ts +11 -0
  254. package/dist/components/br-table-row.js +69 -0
  255. package/dist/components/br-table-row.js.map +1 -0
  256. package/dist/components/br-table.d.ts +11 -0
  257. package/dist/components/br-table.js +86 -0
  258. package/dist/components/br-table.js.map +1 -0
  259. package/dist/components/br-tag.js +10 -10
  260. package/dist/components/br-tag.js.map +1 -1
  261. package/dist/components/br-textarea.js +10 -10
  262. package/dist/components/br-upload.js +13 -13
  263. package/dist/components/br-upload.js.map +1 -1
  264. package/dist/components/index.d.ts +26 -0
  265. package/dist/components/index.js +27 -1
  266. package/dist/components/p-6zXKXi1G.js +386 -0
  267. package/dist/components/p-6zXKXi1G.js.map +1 -0
  268. package/dist/components/{p-CyMSBO1R.js → p-BBbnZnbw.js} +3 -3
  269. package/dist/components/p-BRKK5nMe.js +22 -0
  270. package/dist/components/p-BRKK5nMe.js.map +1 -0
  271. package/dist/components/p-BUstn93c.js +190 -0
  272. package/dist/components/p-BUstn93c.js.map +1 -0
  273. package/dist/components/p-BccYWJTM.js +285 -0
  274. package/dist/components/p-C69qzP4f.js +2270 -0
  275. package/dist/components/{p-ZjuPhQfh.js.map → p-C69qzP4f.js.map} +1 -1
  276. package/dist/components/p-CLzPNRoE.js +198 -0
  277. package/dist/components/p-YVVBeyHg.js +183 -0
  278. package/dist/components/p-YVVBeyHg.js.map +1 -0
  279. package/dist/components/p-fXOTnsCB.js +237 -0
  280. package/dist/components/p-fXOTnsCB.js.map +1 -0
  281. package/dist/components/p-lS-a0O7q.js +161 -0
  282. package/dist/components/p-lS-a0O7q.js.map +1 -0
  283. package/dist/components/p-netcRdpj.js +136 -0
  284. package/dist/components/p-netcRdpj.js.map +1 -0
  285. package/dist/custom-elements.json +3676 -1685
  286. package/dist/esm/br-avatar.entry.js +1 -1
  287. package/dist/esm/br-avatar.entry.js.map +1 -1
  288. package/dist/esm/br-breadcrumb.entry.js +1 -1
  289. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  290. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  291. package/dist/esm/br-button_2.entry.js +10 -4
  292. package/dist/esm/br-button_2.entry.js.map +1 -1
  293. package/dist/esm/br-checkbox.entry.js +1 -1
  294. package/dist/esm/br-checkbox.entry.js.map +1 -1
  295. package/dist/esm/br-checkgroup.entry.js +1 -1
  296. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  297. package/dist/esm/br-collapse.br-list.entry.js.map +1 -0
  298. package/dist/esm/br-collapse_2.entry.js +283 -0
  299. package/dist/esm/br-collapse_2.entry.js.map +1 -0
  300. package/dist/esm/br-divider.entry.js +1 -1
  301. package/dist/esm/br-divider.entry.js.map +1 -1
  302. package/dist/esm/br-dropdown.entry.js +1 -1
  303. package/dist/esm/br-dropdown.entry.js.map +1 -1
  304. package/dist/esm/br-footer-category.entry.js +108 -0
  305. package/dist/esm/br-footer-category.entry.js.map +1 -0
  306. package/dist/esm/br-footer-item.entry.js +50 -0
  307. package/dist/esm/br-footer-item.entry.js.map +1 -0
  308. package/dist/esm/br-footer-legal.entry.js +41 -0
  309. package/dist/esm/br-footer-legal.entry.js.map +1 -0
  310. package/dist/esm/br-footer-logo.entry.js +72 -0
  311. package/dist/esm/br-footer-logo.entry.js.map +1 -0
  312. package/dist/esm/br-footer-social.entry.js +55 -0
  313. package/dist/esm/br-footer-social.entry.js.map +1 -0
  314. package/dist/esm/br-footer.entry.js +47 -0
  315. package/dist/esm/br-footer.entry.js.map +1 -0
  316. package/dist/esm/br-input.br-radio.entry.js.map +1 -1
  317. package/dist/esm/br-input_2.entry.js +33 -4
  318. package/dist/esm/br-input_2.entry.js.map +1 -1
  319. package/dist/esm/br-item.entry.js +2 -2
  320. package/dist/esm/br-item.entry.js.map +1 -1
  321. package/dist/esm/br-loading.entry.js +2 -2
  322. package/dist/esm/br-loading.entry.js.map +1 -1
  323. package/dist/esm/br-message.entry.js +2 -2
  324. package/dist/esm/br-message.entry.js.map +1 -1
  325. package/dist/esm/br-select.entry.js +2 -2
  326. package/dist/esm/br-select.entry.js.map +1 -1
  327. package/dist/esm/br-step-item.entry.js +2 -2
  328. package/dist/esm/br-step-item.entry.js.map +1 -1
  329. package/dist/esm/br-step.entry.js +2 -2
  330. package/dist/esm/br-step.entry.js.map +1 -1
  331. package/dist/esm/br-switch.entry.js +2 -2
  332. package/dist/esm/br-switch.entry.js.map +1 -1
  333. package/dist/esm/br-tab-item.entry.js +74 -0
  334. package/dist/esm/br-tab-item.entry.js.map +1 -0
  335. package/dist/esm/{br-collapse.entry.js → br-tab.entry.js} +254 -60
  336. package/dist/esm/br-tab.entry.js.map +1 -0
  337. package/dist/esm/br-table-cell.entry.js +79 -0
  338. package/dist/esm/br-table-cell.entry.js.map +1 -0
  339. package/dist/esm/br-table-header-cell.entry.js +68 -0
  340. package/dist/esm/br-table-header-cell.entry.js.map +1 -0
  341. package/dist/esm/br-table-header-row.entry.js +42 -0
  342. package/dist/esm/br-table-header-row.entry.js.map +1 -0
  343. package/dist/esm/br-table-row.entry.js +34 -0
  344. package/dist/esm/br-table-row.entry.js.map +1 -0
  345. package/dist/esm/br-table.entry.js +42 -0
  346. package/dist/esm/br-table.entry.js.map +1 -0
  347. package/dist/esm/br-tag.entry.js +3 -3
  348. package/dist/esm/br-tag.entry.js.map +1 -1
  349. package/dist/esm/br-textarea.entry.js +2 -2
  350. package/dist/esm/br-textarea.entry.js.map +1 -1
  351. package/dist/esm/br-upload.entry.js +2 -2
  352. package/dist/esm/br-upload.entry.js.map +1 -1
  353. package/dist/esm/helpers-BRKK5nMe.js +21 -0
  354. package/dist/esm/helpers-BRKK5nMe.js.map +1 -0
  355. package/dist/esm/index-ClsF4De3.js +58 -10
  356. package/dist/esm/loader.js +1 -1
  357. package/dist/esm/webcomponents.js +1 -1
  358. package/dist/hydrate/index.js +1418 -148
  359. package/dist/hydrate/index.mjs +1418 -148
  360. package/dist/types/components/button/button.d.ts +1 -0
  361. package/dist/types/components/collapse/collapse.d.ts +73 -9
  362. package/dist/types/components/footer/footer.d.ts +37 -0
  363. package/dist/types/components/footer-category/footer-category.d.ts +81 -0
  364. package/dist/types/components/footer-item/footer-item.d.ts +39 -0
  365. package/dist/types/components/footer-legal/footer-legal.d.ts +24 -0
  366. package/dist/types/components/footer-logo/footer-logo.d.ts +49 -0
  367. package/dist/types/components/footer-social/footer-social.d.ts +38 -0
  368. package/dist/types/components/list/list.d.ts +39 -1
  369. package/dist/types/components/radio/radio.d.ts +8 -0
  370. package/dist/types/components/tab/tab.d.ts +103 -0
  371. package/dist/types/components/tab-item/tab-item.d.ts +52 -0
  372. package/dist/types/components/table/table.d.ts +27 -0
  373. package/dist/types/components/table-cell/table-cell.d.ts +50 -0
  374. package/dist/types/components/table-header-cell/table-header-cell.d.ts +39 -0
  375. package/dist/types/components/table-header-row/table-header-row.d.ts +27 -0
  376. package/dist/types/components/table-row/table-row.d.ts +19 -0
  377. package/dist/types/components.d.ts +772 -10
  378. package/dist/types/utils/css-variables.d.ts +5 -0
  379. package/dist/types/utils/helpers.d.ts +8 -0
  380. package/dist/types/utils/types.d.ts +1 -0
  381. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  382. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  383. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  384. package/dist/webcomponents/br-checkbox.entry.esm.js.map +1 -1
  385. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  386. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -0
  387. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  388. package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
  389. package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -0
  390. package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -0
  391. package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -0
  392. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -0
  393. package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -0
  394. package/dist/webcomponents/br-footer.entry.esm.js.map +1 -0
  395. package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -1
  396. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  397. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  398. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  399. package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
  400. package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
  401. package/dist/webcomponents/br-step.entry.esm.js.map +1 -1
  402. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  403. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -0
  404. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -0
  405. package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -0
  406. package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -0
  407. package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -0
  408. package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -0
  409. package/dist/webcomponents/br-table.entry.esm.js.map +1 -0
  410. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
  411. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  412. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  413. package/dist/webcomponents/p-0d558b53.entry.js +164 -0
  414. package/dist/webcomponents/p-264546b9.entry.js +72 -0
  415. package/dist/webcomponents/p-264546b9.entry.js.map +1 -0
  416. package/dist/webcomponents/p-290d85de.entry.js +61 -0
  417. package/dist/webcomponents/p-290d85de.entry.js.map +1 -0
  418. package/dist/webcomponents/p-2c34874f.entry.js +210 -0
  419. package/dist/webcomponents/p-2c34874f.entry.js.map +1 -0
  420. package/dist/webcomponents/p-2d0ea474.entry.js +52 -0
  421. package/dist/webcomponents/p-2d0ea474.entry.js.map +1 -0
  422. package/dist/webcomponents/p-2f53eae4.entry.js +79 -0
  423. package/dist/webcomponents/p-2f53eae4.entry.js.map +1 -0
  424. package/dist/webcomponents/p-329b8988.entry.js +167 -0
  425. package/dist/webcomponents/p-3565a60d.entry.js +153 -0
  426. package/dist/webcomponents/p-3565a60d.entry.js.map +1 -0
  427. package/dist/webcomponents/p-356d2ed1.entry.js +399 -0
  428. package/dist/webcomponents/p-356d2ed1.entry.js.map +1 -0
  429. package/dist/webcomponents/p-39b2018d.entry.js +149 -0
  430. package/dist/webcomponents/p-3dede3fc.entry.js +145 -0
  431. package/dist/webcomponents/p-3ffdd86d.entry.js +117 -0
  432. package/dist/webcomponents/p-3ffdd86d.entry.js.map +1 -0
  433. package/dist/webcomponents/p-43d52598.entry.js +376 -0
  434. package/dist/webcomponents/p-4a7f95ce.entry.js +255 -0
  435. package/dist/webcomponents/p-4f7a4a8c.entry.js +83 -0
  436. package/dist/webcomponents/p-4f7a4a8c.entry.js.map +1 -0
  437. package/dist/webcomponents/p-52f26deb.entry.js +484 -0
  438. package/dist/webcomponents/p-52f26deb.entry.js.map +1 -0
  439. package/dist/webcomponents/p-564e2ed1.entry.js +89 -0
  440. package/dist/webcomponents/p-564e2ed1.entry.js.map +1 -0
  441. package/dist/webcomponents/p-59eecde7.entry.js +343 -0
  442. package/dist/webcomponents/p-59eecde7.entry.js.map +1 -0
  443. package/dist/webcomponents/p-62527cde.entry.js +258 -0
  444. package/dist/webcomponents/p-62527cde.entry.js.map +1 -0
  445. package/dist/webcomponents/p-774ba96e.entry.js +51 -0
  446. package/dist/webcomponents/p-774ba96e.entry.js.map +1 -0
  447. package/dist/webcomponents/p-7a41ff6c.entry.js +61 -0
  448. package/dist/webcomponents/p-7a41ff6c.entry.js.map +1 -0
  449. package/dist/webcomponents/p-7e15d753.entry.js +282 -0
  450. package/dist/webcomponents/p-8939b230.entry.js +297 -0
  451. package/dist/webcomponents/p-8939b230.entry.js.map +1 -0
  452. package/dist/webcomponents/p-8e8f9f78.entry.js +169 -0
  453. package/dist/webcomponents/p-923d0ee2.entry.js +2369 -0
  454. package/dist/webcomponents/p-923d0ee2.entry.js.map +1 -0
  455. package/dist/webcomponents/p-9c435cb9.entry.js +88 -0
  456. package/dist/webcomponents/p-BRKK5nMe.js +22 -0
  457. package/dist/webcomponents/p-BRKK5nMe.js.map +1 -0
  458. package/dist/webcomponents/p-bf7f634f.entry.js +86 -0
  459. package/dist/webcomponents/p-bf7f634f.entry.js.map +1 -0
  460. package/dist/webcomponents/p-c473e6fd.entry.js +277 -0
  461. package/dist/webcomponents/{p-36231217.entry.js.map → p-c473e6fd.entry.js.map} +1 -1
  462. package/dist/webcomponents/p-c47722eb.entry.js +44 -0
  463. package/dist/webcomponents/p-c47722eb.entry.js.map +1 -0
  464. package/dist/webcomponents/p-ccbd8201.entry.js +105 -0
  465. package/dist/webcomponents/p-d8efe09f.entry.js +108 -0
  466. package/dist/webcomponents/p-d8efe09f.entry.js.map +1 -0
  467. package/dist/webcomponents/p-e267327f.entry.js +141 -0
  468. package/dist/webcomponents/webcomponents.esm.js +139 -78
  469. package/dist/webcomponents.html-custom-data.json +147 -4
  470. package/package.json +1 -1
  471. package/dist/cjs/br-collapse.cjs.entry.js.map +0 -1
  472. package/dist/cjs/br-collapse.entry.cjs.js.map +0 -1
  473. package/dist/cjs/br-list.cjs.entry.js +0 -90
  474. package/dist/cjs/br-list.cjs.entry.js.map +0 -1
  475. package/dist/cjs/br-list.entry.cjs.js.map +0 -1
  476. package/dist/components/p-BQZa6fK2.js +0 -198
  477. package/dist/components/p-BQb4_NfQ.js +0 -166
  478. package/dist/components/p-BQb4_NfQ.js.map +0 -1
  479. package/dist/components/p-CAjrcMpR.js +0 -154
  480. package/dist/components/p-CAjrcMpR.js.map +0 -1
  481. package/dist/components/p-DP5hSLC1.js +0 -130
  482. package/dist/components/p-DP5hSLC1.js.map +0 -1
  483. package/dist/components/p-DvG8eiYP.js +0 -285
  484. package/dist/components/p-ZjuPhQfh.js +0 -2270
  485. package/dist/components/p-sndAoOGI.js +0 -386
  486. package/dist/components/p-sndAoOGI.js.map +0 -1
  487. package/dist/esm/br-collapse.entry.js.map +0 -1
  488. package/dist/esm/br-list.entry.js +0 -88
  489. package/dist/esm/br-list.entry.js.map +0 -1
  490. package/dist/webcomponents/br-collapse.entry.esm.js.map +0 -1
  491. package/dist/webcomponents/br-list.entry.esm.js.map +0 -1
  492. package/dist/webcomponents/p-2537ae9c.entry.js +0 -167
  493. package/dist/webcomponents/p-36231217.entry.js +0 -279
  494. package/dist/webcomponents/p-3c0f3cb4.entry.js +0 -169
  495. package/dist/webcomponents/p-477035e2.entry.js +0 -164
  496. package/dist/webcomponents/p-48996f81.entry.js +0 -282
  497. package/dist/webcomponents/p-520c5527.entry.js +0 -149
  498. package/dist/webcomponents/p-64df4b98.entry.js +0 -255
  499. package/dist/webcomponents/p-795c258e.entry.js +0 -105
  500. package/dist/webcomponents/p-94aa48d4.entry.js +0 -460
  501. package/dist/webcomponents/p-94aa48d4.entry.js.map +0 -1
  502. package/dist/webcomponents/p-94aab132.entry.js +0 -141
  503. package/dist/webcomponents/p-9cf1963e.entry.js +0 -145
  504. package/dist/webcomponents/p-9cfc8db7.entry.js +0 -399
  505. package/dist/webcomponents/p-9cfc8db7.entry.js.map +0 -1
  506. package/dist/webcomponents/p-bfb1bd71.entry.js +0 -258
  507. package/dist/webcomponents/p-bfb1bd71.entry.js.map +0 -1
  508. package/dist/webcomponents/p-c5ac5216.entry.js +0 -210
  509. package/dist/webcomponents/p-c5ac5216.entry.js.map +0 -1
  510. package/dist/webcomponents/p-caa64d3d.entry.js +0 -111
  511. package/dist/webcomponents/p-caa64d3d.entry.js.map +0 -1
  512. package/dist/webcomponents/p-cd2933f6.entry.js +0 -153
  513. package/dist/webcomponents/p-cd2933f6.entry.js.map +0 -1
  514. package/dist/webcomponents/p-db618028.entry.js +0 -2362
  515. package/dist/webcomponents/p-db618028.entry.js.map +0 -1
  516. package/dist/webcomponents/p-ddee0a15.entry.js +0 -88
  517. package/dist/webcomponents/p-eecebb46.entry.js +0 -376
  518. package/dist/webcomponents/p-ff97c81f.entry.js +0 -145
  519. package/dist/webcomponents/p-ff97c81f.entry.js.map +0 -1
  520. /package/dist/components/{p-CyMSBO1R.js.map → p-BBbnZnbw.js.map} +0 -0
  521. /package/dist/components/{p-DvG8eiYP.js.map → p-BccYWJTM.js.map} +0 -0
  522. /package/dist/components/{p-BQZa6fK2.js.map → p-CLzPNRoE.js.map} +0 -0
  523. /package/dist/webcomponents/{p-477035e2.entry.js.map → p-0d558b53.entry.js.map} +0 -0
  524. /package/dist/webcomponents/{p-2537ae9c.entry.js.map → p-329b8988.entry.js.map} +0 -0
  525. /package/dist/webcomponents/{p-520c5527.entry.js.map → p-39b2018d.entry.js.map} +0 -0
  526. /package/dist/webcomponents/{p-9cf1963e.entry.js.map → p-3dede3fc.entry.js.map} +0 -0
  527. /package/dist/webcomponents/{p-eecebb46.entry.js.map → p-43d52598.entry.js.map} +0 -0
  528. /package/dist/webcomponents/{p-64df4b98.entry.js.map → p-4a7f95ce.entry.js.map} +0 -0
  529. /package/dist/webcomponents/{p-48996f81.entry.js.map → p-7e15d753.entry.js.map} +0 -0
  530. /package/dist/webcomponents/{p-3c0f3cb4.entry.js.map → p-8e8f9f78.entry.js.map} +0 -0
  531. /package/dist/webcomponents/{p-ddee0a15.entry.js.map → p-9c435cb9.entry.js.map} +0 -0
  532. /package/dist/webcomponents/{p-795c258e.entry.js.map → p-ccbd8201.entry.js.map} +0 -0
  533. /package/dist/webcomponents/{p-94aab132.entry.js.map → p-e267327f.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-checkbox.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkbox/checkbox.scss?tag=br-checkbox&encapsulation=shadow","../../packages/webcomponents/src/components/checkbox/checkbox.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n\n:host {\n display: block;\n}\n","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 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 }\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 />\n <label htmlFor={this.customId}>{this.slotDefault ? <slot></slot> : this.label}</label>\n </div>\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-checkbox.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkbox/checkbox.scss?tag=br-checkbox&encapsulation=shadow","../../packages/webcomponents/src/components/checkbox/checkbox.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n\n:host {\n display: block;\n}\n","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 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 }\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 />\n <label htmlFor={this.customId}>{this.slotDefault ? <slot></slot> : this.label}</label>\n </div>\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-checkgroup.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkgroup/checkgroup.scss?tag=br-checkgroup&encapsulation=shadow","../../packages/webcomponents/src/components/checkgroup/checkgroup.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n\n:host {\n display: block;\n}\n","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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-checkgroup.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkgroup/checkgroup.scss?tag=br-checkgroup&encapsulation=shadow","../../packages/webcomponents/src/components/checkgroup/checkgroup.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n\n:host {\n display: block;\n}\n","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"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-collapse.br-list.entry.esm.js","sources":["../../packages/webcomponents/src/components/collapse/collapse.scss?tag=br-collapse&encapsulation=shadow","../../packages/webcomponents/src/components/collapse/collapse.tsx","../../packages/webcomponents/src/components/list/list.scss?tag=br-list&encapsulation=shadow","../../packages/webcomponents/src/components/list/list.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n\n .br-collapse {\n .trigger {\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:not(:disabled):hover,\n &:not(:disabled):focus-visible {\n background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));\n }\n }\n\n .trigger-content {\n flex: 1 1 auto !important;\n }\n\n .content {\n transition: height 0.3s;\n overflow: hidden;\n }\n\n br-icon {\n color: var(--interactive);\n }\n }\n\n details {\n width: 100%;\n\n summary {\n list-style: none;\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n padding: 8px 12px;\n height: 48px;\n outline: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n }\n }\n }\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n }\n}\n","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","@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n\n .br-list.horizontal ::slotted(br-item) {\n flex: 1;\n height: auto;\n min-height: 56px;\n width: auto;\n }\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } 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/list?tab=designer).\n *\n * @slot default - Slot padrão para inclusão dos itens da lista.\n * @slot header - Slot nomeado para inclusão de ações relacionadas ao cabeçalho do list (uso de botões por exemplo).\n */\n@Component({\n tag: 'br-list',\n styleUrl: 'list.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class List {\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: HTMLBrListElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o cabeçalho para a lista.\n */\n @Prop({ reflect: true }) readonly header: string = null\n\n /**\n * Indica se a lista será horizontal. Por padrão, a lista é vertical.\n */\n @Prop({ reflect: true }) readonly isHorizontal: 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-list-${listId++}`\n\n /**\n * Indica que o divider para o título da lista estará oculto.\n */\n @Prop({ reflect: true }) readonly hideHeaderDivider: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de collapse.\n */\n @Prop({ reflect: true }) readonly collapse: boolean = false\n\n /**\n * Indica se a lista possui o comportamento de accordion.\n * O valor da propriedade define o grupo, ou seja, o accordion é aplicado a todas as listas que possuem o mesmo valor para esta propriedade.\n */\n @Prop({ reflect: true }) readonly accordion: string = null\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentDidLoad() {\n if (this.isHorizontal) {\n const slotItems = Array.from(this.el.querySelectorAll('br-item'))\n\n slotItems.forEach((item) => {\n const nextElement = item.nextElementSibling\n if (nextElement?.classList.contains('br-divider')) {\n const divider = nextElement as HTMLElement\n divider.style.borderWidth = '0 1px 0 0'\n divider.style.width = '1px'\n }\n })\n }\n\n const items = Array.from(this.el.querySelectorAll('br-item'))\n items.forEach((item) => {\n item.setAttribute('role', 'listitem')\n })\n }\n\n /**\n * Método que retorna as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-list': true,\n horizontal: this.isHorizontal,\n }\n }\n\n /**\n * Verifica se o slot possui conteúdo.\n * @param slotName Nome do slot a ser verificado.\n * @returns true se o slot possui conteúdo, false caso contrário.\n */\n private hasSlotContent(slotName: string): boolean {\n const directChildren = Array.from(this.el.querySelectorAll(`[slot=\"${slotName}\"]`)).filter(\n (child) => child.parentElement === this.el\n )\n return Boolean(directChildren.length)\n }\n\n /**\n * Renderiza o cabeçalho da lista.\n * @returns JSX do cabeçalho da lista\n */\n private renderHeader() {\n console.log(this.header, this.hasSlotContent('header'))\n if (Boolean(this.header) || this.hasSlotContent('header')) {\n return (\n <div\n class={!this.hasSlotContent('header') ? 'header' : null}\n slot={this.collapse || Boolean(this.accordion) ? 'trigger' : null}\n >\n <slot name=\"header\">{!this.hasSlotContent('header') ? <div class=\"title\">{this.header}</div> : null}</slot>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza o divider do cabeçalho.\n * @returns JSX do divider\n */\n private renderDivider() {\n if ((this.header || this.hasSlotContent('header')) && !this.hideHeaderDivider) {\n return <div class=\"br-divider\"></div>\n }\n return null\n }\n\n /**\n * Renderiza o corpo da lista.\n * @returns JSX do corpo da lista.\n */\n private renderListBody() {\n return [this.renderHeader(), this.renderDivider(), <slot></slot>]\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente\n */\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()} role=\"list\" id={this.customId}>\n {Boolean(this.accordion) || this.collapse ? (\n <br-collapse accordion-group={this.accordion || null}>{this.renderListBody()}</br-collapse>\n ) : (\n this.renderListBody()\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet listId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-divider.entry.esm.js","sources":["../../packages/webcomponents/src/components/divider/divider.scss?tag=br-divider&encapsulation=shadow","../../packages/webcomponents/src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n\n .br-divider {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 20px 0;\n border: none;\n background-color: transparent;\n\n &::before,\n &::after {\n content: \"\";\n flex: 1;\n border-top: var(--divider-size, 1px) solid var(--border-color, black);\n }\n\n &.dashed {\n border-top: none;\n background: none;\n\n &::before,\n &::after {\n border-top: var(--divider-size, 1px) dashed var(--border-color);\n }\n }\n\n &.dashed.vertical {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n }\n }\n\n &.vertical {\n flex-direction: column;\n height: 100%;\n width: auto;\n margin: 0 10px;\n align-self: stretch;\n border-right-width: var(--divider-size);\n border-top-width: 0;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) solid var(--border-color, black);\n border-top: none;\n margin: 0;\n }\n }\n\n &.small {\n --divider-size: var(--surface-width-sm);\n }\n\n &.medium {\n --divider-size: var(--surface-width-md);\n }\n\n &.large {\n --divider-size: var(--surface-width-lg);\n }\n\n &.divider-left {\n justify-content: flex-start;\n\n &::before {\n flex: 0 0 0px;\n margin-right: var(--spacing-scale-base);\n }\n }\n\n &.divider-center {\n justify-content: center;\n }\n\n &.divider-right {\n justify-content: flex-end;\n\n &::after {\n flex: 0 0 0px;\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n\n .divider-left::after,\n .divider-center::before,\n .divider-center::after,\n .divider-right::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-left::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-right::after {\n margin-left: var(--spacing-scale-base);\n }\n\n :host(:empty)::before,\n :host(:empty)::after {\n margin: 0;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\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 /** Identificador único */\n @Prop({ reflect: true }) readonly customId: string = `br-divider-${dividerId++}`\n\n /** Define a orientação */\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\n /** Modifica a espessura da linha */\n @Prop({ reflect: true }) thickness: 'small' | 'medium' | 'large' = 'small'\n\n /** Modifica o estilo da linha */\n @Prop({ reflect: true }) borderStyle: 'dashed' | 'solid' = 'solid'\n\n /** Ativa o modo escuro */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /** Define a cor da linha */\n @Prop({ reflect: true }) color: string = ''\n\n /** Alinhamento do texto do divider */\n @Prop() align: 'left' | 'center' | 'right'\n\n /** Define se o divider deve ocupar toda a largura do container pai */\n @Prop() bleed: boolean = false\n\n @State() slotDefault: boolean = false\n\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n connectedCallback() {\n this.hasSlotContentDefault()\n }\n\n componentDidLoad() {\n if (this.orientation === 'vertical') {\n this.el.parentElement?.style.setProperty('display', 'flex')\n }\n if (this.bleed) {\n this.applyPaddingToChild()\n window.addEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n this.updateColor()\n }\n\n disconnectedCallback() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML.trim() !== ''\n }\n\n private getPaddingOfParent() {\n const parent = this.el.parentElement\n if (parent !== null) {\n const style = getComputedStyle(parent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n private applyPaddingToChild() {\n const { paddingLeft, paddingRight } = this.getPaddingOfParent()\n const child = this.el.shadowRoot?.querySelector('.br-divider')\n child.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n render() {\n return (\n <Host>\n {this.slotDefault ? (\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 <hr class={this.getCssClassMap()} />\n )}\n </Host>\n )\n }\n}\n\nlet dividerId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-divider.entry.esm.js","sources":["../../packages/webcomponents/src/components/divider/divider.scss?tag=br-divider&encapsulation=shadow","../../packages/webcomponents/src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n\n .br-divider {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 20px 0;\n border: none;\n background-color: transparent;\n\n &::before,\n &::after {\n content: \"\";\n flex: 1;\n border-top: var(--divider-size, 1px) solid var(--border-color, black);\n }\n\n &.dashed {\n border-top: none;\n background: none;\n\n &::before,\n &::after {\n border-top: var(--divider-size, 1px) dashed var(--border-color);\n }\n }\n\n &.dashed.vertical {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n }\n }\n\n &.vertical {\n flex-direction: column;\n height: 100%;\n width: auto;\n margin: 0 10px;\n align-self: stretch;\n border-right-width: var(--divider-size);\n border-top-width: 0;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) solid var(--border-color, black);\n border-top: none;\n margin: 0;\n }\n }\n\n &.small {\n --divider-size: var(--surface-width-sm);\n }\n\n &.medium {\n --divider-size: var(--surface-width-md);\n }\n\n &.large {\n --divider-size: var(--surface-width-lg);\n }\n\n &.divider-left {\n justify-content: flex-start;\n\n &::before {\n flex: 0 0 0px;\n margin-right: var(--spacing-scale-base);\n }\n }\n\n &.divider-center {\n justify-content: center;\n }\n\n &.divider-right {\n justify-content: flex-end;\n\n &::after {\n flex: 0 0 0px;\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n\n .divider-left::after,\n .divider-center::before,\n .divider-center::after,\n .divider-right::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-left::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-right::after {\n margin-left: var(--spacing-scale-base);\n }\n\n :host(:empty)::before,\n :host(:empty)::after {\n margin: 0;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\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 /** Identificador único */\n @Prop({ reflect: true }) readonly customId: string = `br-divider-${dividerId++}`\n\n /** Define a orientação */\n @Prop({ reflect: true }) orientation: 'horizontal' | 'vertical' = 'horizontal'\n\n /** Modifica a espessura da linha */\n @Prop({ reflect: true }) thickness: 'small' | 'medium' | 'large' = 'small'\n\n /** Modifica o estilo da linha */\n @Prop({ reflect: true }) borderStyle: 'dashed' | 'solid' = 'solid'\n\n /** Ativa o modo escuro */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /** Define a cor da linha */\n @Prop({ reflect: true }) color: string = ''\n\n /** Alinhamento do texto do divider */\n @Prop() align: 'left' | 'center' | 'right'\n\n /** Define se o divider deve ocupar toda a largura do container pai */\n @Prop() bleed: boolean = false\n\n @State() slotDefault: boolean = false\n\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n connectedCallback() {\n this.hasSlotContentDefault()\n }\n\n componentDidLoad() {\n if (this.orientation === 'vertical') {\n this.el.parentElement?.style.setProperty('display', 'flex')\n }\n if (this.bleed) {\n this.applyPaddingToChild()\n window.addEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n this.updateColor()\n }\n\n disconnectedCallback() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyPaddingToChild.bind(this))\n }\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML.trim() !== ''\n }\n\n private getPaddingOfParent() {\n const parent = this.el.parentElement\n if (parent !== null) {\n const style = getComputedStyle(parent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n private applyPaddingToChild() {\n const { paddingLeft, paddingRight } = this.getPaddingOfParent()\n const child = this.el.shadowRoot?.querySelector('.br-divider')\n child.setAttribute('style', `margin-left: -${paddingLeft}px; margin-right: -${paddingRight * 2}px;`)\n }\n\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n render() {\n return (\n <Host>\n {this.slotDefault ? (\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 <hr class={this.getCssClassMap()} />\n )}\n </Host>\n )\n }\n}\n\nlet dividerId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-dropdown.entry.esm.js","sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot que recebe o elemento acionador\n * @slot target - Slot que recebe o elemento alvo\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-dropdown-${dropdownId++}`\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged() {\n this.brDropdownChange.emit({ 'is-opened': this.isOpen })\n }\n\n connectedCallback() {\n document.addEventListener('click', this.onClickOutside.bind(this))\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.onClickOutside.bind(this))\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n const path = event.composedPath()\n const dropdownElement = this.el.shadowRoot.querySelector('#target')\n\n if (dropdownElement && !path.includes(dropdownElement)) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen}\n >\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,s5wDAAs5wD;;MCgB75wD,QAAQ,GAAA,MAAA;;;;;;;;;;;;;AAOA,IAAA,gBAAgB;AAEnC;;;;AAIG;IACqC,MAAM,GAAY,KAAK;AAE/D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,YAAA,EAAe,UAAU,EAAE,EAAE;AAElF;;;AAGG;IAEH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;IAG1D,iBAAiB,GAAA;AACf,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,oBAAoB,GAAA;AAClB,QAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGvE;;AAEG;AACM,IAAA,gBAAgB;IAEjB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;AAEG;AACc,IAAA,MAAM,GAAG,CAAC,KAAY,KAAI;QACzC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC5B,KAAC;AAED;;;;AAIG;AACK,IAAA,cAAc,CAAC,KAAiB,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AACjC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;QAEnE,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YACtD,IAAI,CAAC,IAAI,EAAE;;;AAIf;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;AAGhC;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;IAGhC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAU,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EACxB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAClD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAC,SAAS,EACZ,OAAO,EAAE,IAAI,CAAC,MAAM,EAAA,eAAA,EACN,QAAQ,EACR,eAAA,EAAA,MAAM,EACL,eAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EAE1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAA,CAAQ,CACxB,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,EAAE,EAAC,QAAQ,iBAAc,CAAC,IAAI,CAAC,MAAM,EAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACvB,CACF,CACD;;;;;;;AAKb,IAAI,UAAU,GAAG,CAAC;;;;;"}
1
+ {"version":3,"file":"br-dropdown.entry.esm.js","sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n }\n\n #target {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot que recebe o elemento acionador\n * @slot target - Slot que recebe o elemento alvo\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-dropdown-${dropdownId++}`\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged() {\n this.brDropdownChange.emit({ 'is-opened': this.isOpen })\n }\n\n connectedCallback() {\n document.addEventListener('click', this.onClickOutside.bind(this))\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.onClickOutside.bind(this))\n }\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ 'is-opened': boolean }>\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n const path = event.composedPath()\n const dropdownElement = this.el.shadowRoot.querySelector('#target')\n\n if (dropdownElement && !path.includes(dropdownElement)) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método é marcado com @Method() para que possa ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen } // Retorna o novo estado\n }\n\n render() {\n return (\n <Host is-open={this.isOpen}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen}\n >\n <slot name=\"trigger\"></slot>\n </div>\n <div id=\"target\" aria-hidden={!this.isOpen}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n\nlet dropdownId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,WAAW,GAAG,k4yDAAk4yD;;MCgBz4yD,QAAQ,GAAA,MAAA;;;;;;;;;;;;;AAOA,IAAA,gBAAgB;AAEnC;;;;AAIG;IACqC,MAAM,GAAY,KAAK;AAE/D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,YAAA,EAAe,UAAU,EAAE,EAAE;AAElF;;;AAGG;IAEH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;IAG1D,iBAAiB,GAAA;AACf,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,oBAAoB,GAAA;AAClB,QAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGvE;;AAEG;AACM,IAAA,gBAAgB;IAEjB,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;AAEG;AACc,IAAA,MAAM,GAAG,CAAC,KAAY,KAAI;QACzC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC5B,KAAC;AAED;;;;AAIG;AACK,IAAA,cAAc,CAAC,KAAiB,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AACjC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;QAEnE,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YACtD,IAAI,CAAC,IAAI,EAAE;;;AAIf;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;QAClB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;AAGhC;;;;AAIG;AAEH,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;QACnB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;;IAGhC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAU,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EACxB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAClD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAC,SAAS,EACZ,OAAO,EAAE,IAAI,CAAC,MAAM,EAAA,eAAA,EACN,QAAQ,EACR,eAAA,EAAA,MAAM,EACL,eAAA,EAAA,IAAI,CAAC,MAAM,EAAA,EAE1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAA,CAAQ,CACxB,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,EAAE,EAAC,QAAQ,iBAAc,CAAC,IAAI,CAAC,MAAM,EAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACvB,CACF,CACD;;;;;;;AAKb,IAAI,UAAU,GAAG,CAAC;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-category.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-category/footer-category.scss?tag=br-footer-category&encapsulation=shadow","../../packages/webcomponents/src/components/footer-category/footer-category.tsx"],"sourcesContent":[":host {\n display: block;\n padding-bottom: 48px;\n}\n","import { Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-category` representa o mapa do site, de acordo com a documentação de design do GovBR.\n *\n * O `br-footer-category` deve ser utilizado com filho direto do componente [`br-footer`](/docs/components/footer) e possui um slot para os itens da categoria.\n * Esses itens são representados pelo componente [`br-footer-item`](/docs/components/footer-item).\n *\n * O componente `br-footer-category` é responsivo e se adapta a diferentes tamanhos de tela.\n * Em telas menores, ele se comporta como um accordion, enquanto em telas maiores, ele é exibido como uma lista.\n *\n * @slot default - Área destinada aos itens da categoria. Utilize o componente [`br-footer-item`](/docs/components/footer-item) para adicionar itens.\n */\n@Component({\n tag: 'br-footer-category',\n styleUrl: 'footer-category.scss',\n shadow: true,\n})\nexport class FooterCategory {\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: HTMLBrFooterCategoryElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Título da lista.\n * @default ''\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Define se o componente é exibido em um layout de desktop ou não.\n * @default false\n */\n @State() isDesktop: boolean = false\n\n /**\n * Define o nome do grupo de accordion.\n */\n @State() accordionGroup: string = null\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n */\n private mediaQuery: MediaQueryList\n\n /**\n * Define um nome para o grupo de accordion.\n * O nome do grupo é definido com base no atributo `custom-id` do elemento pai.\n */\n private setAccordionGroup() {\n this.accordionGroup = `group-${this.el.parentElement.getAttribute('custom-id')}`\n }\n\n /**\n * Método que retorna as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-category': true,\n }\n }\n\n /**\n * Método que retorna as classes baseadas no tamanho da tela.\n */\n private getRootClassMap(): CssClassMap {\n return {\n 'col-2': this.isDesktop,\n col: !this.isDesktop,\n }\n }\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n * O valor padrão é `(min-width: 992px)`, que corresponde a telas de desktop.\n * O valor pode ser alterado para atender às necessidades específicas do projeto.\n * @default '(min-width: 992px)'\n */\n private setMedia() {\n this.mediaQuery = window.matchMedia('(min-width: 992px)')\n this.isDesktop = this.mediaQuery.matches\n this.mediaQuery.addEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentWillLoad() {\n this.setMedia()\n this.setAccordionGroup()\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n this.mediaQuery.removeEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Trata a mudança de media query.\n * @param event O evento de mudança de media query.\n */\n private handleMediaQueryChange = (event: MediaQueryListEvent) => {\n this.isDesktop = event.matches\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host class={this.getRootClassMap()}>\n <br-list\n id={this.customId}\n class={this.getCssClassMap()}\n header={this.label}\n role=\"list\"\n hide-header-divider\n accordion={!this.isDesktop ? this.accordionGroup : null}\n >\n <slot></slot>\n </br-list>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,6uyDAA6uyD;;MCqB1vyD,cAAc,GAAA,MAAA;;;;;AAOzB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;AAGG;IACsB,KAAK,GAAW,EAAE;AAE3C;;;AAGG;IACM,SAAS,GAAY,KAAK;AAEnC;;AAEG;IACM,cAAc,GAAW,IAAI;AAEtC;;;AAGG;AACK,IAAA,UAAU;AAElB;;;AAGG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;;AAGlF;;AAEG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,oBAAoB,EAAE,IAAI;SAC3B;;AAGH;;AAEG;IACK,eAAe,GAAA;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;SACrB;;AAGH;;;;;;AAMG;IACK,QAAQ,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAGzE;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,iBAAiB,EAAE;;AAG1B;;AAEG;IACH,oBAAoB,GAAA;QAClB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAG5E;;;AAGG;AACK,IAAA,sBAAsB,GAAG,CAAC,KAA0B,KAAI;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;AAChC,KAAC;AAED;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAA,EACjC,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,EAClB,IAAI,EAAC,MAAM,EAEX,qBAAA,EAAA,IAAA,EAAA,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAA,EAEvD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-item/footer-item.scss?tag=br-footer-item&encapsulation=shadow","../../packages/webcomponents/src/components/footer-item/footer-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-item` deve ser utilizado juntamente com o subcomponente [`br-footer-category`](/docs/components/footer-category) para representar os itens dentro de uma categoria no rodapé.\n * De acordo com o a documentação de design do GovBR, esses dois subcomponentes formam o mapa do site.\n * Portanto sob esse contexto, o `br-footer-item` representa uma página no site.\n *\n * O `br-footer-item` deve ser utilizado como filho direto do componente [`br-footer-category`](/docs/components/footer-category).\n *\n * @slot default - Área destinada ao conteúdo do item.\n */\n@Component({\n tag: 'br-footer-item',\n styleUrl: 'footer-item.scss',\n shadow: true,\n})\nexport class FooterItem {\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: HTMLBrFooterItemElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item.\n * Quando definido, o item será renderizado como um link.\n * @example 'https://www.gov.br'\n * @example '/home'\n * @example '#section'\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Monta o objeto com as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-item': true,\n }\n }\n\n /**\n * Renderiza o componente\n * @returns JSX do componente\n */\n render() {\n return (\n <Host>\n <br-item id={this.customId} href={this.href} role=\"listitem\" class={this.getCssClassMap()}>\n <slot></slot>\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,ytyDAAytyD;;MCmBluyD,UAAU,GAAA,MAAA;;;;;AAOrB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;;;;AAMG;AAC+B,IAAA,IAAI;AAEtC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;SACvB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EACvF,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-legal.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-legal/footer-legal.scss?tag=br-footer-legal&encapsulation=shadow","../../packages/webcomponents/src/components/footer-legal/footer-legal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-info;\n\n:host {\n display: block;\n}\n\n.info {\n ::slotted(*) {\n font-size: var(--font-size-scale-down-01) !important;\n font-weight: 500 !important;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-legal` representa a área destinada a informações legais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n *\n * @slot default - Área destinada a informações legais.\n */\n@Component({\n tag: 'br-footer-legal',\n styleUrl: 'footer-legal.scss',\n shadow: true,\n})\nexport class FooterLegal {\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: HTMLBrFooterLegalElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-legal': true,\n info: true,\n 'text-down-01': true,\n 'text-medium': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <br-divider></br-divider>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,cAAc,GAAG,i1yDAAi1yD;;MCgB31yD,WAAW,GAAA,MAAA;;;;;AAOtB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;IAEvE,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAyB,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACzB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-logo.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-logo/footer-logo.scss?tag=br-footer-logo&encapsulation=shadow","../../packages/webcomponents/src/components/footer-logo/footer-logo.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-logo;\n\n:host {\n display: block;\n}\n\n:host(.partner) {\n display: inline-block;\n}\n\n.logo {\n &.partner {\n margin-left: var(--spacing-scale-3x);\n text-decoration: none;\n padding: 0;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-logo` representa a logo principal do site ou a logo dos parceiros.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n * Para que ele represente a logo principal do site, o atributo `is-partner` deve ser definido como `false`, ou não deve ser definido.\n * Para que ele represente a logo de um parceiro, o atributo `is-partner` deve ser definido como `true`.\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterLogoElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n <img src={this.src} alt={this.description} />\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,48yDAA48yD;;MCgBr9yD,UAAU,GAAA,MAAA;;;;;AAOrB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,GAAG,GAAW,EAAE;AAEzC;;AAEG;IACsB,WAAW,GAAW,MAAM;AAErD;;AAEG;IACsB,QAAQ,GAAgC,MAAM;AAEvE;;AAEG;IAC+B,SAAS,GAAY,KAAK;AAE5D;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;AACxC,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAC5C,YAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EACpC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAA,CAAI,CACzC,CACD;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer-social.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer-social/footer-social.scss?tag=br-footer-social&encapsulation=shadow","../../packages/webcomponents/src/components/footer-social/footer-social.tsx"],"sourcesContent":[".spacing-icons {\n margin-right: var(--spacing-scale-2x);\n text-decoration: none;\n}\n\nbr-button {\n display: inline-block;\n}\n","import { Component, Element, h, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-social` representa os ícones de redes sociais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n */\n@Component({\n tag: 'br-footer-social',\n styleUrl: 'footer-social.scss',\n shadow: true,\n})\nexport class FooterSocial {\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: HTMLBrFooterSocialElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ícone da rede social\n * */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Descrição do ícone da rede social\n * */\n @Prop({ reflect: true }) readonly description: string\n\n /**\n * URL da rede social\n */\n @Prop({ reflect: true }) readonly href: string = null\n\n /**\n * Monta o objeto com as classes CSS do componente.\n * @returns Objeto com as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-social': true,\n 'spacing-icons': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <br-button\n role=\"link\"\n class={this.getCssClassMap()}\n id={this.customId}\n emphasis=\"tertiary\"\n shape=\"circle\"\n aria-label={this.description}\n >\n <a href={this.href} tabindex=\"-1\">\n <br-icon icon-name={`fa-brands:${this.icon}`} aria-hidden=\"true\"></br-icon>\n </a>\n </br-button>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,6yyDAA6yyD;;MCcxzyD,YAAY,GAAA,MAAA;;;;;AAOvB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEK;AAC6B,IAAA,IAAI;AAEtC;;AAEK;AAC6B,IAAA,WAAW;AAE7C;;AAEG;IAC+B,IAAI,GAAW,IAAI;AAErD;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,IAAI;SACtB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,QAAQ,EACF,YAAA,EAAA,IAAI,CAAC,WAAW,EAAA,EAE5B,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAA,EAC/B,CAAoB,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,EAAE,EAAc,aAAA,EAAA,MAAM,EAAW,CAAA,CACzE,CACM;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-footer.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer.scss?tag=br-footer&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/divider/divider\";\n@import \"~@govbr-ds/core/src/partial/scss/configs/grid\";\n@import \"~@govbr-ds/core/src/partial/scss/utilities/flexbox\";\n@import \"~@govbr-ds/core/src/components/footer/footer\";\n@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-social;\n\n:host {\n display: block;\n width: 100%;\n}\n\n.br-footer {\n display: flex;\n flex-flow: column nowrap;\n\n &.inverted {\n --background: var(--background-light);\n\n @include light-mode;\n }\n}\n\n.site-map {\n display: flex;\n flex-flow: column nowrap;\n padding: var(--footer-padding-bottom);\n}\n\n.social-and-partners {\n display: none;\n padding: var(--footer-padding-bottom);\n}\n\n.social-newtwork,\n.partners {\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n}\n\n.social-title {\n flex-basis: 100%;\n}\n\n@media (width >= 576px) {\n .social-and-partners {\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n align-items: flex-end;\n }\n}\n\n@media (width >= 992px) {\n .site-map {\n flex-flow: row wrap;\n justify-content: flex-start;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * O componente `br-footer` representa o rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele é composto por vários subcomponentes, como [`br-footer-category`](/docs/components/footer-category), [`br-footer-item`](/docs/components/footer-item), [`br-footer-social`](/docs/components/footer-social), [`br-footer-legal`](/docs/components/footer-legal) e [`br-logo`](/docs/components/footer-logo).\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/footer?tab=designer).\n *\n * @slot logo - Área destinada ao logo do rodapé. Utilize o componente `br-logo` para adicionar o logo.\n * @slot default - Área destinada ao mapa do site. Utilize o componente `br-footer-category` juntamente com o componente `br-footer-item` para adicionar itens.\n * @slot social-network - Área destinada às redes sociais. Utilize o componente `br-footer-social` para adicionar redes sociais.\n * @slot partner-logo - Área destinada aos logos de parceiros. Utilize o componente `br-logo` para adicionar os logos.\n * @slot legal - Área destinada às informações legais. Utilize o componente `br-footer-legal` para adicionar informações legais.\n */\n@Component({\n tag: 'br-footer',\n styleUrl: 'footer.scss',\n shadow: true,\n})\nexport class Footer {\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: HTMLBrFooterElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Indica o tema do rodapé.\n */\n @Prop({ reflect: true }) theme: 'dark' | 'light' = 'dark'\n\n /**\n * Texto de descrição das redes sociais.\n */\n @Prop({ reflect: true }) socialNetworkTitle: string = 'Redes Sociais'\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer': true,\n inverted: this.theme === 'light',\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <slot name=\"logo\"></slot>\n <div class=\"site-map\">\n <slot></slot>\n </div>\n <div class=\"social-and-partners\">\n <div class=\"social-network\">\n <p class=\"social-network-title\">{this.socialNetworkTitle}</p>\n <slot name=\"social-network\"></slot>\n </div>\n <div class=\"partners text-right\">\n <slot name=\"partner-logo\"></slot>\n </div>\n </div>\n <slot name=\"legal\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,q8hEAAq8hE;;MCqB18hE,MAAM,GAAA,MAAA;;;;;AAOjB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,KAAK,GAAqB,MAAM;AAEzD;;AAEG;IACsB,kBAAkB,GAAW,eAAe;IAE7D,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;SACjC;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,MAAM,EAAQ,CAAA,EACzB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAG,KAAK,EAAC,sBAAsB,IAAE,IAAI,CAAC,kBAAkB,CAAK,EAC7D,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,gBAAgB,EAAA,CAAQ,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,cAAc,EAAA,CAAQ,CAC7B,CACF,EACN,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EAAA,CAAQ,CACtB,CACF,CACD;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-input.br-radio.entry.esm.js","sources":["../../packages/webcomponents/src/components/input/input.scss?tag=br-input&encapsulation=shadow","../../packages/webcomponents/src/components/input/input.tsx","../../packages/webcomponents/src/components/radio/radio.scss?tag=br-radio&encapsulation=shadow","../../packages/webcomponents/src/components/radio/radio.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/input/input\";\n\n:host {\n display: block;\n\n .br-input .input-icon {\n margin-top: 0.1em;\n margin-left: var(--spacing-scale-base);\n }\n\n .br-input .input-icon + input {\n padding-left: calc(var(--input-padding-icon) + 3px);\n }\n}\n\n.br-input br-button {\n float: right;\n margin-right: var(--input-button-margin);\n margin-top: calc((var(--input-size) + var(--spacing-scale-half)) * -1);\n padding: 0;\n position: relative;\n}\n\n.button-transform {\n transform: translateY(calc((var(--input-size) - 32px) * 0.5));\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n * @slot feedback - Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) readonly type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) readonly autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) readonly isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-input-${inputId++}`\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) readonly required: boolean = false\n\n /**\n * Valor exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) readonly helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) readonly autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) readonly pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() internalState: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n @State() hasFeedbackSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.hasFeedbackSlot = this.hasSlotContent('feedback')\n this.internalState = this.state\n\n if (this.hasFeedbackSlot) {\n this.initializeStateWithFeedback()\n }\n }\n\n componentDidLoad() {\n if (this.hasFeedbackSlot) {\n this.setupSlotFeedbackListener()\n }\n }\n\n private initializeStateWithFeedback() {\n const initialMessageElement = this.el.querySelector('br-message')\n\n if (initialMessageElement) {\n const messageState = initialMessageElement.getAttribute('state')\n this.internalState = (messageState as 'info' | 'warning' | 'danger' | 'success') || this.state\n } else {\n this.internalState = this.state\n }\n }\n\n private setupSlotFeedbackListener() {\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"feedback\"]')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.syncStateWithSlotFeedback()\n })\n }\n }\n\n private syncStateWithSlotFeedback() {\n const messageElement = this.el.querySelector('br-message')\n\n if (messageElement) {\n this.internalState = messageElement.getAttribute('state') as 'info' | 'warning' | 'danger' | 'success'\n } else {\n this.internalState = this.state\n }\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.internalState === 'success',\n danger: this.internalState === 'danger',\n info: this.internalState === 'info',\n warning: this.internalState === 'warning',\n }\n }\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange: EventEmitter<string>\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button class=\"button-transform\" shape=\"circle\" density=\"small\" aria-label=\"botão de ação do ícone\">\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n private renderFeedback() {\n if (this.hasFeedbackSlot) {\n return <slot name=\"feedback\"></slot>\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n\n {this.renderFeedback()}\n </div>\n </Host>\n )\n }\n}\n\nlet inputId = 0\n","@import \"~@govbr-ds/core/src/components/radio/radio\";\n@include radio-checked;\n\n:host {\n display: block;\n\n .br-radio.hidden-label {\n label {\n padding-left: calc(var(--checkbox-size) + var(--surface-width-md) * 2);\n text-indent: -10000px;\n white-space: nowrap;\n width: 0;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } 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/radio?tab=designer).\n *\n * @slot default - O texto descritivo pode ser passado por propriedade (label) ou por slot.\n */\n\n@Component({\n tag: 'br-radio',\n styleUrl: 'radio.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Radio {\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: HTMLBrRadioElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o estado de seleção do radio.\n * Se definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false\n\n /**\n * Desativa o radio, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Indica a validade do radio.\n * Valores possíveis:\n * - 'valid': O radio é considerado válido.\n * - 'invalid': O radio é 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 se o label associado ao radio deve ser oculto.\n * Se definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.\n */\n @Prop({ reflect: true, attribute: 'has-hidden-label' }) readonly hasHiddenLabel: 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-radio-${radioId++}`\n\n /**\n * Define o nome do radio, que é utilizado para agrupar radios 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\n @Prop({ reflect: true }) readonly name!: string\n\n /**\n * Texto descritivo exibido à direita do radio.\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 valor associado ao radio quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o radio está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o radio está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event({ bubbles: true, composed: true }) checkedChange: EventEmitter<boolean>\n\n @Listen('checkedChange', { target: 'window' })\n handleCheckedChange(event: CustomEvent) {\n if (\n (event.target as HTMLBrRadioElement).customId !== this.customId &&\n (event.target as HTMLBrRadioElement).name === this.name\n ) {\n this.checked = false\n }\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 private getCssClassMap(): CssClassMap {\n return {\n 'br-radio': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n /**\n * Handler para o event `click`\n * @param event Objeto Event\n */\n private readonly onClick = (event: MouseEvent) => {\n event.stopPropagation()\n this.checked = (event.target as HTMLInputElement).checked\n }\n\n /**\n * Handler para o evento `change`\n */\n private readonly onChange = () => {\n this.checkedChange.emit(this.checked)\n }\n\n render() {\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()}>\n <input\n part=\"radio-input\"\n aria-label={this.label}\n type=\"radio\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onClick={this.onClick}\n onChange={this.onChange}\n />\n <label part=\"radio-label\" htmlFor={this.customId}>\n <slot>{this.label}</slot>\n </label>\n </div>\n </Host>\n )\n }\n}\n\nlet radioId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-input.br-radio.entry.esm.js","sources":["../../packages/webcomponents/src/components/input/input.scss?tag=br-input&encapsulation=shadow","../../packages/webcomponents/src/components/input/input.tsx","../../packages/webcomponents/src/components/radio/radio.scss?tag=br-radio&encapsulation=shadow","../../packages/webcomponents/src/components/radio/radio.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/input/input\";\n\n:host {\n display: block;\n\n .br-input .input-icon {\n margin: 0 var(--spacing-scale-2x);\n }\n\n .br-input .input-icon + input {\n padding-left: var(--spacing-scale-6x);\n }\n}\n\n.br-input br-button {\n float: right;\n margin-right: var(--input-button-margin);\n margin-top: calc((var(--input-size) + var(--spacing-scale-half)) * -1);\n padding: 0;\n position: relative;\n}\n\n.button-transform {\n transform: translateY(calc((var(--input-size) - 32px) * 0.5));\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n *\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/input?tab=designer).\n *\n * @slot action - Botão à direita do input.\n * @slot icon - Ícone à esquerda do input.\n * @slot help-text - Personalização do texto de ajuda.\n * @slot feedback - Mensagem de feedback como resposta específica a uma interação do usuário com o input. Pode ser feedback de erro, aviso, sucesso ou informação.\n */\n@Component({\n tag: 'br-input',\n styleUrl: 'input.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Input {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrInputElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Especifica o tipo de entrada do campo. Pode ser um dos seguintes:\n * - 'color': Seletor de cor\n * - 'email': Campo para e-mail\n * - 'hidden': Campo oculto\n * - 'password': Campo para senha\n * - 'range': Controle deslizante\n * - 'search': Campo de pesquisa\n * - 'number': Campo para números\n * - 'tel': Campo para números de telefone\n * - 'text': Campo de texto padrão\n * - 'url': Campo para URLs\n */\n @Prop({ reflect: true }) readonly type:\n | 'color'\n | 'email'\n | 'hidden'\n | 'password'\n | 'range'\n | 'search'\n | 'number'\n | 'tel'\n | 'text'\n | 'file'\n | 'url' = 'text'\n\n /**\n * Controla o comportamento de preenchimento automático do navegador para o input.\n */\n @Prop({ reflect: true }) readonly autocomplete: 'on' | 'off'\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n /**\n * Desativa o input, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se verdadeiro, o input terá destaque visual.\n */\n @Prop({ reflect: true }) readonly isHighlight: boolean = false\n\n /**\n * Define o estado do input\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success'\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-input-${inputId++}`\n\n /**\n * Nome do input, utilizado para identificação em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Se verdadeiro, o valor do input é exibido, mas não pode ser editado pelo usuário.\n */\n @Prop({ reflect: true }) readonly readonly: boolean = false\n\n /**\n * Se verdadeiro, o input é obrigatório e deve ser preenchido antes que o formulário possa ser enviado.\n */\n @Prop({ reflect: true }) readonly required: boolean = false\n\n /**\n * Valor exibido no input.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ reflect: true, mutable: true }) value: string\n\n /**\n * Texto adicional que fornece ajuda ou informações sobre o input.\n */\n @Prop({ reflect: true }) readonly helpText: string\n\n /**\n * Controla a correção automática do texto.\n */\n @Prop({ reflect: true }) readonly autocorrect: 'off' | 'on' = 'off'\n\n /**\n * Define o valor mínimo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly min: number\n\n /**\n * Define o valor máximo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly max: number\n\n /**\n * Define o comprimento mínimo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly minlength: number\n\n /**\n * Define o comprimento máximo do valor do campo de entrada.\n */\n @Prop({ reflect: true }) readonly maxlength: number\n\n /**\n * Se verdadeiro, permite a seleção de múltiplos arquivos.\n */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * Define o padrão de entrada para validação.\n */\n @Prop({ reflect: true }) readonly pattern: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n @State() isPasswordVisible: boolean = false\n\n @State() internalState: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n @State() hasIconSlot: boolean = false\n\n @State() hasActionSlot: boolean = false\n\n @State() hasFeedbackSlot: boolean = false\n\n componentWillLoad() {\n this.hasIconSlot = this.hasSlotContent('icon')\n this.hasActionSlot = this.hasSlotContent('action')\n this.hasFeedbackSlot = this.hasSlotContent('feedback')\n this.internalState = this.state\n\n if (this.hasFeedbackSlot) {\n this.initializeStateWithFeedback()\n }\n }\n\n componentDidLoad() {\n if (this.hasFeedbackSlot) {\n this.setupSlotFeedbackListener()\n }\n }\n\n private initializeStateWithFeedback() {\n const initialMessageElement = this.el.querySelector('br-message')\n\n if (initialMessageElement) {\n const messageState = initialMessageElement.getAttribute('state')\n this.internalState = (messageState as 'info' | 'warning' | 'danger' | 'success') || this.state\n } else {\n this.internalState = this.state\n }\n }\n\n private setupSlotFeedbackListener() {\n const slot = this.el.shadowRoot?.querySelector('slot[name=\"feedback\"]')\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.syncStateWithSlotFeedback()\n })\n }\n }\n\n private syncStateWithSlotFeedback() {\n const messageElement = this.el.querySelector('br-message')\n\n if (messageElement) {\n this.internalState = messageElement.getAttribute('state') as 'info' | 'warning' | 'danger' | 'success'\n } else {\n this.internalState = this.state\n }\n }\n\n private getInputCssClassMap(): CssClassMap {\n return {\n 'br-input': true,\n 'input-button': this.hasActionSlot,\n small: this.density === 'small',\n large: this.density === 'large',\n medium: this.density === 'medium',\n 'input-inline': this.isInline,\n 'input-highlight': this.isHighlight,\n success: this.internalState === 'success',\n danger: this.internalState === 'danger',\n info: this.internalState === 'info',\n warning: this.internalState === 'warning',\n }\n }\n\n /**\n * Valor atualizado do input\n */\n @Event() valueChange: EventEmitter<string>\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.valueChange.emit(this.value)\n }\n\n private readonly renderLabel = () => {\n if (this.label?.length > 0) {\n if (this.isInline) {\n return (\n <div class=\"input-label\">\n <label class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return <label htmlFor={this.customId}>{this.label}</label>\n }\n }\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private readonly renderInput = () => {\n return (\n <input\n class={this.isHighlight ? 'input-highlight' : null}\n id={this.customId}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label=\"botão de ação do ícone\"\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button class=\"button-transform\" shape=\"circle\" density=\"small\" aria-label=\"botão de ação do ícone\">\n <slot name=\"action\"></slot>\n </br-button>\n )\n }\n return null\n }\n\n private readonly renderInlineInputContent = () => {\n if (this.hasIconSlot) {\n return <div class=\"input-content\">{this.renderInputWithIcon()}</div>\n } else {\n return <div class=\"input-content\">{this.renderInputWithoutIcon()}</div>\n }\n }\n\n private readonly renderInputContent = () => {\n return this.hasIconSlot ? this.renderInputWithIcon() : this.renderInputWithoutIcon()\n }\n\n private readonly renderInputWithIcon = () => {\n return (\n <div class=\"input-group\">\n {this.renderIconSlot()}\n {this.renderInput()}\n {this.renderButton()}\n {this.renderHelpText()}\n </div>\n )\n }\n\n private readonly renderInputWithoutIcon = () => {\n return [this.renderInput(), this.renderButton(), this.renderHelpText()]\n }\n\n private renderFeedback() {\n if (this.hasFeedbackSlot) {\n return <slot name=\"feedback\"></slot>\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getInputCssClassMap()}>\n {this.renderLabel()}\n\n {this.isInline ? this.renderInlineInputContent() : this.renderInputContent()}\n\n {this.renderFeedback()}\n </div>\n </Host>\n )\n }\n}\n\nlet inputId = 0\n","@import \"~@govbr-ds/core/src/components/radio/radio\";\n@include radio-checked;\n\n:host {\n display: block;\n\n .br-radio.hidden-label {\n label {\n padding-left: calc(var(--checkbox-size) + var(--surface-width-md) * 2);\n text-indent: -10000px;\n white-space: nowrap;\n width: 0;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop } 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/radio?tab=designer).\n *\n * @slot default - O texto descritivo pode ser passado por propriedade (label) ou por slot.\n */\n\n@Component({\n tag: 'br-radio',\n styleUrl: 'radio.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Radio {\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: HTMLBrRadioElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o estado de seleção do radio.\n * Se definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: boolean = false\n\n /**\n * Desativa o radio, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Indica a validade do radio.\n * Valores possíveis:\n * - 'valid': O radio é considerado válido.\n * - 'invalid': O radio é 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 se o label associado ao radio deve ser oculto.\n * Se definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.\n */\n @Prop({ reflect: true, attribute: 'has-hidden-label' }) readonly hasHiddenLabel: 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-radio-${radioId++}`\n\n /**\n * Define o nome do radio, que é utilizado para agrupar radios 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\n @Prop({ reflect: true }) readonly name!: string\n\n /**\n * Texto descritivo exibido à direita do radio.\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 valor associado ao radio quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o radio está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o radio está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event({ bubbles: true, composed: true }) checkedChange: EventEmitter<boolean>\n\n @Listen('checkedChange', { target: 'window' })\n handleCheckedChange(event: CustomEvent) {\n if (\n (event.target as HTMLBrRadioElement).customId !== this.customId &&\n (event.target as HTMLBrRadioElement).name === this.name\n ) {\n this.checked = false\n }\n }\n\n /**\n * Navega e seleciona o próximo/anterior rádio habilitado no grupo via teclas de seta.\n * Ativado por 'keydown', move a seleção entre rádios do mesmo 'name'\n * usando as setas, partindo do rádio atualmente checado.\n * @param {KeyboardEvent} event O evento de teclado.\n * @listens keydown\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled || !this.checked) return\n\n const isArrowKey = ['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(event.key)\n if (!isArrowKey) return\n\n event.preventDefault()\n\n const radios = Array.from(document.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (el: HTMLBrRadioElement) => el.name === this.name && !el.disabled\n )\n\n const currentIndex = radios.findIndex((radio: HTMLBrRadioElement) => radio.customId === this.customId)\n if (currentIndex === -1) return\n\n let nextIndex = currentIndex\n if (event.key === 'ArrowRight' || event.key === 'ArrowDown') {\n nextIndex = (currentIndex + 1) % radios.length\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') {\n nextIndex = (currentIndex - 1 + radios.length) % radios.length\n }\n\n const nextRadio: HTMLBrRadioElement | undefined = radios[nextIndex]\n nextRadio?.toggleChecked?.()\n nextRadio?.shadowRoot?.querySelector('input')?.focus()\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 private getCssClassMap(): CssClassMap {\n return {\n 'br-radio': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n /**\n * Handler para o event `click`\n * @param event Objeto Event\n */\n private readonly onClick = (event: MouseEvent) => {\n event.stopPropagation()\n this.checked = (event.target as HTMLInputElement).checked\n }\n\n /**\n * Handler para o evento `change`\n */\n private readonly onChange = () => {\n this.checkedChange.emit(this.checked)\n }\n\n render() {\n return (\n <Host aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()}>\n <input\n part=\"radio-input\"\n aria-label={this.hasHiddenLabel && this.label ? this.label : null}\n type=\"radio\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onClick={this.onClick}\n onChange={this.onChange}\n />\n <label part=\"radio-label\" htmlFor={this.customId}>\n <slot>{this.label}</slot>\n </label>\n </div>\n </Host>\n )\n }\n}\n\nlet radioId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n const clickedElement = event.target as HTMLElement\n\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n this.selectedValue = !this.selectedValue\n this.brDidSelect.emit({ selected: this.selectedValue })\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType class={classList} {...attributes} onClick={this.handleClick} id={this.customId}>\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n const clickedElement = event.target as HTMLElement\n\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n this.selectedValue = !this.selectedValue\n this.brDidSelect.emit({ selected: this.selectedValue })\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType class={classList} {...attributes} onClick={this.handleClick} id={this.customId}>\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-loading.entry.esm.js","sources":["../../packages/webcomponents/src/components/loading/loading.scss?tag=br-loading&encapsulation=shadow","../../packages/webcomponents/src/components/loading/loading.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/loading/loading\";\n\n:host {\n display: block;\n\n .loading-progress-alignment {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/loading?tab=designer).\n */\n@Component({\n tag: 'br-loading',\n styleUrl: 'loading.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Loading {\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: HTMLBrLoadingElement\n\n /**\n * Determina o tipo de indicador a ser exibido:\n * - Se verdadeiro, exibirá uma barra de progresso com a porcentagem de progresso.\n * - Se falso, exibirá um indicador de carregamento indeterminado.\n */\n @Prop({ reflect: true }) readonly isProgress: 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-loading-${loadingId++}`\n\n /**\n * Define a porcentagem de progresso a ser exibida na barra de progresso.\n * Deve ser um valor numérico entre 0 e 100. Ignorado se `isProgress` estiver definido como falso.\n */\n @Prop({ reflect: true }) readonly progressPercent: number\n\n /**\n * Se verdadeiro, ajusta o tamanho do indicador de carregamento para o tamanho médio.\n */\n @Prop({ reflect: true }) readonly isMedium: boolean = false\n\n /**\n * Texto a ser exibido abaixo do indicador de carregamento.\n * Pode ser usado para fornecer informações adicionais ou descritivas sobre o estado do carregamento.\n */\n @Prop({ reflect: true }) readonly label: string\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-loading': true,\n medium: this.isMedium,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isProgress ? (\n <div\n class={this.getCssClassMap()}\n role=\"progressbar\"\n data-progress={this.progressPercent}\n aria-label=\"Carregando exemplo com porcentagem\"\n aria-valuemin=\"0\"\n aria-valuenow={this.progressPercent}\n aria-valuemax=\"100\"\n id={this.customId}\n >\n <div class=\"br-loading-mask full\">\n <div class=\"br-loading-fill\"></div>\n </div>\n <div class=\"br-loading-mask\">\n <div class=\"br-loading-fill\"></div>\n </div>\n </div>\n ) : (\n <div class=\"loading-progress-alignment\">\n <div\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"progressbar\"\n aria-label=\"Carregando exemplo indeterminado pequeno\"\n ></div>\n <span class=\"rotulo\">{this.label}</span>\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet loadingId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,q/pEAAq/pE;;MCY3/pE,OAAO,GAAA,MAAA;;;;;AAOlB;;;;AAIG;IAC+B,UAAU,GAAY,KAAK;AAE7D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,WAAA,EAAc,SAAS,EAAE,EAAE;AAEhF;;;AAGG;AAC+B,IAAA,eAAe;AAEjD;;AAEG;IAC+B,QAAQ,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,IAAA,KAAK;IAE/B,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,uDACF,IAAI,CAAC,UAAU,IACd,WACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,mBACH,IAAI,CAAC,eAAe,EACxB,YAAA,EAAA,oCAAoC,mBACjC,GAAG,EAAA,eAAA,EACF,IAAI,CAAC,eAAe,mBACrB,KAAK,EACnB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAEjB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,CACF,KAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,EAAA,YAAA,EACP,0CAA0C,EAChD,CAAA,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,QAAQ,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACpC,CACP,CACI;;;;AAKb,IAAI,SAAS,GAAG,CAAC;;;;;"}
1
+ {"version":3,"file":"br-loading.entry.esm.js","sources":["../../packages/webcomponents/src/components/loading/loading.scss?tag=br-loading&encapsulation=shadow","../../packages/webcomponents/src/components/loading/loading.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/loading/loading\";\n\n:host {\n display: block;\n\n .loading-progress-alignment {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/loading?tab=designer).\n */\n@Component({\n tag: 'br-loading',\n styleUrl: 'loading.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Loading {\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: HTMLBrLoadingElement\n\n /**\n * Determina o tipo de indicador a ser exibido:\n * - Se verdadeiro, exibirá uma barra de progresso com a porcentagem de progresso.\n * - Se falso, exibirá um indicador de carregamento indeterminado.\n */\n @Prop({ reflect: true }) readonly isProgress: 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-loading-${loadingId++}`\n\n /**\n * Define a porcentagem de progresso a ser exibida na barra de progresso.\n * Deve ser um valor numérico entre 0 e 100. Ignorado se `isProgress` estiver definido como falso.\n */\n @Prop({ reflect: true }) readonly progressPercent: number\n\n /**\n * Se verdadeiro, ajusta o tamanho do indicador de carregamento para o tamanho médio.\n */\n @Prop({ reflect: true }) readonly isMedium: boolean = false\n\n /**\n * Texto a ser exibido abaixo do indicador de carregamento.\n * Pode ser usado para fornecer informações adicionais ou descritivas sobre o estado do carregamento.\n */\n @Prop({ reflect: true }) readonly label: string\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-loading': true,\n medium: this.isMedium,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isProgress ? (\n <div\n class={this.getCssClassMap()}\n role=\"progressbar\"\n data-progress={this.progressPercent}\n aria-label=\"Carregando exemplo com porcentagem\"\n aria-valuemin=\"0\"\n aria-valuenow={this.progressPercent}\n aria-valuemax=\"100\"\n id={this.customId}\n >\n <div class=\"br-loading-mask full\">\n <div class=\"br-loading-fill\"></div>\n </div>\n <div class=\"br-loading-mask\">\n <div class=\"br-loading-fill\"></div>\n </div>\n </div>\n ) : (\n <div class=\"loading-progress-alignment\">\n <div\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"progressbar\"\n aria-label=\"Carregando exemplo indeterminado pequeno\"\n ></div>\n <span class=\"rotulo\">{this.label}</span>\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet loadingId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,6ysEAA6ysE;;MCYnzsE,OAAO,GAAA,MAAA;;;;;AAOlB;;;;AAIG;IAC+B,UAAU,GAAY,KAAK;AAE7D;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,WAAA,EAAc,SAAS,EAAE,EAAE;AAEhF;;;AAGG;AAC+B,IAAA,eAAe;AAEjD;;AAEG;IAC+B,QAAQ,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,IAAA,KAAK;IAE/B,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,uDACF,IAAI,CAAC,UAAU,IACd,WACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,mBACH,IAAI,CAAC,eAAe,EACxB,YAAA,EAAA,oCAAoC,mBACjC,GAAG,EAAA,eAAA,EACF,IAAI,CAAC,eAAe,mBACrB,KAAK,EACnB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAEjB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,CACF,KAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,EAAA,YAAA,EACP,0CAA0C,EAChD,CAAA,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,QAAQ,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACpC,CACP,CACI;;;;AAKb,IAAI,SAAS,GAAG,CAAC;;;;;"}