@govbr-ds/webcomponents 2.0.0-next.64 → 2.0.0-next.65

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 (691) hide show
  1. package/dist/cjs/br-avatar.cjs.entry.js +1 -1
  2. package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
  3. package/dist/cjs/br-breadcrumb.cjs.entry.js +113 -61
  4. package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
  5. package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
  6. package/dist/cjs/br-button_2.cjs.entry.js +4 -4
  7. package/dist/cjs/br-card.cjs.entry.js +2 -2
  8. package/dist/cjs/br-card.entry.cjs.js.map +1 -1
  9. package/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
  10. package/dist/cjs/br-checkbox_3.cjs.entry.js +6 -6
  11. package/dist/cjs/br-checkgroup.cjs.entry.js +2 -2
  12. package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
  13. package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
  14. package/dist/cjs/br-collapse_2.cjs.entry.js +4 -4
  15. package/dist/cjs/br-crumb.cjs.entry.js +38 -0
  16. package/dist/cjs/br-crumb.entry.cjs.js.map +1 -0
  17. package/dist/cjs/br-datetime-picker.cjs.entry.js +2 -2
  18. package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
  19. package/dist/cjs/br-divider.cjs.entry.js +2 -2
  20. package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
  21. package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
  22. package/dist/cjs/br-dropdown_2.cjs.entry.js +123 -40
  23. package/dist/cjs/br-footer-category.cjs.entry.js +3 -3
  24. package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -1
  25. package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
  26. package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -1
  27. package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
  28. package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -1
  29. package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
  30. package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
  31. package/dist/cjs/br-footer-social.cjs.entry.js +2 -2
  32. package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -1
  33. package/dist/cjs/br-footer.cjs.entry.js +2 -2
  34. package/dist/cjs/br-footer.entry.cjs.js.map +1 -1
  35. package/dist/cjs/br-header-function.cjs.entry.js +2 -2
  36. package/dist/cjs/br-header-function.entry.cjs.js.map +1 -1
  37. package/dist/cjs/br-header-link.cjs.entry.js +2 -2
  38. package/dist/cjs/br-header-link.entry.cjs.js.map +1 -1
  39. package/dist/cjs/br-header-list.cjs.entry.js +2 -2
  40. package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
  41. package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
  42. package/dist/cjs/br-header-logo.entry.cjs.js.map +1 -1
  43. package/dist/cjs/br-header.cjs.entry.js +2 -2
  44. package/dist/cjs/br-header.entry.cjs.js.map +1 -1
  45. package/dist/cjs/br-item.cjs.entry.js +2 -2
  46. package/dist/cjs/br-item.entry.cjs.js.map +1 -1
  47. package/dist/cjs/br-loading.cjs.entry.js +2 -2
  48. package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
  49. package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
  50. package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
  51. package/dist/cjs/br-menu-header.cjs.entry.js +2 -2
  52. package/dist/cjs/br-menu-header.entry.cjs.js.map +1 -1
  53. package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
  54. package/dist/cjs/br-menu-info.entry.cjs.js.map +1 -1
  55. package/dist/cjs/br-menu-item.cjs.entry.js +3 -3
  56. package/dist/cjs/br-menu-item.entry.cjs.js.map +1 -1
  57. package/dist/cjs/br-menu-link.cjs.entry.js +2 -2
  58. package/dist/cjs/br-menu-link.entry.cjs.js.map +1 -1
  59. package/dist/cjs/br-menu-list.cjs.entry.js +1 -1
  60. package/dist/cjs/br-menu-list.entry.cjs.js.map +1 -1
  61. package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
  62. package/dist/cjs/br-menu-logo.entry.cjs.js.map +1 -1
  63. package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
  64. package/dist/cjs/br-menu-social.entry.cjs.js.map +1 -1
  65. package/dist/cjs/br-menu.cjs.entry.js +3 -3
  66. package/dist/cjs/br-menu.entry.cjs.js.map +1 -1
  67. package/dist/cjs/br-message.cjs.entry.js +2 -2
  68. package/dist/cjs/br-message.entry.cjs.js.map +1 -1
  69. package/dist/cjs/br-modal.cjs.entry.js +252 -12
  70. package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
  71. package/dist/cjs/br-pagination.cjs.entry.js +1 -1
  72. package/dist/cjs/br-pagination.entry.cjs.js.map +1 -1
  73. package/dist/cjs/br-scrim.cjs.entry.js +117 -24
  74. package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
  75. package/dist/cjs/br-select-option.cjs.entry.js +32 -0
  76. package/dist/cjs/br-select-option.entry.cjs.js.map +1 -0
  77. package/dist/cjs/br-sign-in.cjs.entry.js +2 -2
  78. package/dist/cjs/br-sign-in.entry.cjs.js.map +1 -1
  79. package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
  80. package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
  81. package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
  82. package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
  83. package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
  84. package/dist/cjs/br-step_2.cjs.entry.js +17 -86
  85. package/dist/cjs/br-switch.cjs.entry.js +2 -2
  86. package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
  87. package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
  88. package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
  89. package/dist/cjs/br-tab.cjs.entry.js +76 -10
  90. package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
  91. package/dist/cjs/br-table-cell.cjs.entry.js +2 -2
  92. package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -1
  93. package/dist/cjs/br-table-header-cell.cjs.entry.js +2 -2
  94. package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -1
  95. package/dist/cjs/br-table-header-row.cjs.entry.js +2 -2
  96. package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -1
  97. package/dist/cjs/br-table-row.cjs.entry.js +2 -2
  98. package/dist/cjs/br-table-row.entry.cjs.js.map +1 -1
  99. package/dist/cjs/br-table.cjs.entry.js +2 -2
  100. package/dist/cjs/br-table.entry.cjs.js.map +1 -1
  101. package/dist/cjs/br-tag.cjs.entry.js +2 -2
  102. package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
  103. package/dist/cjs/br-textarea.cjs.entry.js +2 -2
  104. package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
  105. package/dist/cjs/br-tooltip.cjs.entry.js +2 -2
  106. package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
  107. package/dist/cjs/br-upload.cjs.entry.js +2 -2
  108. package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
  109. package/dist/cjs/br-wizard-panel.cjs.entry.js +2 -2
  110. package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
  111. package/dist/cjs/br-wizard.cjs.entry.js +2 -2
  112. package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
  113. package/dist/cjs/index-CFIH680Y.js +8 -0
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/cjs/webcomponents.cjs.js +1 -1
  116. package/dist/collection/collection-manifest.json +2 -0
  117. package/dist/collection/components/avatar/avatar.css +1 -1
  118. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  119. package/dist/collection/components/breadcrumb/breadcrumb.js +124 -57
  120. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  121. package/dist/collection/components/breadcrumb/crumb/crumb.js +168 -0
  122. package/dist/collection/components/breadcrumb/crumb/crumb.js.map +1 -0
  123. package/dist/collection/components/button/button.css +1 -1
  124. package/dist/collection/components/button/button.js +1 -1
  125. package/dist/collection/components/card/card.css +1 -1
  126. package/dist/collection/components/card/card.js +1 -1
  127. package/dist/collection/components/checkbox/checkbox.css +1 -1
  128. package/dist/collection/components/checkbox/checkbox.js +1 -1
  129. package/dist/collection/components/checkgroup/checkgroup.css +1 -1
  130. package/dist/collection/components/checkgroup/checkgroup.js +1 -1
  131. package/dist/collection/components/collapse/collapse.css +1 -1
  132. package/dist/collection/components/collapse/collapse.js +1 -1
  133. package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
  134. package/dist/collection/components/datetime-picker/datetime-picker.js +1 -1
  135. package/dist/collection/components/divider/divider.css +1 -1
  136. package/dist/collection/components/divider/divider.js +1 -1
  137. package/dist/collection/components/dropdown/dropdown.css +1 -1
  138. package/dist/collection/components/dropdown/dropdown.js +1 -1
  139. package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
  140. package/dist/collection/components/footer/footer-category/footer-category.js +2 -2
  141. package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
  142. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  143. package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
  144. package/dist/collection/components/footer/footer-legal/footer-legal.js +1 -1
  145. package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
  146. package/dist/collection/components/footer/footer-logo/footer-logo.js +1 -1
  147. package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
  148. package/dist/collection/components/footer/footer-social/footer-social.js +1 -1
  149. package/dist/collection/components/footer/footer.css +1 -1
  150. package/dist/collection/components/footer/footer.js +1 -1
  151. package/dist/collection/components/header/header-function/header-function.css +1 -1
  152. package/dist/collection/components/header/header-function/header-function.js +1 -1
  153. package/dist/collection/components/header/header-link/header-link.css +1 -1
  154. package/dist/collection/components/header/header-link/header-link.js +1 -1
  155. package/dist/collection/components/header/header-list/header-list.css +1 -1
  156. package/dist/collection/components/header/header-list/header-list.js +1 -1
  157. package/dist/collection/components/header/header-logo/header-logo.css +1 -1
  158. package/dist/collection/components/header/header-logo/header-logo.js +1 -1
  159. package/dist/collection/components/header/header.css +1 -1
  160. package/dist/collection/components/header/header.js +1 -1
  161. package/dist/collection/components/icon/icon.css +1 -1
  162. package/dist/collection/components/icon/icon.js +1 -1
  163. package/dist/collection/components/input/input.css +1 -1
  164. package/dist/collection/components/input/input.js +1 -1
  165. package/dist/collection/components/item/item.css +1 -1
  166. package/dist/collection/components/item/item.js +1 -1
  167. package/dist/collection/components/list/list.css +1 -1
  168. package/dist/collection/components/list/list.js +1 -1
  169. package/dist/collection/components/loading/loading.css +1 -1
  170. package/dist/collection/components/loading/loading.js +1 -1
  171. package/dist/collection/components/magic-button/magic-button.css +1 -1
  172. package/dist/collection/components/magic-button/magic-button.js +1 -1
  173. package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
  174. package/dist/collection/components/menu/menu-header/menu-header.js +1 -1
  175. package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
  176. package/dist/collection/components/menu/menu-info/menu-info.js +1 -1
  177. package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
  178. package/dist/collection/components/menu/menu-item/menu-item.js +2 -2
  179. package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
  180. package/dist/collection/components/menu/menu-link/menu-link.js +1 -1
  181. package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
  182. package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
  183. package/dist/collection/components/menu/menu-logo/menu-logo.js +1 -1
  184. package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
  185. package/dist/collection/components/menu/menu-social/menu-social.js +1 -1
  186. package/dist/collection/components/menu/menu.css +1 -1
  187. package/dist/collection/components/menu/menu.js +2 -2
  188. package/dist/collection/components/message/message.css +1 -1
  189. package/dist/collection/components/message/message.js +1 -1
  190. package/dist/collection/components/modal/modal.css +1 -1
  191. package/dist/collection/components/modal/modal.js +266 -12
  192. package/dist/collection/components/modal/modal.js.map +1 -1
  193. package/dist/collection/components/pagination/pagination.css +1 -1
  194. package/dist/collection/components/radio/radio.css +1 -1
  195. package/dist/collection/components/radio/radio.js +1 -1
  196. package/dist/collection/components/scrim/scrim.css +1 -1
  197. package/dist/collection/components/scrim/scrim.js +116 -23
  198. package/dist/collection/components/scrim/scrim.js.map +1 -1
  199. package/dist/collection/components/select/select-option/select-option.js +122 -0
  200. package/dist/collection/components/select/select-option/select-option.js.map +1 -0
  201. package/dist/collection/components/select/select.css +1 -1
  202. package/dist/collection/components/select/select.js +151 -38
  203. package/dist/collection/components/select/select.js.map +1 -1
  204. package/dist/collection/components/sign-in/sign-in.css +1 -1
  205. package/dist/collection/components/sign-in/sign-in.js +1 -1
  206. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
  207. package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +1 -1
  208. package/dist/collection/components/skip-link/skip-link.css +1 -1
  209. package/dist/collection/components/skip-link/skip-link.js +1 -1
  210. package/dist/collection/components/step/step-item/step-item.css +1 -1
  211. package/dist/collection/components/step/step-item/step-item.js +16 -86
  212. package/dist/collection/components/step/step-item/step-item.js.map +1 -1
  213. package/dist/collection/components/step/step.css +1 -1
  214. package/dist/collection/components/step/step.js +2 -6
  215. package/dist/collection/components/step/step.js.map +1 -1
  216. package/dist/collection/components/switch/switch.css +1 -1
  217. package/dist/collection/components/switch/switch.js +1 -1
  218. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  219. package/dist/collection/components/tab/tab-item/tab-item.js +1 -1
  220. package/dist/collection/components/tab/tab.css +1 -1
  221. package/dist/collection/components/tab/tab.js +137 -17
  222. package/dist/collection/components/tab/tab.js.map +1 -1
  223. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  224. package/dist/collection/components/table/table-cell/table-cell.js +1 -1
  225. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  226. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  227. package/dist/collection/components/table/table-header-row/table-header-row.css +1 -1
  228. package/dist/collection/components/table/table-header-row/table-header-row.js +1 -1
  229. package/dist/collection/components/table/table-row/table-row.css +1 -1
  230. package/dist/collection/components/table/table-row/table-row.js +1 -1
  231. package/dist/collection/components/table/table.css +1 -1
  232. package/dist/collection/components/table/table.js +1 -1
  233. package/dist/collection/components/tag/tag.css +1 -1
  234. package/dist/collection/components/tag/tag.js +1 -1
  235. package/dist/collection/components/textarea/textarea.css +1 -1
  236. package/dist/collection/components/textarea/textarea.js +1 -1
  237. package/dist/collection/components/tooltip/tooltip.css +1 -1
  238. package/dist/collection/components/tooltip/tooltip.js +1 -1
  239. package/dist/collection/components/upload/upload.css +1 -1
  240. package/dist/collection/components/upload/upload.js +1 -1
  241. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  242. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +1 -1
  243. package/dist/collection/components/wizard/wizard.css +1 -1
  244. package/dist/collection/components/wizard/wizard.js +1 -1
  245. package/dist/collection/pages/scripts/menu.js +3 -1
  246. package/dist/collection/pages/scripts/pageLoader.js +4 -2
  247. package/dist/collection/value-accessors/angular-value-accessor-config.js +1 -1
  248. package/dist/collection/value-accessors/angular-value-accessor-config.js.map +1 -1
  249. package/dist/components/br-avatar.js +3 -3
  250. package/dist/components/br-breadcrumb.js +161 -90
  251. package/dist/components/br-breadcrumb.js.map +1 -1
  252. package/dist/components/br-button.js +3 -3
  253. package/dist/components/br-card.js +3 -3
  254. package/dist/components/br-checkbox.js +4 -4
  255. package/dist/components/br-checkgroup.js +11 -11
  256. package/dist/components/br-collapse.js +4 -4
  257. package/dist/components/br-crumb.d.ts +11 -0
  258. package/dist/components/br-crumb.js +80 -0
  259. package/dist/components/br-crumb.js.map +1 -0
  260. package/dist/components/br-datetime-picker.js +324 -324
  261. package/dist/components/br-divider.js +1 -1
  262. package/dist/components/br-dropdown.js +4 -4
  263. package/dist/components/br-footer-category.js +14 -14
  264. package/dist/components/br-footer-item.js +6 -6
  265. package/dist/components/br-footer-legal.js +9 -9
  266. package/dist/components/br-footer-logo.js +4 -4
  267. package/dist/components/br-footer-social.js +7 -7
  268. package/dist/components/br-footer.js +24 -24
  269. package/dist/components/br-header-function.js +6 -6
  270. package/dist/components/br-header-link.js +6 -6
  271. package/dist/components/br-header-list.js +8 -8
  272. package/dist/components/br-header-logo.js +13 -13
  273. package/dist/components/br-header.js +15 -15
  274. package/dist/components/br-icon.js +3 -3
  275. package/dist/components/br-input.js +3 -3
  276. package/dist/components/br-item.js +3 -3
  277. package/dist/components/br-list.js +4 -4
  278. package/dist/components/br-loading.js +7 -7
  279. package/dist/components/br-magic-button.js +7 -7
  280. package/dist/components/br-menu-header.js +14 -14
  281. package/dist/components/br-menu-info.js +5 -5
  282. package/dist/components/br-menu-item.js +3 -3
  283. package/dist/components/br-menu-link.js +9 -9
  284. package/dist/components/br-menu-list.js +4 -4
  285. package/dist/components/br-menu-logo.js +6 -6
  286. package/dist/components/br-menu-social.js +9 -9
  287. package/dist/components/br-menu.js +35 -35
  288. package/dist/components/br-message.js +5 -5
  289. package/dist/components/br-modal.js +230 -21
  290. package/dist/components/br-modal.js.map +1 -1
  291. package/dist/components/br-pagination.js +12 -12
  292. package/dist/components/br-radio.js +4 -4
  293. package/dist/components/br-scrim.js +122 -37
  294. package/dist/components/br-scrim.js.map +1 -1
  295. package/dist/components/br-select-option.d.ts +11 -0
  296. package/dist/components/br-select-option.js +72 -0
  297. package/dist/components/br-select-option.js.map +1 -0
  298. package/dist/components/br-select.js +4 -4
  299. package/dist/components/br-sign-in.js +11 -11
  300. package/dist/components/br-skip-link.js +9 -9
  301. package/dist/components/br-skiplink-item.js +14 -14
  302. package/dist/components/br-step-item.js +4 -4
  303. package/dist/components/br-step.js +3 -3
  304. package/dist/components/br-switch.js +7 -7
  305. package/dist/components/br-tab-item.js +7 -7
  306. package/dist/components/br-tab.js +82 -26
  307. package/dist/components/br-tab.js.map +1 -1
  308. package/dist/components/br-table-cell.js +5 -5
  309. package/dist/components/br-table-header-cell.js +8 -8
  310. package/dist/components/br-table-header-row.js +5 -5
  311. package/dist/components/br-table-row.js +5 -5
  312. package/dist/components/br-table.js +8 -8
  313. package/dist/components/br-tag.js +1 -1
  314. package/dist/components/br-textarea.js +4 -4
  315. package/dist/components/br-tooltip.js +14 -14
  316. package/dist/components/br-upload.js +34 -34
  317. package/dist/components/br-wizard-panel.js +6 -6
  318. package/dist/components/br-wizard.js +12 -12
  319. package/dist/components/br-wizard.js.map +1 -1
  320. package/dist/components/index.d.ts +4 -0
  321. package/dist/components/index.js +5 -1
  322. package/dist/components/{p-CJSXIVVe.js → p-B4_2a6sY.js} +9 -9
  323. package/dist/components/{p-DdjKNpU3.js → p-BVCWXitK.js} +157 -61
  324. package/dist/components/p-BVCWXitK.js.map +1 -0
  325. package/dist/components/p-BXMQkO62.js +399 -0
  326. package/dist/components/p-Bb4aDGZV.js +192 -0
  327. package/dist/components/p-BfM6USmd.js +138 -0
  328. package/dist/components/{p-BIJ6vVdB.js.map → p-BfM6USmd.js.map} +1 -1
  329. package/dist/components/{p-CwtLw60M.js → p-Bjywc5uG.js} +6 -6
  330. package/dist/components/p-BtGv7ZmW.js +229 -0
  331. package/dist/components/p-BtGv7ZmW.js.map +1 -0
  332. package/dist/components/{p-C_OI0BQu.js → p-BwHD1VKm.js} +6 -6
  333. package/dist/components/{p-Bqb7YtL0.js → p-C1NfZb6u.js} +19 -19
  334. package/dist/components/{p-DW63EY0U.js → p-C2apigAS.js} +13 -13
  335. package/dist/components/{p-5Bn_PU3B.js → p-CldlPwBq.js} +8 -8
  336. package/dist/components/p-DLCPJIh7.js +306 -0
  337. package/dist/components/p-DLCPJIh7.js.map +1 -0
  338. package/dist/components/{p-Bri6ECVa.js → p-DexVMiiX.js} +13 -13
  339. package/dist/components/p-DexVMiiX.js.map +1 -0
  340. package/dist/components/{p-DSkSDmzD.js → p-DozXPp1d.js} +3 -3
  341. package/dist/components/p-DzfbHHTf.js +136 -0
  342. package/dist/components/{p-CBj_WCYf.js → p-JsxUUux9.js} +6 -6
  343. package/dist/components/{p-lIb35q2K.js → p-p8k-sBQZ.js} +8 -8
  344. package/dist/custom-elements.json +1388 -710
  345. package/dist/esm/br-avatar.entry.js +2 -2
  346. package/dist/esm/br-avatar.entry.js.map +1 -1
  347. package/dist/esm/br-breadcrumb.entry.js +114 -62
  348. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  349. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  350. package/dist/esm/br-button_2.entry.js +5 -5
  351. package/dist/esm/br-card.entry.js +3 -3
  352. package/dist/esm/br-card.entry.js.map +1 -1
  353. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  354. package/dist/esm/br-checkbox_3.entry.js +7 -7
  355. package/dist/esm/br-checkgroup.entry.js +3 -3
  356. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  357. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  358. package/dist/esm/br-collapse_2.entry.js +5 -5
  359. package/dist/esm/br-crumb.entry.js +36 -0
  360. package/dist/esm/br-crumb.entry.js.map +1 -0
  361. package/dist/esm/br-datetime-picker.entry.js +3 -3
  362. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  363. package/dist/esm/br-divider.entry.js +3 -3
  364. package/dist/esm/br-divider.entry.js.map +1 -1
  365. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  366. package/dist/esm/br-dropdown_2.entry.js +124 -41
  367. package/dist/esm/br-footer-category.entry.js +4 -4
  368. package/dist/esm/br-footer-category.entry.js.map +1 -1
  369. package/dist/esm/br-footer-item.entry.js +3 -3
  370. package/dist/esm/br-footer-item.entry.js.map +1 -1
  371. package/dist/esm/br-footer-legal.entry.js +3 -3
  372. package/dist/esm/br-footer-legal.entry.js.map +1 -1
  373. package/dist/esm/br-footer-logo.entry.js +3 -3
  374. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  375. package/dist/esm/br-footer-social.entry.js +3 -3
  376. package/dist/esm/br-footer-social.entry.js.map +1 -1
  377. package/dist/esm/br-footer.entry.js +3 -3
  378. package/dist/esm/br-footer.entry.js.map +1 -1
  379. package/dist/esm/br-header-function.entry.js +3 -3
  380. package/dist/esm/br-header-function.entry.js.map +1 -1
  381. package/dist/esm/br-header-link.entry.js +3 -3
  382. package/dist/esm/br-header-link.entry.js.map +1 -1
  383. package/dist/esm/br-header-list.entry.js +3 -3
  384. package/dist/esm/br-header-list.entry.js.map +1 -1
  385. package/dist/esm/br-header-logo.entry.js +3 -3
  386. package/dist/esm/br-header-logo.entry.js.map +1 -1
  387. package/dist/esm/br-header.entry.js +3 -3
  388. package/dist/esm/br-header.entry.js.map +1 -1
  389. package/dist/esm/br-item.entry.js +3 -3
  390. package/dist/esm/br-item.entry.js.map +1 -1
  391. package/dist/esm/br-loading.entry.js +3 -3
  392. package/dist/esm/br-loading.entry.js.map +1 -1
  393. package/dist/esm/br-magic-button.entry.js +3 -3
  394. package/dist/esm/br-magic-button.entry.js.map +1 -1
  395. package/dist/esm/br-menu-header.entry.js +3 -3
  396. package/dist/esm/br-menu-header.entry.js.map +1 -1
  397. package/dist/esm/br-menu-info.entry.js +3 -3
  398. package/dist/esm/br-menu-info.entry.js.map +1 -1
  399. package/dist/esm/br-menu-item.entry.js +4 -4
  400. package/dist/esm/br-menu-item.entry.js.map +1 -1
  401. package/dist/esm/br-menu-link.entry.js +3 -3
  402. package/dist/esm/br-menu-link.entry.js.map +1 -1
  403. package/dist/esm/br-menu-list.entry.js +2 -2
  404. package/dist/esm/br-menu-list.entry.js.map +1 -1
  405. package/dist/esm/br-menu-logo.entry.js +3 -3
  406. package/dist/esm/br-menu-logo.entry.js.map +1 -1
  407. package/dist/esm/br-menu-social.entry.js +3 -3
  408. package/dist/esm/br-menu-social.entry.js.map +1 -1
  409. package/dist/esm/br-menu.entry.js +4 -4
  410. package/dist/esm/br-menu.entry.js.map +1 -1
  411. package/dist/esm/br-message.entry.js +3 -3
  412. package/dist/esm/br-message.entry.js.map +1 -1
  413. package/dist/esm/br-modal.entry.js +253 -13
  414. package/dist/esm/br-modal.entry.js.map +1 -1
  415. package/dist/esm/br-pagination.entry.js +2 -2
  416. package/dist/esm/br-pagination.entry.js.map +1 -1
  417. package/dist/esm/br-scrim.entry.js +118 -25
  418. package/dist/esm/br-scrim.entry.js.map +1 -1
  419. package/dist/esm/br-select-option.entry.js +30 -0
  420. package/dist/esm/br-select-option.entry.js.map +1 -0
  421. package/dist/esm/br-sign-in.entry.js +3 -3
  422. package/dist/esm/br-sign-in.entry.js.map +1 -1
  423. package/dist/esm/br-skip-link.entry.js +3 -3
  424. package/dist/esm/br-skip-link.entry.js.map +1 -1
  425. package/dist/esm/br-skiplink-item.entry.js +3 -3
  426. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  427. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  428. package/dist/esm/br-step_2.entry.js +18 -87
  429. package/dist/esm/br-switch.entry.js +3 -3
  430. package/dist/esm/br-switch.entry.js.map +1 -1
  431. package/dist/esm/br-tab-item.entry.js +3 -3
  432. package/dist/esm/br-tab-item.entry.js.map +1 -1
  433. package/dist/esm/br-tab.entry.js +77 -11
  434. package/dist/esm/br-tab.entry.js.map +1 -1
  435. package/dist/esm/br-table-cell.entry.js +3 -3
  436. package/dist/esm/br-table-cell.entry.js.map +1 -1
  437. package/dist/esm/br-table-header-cell.entry.js +3 -3
  438. package/dist/esm/br-table-header-cell.entry.js.map +1 -1
  439. package/dist/esm/br-table-header-row.entry.js +3 -3
  440. package/dist/esm/br-table-header-row.entry.js.map +1 -1
  441. package/dist/esm/br-table-row.entry.js +3 -3
  442. package/dist/esm/br-table-row.entry.js.map +1 -1
  443. package/dist/esm/br-table.entry.js +3 -3
  444. package/dist/esm/br-table.entry.js.map +1 -1
  445. package/dist/esm/br-tag.entry.js +3 -3
  446. package/dist/esm/br-tag.entry.js.map +1 -1
  447. package/dist/esm/br-textarea.entry.js +3 -3
  448. package/dist/esm/br-textarea.entry.js.map +1 -1
  449. package/dist/esm/br-tooltip.entry.js +3 -3
  450. package/dist/esm/br-tooltip.entry.js.map +1 -1
  451. package/dist/esm/br-upload.entry.js +3 -3
  452. package/dist/esm/br-upload.entry.js.map +1 -1
  453. package/dist/esm/br-wizard-panel.entry.js +3 -3
  454. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  455. package/dist/esm/br-wizard.entry.js +3 -3
  456. package/dist/esm/br-wizard.entry.js.map +1 -1
  457. package/dist/esm/{index-ByGJPTh2.js → index-CgnD6TrP.js} +11 -3
  458. package/dist/esm/{index-ByGJPTh2.js.map → index-CgnD6TrP.js.map} +1 -1
  459. package/dist/esm/loader.js +3 -3
  460. package/dist/esm/webcomponents.js +3 -3
  461. package/dist/hydrate/index.js +3543 -2986
  462. package/dist/hydrate/index.mjs +3543 -2986
  463. package/dist/types/components/breadcrumb/breadcrumb.d.ts +21 -15
  464. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +35 -0
  465. package/dist/types/components/modal/modal.d.ts +86 -3
  466. package/dist/types/components/scrim/scrim.d.ts +32 -2
  467. package/dist/types/components/select/select-option/select-option.d.ts +29 -0
  468. package/dist/types/components/select/select.d.ts +30 -10
  469. package/dist/types/components/step/step-item/step-item.d.ts +3 -14
  470. package/dist/types/components/tab/tab.d.ts +67 -7
  471. package/dist/types/components.d.ts +215 -12
  472. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  473. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  474. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  475. package/dist/webcomponents/br-card.entry.esm.js.map +1 -1
  476. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  477. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  478. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  479. package/dist/webcomponents/br-crumb.entry.esm.js.map +1 -0
  480. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  481. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  482. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  483. package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -1
  484. package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -1
  485. package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -1
  486. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  487. package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -1
  488. package/dist/webcomponents/br-footer.entry.esm.js.map +1 -1
  489. package/dist/webcomponents/br-header-function.entry.esm.js.map +1 -1
  490. package/dist/webcomponents/br-header-link.entry.esm.js.map +1 -1
  491. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  492. package/dist/webcomponents/br-header-logo.entry.esm.js.map +1 -1
  493. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  494. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  495. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  496. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  497. package/dist/webcomponents/br-menu-header.entry.esm.js.map +1 -1
  498. package/dist/webcomponents/br-menu-info.entry.esm.js.map +1 -1
  499. package/dist/webcomponents/br-menu-item.entry.esm.js.map +1 -1
  500. package/dist/webcomponents/br-menu-link.entry.esm.js.map +1 -1
  501. package/dist/webcomponents/br-menu-list.entry.esm.js.map +1 -1
  502. package/dist/webcomponents/br-menu-logo.entry.esm.js.map +1 -1
  503. package/dist/webcomponents/br-menu-social.entry.esm.js.map +1 -1
  504. package/dist/webcomponents/br-menu.entry.esm.js.map +1 -1
  505. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  506. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  507. package/dist/webcomponents/br-pagination.entry.esm.js.map +1 -1
  508. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  509. package/dist/webcomponents/br-select-option.entry.esm.js.map +1 -0
  510. package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -1
  511. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  512. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  513. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  514. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  515. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  516. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  517. package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -1
  518. package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -1
  519. package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -1
  520. package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -1
  521. package/dist/webcomponents/br-table.entry.esm.js.map +1 -1
  522. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
  523. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  524. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  525. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  526. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  527. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  528. package/dist/webcomponents/{p-f2ea0d7e.entry.js → p-020c598b.entry.js} +19 -19
  529. package/dist/webcomponents/{p-f2ea0d7e.entry.js.map → p-020c598b.entry.js.map} +1 -1
  530. package/dist/webcomponents/{p-83001853.entry.js → p-09a09974.entry.js} +6 -6
  531. package/dist/webcomponents/{p-83001853.entry.js.map → p-09a09974.entry.js.map} +1 -1
  532. package/dist/webcomponents/{p-bd803fec.entry.js → p-0be0b270.entry.js} +372 -372
  533. package/dist/webcomponents/{p-bd803fec.entry.js.map → p-0be0b270.entry.js.map} +1 -1
  534. package/dist/webcomponents/p-0d8da69a.entry.js +50 -0
  535. package/dist/webcomponents/{p-8b3688ab.entry.js → p-107ad6d3.entry.js} +6 -6
  536. package/dist/webcomponents/{p-01b4fecb.entry.js → p-10b0d158.entry.js} +6 -6
  537. package/dist/webcomponents/{p-f1fb559a.entry.js → p-13b1b500.entry.js} +7 -7
  538. package/dist/webcomponents/p-15561737.entry.js +428 -0
  539. package/dist/webcomponents/p-15561737.entry.js.map +1 -0
  540. package/dist/webcomponents/{p-c0cdb81f.entry.js → p-24dd7de0.entry.js} +9 -9
  541. package/dist/webcomponents/{p-e5875d3d.entry.js → p-26ec56f1.entry.js} +5 -5
  542. package/dist/webcomponents/{p-e5875d3d.entry.js.map → p-26ec56f1.entry.js.map} +1 -1
  543. package/dist/webcomponents/p-34cd69c7.entry.js +105 -0
  544. package/dist/webcomponents/{p-d856888c.entry.js.map → p-34cd69c7.entry.js.map} +1 -1
  545. package/dist/webcomponents/{p-c06a79b8.entry.js → p-3956e4ac.entry.js} +6 -6
  546. package/dist/webcomponents/{p-462c5647.entry.js → p-4071b981.entry.js} +4 -4
  547. package/dist/webcomponents/p-42f11872.entry.js +60 -0
  548. package/dist/webcomponents/{p-f16a5e27.entry.js → p-4ad3b8c9.entry.js} +8 -8
  549. package/dist/webcomponents/{p-de358dbe.entry.js → p-512385f0.entry.js} +7 -7
  550. package/dist/webcomponents/{p-cfecd64a.entry.js → p-53c2b2c2.entry.js} +34 -34
  551. package/dist/webcomponents/p-567b17e6.entry.js +346 -0
  552. package/dist/webcomponents/{p-46dfc3ee.entry.js → p-57d49488.entry.js} +5 -5
  553. package/dist/webcomponents/p-58a862f9.entry.js +44 -0
  554. package/dist/webcomponents/p-58a862f9.entry.js.map +1 -0
  555. package/dist/webcomponents/p-59d41342.entry.js +101 -0
  556. package/dist/webcomponents/{p-c1b0a116.entry.js → p-5b7f446c.entry.js} +7 -7
  557. package/dist/webcomponents/{p-bd978abf.entry.js → p-610c2e8e.entry.js} +4 -4
  558. package/dist/webcomponents/p-62651eba.entry.js +44 -0
  559. package/dist/webcomponents/{p-50f1b088.entry.js → p-6bf86e0b.entry.js} +6 -6
  560. package/dist/webcomponents/{p-10e25a32.entry.js → p-6f8abd26.entry.js} +41 -41
  561. package/dist/webcomponents/{p-a2eec4fb.entry.js → p-7a93d79b.entry.js} +123 -38
  562. package/dist/webcomponents/p-7a93d79b.entry.js.map +1 -0
  563. package/dist/webcomponents/p-7d8eb8ac.entry.js +40 -0
  564. package/dist/webcomponents/p-7d8eb8ac.entry.js.map +1 -0
  565. package/dist/webcomponents/{p-56aabe89.entry.js → p-857cfe62.entry.js} +19 -19
  566. package/dist/webcomponents/p-898d950f.entry.js +84 -0
  567. package/dist/webcomponents/{p-6ecb3439.entry.js → p-8a931bfe.entry.js} +9 -9
  568. package/dist/webcomponents/p-8b7cc3a9.entry.js +92 -0
  569. package/dist/webcomponents/{p-ca2d95f7.entry.js → p-946cc8f3.entry.js} +142 -48
  570. package/dist/webcomponents/p-946cc8f3.entry.js.map +1 -0
  571. package/dist/webcomponents/p-9bb74d81.entry.js +133 -0
  572. package/dist/webcomponents/{p-cfa86a23.entry.js.map → p-9bb74d81.entry.js.map} +1 -1
  573. package/dist/webcomponents/p-9fabdfb4.entry.js +75 -0
  574. package/dist/webcomponents/{p-9b50e6af.entry.js → p-9fe9f5d2.entry.js} +6 -6
  575. package/dist/webcomponents/{p-ByGJPTh2.js → p-CgnD6TrP.js} +3 -3
  576. package/dist/webcomponents/{p-ByGJPTh2.js.map → p-CgnD6TrP.js.map} +1 -1
  577. package/dist/webcomponents/p-a09cf1bc.entry.js +145 -0
  578. package/dist/webcomponents/{p-30af66b3.entry.js → p-ae4feb1e.entry.js} +9 -9
  579. package/dist/webcomponents/p-b020467b.entry.js +351 -0
  580. package/dist/webcomponents/p-b020467b.entry.js.map +1 -0
  581. package/dist/webcomponents/{p-336071a5.entry.js → p-b04b7996.entry.js} +13 -13
  582. package/dist/webcomponents/{p-d7070712.entry.js → p-b39c2ad1.entry.js} +5 -5
  583. package/dist/webcomponents/{p-4bb5aeab.entry.js → p-b8e4bc36.entry.js} +17 -17
  584. package/dist/webcomponents/{p-66d26793.entry.js → p-b9c38611.entry.js} +3 -3
  585. package/dist/webcomponents/p-c4e28f37.entry.js +446 -0
  586. package/dist/webcomponents/p-c4e28f37.entry.js.map +1 -0
  587. package/dist/webcomponents/{p-d090d412.entry.js → p-cf764a83.entry.js} +6 -6
  588. package/dist/webcomponents/{p-27eb10f9.entry.js → p-d75fccd1.entry.js} +13 -13
  589. package/dist/webcomponents/p-da17c570.entry.js +134 -0
  590. package/dist/webcomponents/{p-6a9d2a0b.entry.js → p-df170bb4.entry.js} +6 -6
  591. package/dist/webcomponents/p-e55b41b4.entry.js +159 -0
  592. package/dist/webcomponents/{p-7537c4ba.entry.js.map → p-e55b41b4.entry.js.map} +1 -1
  593. package/dist/webcomponents/{p-a365183a.entry.js → p-e58dbeef.entry.js} +6 -6
  594. package/dist/webcomponents/p-e5ff5232.entry.js +452 -0
  595. package/dist/webcomponents/p-e5ff5232.entry.js.map +1 -0
  596. package/dist/webcomponents/{p-007c0f38.entry.js → p-f2f32774.entry.js} +14 -14
  597. package/dist/webcomponents/{p-2be1c309.entry.js → p-f583b74c.entry.js} +7 -7
  598. package/dist/webcomponents/{p-2be1c309.entry.js.map → p-f583b74c.entry.js.map} +1 -1
  599. package/dist/webcomponents/{p-061dbde5.entry.js → p-f723c6fc.entry.js} +5 -5
  600. package/dist/webcomponents/p-f86da8f9.entry.js +94 -0
  601. package/dist/webcomponents/p-fc94c64c.entry.js +50 -0
  602. package/dist/webcomponents/webcomponents.esm.js +3 -3
  603. package/dist/webcomponents.html-custom-data.json +136 -79
  604. package/package.json +1 -1
  605. package/dist/components/p-AOxMWARt.js +0 -136
  606. package/dist/components/p-BIJ6vVdB.js +0 -138
  607. package/dist/components/p-B_YesJM8.js +0 -192
  608. package/dist/components/p-Bc03PTAW.js +0 -306
  609. package/dist/components/p-Bc03PTAW.js.map +0 -1
  610. package/dist/components/p-Bri6ECVa.js.map +0 -1
  611. package/dist/components/p-C3Rduy2t.js +0 -399
  612. package/dist/components/p-CWRBs6PD.js +0 -316
  613. package/dist/components/p-CWRBs6PD.js.map +0 -1
  614. package/dist/components/p-DdjKNpU3.js.map +0 -1
  615. package/dist/webcomponents/p-0e3a9a52.entry.js +0 -44
  616. package/dist/webcomponents/p-271fafec.entry.js +0 -94
  617. package/dist/webcomponents/p-2768bb52.entry.js +0 -92
  618. package/dist/webcomponents/p-2a6b20bb.entry.js +0 -60
  619. package/dist/webcomponents/p-2de59d45.entry.js +0 -145
  620. package/dist/webcomponents/p-3c75367e.entry.js +0 -50
  621. package/dist/webcomponents/p-492972fb.entry.js +0 -380
  622. package/dist/webcomponents/p-492972fb.entry.js.map +0 -1
  623. package/dist/webcomponents/p-4cc446e4.entry.js +0 -50
  624. package/dist/webcomponents/p-5710a3e9.entry.js +0 -529
  625. package/dist/webcomponents/p-5710a3e9.entry.js.map +0 -1
  626. package/dist/webcomponents/p-7537c4ba.entry.js +0 -159
  627. package/dist/webcomponents/p-8c0f167a.entry.js +0 -101
  628. package/dist/webcomponents/p-90401ecd.entry.js +0 -219
  629. package/dist/webcomponents/p-90401ecd.entry.js.map +0 -1
  630. package/dist/webcomponents/p-a2eec4fb.entry.js.map +0 -1
  631. package/dist/webcomponents/p-aa7635d4.entry.js +0 -346
  632. package/dist/webcomponents/p-b30ef853.entry.js +0 -75
  633. package/dist/webcomponents/p-b8e4b353.entry.js +0 -84
  634. package/dist/webcomponents/p-c5b716c8.entry.js +0 -134
  635. package/dist/webcomponents/p-c73b38c5.entry.js +0 -297
  636. package/dist/webcomponents/p-c73b38c5.entry.js.map +0 -1
  637. package/dist/webcomponents/p-ca2d95f7.entry.js.map +0 -1
  638. package/dist/webcomponents/p-cfa86a23.entry.js +0 -133
  639. package/dist/webcomponents/p-d856888c.entry.js +0 -105
  640. /package/dist/components/{p-CJSXIVVe.js.map → p-B4_2a6sY.js.map} +0 -0
  641. /package/dist/components/{p-C3Rduy2t.js.map → p-BXMQkO62.js.map} +0 -0
  642. /package/dist/components/{p-B_YesJM8.js.map → p-Bb4aDGZV.js.map} +0 -0
  643. /package/dist/components/{p-CwtLw60M.js.map → p-Bjywc5uG.js.map} +0 -0
  644. /package/dist/components/{p-C_OI0BQu.js.map → p-BwHD1VKm.js.map} +0 -0
  645. /package/dist/components/{p-Bqb7YtL0.js.map → p-C1NfZb6u.js.map} +0 -0
  646. /package/dist/components/{p-DW63EY0U.js.map → p-C2apigAS.js.map} +0 -0
  647. /package/dist/components/{p-5Bn_PU3B.js.map → p-CldlPwBq.js.map} +0 -0
  648. /package/dist/components/{p-DSkSDmzD.js.map → p-DozXPp1d.js.map} +0 -0
  649. /package/dist/components/{p-AOxMWARt.js.map → p-DzfbHHTf.js.map} +0 -0
  650. /package/dist/components/{p-CBj_WCYf.js.map → p-JsxUUux9.js.map} +0 -0
  651. /package/dist/components/{p-lIb35q2K.js.map → p-p8k-sBQZ.js.map} +0 -0
  652. /package/dist/webcomponents/{p-3c75367e.entry.js.map → p-0d8da69a.entry.js.map} +0 -0
  653. /package/dist/webcomponents/{p-8b3688ab.entry.js.map → p-107ad6d3.entry.js.map} +0 -0
  654. /package/dist/webcomponents/{p-01b4fecb.entry.js.map → p-10b0d158.entry.js.map} +0 -0
  655. /package/dist/webcomponents/{p-f1fb559a.entry.js.map → p-13b1b500.entry.js.map} +0 -0
  656. /package/dist/webcomponents/{p-c0cdb81f.entry.js.map → p-24dd7de0.entry.js.map} +0 -0
  657. /package/dist/webcomponents/{p-c06a79b8.entry.js.map → p-3956e4ac.entry.js.map} +0 -0
  658. /package/dist/webcomponents/{p-462c5647.entry.js.map → p-4071b981.entry.js.map} +0 -0
  659. /package/dist/webcomponents/{p-2a6b20bb.entry.js.map → p-42f11872.entry.js.map} +0 -0
  660. /package/dist/webcomponents/{p-f16a5e27.entry.js.map → p-4ad3b8c9.entry.js.map} +0 -0
  661. /package/dist/webcomponents/{p-de358dbe.entry.js.map → p-512385f0.entry.js.map} +0 -0
  662. /package/dist/webcomponents/{p-cfecd64a.entry.js.map → p-53c2b2c2.entry.js.map} +0 -0
  663. /package/dist/webcomponents/{p-aa7635d4.entry.js.map → p-567b17e6.entry.js.map} +0 -0
  664. /package/dist/webcomponents/{p-46dfc3ee.entry.js.map → p-57d49488.entry.js.map} +0 -0
  665. /package/dist/webcomponents/{p-8c0f167a.entry.js.map → p-59d41342.entry.js.map} +0 -0
  666. /package/dist/webcomponents/{p-c1b0a116.entry.js.map → p-5b7f446c.entry.js.map} +0 -0
  667. /package/dist/webcomponents/{p-bd978abf.entry.js.map → p-610c2e8e.entry.js.map} +0 -0
  668. /package/dist/webcomponents/{p-0e3a9a52.entry.js.map → p-62651eba.entry.js.map} +0 -0
  669. /package/dist/webcomponents/{p-50f1b088.entry.js.map → p-6bf86e0b.entry.js.map} +0 -0
  670. /package/dist/webcomponents/{p-10e25a32.entry.js.map → p-6f8abd26.entry.js.map} +0 -0
  671. /package/dist/webcomponents/{p-56aabe89.entry.js.map → p-857cfe62.entry.js.map} +0 -0
  672. /package/dist/webcomponents/{p-b8e4b353.entry.js.map → p-898d950f.entry.js.map} +0 -0
  673. /package/dist/webcomponents/{p-6ecb3439.entry.js.map → p-8a931bfe.entry.js.map} +0 -0
  674. /package/dist/webcomponents/{p-2768bb52.entry.js.map → p-8b7cc3a9.entry.js.map} +0 -0
  675. /package/dist/webcomponents/{p-b30ef853.entry.js.map → p-9fabdfb4.entry.js.map} +0 -0
  676. /package/dist/webcomponents/{p-9b50e6af.entry.js.map → p-9fe9f5d2.entry.js.map} +0 -0
  677. /package/dist/webcomponents/{p-2de59d45.entry.js.map → p-a09cf1bc.entry.js.map} +0 -0
  678. /package/dist/webcomponents/{p-30af66b3.entry.js.map → p-ae4feb1e.entry.js.map} +0 -0
  679. /package/dist/webcomponents/{p-336071a5.entry.js.map → p-b04b7996.entry.js.map} +0 -0
  680. /package/dist/webcomponents/{p-d7070712.entry.js.map → p-b39c2ad1.entry.js.map} +0 -0
  681. /package/dist/webcomponents/{p-4bb5aeab.entry.js.map → p-b8e4bc36.entry.js.map} +0 -0
  682. /package/dist/webcomponents/{p-66d26793.entry.js.map → p-b9c38611.entry.js.map} +0 -0
  683. /package/dist/webcomponents/{p-d090d412.entry.js.map → p-cf764a83.entry.js.map} +0 -0
  684. /package/dist/webcomponents/{p-27eb10f9.entry.js.map → p-d75fccd1.entry.js.map} +0 -0
  685. /package/dist/webcomponents/{p-c5b716c8.entry.js.map → p-da17c570.entry.js.map} +0 -0
  686. /package/dist/webcomponents/{p-6a9d2a0b.entry.js.map → p-df170bb4.entry.js.map} +0 -0
  687. /package/dist/webcomponents/{p-a365183a.entry.js.map → p-e58dbeef.entry.js.map} +0 -0
  688. /package/dist/webcomponents/{p-007c0f38.entry.js.map → p-f2f32774.entry.js.map} +0 -0
  689. /package/dist/webcomponents/{p-061dbde5.entry.js.map → p-f723c6fc.entry.js.map} +0 -0
  690. /package/dist/webcomponents/{p-271fafec.entry.js.map → p-f86da8f9.entry.js.map} +0 -0
  691. /package/dist/webcomponents/{p-4cc446e4.entry.js.map → p-fc94c64c.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"br-card.entry.esm.js","sources":["../../packages/webcomponents/src/components/card/card.scss?tag=br-card&encapsulation=shadow","../../packages/webcomponents/src/components/card/card.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/card/card\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/card?tab=designer).\n *\n * @slot default - Slot para conteúdo livre do card, quando não usar a estrutura de slots nomeados.\n * @slot header - Slot para o conteúdo do cabeçalho do card.\n * @slot content - Slot para o corpo principal do card ao usar a estrutura de slots.\n * @slot footer - Slot para o conteúdo do rodapé do card.\n */\n@Component({\n tag: 'br-card',\n styleUrl: 'card.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class BrCard {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCardElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-card')\n\n /**\n * Define se o card está desabilitado.\n * Quando true, o card fica com opacidade reduzida e não responde a interações.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define se o card tem hover interativo.\n * Quando true, o card terá efeitos visuais ao passar o mouse.\n */\n @Prop({ reflect: true }) hover: boolean = false\n\n private hasHeader: boolean = false\n private hasContent: boolean = false\n private hasFooter: boolean = false\n\n componentWillLoad() {\n this.checkSlots()\n }\n\n componentDidLoad() {\n // Observar mudanças nos slots\n const slotElements = this.el.shadowRoot?.querySelectorAll('slot')\n slotElements?.forEach((slot) => {\n slot.addEventListener('slotchange', () => this.checkSlots())\n })\n }\n\n private checkSlots() {\n const headerSlot = this.el.querySelector('[slot=\"header\"]')\n const contentSlot = this.el.querySelector('[slot=\"content\"]')\n const footerSlot = this.el.querySelector('[slot=\"footer\"]')\n\n this.hasHeader = !!headerSlot\n this.hasContent = !!contentSlot\n this.hasFooter = !!footerSlot\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-card': true,\n disabled: this.disabled,\n hover: this.hover && !this.disabled,\n }\n }\n\n private getHeaderClassMap(): CssClassMap {\n return {\n 'card-header': true,\n }\n }\n\n private getContentClassMap(): CssClassMap {\n return {\n 'card-content': true,\n }\n }\n\n private getFooterClassMap(): CssClassMap {\n return {\n 'card-footer': true,\n }\n }\n\n render() {\n const hasStructuredContent = this.hasHeader || this.hasContent || this.hasFooter\n\n return (\n <Host id={this.customId} aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()} part=\"wrapper\">\n {hasStructuredContent ? (\n [\n this.hasHeader && (\n <div class={this.getHeaderClassMap()} part=\"header\">\n <slot name=\"header\" />\n </div>\n ),\n (this.hasContent || (!this.hasHeader && !this.hasFooter)) && (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n ),\n this.hasFooter && (\n <div class={this.getFooterClassMap()} part=\"footer\">\n <slot name=\"footer\" />\n </div>\n ),\n ]\n ) : (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot />\n </div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-card.entry.esm.js","sources":["../../packages/webcomponents/src/components/card/card.scss?tag=br-card&encapsulation=shadow","../../packages/webcomponents/src/components/card/card.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/card/card\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/card?tab=designer).\n *\n * @slot default - Slot para conteúdo livre do card, quando não usar a estrutura de slots nomeados.\n * @slot header - Slot para o conteúdo do cabeçalho do card.\n * @slot content - Slot para o corpo principal do card ao usar a estrutura de slots.\n * @slot footer - Slot para o conteúdo do rodapé do card.\n */\n@Component({\n tag: 'br-card',\n styleUrl: 'card.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class BrCard {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrCardElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-card')\n\n /**\n * Define se o card está desabilitado.\n * Quando true, o card fica com opacidade reduzida e não responde a interações.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Define se o card tem hover interativo.\n * Quando true, o card terá efeitos visuais ao passar o mouse.\n */\n @Prop({ reflect: true }) hover: boolean = false\n\n private hasHeader: boolean = false\n private hasContent: boolean = false\n private hasFooter: boolean = false\n\n componentWillLoad() {\n this.checkSlots()\n }\n\n componentDidLoad() {\n // Observar mudanças nos slots\n const slotElements = this.el.shadowRoot?.querySelectorAll('slot')\n slotElements?.forEach((slot) => {\n slot.addEventListener('slotchange', () => this.checkSlots())\n })\n }\n\n private checkSlots() {\n const headerSlot = this.el.querySelector('[slot=\"header\"]')\n const contentSlot = this.el.querySelector('[slot=\"content\"]')\n const footerSlot = this.el.querySelector('[slot=\"footer\"]')\n\n this.hasHeader = !!headerSlot\n this.hasContent = !!contentSlot\n this.hasFooter = !!footerSlot\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-card': true,\n disabled: this.disabled,\n hover: this.hover && !this.disabled,\n }\n }\n\n private getHeaderClassMap(): CssClassMap {\n return {\n 'card-header': true,\n }\n }\n\n private getContentClassMap(): CssClassMap {\n return {\n 'card-content': true,\n }\n }\n\n private getFooterClassMap(): CssClassMap {\n return {\n 'card-footer': true,\n }\n }\n\n render() {\n const hasStructuredContent = this.hasHeader || this.hasContent || this.hasFooter\n\n return (\n <Host id={this.customId} aria-disabled={this.disabled ? 'true' : null}>\n <div class={this.getCssClassMap()} part=\"wrapper\">\n {hasStructuredContent ? (\n [\n this.hasHeader && (\n <div class={this.getHeaderClassMap()} part=\"header\">\n <slot name=\"header\" />\n </div>\n ),\n (this.hasContent || (!this.hasHeader && !this.hasFooter)) && (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n ),\n this.hasFooter && (\n <div class={this.getFooterClassMap()} part=\"footer\">\n <slot name=\"footer\" />\n </div>\n ),\n ]\n ) : (\n <div class={this.getContentClassMap()} part=\"content\">\n <slot />\n </div>\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-checkbox.br-input.br-radio.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkbox/checkbox.scss?tag=br-checkbox&encapsulation=shadow","../../packages/webcomponents/src/components/checkbox/checkbox.tsx","../../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/checkbox/checkbox\";\n\n:host {\n display: inline-block;\n\n .br-checkbox {\n --checkbox-padding: var(--spacing-scale-half);\n --checkbox-size: 24px;\n\n display: flex;\n position: relative;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n }\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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/checkbox?tab=designer).\n *\n * @slot default - Slot para o rótulo do checkbox, como alternativa à propriedade label.\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 * 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 /**\n * Indica se o checkbox é pai de um grupo de checkboxes.\n */\n @Prop({ reflect: false }) readonly isFather: boolean = false\n\n /**\n * Indica se o slot default possui conteúdo.\n */\n @State() slotDefault: boolean = false\n\n /**\n * Define o número de checkboxes filhos em um grupo de checkboxes.\n */\n @State() numberOfChildren: number = 0\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n\n /**\n * Disparado depois que o valor do `indeterminate` foi alterado.\n */\n @Event() indeterminateChange: EventEmitter<boolean>\n\n @Watch('indeterminate')\n updateIndeterminate(newValue: boolean) {\n const input = this.el.shadowRoot.querySelector('input')\n if (input !== null) {\n input.indeterminate = newValue\n }\n }\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML !== ''\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkbox': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n private getAriaCheckedValue(): string {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n private readonly handleCheckedChange = () => {\n if (this.indeterminate) {\n // Sai do estado indeterminado ao clicar e define como marcado\n this.indeterminate = false\n this.checked = true\n this.indeterminateChange.emit(this.indeterminate)\n } else {\n // Alterna entre marcado e desmarcado\n this.checked = !this.checked\n this.indeterminate = false\n }\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o estado indeterminado do checkbox.\n * @param value Novo valor para o estado indeterminado.\n */\n @Method()\n async setIndeterminate(value: boolean) {\n this.indeterminate = value\n this.updateIndeterminate(value)\n this.indeterminateChange.emit(this.indeterminate)\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o número de checkboxes filhos em um grupo de checkboxes.\n * @param value Número de checkboxes filhos.\n */\n @Method()\n async setNumberOfChildren(value: number) {\n this.numberOfChildren = value\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n type=\"checkbox\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onChange={this.handleCheckedChange}\n ref={(el) => el && (el.indeterminate = this.indeterminate)}\n aria-checked={this.getAriaCheckedValue()}\n aria-describedby={this.numberOfChildren > 0 ? 'children-number' : null}\n />\n <label htmlFor={this.customId} class={this.hasHiddenLabel ? 'visually-hidden' : undefined}>\n {this.slotDefault ? <slot></slot> : this.label}\n </label>\n </div>\n {this.isFather ? (\n <span id=\"children-number\" class=\"sr-only\">\n Número de opções: {this.numberOfChildren}\n </span>\n ) : null}\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n","@import \"~@govbr-ds/core/src/components/input/input\";\n\n:host {\n display: inline-block;\n width: 100%;\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 {\n 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 &.button-transform {\n transform: translateY(calc((var(--input-size) - 32px) * 0.5));\n }\n }\n\n .input-label {\n margin-top: 0 !important;\n }\n\n &.input-inline {\n display: flex;\n align-items: center;\n }\n}\n\n/* Estilo borderless para composições contextuais */\n:host([borderless]) {\n .br-input input {\n border-color: transparent;\n }\n\n .br-input input:focus,\n .br-input input:focus-visible {\n border-color: var(--border-color-alternative);\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/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.\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 * Largura do campo de entrada (por exemplo, '88px').\n * Quando definido, sobrescreve a largura padrão de 100%.\n */\n @Prop({ reflect: true }) readonly controlWidth?: string\n\n /**\n * Remove a borda do input quando não está em foco.\n * Útil para composições contextuais (ex.: paginação).\n */\n @Prop({ reflect: true }) readonly borderless: boolean = false\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 * Máscara aplicada ao valor digitado (use `#` para marcar posições numéricas).\n */\n @Prop({ reflect: true }) readonly mask?: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n /**\n * Texto exibido no botão de ação à direita do input.\n */\n @Prop({ reflect: true }) readonly actionLabel: string\n\n /**\n * Define o tabindex do botão de ação.\n * Útil para remover o botão da sequência de tabulação quando o foco é gerenciado externamente (ex.: br-select).\n */\n @Prop({ reflect: true }) readonly actionTabIndex?: 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 this.applyMaskToValue()\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 !== null || initialMessageElement !== undefined) {\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 !== null && slot !== undefined) {\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 !== null && messageElement !== undefined) {\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 @Watch('value')\n protected handleValueChange(newValue: string) {\n if (!this.hasMaskConfigured()) {\n return\n }\n\n const maskedValue = this.applyMask(newValue ?? '')\n if (maskedValue !== newValue) {\n this.value = maskedValue\n }\n }\n\n @Watch('mask')\n protected handleMaskChange() {\n this.applyMaskToValue()\n }\n\n private readonly handleInput = (event: Event) => {\n const inputElement = event.target as HTMLInputElement\n let nextValue = inputElement.value ?? ''\n\n if (this.hasMaskConfigured()) {\n const maskedValue = this.applyMask(nextValue)\n if (maskedValue !== nextValue) {\n inputElement.value = maskedValue\n }\n nextValue = maskedValue\n }\n\n this.value = nextValue\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 part=\"label\" class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return (\n <label part=\"label\" htmlFor={this.customId}>\n {this.label}\n </label>\n )\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 style={this.controlWidth !== undefined && this.controlWidth !== null ? { width: this.controlWidth } : undefined}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.isPasswordVisible ? 'Esconder senha' : 'Mostrar senha'}\n aria-pressed={this.isPasswordVisible ? 'true' : 'false'}\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.actionLabel}\n customTabIndex={this.actionTabIndex}\n >\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\n class=\"input-group\"\n style={this.controlWidth !== undefined && this.controlWidth !== null ? { width: this.controlWidth } : undefined}\n >\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 private applyMaskToValue() {\n if (!this.hasMaskConfigured() || this.value === undefined || this.value === null) {\n return\n }\n\n const maskedValue = this.applyMask(this.value)\n if (this.value !== maskedValue) {\n this.value = maskedValue\n }\n }\n\n private applyMask(value: string): string {\n if (!this.hasMaskConfigured()) {\n return value ?? ''\n }\n\n const digits = (value ?? '').replace(/\\D/g, '')\n if (digits.length === 0) {\n return ''\n }\n\n let maskedValue = ''\n let digitIndex = 0\n\n for (let i = 0; i < this.mask.length && digitIndex < digits.length; i++) {\n const maskChar = this.mask[i]\n\n if (maskChar === '#') {\n maskedValue += digits[digitIndex]\n digitIndex++\n } else {\n maskedValue += maskChar\n }\n }\n\n return maskedValue\n }\n\n private hasMaskConfigured(): boolean {\n return typeof this.mask === 'string' && this.mask.length > 0\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: inline-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 {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/radio?tab=designer).\n *\n * @slot default - Slot para o rótulo do rádio, como alternativa à propriedade label.\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 * 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; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-radio')\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 @State() updateTrigger: number = 0\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event({ bubbles: true, composed: true }) checkedChange: EventEmitter<boolean>\n\n @Watch('checked')\n checkedChanged(isChecked: boolean) {\n this.checkedChange.emit(isChecked)\n }\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 const isSiblingChecked = event.detail\n\n if (isSiblingChecked) {\n if (this.checked) {\n this.checked = false\n }\n }\n // Always re-evaluate focusability (tabIndex) when siblings change\n this.updateTrigger++\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) return\n\n const isArrowKey = ['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(event.key)\n if (!isArrowKey) return\n\n // Prevent default scrolling\n event.preventDefault()\n\n const root = this.el.getRootNode() as Document | ShadowRoot\n const radios = Array.from(root.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (el: HTMLBrRadioElement) => el.name === this.name && !el.disabled\n )\n\n const currentIndex = radios.indexOf(this.el)\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 = radios[nextIndex]\n if (nextRadio) {\n if (!nextRadio.checked) {\n nextRadio.toggleChecked()\n }\n ;(nextRadio as any).setFocus()\n }\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n }\n\n @Method()\n async setFocus() {\n const input = this.el.shadowRoot?.querySelector('input')\n if (input) {\n input.focus()\n }\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) - handled by Watch\n }\n\n private computeTabIndex(): number {\n if (this.disabled) return -1\n if (this.checked) return 0\n\n // If unchecked, we are only focusable (0) if NO sibling is checked AND we are the first enabled sibling.\n const root = this.el.getRootNode() as Document | ShadowRoot\n if (!root) return 0 // Fallback\n\n const radios = Array.from(root.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (r) => r.name === this.name && !r.disabled\n )\n\n const anyChecked = radios.some((r) => r.checked)\n if (anyChecked) return -1\n\n return radios[0] === this.el ? 0 : -1\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 tabIndex={this.computeTabIndex()}\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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-checkbox.br-input.br-radio.entry.esm.js","sources":["../../packages/webcomponents/src/components/checkbox/checkbox.scss?tag=br-checkbox&encapsulation=shadow","../../packages/webcomponents/src/components/checkbox/checkbox.tsx","../../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/checkbox/checkbox\";\n\n:host {\n display: inline-block;\n\n .br-checkbox {\n --checkbox-padding: var(--spacing-scale-half);\n --checkbox-size: 24px;\n\n display: flex;\n position: relative;\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n }\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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/checkbox?tab=designer).\n *\n * @slot default - Slot para o rótulo do checkbox, como alternativa à propriedade label.\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 * 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 /**\n * Indica se o checkbox é pai de um grupo de checkboxes.\n */\n @Prop({ reflect: false }) readonly isFather: boolean = false\n\n /**\n * Indica se o slot default possui conteúdo.\n */\n @State() slotDefault: boolean = false\n\n /**\n * Define o número de checkboxes filhos em um grupo de checkboxes.\n */\n @State() numberOfChildren: number = 0\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n\n /**\n * Disparado depois que o valor do `indeterminate` foi alterado.\n */\n @Event() indeterminateChange: EventEmitter<boolean>\n\n @Watch('indeterminate')\n updateIndeterminate(newValue: boolean) {\n const input = this.el.shadowRoot.querySelector('input')\n if (input !== null) {\n input.indeterminate = newValue\n }\n }\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n }\n\n private hasSlotContentDefault(): void {\n this.slotDefault = this.el.innerHTML !== ''\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-checkbox': true,\n valid: this.state === 'valid',\n invalid: this.state === 'invalid',\n disabled: this.disabled,\n 'hidden-label': this.hasHiddenLabel,\n }\n }\n\n private getAriaCheckedValue(): string {\n if (this.indeterminate) {\n return 'mixed'\n }\n return this.checked ? 'true' : 'false'\n }\n\n private readonly handleCheckedChange = () => {\n if (this.indeterminate) {\n // Sai do estado indeterminado ao clicar e define como marcado\n this.indeterminate = false\n this.checked = true\n this.indeterminateChange.emit(this.indeterminate)\n } else {\n // Alterna entre marcado e desmarcado\n this.checked = !this.checked\n this.indeterminate = false\n }\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o estado indeterminado do checkbox.\n * @param value Novo valor para o estado indeterminado.\n */\n @Method()\n async setIndeterminate(value: boolean) {\n this.indeterminate = value\n this.updateIndeterminate(value)\n this.indeterminateChange.emit(this.indeterminate)\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n /**\n * Define o número de checkboxes filhos em um grupo de checkboxes.\n * @param value Número de checkboxes filhos.\n */\n @Method()\n async setNumberOfChildren(value: number) {\n this.numberOfChildren = value\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n type=\"checkbox\"\n id={this.customId}\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n value={this.value}\n onChange={this.handleCheckedChange}\n ref={(el) => el && (el.indeterminate = this.indeterminate)}\n aria-checked={this.getAriaCheckedValue()}\n aria-describedby={this.numberOfChildren > 0 ? 'children-number' : null}\n />\n <label htmlFor={this.customId} class={this.hasHiddenLabel ? 'visually-hidden' : undefined}>\n {this.slotDefault ? <slot></slot> : this.label}\n </label>\n </div>\n {this.isFather ? (\n <span id=\"children-number\" class=\"sr-only\">\n Número de opções: {this.numberOfChildren}\n </span>\n ) : null}\n </Host>\n )\n }\n}\n\nlet checkboxId = 0\n","@import \"~@govbr-ds/core/src/components/input/input\";\n\n:host {\n display: inline-block;\n width: 100%;\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 {\n 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 &.button-transform {\n transform: translateY(calc((var(--input-size) - 32px) * 0.5));\n }\n }\n\n .input-label {\n margin-top: 0 !important;\n }\n\n &.input-inline {\n display: flex;\n align-items: center;\n }\n}\n\n/* Estilo borderless para composições contextuais */\n:host([borderless]) {\n .br-input input {\n border-color: transparent;\n }\n\n .br-input input:focus,\n .br-input input:focus-visible {\n border-color: var(--border-color-alternative);\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/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.\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 * Largura do campo de entrada (por exemplo, '88px').\n * Quando definido, sobrescreve a largura padrão de 100%.\n */\n @Prop({ reflect: true }) readonly controlWidth?: string\n\n /**\n * Remove a borda do input quando não está em foco.\n * Útil para composições contextuais (ex.: paginação).\n */\n @Prop({ reflect: true }) readonly borderless: boolean = false\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 * Máscara aplicada ao valor digitado (use `#` para marcar posições numéricas).\n */\n @Prop({ reflect: true }) readonly mask?: string\n\n /**\n * Define o valor do passo para campos de entrada numéricos.\n */\n @Prop({ reflect: true }) readonly step: number\n\n /**\n * Texto exibido no botão de ação à direita do input.\n */\n @Prop({ reflect: true }) readonly actionLabel: string\n\n /**\n * Define o tabindex do botão de ação.\n * Útil para remover o botão da sequência de tabulação quando o foco é gerenciado externamente (ex.: br-select).\n */\n @Prop({ reflect: true }) readonly actionTabIndex?: 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 this.applyMaskToValue()\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 !== null || initialMessageElement !== undefined) {\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 !== null && slot !== undefined) {\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 !== null && messageElement !== undefined) {\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 @Watch('value')\n protected handleValueChange(newValue: string) {\n if (!this.hasMaskConfigured()) {\n return\n }\n\n const maskedValue = this.applyMask(newValue ?? '')\n if (maskedValue !== newValue) {\n this.value = maskedValue\n }\n }\n\n @Watch('mask')\n protected handleMaskChange() {\n this.applyMaskToValue()\n }\n\n private readonly handleInput = (event: Event) => {\n const inputElement = event.target as HTMLInputElement\n let nextValue = inputElement.value ?? ''\n\n if (this.hasMaskConfigured()) {\n const maskedValue = this.applyMask(nextValue)\n if (maskedValue !== nextValue) {\n inputElement.value = maskedValue\n }\n nextValue = maskedValue\n }\n\n this.value = nextValue\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 part=\"label\" class=\"text-nowrap\" htmlFor={this.customId}>\n {this.label}\n </label>\n </div>\n )\n } else {\n return (\n <label part=\"label\" htmlFor={this.customId}>\n {this.label}\n </label>\n )\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 style={this.controlWidth !== undefined && this.controlWidth !== null ? { width: this.controlWidth } : undefined}\n autocomplete={this.autocomplete}\n disabled={this.disabled}\n autoCorrect={this.autocorrect}\n min={this.min}\n max={this.max}\n minLength={this.minlength}\n maxLength={this.maxlength}\n multiple={this.multiple}\n name={this.name}\n pattern={this.pattern}\n step={this.step}\n onInput={this.handleInput}\n placeholder={this.placeholder}\n readonly={this.readonly}\n required={this.required}\n title={this.el.title}\n type={this.type}\n value={this.value}\n />\n )\n }\n\n private readonly renderHelpText = () => {\n return this.helpText?.length > 0 ? <p>{this.helpText}</p> : <slot name=\"help-text\"></slot>\n }\n\n private readonly renderIconPassword = () => {\n const iconName = this.isPasswordVisible ? 'fa-solid:eye-slash' : 'fa-solid:eye'\n return <br-icon icon-name={iconName}></br-icon>\n }\n\n private readonly togglePasswordVisibility = () => {\n const input = this.el.shadowRoot.querySelector('input')\n this.isPasswordVisible = !this.isPasswordVisible\n input.type = this.isPasswordVisible ? 'text' : 'password'\n }\n\n private renderIconSlot() {\n if (this.hasSlotContent('icon')) {\n return (\n <div class=\"input-icon\">\n <slot name=\"icon\"></slot>\n </div>\n )\n }\n }\n\n private renderButton() {\n if (this.type === 'password') {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.isPasswordVisible ? 'Esconder senha' : 'Mostrar senha'}\n aria-pressed={this.isPasswordVisible ? 'true' : 'false'}\n onClick={this.togglePasswordVisibility}\n >\n {this.renderIconPassword()}\n </br-button>\n )\n } else if (this.hasSlotContent('action')) {\n return (\n <br-button\n class=\"button-transform\"\n shape=\"circle\"\n density=\"small\"\n aria-label={this.actionLabel}\n customTabIndex={this.actionTabIndex}\n >\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\n class=\"input-group\"\n style={this.controlWidth !== undefined && this.controlWidth !== null ? { width: this.controlWidth } : undefined}\n >\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 private applyMaskToValue() {\n if (!this.hasMaskConfigured() || this.value === undefined || this.value === null) {\n return\n }\n\n const maskedValue = this.applyMask(this.value)\n if (this.value !== maskedValue) {\n this.value = maskedValue\n }\n }\n\n private applyMask(value: string): string {\n if (!this.hasMaskConfigured()) {\n return value ?? ''\n }\n\n const digits = (value ?? '').replace(/\\D/g, '')\n if (digits.length === 0) {\n return ''\n }\n\n let maskedValue = ''\n let digitIndex = 0\n\n for (let i = 0; i < this.mask.length && digitIndex < digits.length; i++) {\n const maskChar = this.mask[i]\n\n if (maskChar === '#') {\n maskedValue += digits[digitIndex]\n digitIndex++\n } else {\n maskedValue += maskChar\n }\n }\n\n return maskedValue\n }\n\n private hasMaskConfigured(): boolean {\n return typeof this.mask === 'string' && this.mask.length > 0\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: inline-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 {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/radio?tab=designer).\n *\n * @slot default - Slot para o rótulo do rádio, como alternativa à propriedade label.\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 * 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; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-radio')\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 @State() updateTrigger: number = 0\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event({ bubbles: true, composed: true }) checkedChange: EventEmitter<boolean>\n\n @Watch('checked')\n checkedChanged(isChecked: boolean) {\n this.checkedChange.emit(isChecked)\n }\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 const isSiblingChecked = event.detail\n\n if (isSiblingChecked) {\n if (this.checked) {\n this.checked = false\n }\n }\n // Always re-evaluate focusability (tabIndex) when siblings change\n this.updateTrigger++\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) return\n\n const isArrowKey = ['ArrowRight', 'ArrowDown', 'ArrowLeft', 'ArrowUp'].includes(event.key)\n if (!isArrowKey) return\n\n // Prevent default scrolling\n event.preventDefault()\n\n const root = this.el.getRootNode() as Document | ShadowRoot\n const radios = Array.from(root.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (el: HTMLBrRadioElement) => el.name === this.name && !el.disabled\n )\n\n const currentIndex = radios.indexOf(this.el)\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 = radios[nextIndex]\n if (nextRadio) {\n if (!nextRadio.checked) {\n nextRadio.toggleChecked()\n }\n ;(nextRadio as any).setFocus()\n }\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n }\n\n @Method()\n async setFocus() {\n const input = this.el.shadowRoot?.querySelector('input')\n if (input) {\n input.focus()\n }\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) - handled by Watch\n }\n\n private computeTabIndex(): number {\n if (this.disabled) return -1\n if (this.checked) return 0\n\n // If unchecked, we are only focusable (0) if NO sibling is checked AND we are the first enabled sibling.\n const root = this.el.getRootNode() as Document | ShadowRoot\n if (!root) return 0 // Fallback\n\n const radios = Array.from(root.querySelectorAll<HTMLBrRadioElement>('br-radio')).filter(\n (r) => r.name === this.name && !r.disabled\n )\n\n const anyChecked = radios.some((r) => r.checked)\n if (anyChecked) return -1\n\n return radios[0] === this.el ? 0 : -1\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 tabIndex={this.computeTabIndex()}\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"],"names":[],"mappings":";;;;;;;AAAA,MAAM,WAAW,GAAG,6tjBAA6tjB;;MC6BpujB,QAAQ,GAAA,MAAA;AANrB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;;AAeE;;;;;AAKG;AACqC,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK;AAEtE;;;AAGG;AACqC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEhE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,eAAe,UAAU,EAAE,EAAE;AAElF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;AA2BjE;;AAEG;AACgC,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE5D;;AAEG;AACM,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAErC;;AAEG;AACM,QAAA,IAAgB,CAAA,gBAAA,GAAW,CAAC;AA6CpB,QAAA,IAAmB,CAAA,mBAAA,GAAG,MAAK;AAC1C,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE;;AAEtB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;gBACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;;iBAC5C;;AAEL,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC5B,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;YAE5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,SAAC;AA2DF;AAvGC,IAAA,mBAAmB,CAAC,QAAiB,EAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;AACvD,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,KAAK,CAAC,aAAa,GAAG,QAAQ;;;IAIlC,iBAAiB,GAAA;QACf,IAAI,CAAC,qBAAqB,EAAE;;IAGtB,qBAAqB,GAAA;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE;;IAGrC,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AAC7B,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC;;IAGK,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,OAAO,OAAO;;QAEhB,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO;;AAiBxC;;;AAGG;IAEH,MAAM,gBAAgB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGnD;;AAEG;AAEH,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGvC;;;AAGG;IAEH,MAAM,mBAAmB,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;;IAG/B,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAC/B,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAClC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,EAC5C,cAAA,EAAA,IAAI,CAAC,mBAAmB,EAAE,EACtB,kBAAA,EAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,IAAI,EACtE,CAAA,EACF,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,GAAG,iBAAiB,GAAG,SAAS,EACtF,EAAA,IAAI,CAAC,WAAW,GAAG,CAAa,CAAA,MAAA,EAAA,IAAA,CAAA,GAAG,IAAI,CAAC,KAAK,CACxC,CACJ,EACL,IAAI,CAAC,QAAQ,IACZ,CAAM,CAAA,MAAA,EAAA,EAAA,EAAE,EAAC,iBAAiB,EAAC,KAAK,EAAC,SAAS,EAAA,uCACrB,IAAI,CAAC,gBAAgB,CACnC,IACL,IAAI,CACH;;;;;;;;AAKb,IAAI,UAAU,GAAG,CAAC;;;ACjOlB,MAAM,QAAQ,GAAG,4xmBAA4xmB;;MCoBhymB,KAAK,GAAA,MAAA;AANlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;AAeE;;AAEG;AAC+B,QAAA,IAAI,CAAA,IAAA,GAW1B,MAAM;AAOlB;;AAEG;AAC+B,QAAA,IAAO,CAAA,OAAA,GAAiC,QAAQ;AAElF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAC+B,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAkB9D;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,YAAY,OAAO,EAAE,EAAE;AAY5E;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAc3D;;;AAGG;AAC+B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAO7D;;AAEG;AAC+B,QAAA,IAAW,CAAA,WAAA,GAAiB,KAAK;AAsBnE;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA4BlD,QAAA,IAAiB,CAAA,iBAAA,GAAY,KAAK;AAElC,QAAA,IAAa,CAAA,aAAA,GAA8C,MAAM;AAEjE,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAE5B,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK;AAE9B,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK;AAwFxB,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAY,KAAI;;AAC9C,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAA0B;YACrD,IAAI,SAAS,GAAG,CAAA,EAAA,GAAA,YAAY,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAExC,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAC7C,gBAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,oBAAA,YAAY,CAAC,KAAK,GAAG,WAAW;;gBAElC,SAAS,GAAG,WAAW;;AAGzB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,SAAC;AAEgB,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;;AAClC,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,IAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,oBAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,aAAa,EAAA,EACtB,CAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAC3D,IAAI,CAAC,KAAK,CACL,CACJ;;qBAEH;oBACL,QACE,CAAO,CAAA,OAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EACvC,EAAA,IAAI,CAAC,KAAK,CACL;;;AAIhB,SAAC;AAMgB,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AAClC,YAAA,QACE,CACE,CAAA,OAAA,EAAA,EAAA,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,iBAAiB,GAAG,IAAI,EAClD,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,EAC/G,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,CACjB;AAEN,SAAC;AAEgB,QAAA,IAAc,CAAA,cAAA,GAAG,MAAK;;YACrC,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,GAAG,aAAI,IAAI,CAAC,QAAQ,CAAK,GAAG,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,WAAW,EAAA,CAAQ;AAC5F,SAAC;AAEgB,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAK;AACzC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,GAAG,cAAc;YAC/E,OAAO,CAAA,CAAA,SAAA,EAAA,EAAA,WAAA,EAAoB,QAAQ,EAAA,CAAY;AACjD,SAAC;AAEgB,QAAA,IAAwB,CAAA,wBAAA,GAAG,MAAK;AAC/C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;AACvD,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB;AAChD,YAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,MAAM,GAAG,UAAU;AAC3D,SAAC;AA0CgB,QAAA,IAAwB,CAAA,wBAAA,GAAG,MAAK;AAC/C,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,OAAO,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAO;;iBAC/D;AACL,gBAAA,OAAO,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,eAAe,EAAA,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAO;;AAE3E,SAAC;AAEgB,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAK;AACzC,YAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE;AACtF,SAAC;AAEgB,QAAA,IAAmB,CAAA,mBAAA,GAAG,MAAK;AAC1C,YAAA,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,SAAS,EAAA,EAE9G,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,YAAY,EAAE,EACnB,IAAI,CAAC,cAAc,EAAE,CAClB;AAEV,SAAC;AAEgB,QAAA,IAAsB,CAAA,sBAAA,GAAG,MAAK;AAC7C,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACzE,SAAC;AA+DF;IA5SC,iBAAiB,GAAA;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;QAC/B,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,2BAA2B,EAAE;;;IAItC,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,yBAAyB,EAAE;;;IAI5B,2BAA2B,GAAA;QACjC,MAAM,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;QAEjE,IAAI,qBAAqB,KAAK,IAAI,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACzE,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC;YAChE,IAAI,CAAC,aAAa,GAAI,YAA0D,IAAI,IAAI,CAAC,KAAK;;aACzF;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;;;IAI3B,yBAAyB,GAAA;;AAC/B,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,uBAAuB,CAAC;QACvE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAK;gBACvC,IAAI,CAAC,yBAAyB,EAAE;AAClC,aAAC,CAAC;;;IAIE,yBAAyB,GAAA;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;QAE1D,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE;YAC3D,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,OAAO,CAA8C;;aACjG;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;;;IAI3B,mBAAmB,GAAA;QACzB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,IAAI,CAAC,aAAa;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;AAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;AAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACjC,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,IAAI,CAAC,WAAW;AACnC,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS;AACzC,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,KAAK,QAAQ;AACvC,YAAA,IAAI,EAAE,IAAI,CAAC,aAAa,KAAK,MAAM;AACnC,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS;SAC1C;;AASO,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC7B;;QAGF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,CAAC;AAClD,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW;;;IAKlB,gBAAgB,GAAA;QACxB,IAAI,CAAC,gBAAgB,EAAE;;AAuCjB,IAAA,cAAc,CAAC,QAAgB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,KAAK,IAAI;;IA8CvD,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAC/B,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACrB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,MAAM,EAAQ,CAAA,CACrB;;;IAKJ,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC5B,QACE,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,EAAA,YAAA,EACH,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,kBACzD,IAAI,CAAC,iBAAiB,GAAG,MAAM,GAAG,OAAO,EACvD,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAErC,EAAA,IAAI,CAAC,kBAAkB,EAAE,CAChB;;AAET,aAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACxC,YAAA,QACE,iBACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAC,OAAO,EAAA,YAAA,EACH,IAAI,CAAC,WAAW,EAC5B,cAAc,EAAE,IAAI,CAAC,cAAc,EAAA,EAEnC,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,QAAQ,EAAQ,CAAA,CACjB;;AAGhB,QAAA,OAAO,IAAI;;IAiCL,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,UAAU,GAAQ;;;IAIhC,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAChF;;QAGF,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,GAAG,WAAW;;;AAIpB,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC7B,YAAA,OAAO,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,EAAE;;QAGpB,MAAM,MAAM,GAAG,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/C,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,OAAO,EAAE;;QAGX,IAAI,WAAW,GAAG,EAAE;QACpB,IAAI,UAAU,GAAG,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7B,YAAA,IAAI,QAAQ,KAAK,GAAG,EAAE;AACpB,gBAAA,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC;AACjC,gBAAA,UAAU,EAAE;;iBACP;gBACL,WAAW,IAAI,QAAQ;;;AAI3B,QAAA,OAAO,WAAW;;IAGZ,iBAAiB,GAAA;AACvB,QAAA,OAAO,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;;IAG9D,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAA,EACnC,IAAI,CAAC,WAAW,EAAE,EAElB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAE3E,IAAI,CAAC,cAAc,EAAE,CAClB,CACD;;;;;;;;;AAKb,IAAI,OAAO,GAAG,CAAC;;;ACvff,MAAM,QAAQ,GAAG,u3eAAu3e;;MCgC33e,KAAK,GAAA,MAAA;AANlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;AAeE;;;AAGG;AACqC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEhE;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAQ3D;;;AAGG;AAC8D,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;AAEhG;;AAEG;QAC+B,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAsBhF,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC;AAiGlC;;;AAGG;AACc,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,KAAiB,KAAI;YAC/C,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,OAAO,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO;AAC3D,SAAC;AAED;;AAEG;AACc,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAK;;AAEjC,SAAC;AA4CF;AAnJC,IAAA,cAAc,CAAC,SAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;;AAIpC,IAAA,mBAAmB,CAAC,KAAkB,EAAA;QACpC,IACG,KAAK,CAAC,MAA6B,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAC9D,KAAK,CAAC,MAA6B,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EACvD;AACA,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM;YAErC,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;;YAIxB,IAAI,CAAC,aAAa,EAAE;;;AAIxB;;;;;;AAMG;AAEH,IAAA,aAAa,CAAC,KAAoB,EAAA;QAChC,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1F,QAAA,IAAI,CAAC,UAAU;YAAE;;QAGjB,KAAK,CAAC,cAAc,EAAE;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAA2B;AAC3D,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAqB,UAAU,CAAC,CAAC,CAAC,MAAM,CACrF,CAAC,EAAsB,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAClE;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,YAAY,KAAK,EAAE;YAAE;QAEzB,IAAI,SAAS,GAAG,YAAY;AAC5B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC3D,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM;;AACzC,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;AAC/D,YAAA,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;;AAGhE,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBACtB,SAAS,CAAC,aAAa,EAAE;;YAEzB,SAAiB,CAAC,QAAQ,EAAE;;;AAIlC;;AAEG;AAEH,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;;AAI9B,IAAA,MAAM,QAAQ,GAAA;;AACZ,QAAA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,OAAO,CAAC;QACxD,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,KAAK,EAAE;;;IAIT,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,OAAO;AAC7B,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC;;IAmBK,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE;QAC5B,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC;;QAG1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAA2B;AAC3D,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;AAEnB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAqB,UAAU,CAAC,CAAC,CAAC,MAAM,CACrF,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC3C;AAED,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAChD,QAAA,IAAI,UAAU;YAAE,OAAO,EAAE;AAEzB,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE;;IAGvC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,eAAA,EAAgB,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAAA,EAChD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAC/B,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,aAAa,EAAA,YAAA,EACN,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EACjE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,CAAA,EACF,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAA,EAC9C,CAAO,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAQ,CACnB,CACJ,CACD;;;;;;;;;;;;"}
@@ -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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/checkgroup?tab=designer).\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 @State() numberOfChildren: number = 0\n\n componentWillLoad() {\n this.isIndeterminate = this.el.hasAttribute('indeterminate')\n\n this.updateGroupState()\n }\n\n componentDidLoad() {\n this.setNumberOfChildren()\n this.monitorSlotChanges()\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 private setNumberOfChildren() {\n const slotElement = this.el.shadowRoot?.querySelector('slot')\n const checkboxList = slotElement?.assignedElements().filter((el) => el.tagName.toLowerCase() === 'br-checkbox')\n\n const checkboxFather = this.el.shadowRoot?.querySelector('br-checkbox')\n\n if (checkboxList.length !== 0 && checkboxFather !== null) {\n checkboxFather.setNumberOfChildren(checkboxList.length)\n }\n }\n\n private monitorSlotChanges() {\n const slotElement = this.el.shadowRoot?.querySelector('slot')\n\n slotElement?.addEventListener('slotchange', () => {\n this.setNumberOfChildren()\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 is-father\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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/checkgroup?tab=designer).\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 @State() numberOfChildren: number = 0\n\n componentWillLoad() {\n this.isIndeterminate = this.el.hasAttribute('indeterminate')\n\n this.updateGroupState()\n }\n\n componentDidLoad() {\n this.setNumberOfChildren()\n this.monitorSlotChanges()\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 private setNumberOfChildren() {\n const slotElement = this.el.shadowRoot?.querySelector('slot')\n const checkboxList = slotElement?.assignedElements().filter((el) => el.tagName.toLowerCase() === 'br-checkbox')\n\n const checkboxFather = this.el.shadowRoot?.querySelector('br-checkbox')\n\n if (checkboxList.length !== 0 && checkboxFather !== null) {\n checkboxFather.setNumberOfChildren(checkboxList.length)\n }\n }\n\n private monitorSlotChanges() {\n const slotElement = this.el.shadowRoot?.querySelector('slot')\n\n slotElement?.addEventListener('slotchange', () => {\n this.setNumberOfChildren()\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 is-father\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 +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(rgb(var(--color-rgb), var(--hover)), rgb(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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/collapse?tab=designer).\n *\n * @slot default - Slot para o conteúdo expansível exibido ao abrir o collapse.\n * @slot trigger - Slot para personalizar o acionador (texto, ícones, 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 do componente. Um valor é gerado automaticamente quando não informado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Controla se o collapse está aberto.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Identifica o grupo de accordion; quando informado, mantém apenas um item aberto por vez no mesmo grupo.\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS do ícone exibido quando o conteúdo está oculto.\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS do ícone exibido quando o conteúdo está visível.\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone no acionador: 'left' ou 'right'.\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Emitido ao expandir, com o identificador e o grupo de accordion.\n */\n @Event({ bubbles: true, composed: true }) brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Emitido ao recolher, com o identificador e o grupo de accordion.\n */\n @Event({ bubbles: true, composed: true }) brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Fecha este collapse quando outro do mesmo grupo é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n handleOpen(event: CustomEvent<{ id: string; accordionGroup: string }>) {\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 * Ajusta o estado inicial do <details> para refletir o valor de open.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Remove o listener do <details> ao desmontar o componente.\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 * Mantém o estado do <details> alinhado com a prop open.\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 * Atualiza estado e emite eventos quando o <details> abre ou fecha.\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 // Fecha outros do mesmo grupo de forma determinística antes de emitir evento\n this.closeOthersInGroup()\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 * Abre o collapse programaticamente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n // Fecha outros do mesmo grupo antes de emitir evento\n this.closeOthersInGroup()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Fecha o collapse programaticamente.\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 * Fecha outros collapses abertos no mesmo accordion, buscando apenas no pai imediato.\n */\n private closeOthersInGroup() {\n if (this.accordionGroup == null || this.accordionGroup === '') return\n const parent = this.el.parentElement\n if (!parent) return\n const others = Array.from(parent.querySelectorAll('br-collapse')) as HTMLBrCollapseElement[]\n others\n .filter(\n (c) => c !== this.el && c.getAttribute('accordion-group') === this.accordionGroup && c.hasAttribute('open')\n )\n .forEach((c) => {\n // seta prop open=false diretamente para evitar múltiplas emissões desnecessárias\n c.open = false\n const details = c.shadowRoot?.querySelector('details')\n if (details) details.open = false\n })\n }\n\n /**\n * Seleciona o ícone conforme o estado atual.\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o <details> com acionador e conteúdo expansível.\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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot para os itens da lista.\n * @slot header - Slot para ações ou conteúdo do cabeçalho da lista.\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 // adicionar role=\"listitem\" para os itens dentro do slot\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\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || 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 role=\"list\">\n <div class={this.getCssClassMap()} 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
+ {"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(rgb(var(--color-rgb), var(--hover)), rgb(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 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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/collapse?tab=designer).\n *\n * @slot default - Slot para o conteúdo expansível exibido ao abrir o collapse.\n * @slot trigger - Slot para personalizar o acionador (texto, ícones, 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 do componente. Um valor é gerado automaticamente quando não informado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('clp')\n\n /**\n * Controla se o collapse está aberto.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false\n\n /**\n * Identifica o grupo de accordion; quando informado, mantém apenas um item aberto por vez no mesmo grupo.\n */\n @Prop() accordionGroup?: string = null\n\n /**\n * Classe CSS do ícone exibido quando o conteúdo está oculto.\n */\n @Prop() iconToShow: string = 'fa6-solid:chevron-down'\n\n /**\n * Classe CSS do ícone exibido quando o conteúdo está visível.\n */\n @Prop() iconToHide: string = 'fa6-solid:chevron-up'\n\n /**\n * Define a posição do ícone no acionador: 'left' ou 'right'.\n */\n @Prop() iconPosition: 'left' | 'right' = 'right'\n\n /**\n * Emitido ao expandir, com o identificador e o grupo de accordion.\n */\n @Event({ bubbles: true, composed: true }) brDidOpen: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Emitido ao recolher, com o identificador e o grupo de accordion.\n */\n @Event({ bubbles: true, composed: true }) brDidClose: EventEmitter<{ id: string; accordionGroup: string }>\n\n /**\n * Fecha este collapse quando outro do mesmo grupo é aberto.\n */\n @Listen('brDidOpen', { target: 'document' })\n handleOpen(event: CustomEvent<{ id: string; accordionGroup: string }>) {\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 * Ajusta o estado inicial do <details> para refletir o valor de open.\n */\n componentWillLoad() {\n this.syncDetailsWithOpen()\n }\n\n /**\n * Remove o listener do <details> ao desmontar o componente.\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 * Mantém o estado do <details> alinhado com a prop open.\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 * Atualiza estado e emite eventos quando o <details> abre ou fecha.\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 // Fecha outros do mesmo grupo de forma determinística antes de emitir evento\n this.closeOthersInGroup()\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 * Abre o collapse programaticamente.\n */\n @Method()\n async openCollapse() {\n this.open = true\n this.syncDetailsWithOpen()\n // Fecha outros do mesmo grupo antes de emitir evento\n this.closeOthersInGroup()\n this.brDidOpen.emit({ id: this.customId, accordionGroup: this.accordionGroup })\n }\n\n /**\n * Fecha o collapse programaticamente.\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 * Fecha outros collapses abertos no mesmo accordion, buscando apenas no pai imediato.\n */\n private closeOthersInGroup() {\n if (this.accordionGroup == null || this.accordionGroup === '') return\n const parent = this.el.parentElement\n if (!parent) return\n const others = Array.from(parent.querySelectorAll('br-collapse')) as HTMLBrCollapseElement[]\n others\n .filter(\n (c) => c !== this.el && c.getAttribute('accordion-group') === this.accordionGroup && c.hasAttribute('open')\n )\n .forEach((c) => {\n // seta prop open=false diretamente para evitar múltiplas emissões desnecessárias\n c.open = false\n const details = c.shadowRoot?.querySelector('details')\n if (details) details.open = false\n })\n }\n\n /**\n * Seleciona o ícone conforme o estado atual.\n */\n private renderIcon() {\n return <br-icon icon-name={this.open ? this.iconToHide : this.iconToShow}></br-icon>\n }\n\n /**\n * Renderiza o <details> com acionador e conteúdo expansível.\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 * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/list?tab=designer).\n *\n * @slot default - Slot para os itens da lista.\n * @slot header - Slot para ações ou conteúdo do cabeçalho da lista.\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 // adicionar role=\"listitem\" para os itens dentro do slot\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\n private readonly renderHeader = () => {\n if (this.header?.length > 0 || 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 role=\"list\">\n <div class={this.getCssClassMap()} 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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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"br-crumb.entry.esm.js","sources":["../../packages/webcomponents/src/components/breadcrumb/crumb/crumb.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/breadcrumb?tab=designer).\n */\n@Component({\n tag: 'br-crumb',\n shadow: true,\n})\nexport class Crumb {\n /**\n * Rótulo (texto) do crumb.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no crumb.\n */\n @Prop({ reflect: true }) readonly url?: string\n\n /**\n * Define o alvo do link quando `url` está presente. (ex: _blank, _self).\n */\n @Prop({ reflect: true }) readonly target?: string\n\n /**\n * Define se o crumb é o item inicial (Home).\n */\n @Prop() readonly home: boolean = false\n\n /**\n * Define se o crumb é a página atual ativa no breadcrumb.\n */\n @Prop() readonly active: boolean = false\n\n /**\n * Evento disparado quando as propriedades do crumb mudam.\n * O componente pai (br-breadcrumb) escuta este evento para se atualizar.\n */\n @Event() brCrumbPropsChange: EventEmitter<void>\n\n @Watch('label')\n @Watch('url')\n @Watch('target')\n @Watch('home')\n @Watch('active')\n handlePropsChange() {\n this.brCrumbPropsChange.emit()\n }\n\n render() {\n return (\n <Host style={{ display: 'none' }}>\n <slot></slot>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;MAWa,KAAK,GAAA,MAAA;AAJlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAoBE;;AAEG;AACc,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AAEtC;;AAEG;AACc,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AAwBzC;IAXC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;;IAGhC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,EAC9B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;;"}