@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-divider.entry.esm.js","sources":["../../packages/webcomponents/src/components/divider/divider.scss?tag=br-divider&encapsulation=shadow","../../packages/webcomponents/src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n\n &[orientation=\"vertical\"] {\n display: flex;\n height: 100%;\n }\n\n .br-divider {\n align-items: center;\n background-color: transparent;\n border: none;\n display: flex;\n justify-content: space-between;\n margin: var(--divider-margin-top, 20px) var(--divider-margin-right, 0) var(--divider-margin-bottom, 20px)\n var(--divider-margin-left, 0);\n\n &::before,\n &::after {\n content: \"\";\n flex: 1;\n border-top: var(--divider-size, 1px) solid var(--border-color, black);\n }\n\n &.dashed {\n border-top: none;\n background: none;\n\n &::before,\n &::after {\n border-top: var(--divider-size, 1px) dashed var(--border-color);\n }\n }\n\n &.dashed.vertical {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n }\n }\n\n &.vertical {\n flex-direction: column;\n height: 100%;\n width: auto;\n margin: var(--divider-margin-top, 0) var(--divider-margin-right, 10px) var(--divider-margin-bottom, 0)\n var(--divider-margin-left, 10px);\n align-self: stretch;\n border-right-width: var(--divider-size);\n border-top-width: 0;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) solid var(--border-color, black);\n border-top: none;\n margin: 0;\n }\n }\n\n &.small {\n --divider-size: var(--surface-width-sm);\n }\n\n &.medium {\n --divider-size: var(--surface-width-md);\n }\n\n &.large {\n --divider-size: var(--surface-width-lg);\n }\n\n &.divider-start {\n justify-content: flex-start;\n\n &::before {\n flex: 0 0 0px;\n margin-right: var(--spacing-scale-base);\n }\n }\n\n &.divider-center {\n justify-content: center;\n }\n\n &.divider-end {\n justify-content: flex-end;\n\n &::after {\n flex: 0 0 0px;\n margin-left: var(--spacing-scale-base);\n }\n }\n\n &.dark-mode {\n --border-color: var(--pure-0);\n }\n\n .divider-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::after {\n margin-left: var(--spacing-scale-base);\n }\n }\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\n\n/**\n * ## 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/divider?tab=designer).\n *\n * @slot default - Slot opcional para conteúdo dentro do divisor (texto, ícones ou elementos personalizados).\n */\n@Component({\n tag: 'br-divider',\n styleUrl: 'divider.scss',\n shadow: true,\n})\nexport class Divider {\n @Element() el: HTMLBrDividerElement\n\n /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Orientação do divisor.Em modo vertical, posicione dentro de um container com `display: flex`.\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Espessura visual do divisor.\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Estilo de borda do divisor.\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Ativa variante de alto contraste para fundos escuros.\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não definida, usa a cor padrão do tema.\n */\n @Prop({ reflect: true }) color: string = ''\n\n /**\n * Alinhamento do conteúdo quando há slot interno.\n */\n @Prop() align: DividerAlign\n\n /**\n * Faz o divisor ocupar toda a largura do container, compensando paddings laterais.\n */\n @Prop() bleed: boolean = false\n\n /**\n * Margin top em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginTop: number = null\n\n /**\n * Margin bottom em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginBottom: number = null\n\n /**\n * Margin left em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginLeft: number = null\n\n /**\n * Margin right em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginRight: number = null\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Watcher para as propriedades de margin.\n * Atualiza as propriedades CSS customizáveis do elemento para refletir os margins definidos.\n */\n @Watch('marginTop')\n @Watch('marginBottom')\n @Watch('marginLeft')\n @Watch('marginRight')\n updateMargins() {\n if (this.marginTop !== null) {\n this.el.style.setProperty('--divider-margin-top', `${this.marginTop}px`)\n }\n if (this.marginBottom !== null) {\n this.el.style.setProperty('--divider-margin-bottom', `${this.marginBottom}px`)\n }\n if (this.marginLeft !== null) {\n this.el.style.setProperty('--divider-margin-left', `${this.marginLeft}px`)\n }\n if (this.marginRight !== null) {\n this.el.style.setProperty('--divider-margin-right', `${this.marginRight}px`)\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setBleed()\n this.updateColor()\n this.updateMargins()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n * IMPORTANTE: Preserva as variáveis CSS customizadas de margin.\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider') as HTMLElement | null\n\n if (rootElement !== null) {\n rootElement.style.setProperty('margin-left', `-${paddingLeft}px`)\n rootElement.style.setProperty('margin-right', `-${paddingRight}px`)\n }\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\n <div\n class={this.getCssClassMap()}\n role=\"separator\"\n aria-orientation={this.orientation}\n aria-labelledby={this.customId}\n >\n <span id={this.customId}>\n <slot></slot>\n </span>\n </div>\n )\n }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-divider.entry.esm.js","sources":["../../packages/webcomponents/src/components/divider/divider.scss?tag=br-divider&encapsulation=shadow","../../packages/webcomponents/src/components/divider/divider.tsx"],"sourcesContent":[":host {\n display: block;\n\n &[orientation=\"vertical\"] {\n display: flex;\n height: 100%;\n }\n\n .br-divider {\n align-items: center;\n background-color: transparent;\n border: none;\n display: flex;\n justify-content: space-between;\n margin: var(--divider-margin-top, 20px) var(--divider-margin-right, 0) var(--divider-margin-bottom, 20px)\n var(--divider-margin-left, 0);\n\n &::before,\n &::after {\n content: \"\";\n flex: 1;\n border-top: var(--divider-size, 1px) solid var(--border-color, black);\n }\n\n &.dashed {\n border-top: none;\n background: none;\n\n &::before,\n &::after {\n border-top: var(--divider-size, 1px) dashed var(--border-color);\n }\n }\n\n &.dashed.vertical {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) dashed var(--border-color);\n border-top: none;\n }\n }\n\n &.vertical {\n flex-direction: column;\n height: 100%;\n width: auto;\n margin: var(--divider-margin-top, 0) var(--divider-margin-right, 10px) var(--divider-margin-bottom, 0)\n var(--divider-margin-left, 10px);\n align-self: stretch;\n border-right-width: var(--divider-size);\n border-top-width: 0;\n\n &::before,\n &::after {\n border-right: var(--divider-size, 1px) solid var(--border-color, black);\n border-top: none;\n margin: 0;\n }\n }\n\n &.small {\n --divider-size: var(--surface-width-sm);\n }\n\n &.medium {\n --divider-size: var(--surface-width-md);\n }\n\n &.large {\n --divider-size: var(--surface-width-lg);\n }\n\n &.divider-start {\n justify-content: flex-start;\n\n &::before {\n flex: 0 0 0px;\n margin-right: var(--spacing-scale-base);\n }\n }\n\n &.divider-center {\n justify-content: center;\n }\n\n &.divider-end {\n justify-content: flex-end;\n\n &::after {\n flex: 0 0 0px;\n margin-left: var(--spacing-scale-base);\n }\n }\n\n &.dark-mode {\n --border-color: var(--pure-0);\n }\n\n .divider-start::after,\n .divider-center::before,\n .divider-center::after,\n .divider-end::before {\n margin: 0 var(--spacing-scale-base);\n }\n\n .divider-start::before {\n margin-right: var(--spacing-scale-base);\n }\n\n .divider-end::after {\n margin-left: var(--spacing-scale-base);\n }\n }\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\n\ntype DividerOrientation = 'horizontal' | 'vertical'\ntype DividerThickness = 'small' | 'medium' | 'large'\ntype DividerBorderStyle = 'dashed' | 'solid'\ntype DividerAlign = 'start' | 'center' | 'end'\n\n/**\n * ## 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/divider?tab=designer).\n *\n * @slot default - Slot opcional para conteúdo dentro do divisor (texto, ícones ou elementos personalizados).\n */\n@Component({\n tag: 'br-divider',\n styleUrl: 'divider.scss',\n shadow: true,\n})\nexport class Divider {\n @Element() el: HTMLBrDividerElement\n\n /**\n * ID personalizado para o elemento, útil para acessibilidade e identificação única.\n * Se não for fornecido, um ID único será gerado automaticamente.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Orientação do divisor.Em modo vertical, posicione dentro de um container com `display: flex`.\n */\n @Prop({ reflect: true }) orientation: DividerOrientation = 'horizontal'\n\n /**\n * Espessura visual do divisor.\n */\n @Prop({ reflect: true }) thickness: DividerThickness = 'small'\n\n /**\n * Estilo de borda do divisor.\n */\n @Prop({ reflect: true }) borderStyle: DividerBorderStyle = 'solid'\n\n /**\n * Ativa variante de alto contraste para fundos escuros.\n */\n @Prop({ reflect: true }) isDarkMode: boolean = false\n\n /**\n * Cor do divisor.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não definida, usa a cor padrão do tema.\n */\n @Prop({ reflect: true }) color: string = ''\n\n /**\n * Alinhamento do conteúdo quando há slot interno.\n */\n @Prop() align: DividerAlign\n\n /**\n * Faz o divisor ocupar toda a largura do container, compensando paddings laterais.\n */\n @Prop() bleed: boolean = false\n\n /**\n * Margin top em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginTop: number = null\n\n /**\n * Margin bottom em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginBottom: number = null\n\n /**\n * Margin left em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginLeft: number = null\n\n /**\n * Margin right em pixels; se omitido, aplica padrão interno.\n */\n @Prop() marginRight: number = null\n\n /**\n * Watcher para a cor do divisor.\n * Atualiza a propriedade CSS '--border-color' do elemento para refletir a cor definida.\n * Isso permite que o divisor use cores personalizadas sem precisar de estilos adicionais.\n */\n @Watch('color')\n updateColor() {\n this.el.style.setProperty('--border-color', this.color)\n }\n\n /**\n * Watcher para as propriedades de margin.\n * Atualiza as propriedades CSS customizáveis do elemento para refletir os margins definidos.\n */\n @Watch('marginTop')\n @Watch('marginBottom')\n @Watch('marginLeft')\n @Watch('marginRight')\n updateMargins() {\n if (this.marginTop !== null) {\n this.el.style.setProperty('--divider-margin-top', `${this.marginTop}px`)\n }\n if (this.marginBottom !== null) {\n this.el.style.setProperty('--divider-margin-bottom', `${this.marginBottom}px`)\n }\n if (this.marginLeft !== null) {\n this.el.style.setProperty('--divider-margin-left', `${this.marginLeft}px`)\n }\n if (this.marginRight !== null) {\n this.el.style.setProperty('--divider-margin-right', `${this.marginRight}px`)\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.hasDefaultSlotContent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado após o componente ser renderizado no DOM.\n */\n componentDidLoad() {\n this.setBleed()\n this.updateColor()\n this.updateMargins()\n }\n\n /**\n * Ciclo de vida do componente.\n * Chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetBleed()\n }\n\n /**\n * Configura o divisor para sangrar (bleed) nas laterais.\n */\n private setBleed() {\n if (this.bleed) {\n this.applyMarginOnRootElement()\n window.addEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Remove o sangramento (bleed) do divisor.\n */\n private unsetBleed() {\n if (this.bleed) {\n window.removeEventListener('resize', this.applyMarginOnRootElement.bind(this))\n }\n }\n\n /**\n * Verifica se o divisor tem conteúdo no slot padrão.\n * @returns true se o divisor tiver conteúdo no slot padrão, false caso contrário.\n */\n private hasDefaultSlotContent(): boolean {\n return this.el.innerHTML.trim() !== ''\n }\n\n /**\n * Determina o paddingLeft e paddingRight do elemento pai do host.\n * @returns Um objeto contendo os valores de paddingLeft e paddingRight do elemento pai do host.\n */\n private getHostParentPadding() {\n const hostParent = this.el.parentElement\n if (hostParent !== null) {\n const style = getComputedStyle(hostParent)\n return { paddingLeft: parseFloat(style.paddingLeft), paddingRight: parseFloat(style.paddingRight) }\n }\n return { paddingLeft: 0, paddingRight: 0 }\n }\n\n /**\n * Aplica margens negativas no elemento raiz do divisor para compensar o padding do elemento pai.\n * Isso é necessário quando o divisor está configurado para sangrar (bleed).\n * IMPORTANTE: Preserva as variáveis CSS customizadas de margin.\n */\n private applyMarginOnRootElement() {\n const { paddingLeft, paddingRight } = this.getHostParentPadding()\n const rootElement = this.el.shadowRoot?.querySelector('.br-divider') as HTMLElement | null\n\n if (rootElement !== null) {\n rootElement.style.setProperty('margin-left', `-${paddingLeft}px`)\n rootElement.style.setProperty('margin-right', `-${paddingRight}px`)\n }\n }\n\n /**\n * Define as classes CSS que serão aplicadas ao divisor.\n * @returns Uma string contendo as classes CSS que serão aplicadas ao divisor.\n */\n private getCssClassMap() {\n return `br-divider divider-${this.align} ${this.orientation} ${this.borderStyle} ${this.thickness} ${this.isDarkMode ? 'dark-mode' : ''}`\n }\n\n /**\n * Renderiza o divisor quando há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderDefaultSlotDivider() {\n return (\n <div\n class={this.getCssClassMap()}\n role=\"separator\"\n aria-orientation={this.orientation}\n aria-labelledby={this.customId}\n >\n <span id={this.customId}>\n <slot></slot>\n </span>\n </div>\n )\n }\n\n /**\n * Renderiza o divisor quando não há conteúdo no slot padrão.\n * @returns JSX.Element\n */\n private renderStandardDivider() {\n return <hr class={this.getCssClassMap()} />\n }\n\n render() {\n return <Host>{this.hasDefaultSlotContent() ? this.renderDefaultSlotDivider() : this.renderStandardDivider()}</Host>\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-dropdown.br-select.entry.esm.js","sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx","../../packages/webcomponents/src/components/select/select.scss?tag=br-select&encapsulation=shadow","../../packages/webcomponents/src/components/select/select.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/partial/scss/base\";\n\n:host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n /* Garante que o conteúdo do dropdown fique acima do trigger/botões ao redor */\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-1);\n\n &:focus {\n @include focus;\n }\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n width: max-content;\n }\n}\n\n@include media-breakpoint-down(xs) {\n :host([is-open]) {\n #target {\n width: 100vw !important;\n max-width: 100vw !important;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a abertura do dropdown.\n * @slot target - Slot para o conteúdo exibido pelo dropdown.\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define o posicionamento do target (alvo) em relação ao trigger (acionador).\n */\n @Prop({ reflect: true }) placement:\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom'\n | 'top' = 'bottom-start'\n\n /**\n * Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\n * Quando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\n * Quando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.\n */\n @Prop({ reflect: true }) preventAutoDismiss: boolean = false\n\n /**\n * Define o z-index do elemento target (alvo) do dropdown.\n * Permite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\n * O valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).\n */\n @Prop() targetZIndex: string = 'var(--z-index-layer-1)'\n\n // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // FloatingUI Manager\n private floatingManager: FloatingUIManager\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\n\n // Handler para o evento brDidOpen de outros dropdowns\n private dropdownOpenHandler: EventListener\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ isOpen: boolean }>\n /**\n * Evento emitido quando o dropdown é aberto.\n * Este evento é usado para implementar o auto-dismiss de outros dropdowns.\n */\n @Event() brDidOpen: EventEmitter<{ id: string }>\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged(newValue: boolean) {\n if (newValue) {\n this.brDidOpen.emit({ id: this.customId })\n\n this.initializeDropdownItems()\n this.positionDropdown()\n } else {\n this.cleanupPositioning()\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ isOpen: newValue })\n }\n\n /**\n * Aplica o novo valor de z-index ao elemento target.\n */\n @Watch('targetZIndex')\n targetZIndexChanged() {\n this.updateTargetZIndex()\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n\n this.dropdownOpenHandler = this.onDropdownDidOpen.bind(this)\n document.addEventListener('brDidOpen', this.dropdownOpenHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n document.removeEventListener('brDidOpen', this.dropdownOpenHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.cleanupPositioning()\n this.clearDropdownItemListeners()\n }\n\n /**\n * Método que lida com o evento brDidOpen de outros dropdowns\n * Fecha este dropdown se não for o emissor do evento e preventAutoDismiss=false\n */\n private onDropdownDidOpen(event: Event) {\n if (this.preventAutoDismiss) {\n return\n }\n\n const customEvent = event as CustomEvent<{ id: string }>\n if (this.isOpen && customEvent.detail.id !== this.customId) {\n this.hide()\n }\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n this.updateTargetZIndex()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n this.positionDropdown()\n }\n }\n\n /**\n * Posiciona o dropdown usando Floating UI\n */\n private positionDropdown() {\n if (this.triggerElement == null || this.targetElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.targetElement,\n placement: this.placement,\n })\n\n this.floatingManager.start()\n }\n\n /**\n * Limpa o posicionamento do Floating UI\n */\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Atualiza o z-index do target conforme a propriedade targetZIndex\n */\n private updateTargetZIndex() {\n if (this.targetElement === null) {\n return\n }\n\n if (this.targetZIndex !== null && this.targetZIndex !== undefined) {\n this.targetElement.style.zIndex = this.targetZIndex\n }\n }\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement !== null) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen }\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot !== null) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n this.focusTrigger()\n }\n } else {\n this.focusTrigger()\n }\n }\n\n /**\n * Auxiliar para focar no elemento trigger\n */\n private focusTrigger() {\n if (typeof this.triggerElement !== 'undefined') {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen} placement={this.placement} prevent-auto-dismiss={this.preventAutoDismiss}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n >\n <slot name=\"trigger\"></slot>\n </div>\n\n <div id=\"target\" aria-hidden={this.isOpen ? 'false' : 'true'}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/select/select\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: inline-block;\n width: 100%;\n\n .br-select {\n max-width: none;\n }\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Method, 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/select?tab=designer).\n */\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\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: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = ''\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false\n\n /**\n * Define as opções disponíveis no componente de seleção.\n * Se uma string for fornecida, ela será convertida internamente para um array via `JSON.parse`. Caso o formato seja inválido, um erro será registrado e as opções serão definidas como um array vazio.\n * Exemplo de uso:\n * ```typescript\n * options='[{\"label\": \"Sim\", \"value\": \"1\"}, {\"label\": \"Não\", \"value\": \"0\"}]'\n * // ou\n * options=[{ label: \"Sim\", value: \"1\" }, { label: \"Não\", value: \"0\" }]\n * ```\n */\n @Prop({ reflect: true }) options:\n | string\n | {\n label: string\n value: string\n selected?: boolean\n }[] = []\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos'\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos'\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Exibe o rótulo e o controle em linha (ao lado), ao invés de empilhados.\n * Útil para casos contextuais como paginação.\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Largura do campo de entrada interno (por exemplo, '88px').\n * Quando definido, sobrescreve a largura padrão de 100% do input.\n */\n @Prop({ reflect: true }) inputWidth?: string\n\n /**\n * Desabilita a interação com o componente `br-select`.\n * Quando `true`, o input e as opções ficam desabilitados e não respondem a cliques ou teclas.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propaga para o input interno a remoção da borda quando desfocado.\n */\n @Prop({ reflect: true }) borderless: 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-select-${selectId++}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n\n // Opções filtradas de acordo com o termo de busca digitado.\n @State() filteredOptions: { label: string; value: string; selected?: boolean }[] = []\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = ''\n\n // Termo digitado no input (modo busca).\n @State() searchTerm: string = ''\n\n /** Valor selecionado (string para single, string[] para multiple) */\n @Prop({ reflect: false, mutable: true }) value?: string | string[]\n\n @State() selectedValue?: string | string[]\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false\n\n // Indica se o estado do checkbox \"Selecionar Todos\" está indeterminado (algumas, mas não todas, opções selecionadas).\n @State() isIndeterminate: boolean = false\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n * RENOMEADO PARA valueChange para compatibilidade com ngModel.\n */\n @Event({ bubbles: true, composed: true }) valueChange: EventEmitter\n\n /** Emite os dados da opção quando ela recebe foco/hover (antes da seleção). */\n @Event({ bubbles: true, composed: true }) optionHover: EventEmitter<{ label: string; value: string }>\n\n /** Dispara quando o dropdown é aberto. */\n @Event({ bubbles: true, composed: true }) opened: EventEmitter<void>\n\n /** Dispara quando o dropdown é fechado. */\n @Event({ bubbles: true, composed: true }) closed: EventEmitter<void>\n\n @Watch('options')\n synchronizeSelect() {\n try {\n let parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n if (typeof this.options === 'string') {\n try {\n const jsonData = JSON.parse(this.options)\n if (Array.isArray(jsonData)) {\n parsedOptions = jsonData\n } else {\n throw new Error('JSON inválido: deve ser um array')\n }\n } catch (error) {\n console.error('Erro ao converter options para JSON:', error.message)\n parsedOptions = []\n }\n } else if (Array.isArray(this.options)) {\n parsedOptions = this.options\n }\n\n // Sanitiza as opções (remove opções inválidas, etc.)\n this.parsedOptions = parsedOptions\n\n // Atualiza lista filtrada considerando o termo atual\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n\n // Atualiza o estado do componente\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.emitSelectedOptions()\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error)\n this.parsedOptions = []\n }\n }\n\n @Watch('value')\n syncValueFromOutside(newVal: string | string[]) {\n // Atualize parsedOptions a partir de newVal\n this.parsedOptions = this.parsedOptions.map((o) => ({\n ...o,\n selected: this.isMultiple ? Array.isArray(newVal) && newVal.includes(o.value) : newVal === o.value,\n }))\n this.selectedValue = newVal\n this.updateSelectedOptions() // mantém inputValue coeso\n this.updateSelectedAllState()\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen\n this.synchronizeSelect()\n }\n\n @Watch('isExpanded')\n handleExpandedChange(isExpanded: boolean) {\n if (isExpanded) {\n this.opened.emit()\n } else {\n this.closed.emit()\n }\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n /**\n * Fecha a lista suspensa (`dropdown`) do `br-select` quando o usuário clica fora do componente.\n * O listener global é adicionado no `componentDidLoad` e removido no `disconnectedCallback` para evitar vazamentos de memória.\n * Se a lista estiver aberta (`this.isExpanded`) e o clique ocorrer fora (`!this.el.contains(target)`), ela é fechada.\n * A reatividade do StencilJS garante a atualização automática da interface.\n * A arrow function (`=>`) mantém o contexto correto de `this` ao ser usada como callback.\n *\n * @param {MouseEvent} event O evento de clique.\n * @returns {void}\n */\n private readonly handleClickOutside = (event: MouseEvent) => {\n // Usa composedPath para considerar nós dentro de Shadow DOM como \"dentro\" do componente\n const path = (event.composedPath && event.composedPath()) || []\n const clickedInside = path.includes(this.el) || (event.target instanceof Node && this.el.contains(event.target))\n\n if (this.isExpanded && !clickedInside) {\n this.isExpanded = false\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('next')\n break\n case 'ArrowUp':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('previous')\n break\n case 'Escape':\n this.closeSelect()\n this.resetFocus()\n break\n case 'Enter':\n this.toggleOpen()\n break\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault()\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus()\n break\n case 'ArrowUp':\n this.focusItemInDirection('previous')\n break\n case 'ArrowDown':\n this.focusItemInDirection('next')\n break\n default:\n break\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n const option = this.filteredOptions[index]\n if (option !== undefined) {\n this.handleSelectionByValue(option.value)\n }\n } else if (event.key === 'Escape') {\n this.closeSelect()\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.toggleSelectAll()\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.closeSelect()\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLBrInputElement | null\n input?.focus()\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length\n if (this.isMultiple) itemCount += 1\n\n this.focusedIndex =\n direction === 'next' ? (this.focusedIndex + 1) % itemCount : (this.focusedIndex - 1 + itemCount) % itemCount\n\n this.focusItem(this.focusedIndex)\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item')\n if (items[index]) {\n const item = items[index] as HTMLElement\n item.focus()\n this.emitHoverFromOption(this.filteredOptions[index])\n }\n }\n\n private emitHoverFromOption(option?: { label: string; value: string }) {\n if (!option) return\n this.optionHover.emit({ label: option.label || option.value, value: option.value })\n }\n\n private openSelect() {\n this.isExpanded = true\n }\n\n private closeSelect() {\n this.isExpanded = false\n // Reinicializar o índice focado ao fechar o select\n this.focusedIndex = -1\n }\n\n private handleSelectionByValue(value: string) {\n const index = this.parsedOptions.findIndex((o) => o.value === value)\n if (index === -1) return\n\n if (this.isMultiple) {\n this.parsedOptions = this.parsedOptions.map((o, i) => (i === index ? { ...o, selected: !o.selected } : o))\n // Fecha o dropdown e limpa a busca para mostrar o resumo das seleções\n this.isExpanded = false\n this.isFocused = false\n this.searchTerm = ''\n } else {\n this.parsedOptions = this.parsedOptions.map((o, i) => ({\n ...o,\n selected: i === index,\n }))\n this.isExpanded = false\n // Se fechou, não estamos mais focados na busca.\n // Isso garante que o valor selecionado seja exibido em vez do termo de busca.\n this.isFocused = false\n this.searchTerm = ''\n }\n\n this.selectedValue = this.isMultiple ? this.parsedOptions.filter((o) => o.selected).map((o) => o.value) : value\n\n this.value = this.selectedValue\n this.valueChange.emit(this.selectedValue)\n\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n\n // Força a atualização da referência do array para garantir que o Stencil detecte a mudança\n this.filteredOptions = [...this.getFilteredOptions(this.searchTerm)]\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.selectedValue ?? []))\n } catch {}\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter((option) => option.selected))\n }\n\n private normalizeText(text: string): string {\n return (text || '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n }\n\n private getFilteredOptions(term: string) {\n if (!term) {\n return this.parsedOptions\n }\n\n const normalizedTerm = this.normalizeText(term)\n return this.parsedOptions.filter((option) => {\n const normalizedLabel = this.normalizeText(option.label || option.value)\n const normalizedValue = this.normalizeText(option.value)\n return normalizedLabel.includes(normalizedTerm) || normalizedValue.includes(normalizedTerm)\n })\n }\n\n private getStringValue(options: { label: string; value: string; selected?: boolean }[]) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : ''\n return `${firstSelected}${howManySelected}`\n } else {\n return firstSelected\n }\n }\n return ''\n }\n\n private emitSelectedOptions() {\n // A lógica de emissão do evento já está no handleSelection para o ngModel.\n // Esta função pode ser simplificada ou removida se a única finalidade era emitir para ngModel.\n // No entanto, se houver outros consumidores deste evento, você pode mantê-la.\n const selectedValues = this.parsedOptions.filter((option) => option.selected === true).map((option) => option.value) // É importante emitir o 'value' para o ngModel.\n\n // Já emitimos em handleSelection, mas se quiser ter certeza, pode emitir aqui também.\n // this.valueChange.emit(this.isMultiple ? selectedValues : selectedValues[0] ?? undefined);\n\n // Atualiza o valor do form associado\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.isMultiple ? selectedValues : (selectedValues[0] ?? null)))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n }\n\n private updateSelectedAllState() {\n const selectedCount = this.parsedOptions.filter((option) => option.selected).length\n const total = this.parsedOptions.length\n\n this.isAllSelected = total > 0 && selectedCount === total\n this.isIndeterminate = selectedCount > 0 && selectedCount < total\n }\n\n private toggleSelectAll() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: !this.isAllSelected }))\n this.parsedOptions = updatedOptions\n\n this.updateSelectedAllState()\n this.updateSelectedOptions()\n\n // Atualiza a prop 'value' e emite o evento para ngModel\n this.selectedValue = this.isMultiple\n ? this.parsedOptions.filter((o) => o.selected).map((o) => o.value)\n : this.parsedOptions.find((o) => o.selected)?.value\n this.value = this.selectedValue\n this.valueChange.emit(this.selectedValue)\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.selectedValue ?? []))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n }\n\n // Indica se o input de busca está focado.\n @State() isFocused: boolean = false\n\n private renderInput() {\n // Se estiver focado, mostramos EXATAMENTE o que está sendo digitado (searchTerm), mesmo que seja vazio.\n // Se não estiver focado, mostramos o termo de busca (se houver) ou o valor selecionado (inputValue).\n const displayValue = this.isFocused ? this.searchTerm : this.searchTerm || this.inputValue\n\n return (\n <br-input\n exportparts=\"label\"\n value={displayValue}\n label={this.label}\n isInline={this.isInline}\n controlWidth={this.inputWidth}\n borderless={this.borderless}\n placeholder={this.placeholder}\n actionLabel={this.isExpanded ? 'Recolher lista de opções' : 'Exibir lista de opções'}\n actionTabIndex={-1}\n readonly={false}\n disabled={this.disabled}\n onClick={() => {\n if (!this.disabled) this.toggleOpen()\n }}\n onInput={(event) => this.handleSearchInput(event)}\n onFocus={() => this.handleSearchFocus()}\n onBlur={(event) => this.handleSearchBlur(event)}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleKeydownOnInput(event)\n }}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon\n slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\"\n ></br-icon>\n </br-input>\n )\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div\n class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n aria-disabled={this.disabled}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleSelectAllKeyDown(event)\n }}\n onClick={() => {\n if (!this.disabled) this.toggleSelectAll()\n }}\n >\n <br-checkbox\n name={`checkbox-${this.customId}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n indeterminate={this.isIndeterminate}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.toggleSelectAll()\n }}\n ></br-checkbox>\n </div>\n )\n }\n\n private renderOptions() {\n if (this.filteredOptions.length === 0) {\n return (\n <div class=\"br-item empty\" role=\"option\" aria-selected=\"false\" tabindex={-1}>\n Nenhum resultado encontrado\n </div>\n )\n }\n\n return this.filteredOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`}\n key={`${option.label}-${this.customId}`}\n role=\"option\"\n tabindex={this.disabled ? -1 : this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n aria-disabled={this.disabled}\n data-value={option.value}\n onClick={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleKeydownOnItem(event, index)\n }}\n onMouseOver={() => this.emitHoverFromOption(option)}\n onPointerOver={() => this.emitHoverFromOption(option)}\n onFocus={() => this.emitHoverFromOption(option)}\n >\n {this.isMultiple ? (\n <br-checkbox\n name={`checkbox-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n />\n ) : (\n <br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n />\n )}\n </div>\n ))\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.customId}`\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n async toggleOpen() {\n this.isExpanded = !this.isExpanded\n }\n\n /**\n * Limpa todas as opções selecionadas.\n */\n @Method()\n async clear() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: false }))\n this.parsedOptions = updatedOptions\n\n const newValue = this.isMultiple ? [] : undefined\n this.selectedValue = newValue\n this.value = newValue\n\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.valueChange.emit(newValue)\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(newValue ?? (this.isMultiple ? [] : null)))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n }\n\n /**\n * Retorna o valor selecionado.\n * @returns {Promise<string | string[]>} O valor atual.\n */\n @Method()\n async getValue() {\n return this.value\n }\n\n /**\n * Define o valor do componente.\n * @param {string | string[]} newValue O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string | string[]) {\n this.value = newValue\n // O @Watch('value') cuidará da sincronização\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value ?? ''\n this.searchTerm = value\n this.filteredOptions = this.getFilteredOptions(value)\n this.isExpanded = true\n }\n\n private handleSearchFocus() {\n this.isFocused = true\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n }\n\n private handleSearchBlur(event: FocusEvent) {\n // Se o foco foi movido para dentro do componente (ex: clicou no checkbox/item),\n // não limpamos a busca para manter a lista filtrada estável e permitir o clique.\n const relatedTarget = event.relatedTarget as Node\n if (relatedTarget && (this.el.contains(relatedTarget) || this.el.shadowRoot?.contains(relatedTarget))) {\n return\n }\n\n this.isFocused = false\n // Ao sair do campo, volta a exibir o resumo das seleções\n this.searchTerm = ''\n this.filteredOptions = this.getFilteredOptions('')\n }\n\n render() {\n return (\n <div class={this.getCssClassMap()} id={this.getComputedId()} aria-disabled={this.disabled}>\n {this.renderInput()}\n\n {this.isExpanded && (\n <br-list\n tabindex={-1}\n onKeyDown={(event) => this.handleKeydownOnList(event)}\n style={this.inputWidth !== undefined ? { width: this.inputWidth } : undefined}\n >\n {this.isMultiple && this.renderSelectAllCheckbox()}\n {this.renderOptions()}\n </br-list>\n )}\n </div>\n )\n }\n}\n\nlet selectId = 0\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"br-dropdown.br-select.entry.esm.js","sources":["../../packages/webcomponents/src/components/dropdown/dropdown.scss?tag=br-dropdown&encapsulation=shadow","../../packages/webcomponents/src/components/dropdown/dropdown.tsx","../../packages/webcomponents/src/components/select/select.scss?tag=br-select&encapsulation=shadow","../../packages/webcomponents/src/components/select/select.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/partial/scss/base\";\n\n:host {\n display: block;\n position: relative;\n\n #trigger {\n display: inline-block;\n cursor: pointer;\n outline: none;\n }\n\n #trigger::slotted([slot=\"trigger\"]) {\n &:focus {\n @include focus;\n }\n }\n\n ::slotted([slot=\"target\"] *:focus) {\n @include focus;\n }\n\n #target {\n display: none;\n position: absolute;\n /* Garante que o conteúdo do dropdown fique acima do trigger/botões ao redor */\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-1);\n\n &:focus {\n @include focus;\n }\n }\n}\n\n:host([is-open]) {\n #target {\n display: block;\n width: max-content;\n }\n}\n\n@include media-breakpoint-down(xs) {\n :host([is-open]) {\n #target {\n width: 100vw !important;\n max-width: 100vw !important;\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, Watch } from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/dropdown?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a abertura do dropdown.\n * @slot target - Slot para o conteúdo exibido pelo dropdown.\n */\n@Component({\n tag: 'br-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Dropdown {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrDropdownElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Indica se o dropdown está aberto ou fechado.\n * Esta propriedade é refletida no DOM e pode ser alterada externamente.\n * O valor padrão é falso (fechado).\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define o posicionamento do target (alvo) em relação ao trigger (acionador).\n */\n @Prop({ reflect: true }) placement:\n | 'bottom-start'\n | 'bottom-end'\n | 'top-start'\n | 'top-end'\n | 'left'\n | 'right'\n | 'bottom'\n | 'top' = 'bottom-start'\n\n /**\n * Define se o dropdown deve permanecer aberto quando outro dropdown é aberto.\n * Quando definido como false (padrão), o dropdown será fechado automaticamente quando outro dropdown for aberto.\n * Quando definido como true, o dropdown permanecerá aberto mesmo quando outro dropdown for aberto.\n */\n @Prop({ reflect: true }) preventAutoDismiss: boolean = false\n\n /**\n * Define o z-index do elemento target (alvo) do dropdown.\n * Permite customizar a ordem de sobreposição do painel dropdown em relação aos demais elementos da página.\n * O valor padrão utiliza a variável CSS do design system: var(--z-index-layer-1).\n */\n @Prop() targetZIndex: string = 'var(--z-index-layer-1)'\n\n // Elementos DOM privados\n private triggerElement: HTMLElement\n private targetElement: HTMLElement | null = null\n private dropdownItems: HTMLElement[] = []\n private dropdownLinks: HTMLElement[] = []\n private focusableElement: HTMLElement | null | undefined = null\n\n // FloatingUI Manager\n private floatingManager: FloatingUIManager\n\n // Event handlers\n private clickHandler: (event: MouseEvent) => void\n private triggerKeydownHandler: (event: KeyboardEvent) => void\n private targetKeydownHandler: (event: KeyboardEvent) => void\n\n // Handler para o evento brDidOpen de outros dropdowns\n private dropdownOpenHandler: EventListener\n\n /**\n * Evento emitido quando o estado do dropdown muda.\n */\n @Event() brDropdownChange: EventEmitter<{ isOpen: boolean }>\n /**\n * Evento emitido quando o dropdown é aberto.\n * Este evento é usado para implementar o auto-dismiss de outros dropdowns.\n */\n @Event() brDidOpen: EventEmitter<{ id: string }>\n\n /**\n * Método chamado sempre que a propriedade `isOpen` muda.\n * Emite um evento com o novo estado do dropdown.\n */\n @Watch('isOpen')\n isOpenChanged(newValue: boolean) {\n if (newValue) {\n this.brDidOpen.emit({ id: this.customId })\n\n this.initializeDropdownItems()\n this.positionDropdown()\n } else {\n this.cleanupPositioning()\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.focusOnTriggerElement()\n }\n }\n\n this.brDropdownChange.emit({ isOpen: newValue })\n }\n\n /**\n * Aplica o novo valor de z-index ao elemento target.\n */\n @Watch('targetZIndex')\n targetZIndexChanged() {\n this.updateTargetZIndex()\n }\n\n connectedCallback() {\n this.clickHandler = this.onClickOutside.bind(this)\n document.addEventListener('click', this.clickHandler)\n\n this.dropdownOpenHandler = this.onDropdownDidOpen.bind(this)\n document.addEventListener('brDidOpen', this.dropdownOpenHandler)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickHandler)\n document.removeEventListener('brDidOpen', this.dropdownOpenHandler)\n\n if (this.triggerElement !== null && this.triggerElement !== undefined) {\n this.triggerElement.removeEventListener('keydown', this.triggerKeydownHandler)\n }\n\n if (this.targetElement !== null && this.targetElement !== undefined) {\n this.targetElement.removeEventListener('keydown', this.targetKeydownHandler)\n }\n\n this.cleanupPositioning()\n this.clearDropdownItemListeners()\n }\n\n /**\n * Método que lida com o evento brDidOpen de outros dropdowns\n * Fecha este dropdown se não for o emissor do evento e preventAutoDismiss=false\n */\n private onDropdownDidOpen(event: Event) {\n if (this.preventAutoDismiss) {\n return\n }\n\n const customEvent = event as CustomEvent<{ id: string }>\n if (this.isOpen && customEvent.detail.id !== this.customId) {\n this.hide()\n }\n }\n\n private clearDropdownItemListeners() {\n this.dropdownItems.forEach((item) => {\n item.removeEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.removeEventListener('keydown', this.handleLinkKeydown)\n })\n\n this.dropdownItems = []\n this.dropdownLinks = []\n }\n\n componentDidLoad() {\n this.triggerElement = this.el.shadowRoot.querySelector('#trigger')\n this.targetElement = this.el.shadowRoot.querySelector('#target')\n\n this.setBehavior()\n this.updateTargetZIndex()\n\n if (this.isOpen) {\n this.initializeDropdownItems()\n this.positionDropdown()\n }\n }\n\n /**\n * Posiciona o dropdown usando Floating UI\n */\n private positionDropdown() {\n if (this.triggerElement == null || this.targetElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.targetElement,\n placement: this.placement,\n })\n\n this.floatingManager.start()\n }\n\n /**\n * Limpa o posicionamento do Floating UI\n */\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Atualiza o z-index do target conforme a propriedade targetZIndex\n */\n private updateTargetZIndex() {\n if (this.targetElement === null) {\n return\n }\n\n if (this.targetZIndex !== null && this.targetZIndex !== undefined) {\n this.targetElement.style.zIndex = this.targetZIndex\n }\n }\n\n /**\n * Configura os comportamentos de interação do dropdown\n */\n private setBehavior() {\n if (this.triggerElement === null) return\n\n this.triggerKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleTriggerBehavior(event)\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n } else if (event.key === 'ArrowDown' && this.isOpen) {\n event.preventDefault()\n this.initializeDropdownItems()\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n }\n }\n }\n\n this.targetKeydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n }\n }\n\n this.triggerElement.addEventListener('keydown', this.triggerKeydownHandler)\n if (this.targetElement !== null) {\n this.targetElement.addEventListener('keydown', this.targetKeydownHandler)\n }\n }\n\n /**\n * Lida com o comportamento no trigger\n */\n private handleTriggerBehavior(event: Event) {\n event.preventDefault()\n this.toggle(event)\n\n if (this.isOpen) {\n setTimeout(() => {\n this.initializeDropdownItems()\n }, 0)\n }\n }\n\n /**\n * Inicializa os itens do dropdown com comportamentos de navegação com teclado,\n * separando claramente entre elementos navegáveis por Tab e elementos navegáveis por setas\n */\n private initializeDropdownItems() {\n if (this.targetElement === null) return\n\n this.clearDropdownItemListeners()\n\n this.targetElement.setAttribute('tabindex', '-1')\n this.targetElement.focus()\n\n const targetSlot = this.el.shadowRoot.querySelector('slot[name=\"target\"]') as HTMLSlotElement\n if (targetSlot === null || targetSlot === undefined) return\n\n const assignedElements = targetSlot.assignedElements()\n if (assignedElements.length === 0) return\n\n const nonLinkSelector =\n 'button, br-button, input, br-input, br-item:not([href]), textarea, br-textarea, select, br-select, details, [tabindex]:not([tabindex=\"-1\"]):not(a[href])'\n\n const linkSelector = 'a[href], br-item[href]'\n\n assignedElements.forEach((element) => {\n if (element instanceof HTMLElement) {\n if (element.matches(linkSelector)) {\n this.dropdownLinks.push(element)\n } else if (element.matches(nonLinkSelector)) {\n this.dropdownItems.push(element)\n }\n }\n\n const linkChildren = Array.from(element.querySelectorAll(linkSelector)) as HTMLElement[]\n this.dropdownLinks = this.dropdownLinks.concat(linkChildren)\n\n const nonLinkChildren = Array.from(element.querySelectorAll(nonLinkSelector)) as HTMLElement[]\n this.dropdownItems = this.dropdownItems.concat(nonLinkChildren)\n })\n\n this.dropdownItems.forEach((item) => {\n item.addEventListener('keydown', this.handleItemKeydown)\n })\n\n this.dropdownLinks.forEach((link) => {\n link.addEventListener('keydown', this.handleLinkKeydown)\n })\n\n if (this.dropdownLinks.length > 0) {\n this.focusOnElement(this.dropdownLinks[0])\n this.focusableElement = this.dropdownLinks[0]\n } else if (this.dropdownItems.length > 0) {\n this.focusOnElement(this.dropdownItems[0])\n this.focusableElement = this.dropdownItems[0]\n }\n }\n\n /**\n * Handler específico para links\n */\n private handleLinkKeydown = (event: KeyboardEvent) => {\n const link = event.currentTarget as HTMLElement\n const key = event.key\n const linkIndex = this.dropdownLinks.indexOf(link)\n const lastLinkIndex = this.dropdownLinks.length - 1\n\n switch (key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n event.preventDefault()\n event.stopPropagation()\n break\n case 'Tab':\n event.preventDefault()\n\n if (!event.shiftKey) {\n if (linkIndex >= lastLinkIndex) {\n this.focusOnElement(this.dropdownLinks[0])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex + 1])\n }\n } else {\n if (linkIndex <= 0) {\n this.focusOnElement(this.dropdownLinks[lastLinkIndex])\n } else {\n this.focusOnElement(this.dropdownLinks[linkIndex - 1])\n }\n }\n break\n case 'Enter':\n case ' ':\n if (key === ' ' && link.tagName.toLowerCase() === 'a') {\n event.preventDefault()\n }\n setTimeout(() => this.hide(), 100)\n break\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n default:\n break\n }\n }\n\n /**\n * Handler para eventos de keydown nos itens não-link\n * Implementa navegação completa por setas, Tab não navega entre estes itens\n */\n private handleItemKeydown = (event: KeyboardEvent) => {\n const item = event.currentTarget as HTMLElement\n const key = event.key\n const currentIndex = this.dropdownItems.indexOf(item)\n const lastIndex = this.dropdownItems.length - 1\n\n switch (key) {\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex <= 0) {\n this.focusOnElement(this.dropdownItems[lastIndex])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex - 1])\n }\n break\n\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex >= lastIndex) {\n this.focusOnElement(this.dropdownItems[0])\n } else {\n this.focusOnElement(this.dropdownItems[currentIndex + 1])\n }\n break\n\n case 'Home':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[0])\n break\n\n case 'End':\n event.preventDefault()\n this.focusOnElement(this.dropdownItems[lastIndex])\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n item.click()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n case 'Tab':\n break\n\n case 'Escape':\n event.preventDefault()\n this.hide()\n this.focusOnTriggerElement()\n break\n\n default:\n break\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-dropdown': true,\n }\n }\n\n /**\n * Alterna o estado do dropdown entre aberto e fechado.\n */\n private readonly toggle = (event: Event) => {\n event.stopPropagation()\n this.isOpen = !this.isOpen\n }\n\n /**\n * Método que lida com cliques fora do dropdown.\n *\n * @param {MouseEvent} event - O evento de clique que ocorreu.\n */\n private onClickOutside(event: MouseEvent) {\n if (!this.isOpen) return\n\n const path = event.composedPath()\n\n if (\n this.triggerElement &&\n this.targetElement &&\n !path.includes(this.triggerElement) &&\n !path.includes(this.targetElement)\n ) {\n this.hide()\n }\n }\n\n /**\n * Abre o dropdown.\n * Define a propriedade `isOpen` como verdadeira e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async open(): Promise<{ isOpen: boolean }> {\n this.isOpen = true\n return { isOpen: this.isOpen }\n }\n\n /**\n * Esconde o dropdown.\n * Define a propriedade `isOpen` como falsa e retorna o novo estado.\n * Este método pode ser chamado externamente.\n */\n @Method()\n async hide(): Promise<{ isOpen: boolean }> {\n this.isOpen = false\n return { isOpen: this.isOpen }\n }\n\n /**\n * Foca em um elemento específico com suporte a componentes personalizados\n * @param targetElement Elemento a receber o foco\n */\n private focusOnElement(targetElement: HTMLElement) {\n if (targetElement && targetElement !== this.el) {\n if ('setFocus' in targetElement) {\n ;(targetElement as { setFocus: () => void }).setFocus()\n } else {\n targetElement.focus()\n }\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Foca no elemento interativo dentro do slot trigger\n * Esta função procura pelo elemento dentro do slot trigger e aplica o foco nele\n */\n private focusOnTriggerElement() {\n const triggerSlot = this.el.shadowRoot.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (triggerSlot !== null) {\n const slotElements = triggerSlot.assignedElements()\n if (slotElements.length > 0) {\n const firstElement = slotElements[0] as HTMLElement\n if ('setFocus' in firstElement) {\n ;(firstElement as { setFocus: () => void }).setFocus()\n } else {\n firstElement.focus()\n }\n firstElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n } else {\n this.focusTrigger()\n }\n } else {\n this.focusTrigger()\n }\n }\n\n /**\n * Auxiliar para focar no elemento trigger\n */\n private focusTrigger() {\n if (typeof this.triggerElement !== 'undefined') {\n this.triggerElement.focus()\n this.triggerElement.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n if (this.focusableElement !== null && this.focusableElement !== undefined) {\n this.focusableElement.focus()\n } else {\n this.focusOnTriggerElement()\n }\n }\n\n render() {\n return (\n <Host is-open={this.isOpen} placement={this.placement} prevent-auto-dismiss={this.preventAutoDismiss}>\n <div class={this.getCssClassMap()} id={this.customId}>\n <div\n id=\"trigger\"\n onClick={this.toggle}\n aria-controls=\"target\"\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n >\n <slot name=\"trigger\"></slot>\n </div>\n\n <div id=\"target\" aria-hidden={this.isOpen ? 'false' : 'true'}>\n <slot name=\"target\"></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n","@import \"~@govbr-ds/core/src/components/select/select\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: inline-block;\n width: 100%;\n\n .br-select {\n max-width: none;\n }\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\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 { CssClassMap } from '../../utils/interfaces'\n\ninterface SelectOptionItem {\n label: string\n value: string\n selected?: boolean\n sourceElement?: BrSelectOptionElement\n}\n\ninterface BrSelectOptionElement extends HTMLElement {\n label?: string\n value?: string\n selected?: boolean\n}\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/select?tab=designer).\n */\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\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: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n private slotElement?: HTMLSlotElement\n private isSyncingOptionElements = false\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = ''\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false\n\n /**\n * Controla se o dropdown permanece aberto após selecionar opções.\n * Quando `true`, permite seleção sequencial sem reabrir a lista.\n */\n @Prop({ reflect: true }) keepOpenOnSelect: boolean = false\n\n /**\n * Define as opções disponíveis no componente de seleção.\n * Se uma string for fornecida, ela será convertida internamente para um array via `JSON.parse`. Caso o formato seja inválido, um erro será registrado e as opções serão definidas como um array vazio.\n * Exemplo de uso:\n * ```typescript\n * options='[{\"label\": \"Sim\", \"value\": \"1\"}, {\"label\": \"Não\", \"value\": \"0\"}]'\n * // ou\n * options=[{ label: \"Sim\", value: \"1\" }, { label: \"Não\", value: \"0\" }]\n * ```\n */\n @Prop({ reflect: true }) options:\n | string\n | {\n label: string\n value: string\n selected?: boolean\n }[] = []\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos'\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos'\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Exibe o rótulo e o controle em linha (ao lado), ao invés de empilhados.\n * Útil para casos contextuais como paginação.\n */\n @Prop({ reflect: true }) isInline: boolean = false\n\n /**\n * Largura do campo de entrada interno (por exemplo, '88px').\n * Quando definido, sobrescreve a largura padrão de 100% do input.\n */\n @Prop({ reflect: true }) inputWidth?: string\n\n /**\n * Desabilita a interação com o componente `br-select`.\n * Quando `true`, o input e as opções ficam desabilitados e não respondem a cliques ou teclas.\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propaga para o input interno a remoção da borda quando desfocado.\n */\n @Prop({ reflect: true }) borderless: 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-select-${selectId++}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: SelectOptionItem[] = []\n\n // Opções filtradas de acordo com o termo de busca digitado.\n @State() filteredOptions: SelectOptionItem[] = []\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = ''\n\n // Termo digitado no input (modo busca).\n @State() searchTerm: string = ''\n\n /** Valor selecionado (string para single, string[] para multiple) */\n @Prop({ reflect: false, mutable: true }) value?: string | string[]\n\n @State() selectedValue?: string | string[]\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false\n\n // Indica se o estado do checkbox \"Selecionar Todos\" está indeterminado (algumas, mas não todas, opções selecionadas).\n @State() isIndeterminate: boolean = false\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1\n @State() optionElements: BrSelectOptionElement[] = []\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n * RENOMEADO PARA valueChange para compatibilidade com ngModel.\n */\n @Event({ bubbles: true, composed: true }) valueChange: EventEmitter\n\n /** Emite os dados da opção quando ela recebe foco/hover (antes da seleção). */\n @Event({ bubbles: true, composed: true }) optionHover: EventEmitter<{ label: string; value: string }>\n\n /** Dispara quando o dropdown é aberto. */\n @Event({ bubbles: true, composed: true }) opened: EventEmitter<void>\n\n /** Dispara quando o dropdown é fechado. */\n @Event({ bubbles: true, composed: true }) closed: EventEmitter<void>\n\n @Watch('options')\n synchronizeSelect() {\n try {\n const parsedOptions = this.getSourceOptions()\n\n // Sanitiza as opções (remove opções inválidas, etc.)\n this.parsedOptions = parsedOptions\n\n // Atualiza lista filtrada considerando o termo atual\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n\n // Atualiza o estado do componente\n this.updateSelectedValueFromParsedOptions()\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.emitSelectedOptions()\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error)\n this.parsedOptions = []\n }\n }\n\n @Watch('value')\n syncValueFromOutside(newVal: string | string[]) {\n // Atualize parsedOptions a partir de newVal\n this.parsedOptions = this.parsedOptions.map((o) => ({\n ...o,\n selected: this.isMultiple ? Array.isArray(newVal) && newVal.includes(o.value) : newVal === o.value,\n }))\n this.selectedValue = newVal\n this.updateSelectedOptions() // mantém inputValue coeso\n this.updateSelectedAllState()\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n this.syncOptionElementsFromParsedOptions()\n }\n\n @Listen('brSelectOptionPropsChange')\n handleSelectOptionPropsChange() {\n if (this.isSyncingOptionElements) return\n if (this.optionElements.length === 0) return\n this.synchronizeSelect()\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen\n this.optionElements = this.getOptionElements()\n this.synchronizeSelect()\n }\n\n @Watch('isExpanded')\n handleExpandedChange(isExpanded: boolean) {\n if (isExpanded) {\n this.opened.emit()\n } else {\n this.closed.emit()\n }\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n private registerOptionItems = () => {\n this.optionElements = this.getOptionElements()\n this.synchronizeSelect()\n }\n\n private getOptionElements(): BrSelectOptionElement[] {\n if (this.slotElement !== undefined && this.slotElement !== null) {\n const assignedElements = this.slotElement.assignedElements({ flatten: true }) as HTMLElement[]\n return assignedElements.filter(\n (el) => el.tagName?.toLowerCase() === 'br-select-option'\n ) as BrSelectOptionElement[]\n }\n\n return Array.from(this.el.querySelectorAll('br-select-option')) as BrSelectOptionElement[]\n }\n\n private getSourceOptions(): SelectOptionItem[] {\n if (this.optionElements.length > 0) {\n return this.optionElements\n .map((optionElement) => {\n const label = this.getOptionElementLabel(optionElement)\n const value = optionElement.value?.trim() || label\n\n return {\n label,\n value,\n selected: optionElement.selected === true,\n sourceElement: optionElement,\n }\n })\n .filter((option) => option.label !== '' || option.value !== '')\n }\n\n return this.getOptionsFromProp()\n }\n\n private getOptionsFromProp(): SelectOptionItem[] {\n let parsedOptions: SelectOptionItem[] = []\n\n if (typeof this.options === 'string') {\n try {\n const jsonData = JSON.parse(this.options)\n if (Array.isArray(jsonData)) {\n parsedOptions = jsonData\n } else {\n throw new Error('JSON inválido: deve ser um array')\n }\n } catch (error) {\n console.error('Erro ao converter options para JSON:', error.message)\n parsedOptions = []\n }\n } else if (Array.isArray(this.options)) {\n parsedOptions = this.options\n }\n\n return parsedOptions\n }\n\n private getOptionElementLabel(optionElement: BrSelectOptionElement): string {\n const propLabel = optionElement.label?.trim()\n if (propLabel !== undefined && propLabel !== '') return propLabel\n\n return optionElement.textContent?.trim() || ''\n }\n\n private updateSelectedValueFromParsedOptions() {\n const selectedValues = this.parsedOptions.filter((option) => option.selected === true).map((option) => option.value)\n const currentValue = typeof this.value === 'string' ? this.value : undefined\n this.selectedValue = this.isMultiple ? selectedValues : (selectedValues[0] ?? currentValue ?? undefined)\n this.value = this.selectedValue\n }\n\n private syncOptionElementsFromParsedOptions() {\n if (this.optionElements.length === 0) return\n\n this.isSyncingOptionElements = true\n\n this.parsedOptions.forEach((option) => {\n if (option.sourceElement !== undefined) {\n if (option.selected === true) {\n option.sourceElement.setAttribute('selected', '')\n } else {\n option.sourceElement.removeAttribute('selected')\n }\n }\n })\n\n this.isSyncingOptionElements = false\n }\n\n /**\n * Fecha a lista suspensa (`dropdown`) do `br-select` quando o usuário clica fora do componente.\n * O listener global é adicionado no `componentDidLoad` e removido no `disconnectedCallback` para evitar vazamentos de memória.\n * Se a lista estiver aberta (`this.isExpanded`) e o clique ocorrer fora (`!this.el.contains(target)`), ela é fechada.\n * A reatividade do StencilJS garante a atualização automática da interface.\n * A arrow function (`=>`) mantém o contexto correto de `this` ao ser usada como callback.\n *\n * @param {MouseEvent} event O evento de clique.\n * @returns {void}\n */\n private readonly handleClickOutside = (event: MouseEvent) => {\n // Usa composedPath para considerar nós dentro de Shadow DOM como \"dentro\" do componente\n const path = (event.composedPath && event.composedPath()) || []\n const clickedInside = path.includes(this.el) || (event.target instanceof Node && this.el.contains(event.target))\n\n if (this.isExpanded && !clickedInside) {\n this.isExpanded = false\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('next')\n break\n case 'ArrowUp':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('previous')\n break\n case 'Escape':\n this.closeSelect()\n this.resetFocus()\n break\n case 'Enter':\n this.toggleOpen()\n break\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault()\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus()\n break\n case 'ArrowUp':\n this.focusItemInDirection('previous')\n break\n case 'ArrowDown':\n this.focusItemInDirection('next')\n break\n default:\n break\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n const option = this.filteredOptions[index]\n if (option !== undefined) {\n this.handleSelectionByValue(option.value)\n }\n } else if (event.key === 'Escape') {\n this.closeSelect()\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.toggleSelectAll()\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.closeSelect()\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLBrInputElement | null\n input?.focus()\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length\n if (this.isMultiple) itemCount += 1\n\n this.focusedIndex =\n direction === 'next' ? (this.focusedIndex + 1) % itemCount : (this.focusedIndex - 1 + itemCount) % itemCount\n\n this.focusItem(this.focusedIndex)\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item')\n if (items[index]) {\n const item = items[index] as HTMLElement\n item.focus()\n this.emitHoverFromOption(this.filteredOptions[index])\n }\n }\n\n private emitHoverFromOption(option?: { label: string; value: string }) {\n if (!option) return\n this.optionHover.emit({ label: option.label || option.value, value: option.value })\n }\n\n private openSelect() {\n this.isExpanded = true\n }\n\n private closeSelect() {\n this.isExpanded = false\n // Reinicializar o índice focado ao fechar o select\n this.focusedIndex = -1\n }\n\n private handleSelectionByValue(value: string) {\n const index = this.parsedOptions.findIndex((o) => o.value === value)\n if (index === -1) return\n\n if (this.isMultiple) {\n this.parsedOptions = this.parsedOptions.map((o, i) => (i === index ? { ...o, selected: !o.selected } : o))\n this.isExpanded = this.keepOpenOnSelect\n this.isFocused = false\n this.searchTerm = ''\n } else {\n this.parsedOptions = this.parsedOptions.map((o, i) => ({\n ...o,\n selected: i === index,\n }))\n this.isExpanded = this.keepOpenOnSelect\n // Se fechou, não estamos mais focados na busca.\n // Isso garante que o valor selecionado seja exibido em vez do termo de busca.\n this.isFocused = false\n this.searchTerm = ''\n }\n\n this.updateSelectedValueFromParsedOptions()\n this.valueChange.emit(this.selectedValue)\n\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.syncOptionElementsFromParsedOptions()\n\n // Força a atualização da referência do array para garantir que o Stencil detecte a mudança\n this.filteredOptions = [...this.getFilteredOptions(this.searchTerm)]\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.selectedValue ?? []))\n } catch {}\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter((option) => option.selected))\n }\n\n private normalizeText(text: string): string {\n return (text || '')\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase()\n }\n\n private getFilteredOptions(term: string) {\n if (!term) {\n return this.parsedOptions\n }\n\n const normalizedTerm = this.normalizeText(term)\n return this.parsedOptions.filter((option) => {\n const normalizedLabel = this.normalizeText(option.label || option.value)\n const normalizedValue = this.normalizeText(option.value)\n return normalizedLabel.includes(normalizedTerm) || normalizedValue.includes(normalizedTerm)\n })\n }\n\n private getStringValue(options: SelectOptionItem[]) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : ''\n return `${firstSelected}${howManySelected}`\n } else {\n return firstSelected\n }\n }\n return ''\n }\n\n private emitSelectedOptions() {\n // A lógica de emissão do evento já está no handleSelection para o ngModel.\n // Esta função pode ser simplificada ou removida se a única finalidade era emitir para ngModel.\n // No entanto, se houver outros consumidores deste evento, você pode mantê-la.\n const selectedValues = this.parsedOptions.filter((option) => option.selected === true).map((option) => option.value) // É importante emitir o 'value' para o ngModel.\n\n // Já emitimos em handleSelection, mas se quiser ter certeza, pode emitir aqui também.\n // this.valueChange.emit(this.isMultiple ? selectedValues : selectedValues[0] ?? undefined);\n\n // Atualiza o valor do form associado\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.isMultiple ? selectedValues : (selectedValues[0] ?? null)))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n }\n\n private updateSelectedAllState() {\n const selectedCount = this.parsedOptions.filter((option) => option.selected).length\n const total = this.parsedOptions.length\n\n this.isAllSelected = total > 0 && selectedCount === total\n this.isIndeterminate = selectedCount > 0 && selectedCount < total\n }\n\n private toggleSelectAll() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: !this.isAllSelected }))\n this.parsedOptions = updatedOptions\n\n this.updateSelectedAllState()\n this.updateSelectedOptions()\n\n // Atualiza a prop 'value' e emite o evento para ngModel\n this.updateSelectedValueFromParsedOptions()\n this.valueChange.emit(this.selectedValue)\n this.syncOptionElementsFromParsedOptions()\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(this.selectedValue ?? []))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n }\n\n // Indica se o input de busca está focado.\n @State() isFocused: boolean = false\n\n private renderInput() {\n // Se estiver focado, mostramos EXATAMENTE o que está sendo digitado (searchTerm), mesmo que seja vazio.\n // Se não estiver focado, mostramos o termo de busca (se houver) ou o valor selecionado (inputValue).\n const displayValue = this.isFocused ? this.searchTerm : this.searchTerm || this.inputValue\n\n return (\n <br-input\n exportparts=\"label\"\n value={displayValue}\n label={this.label}\n isInline={this.isInline}\n controlWidth={this.inputWidth}\n borderless={this.borderless}\n placeholder={this.placeholder}\n actionLabel={this.isExpanded ? 'Recolher lista de opções' : 'Exibir lista de opções'}\n actionTabIndex={-1}\n readonly={false}\n disabled={this.disabled}\n onClick={() => {\n if (!this.disabled) this.toggleOpen()\n }}\n onInput={(event) => this.handleSearchInput(event)}\n onFocus={() => this.handleSearchFocus()}\n onBlur={(event) => this.handleSearchBlur(event)}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleKeydownOnInput(event)\n }}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon\n slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\"\n ></br-icon>\n </br-input>\n )\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div\n class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n aria-disabled={this.disabled}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleSelectAllKeyDown(event)\n }}\n onClick={() => {\n if (!this.disabled) this.toggleSelectAll()\n }}\n >\n <br-checkbox\n name={`checkbox-${this.customId}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n indeterminate={this.isIndeterminate}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.toggleSelectAll()\n }}\n ></br-checkbox>\n </div>\n )\n }\n\n private renderOptions() {\n if (this.filteredOptions.length === 0) {\n return (\n <div class=\"br-item empty\" role=\"option\" aria-selected=\"false\" tabindex={-1}>\n Nenhum resultado encontrado\n </div>\n )\n }\n\n return this.filteredOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''} ${this.disabled ? 'disabled' : ''}`}\n key={`${option.label}-${this.customId}`}\n role=\"option\"\n tabindex={this.disabled ? -1 : this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n aria-disabled={this.disabled}\n data-value={option.value}\n onClick={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n onKeyDown={(event) => {\n if (!this.disabled) this.handleKeydownOnItem(event, index)\n }}\n onMouseOver={() => this.emitHoverFromOption(option)}\n onPointerOver={() => this.emitHoverFromOption(option)}\n onFocus={() => this.emitHoverFromOption(option)}\n >\n {this.isMultiple ? (\n <br-checkbox\n name={`checkbox-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n />\n ) : (\n <br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n onCheckedChange={() => {\n if (!this.disabled) this.handleSelectionByValue(option.value)\n }}\n />\n )}\n </div>\n ))\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.customId}`\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n toggleOpen(): Promise<void> {\n this.isExpanded = !this.isExpanded\n return Promise.resolve()\n }\n\n /**\n * Limpa todas as opções selecionadas.\n */\n @Method()\n clear(): Promise<void> {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: false }))\n this.parsedOptions = updatedOptions\n\n const newValue = this.isMultiple ? [] : undefined\n this.selectedValue = newValue\n this.value = newValue\n\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.valueChange.emit(newValue)\n this.syncOptionElementsFromParsedOptions()\n\n try {\n this.elementInternals.setFormValue(JSON.stringify(newValue ?? (this.isMultiple ? [] : null)))\n } catch {\n // Ignora erro em testes onde setFormValue não é implementado\n }\n\n return Promise.resolve()\n }\n\n /**\n * Retorna o valor selecionado.\n * @returns {Promise<string | string[]>} O valor atual.\n */\n @Method()\n getValue(): Promise<string | string[]> {\n return Promise.resolve(this.value)\n }\n\n /**\n * Define o valor do componente.\n * @param {string | string[]} newValue O novo valor a ser definido.\n */\n @Method()\n setValue(newValue: string | string[]): Promise<void> {\n this.value = newValue\n // O @Watch('value') cuidará da sincronização\n return Promise.resolve()\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value ?? ''\n this.searchTerm = value\n this.filteredOptions = this.getFilteredOptions(value)\n this.isExpanded = true\n }\n\n private handleSearchFocus() {\n this.isFocused = true\n this.filteredOptions = this.getFilteredOptions(this.searchTerm)\n }\n\n private handleSearchBlur(event: FocusEvent) {\n // Se o foco foi movido para dentro do componente (ex: clicou no checkbox/item),\n // não limpamos a busca para manter a lista filtrada estável e permitir o clique.\n const relatedTarget = event.relatedTarget as Node\n if (relatedTarget && (this.el.contains(relatedTarget) || this.el.shadowRoot?.contains(relatedTarget))) {\n return\n }\n\n this.isFocused = false\n // Ao sair do campo, volta a exibir o resumo das seleções\n this.searchTerm = ''\n this.filteredOptions = this.getFilteredOptions('')\n }\n\n render() {\n return (\n <Host>\n <div style={{ display: 'none' }} aria-hidden=\"true\">\n <slot\n ref={(el) => {\n this.slotElement = el as HTMLSlotElement\n }}\n onSlotchange={this.registerOptionItems}\n ></slot>\n </div>\n\n <div class={this.getCssClassMap()} id={this.getComputedId()} aria-disabled={this.disabled}>\n {this.renderInput()}\n\n {this.isExpanded && (\n <br-list\n tabindex={-1}\n onKeyDown={(event) => this.handleKeydownOnList(event)}\n style={this.inputWidth !== undefined ? { width: this.inputWidth } : undefined}\n >\n {this.isMultiple && this.renderSelectAllCheckbox()}\n {this.renderOptions()}\n </br-list>\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet selectId = 0\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-footer-category.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-category/footer-category.scss?tag=br-footer-category&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-category/footer-category.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n@media (width >= 992px) {\n .br-footer-category {\n padding-bottom: 48px;\n }\n}\n","import { Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para os itens da categoria no rodapé, utilizando br-footer-item.\n */\n@Component({\n tag: 'br-footer-category',\n styleUrl: 'footer-category.scss',\n shadow: true,\n})\nexport class FooterCategory {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterCategoryElement\n\n /**\n * Identificador único do componente; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Título da categoria exibido no cabeçalho da lista.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Indica se o layout atual corresponde ao breakpoint de desktop.\n */\n @State() isDesktop: boolean = false\n\n /**\n * Define o nome do grupo de accordion.\n */\n @State() accordionGroup: string = null\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n */\n private mediaQuery: MediaQueryList\n\n /**\n * Define um nome para o grupo de accordion.\n * O nome do grupo é definido com base no atributo `custom-id` do elemento pai.\n */\n private setAccordionGroup() {\n this.accordionGroup = `group-${this.el.parentElement.getAttribute('custom-id')}`\n }\n\n /**\n * Método que retorna as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-category': true,\n }\n }\n\n /**\n * Método que retorna as classes baseadas no tamanho da tela.\n */\n private getRootClassMap(): CssClassMap {\n return {\n 'col-2': this.isDesktop,\n col: !this.isDesktop,\n }\n }\n\n /**\n * Configura o media query usado para alternar entre desktop e mobile.\n */\n private setMedia() {\n this.mediaQuery = window.matchMedia('(min-width: 992px)')\n this.isDesktop = this.mediaQuery.matches\n this.mediaQuery.addEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentWillLoad() {\n this.setMedia()\n this.setAccordionGroup()\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n this.mediaQuery.removeEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Trata a mudança de media query.\n * @param event O evento de mudança de media query.\n */\n private handleMediaQueryChange = (event: MediaQueryListEvent) => {\n this.isDesktop = event.matches\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host class={this.getRootClassMap()}>\n <br-list\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"list\"\n hide-header-divider={this.isDesktop ? true : null}\n accordion={!this.isDesktop ? this.accordionGroup : null}\n >\n {this.label &&\n this.label.trim() !== '' &&\n (this.isDesktop ? (\n <br-item>\n <div class=\"content text-down-01 text-bold text-uppercase\">{this.label}</div>\n </br-item>\n ) : (\n <div slot=\"header\" class=\"content text-down-01 text-bold text-uppercase\">\n {this.label}\n </div>\n ))}\n <slot></slot>\n {!this.isDesktop && <br-divider></br-divider>}\n </br-list>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,g7YAAg7Y;;MCiB77Y,cAAc,GAAA,MAAA;AAL3B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;AAEG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAE3C;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAEnC;;AAEG;AACM,QAAA,IAAc,CAAA,cAAA,GAAW,IAAI;AA2DtC;;;AAGG;AACK,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,KAA0B,KAAI;AAC9D,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;AAChC,SAAC;AAiCF;AA1FC;;;AAGG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;;AAGlF;;AAEG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,oBAAoB,EAAE,IAAI;SAC3B;;AAGH;;AAEG;IACK,eAAe,GAAA;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;SACrB;;AAGH;;AAEG;IACK,QAAQ,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAGzE;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,iBAAiB,EAAE;;AAG1B;;AAEG;IACH,oBAAoB,GAAA;QAClB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAW5E;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAA,EACjC,CACE,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,MAAM,yBACU,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,EACjD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAA,EAEtD,IAAI,CAAC,KAAK;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;AACxB,aAAC,IAAI,CAAC,SAAS,IACb,CAAA,CAAA,SAAA,EAAA,IAAA,EACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,+CAA+C,EAAA,EAAE,IAAI,CAAC,KAAK,CAAO,CACrE,KAEV,CAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+CAA+C,EACrE,EAAA,IAAI,CAAC,KAAK,CACP,CACP,CAAC,EACJ,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACZ,CAAC,IAAI,CAAC,SAAS,IAAI,oEAAyB,CACrC,CACL;;;;;;;;"}
1
+ {"version":3,"file":"br-footer-category.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-category/footer-category.scss?tag=br-footer-category&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-category/footer-category.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n@media (width >= 992px) {\n .br-footer-category {\n padding-bottom: 48px;\n }\n}\n","import { Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para os itens da categoria no rodapé, utilizando br-footer-item.\n */\n@Component({\n tag: 'br-footer-category',\n styleUrl: 'footer-category.scss',\n shadow: true,\n})\nexport class FooterCategory {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterCategoryElement\n\n /**\n * Identificador único do componente; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Título da categoria exibido no cabeçalho da lista.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Indica se o layout atual corresponde ao breakpoint de desktop.\n */\n @State() isDesktop: boolean = false\n\n /**\n * Define o nome do grupo de accordion.\n */\n @State() accordionGroup: string = null\n\n /**\n * Define o media query para o componente.\n * O media query é usado para determinar se o componente deve ser exibido em um layout de desktop ou não.\n */\n private mediaQuery: MediaQueryList\n\n /**\n * Define um nome para o grupo de accordion.\n * O nome do grupo é definido com base no atributo `custom-id` do elemento pai.\n */\n private setAccordionGroup() {\n this.accordionGroup = `group-${this.el.parentElement.getAttribute('custom-id')}`\n }\n\n /**\n * Método que retorna as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-category': true,\n }\n }\n\n /**\n * Método que retorna as classes baseadas no tamanho da tela.\n */\n private getRootClassMap(): CssClassMap {\n return {\n 'col-2': this.isDesktop,\n col: !this.isDesktop,\n }\n }\n\n /**\n * Configura o media query usado para alternar entre desktop e mobile.\n */\n private setMedia() {\n this.mediaQuery = window.matchMedia('(min-width: 992px)')\n this.isDesktop = this.mediaQuery.matches\n this.mediaQuery.addEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado uma vez após o componente começar a ser renderizado no DOM.\n */\n componentWillLoad() {\n this.setMedia()\n this.setAccordionGroup()\n }\n\n /**\n * Método do ciclo de vida do componente, que é chamado quando o componente é removido do DOM.\n */\n disconnectedCallback() {\n this.mediaQuery.removeEventListener('change', this.handleMediaQueryChange)\n }\n\n /**\n * Trata a mudança de media query.\n * @param event O evento de mudança de media query.\n */\n private handleMediaQueryChange = (event: MediaQueryListEvent) => {\n this.isDesktop = event.matches\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host class={this.getRootClassMap()}>\n <br-list\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"list\"\n hide-header-divider={this.isDesktop ? true : null}\n accordion={!this.isDesktop ? this.accordionGroup : null}\n >\n {this.label &&\n this.label.trim() !== '' &&\n (this.isDesktop ? (\n <br-item>\n <div class=\"content text-down-01 text-bold text-uppercase\">{this.label}</div>\n </br-item>\n ) : (\n <div slot=\"header\" class=\"content text-down-01 text-bold text-uppercase\">\n {this.label}\n </div>\n ))}\n <slot></slot>\n {!this.isDesktop && <br-divider></br-divider>}\n </br-list>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,+1YAA+1Y;;MCiB52Y,cAAc,GAAA,MAAA;AAL3B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;AAEG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAE3C;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAEnC;;AAEG;AACM,QAAA,IAAc,CAAA,cAAA,GAAW,IAAI;AA2DtC;;;AAGG;AACK,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,KAA0B,KAAI;AAC9D,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;AAChC,SAAC;AAiCF;AA1FC;;;AAGG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;;AAGlF;;AAEG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,oBAAoB,EAAE,IAAI;SAC3B;;AAGH;;AAEG;IACK,eAAe,GAAA;QACrB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;AACvB,YAAA,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;SACrB;;AAGH;;AAEG;IACK,QAAQ,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;QACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAGzE;;AAEG;IACH,iBAAiB,GAAA;QACf,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,iBAAiB,EAAE;;AAG1B;;AAEG;IACH,oBAAoB,GAAA;QAClB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;;AAW5E;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,EAAA,EACjC,CACE,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,MAAM,yBACU,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,EACjD,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAA,EAEtD,IAAI,CAAC,KAAK;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;AACxB,aAAC,IAAI,CAAC,SAAS,IACb,CAAA,CAAA,SAAA,EAAA,IAAA,EACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,+CAA+C,EAAA,EAAE,IAAI,CAAC,KAAK,CAAO,CACrE,KAEV,CAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,+CAA+C,EACrE,EAAA,IAAI,CAAC,KAAK,CACP,CACP,CAAC,EACJ,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACZ,CAAC,IAAI,CAAC,SAAS,IAAI,oEAAyB,CACrC,CACL;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-footer-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-item/footer-item.scss?tag=br-footer-item&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-item/footer-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para o conteúdo do item no rodapé, incluindo texto ou componentes de roteamento para SPAs.\n */\n@Component({\n tag: 'br-footer-item',\n styleUrl: 'footer-item.scss',\n shadow: true,\n})\nexport class FooterItem {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterItemElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item.\n * Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Monta o objeto com as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-item': true,\n }\n }\n\n /**\n * Renderiza o componente\n * @returns JSX do componente\n */\n render() {\n return (\n <Host>\n <br-item id={this.customId} href={this.href} role=\"listitem\" class={this.getCssClassMap()}>\n <slot></slot>\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,+2YAA+2Y;;MCiBx3Y,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AA+BhF;AAvBC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;SACvB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EACvF,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;;"}
1
+ {"version":3,"file":"br-footer-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-item/footer-item.scss?tag=br-footer-item&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-item/footer-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para o conteúdo do item no rodapé, incluindo texto ou componentes de roteamento para SPAs.\n */\n@Component({\n tag: 'br-footer-item',\n styleUrl: 'footer-item.scss',\n shadow: true,\n})\nexport class FooterItem {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterItemElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item.\n * Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Monta o objeto com as classes CSS do componente\n * @returns Objeto com as classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-item': true,\n }\n }\n\n /**\n * Renderiza o componente\n * @returns JSX do componente\n */\n render() {\n return (\n <Host>\n <br-item id={this.customId} href={this.href} role=\"listitem\" class={this.getCssClassMap()}>\n <slot></slot>\n </br-item>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,8xYAA8xY;;MCiBvyY,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AA+BhF;AAvBC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;SACvB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EACvF,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-footer-legal.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-legal/footer-legal.scss?tag=br-footer-legal&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-legal/footer-legal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-info;\n\n:host {\n display: block;\n}\n\n.info {\n ::slotted(*) {\n font-size: var(--font-size-scale-down-01) !important;\n font-weight: 500 !important;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para informações legais no rodapé, como direitos autorais ou termos de uso.\n */\n@Component({\n tag: 'br-footer-legal',\n styleUrl: 'footer-legal.scss',\n shadow: true,\n})\nexport class FooterLegal {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterLegalElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-legal': true,\n info: true,\n 'text-down-01': true,\n 'text-medium': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,cAAc,GAAG,y+YAAy+Y;;MCiBn/Y,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAwBhF;IAtBS,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;"}
1
+ {"version":3,"file":"br-footer-legal.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-legal/footer-legal.scss?tag=br-footer-legal&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-legal/footer-legal.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-info;\n\n:host {\n display: block;\n}\n\n.info {\n ::slotted(*) {\n font-size: var(--font-size-scale-down-01) !important;\n font-weight: 500 !important;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n *\n * @slot default - Slot para informações legais no rodapé, como direitos autorais ou termos de uso.\n */\n@Component({\n tag: 'br-footer-legal',\n styleUrl: 'footer-legal.scss',\n shadow: true,\n})\nexport class FooterLegal {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterLegalElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-legal': true,\n info: true,\n 'text-down-01': true,\n 'text-medium': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,cAAc,GAAG,w5YAAw5Y;;MCiBl6Y,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAwBhF;IAtBS,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;SACpB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-footer-logo.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-logo/footer-logo.scss?tag=br-footer-logo&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-logo/footer-logo.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-logo;\n\n:host {\n display: block;\n}\n\n:host(.partner) {\n display: inline-block;\n}\n\n.logo {\n &.partner {\n margin-left: var(--spacing-scale-3x);\n text-decoration: none;\n padding: 0;\n }\n\n a {\n text-decoration: none;\n\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterLogoElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * URL de destino quando a logo for clicada.\n * Se fornecido, a logo será envolvida em um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Target do link quando href é fornecido.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top' = '_self'\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Cria o elemento de imagem da logo.\n * @returns JSX do elemento img.\n */\n private createImageElement() {\n return <img src={this.src} alt={this.description} />\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n {this.href && this.href.trim() !== '' ? (\n <a href={this.href} target={this.target} {...(this.target === '_blank' && { rel: 'noopener noreferrer' })}>\n {this.createImageElement()}\n </a>\n ) : (\n this.createImageElement()\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,irZAAirZ;;MCe1rZ,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAG,CAAA,GAAA,GAAW,EAAE;AAEzC;;AAEG;AACsB,QAAA,IAAW,CAAA,WAAA,GAAW,MAAM;AAErD;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAgC,MAAM;AAEvE;;AAEG;AAC+B,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAQ5D;;AAEG;AACsB,QAAA,IAAM,CAAA,MAAA,GAA6C,OAAO;AAsDpF;AApDC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;AACxC,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAC5C,YAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;AACxB,QAAA,OAAO,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAI;;AAGtD;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EACpC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EACjD,EAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IACnC,uBAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAM,GAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAAC,EACtG,IAAI,CAAC,kBAAkB,EAAE,CACxB,KAEJ,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CACG,CACD;;;;;;;;"}
1
+ {"version":3,"file":"br-footer-logo.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-logo/footer-logo.scss?tag=br-footer-logo&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-logo/footer-logo.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/footer/mixins\";\n@include footer-logo;\n\n:host {\n display: block;\n}\n\n:host(.partner) {\n display: inline-block;\n}\n\n.logo {\n &.partner {\n margin-left: var(--spacing-scale-3x);\n text-decoration: none;\n padding: 0;\n }\n\n a {\n text-decoration: none;\n\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## 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/footer?tab=designer).\n */\n@Component({\n tag: 'br-footer-logo',\n styleUrl: 'footer-logo.scss',\n shadow: true,\n})\nexport class FooterLogo {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterLogoElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Url da logo padrão.\n */\n @Prop({ reflect: true }) src: string = ''\n\n /**\n * Descrição da logo.\n */\n @Prop({ reflect: true }) description: string = 'logo'\n\n /**\n * Posição da logo.\n */\n @Prop({ reflect: true }) position: 'left' | 'center' | 'right' = 'left'\n\n /**\n * Define se a logo é de um parceiro.\n */\n @Prop({ reflect: true }) readonly isPartner: boolean = false\n\n /**\n * URL de destino quando a logo for clicada.\n * Se fornecido, a logo será envolvida em um link.\n */\n @Prop({ reflect: true }) href?: string\n\n /**\n * Target do link quando href é fornecido.\n */\n @Prop({ reflect: true }) target?: '_blank' | '_self' | '_parent' | '_top' = '_self'\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-logo': true,\n logo: true,\n 'text-sm-left': this.position === 'left',\n 'text-sm-center': this.position === 'center',\n 'text-sm-right': this.position === 'right',\n partner: this.isPartner,\n }\n }\n\n /**\n * Monta o mapa de classes CSS que serão aplicadas ao host do componente.\n * @returns Objeto com as classes CSS que serão aplicadas ao host do componente.\n */\n private getRootCssClassMap(): CssClassMap {\n return {\n partner: this.isPartner,\n }\n }\n\n /**\n * Cria o elemento de imagem da logo.\n * @returns JSX do elemento img.\n */\n private createImageElement() {\n return <img src={this.src} alt={this.description} />\n }\n\n /**\n * Monta o JSX que representa o componente.\n * @returns JSX que representa o componente.\n */\n render() {\n return (\n <Host class={this.getRootCssClassMap()}>\n <div id={this.customId} class={this.getCssClassMap()}>\n {this.href && this.href.trim() !== '' ? (\n <a href={this.href} target={this.target} {...(this.target === '_blank' && { rel: 'noopener noreferrer' })}>\n {this.createImageElement()}\n </a>\n ) : (\n this.createImageElement()\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,aAAa,GAAG,gmZAAgmZ;;MCezmZ,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAG,CAAA,GAAA,GAAW,EAAE;AAEzC;;AAEG;AACsB,QAAA,IAAW,CAAA,WAAA,GAAW,MAAM;AAErD;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAgC,MAAM;AAEvE;;AAEG;AAC+B,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAQ5D;;AAEG;AACsB,QAAA,IAAM,CAAA,MAAA,GAA6C,OAAO;AAsDpF;AApDC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM;AACxC,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAC5C,YAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO;YAC1C,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,SAAS;SACxB;;AAGH;;;AAGG;IACK,kBAAkB,GAAA;AACxB,QAAA,OAAO,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAI;;AAGtD;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAA,EACpC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EACjD,EAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IACnC,uBAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAM,GAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAAC,EACtG,IAAI,CAAC,kBAAkB,EAAE,CACxB,KAEJ,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CACG,CACD;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"br-footer-social.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-social/footer-social.scss?tag=br-footer-social&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-social/footer-social.tsx"],"sourcesContent":[".spacing-icons {\n margin-right: var(--spacing-scale-2x);\n text-decoration: none;\n}\n\nbr-button {\n display: inline-block;\n}\n","import { Component, Element, h, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-social` representa os ícones de redes sociais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n */\n@Component({\n tag: 'br-footer-social',\n styleUrl: 'footer-social.scss',\n shadow: true,\n})\nexport class FooterSocial {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterSocialElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ícone da rede social\n * */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Descrição do ícone da rede social\n * */\n @Prop({ reflect: true }) readonly description: string\n\n /**\n * URL da rede social\n */\n @Prop({ reflect: true }) readonly href: string = null\n\n /**\n * Monta o objeto com as classes CSS do componente.\n * @returns Objeto com as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-social': true,\n 'spacing-icons': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <br-button\n role=\"link\"\n class={this.getCssClassMap()}\n id={this.customId}\n emphasis=\"tertiary\"\n shape=\"circle\"\n aria-label={this.description}\n >\n <a href={this.href} tabindex=\"-1\">\n <br-icon icon-name={`fa-brands:${this.icon}`} aria-hidden=\"true\"></br-icon>\n </a>\n </br-button>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,m8YAAm8Y;;MCc98Y,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAY/E;;AAEG;AAC+B,QAAA,IAAI,CAAA,IAAA,GAAW,IAAI;AAiCtD;AA/BC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,IAAI;SACtB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,QAAQ,EACF,YAAA,EAAA,IAAI,CAAC,WAAW,EAAA,EAE5B,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAA,EAC/B,CAAoB,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,EAAE,EAAc,aAAA,EAAA,MAAM,EAAW,CAAA,CACzE,CACM;;;;;;;;"}
1
+ {"version":3,"file":"br-footer-social.entry.esm.js","sources":["../../packages/webcomponents/src/components/footer/footer-social/footer-social.scss?tag=br-footer-social&encapsulation=shadow","../../packages/webcomponents/src/components/footer/footer-social/footer-social.tsx"],"sourcesContent":[".spacing-icons {\n margin-right: var(--spacing-scale-2x);\n text-decoration: none;\n}\n\nbr-button {\n display: inline-block;\n}\n","import { Component, Element, h, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * O subcomponente `br-footer-social` representa os ícones de redes sociais no rodapé do site, de acordo com a documentação de design do GovBR.\n * Ele deve ser utilizado como filho direto do componente [`br-footer`](/docs/components/footer).\n */\n@Component({\n tag: 'br-footer-social',\n styleUrl: 'footer-social.scss',\n shadow: true,\n})\nexport class FooterSocial {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrFooterSocialElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ícone da rede social\n * */\n @Prop({ reflect: true }) readonly icon: string\n\n /**\n * Descrição do ícone da rede social\n * */\n @Prop({ reflect: true }) readonly description: string\n\n /**\n * URL da rede social\n */\n @Prop({ reflect: true }) readonly href: string = null\n\n /**\n * Monta o objeto com as classes CSS do componente.\n * @returns Objeto com as classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-footer-social': true,\n 'spacing-icons': true,\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <br-button\n role=\"link\"\n class={this.getCssClassMap()}\n id={this.customId}\n emphasis=\"tertiary\"\n shape=\"circle\"\n aria-label={this.description}\n >\n <a href={this.href} tabindex=\"-1\">\n <br-icon icon-name={`fa-brands:${this.icon}`} aria-hidden=\"true\"></br-icon>\n </a>\n </br-button>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,k3YAAk3Y;;MCc73Y,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAY/E;;AAEG;AAC+B,QAAA,IAAI,CAAA,IAAA,GAAW,IAAI;AAiCtD;AA/BC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,eAAe,EAAE,IAAI;SACtB;;AAGH;;;AAGG;IACH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,WAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,QAAQ,EACF,YAAA,EAAA,IAAI,CAAC,WAAW,EAAA,EAE5B,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAC,IAAI,EAAA,EAC/B,CAAoB,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAA,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,EAAE,EAAc,aAAA,EAAA,MAAM,EAAW,CAAA,CACzE,CACM;;;;;;;;"}