@govbr-ds/webcomponents 2.0.0-next.63 → 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 (694) 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/skip-link/skip-link.js.map +1 -1
  211. package/dist/collection/components/step/step-item/step-item.css +1 -1
  212. package/dist/collection/components/step/step-item/step-item.js +16 -86
  213. package/dist/collection/components/step/step-item/step-item.js.map +1 -1
  214. package/dist/collection/components/step/step.css +1 -1
  215. package/dist/collection/components/step/step.js +2 -6
  216. package/dist/collection/components/step/step.js.map +1 -1
  217. package/dist/collection/components/switch/switch.css +1 -1
  218. package/dist/collection/components/switch/switch.js +1 -1
  219. package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
  220. package/dist/collection/components/tab/tab-item/tab-item.js +1 -1
  221. package/dist/collection/components/tab/tab.css +1 -1
  222. package/dist/collection/components/tab/tab.js +137 -17
  223. package/dist/collection/components/tab/tab.js.map +1 -1
  224. package/dist/collection/components/table/table-cell/table-cell.css +1 -1
  225. package/dist/collection/components/table/table-cell/table-cell.js +1 -1
  226. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
  227. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  228. package/dist/collection/components/table/table-header-row/table-header-row.css +1 -1
  229. package/dist/collection/components/table/table-header-row/table-header-row.js +1 -1
  230. package/dist/collection/components/table/table-row/table-row.css +1 -1
  231. package/dist/collection/components/table/table-row/table-row.js +1 -1
  232. package/dist/collection/components/table/table.css +1 -1
  233. package/dist/collection/components/table/table.js +1 -1
  234. package/dist/collection/components/tag/tag.css +1 -1
  235. package/dist/collection/components/tag/tag.js +1 -1
  236. package/dist/collection/components/textarea/textarea.css +1 -1
  237. package/dist/collection/components/textarea/textarea.js +1 -1
  238. package/dist/collection/components/tooltip/tooltip.css +1 -1
  239. package/dist/collection/components/tooltip/tooltip.js +1 -1
  240. package/dist/collection/components/upload/upload.css +1 -1
  241. package/dist/collection/components/upload/upload.js +1 -1
  242. package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
  243. package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +1 -1
  244. package/dist/collection/components/wizard/wizard.css +1 -1
  245. package/dist/collection/components/wizard/wizard.js +1 -1
  246. package/dist/collection/pages/scripts/menu.js +3 -1
  247. package/dist/collection/pages/scripts/pageLoader.js +4 -2
  248. package/dist/collection/value-accessors/angular-value-accessor-config.js +1 -1
  249. package/dist/collection/value-accessors/angular-value-accessor-config.js.map +1 -1
  250. package/dist/components/br-avatar.js +3 -3
  251. package/dist/components/br-breadcrumb.js +161 -90
  252. package/dist/components/br-breadcrumb.js.map +1 -1
  253. package/dist/components/br-button.js +3 -3
  254. package/dist/components/br-card.js +3 -3
  255. package/dist/components/br-checkbox.js +4 -4
  256. package/dist/components/br-checkgroup.js +11 -11
  257. package/dist/components/br-collapse.js +4 -4
  258. package/dist/components/br-crumb.d.ts +11 -0
  259. package/dist/components/br-crumb.js +80 -0
  260. package/dist/components/br-crumb.js.map +1 -0
  261. package/dist/components/br-datetime-picker.js +324 -324
  262. package/dist/components/br-divider.js +1 -1
  263. package/dist/components/br-dropdown.js +4 -4
  264. package/dist/components/br-footer-category.js +14 -14
  265. package/dist/components/br-footer-item.js +6 -6
  266. package/dist/components/br-footer-legal.js +9 -9
  267. package/dist/components/br-footer-logo.js +4 -4
  268. package/dist/components/br-footer-social.js +7 -7
  269. package/dist/components/br-footer.js +24 -24
  270. package/dist/components/br-header-function.js +6 -6
  271. package/dist/components/br-header-link.js +6 -6
  272. package/dist/components/br-header-list.js +8 -8
  273. package/dist/components/br-header-logo.js +13 -13
  274. package/dist/components/br-header.js +15 -15
  275. package/dist/components/br-icon.js +3 -3
  276. package/dist/components/br-input.js +3 -3
  277. package/dist/components/br-item.js +3 -3
  278. package/dist/components/br-list.js +4 -4
  279. package/dist/components/br-loading.js +7 -7
  280. package/dist/components/br-magic-button.js +7 -7
  281. package/dist/components/br-menu-header.js +14 -14
  282. package/dist/components/br-menu-info.js +5 -5
  283. package/dist/components/br-menu-item.js +3 -3
  284. package/dist/components/br-menu-link.js +9 -9
  285. package/dist/components/br-menu-list.js +4 -4
  286. package/dist/components/br-menu-logo.js +6 -6
  287. package/dist/components/br-menu-social.js +9 -9
  288. package/dist/components/br-menu.js +35 -35
  289. package/dist/components/br-message.js +5 -5
  290. package/dist/components/br-modal.js +230 -21
  291. package/dist/components/br-modal.js.map +1 -1
  292. package/dist/components/br-pagination.js +12 -12
  293. package/dist/components/br-radio.js +4 -4
  294. package/dist/components/br-scrim.js +122 -37
  295. package/dist/components/br-scrim.js.map +1 -1
  296. package/dist/components/br-select-option.d.ts +11 -0
  297. package/dist/components/br-select-option.js +72 -0
  298. package/dist/components/br-select-option.js.map +1 -0
  299. package/dist/components/br-select.js +4 -4
  300. package/dist/components/br-sign-in.js +11 -11
  301. package/dist/components/br-skip-link.js +10 -11
  302. package/dist/components/br-skip-link.js.map +1 -1
  303. package/dist/components/br-skiplink-item.js +14 -14
  304. package/dist/components/br-step-item.js +4 -4
  305. package/dist/components/br-step.js +3 -3
  306. package/dist/components/br-switch.js +7 -7
  307. package/dist/components/br-tab-item.js +7 -7
  308. package/dist/components/br-tab.js +82 -26
  309. package/dist/components/br-tab.js.map +1 -1
  310. package/dist/components/br-table-cell.js +5 -5
  311. package/dist/components/br-table-header-cell.js +8 -8
  312. package/dist/components/br-table-header-row.js +5 -5
  313. package/dist/components/br-table-row.js +5 -5
  314. package/dist/components/br-table.js +8 -8
  315. package/dist/components/br-tag.js +1 -1
  316. package/dist/components/br-textarea.js +4 -4
  317. package/dist/components/br-tooltip.js +14 -14
  318. package/dist/components/br-upload.js +34 -34
  319. package/dist/components/br-wizard-panel.js +6 -6
  320. package/dist/components/br-wizard.js +12 -12
  321. package/dist/components/br-wizard.js.map +1 -1
  322. package/dist/components/index.d.ts +4 -0
  323. package/dist/components/index.js +5 -1
  324. package/dist/components/{p-CJSXIVVe.js → p-B4_2a6sY.js} +9 -9
  325. package/dist/components/{p-DdjKNpU3.js → p-BVCWXitK.js} +157 -61
  326. package/dist/components/p-BVCWXitK.js.map +1 -0
  327. package/dist/components/p-BXMQkO62.js +399 -0
  328. package/dist/components/p-Bb4aDGZV.js +192 -0
  329. package/dist/components/p-BfM6USmd.js +138 -0
  330. package/dist/components/{p-BIJ6vVdB.js.map → p-BfM6USmd.js.map} +1 -1
  331. package/dist/components/{p-CwtLw60M.js → p-Bjywc5uG.js} +6 -6
  332. package/dist/components/p-BtGv7ZmW.js +229 -0
  333. package/dist/components/p-BtGv7ZmW.js.map +1 -0
  334. package/dist/components/{p-C_OI0BQu.js → p-BwHD1VKm.js} +6 -6
  335. package/dist/components/{p-Bqb7YtL0.js → p-C1NfZb6u.js} +19 -19
  336. package/dist/components/{p-DW63EY0U.js → p-C2apigAS.js} +13 -13
  337. package/dist/components/{p-5Bn_PU3B.js → p-CldlPwBq.js} +8 -8
  338. package/dist/components/p-DLCPJIh7.js +306 -0
  339. package/dist/components/p-DLCPJIh7.js.map +1 -0
  340. package/dist/components/{p-Bri6ECVa.js → p-DexVMiiX.js} +13 -13
  341. package/dist/components/p-DexVMiiX.js.map +1 -0
  342. package/dist/components/{p-DSkSDmzD.js → p-DozXPp1d.js} +3 -3
  343. package/dist/components/p-DzfbHHTf.js +136 -0
  344. package/dist/components/{p-CBj_WCYf.js → p-JsxUUux9.js} +6 -6
  345. package/dist/components/{p-lIb35q2K.js → p-p8k-sBQZ.js} +8 -8
  346. package/dist/custom-elements.json +1202 -524
  347. package/dist/esm/br-avatar.entry.js +2 -2
  348. package/dist/esm/br-avatar.entry.js.map +1 -1
  349. package/dist/esm/br-breadcrumb.entry.js +114 -62
  350. package/dist/esm/br-breadcrumb.entry.js.map +1 -1
  351. package/dist/esm/br-button.br-icon.entry.js.map +1 -1
  352. package/dist/esm/br-button_2.entry.js +5 -5
  353. package/dist/esm/br-card.entry.js +3 -3
  354. package/dist/esm/br-card.entry.js.map +1 -1
  355. package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
  356. package/dist/esm/br-checkbox_3.entry.js +7 -7
  357. package/dist/esm/br-checkgroup.entry.js +3 -3
  358. package/dist/esm/br-checkgroup.entry.js.map +1 -1
  359. package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
  360. package/dist/esm/br-collapse_2.entry.js +5 -5
  361. package/dist/esm/br-crumb.entry.js +36 -0
  362. package/dist/esm/br-crumb.entry.js.map +1 -0
  363. package/dist/esm/br-datetime-picker.entry.js +3 -3
  364. package/dist/esm/br-datetime-picker.entry.js.map +1 -1
  365. package/dist/esm/br-divider.entry.js +3 -3
  366. package/dist/esm/br-divider.entry.js.map +1 -1
  367. package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
  368. package/dist/esm/br-dropdown_2.entry.js +124 -41
  369. package/dist/esm/br-footer-category.entry.js +4 -4
  370. package/dist/esm/br-footer-category.entry.js.map +1 -1
  371. package/dist/esm/br-footer-item.entry.js +3 -3
  372. package/dist/esm/br-footer-item.entry.js.map +1 -1
  373. package/dist/esm/br-footer-legal.entry.js +3 -3
  374. package/dist/esm/br-footer-legal.entry.js.map +1 -1
  375. package/dist/esm/br-footer-logo.entry.js +3 -3
  376. package/dist/esm/br-footer-logo.entry.js.map +1 -1
  377. package/dist/esm/br-footer-social.entry.js +3 -3
  378. package/dist/esm/br-footer-social.entry.js.map +1 -1
  379. package/dist/esm/br-footer.entry.js +3 -3
  380. package/dist/esm/br-footer.entry.js.map +1 -1
  381. package/dist/esm/br-header-function.entry.js +3 -3
  382. package/dist/esm/br-header-function.entry.js.map +1 -1
  383. package/dist/esm/br-header-link.entry.js +3 -3
  384. package/dist/esm/br-header-link.entry.js.map +1 -1
  385. package/dist/esm/br-header-list.entry.js +3 -3
  386. package/dist/esm/br-header-list.entry.js.map +1 -1
  387. package/dist/esm/br-header-logo.entry.js +3 -3
  388. package/dist/esm/br-header-logo.entry.js.map +1 -1
  389. package/dist/esm/br-header.entry.js +3 -3
  390. package/dist/esm/br-header.entry.js.map +1 -1
  391. package/dist/esm/br-item.entry.js +3 -3
  392. package/dist/esm/br-item.entry.js.map +1 -1
  393. package/dist/esm/br-loading.entry.js +3 -3
  394. package/dist/esm/br-loading.entry.js.map +1 -1
  395. package/dist/esm/br-magic-button.entry.js +3 -3
  396. package/dist/esm/br-magic-button.entry.js.map +1 -1
  397. package/dist/esm/br-menu-header.entry.js +3 -3
  398. package/dist/esm/br-menu-header.entry.js.map +1 -1
  399. package/dist/esm/br-menu-info.entry.js +3 -3
  400. package/dist/esm/br-menu-info.entry.js.map +1 -1
  401. package/dist/esm/br-menu-item.entry.js +4 -4
  402. package/dist/esm/br-menu-item.entry.js.map +1 -1
  403. package/dist/esm/br-menu-link.entry.js +3 -3
  404. package/dist/esm/br-menu-link.entry.js.map +1 -1
  405. package/dist/esm/br-menu-list.entry.js +2 -2
  406. package/dist/esm/br-menu-list.entry.js.map +1 -1
  407. package/dist/esm/br-menu-logo.entry.js +3 -3
  408. package/dist/esm/br-menu-logo.entry.js.map +1 -1
  409. package/dist/esm/br-menu-social.entry.js +3 -3
  410. package/dist/esm/br-menu-social.entry.js.map +1 -1
  411. package/dist/esm/br-menu.entry.js +4 -4
  412. package/dist/esm/br-menu.entry.js.map +1 -1
  413. package/dist/esm/br-message.entry.js +3 -3
  414. package/dist/esm/br-message.entry.js.map +1 -1
  415. package/dist/esm/br-modal.entry.js +253 -13
  416. package/dist/esm/br-modal.entry.js.map +1 -1
  417. package/dist/esm/br-pagination.entry.js +2 -2
  418. package/dist/esm/br-pagination.entry.js.map +1 -1
  419. package/dist/esm/br-scrim.entry.js +118 -25
  420. package/dist/esm/br-scrim.entry.js.map +1 -1
  421. package/dist/esm/br-select-option.entry.js +30 -0
  422. package/dist/esm/br-select-option.entry.js.map +1 -0
  423. package/dist/esm/br-sign-in.entry.js +3 -3
  424. package/dist/esm/br-sign-in.entry.js.map +1 -1
  425. package/dist/esm/br-skip-link.entry.js +3 -3
  426. package/dist/esm/br-skip-link.entry.js.map +1 -1
  427. package/dist/esm/br-skiplink-item.entry.js +3 -3
  428. package/dist/esm/br-skiplink-item.entry.js.map +1 -1
  429. package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
  430. package/dist/esm/br-step_2.entry.js +18 -87
  431. package/dist/esm/br-switch.entry.js +3 -3
  432. package/dist/esm/br-switch.entry.js.map +1 -1
  433. package/dist/esm/br-tab-item.entry.js +3 -3
  434. package/dist/esm/br-tab-item.entry.js.map +1 -1
  435. package/dist/esm/br-tab.entry.js +77 -11
  436. package/dist/esm/br-tab.entry.js.map +1 -1
  437. package/dist/esm/br-table-cell.entry.js +3 -3
  438. package/dist/esm/br-table-cell.entry.js.map +1 -1
  439. package/dist/esm/br-table-header-cell.entry.js +3 -3
  440. package/dist/esm/br-table-header-cell.entry.js.map +1 -1
  441. package/dist/esm/br-table-header-row.entry.js +3 -3
  442. package/dist/esm/br-table-header-row.entry.js.map +1 -1
  443. package/dist/esm/br-table-row.entry.js +3 -3
  444. package/dist/esm/br-table-row.entry.js.map +1 -1
  445. package/dist/esm/br-table.entry.js +3 -3
  446. package/dist/esm/br-table.entry.js.map +1 -1
  447. package/dist/esm/br-tag.entry.js +3 -3
  448. package/dist/esm/br-tag.entry.js.map +1 -1
  449. package/dist/esm/br-textarea.entry.js +3 -3
  450. package/dist/esm/br-textarea.entry.js.map +1 -1
  451. package/dist/esm/br-tooltip.entry.js +3 -3
  452. package/dist/esm/br-tooltip.entry.js.map +1 -1
  453. package/dist/esm/br-upload.entry.js +3 -3
  454. package/dist/esm/br-upload.entry.js.map +1 -1
  455. package/dist/esm/br-wizard-panel.entry.js +3 -3
  456. package/dist/esm/br-wizard-panel.entry.js.map +1 -1
  457. package/dist/esm/br-wizard.entry.js +3 -3
  458. package/dist/esm/br-wizard.entry.js.map +1 -1
  459. package/dist/esm/{index-ByGJPTh2.js → index-CgnD6TrP.js} +11 -3
  460. package/dist/esm/{index-ByGJPTh2.js.map → index-CgnD6TrP.js.map} +1 -1
  461. package/dist/esm/loader.js +3 -3
  462. package/dist/esm/webcomponents.js +3 -3
  463. package/dist/hydrate/index.js +3543 -2986
  464. package/dist/hydrate/index.mjs +3543 -2986
  465. package/dist/types/components/breadcrumb/breadcrumb.d.ts +21 -15
  466. package/dist/types/components/breadcrumb/crumb/crumb.d.ts +35 -0
  467. package/dist/types/components/modal/modal.d.ts +86 -3
  468. package/dist/types/components/scrim/scrim.d.ts +32 -2
  469. package/dist/types/components/select/select-option/select-option.d.ts +29 -0
  470. package/dist/types/components/select/select.d.ts +30 -10
  471. package/dist/types/components/step/step-item/step-item.d.ts +3 -14
  472. package/dist/types/components/tab/tab.d.ts +67 -7
  473. package/dist/types/components.d.ts +215 -12
  474. package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
  475. package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
  476. package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
  477. package/dist/webcomponents/br-card.entry.esm.js.map +1 -1
  478. package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
  479. package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
  480. package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
  481. package/dist/webcomponents/br-crumb.entry.esm.js.map +1 -0
  482. package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
  483. package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
  484. package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
  485. package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -1
  486. package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -1
  487. package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -1
  488. package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
  489. package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -1
  490. package/dist/webcomponents/br-footer.entry.esm.js.map +1 -1
  491. package/dist/webcomponents/br-header-function.entry.esm.js.map +1 -1
  492. package/dist/webcomponents/br-header-link.entry.esm.js.map +1 -1
  493. package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
  494. package/dist/webcomponents/br-header-logo.entry.esm.js.map +1 -1
  495. package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
  496. package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
  497. package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
  498. package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
  499. package/dist/webcomponents/br-menu-header.entry.esm.js.map +1 -1
  500. package/dist/webcomponents/br-menu-info.entry.esm.js.map +1 -1
  501. package/dist/webcomponents/br-menu-item.entry.esm.js.map +1 -1
  502. package/dist/webcomponents/br-menu-link.entry.esm.js.map +1 -1
  503. package/dist/webcomponents/br-menu-list.entry.esm.js.map +1 -1
  504. package/dist/webcomponents/br-menu-logo.entry.esm.js.map +1 -1
  505. package/dist/webcomponents/br-menu-social.entry.esm.js.map +1 -1
  506. package/dist/webcomponents/br-menu.entry.esm.js.map +1 -1
  507. package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
  508. package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
  509. package/dist/webcomponents/br-pagination.entry.esm.js.map +1 -1
  510. package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
  511. package/dist/webcomponents/br-select-option.entry.esm.js.map +1 -0
  512. package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -1
  513. package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
  514. package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
  515. package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
  516. package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
  517. package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
  518. package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
  519. package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -1
  520. package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -1
  521. package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -1
  522. package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -1
  523. package/dist/webcomponents/br-table.entry.esm.js.map +1 -1
  524. package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
  525. package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
  526. package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
  527. package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
  528. package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
  529. package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
  530. package/dist/webcomponents/{p-f2ea0d7e.entry.js → p-020c598b.entry.js} +19 -19
  531. package/dist/webcomponents/{p-f2ea0d7e.entry.js.map → p-020c598b.entry.js.map} +1 -1
  532. package/dist/webcomponents/{p-83001853.entry.js → p-09a09974.entry.js} +6 -6
  533. package/dist/webcomponents/{p-83001853.entry.js.map → p-09a09974.entry.js.map} +1 -1
  534. package/dist/webcomponents/{p-bd803fec.entry.js → p-0be0b270.entry.js} +372 -372
  535. package/dist/webcomponents/{p-bd803fec.entry.js.map → p-0be0b270.entry.js.map} +1 -1
  536. package/dist/webcomponents/p-0d8da69a.entry.js +50 -0
  537. package/dist/webcomponents/{p-8b3688ab.entry.js → p-107ad6d3.entry.js} +6 -6
  538. package/dist/webcomponents/{p-01b4fecb.entry.js → p-10b0d158.entry.js} +6 -6
  539. package/dist/webcomponents/{p-f1fb559a.entry.js → p-13b1b500.entry.js} +7 -7
  540. package/dist/webcomponents/p-15561737.entry.js +428 -0
  541. package/dist/webcomponents/p-15561737.entry.js.map +1 -0
  542. package/dist/webcomponents/{p-c0cdb81f.entry.js → p-24dd7de0.entry.js} +9 -9
  543. package/dist/webcomponents/{p-e5875d3d.entry.js → p-26ec56f1.entry.js} +5 -5
  544. package/dist/webcomponents/{p-e5875d3d.entry.js.map → p-26ec56f1.entry.js.map} +1 -1
  545. package/dist/webcomponents/p-34cd69c7.entry.js +105 -0
  546. package/dist/webcomponents/{p-d856888c.entry.js.map → p-34cd69c7.entry.js.map} +1 -1
  547. package/dist/webcomponents/{p-c06a79b8.entry.js → p-3956e4ac.entry.js} +6 -6
  548. package/dist/webcomponents/{p-462c5647.entry.js → p-4071b981.entry.js} +4 -4
  549. package/dist/webcomponents/p-42f11872.entry.js +60 -0
  550. package/dist/webcomponents/{p-f16a5e27.entry.js → p-4ad3b8c9.entry.js} +8 -8
  551. package/dist/webcomponents/{p-de358dbe.entry.js → p-512385f0.entry.js} +7 -7
  552. package/dist/webcomponents/{p-cfecd64a.entry.js → p-53c2b2c2.entry.js} +34 -34
  553. package/dist/webcomponents/p-567b17e6.entry.js +346 -0
  554. package/dist/webcomponents/{p-46dfc3ee.entry.js → p-57d49488.entry.js} +5 -5
  555. package/dist/webcomponents/p-58a862f9.entry.js +44 -0
  556. package/dist/webcomponents/p-58a862f9.entry.js.map +1 -0
  557. package/dist/webcomponents/p-59d41342.entry.js +101 -0
  558. package/dist/webcomponents/{p-c1b0a116.entry.js → p-5b7f446c.entry.js} +7 -7
  559. package/dist/webcomponents/{p-bd978abf.entry.js → p-610c2e8e.entry.js} +4 -4
  560. package/dist/webcomponents/p-62651eba.entry.js +44 -0
  561. package/dist/webcomponents/{p-50f1b088.entry.js → p-6bf86e0b.entry.js} +6 -6
  562. package/dist/webcomponents/{p-10e25a32.entry.js → p-6f8abd26.entry.js} +41 -41
  563. package/dist/webcomponents/{p-a2eec4fb.entry.js → p-7a93d79b.entry.js} +123 -38
  564. package/dist/webcomponents/p-7a93d79b.entry.js.map +1 -0
  565. package/dist/webcomponents/p-7d8eb8ac.entry.js +40 -0
  566. package/dist/webcomponents/p-7d8eb8ac.entry.js.map +1 -0
  567. package/dist/webcomponents/{p-56aabe89.entry.js → p-857cfe62.entry.js} +19 -19
  568. package/dist/webcomponents/p-898d950f.entry.js +84 -0
  569. package/dist/webcomponents/{p-6ecb3439.entry.js → p-8a931bfe.entry.js} +9 -9
  570. package/dist/webcomponents/p-8b7cc3a9.entry.js +92 -0
  571. package/dist/webcomponents/{p-ca2d95f7.entry.js → p-946cc8f3.entry.js} +142 -48
  572. package/dist/webcomponents/p-946cc8f3.entry.js.map +1 -0
  573. package/dist/webcomponents/p-9bb74d81.entry.js +133 -0
  574. package/dist/webcomponents/{p-cfa86a23.entry.js.map → p-9bb74d81.entry.js.map} +1 -1
  575. package/dist/webcomponents/p-9fabdfb4.entry.js +75 -0
  576. package/dist/webcomponents/{p-9b50e6af.entry.js → p-9fe9f5d2.entry.js} +6 -6
  577. package/dist/webcomponents/{p-ByGJPTh2.js → p-CgnD6TrP.js} +3 -3
  578. package/dist/webcomponents/{p-ByGJPTh2.js.map → p-CgnD6TrP.js.map} +1 -1
  579. package/dist/webcomponents/p-a09cf1bc.entry.js +145 -0
  580. package/dist/webcomponents/{p-30af66b3.entry.js → p-ae4feb1e.entry.js} +9 -9
  581. package/dist/webcomponents/p-b020467b.entry.js +351 -0
  582. package/dist/webcomponents/p-b020467b.entry.js.map +1 -0
  583. package/dist/webcomponents/{p-336071a5.entry.js → p-b04b7996.entry.js} +13 -13
  584. package/dist/webcomponents/{p-d7070712.entry.js → p-b39c2ad1.entry.js} +5 -5
  585. package/dist/webcomponents/{p-4bb5aeab.entry.js → p-b8e4bc36.entry.js} +17 -17
  586. package/dist/webcomponents/{p-66d26793.entry.js → p-b9c38611.entry.js} +3 -3
  587. package/dist/webcomponents/p-c4e28f37.entry.js +446 -0
  588. package/dist/webcomponents/p-c4e28f37.entry.js.map +1 -0
  589. package/dist/webcomponents/{p-d090d412.entry.js → p-cf764a83.entry.js} +6 -6
  590. package/dist/webcomponents/{p-27eb10f9.entry.js → p-d75fccd1.entry.js} +13 -13
  591. package/dist/webcomponents/p-da17c570.entry.js +134 -0
  592. package/dist/webcomponents/{p-6a9d2a0b.entry.js → p-df170bb4.entry.js} +6 -6
  593. package/dist/webcomponents/p-e55b41b4.entry.js +159 -0
  594. package/dist/webcomponents/{p-7537c4ba.entry.js.map → p-e55b41b4.entry.js.map} +1 -1
  595. package/dist/webcomponents/{p-a365183a.entry.js → p-e58dbeef.entry.js} +6 -6
  596. package/dist/webcomponents/p-e5ff5232.entry.js +452 -0
  597. package/dist/webcomponents/p-e5ff5232.entry.js.map +1 -0
  598. package/dist/webcomponents/{p-007c0f38.entry.js → p-f2f32774.entry.js} +14 -14
  599. package/dist/webcomponents/{p-1991135d.entry.js → p-f583b74c.entry.js} +8 -9
  600. package/dist/webcomponents/p-f583b74c.entry.js.map +1 -0
  601. package/dist/webcomponents/{p-061dbde5.entry.js → p-f723c6fc.entry.js} +5 -5
  602. package/dist/webcomponents/p-f86da8f9.entry.js +94 -0
  603. package/dist/webcomponents/p-fc94c64c.entry.js +50 -0
  604. package/dist/webcomponents/webcomponents.esm.js +3 -3
  605. package/dist/webcomponents.html-custom-data.json +106 -49
  606. package/package.json +1 -1
  607. package/dist/components/p-AOxMWARt.js +0 -136
  608. package/dist/components/p-BIJ6vVdB.js +0 -138
  609. package/dist/components/p-B_YesJM8.js +0 -192
  610. package/dist/components/p-Bc03PTAW.js +0 -306
  611. package/dist/components/p-Bc03PTAW.js.map +0 -1
  612. package/dist/components/p-Bri6ECVa.js.map +0 -1
  613. package/dist/components/p-C3Rduy2t.js +0 -399
  614. package/dist/components/p-CWRBs6PD.js +0 -316
  615. package/dist/components/p-CWRBs6PD.js.map +0 -1
  616. package/dist/components/p-DdjKNpU3.js.map +0 -1
  617. package/dist/webcomponents/p-0e3a9a52.entry.js +0 -44
  618. package/dist/webcomponents/p-1991135d.entry.js.map +0 -1
  619. package/dist/webcomponents/p-271fafec.entry.js +0 -94
  620. package/dist/webcomponents/p-2768bb52.entry.js +0 -92
  621. package/dist/webcomponents/p-2a6b20bb.entry.js +0 -60
  622. package/dist/webcomponents/p-2de59d45.entry.js +0 -145
  623. package/dist/webcomponents/p-3c75367e.entry.js +0 -50
  624. package/dist/webcomponents/p-492972fb.entry.js +0 -380
  625. package/dist/webcomponents/p-492972fb.entry.js.map +0 -1
  626. package/dist/webcomponents/p-4cc446e4.entry.js +0 -50
  627. package/dist/webcomponents/p-5710a3e9.entry.js +0 -529
  628. package/dist/webcomponents/p-5710a3e9.entry.js.map +0 -1
  629. package/dist/webcomponents/p-7537c4ba.entry.js +0 -159
  630. package/dist/webcomponents/p-8c0f167a.entry.js +0 -101
  631. package/dist/webcomponents/p-90401ecd.entry.js +0 -219
  632. package/dist/webcomponents/p-90401ecd.entry.js.map +0 -1
  633. package/dist/webcomponents/p-a2eec4fb.entry.js.map +0 -1
  634. package/dist/webcomponents/p-aa7635d4.entry.js +0 -346
  635. package/dist/webcomponents/p-b30ef853.entry.js +0 -75
  636. package/dist/webcomponents/p-b8e4b353.entry.js +0 -84
  637. package/dist/webcomponents/p-c5b716c8.entry.js +0 -134
  638. package/dist/webcomponents/p-c73b38c5.entry.js +0 -297
  639. package/dist/webcomponents/p-c73b38c5.entry.js.map +0 -1
  640. package/dist/webcomponents/p-ca2d95f7.entry.js.map +0 -1
  641. package/dist/webcomponents/p-cfa86a23.entry.js +0 -133
  642. package/dist/webcomponents/p-d856888c.entry.js +0 -105
  643. /package/dist/components/{p-CJSXIVVe.js.map → p-B4_2a6sY.js.map} +0 -0
  644. /package/dist/components/{p-C3Rduy2t.js.map → p-BXMQkO62.js.map} +0 -0
  645. /package/dist/components/{p-B_YesJM8.js.map → p-Bb4aDGZV.js.map} +0 -0
  646. /package/dist/components/{p-CwtLw60M.js.map → p-Bjywc5uG.js.map} +0 -0
  647. /package/dist/components/{p-C_OI0BQu.js.map → p-BwHD1VKm.js.map} +0 -0
  648. /package/dist/components/{p-Bqb7YtL0.js.map → p-C1NfZb6u.js.map} +0 -0
  649. /package/dist/components/{p-DW63EY0U.js.map → p-C2apigAS.js.map} +0 -0
  650. /package/dist/components/{p-5Bn_PU3B.js.map → p-CldlPwBq.js.map} +0 -0
  651. /package/dist/components/{p-DSkSDmzD.js.map → p-DozXPp1d.js.map} +0 -0
  652. /package/dist/components/{p-AOxMWARt.js.map → p-DzfbHHTf.js.map} +0 -0
  653. /package/dist/components/{p-CBj_WCYf.js.map → p-JsxUUux9.js.map} +0 -0
  654. /package/dist/components/{p-lIb35q2K.js.map → p-p8k-sBQZ.js.map} +0 -0
  655. /package/dist/webcomponents/{p-3c75367e.entry.js.map → p-0d8da69a.entry.js.map} +0 -0
  656. /package/dist/webcomponents/{p-8b3688ab.entry.js.map → p-107ad6d3.entry.js.map} +0 -0
  657. /package/dist/webcomponents/{p-01b4fecb.entry.js.map → p-10b0d158.entry.js.map} +0 -0
  658. /package/dist/webcomponents/{p-f1fb559a.entry.js.map → p-13b1b500.entry.js.map} +0 -0
  659. /package/dist/webcomponents/{p-c0cdb81f.entry.js.map → p-24dd7de0.entry.js.map} +0 -0
  660. /package/dist/webcomponents/{p-c06a79b8.entry.js.map → p-3956e4ac.entry.js.map} +0 -0
  661. /package/dist/webcomponents/{p-462c5647.entry.js.map → p-4071b981.entry.js.map} +0 -0
  662. /package/dist/webcomponents/{p-2a6b20bb.entry.js.map → p-42f11872.entry.js.map} +0 -0
  663. /package/dist/webcomponents/{p-f16a5e27.entry.js.map → p-4ad3b8c9.entry.js.map} +0 -0
  664. /package/dist/webcomponents/{p-de358dbe.entry.js.map → p-512385f0.entry.js.map} +0 -0
  665. /package/dist/webcomponents/{p-cfecd64a.entry.js.map → p-53c2b2c2.entry.js.map} +0 -0
  666. /package/dist/webcomponents/{p-aa7635d4.entry.js.map → p-567b17e6.entry.js.map} +0 -0
  667. /package/dist/webcomponents/{p-46dfc3ee.entry.js.map → p-57d49488.entry.js.map} +0 -0
  668. /package/dist/webcomponents/{p-8c0f167a.entry.js.map → p-59d41342.entry.js.map} +0 -0
  669. /package/dist/webcomponents/{p-c1b0a116.entry.js.map → p-5b7f446c.entry.js.map} +0 -0
  670. /package/dist/webcomponents/{p-bd978abf.entry.js.map → p-610c2e8e.entry.js.map} +0 -0
  671. /package/dist/webcomponents/{p-0e3a9a52.entry.js.map → p-62651eba.entry.js.map} +0 -0
  672. /package/dist/webcomponents/{p-50f1b088.entry.js.map → p-6bf86e0b.entry.js.map} +0 -0
  673. /package/dist/webcomponents/{p-10e25a32.entry.js.map → p-6f8abd26.entry.js.map} +0 -0
  674. /package/dist/webcomponents/{p-56aabe89.entry.js.map → p-857cfe62.entry.js.map} +0 -0
  675. /package/dist/webcomponents/{p-b8e4b353.entry.js.map → p-898d950f.entry.js.map} +0 -0
  676. /package/dist/webcomponents/{p-6ecb3439.entry.js.map → p-8a931bfe.entry.js.map} +0 -0
  677. /package/dist/webcomponents/{p-2768bb52.entry.js.map → p-8b7cc3a9.entry.js.map} +0 -0
  678. /package/dist/webcomponents/{p-b30ef853.entry.js.map → p-9fabdfb4.entry.js.map} +0 -0
  679. /package/dist/webcomponents/{p-9b50e6af.entry.js.map → p-9fe9f5d2.entry.js.map} +0 -0
  680. /package/dist/webcomponents/{p-2de59d45.entry.js.map → p-a09cf1bc.entry.js.map} +0 -0
  681. /package/dist/webcomponents/{p-30af66b3.entry.js.map → p-ae4feb1e.entry.js.map} +0 -0
  682. /package/dist/webcomponents/{p-336071a5.entry.js.map → p-b04b7996.entry.js.map} +0 -0
  683. /package/dist/webcomponents/{p-d7070712.entry.js.map → p-b39c2ad1.entry.js.map} +0 -0
  684. /package/dist/webcomponents/{p-4bb5aeab.entry.js.map → p-b8e4bc36.entry.js.map} +0 -0
  685. /package/dist/webcomponents/{p-66d26793.entry.js.map → p-b9c38611.entry.js.map} +0 -0
  686. /package/dist/webcomponents/{p-d090d412.entry.js.map → p-cf764a83.entry.js.map} +0 -0
  687. /package/dist/webcomponents/{p-27eb10f9.entry.js.map → p-d75fccd1.entry.js.map} +0 -0
  688. /package/dist/webcomponents/{p-c5b716c8.entry.js.map → p-da17c570.entry.js.map} +0 -0
  689. /package/dist/webcomponents/{p-6a9d2a0b.entry.js.map → p-df170bb4.entry.js.map} +0 -0
  690. /package/dist/webcomponents/{p-a365183a.entry.js.map → p-e58dbeef.entry.js.map} +0 -0
  691. /package/dist/webcomponents/{p-007c0f38.entry.js.map → p-f2f32774.entry.js.map} +0 -0
  692. /package/dist/webcomponents/{p-061dbde5.entry.js.map → p-f723c6fc.entry.js.map} +0 -0
  693. /package/dist/webcomponents/{p-271fafec.entry.js.map → p-f86da8f9.entry.js.map} +0 -0
  694. /package/dist/webcomponents/{p-4cc446e4.entry.js.map → p-fc94c64c.entry.js.map} +0 -0
