@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.
- package/dist/cjs/br-avatar.cjs.entry.js +1 -1
- package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/br-breadcrumb.cjs.entry.js +113 -61
- package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js +4 -4
- package/dist/cjs/br-card.cjs.entry.js +2 -2
- package/dist/cjs/br-card.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkbox_3.cjs.entry.js +6 -6
- package/dist/cjs/br-checkgroup.cjs.entry.js +2 -2
- package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
- package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-collapse_2.cjs.entry.js +4 -4
- package/dist/cjs/br-crumb.cjs.entry.js +38 -0
- package/dist/cjs/br-crumb.entry.cjs.js.map +1 -0
- package/dist/cjs/br-datetime-picker.cjs.entry.js +2 -2
- package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/br-divider.cjs.entry.js +2 -2
- package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown_2.cjs.entry.js +123 -40
- package/dist/cjs/br-footer-category.cjs.entry.js +3 -3
- package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-item.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-legal.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-logo.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-social.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer.cjs.entry.js +2 -2
- package/dist/cjs/br-footer.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header-function.cjs.entry.js +2 -2
- package/dist/cjs/br-header-function.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header-link.cjs.entry.js +2 -2
- package/dist/cjs/br-header-link.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header-list.cjs.entry.js +2 -2
- package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header-logo.cjs.entry.js +2 -2
- package/dist/cjs/br-header-logo.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header.cjs.entry.js +2 -2
- package/dist/cjs/br-header.entry.cjs.js.map +1 -1
- package/dist/cjs/br-item.cjs.entry.js +2 -2
- package/dist/cjs/br-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-loading.cjs.entry.js +2 -2
- package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/br-magic-button.cjs.entry.js +2 -2
- package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-header.cjs.entry.js +2 -2
- package/dist/cjs/br-menu-header.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-info.cjs.entry.js +2 -2
- package/dist/cjs/br-menu-info.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-item.cjs.entry.js +3 -3
- package/dist/cjs/br-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-link.cjs.entry.js +2 -2
- package/dist/cjs/br-menu-link.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-list.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-logo.cjs.entry.js +2 -2
- package/dist/cjs/br-menu-logo.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu-social.cjs.entry.js +2 -2
- package/dist/cjs/br-menu-social.entry.cjs.js.map +1 -1
- package/dist/cjs/br-menu.cjs.entry.js +3 -3
- package/dist/cjs/br-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +2 -2
- package/dist/cjs/br-message.entry.cjs.js.map +1 -1
- package/dist/cjs/br-modal.cjs.entry.js +252 -12
- package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/br-pagination.cjs.entry.js +1 -1
- package/dist/cjs/br-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/br-scrim.cjs.entry.js +117 -24
- package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
- package/dist/cjs/br-select-option.cjs.entry.js +32 -0
- package/dist/cjs/br-select-option.entry.cjs.js.map +1 -0
- package/dist/cjs/br-sign-in.cjs.entry.js +2 -2
- package/dist/cjs/br-sign-in.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skip-link.cjs.entry.js +2 -2
- package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skiplink-item.cjs.entry.js +2 -2
- package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step_2.cjs.entry.js +17 -86
- package/dist/cjs/br-switch.cjs.entry.js +2 -2
- package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tab-item.cjs.entry.js +2 -2
- package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tab.cjs.entry.js +76 -10
- package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table-cell.cjs.entry.js +2 -2
- package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table-header-cell.cjs.entry.js +2 -2
- package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table-header-row.cjs.entry.js +2 -2
- package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table-row.cjs.entry.js +2 -2
- package/dist/cjs/br-table-row.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table.cjs.entry.js +2 -2
- package/dist/cjs/br-table.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tag.cjs.entry.js +2 -2
- package/dist/cjs/br-tag.entry.cjs.js.map +1 -1
- package/dist/cjs/br-textarea.cjs.entry.js +2 -2
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +2 -2
- package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard-panel.cjs.entry.js +2 -2
- package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard.cjs.entry.js +2 -2
- package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
- package/dist/cjs/index-CFIH680Y.js +8 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +124 -57
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/breadcrumb/crumb/crumb.js +168 -0
- package/dist/collection/components/breadcrumb/crumb/crumb.js.map +1 -0
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/card/card.css +1 -1
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/checkgroup/checkgroup.css +1 -1
- package/dist/collection/components/checkgroup/checkgroup.js +1 -1
- package/dist/collection/components/collapse/collapse.css +1 -1
- package/dist/collection/components/collapse/collapse.js +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +1 -1
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/divider/divider.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
- package/dist/collection/components/footer/footer-category/footer-category.js +2 -2
- package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
- package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
- package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
- package/dist/collection/components/footer/footer-legal/footer-legal.js +1 -1
- package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
- package/dist/collection/components/footer/footer-logo/footer-logo.js +1 -1
- package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
- package/dist/collection/components/footer/footer-social/footer-social.js +1 -1
- package/dist/collection/components/footer/footer.css +1 -1
- package/dist/collection/components/footer/footer.js +1 -1
- package/dist/collection/components/header/header-function/header-function.css +1 -1
- package/dist/collection/components/header/header-function/header-function.js +1 -1
- package/dist/collection/components/header/header-link/header-link.css +1 -1
- package/dist/collection/components/header/header-link/header-link.js +1 -1
- package/dist/collection/components/header/header-list/header-list.css +1 -1
- package/dist/collection/components/header/header-list/header-list.js +1 -1
- package/dist/collection/components/header/header-logo/header-logo.css +1 -1
- package/dist/collection/components/header/header-logo/header-logo.js +1 -1
- package/dist/collection/components/header/header.css +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/icon/icon.css +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/input/input.js +1 -1
- package/dist/collection/components/item/item.css +1 -1
- package/dist/collection/components/item/item.js +1 -1
- package/dist/collection/components/list/list.css +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/loading/loading.js +1 -1
- package/dist/collection/components/magic-button/magic-button.css +1 -1
- package/dist/collection/components/magic-button/magic-button.js +1 -1
- package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
- package/dist/collection/components/menu/menu-header/menu-header.js +1 -1
- package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
- package/dist/collection/components/menu/menu-info/menu-info.js +1 -1
- package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
- package/dist/collection/components/menu/menu-item/menu-item.js +2 -2
- package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
- package/dist/collection/components/menu/menu-link/menu-link.js +1 -1
- package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
- package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
- package/dist/collection/components/menu/menu-logo/menu-logo.js +1 -1
- package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
- package/dist/collection/components/menu/menu-social/menu-social.js +1 -1
- package/dist/collection/components/menu/menu.css +1 -1
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/message/message.css +1 -1
- package/dist/collection/components/message/message.js +1 -1
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/modal/modal.js +266 -12
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/pagination/pagination.css +1 -1
- package/dist/collection/components/radio/radio.css +1 -1
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/scrim/scrim.css +1 -1
- package/dist/collection/components/scrim/scrim.js +116 -23
- package/dist/collection/components/scrim/scrim.js.map +1 -1
- package/dist/collection/components/select/select-option/select-option.js +122 -0
- package/dist/collection/components/select/select-option/select-option.js.map +1 -0
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +151 -38
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/sign-in/sign-in.css +1 -1
- package/dist/collection/components/sign-in/sign-in.js +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +1 -1
- package/dist/collection/components/skip-link/skip-link.css +1 -1
- package/dist/collection/components/skip-link/skip-link.js +1 -1
- package/dist/collection/components/skip-link/skip-link.js.map +1 -1
- package/dist/collection/components/step/step-item/step-item.css +1 -1
- package/dist/collection/components/step/step-item/step-item.js +16 -86
- package/dist/collection/components/step/step-item/step-item.js.map +1 -1
- package/dist/collection/components/step/step.css +1 -1
- package/dist/collection/components/step/step.js +2 -6
- package/dist/collection/components/step/step.js.map +1 -1
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
- package/dist/collection/components/tab/tab-item/tab-item.js +1 -1
- package/dist/collection/components/tab/tab.css +1 -1
- package/dist/collection/components/tab/tab.js +137 -17
- package/dist/collection/components/tab/tab.js.map +1 -1
- package/dist/collection/components/table/table-cell/table-cell.css +1 -1
- package/dist/collection/components/table/table-cell/table-cell.js +1 -1
- package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
- package/dist/collection/components/table/table-header-row/table-header-row.css +1 -1
- package/dist/collection/components/table/table-header-row/table-header-row.js +1 -1
- package/dist/collection/components/table/table-row/table-row.css +1 -1
- package/dist/collection/components/table/table-row/table-row.js +1 -1
- package/dist/collection/components/table/table.css +1 -1
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/tag/tag.css +1 -1
- package/dist/collection/components/tag/tag.js +1 -1
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/upload/upload.css +1 -1
- package/dist/collection/components/upload/upload.js +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +1 -1
- package/dist/collection/components/wizard/wizard.css +1 -1
- package/dist/collection/components/wizard/wizard.js +1 -1
- package/dist/collection/pages/scripts/menu.js +3 -1
- package/dist/collection/pages/scripts/pageLoader.js +4 -2
- package/dist/collection/value-accessors/angular-value-accessor-config.js +1 -1
- package/dist/collection/value-accessors/angular-value-accessor-config.js.map +1 -1
- package/dist/components/br-avatar.js +3 -3
- package/dist/components/br-breadcrumb.js +161 -90
- package/dist/components/br-breadcrumb.js.map +1 -1
- package/dist/components/br-button.js +3 -3
- package/dist/components/br-card.js +3 -3
- package/dist/components/br-checkbox.js +4 -4
- package/dist/components/br-checkgroup.js +11 -11
- package/dist/components/br-collapse.js +4 -4
- package/dist/components/br-crumb.d.ts +11 -0
- package/dist/components/br-crumb.js +80 -0
- package/dist/components/br-crumb.js.map +1 -0
- package/dist/components/br-datetime-picker.js +324 -324
- package/dist/components/br-divider.js +1 -1
- package/dist/components/br-dropdown.js +4 -4
- package/dist/components/br-footer-category.js +14 -14
- package/dist/components/br-footer-item.js +6 -6
- package/dist/components/br-footer-legal.js +9 -9
- package/dist/components/br-footer-logo.js +4 -4
- package/dist/components/br-footer-social.js +7 -7
- package/dist/components/br-footer.js +24 -24
- package/dist/components/br-header-function.js +6 -6
- package/dist/components/br-header-link.js +6 -6
- package/dist/components/br-header-list.js +8 -8
- package/dist/components/br-header-logo.js +13 -13
- package/dist/components/br-header.js +15 -15
- package/dist/components/br-icon.js +3 -3
- package/dist/components/br-input.js +3 -3
- package/dist/components/br-item.js +3 -3
- package/dist/components/br-list.js +4 -4
- package/dist/components/br-loading.js +7 -7
- package/dist/components/br-magic-button.js +7 -7
- package/dist/components/br-menu-header.js +14 -14
- package/dist/components/br-menu-info.js +5 -5
- package/dist/components/br-menu-item.js +3 -3
- package/dist/components/br-menu-link.js +9 -9
- package/dist/components/br-menu-list.js +4 -4
- package/dist/components/br-menu-logo.js +6 -6
- package/dist/components/br-menu-social.js +9 -9
- package/dist/components/br-menu.js +35 -35
- package/dist/components/br-message.js +5 -5
- package/dist/components/br-modal.js +230 -21
- package/dist/components/br-modal.js.map +1 -1
- package/dist/components/br-pagination.js +12 -12
- package/dist/components/br-radio.js +4 -4
- package/dist/components/br-scrim.js +122 -37
- package/dist/components/br-scrim.js.map +1 -1
- package/dist/components/br-select-option.d.ts +11 -0
- package/dist/components/br-select-option.js +72 -0
- package/dist/components/br-select-option.js.map +1 -0
- package/dist/components/br-select.js +4 -4
- package/dist/components/br-sign-in.js +11 -11
- package/dist/components/br-skip-link.js +10 -11
- package/dist/components/br-skip-link.js.map +1 -1
- package/dist/components/br-skiplink-item.js +14 -14
- package/dist/components/br-step-item.js +4 -4
- package/dist/components/br-step.js +3 -3
- package/dist/components/br-switch.js +7 -7
- package/dist/components/br-tab-item.js +7 -7
- package/dist/components/br-tab.js +82 -26
- package/dist/components/br-tab.js.map +1 -1
- package/dist/components/br-table-cell.js +5 -5
- package/dist/components/br-table-header-cell.js +8 -8
- package/dist/components/br-table-header-row.js +5 -5
- package/dist/components/br-table-row.js +5 -5
- package/dist/components/br-table.js +8 -8
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-textarea.js +4 -4
- package/dist/components/br-tooltip.js +14 -14
- package/dist/components/br-upload.js +34 -34
- package/dist/components/br-wizard-panel.js +6 -6
- package/dist/components/br-wizard.js +12 -12
- package/dist/components/br-wizard.js.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -1
- package/dist/components/{p-CJSXIVVe.js → p-B4_2a6sY.js} +9 -9
- package/dist/components/{p-DdjKNpU3.js → p-BVCWXitK.js} +157 -61
- package/dist/components/p-BVCWXitK.js.map +1 -0
- package/dist/components/p-BXMQkO62.js +399 -0
- package/dist/components/p-Bb4aDGZV.js +192 -0
- package/dist/components/p-BfM6USmd.js +138 -0
- package/dist/components/{p-BIJ6vVdB.js.map → p-BfM6USmd.js.map} +1 -1
- package/dist/components/{p-CwtLw60M.js → p-Bjywc5uG.js} +6 -6
- package/dist/components/p-BtGv7ZmW.js +229 -0
- package/dist/components/p-BtGv7ZmW.js.map +1 -0
- package/dist/components/{p-C_OI0BQu.js → p-BwHD1VKm.js} +6 -6
- package/dist/components/{p-Bqb7YtL0.js → p-C1NfZb6u.js} +19 -19
- package/dist/components/{p-DW63EY0U.js → p-C2apigAS.js} +13 -13
- package/dist/components/{p-5Bn_PU3B.js → p-CldlPwBq.js} +8 -8
- package/dist/components/p-DLCPJIh7.js +306 -0
- package/dist/components/p-DLCPJIh7.js.map +1 -0
- package/dist/components/{p-Bri6ECVa.js → p-DexVMiiX.js} +13 -13
- package/dist/components/p-DexVMiiX.js.map +1 -0
- package/dist/components/{p-DSkSDmzD.js → p-DozXPp1d.js} +3 -3
- package/dist/components/p-DzfbHHTf.js +136 -0
- package/dist/components/{p-CBj_WCYf.js → p-JsxUUux9.js} +6 -6
- package/dist/components/{p-lIb35q2K.js → p-p8k-sBQZ.js} +8 -8
- package/dist/custom-elements.json +1202 -524
- package/dist/esm/br-avatar.entry.js +2 -2
- package/dist/esm/br-avatar.entry.js.map +1 -1
- package/dist/esm/br-breadcrumb.entry.js +114 -62
- package/dist/esm/br-breadcrumb.entry.js.map +1 -1
- package/dist/esm/br-button.br-icon.entry.js.map +1 -1
- package/dist/esm/br-button_2.entry.js +5 -5
- package/dist/esm/br-card.entry.js +3 -3
- package/dist/esm/br-card.entry.js.map +1 -1
- package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
- package/dist/esm/br-checkbox_3.entry.js +7 -7
- package/dist/esm/br-checkgroup.entry.js +3 -3
- package/dist/esm/br-checkgroup.entry.js.map +1 -1
- package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
- package/dist/esm/br-collapse_2.entry.js +5 -5
- package/dist/esm/br-crumb.entry.js +36 -0
- package/dist/esm/br-crumb.entry.js.map +1 -0
- package/dist/esm/br-datetime-picker.entry.js +3 -3
- package/dist/esm/br-datetime-picker.entry.js.map +1 -1
- package/dist/esm/br-divider.entry.js +3 -3
- package/dist/esm/br-divider.entry.js.map +1 -1
- package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
- package/dist/esm/br-dropdown_2.entry.js +124 -41
- package/dist/esm/br-footer-category.entry.js +4 -4
- package/dist/esm/br-footer-category.entry.js.map +1 -1
- package/dist/esm/br-footer-item.entry.js +3 -3
- package/dist/esm/br-footer-item.entry.js.map +1 -1
- package/dist/esm/br-footer-legal.entry.js +3 -3
- package/dist/esm/br-footer-legal.entry.js.map +1 -1
- package/dist/esm/br-footer-logo.entry.js +3 -3
- package/dist/esm/br-footer-logo.entry.js.map +1 -1
- package/dist/esm/br-footer-social.entry.js +3 -3
- package/dist/esm/br-footer-social.entry.js.map +1 -1
- package/dist/esm/br-footer.entry.js +3 -3
- package/dist/esm/br-footer.entry.js.map +1 -1
- package/dist/esm/br-header-function.entry.js +3 -3
- package/dist/esm/br-header-function.entry.js.map +1 -1
- package/dist/esm/br-header-link.entry.js +3 -3
- package/dist/esm/br-header-link.entry.js.map +1 -1
- package/dist/esm/br-header-list.entry.js +3 -3
- package/dist/esm/br-header-list.entry.js.map +1 -1
- package/dist/esm/br-header-logo.entry.js +3 -3
- package/dist/esm/br-header-logo.entry.js.map +1 -1
- package/dist/esm/br-header.entry.js +3 -3
- package/dist/esm/br-header.entry.js.map +1 -1
- package/dist/esm/br-item.entry.js +3 -3
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-loading.entry.js +3 -3
- package/dist/esm/br-loading.entry.js.map +1 -1
- package/dist/esm/br-magic-button.entry.js +3 -3
- package/dist/esm/br-magic-button.entry.js.map +1 -1
- package/dist/esm/br-menu-header.entry.js +3 -3
- package/dist/esm/br-menu-header.entry.js.map +1 -1
- package/dist/esm/br-menu-info.entry.js +3 -3
- package/dist/esm/br-menu-info.entry.js.map +1 -1
- package/dist/esm/br-menu-item.entry.js +4 -4
- package/dist/esm/br-menu-item.entry.js.map +1 -1
- package/dist/esm/br-menu-link.entry.js +3 -3
- package/dist/esm/br-menu-link.entry.js.map +1 -1
- package/dist/esm/br-menu-list.entry.js +2 -2
- package/dist/esm/br-menu-list.entry.js.map +1 -1
- package/dist/esm/br-menu-logo.entry.js +3 -3
- package/dist/esm/br-menu-logo.entry.js.map +1 -1
- package/dist/esm/br-menu-social.entry.js +3 -3
- package/dist/esm/br-menu-social.entry.js.map +1 -1
- package/dist/esm/br-menu.entry.js +4 -4
- package/dist/esm/br-menu.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +3 -3
- package/dist/esm/br-message.entry.js.map +1 -1
- package/dist/esm/br-modal.entry.js +253 -13
- package/dist/esm/br-modal.entry.js.map +1 -1
- package/dist/esm/br-pagination.entry.js +2 -2
- package/dist/esm/br-pagination.entry.js.map +1 -1
- package/dist/esm/br-scrim.entry.js +118 -25
- package/dist/esm/br-scrim.entry.js.map +1 -1
- package/dist/esm/br-select-option.entry.js +30 -0
- package/dist/esm/br-select-option.entry.js.map +1 -0
- package/dist/esm/br-sign-in.entry.js +3 -3
- package/dist/esm/br-sign-in.entry.js.map +1 -1
- package/dist/esm/br-skip-link.entry.js +3 -3
- package/dist/esm/br-skip-link.entry.js.map +1 -1
- package/dist/esm/br-skiplink-item.entry.js +3 -3
- package/dist/esm/br-skiplink-item.entry.js.map +1 -1
- package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
- package/dist/esm/br-step_2.entry.js +18 -87
- package/dist/esm/br-switch.entry.js +3 -3
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-tab-item.entry.js +3 -3
- package/dist/esm/br-tab-item.entry.js.map +1 -1
- package/dist/esm/br-tab.entry.js +77 -11
- package/dist/esm/br-tab.entry.js.map +1 -1
- package/dist/esm/br-table-cell.entry.js +3 -3
- package/dist/esm/br-table-cell.entry.js.map +1 -1
- package/dist/esm/br-table-header-cell.entry.js +3 -3
- package/dist/esm/br-table-header-cell.entry.js.map +1 -1
- package/dist/esm/br-table-header-row.entry.js +3 -3
- package/dist/esm/br-table-header-row.entry.js.map +1 -1
- package/dist/esm/br-table-row.entry.js +3 -3
- package/dist/esm/br-table-row.entry.js.map +1 -1
- package/dist/esm/br-table.entry.js +3 -3
- package/dist/esm/br-table.entry.js.map +1 -1
- package/dist/esm/br-tag.entry.js +3 -3
- package/dist/esm/br-tag.entry.js.map +1 -1
- package/dist/esm/br-textarea.entry.js +3 -3
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-tooltip.entry.js +3 -3
- package/dist/esm/br-tooltip.entry.js.map +1 -1
- package/dist/esm/br-upload.entry.js +3 -3
- package/dist/esm/br-upload.entry.js.map +1 -1
- package/dist/esm/br-wizard-panel.entry.js +3 -3
- package/dist/esm/br-wizard-panel.entry.js.map +1 -1
- package/dist/esm/br-wizard.entry.js +3 -3
- package/dist/esm/br-wizard.entry.js.map +1 -1
- package/dist/esm/{index-ByGJPTh2.js → index-CgnD6TrP.js} +11 -3
- package/dist/esm/{index-ByGJPTh2.js.map → index-CgnD6TrP.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/webcomponents.js +3 -3
- package/dist/hydrate/index.js +3543 -2986
- package/dist/hydrate/index.mjs +3543 -2986
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +21 -15
- package/dist/types/components/breadcrumb/crumb/crumb.d.ts +35 -0
- package/dist/types/components/modal/modal.d.ts +86 -3
- package/dist/types/components/scrim/scrim.d.ts +32 -2
- package/dist/types/components/select/select-option/select-option.d.ts +29 -0
- package/dist/types/components/select/select.d.ts +30 -10
- package/dist/types/components/step/step-item/step-item.d.ts +3 -14
- package/dist/types/components/tab/tab.d.ts +67 -7
- package/dist/types/components.d.ts +215 -12
- package/dist/webcomponents/br-avatar.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-breadcrumb.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-card.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-crumb.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-function.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-link.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-logo.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-magic-button.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-header.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-info.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-link.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-logo.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu-social.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-menu.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-pagination.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-select-option.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-sign-in.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tab.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-table.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tag.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-upload.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
- package/dist/webcomponents/{p-f2ea0d7e.entry.js → p-020c598b.entry.js} +19 -19
- package/dist/webcomponents/{p-f2ea0d7e.entry.js.map → p-020c598b.entry.js.map} +1 -1
- package/dist/webcomponents/{p-83001853.entry.js → p-09a09974.entry.js} +6 -6
- package/dist/webcomponents/{p-83001853.entry.js.map → p-09a09974.entry.js.map} +1 -1
- package/dist/webcomponents/{p-bd803fec.entry.js → p-0be0b270.entry.js} +372 -372
- package/dist/webcomponents/{p-bd803fec.entry.js.map → p-0be0b270.entry.js.map} +1 -1
- package/dist/webcomponents/p-0d8da69a.entry.js +50 -0
- package/dist/webcomponents/{p-8b3688ab.entry.js → p-107ad6d3.entry.js} +6 -6
- package/dist/webcomponents/{p-01b4fecb.entry.js → p-10b0d158.entry.js} +6 -6
- package/dist/webcomponents/{p-f1fb559a.entry.js → p-13b1b500.entry.js} +7 -7
- package/dist/webcomponents/p-15561737.entry.js +428 -0
- package/dist/webcomponents/p-15561737.entry.js.map +1 -0
- package/dist/webcomponents/{p-c0cdb81f.entry.js → p-24dd7de0.entry.js} +9 -9
- package/dist/webcomponents/{p-e5875d3d.entry.js → p-26ec56f1.entry.js} +5 -5
- package/dist/webcomponents/{p-e5875d3d.entry.js.map → p-26ec56f1.entry.js.map} +1 -1
- package/dist/webcomponents/p-34cd69c7.entry.js +105 -0
- package/dist/webcomponents/{p-d856888c.entry.js.map → p-34cd69c7.entry.js.map} +1 -1
- package/dist/webcomponents/{p-c06a79b8.entry.js → p-3956e4ac.entry.js} +6 -6
- package/dist/webcomponents/{p-462c5647.entry.js → p-4071b981.entry.js} +4 -4
- package/dist/webcomponents/p-42f11872.entry.js +60 -0
- package/dist/webcomponents/{p-f16a5e27.entry.js → p-4ad3b8c9.entry.js} +8 -8
- package/dist/webcomponents/{p-de358dbe.entry.js → p-512385f0.entry.js} +7 -7
- package/dist/webcomponents/{p-cfecd64a.entry.js → p-53c2b2c2.entry.js} +34 -34
- package/dist/webcomponents/p-567b17e6.entry.js +346 -0
- package/dist/webcomponents/{p-46dfc3ee.entry.js → p-57d49488.entry.js} +5 -5
- package/dist/webcomponents/p-58a862f9.entry.js +44 -0
- package/dist/webcomponents/p-58a862f9.entry.js.map +1 -0
- package/dist/webcomponents/p-59d41342.entry.js +101 -0
- package/dist/webcomponents/{p-c1b0a116.entry.js → p-5b7f446c.entry.js} +7 -7
- package/dist/webcomponents/{p-bd978abf.entry.js → p-610c2e8e.entry.js} +4 -4
- package/dist/webcomponents/p-62651eba.entry.js +44 -0
- package/dist/webcomponents/{p-50f1b088.entry.js → p-6bf86e0b.entry.js} +6 -6
- package/dist/webcomponents/{p-10e25a32.entry.js → p-6f8abd26.entry.js} +41 -41
- package/dist/webcomponents/{p-a2eec4fb.entry.js → p-7a93d79b.entry.js} +123 -38
- package/dist/webcomponents/p-7a93d79b.entry.js.map +1 -0
- package/dist/webcomponents/p-7d8eb8ac.entry.js +40 -0
- package/dist/webcomponents/p-7d8eb8ac.entry.js.map +1 -0
- package/dist/webcomponents/{p-56aabe89.entry.js → p-857cfe62.entry.js} +19 -19
- package/dist/webcomponents/p-898d950f.entry.js +84 -0
- package/dist/webcomponents/{p-6ecb3439.entry.js → p-8a931bfe.entry.js} +9 -9
- package/dist/webcomponents/p-8b7cc3a9.entry.js +92 -0
- package/dist/webcomponents/{p-ca2d95f7.entry.js → p-946cc8f3.entry.js} +142 -48
- package/dist/webcomponents/p-946cc8f3.entry.js.map +1 -0
- package/dist/webcomponents/p-9bb74d81.entry.js +133 -0
- package/dist/webcomponents/{p-cfa86a23.entry.js.map → p-9bb74d81.entry.js.map} +1 -1
- package/dist/webcomponents/p-9fabdfb4.entry.js +75 -0
- package/dist/webcomponents/{p-9b50e6af.entry.js → p-9fe9f5d2.entry.js} +6 -6
- package/dist/webcomponents/{p-ByGJPTh2.js → p-CgnD6TrP.js} +3 -3
- package/dist/webcomponents/{p-ByGJPTh2.js.map → p-CgnD6TrP.js.map} +1 -1
- package/dist/webcomponents/p-a09cf1bc.entry.js +145 -0
- package/dist/webcomponents/{p-30af66b3.entry.js → p-ae4feb1e.entry.js} +9 -9
- package/dist/webcomponents/p-b020467b.entry.js +351 -0
- package/dist/webcomponents/p-b020467b.entry.js.map +1 -0
- package/dist/webcomponents/{p-336071a5.entry.js → p-b04b7996.entry.js} +13 -13
- package/dist/webcomponents/{p-d7070712.entry.js → p-b39c2ad1.entry.js} +5 -5
- package/dist/webcomponents/{p-4bb5aeab.entry.js → p-b8e4bc36.entry.js} +17 -17
- package/dist/webcomponents/{p-66d26793.entry.js → p-b9c38611.entry.js} +3 -3
- package/dist/webcomponents/p-c4e28f37.entry.js +446 -0
- package/dist/webcomponents/p-c4e28f37.entry.js.map +1 -0
- package/dist/webcomponents/{p-d090d412.entry.js → p-cf764a83.entry.js} +6 -6
- package/dist/webcomponents/{p-27eb10f9.entry.js → p-d75fccd1.entry.js} +13 -13
- package/dist/webcomponents/p-da17c570.entry.js +134 -0
- package/dist/webcomponents/{p-6a9d2a0b.entry.js → p-df170bb4.entry.js} +6 -6
- package/dist/webcomponents/p-e55b41b4.entry.js +159 -0
- package/dist/webcomponents/{p-7537c4ba.entry.js.map → p-e55b41b4.entry.js.map} +1 -1
- package/dist/webcomponents/{p-a365183a.entry.js → p-e58dbeef.entry.js} +6 -6
- package/dist/webcomponents/p-e5ff5232.entry.js +452 -0
- package/dist/webcomponents/p-e5ff5232.entry.js.map +1 -0
- package/dist/webcomponents/{p-007c0f38.entry.js → p-f2f32774.entry.js} +14 -14
- package/dist/webcomponents/{p-1991135d.entry.js → p-f583b74c.entry.js} +8 -9
- package/dist/webcomponents/p-f583b74c.entry.js.map +1 -0
- package/dist/webcomponents/{p-061dbde5.entry.js → p-f723c6fc.entry.js} +5 -5
- package/dist/webcomponents/p-f86da8f9.entry.js +94 -0
- package/dist/webcomponents/p-fc94c64c.entry.js +50 -0
- package/dist/webcomponents/webcomponents.esm.js +3 -3
- package/dist/webcomponents.html-custom-data.json +106 -49
- package/package.json +1 -1
- package/dist/components/p-AOxMWARt.js +0 -136
- package/dist/components/p-BIJ6vVdB.js +0 -138
- package/dist/components/p-B_YesJM8.js +0 -192
- package/dist/components/p-Bc03PTAW.js +0 -306
- package/dist/components/p-Bc03PTAW.js.map +0 -1
- package/dist/components/p-Bri6ECVa.js.map +0 -1
- package/dist/components/p-C3Rduy2t.js +0 -399
- package/dist/components/p-CWRBs6PD.js +0 -316
- package/dist/components/p-CWRBs6PD.js.map +0 -1
- package/dist/components/p-DdjKNpU3.js.map +0 -1
- package/dist/webcomponents/p-0e3a9a52.entry.js +0 -44
- package/dist/webcomponents/p-1991135d.entry.js.map +0 -1
- package/dist/webcomponents/p-271fafec.entry.js +0 -94
- package/dist/webcomponents/p-2768bb52.entry.js +0 -92
- package/dist/webcomponents/p-2a6b20bb.entry.js +0 -60
- package/dist/webcomponents/p-2de59d45.entry.js +0 -145
- package/dist/webcomponents/p-3c75367e.entry.js +0 -50
- package/dist/webcomponents/p-492972fb.entry.js +0 -380
- package/dist/webcomponents/p-492972fb.entry.js.map +0 -1
- package/dist/webcomponents/p-4cc446e4.entry.js +0 -50
- package/dist/webcomponents/p-5710a3e9.entry.js +0 -529
- package/dist/webcomponents/p-5710a3e9.entry.js.map +0 -1
- package/dist/webcomponents/p-7537c4ba.entry.js +0 -159
- package/dist/webcomponents/p-8c0f167a.entry.js +0 -101
- package/dist/webcomponents/p-90401ecd.entry.js +0 -219
- package/dist/webcomponents/p-90401ecd.entry.js.map +0 -1
- package/dist/webcomponents/p-a2eec4fb.entry.js.map +0 -1
- package/dist/webcomponents/p-aa7635d4.entry.js +0 -346
- package/dist/webcomponents/p-b30ef853.entry.js +0 -75
- package/dist/webcomponents/p-b8e4b353.entry.js +0 -84
- package/dist/webcomponents/p-c5b716c8.entry.js +0 -134
- package/dist/webcomponents/p-c73b38c5.entry.js +0 -297
- package/dist/webcomponents/p-c73b38c5.entry.js.map +0 -1
- package/dist/webcomponents/p-ca2d95f7.entry.js.map +0 -1
- package/dist/webcomponents/p-cfa86a23.entry.js +0 -133
- package/dist/webcomponents/p-d856888c.entry.js +0 -105
- /package/dist/components/{p-CJSXIVVe.js.map → p-B4_2a6sY.js.map} +0 -0
- /package/dist/components/{p-C3Rduy2t.js.map → p-BXMQkO62.js.map} +0 -0
- /package/dist/components/{p-B_YesJM8.js.map → p-Bb4aDGZV.js.map} +0 -0
- /package/dist/components/{p-CwtLw60M.js.map → p-Bjywc5uG.js.map} +0 -0
- /package/dist/components/{p-C_OI0BQu.js.map → p-BwHD1VKm.js.map} +0 -0
- /package/dist/components/{p-Bqb7YtL0.js.map → p-C1NfZb6u.js.map} +0 -0
- /package/dist/components/{p-DW63EY0U.js.map → p-C2apigAS.js.map} +0 -0
- /package/dist/components/{p-5Bn_PU3B.js.map → p-CldlPwBq.js.map} +0 -0
- /package/dist/components/{p-DSkSDmzD.js.map → p-DozXPp1d.js.map} +0 -0
- /package/dist/components/{p-AOxMWARt.js.map → p-DzfbHHTf.js.map} +0 -0
- /package/dist/components/{p-CBj_WCYf.js.map → p-JsxUUux9.js.map} +0 -0
- /package/dist/components/{p-lIb35q2K.js.map → p-p8k-sBQZ.js.map} +0 -0
- /package/dist/webcomponents/{p-3c75367e.entry.js.map → p-0d8da69a.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-8b3688ab.entry.js.map → p-107ad6d3.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-01b4fecb.entry.js.map → p-10b0d158.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-f1fb559a.entry.js.map → p-13b1b500.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-c0cdb81f.entry.js.map → p-24dd7de0.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-c06a79b8.entry.js.map → p-3956e4ac.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-462c5647.entry.js.map → p-4071b981.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-2a6b20bb.entry.js.map → p-42f11872.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-f16a5e27.entry.js.map → p-4ad3b8c9.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-de358dbe.entry.js.map → p-512385f0.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-cfecd64a.entry.js.map → p-53c2b2c2.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-aa7635d4.entry.js.map → p-567b17e6.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-46dfc3ee.entry.js.map → p-57d49488.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-8c0f167a.entry.js.map → p-59d41342.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-c1b0a116.entry.js.map → p-5b7f446c.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-bd978abf.entry.js.map → p-610c2e8e.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-0e3a9a52.entry.js.map → p-62651eba.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-50f1b088.entry.js.map → p-6bf86e0b.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-10e25a32.entry.js.map → p-6f8abd26.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-56aabe89.entry.js.map → p-857cfe62.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-b8e4b353.entry.js.map → p-898d950f.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-6ecb3439.entry.js.map → p-8a931bfe.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-2768bb52.entry.js.map → p-8b7cc3a9.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-b30ef853.entry.js.map → p-9fabdfb4.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-9b50e6af.entry.js.map → p-9fe9f5d2.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-2de59d45.entry.js.map → p-a09cf1bc.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-30af66b3.entry.js.map → p-ae4feb1e.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-336071a5.entry.js.map → p-b04b7996.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-d7070712.entry.js.map → p-b39c2ad1.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-4bb5aeab.entry.js.map → p-b8e4bc36.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-66d26793.entry.js.map → p-b9c38611.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-d090d412.entry.js.map → p-cf764a83.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-27eb10f9.entry.js.map → p-d75fccd1.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-c5b716c8.entry.js.map → p-da17c570.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-6a9d2a0b.entry.js.map → p-df170bb4.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-a365183a.entry.js.map → p-e58dbeef.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-007c0f38.entry.js.map → p-f2f32774.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-061dbde5.entry.js.map → p-f723c6fc.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-271fafec.entry.js.map → p-f86da8f9.entry.js.map} +0 -0
- /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.
|
|
69
|
+
this.contentWidth = 0;
|
|
52
70
|
/**
|
|
53
71
|
* Largura do container pai do breadcrumb.
|
|
54
72
|
*/
|
|
55
|
-
this.
|
|
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.
|
|
70
|
-
this.
|
|
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 '
|
|
101
|
+
* O número de caracteres pode ser configurado na variável 'truncateCharactersLimit'.
|
|
77
102
|
*/
|
|
78
|
-
|
|
79
|
-
return word.length >
|
|
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
|
-
|
|
86
|
-
if (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
212
|
+
calculateItemsWidth() {
|
|
162
213
|
requestAnimationFrame(() => {
|
|
163
214
|
var _a;
|
|
164
|
-
const
|
|
165
|
-
if (
|
|
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
|
-
|
|
218
|
+
items.forEach((item) => {
|
|
168
219
|
totalWidth += item.getBoundingClientRect().width;
|
|
169
220
|
});
|
|
170
|
-
this.
|
|
171
|
-
this.isTruncate = this.
|
|
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.
|
|
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.
|
|
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
|
|
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",
|
|
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",
|
|
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.
|
|
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
|
-
|
|
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",
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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: '
|
|
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
|
-
"
|
|
373
|
-
"
|
|
431
|
+
"contentWidth": {},
|
|
432
|
+
"parentWidth": {},
|
|
374
433
|
"isFolderOpen": {}
|
|
375
434
|
};
|
|
376
435
|
}
|
|
377
436
|
static get elementRef() { return "el"; }
|
|
378
|
-
static get
|
|
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
|
|
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":"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","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":"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","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"]}
|