@@ -3,6 +3,7 @@
3
3
  * © https://serpro.gov.br/ - MIT License.
4
4
  */
5
5
  import { h, Host } from "@stencil/core";
6
+ import { FloatingUIManager } from "../../utils/floating-ui";
6
7
  import Helpers from "../../utils/helpers";
7
8
  /**
8
9
  * ## Design System
@@ -19,6 +20,27 @@ export class Breadcrumb {
19
20
  * Caso não seja fornecido, o valor padrão será /.
20
21
  */
21
22
  this.homeUrl = '/';
23
+ this.innerCrumbs = [];
24
+ this.hasLoaded = false;
25
+ this.registerCrumbItems = () => {
26
+ const assignedElements = this.slotElement
27
+ ? this.slotElement.assignedElements()
28
+ : Array.from(this.el.querySelectorAll('br-crumb'));
29
+ const crumbElements = assignedElements.filter((el) => { var _a; return ((_a = el.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'br-crumb'; });
30
+ this.innerCrumbs = crumbElements.map((element) => {
31
+ const el = element;
32
+ return {
33
+ label: el.label || el.getAttribute('label'),
34
+ url: el.url || el.getAttribute('url'),
35
+ target: this.normalizeTarget(el.target || el.getAttribute('target')),
36
+ home: el.home === true,
37
+ active: el.active === true,
38
+ };
39
+ });
40
+ if (this.hasLoaded) {
41
+ this.calculateItemsWidth();
42
+ }
43
+ };
22
44
  this.defaultCrumbs = [
23
45
  { label: 'Página 01', url: '/pagina-01' },
24
46
  { label: 'Página 02', url: '/pagina-02' },
@@ -31,10 +53,6 @@ export class Breadcrumb {
31
53
  /**
32
54
  * Define o posicionamento do tooltip na tela.
33
55
  */
34
- this.tooltipPosition = { x: 0, y: 0 };
35
- /**
36
- * Define o texto do tooltip.
37
- */
38
56
  this.tooltipText = '';
39
57
  /**
40
58
  * Define o estado isSmallScreen, usado para verificar a largura do container pai e aplicar as mudanças do formato mobile.
@@ -48,11 +66,11 @@ export class Breadcrumb {
48
66
  /**
49
67
  * Largura interna dos itens do breadcrumb.
50
68
  */
51
- this.larguraInterna = 0;
69
+ this.contentWidth = 0;
52
70
  /**
53
71
  * Largura do container pai do breadcrumb.
54
72
  */
55
- this.larguraPai = 0;
73
+ this.parentWidth = 0;
56
74
  /**
57
75
  * Define o estado do botão 'Folder'.
58
76
  * Caso a lista dropdown esteja oculta o ícone no botão será 'folder-plus'.
@@ -66,43 +84,75 @@ export class Breadcrumb {
66
84
  for (const entry of entries) {
67
85
  const containerWidth = entry.contentRect.width;
68
86
  this.isSmallScreen = containerWidth < 570;
69
- this.larguraPai = containerWidth;
70
- this.calcularLarguraItens();
87
+ this.parentWidth = containerWidth;
88
+ this.calculateItemsWidth();
71
89
  }
72
90
  };
73
91
  }
92
+ handleCrumbPropsChange() {
93
+ this.registerCrumbItems();
94
+ }
95
+ normalizeTarget(target) {
96
+ const allowedTargets = ['_blank', '_self', '_parent', '_top'];
97
+ return allowedTargets.includes(target) ? target : undefined;
98
+ }
74
99
  /**
75
100
  * Verifica se o texto do link contém mais de 20 caracteres e realiza o truncamento deste caso positivo.
76
- * O número de caracteres pode ser configurado na variável 'charactersNumberTruncate'.
101
+ * O número de caracteres pode ser configurado na variável 'truncateCharactersLimit'.
77
102
  */
78
- trunc(word) {
79
- return word.length > charactersNumberTruncate ? `${word.slice(0, charactersNumberTruncate)}...` : word;
103
+ truncateText(word) {
104
+ return word.length > truncateCharactersLimit ? `${word.slice(0, truncateCharactersLimit)}...` : word;
105
+ }
106
+ isTruncatedLabel(text) {
107
+ return text.length > truncateCharactersLimit;
80
108
  }
81
109
  /**
82
110
  * Exibe o tooltip e define seu posicionamento, caso o usuário realize o 'mouse over'.
83
111
  */
84
112
  handleMouseOver(event, text) {
85
- const target = event.target;
86
- if (!target)
87
- return;
88
- const rect = target.getBoundingClientRect();
89
- this.tooltipPosition = { x: rect.left + rect.width / 2, y: rect.top - 10 };
90
- if (text.length > charactersNumberTruncate) {
113
+ var _a;
114
+ if (this.isTruncatedLabel(text)) {
115
+ const hoveredElement = (_a = event.currentTarget) !== null && _a !== void 0 ? _a : event.target;
116
+ if (!hoveredElement)
117
+ return;
118
+ this.hoveredElement = hoveredElement;
91
119
  this.tooltipText = text;
92
120
  this.showTooltip = true;
121
+ requestAnimationFrame(() => this.positionTooltip());
93
122
  }
94
123
  }
95
124
  /**
96
125
  * Esconde o tooltip caso o usuário realize o 'mouse out'.
97
126
  */
98
127
  handleMouseOut() {
128
+ this.cleanupTooltipPosition();
99
129
  this.showTooltip = false;
100
130
  }
131
+ positionTooltip() {
132
+ if (this.hoveredElement == null || this.tooltipElement == null)
133
+ return;
134
+ this.cleanupTooltipPosition();
135
+ this.floatingManager = new FloatingUIManager({
136
+ triggerElement: this.hoveredElement,
137
+ contentElement: this.tooltipElement,
138
+ arrowElement: this.tooltipArrowElement,
139
+ placement: 'top',
140
+ });
141
+ this.floatingManager.start();
142
+ }
143
+ cleanupTooltipPosition() {
144
+ var _a;
145
+ (_a = this.floatingManager) === null || _a === void 0 ? void 0 : _a.stop();
146
+ this.floatingManager = undefined;
147
+ }
101
148
  /**
102
149
  * Converte de string para JSON o valor passado na propriedade 'crumbs'.
103
150
  * Retorna o valor padrão do Breadcrumbs caso crumbs seja vazio ou inválido
104
151
  */
105
152
  getParsedItems() {
153
+ if (this.innerCrumbs.length > 0) {
154
+ return this.innerCrumbs;
155
+ }
106
156
  if (!this.crumbs || this.crumbs === '') {
107
157
  return this.defaultCrumbs;
108
158
  }
@@ -154,29 +204,34 @@ export class Breadcrumb {
154
204
  if (this.resizeObserver != null) {
155
205
  this.resizeObserver.disconnect();
156
206
  }
207
+ this.cleanupTooltipPosition();
157
208
  }
158
209
  /**
159
210
  * Calcula a largura total dos itens do breadcrumb para determinar se precisa de truncamento.
160
211
  */
161
- calcularLarguraItens() {
212
+ calculateItemsWidth() {
162
213
  requestAnimationFrame(() => {
163
214
  var _a;
164
- const itens = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.crumb, .mobile-active-page, br-item');
165
- if (itens) {
215
+ const items = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.crumb, .mobile-active-page, br-item');
216
+ if (items) {
166
217
  let totalWidth = 0;
167
- itens.forEach((item) => {
218
+ items.forEach((item) => {
168
219
  totalWidth += item.getBoundingClientRect().width;
169
220
  });
170
- this.larguraInterna = totalWidth;
171
- this.isTruncate = this.larguraInterna > this.larguraPai;
221
+ this.contentWidth = totalWidth;
222
+ this.isTruncate = this.contentWidth > this.parentWidth;
172
223
  }
173
224
  });
174
225
  }
175
226
  /**
176
227
  * Executa cálculos de largura após o componente ser carregado.
177
228
  */
229
+ componentWillLoad() {
230
+ this.registerCrumbItems();
231
+ }
178
232
  componentDidLoad() {
179
- this.calcularLarguraItens();
233
+ this.hasLoaded = true;
234
+ this.calculateItemsWidth();
180
235
  }
181
236
  /**
182
237
  * Renderiza botão Home
@@ -201,7 +256,7 @@ export class Breadcrumb {
201
256
  renderBreadcrumbItems() {
202
257
  const parsedItems = this.getParsedItems();
203
258
  const lastItem = parsedItems[parsedItems.length - 2];
204
- return this.isSmallScreen || this.isTruncate ? (h("div", { class: "buttonFolderGroup" }, this.isTruncate && !this.isSmallScreen && lastItem ? (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("a", { id: "nextCrumb", href: lastItem.url || 'javascript:void(0)', target: lastItem.target || '_self', onMouseOver: (event) => this.handleMouseOver(event, lastItem.label), onMouseOut: () => this.handleMouseOut() }, this.trunc(lastItem.label)))) : null, this.renderMobileActiveItem(parsedItems), this.renderBreadcrumbList(parsedItems))) : (parsedItems.map((item, index) => (h("li", { key: index, class: `crumb ${item.home ? 'home' : ''}`, "data-active": item.active ? 'active' : null, "aria-label": `Página ${index + 1} de ${parsedItems.length}` }, this.renderBreadcrumbLink(item)))));
259
+ return this.isSmallScreen || this.isTruncate ? (h("div", { class: "buttonFolderGroup" }, this.isTruncate && !this.isSmallScreen && lastItem ? (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("a", { id: "nextCrumb", href: lastItem.url || 'javascript:void(0)', target: lastItem.target || '_self', onMouseOver: (event) => this.handleMouseOver(event, lastItem.label), onMouseOut: () => this.handleMouseOut() }, this.truncateText(lastItem.label)))) : null, this.renderMobileActiveItem(parsedItems), this.renderBreadcrumbList(parsedItems))) : (parsedItems.map((item, index) => (h("li", { key: index, class: `crumb ${item.home ? 'home' : ''}`, "data-active": item.active ? 'active' : null, "aria-label": `Página ${index + 1} de ${parsedItems.length}` }, this.renderBreadcrumbLink(item)))));
205
260
  }
206
261
  /**
207
262
  * Renderiza item da página atual
@@ -213,30 +268,32 @@ export class Breadcrumb {
213
268
  return (h("span", { class: "mobile-active-page" }, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("span", { "aria-current": "page", "data-active": "active" }, activeItem.label)));
214
269
  }
215
270
  /**
216
- * Renderiza Lista dropdown contendo os itens do Breadcrumb
271
+ * Renderiza lista dropdown contendo os itens do Breadcrumb
217
272
  */
218
273
  renderBreadcrumbList(parsedItems) {
219
- return (h("br-list", { class: this.isFolderOpen ? 'mobile-crumb-list show' : 'mobile-crumb-list' }, this.isSmallScreen && (h("div", { "aria-label": `Página 1 de ${parsedItems.length}` }, h("br-item", null, h("a", { href: this.homeUrl, target: "_self" }, "P\u00E1gina Inicial")), h("span", { class: "br-divider" }))), parsedItems.map((item, index) => {
274
+ return (h("br-list", { class: this.isFolderOpen ? 'mobile-crumb-list show' : 'mobile-crumb-list' }, this.isSmallScreen && (h("div", { "aria-label": `Página 1 de ${parsedItems.length}` }, h("br-item", { isInteractive: true, href: this.homeUrl, target: "_self" }, "P\u00E1gina Inicial"), h("span", { class: "br-divider" }))), parsedItems.map((item, index) => {
275
+ var _a;
220
276
  if (this.isTruncate && !this.isSmallScreen && index === parsedItems.length - 2) {
221
277
  return null;
222
278
  }
223
279
  return (!item.active && (h("div", { key: index, "aria-label": this.isTruncate && !this.isSmallScreen
224
280
  ? `Página ${index + 1} de ${parsedItems.length - 2}`
225
- : `Página ${index + 2} de ${parsedItems.length}` }, h("br-item", null, h("a", { id: index == 0 ? 'firstElementList' : '', href: item.url || 'javascript:void(0)', target: item.target || '_self', onMouseOver: (event) => this.handleMouseOver(event, item.label), onMouseOut: () => this.handleMouseOut(), onKeyDown: index == parsedItems.length - 3 && this.isFolderOpen && this.isTruncate && !this.isSmallScreen
281
+ : `Página ${index + 2} de ${parsedItems.length}` }, h("br-item", { customId: index == 0 ? 'firstElementList' : undefined, "aria-label": this.isTruncatedLabel(item.label) ? item.label : null, isInteractive: true, href: item.url || 'javascript:void(0)', target: (_a = item.target) !== null && _a !== void 0 ? _a : '_self', onMouseOver: (event) => this.handleMouseOver(event, item.label), onFocusin: (event) => this.handleMouseOver(event, item.label), onMouseOut: () => this.handleMouseOut(), onFocusout: () => this.handleMouseOut(), onKeyDown: index == parsedItems.length - 3 && this.isFolderOpen && this.isTruncate && !this.isSmallScreen
226
282
  ? (event) => {
227
283
  if (event.key === 'Tab') {
228
284
  this.handleKeyDownOut(event);
229
285
  this.toggleFolder();
230
286
  }
231
287
  }
232
- : null }, this.trunc(item.label))), h("span", { class: "br-divider" }))));
288
+ : null }, this.truncateText(item.label)), h("span", { class: "br-divider" }))));
233
289
  })));
234
290
  }
235
291
  /**
236
292
  * Renderiza itens do Breadcrumb no formato desktop
237
293
  */
238
294
  renderBreadcrumbLink(item) {
239
- return item.active ? (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("span", { "aria-current": "page" }, item.label))) : (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("a", { href: item.url || 'javascript:void(0)', target: item.target || '_self', onMouseOver: (event) => this.handleMouseOver(event, item.label), onMouseOut: () => this.handleMouseOut() }, this.trunc(item.label))));
295
+ var _a;
296
+ return item.active ? (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("span", { "aria-current": "page" }, item.label))) : (h("span", null, h("br-icon", { class: "br-icon", "icon-name": "fa6-solid:chevron-right", width: "12", height: "12" }), h("a", { href: item.url || 'javascript:void(0)', "aria-label": this.isTruncatedLabel(item.label) ? item.label : null, target: (_a = item.target) !== null && _a !== void 0 ? _a : '_self', onMouseOver: (event) => this.handleMouseOver(event, item.label), onFocus: (event) => this.handleMouseOver(event, item.label), onMouseOut: () => this.handleMouseOut(), onBlur: () => this.handleMouseOut() }, this.truncateText(item.label))));
240
297
  }
241
298
  /**
242
299
  * Renderiza Tooltip
@@ -244,43 +301,45 @@ export class Breadcrumb {
244
301
  renderTooltip() {
245
302
  if (!this.showTooltip)
246
303
  return null;
247
- return (h("div", { class: "tooltip-box", style: { left: `${this.tooltipPosition.x}px`, top: `${this.tooltipPosition.y}px` } }, this.tooltipText));
304
+ return (h("div", { class: "tooltip-box", ref: (el) => {
305
+ this.tooltipElement = el;
306
+ } }, this.tooltipText, h("div", { class: "tooltip-arrow", ref: (el) => {
307
+ this.tooltipArrowElement = el;
308
+ } })));
248
309
  }
249
310
  /**
250
311
  * Controla navegação pelo teclado após lista de itens aberta
251
312
  * Dispara foco no primeiro item da lista flutuante
252
313
  */
253
314
  handleKeyDown(event) {
254
- if (event.key === 'Tab') {
255
- if (this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {
256
- setTimeout(() => {
257
- var _a;
258
- const element = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('firstElementList');
259
- if (element) {
260
- element.focus();
261
- }
262
- }, 0); // Aguarda um ciclo de renderização
263
- }
315
+ if (event.key === 'Tab' && this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {
316
+ setTimeout(() => {
317
+ var _a;
318
+ const element = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('firstElementList');
319
+ if (element) {
320
+ element.focus();
321
+ }
322
+ }, 0); // Aguarda um ciclo de renderização
264
323
  }
265
324
  }
266
325
  /**
267
326
  * Ao finalizar navegação por teclado dentro da lista, dispara foco no item fora da lista flutuante
268
327
  */
269
328
  handleKeyDownOut(event) {
270
- if (event.key === 'Tab') {
271
- if (this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {
272
- setTimeout(() => {
273
- var _a;
274
- const element = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('nextCrumb');
275
- if (element) {
276
- element.focus();
277
- }
278
- }, 0);
279
- }
329
+ if (event.key === 'Tab' && this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {
330
+ setTimeout(() => {
331
+ var _a;
332
+ const element = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('nextCrumb');
333
+ if (element) {
334
+ element.focus();
335
+ }
336
+ }, 0);
280
337
  }
281
338
  }
282
339
  render() {
283
- return (h(Host, { key: '9099dea27e29550978af905def80eb20fd15abb3' }, h("nav", { key: '64fbf0c1998d38bee1901a95e5e00e966d631ed1', class: this.getCssClassMap(), "aria-label": "Breadcrumbs" }, h("ol", { key: '100a2f0168c8e787ad0f76704e2ed6263b3907fe', class: "crumb-list" }, this.renderHomeButton(), this.renderTruncateButton(), this.renderBreadcrumbItems())), this.renderTooltip()));
340
+ return (h(Host, { key: '26d8bb568842346ba0d565ea4dda50acb32509ab' }, h("div", { key: 'd95a33b1d6eacb41ad5bc2d88a02b11d45536e44', style: { display: 'none' } }, h("slot", { key: '789163e308af47967aa01f92380b15e1d5fa9489', ref: (el) => {
341
+ this.slotElement = el;
342
+ }, onSlotchange: this.registerCrumbItems })), h("nav", { key: '1e619e97135ccf7c30561a55db88562256f53045', class: this.getCssClassMap(), "aria-label": "Breadcrumbs" }, h("ol", { key: '84c2b32e2b20a972a15270b879ec67149a2f7d6a', class: "crumb-list" }, this.renderHomeButton(), this.renderTruncateButton(), this.renderBreadcrumbItems())), this.renderTooltip()));
284
343
  }
285
344
  static get is() { return "br-breadcrumb"; }
286
345
  static get encapsulation() { return "shadow"; }
@@ -364,21 +423,29 @@ export class Breadcrumb {
364
423
  }
365
424
  static get states() {
366
425
  return {
426
+ "innerCrumbs": {},
367
427
  "showTooltip": {},
368
- "tooltipPosition": {},
369
428
  "tooltipText": {},
370
429
  "isSmallScreen": {},
371
430
  "isTruncate": {},
372
- "larguraInterna": {},
373
- "larguraPai": {},
431
+ "contentWidth": {},
432
+ "parentWidth": {},
374
433
  "isFolderOpen": {}
375
434
  };
376
435
  }
377
436
  static get elementRef() { return "el"; }
378
- static get attachInternalsMemberName() { return "elementInternals"; }
437
+ static get listeners() {
438
+ return [{
439
+ "name": "brCrumbPropsChange",
440
+ "method": "handleCrumbPropsChange",
441
+ "target": undefined,
442
+ "capture": false,
443
+ "passive": false
444
+ }];
445
+ }
379
446
  }
380
447
  /**
381
448
  * Limite de caracteres para o truncamento
382
449
  */
383
- const charactersNumberTruncate = 20;
450
+ const truncateCharactersLimit = 20;
384
451
  //# sourceMappingURL=breadcrumb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/breadcrumb/breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEzF,OAAO,OAAO,MAAM,qBAAqB,CAAA;AASzC;;;;GAIG;AAMH,MAAM,OAAO,UAAU;IALvB;QASE;;WAEG;QAC+B,aAAQ,GAAW,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAC9F;;WAEG;QACK,YAAO,GAAW,GAAG,CAAA;QAQrB,kBAAa,GAAqB;YACxC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;YACzC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;YACzC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;SACxC,CAAA;QAED;;WAEG;QACM,gBAAW,GAAY,KAAK,CAAA;QAErC;;WAEG;QACM,oBAAe,GAA6B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAEnE;;WAEG;QACM,gBAAW,GAAW,EAAE,CAAA;QAEjC;;;WAGG;QACM,kBAAa,GAAY,KAAK,CAAA;QAEvC;;WAEG;QACM,eAAU,GAAY,KAAK,CAAA;QAEpC;;WAEG;QACM,mBAAc,GAAW,CAAC,CAAA;QAEnC;;WAEG;QACM,eAAU,GAAW,CAAC,CAAA;QAE/B;;;;WAIG;QACM,iBAAY,GAAY,KAAK,CAAA;QAgFtC;;WAEG;QACK,wBAAmB,GAAG,CAAC,OAA8B,EAAE,EAAE;YAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAA;gBAC9C,IAAI,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,CAAA;gBACzC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAA;gBAChC,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC7B,CAAC;QACH,CAAC,CAAA;KA+RF;IAvXC;;;OAGG;IACK,KAAK,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACxG,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAiB,EAAE,IAAY;QACrD,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAA;QACjD,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;QAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,CAAA;QAE1E,IAAI,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;YACtF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAA;QACjF,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;IACrC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;IACxC,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAA;IACH,CAAC;IAmBD;;OAEG;IACH,iBAAiB;QACf,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAClE,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,qBAAqB,CAAC,GAAG,EAAE;;YACzB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;YAC1F,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,UAAU,GAAG,CAAC,CAAA;gBAClB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,UAAU,IAAK,IAAoB,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAA;gBACnE,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAA;YACzD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAA;QAChG,OAAO,CACL,iBACE,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,QAAQ,gBACF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,EAC/E,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAEtF,4BAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAY,CACrF,CACb,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAA;YAChG,OAAO,CACL,WAAK,KAAK,EAAC,mBAAmB;gBAC5B,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;gBAC9F,iBACE,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,QAAQ,gBACF,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,yBAAyB,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;oBAE/C,4BAAoB,iBAAiB,GAAY,CACvC,CACR,CACP,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAEpD,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAC7C,WAAK,KAAK,EAAC,mBAAmB;YAC3B,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,CAAC,CAAC,CACpD;gBACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;gBAC9F,SACE,EAAE,EAAC,WAAW,EACd,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI,oBAAoB,EAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,OAAO,EAClC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACnE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAEtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzB,CACC,CACR,CAAC,CAAC,CAAC,IAAI;YACP,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CACnC,CACP,CAAC,CAAC,CAAC,CACF,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,UACE,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iBAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAC9B,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,IAEzD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAC7B,CACN,CAAC,CACH,CAAA;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,WAA6B;QAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAC5B,OAAO,CACL,YAAM,KAAK,EAAC,oBAAoB;YAC9B,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,4BAAmB,MAAM,iBAAa,QAAQ,IAC3C,UAAU,CAAC,KAAK,CACZ,CACF,CACR,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,WAA6B;QACxD,OAAO,CACL,eAAS,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,mBAAmB;YAC/E,IAAI,CAAC,aAAa,IAAI,CACrB,yBAAiB,eAAe,WAAW,CAAC,MAAM,EAAE;gBAClD;oBACE,SAAG,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAC,OAAO,0BAEjC,CACI;gBACV,YAAM,KAAK,EAAC,YAAY,GAAQ,CAC5B,CACP;YACA,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/E,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,OAAO,CACL,CAAC,IAAI,CAAC,MAAM,IAAI,CACd,WACE,GAAG,EAAE,KAAK,gBAER,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;wBACpC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpD,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE;oBAGpD;wBACE,SACE,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EACxC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,oBAAoB,EACtC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC/D,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EACvC,SAAS,EACP,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;gCAC5F,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oCACR,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;wCACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;wCAC5B,IAAI,CAAC,YAAY,EAAE,CAAA;oCACrB,CAAC;gCACH,CAAC;gCACH,CAAC,CAAC,IAAI,IAGT,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CACrB,CACI;oBACV,YAAM,KAAK,EAAC,YAAY,GAAQ,CAC5B,CACP,CACF,CAAA;YACH,CAAC,CAAC,CACM,CACX,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAoB;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACnB;YACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,4BAAmB,MAAM,IAAE,IAAI,CAAC,KAAK,CAAQ,CACxC,CACR,CAAC,CAAC,CAAC,CACF;YACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,SACE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,oBAAoB,EACtC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC/D,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAEtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CACrB,CACC,CACR,CAAA;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,OAAO,CACL,WAAK,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,IACxG,IAAI,CAAC,WAAW,CACb,CACP,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChE,UAAU,CAAC,GAAG,EAAE;;oBACd,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,kBAAkB,CAAC,CAAA;oBACtE,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,KAAK,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,mCAAmC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChE,UAAU,CAAC,GAAG,EAAE;;oBACd,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,WAAW,CAAC,CAAA;oBAC/D,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,KAAK,EAAE,CAAA;oBACjB,CAAC;gBACH,CAAC,EAAE,CAAC,CAAC,CAAA;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAa,aAAa;gBACzD,2DAAI,KAAK,EAAC,YAAY;oBACnB,IAAI,CAAC,gBAAgB,EAAE;oBACvB,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,EAAE,CAC1B,CACD;YACL,IAAI,CAAC,aAAa,EAAE,CAChB,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF;AAED;;GAEG;AACH,MAAM,wBAAwB,GAAG,EAAE,CAAA","sourcesContent":["import { AttachInternals, Component, Element, h, Host, Prop, State } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\ninterface BreadcrumbItem {\n label: string\n url?: string\n target?: string\n home?: boolean\n active?: 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/breadcrumb?tab=designer).\n */\n@Component({\n tag: 'br-breadcrumb',\n styleUrl: 'breadcrumb.scss',\n shadow: true,\n})\nexport class Breadcrumb {\n @Element() el: HTMLBrBreadcrumbElement\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-breadcrumb')\n /**\n * Caso não seja fornecido, o valor padrão será /.\n */\n @Prop() homeUrl: string = '/'\n\n /**\n * Define o array de objetos que receberá os nomes e links do breadcrumb.\n * Define valor padrão do breadcrumb 'defaultCrumbs'.\n */\n @Prop() crumbs: string | BreadcrumbItem[]\n\n private defaultCrumbs: BreadcrumbItem[] = [\n { label: 'Página 01', url: '/pagina-01' },\n { label: 'Página 02', url: '/pagina-02' },\n { label: 'Página Atual', active: true },\n ]\n\n /**\n * Define o estado oculto ou visível do tooltip.\n */\n @State() showTooltip: boolean = false\n\n /**\n * Define o posicionamento do tooltip na tela.\n */\n @State() tooltipPosition: { x: number; y: number } = { x: 0, y: 0 }\n\n /**\n * Define o texto do tooltip.\n */\n @State() tooltipText: string = ''\n\n /**\n * Define o estado isSmallScreen, usado para verificar a largura do container pai e aplicar as mudanças do formato mobile.\n * No formato mobile o breadcrumb apresenta um comportamento específico.\n */\n @State() isSmallScreen: boolean = false\n\n /**\n * Define se o breadcrumb deve truncar os itens por falta de espaço.\n */\n @State() isTruncate: boolean = false\n\n /**\n * Largura interna dos itens do breadcrumb.\n */\n @State() larguraInterna: number = 0\n\n /**\n * Largura do container pai do breadcrumb.\n */\n @State() larguraPai: number = 0\n\n /**\n * Define o estado do botão 'Folder'.\n * Caso a lista dropdown esteja oculta o ícone no botão será 'folder-plus'.\n * Caso a lista dropdown esteja visível o ícone no botão será 'folder-minus'.\n */\n @State() isFolderOpen: boolean = false\n\n /**\n * Verifica se o texto do link contém mais de 20 caracteres e realiza o truncamento deste caso positivo.\n * O número de caracteres pode ser configurado na variável 'charactersNumberTruncate'.\n */\n private trunc(word: string) {\n return word.length > charactersNumberTruncate ? `${word.slice(0, charactersNumberTruncate)}...` : word\n }\n\n /**\n * Exibe o tooltip e define seu posicionamento, caso o usuário realize o 'mouse over'.\n */\n private handleMouseOver(event: MouseEvent, text: string) {\n const target = event.target as HTMLElement | null\n if (!target) return\n\n const rect = target.getBoundingClientRect()\n this.tooltipPosition = { x: rect.left + rect.width / 2, y: rect.top - 10 }\n\n if (text.length > charactersNumberTruncate) {\n this.tooltipText = text\n this.showTooltip = true\n }\n }\n\n /**\n * Esconde o tooltip caso o usuário realize o 'mouse out'.\n */\n private handleMouseOut() {\n this.showTooltip = false\n }\n\n /**\n * Converte de string para JSON o valor passado na propriedade 'crumbs'.\n * Retorna o valor padrão do Breadcrumbs caso crumbs seja vazio ou inválido\n */\n private getParsedItems(): BreadcrumbItem[] {\n if (!this.crumbs || this.crumbs === '') {\n return this.defaultCrumbs\n }\n\n try {\n const parsed = typeof this.crumbs === 'string' ? JSON.parse(this.crumbs) : this.crumbs\n return Array.isArray(parsed) && parsed.length > 0 ? parsed : this.defaultCrumbs\n } catch {\n console.error('Invalid JSON format for crumbs:', this.crumbs)\n return this.defaultCrumbs\n }\n }\n\n /**\n * Ao clicar no botão HOME, direciona o usuário para URL passada na propriedade 'homeUrl'.\n */\n private handleHomeClick() {\n window.location.href = this.homeUrl\n }\n\n /**\n * Altera o estado do botão 'Folder', caso a lista dropdown esteja aberta ou fechada.\n */\n private toggleFolder() {\n this.isFolderOpen = !this.isFolderOpen\n }\n\n /**\n * Define as classes CSS usadas no breadcrumb.\n */\n private getCssClassMap(): { [key: string]: boolean } {\n return {\n 'br-breadcrumb': true,\n small: this.isSmallScreen,\n }\n }\n\n /**\n * Atualiza o estado 'isSmallScreen' com base no tamanho do container pai, se menor que 570px.\n */\n private resizeObserver: ResizeObserver\n\n /**\n * Atualiza os estados de largura do breadcrumb ao detectar mudanças no container pai.\n */\n private updateContainerSize = (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const containerWidth = entry.contentRect.width\n this.isSmallScreen = containerWidth < 570\n this.larguraPai = containerWidth\n this.calcularLarguraItens()\n }\n }\n\n /**\n * Adiciona o 'resizeObserver' para checar o tamanho do container pai.\n */\n connectedCallback() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.updateContainerSize)\n if (this.el.parentElement !== null) {\n this.resizeObserver.observe(this.el.parentElement)\n }\n }\n }\n\n /**\n * Remove o 'resizeObserver'.\n */\n disconnectedCallback() {\n if (this.resizeObserver != null) {\n this.resizeObserver.disconnect()\n }\n }\n\n /**\n * Calcula a largura total dos itens do breadcrumb para determinar se precisa de truncamento.\n */\n private calcularLarguraItens() {\n requestAnimationFrame(() => {\n const itens = this.el.shadowRoot?.querySelectorAll('.crumb, .mobile-active-page, br-item')\n if (itens) {\n let totalWidth = 0\n itens.forEach((item) => {\n totalWidth += (item as HTMLElement).getBoundingClientRect().width\n })\n this.larguraInterna = totalWidth\n this.isTruncate = this.larguraInterna > this.larguraPai\n }\n })\n }\n\n /**\n * Executa cálculos de largura após o componente ser carregado.\n */\n componentDidLoad() {\n this.calcularLarguraItens()\n }\n\n /**\n * Renderiza botão Home\n */\n private renderHomeButton() {\n const buttonFolderClass = this.isFolderOpen ? 'fa6-solid:folder-minus' : 'fa6-solid:folder-plus'\n return (\n <br-button\n id=\"circle\"\n shape=\"circle\"\n aria-label={this.isSmallScreen ? 'Exibir lista de páginas' : 'Voltar para Home'}\n onClick={this.isSmallScreen ? () => this.toggleFolder() : () => this.handleHomeClick()}\n >\n <br-icon icon-name={`${this.isSmallScreen ? buttonFolderClass : 'fa6-solid:house'}`}></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza botão Folder no comportamento truncado\n */\n private renderTruncateButton() {\n if (this.isTruncate && !this.isSmallScreen) {\n const buttonFolderClass = this.isFolderOpen ? 'fa6-solid:folder-minus' : 'fa6-solid:folder-plus'\n return (\n <div class=\"buttonFolderGroup\">\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <br-button\n id=\"circle\"\n shape=\"circle\"\n aria-label={this.isFolderOpen ? 'Recolher lista de páginas' : 'Exibir lista de páginas'}\n onClick={() => this.toggleFolder()}\n onKeyDown={(event) => this.handleKeyDown(event)}\n >\n <br-icon icon-name={buttonFolderClass}></br-icon>\n </br-button>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza itens do Breadcrumb no comportamento mobile ou truncado\n */\n private renderBreadcrumbItems() {\n const parsedItems = this.getParsedItems()\n const lastItem = parsedItems[parsedItems.length - 2]\n\n return this.isSmallScreen || this.isTruncate ? (\n <div class=\"buttonFolderGroup\">\n {this.isTruncate && !this.isSmallScreen && lastItem ? (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <a\n id=\"nextCrumb\"\n href={lastItem.url || 'javascript:void(0)'}\n target={lastItem.target || '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, lastItem.label)}\n onMouseOut={() => this.handleMouseOut()}\n >\n {this.trunc(lastItem.label)}\n </a>\n </span>\n ) : null}\n {this.renderMobileActiveItem(parsedItems)}\n {this.renderBreadcrumbList(parsedItems)}\n </div>\n ) : (\n parsedItems.map((item, index) => (\n <li\n key={index}\n class={`crumb ${item.home ? 'home' : ''}`}\n data-active={item.active ? 'active' : null}\n aria-label={`Página ${index + 1} de ${parsedItems.length}`}\n >\n {this.renderBreadcrumbLink(item)}\n </li>\n ))\n )\n }\n\n /**\n * Renderiza item da página atual\n */\n private renderMobileActiveItem(parsedItems: BreadcrumbItem[]) {\n const activeItem = parsedItems.find((item) => item.active)\n if (!activeItem) return null\n return (\n <span class=\"mobile-active-page\">\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <span aria-current=\"page\" data-active=\"active\">\n {activeItem.label}\n </span>\n </span>\n )\n }\n\n /**\n * Renderiza Lista dropdown contendo os itens do Breadcrumb\n */\n private renderBreadcrumbList(parsedItems: BreadcrumbItem[]) {\n return (\n <br-list class={this.isFolderOpen ? 'mobile-crumb-list show' : 'mobile-crumb-list'}>\n {this.isSmallScreen && (\n <div aria-label={`Página 1 de ${parsedItems.length}`}>\n <br-item>\n <a href={this.homeUrl} target=\"_self\">\n Página Inicial\n </a>\n </br-item>\n <span class=\"br-divider\"></span>\n </div>\n )}\n {parsedItems.map((item, index) => {\n if (this.isTruncate && !this.isSmallScreen && index === parsedItems.length - 2) {\n return null\n }\n return (\n !item.active && (\n <div\n key={index}\n aria-label={\n this.isTruncate && !this.isSmallScreen\n ? `Página ${index + 1} de ${parsedItems.length - 2}`\n : `Página ${index + 2} de ${parsedItems.length}`\n }\n >\n <br-item>\n <a\n id={index == 0 ? 'firstElementList' : ''}\n href={item.url || 'javascript:void(0)'}\n target={item.target || '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, item.label)}\n onMouseOut={() => this.handleMouseOut()}\n onKeyDown={\n index == parsedItems.length - 3 && this.isFolderOpen && this.isTruncate && !this.isSmallScreen\n ? (event) => {\n if (event.key === 'Tab') {\n this.handleKeyDownOut(event)\n this.toggleFolder()\n }\n }\n : null\n }\n >\n {this.trunc(item.label)}\n </a>\n </br-item>\n <span class=\"br-divider\"></span>\n </div>\n )\n )\n })}\n </br-list>\n )\n }\n\n /**\n * Renderiza itens do Breadcrumb no formato desktop\n */\n private renderBreadcrumbLink(item: BreadcrumbItem) {\n return item.active ? (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <span aria-current=\"page\">{item.label}</span>\n </span>\n ) : (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <a\n href={item.url || 'javascript:void(0)'}\n target={item.target || '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, item.label)}\n onMouseOut={() => this.handleMouseOut()}\n >\n {this.trunc(item.label)}\n </a>\n </span>\n )\n }\n\n /**\n * Renderiza Tooltip\n */\n private renderTooltip() {\n if (!this.showTooltip) return null\n return (\n <div class=\"tooltip-box\" style={{ left: `${this.tooltipPosition.x}px`, top: `${this.tooltipPosition.y}px` }}>\n {this.tooltipText}\n </div>\n )\n }\n\n /**\n * Controla navegação pelo teclado após lista de itens aberta\n * Dispara foco no primeiro item da lista flutuante\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n if (this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {\n setTimeout(() => {\n const element = this.el.shadowRoot?.getElementById('firstElementList')\n if (element) {\n element.focus()\n }\n }, 0) // Aguarda um ciclo de renderização\n }\n }\n }\n\n /**\n * Ao finalizar navegação por teclado dentro da lista, dispara foco no item fora da lista flutuante\n */\n private handleKeyDownOut(event: KeyboardEvent) {\n if (event.key === 'Tab') {\n if (this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {\n setTimeout(() => {\n const element = this.el.shadowRoot?.getElementById('nextCrumb')\n if (element) {\n element.focus()\n }\n }, 0)\n }\n }\n }\n\n render() {\n return (\n <Host>\n <nav class={this.getCssClassMap()} aria-label=\"Breadcrumbs\">\n <ol class=\"crumb-list\">\n {this.renderHomeButton()}\n {this.renderTruncateButton()}\n {this.renderBreadcrumbItems()}\n </ol>\n </nav>\n {this.renderTooltip()}\n </Host>\n )\n }\n}\n\n/**\n * Limite de caracteres para o truncamento\n */\nconst charactersNumberTruncate = 20\n"]}
1
+ {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../../../../../packages/webcomponents/src/components/breadcrumb/breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,OAAO,MAAM,qBAAqB,CAAA;AAYzC;;;;GAIG;AAMH,MAAM,OAAO,UAAU;IALvB;QAQE;;WAEG;QAC+B,aAAQ,GAAW,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAC9F;;WAEG;QACK,YAAO,GAAW,GAAG,CAAA;QAQpB,gBAAW,GAAqB,EAAE,CAAA;QAInC,cAAS,GAAG,KAAK,CAAA;QAYjB,uBAAkB,GAAG,GAAG,EAAE;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW;gBACvC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;YACpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,EAAE,CAAC,OAAO,0CAAE,WAAW,EAAE,MAAK,UAAU,CAAA,EAAA,CAAC,CAAA;YAE/F,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/C,MAAM,EAAE,GAAG,OAMV,CAAA;gBAED,OAAO;oBACL,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;oBAC3C,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;oBACrC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACpE,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI;oBACtB,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI;iBAC3B,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC,CAAA;QAEO,kBAAa,GAAqB;YACxC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;YACzC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;YACzC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;SACxC,CAAA;QAED;;WAEG;QACM,gBAAW,GAAY,KAAK,CAAA;QAErC;;WAEG;QACM,gBAAW,GAAW,EAAE,CAAA;QAUjC;;;WAGG;QACM,kBAAa,GAAY,KAAK,CAAA;QAEvC;;WAEG;QACM,eAAU,GAAY,KAAK,CAAA;QAEpC;;WAEG;QACM,iBAAY,GAAW,CAAC,CAAA;QAEjC;;WAEG;QACM,gBAAW,GAAW,CAAC,CAAA;QAEhC;;;;WAIG;QACM,iBAAY,GAAY,KAAK,CAAA;QA4GtC;;WAEG;QACK,wBAAmB,GAAG,CAAC,OAA8B,EAAE,EAAE;YAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAA;gBAC9C,IAAI,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,CAAA;gBACzC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAA;gBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC,CAAA;KAuTF;IArgBC,sBAAsB;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC;IAEO,eAAe,CAAC,MAAsB;QAC5C,MAAM,cAAc,GAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACjF,OAAO,cAAc,CAAC,QAAQ,CAAC,MAA0B,CAAC,CAAC,CAAC,CAAE,MAA2B,CAAC,CAAC,CAAC,SAAS,CAAA;IACvG,CAAC;IAmFD;;;OAGG;IACK,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACtG,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAA;IAC9C,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAA8B,EAAE,IAAY;;QAClE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,MAAC,KAAK,CAAC,aAAoC,mCAAK,KAAK,CAAC,MAA6B,CAAA;YAC1G,IAAI,CAAC,cAAc;gBAAE,OAAM;YAE3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC1B,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;YAAE,OAAM;QAEtE,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE7B,IAAI,CAAC,eAAe,GAAG,IAAI,iBAAiB,CAAC;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,YAAY,EAAE,IAAI,CAAC,mBAAmB;YACtC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAA;QAEF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAEO,sBAAsB;;QAC5B,MAAA,IAAI,CAAC,eAAe,0CAAE,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;IAClC,CAAC;IAED;;;OAGG;IACK,cAAc;QACpB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;YACtF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAA;QACjF,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;IACrC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAA;IACxC,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,KAAK,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAA;IACH,CAAC;IAmBD;;OAEG;IACH,iBAAiB;QACf,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAClE,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAClC,CAAC;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAA;IAC/B,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,qBAAqB,CAAC,GAAG,EAAE;;YACzB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;YAC1F,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,UAAU,GAAG,CAAC,CAAA;gBAClB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,UAAU,IAAK,IAAoB,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAA;gBACnE,CAAC,CAAC,CAAA;gBACF,IAAI,CAAC,YAAY,GAAG,UAAU,CAAA;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAA;YACxD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC3B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,mBAAmB,EAAE,CAAA;IAC5B,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAA;QAChG,OAAO,CACL,iBACE,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,QAAQ,gBACF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,EAC/E,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAEtF,4BAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAY,CACrF,CACb,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAA;YAChG,OAAO,CACL,WAAK,KAAK,EAAC,mBAAmB;gBAC5B,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;gBAC9F,iBACE,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,QAAQ,gBACF,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,yBAAyB,EACvF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAClC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;oBAE/C,4BAAoB,iBAAiB,GAAY,CACvC,CACR,CACP,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAEpD,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAC7C,WAAK,KAAK,EAAC,mBAAmB;YAC3B,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,CAAC,CAAC,CACpD;gBACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;gBAC9F,SACE,EAAE,EAAC,WAAW,EACd,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI,oBAAoB,EAC1C,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,OAAO,EAClC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACnE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAEtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAChC,CACC,CACR,CAAC,CAAC,CAAC,IAAI;YACP,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CACnC,CACP,CAAC,CAAC,CAAC,CACF,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,UACE,GAAG,EAAE,KAAK,EACV,KAAK,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,iBAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,gBAC9B,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,IAEzD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAC7B,CACN,CAAC,CACH,CAAA;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,WAA6B;QAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAC5B,OAAO,CACL,YAAM,KAAK,EAAC,oBAAoB;YAC9B,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,4BAAmB,MAAM,iBAAa,QAAQ,IAC3C,UAAU,CAAC,KAAK,CACZ,CACF,CACR,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,WAA6B;QACxD,OAAO,CACL,eAAS,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,mBAAmB;YAC/E,IAAI,CAAC,aAAa,IAAI,CACrB,yBAAiB,eAAe,WAAW,CAAC,MAAM,EAAE;gBAClD,eAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAC,OAAO,0BAEtD;gBACV,YAAM,KAAK,EAAC,YAAY,GAAQ,CAC5B,CACP;YACA,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;gBAC/B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/E,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,OAAO,CACL,CAAC,IAAI,CAAC,MAAM,IAAI,CACd,WACE,GAAG,EAAE,KAAK,gBAER,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;wBACpC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpD,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE;oBAGpD,eACE,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,gBACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACjE,aAAa,EAAE,IAAI,EACnB,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,oBAAoB,EACtC,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,OAAO,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC/D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC7D,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EACvC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EACvC,SAAS,EACP,KAAK,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;4BAC5F,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gCACR,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;oCACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;oCAC5B,IAAI,CAAC,YAAY,EAAE,CAAA;gCACrB,CAAC;4BACH,CAAC;4BACH,CAAC,CAAC,IAAI,IAGT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACtB;oBACV,YAAM,KAAK,EAAC,YAAY,GAAQ,CAC5B,CACP,CACF,CAAA;YACH,CAAC,CAAC,CACM,CACX,CAAA;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,IAAoB;;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACnB;YACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,4BAAmB,MAAM,IAAE,IAAI,CAAC,KAAK,CAAQ,CACxC,CACR,CAAC,CAAC,CAAC,CACF;YACE,eAAS,KAAK,EAAC,SAAS,eAAW,yBAAyB,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAW;YAC9F,SACE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,oBAAoB,gBAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EACjE,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,OAAO,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC/D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC3D,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EACvC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAElC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAC5B,CACC,CACR,CAAA;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAClC,OAAO,CACL,WACE,KAAK,EAAC,aAAa,EACnB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,CAAC,cAAc,GAAG,EAAoB,CAAA;YAC5C,CAAC;YAEA,IAAI,CAAC,WAAW;YACjB,WACE,KAAK,EAAC,eAAe,EACrB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,IAAI,CAAC,mBAAmB,GAAG,EAAoB,CAAA;gBACjD,CAAC,GACI,CACH,CACP,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,KAAoB;QACxC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvF,UAAU,CAAC,GAAG,EAAE;;gBACd,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,kBAAkB,CAAC,CAAA;gBACtE,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,mCAAmC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvF,UAAU,CAAC,GAAG,EAAE;;gBACd,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,WAAW,CAAC,CAAA;gBAC/D,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,EAAE,CAAA;gBACjB,CAAC;YACH,CAAC,EAAE,CAAC,CAAC,CAAA;QACP,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;gBAC7B,6DACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;wBACV,IAAI,CAAC,WAAW,GAAG,EAAqB,CAAA;oBAC1C,CAAC,EACD,YAAY,EAAE,IAAI,CAAC,kBAAkB,GAC/B,CACJ;YACN,4DAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAa,aAAa;gBACzD,2DAAI,KAAK,EAAC,YAAY;oBACnB,IAAI,CAAC,gBAAgB,EAAE;oBACvB,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,IAAI,CAAC,qBAAqB,EAAE,CAC1B,CACD;YACL,IAAI,CAAC,aAAa,EAAE,CAChB,CACR,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF;AAED;;GAEG;AACH,MAAM,uBAAuB,GAAG,EAAE,CAAA","sourcesContent":["import { Component, Element, h, Host, Listen, Prop, State } from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\ninterface BreadcrumbItem {\n label: string\n url?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n home?: boolean\n active?: boolean\n}\n\ntype BreadcrumbTarget = '_blank' | '_self' | '_parent' | '_top'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/breadcrumb?tab=designer).\n */\n@Component({\n tag: 'br-breadcrumb',\n styleUrl: 'breadcrumb.scss',\n shadow: true,\n})\nexport class Breadcrumb {\n @Element() el: HTMLBrBreadcrumbElement\n\n /**\n * Identificador único; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-breadcrumb')\n /**\n * Caso não seja fornecido, o valor padrão será /.\n */\n @Prop() homeUrl: string = '/'\n\n /**\n * Define o array de objetos que receberá os nomes e links do breadcrumb.\n * Define valor padrão do breadcrumb 'defaultCrumbs'.\n */\n @Prop() crumbs: string | BreadcrumbItem[]\n\n @State() innerCrumbs: BreadcrumbItem[] = []\n\n private slotElement: HTMLSlotElement\n\n private hasLoaded = false\n\n @Listen('brCrumbPropsChange')\n handleCrumbPropsChange() {\n this.registerCrumbItems()\n }\n\n private normalizeTarget(target?: string | null): BreadcrumbTarget | undefined {\n const allowedTargets: BreadcrumbTarget[] = ['_blank', '_self', '_parent', '_top']\n return allowedTargets.includes(target as BreadcrumbTarget) ? (target as BreadcrumbTarget) : undefined\n }\n\n private registerCrumbItems = () => {\n const assignedElements = this.slotElement\n ? this.slotElement.assignedElements()\n : Array.from(this.el.querySelectorAll('br-crumb'))\n const crumbElements = assignedElements.filter((el) => el.tagName?.toLowerCase() === 'br-crumb')\n\n this.innerCrumbs = crumbElements.map((element) => {\n const el = element as Element & {\n label?: string\n url?: string\n target?: '_blank' | '_self' | '_parent' | '_top'\n home?: boolean\n active?: boolean\n }\n\n return {\n label: el.label || el.getAttribute('label'),\n url: el.url || el.getAttribute('url'),\n target: this.normalizeTarget(el.target || el.getAttribute('target')),\n home: el.home === true,\n active: el.active === true,\n }\n })\n\n if (this.hasLoaded) {\n this.calculateItemsWidth()\n }\n }\n\n private defaultCrumbs: BreadcrumbItem[] = [\n { label: 'Página 01', url: '/pagina-01' },\n { label: 'Página 02', url: '/pagina-02' },\n { label: 'Página Atual', active: true },\n ]\n\n /**\n * Define o estado oculto ou visível do tooltip.\n */\n @State() showTooltip: boolean = false\n\n /**\n * Define o posicionamento do tooltip na tela.\n */\n @State() tooltipText: string = ''\n\n private floatingManager?: FloatingUIManager\n\n private hoveredElement?: HTMLElement\n\n private tooltipElement?: HTMLDivElement\n\n private tooltipArrowElement?: HTMLDivElement\n\n /**\n * Define o estado isSmallScreen, usado para verificar a largura do container pai e aplicar as mudanças do formato mobile.\n * No formato mobile o breadcrumb apresenta um comportamento específico.\n */\n @State() isSmallScreen: boolean = false\n\n /**\n * Define se o breadcrumb deve truncar os itens por falta de espaço.\n */\n @State() isTruncate: boolean = false\n\n /**\n * Largura interna dos itens do breadcrumb.\n */\n @State() contentWidth: number = 0\n\n /**\n * Largura do container pai do breadcrumb.\n */\n @State() parentWidth: number = 0\n\n /**\n * Define o estado do botão 'Folder'.\n * Caso a lista dropdown esteja oculta o ícone no botão será 'folder-plus'.\n * Caso a lista dropdown esteja visível o ícone no botão será 'folder-minus'.\n */\n @State() isFolderOpen: boolean = false\n\n /**\n * Verifica se o texto do link contém mais de 20 caracteres e realiza o truncamento deste caso positivo.\n * O número de caracteres pode ser configurado na variável 'truncateCharactersLimit'.\n */\n private truncateText(word: string) {\n return word.length > truncateCharactersLimit ? `${word.slice(0, truncateCharactersLimit)}...` : word\n }\n\n private isTruncatedLabel(text: string) {\n return text.length > truncateCharactersLimit\n }\n\n /**\n * Exibe o tooltip e define seu posicionamento, caso o usuário realize o 'mouse over'.\n */\n private handleMouseOver(event: MouseEvent | FocusEvent, text: string) {\n if (this.isTruncatedLabel(text)) {\n const hoveredElement = (event.currentTarget as HTMLElement | null) ?? (event.target as HTMLElement | null)\n if (!hoveredElement) return\n\n this.hoveredElement = hoveredElement\n this.tooltipText = text\n this.showTooltip = true\n requestAnimationFrame(() => this.positionTooltip())\n }\n }\n\n /**\n * Esconde o tooltip caso o usuário realize o 'mouse out'.\n */\n private handleMouseOut() {\n this.cleanupTooltipPosition()\n this.showTooltip = false\n }\n\n private positionTooltip() {\n if (this.hoveredElement == null || this.tooltipElement == null) return\n\n this.cleanupTooltipPosition()\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.hoveredElement,\n contentElement: this.tooltipElement,\n arrowElement: this.tooltipArrowElement,\n placement: 'top',\n })\n\n this.floatingManager.start()\n }\n\n private cleanupTooltipPosition() {\n this.floatingManager?.stop()\n this.floatingManager = undefined\n }\n\n /**\n * Converte de string para JSON o valor passado na propriedade 'crumbs'.\n * Retorna o valor padrão do Breadcrumbs caso crumbs seja vazio ou inválido\n */\n private getParsedItems(): BreadcrumbItem[] {\n if (this.innerCrumbs.length > 0) {\n return this.innerCrumbs\n }\n\n if (!this.crumbs || this.crumbs === '') {\n return this.defaultCrumbs\n }\n\n try {\n const parsed = typeof this.crumbs === 'string' ? JSON.parse(this.crumbs) : this.crumbs\n return Array.isArray(parsed) && parsed.length > 0 ? parsed : this.defaultCrumbs\n } catch {\n console.error('Invalid JSON format for crumbs:', this.crumbs)\n return this.defaultCrumbs\n }\n }\n\n /**\n * Ao clicar no botão HOME, direciona o usuário para URL passada na propriedade 'homeUrl'.\n */\n private handleHomeClick() {\n window.location.href = this.homeUrl\n }\n\n /**\n * Altera o estado do botão 'Folder', caso a lista dropdown esteja aberta ou fechada.\n */\n private toggleFolder() {\n this.isFolderOpen = !this.isFolderOpen\n }\n\n /**\n * Define as classes CSS usadas no breadcrumb.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-breadcrumb': true,\n small: this.isSmallScreen,\n }\n }\n\n /**\n * Atualiza o estado 'isSmallScreen' com base no tamanho do container pai, se menor que 570px.\n */\n private resizeObserver: ResizeObserver\n\n /**\n * Atualiza os estados de largura do breadcrumb ao detectar mudanças no container pai.\n */\n private updateContainerSize = (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n const containerWidth = entry.contentRect.width\n this.isSmallScreen = containerWidth < 570\n this.parentWidth = containerWidth\n this.calculateItemsWidth()\n }\n }\n\n /**\n * Adiciona o 'resizeObserver' para checar o tamanho do container pai.\n */\n connectedCallback() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.updateContainerSize)\n if (this.el.parentElement !== null) {\n this.resizeObserver.observe(this.el.parentElement)\n }\n }\n }\n\n /**\n * Remove o 'resizeObserver'.\n */\n disconnectedCallback() {\n if (this.resizeObserver != null) {\n this.resizeObserver.disconnect()\n }\n this.cleanupTooltipPosition()\n }\n\n /**\n * Calcula a largura total dos itens do breadcrumb para determinar se precisa de truncamento.\n */\n private calculateItemsWidth() {\n requestAnimationFrame(() => {\n const items = this.el.shadowRoot?.querySelectorAll('.crumb, .mobile-active-page, br-item')\n if (items) {\n let totalWidth = 0\n items.forEach((item) => {\n totalWidth += (item as HTMLElement).getBoundingClientRect().width\n })\n this.contentWidth = totalWidth\n this.isTruncate = this.contentWidth > this.parentWidth\n }\n })\n }\n\n /**\n * Executa cálculos de largura após o componente ser carregado.\n */\n componentWillLoad() {\n this.registerCrumbItems()\n }\n\n componentDidLoad() {\n this.hasLoaded = true\n this.calculateItemsWidth()\n }\n\n /**\n * Renderiza botão Home\n */\n private renderHomeButton() {\n const buttonFolderClass = this.isFolderOpen ? 'fa6-solid:folder-minus' : 'fa6-solid:folder-plus'\n return (\n <br-button\n id=\"circle\"\n shape=\"circle\"\n aria-label={this.isSmallScreen ? 'Exibir lista de páginas' : 'Voltar para Home'}\n onClick={this.isSmallScreen ? () => this.toggleFolder() : () => this.handleHomeClick()}\n >\n <br-icon icon-name={`${this.isSmallScreen ? buttonFolderClass : 'fa6-solid:house'}`}></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza botão Folder no comportamento truncado\n */\n private renderTruncateButton() {\n if (this.isTruncate && !this.isSmallScreen) {\n const buttonFolderClass = this.isFolderOpen ? 'fa6-solid:folder-minus' : 'fa6-solid:folder-plus'\n return (\n <div class=\"buttonFolderGroup\">\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <br-button\n id=\"circle\"\n shape=\"circle\"\n aria-label={this.isFolderOpen ? 'Recolher lista de páginas' : 'Exibir lista de páginas'}\n onClick={() => this.toggleFolder()}\n onKeyDown={(event) => this.handleKeyDown(event)}\n >\n <br-icon icon-name={buttonFolderClass}></br-icon>\n </br-button>\n </div>\n )\n }\n return null\n }\n\n /**\n * Renderiza itens do Breadcrumb no comportamento mobile ou truncado\n */\n private renderBreadcrumbItems() {\n const parsedItems = this.getParsedItems()\n const lastItem = parsedItems[parsedItems.length - 2]\n\n return this.isSmallScreen || this.isTruncate ? (\n <div class=\"buttonFolderGroup\">\n {this.isTruncate && !this.isSmallScreen && lastItem ? (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <a\n id=\"nextCrumb\"\n href={lastItem.url || 'javascript:void(0)'}\n target={lastItem.target || '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, lastItem.label)}\n onMouseOut={() => this.handleMouseOut()}\n >\n {this.truncateText(lastItem.label)}\n </a>\n </span>\n ) : null}\n {this.renderMobileActiveItem(parsedItems)}\n {this.renderBreadcrumbList(parsedItems)}\n </div>\n ) : (\n parsedItems.map((item, index) => (\n <li\n key={index}\n class={`crumb ${item.home ? 'home' : ''}`}\n data-active={item.active ? 'active' : null}\n aria-label={`Página ${index + 1} de ${parsedItems.length}`}\n >\n {this.renderBreadcrumbLink(item)}\n </li>\n ))\n )\n }\n\n /**\n * Renderiza item da página atual\n */\n private renderMobileActiveItem(parsedItems: BreadcrumbItem[]) {\n const activeItem = parsedItems.find((item) => item.active)\n if (!activeItem) return null\n return (\n <span class=\"mobile-active-page\">\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <span aria-current=\"page\" data-active=\"active\">\n {activeItem.label}\n </span>\n </span>\n )\n }\n\n /**\n * Renderiza lista dropdown contendo os itens do Breadcrumb\n */\n private renderBreadcrumbList(parsedItems: BreadcrumbItem[]) {\n return (\n <br-list class={this.isFolderOpen ? 'mobile-crumb-list show' : 'mobile-crumb-list'}>\n {this.isSmallScreen && (\n <div aria-label={`Página 1 de ${parsedItems.length}`}>\n <br-item isInteractive={true} href={this.homeUrl} target=\"_self\">\n Página Inicial\n </br-item>\n <span class=\"br-divider\"></span>\n </div>\n )}\n {parsedItems.map((item, index) => {\n if (this.isTruncate && !this.isSmallScreen && index === parsedItems.length - 2) {\n return null\n }\n return (\n !item.active && (\n <div\n key={index}\n aria-label={\n this.isTruncate && !this.isSmallScreen\n ? `Página ${index + 1} de ${parsedItems.length - 2}`\n : `Página ${index + 2} de ${parsedItems.length}`\n }\n >\n <br-item\n customId={index == 0 ? 'firstElementList' : undefined}\n aria-label={this.isTruncatedLabel(item.label) ? item.label : null}\n isInteractive={true}\n href={item.url || 'javascript:void(0)'}\n target={item.target ?? '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, item.label)}\n onFocusin={(event) => this.handleMouseOver(event, item.label)}\n onMouseOut={() => this.handleMouseOut()}\n onFocusout={() => this.handleMouseOut()}\n onKeyDown={\n index == parsedItems.length - 3 && this.isFolderOpen && this.isTruncate && !this.isSmallScreen\n ? (event) => {\n if (event.key === 'Tab') {\n this.handleKeyDownOut(event)\n this.toggleFolder()\n }\n }\n : null\n }\n >\n {this.truncateText(item.label)}\n </br-item>\n <span class=\"br-divider\"></span>\n </div>\n )\n )\n })}\n </br-list>\n )\n }\n\n /**\n * Renderiza itens do Breadcrumb no formato desktop\n */\n private renderBreadcrumbLink(item: BreadcrumbItem) {\n return item.active ? (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <span aria-current=\"page\">{item.label}</span>\n </span>\n ) : (\n <span>\n <br-icon class=\"br-icon\" icon-name=\"fa6-solid:chevron-right\" width=\"12\" height=\"12\"></br-icon>\n <a\n href={item.url || 'javascript:void(0)'}\n aria-label={this.isTruncatedLabel(item.label) ? item.label : null}\n target={item.target ?? '_self'}\n onMouseOver={(event) => this.handleMouseOver(event, item.label)}\n onFocus={(event) => this.handleMouseOver(event, item.label)}\n onMouseOut={() => this.handleMouseOut()}\n onBlur={() => this.handleMouseOut()}\n >\n {this.truncateText(item.label)}\n </a>\n </span>\n )\n }\n\n /**\n * Renderiza Tooltip\n */\n private renderTooltip() {\n if (!this.showTooltip) return null\n return (\n <div\n class=\"tooltip-box\"\n ref={(el) => {\n this.tooltipElement = el as HTMLDivElement\n }}\n >\n {this.tooltipText}\n <div\n class=\"tooltip-arrow\"\n ref={(el) => {\n this.tooltipArrowElement = el as HTMLDivElement\n }}\n ></div>\n </div>\n )\n }\n\n /**\n * Controla navegação pelo teclado após lista de itens aberta\n * Dispara foco no primeiro item da lista flutuante\n */\n private handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Tab' && this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {\n setTimeout(() => {\n const element = this.el.shadowRoot?.getElementById('firstElementList')\n if (element) {\n element.focus()\n }\n }, 0) // Aguarda um ciclo de renderização\n }\n }\n\n /**\n * Ao finalizar navegação por teclado dentro da lista, dispara foco no item fora da lista flutuante\n */\n private handleKeyDownOut(event: KeyboardEvent) {\n if (event.key === 'Tab' && this.isFolderOpen && this.isTruncate && !this.isSmallScreen) {\n setTimeout(() => {\n const element = this.el.shadowRoot?.getElementById('nextCrumb')\n if (element) {\n element.focus()\n }\n }, 0)\n }\n }\n\n render() {\n return (\n <Host>\n <div style={{ display: 'none' }}>\n <slot\n ref={(el) => {\n this.slotElement = el as HTMLSlotElement\n }}\n onSlotchange={this.registerCrumbItems}\n ></slot>\n </div>\n <nav class={this.getCssClassMap()} aria-label=\"Breadcrumbs\">\n <ol class=\"crumb-list\">\n {this.renderHomeButton()}\n {this.renderTruncateButton()}\n {this.renderBreadcrumbItems()}\n </ol>\n </nav>\n {this.renderTooltip()}\n </Host>\n )\n }\n}\n\n/**\n * Limite de caracteres para o truncamento\n */\nconst truncateCharactersLimit = 20\n"]}