@govbr-ds/webcomponents 2.0.0-next.44 → 2.0.0-next.45
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 +104 -31
- package/dist/cjs/br-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/br-breadcrumb.cjs.entry.js +6 -9
- package/dist/cjs/br-breadcrumb.cjs.entry.js.map +1 -1
- 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 +3 -3
- package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-card.cjs.entry.js +97 -0
- package/dist/cjs/br-card.cjs.entry.js.map +1 -0
- package/dist/cjs/br-card.entry.cjs.js.map +1 -0
- package/dist/cjs/br-checkbox.cjs.entry.js +8 -13
- package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkgroup.cjs.entry.js +3 -5
- package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -1
- 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 +14 -22
- package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-divider.cjs.entry.js +2 -3
- package/dist/cjs/br-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown.cjs.entry.js +14 -21
- package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-item.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-legal.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-logo.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-social.cjs.entry.js +1 -1
- package/dist/cjs/br-footer.cjs.entry.js +1 -1
- package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/br-input_2.cjs.entry.js +10 -17
- package/dist/cjs/br-input_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-item.cjs.entry.js +11 -10
- package/dist/cjs/br-item.cjs.entry.js.map +1 -1
- package/dist/cjs/br-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-loading.cjs.entry.js +4 -5
- package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
- 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.cjs.entry.js.map +1 -1
- package/dist/cjs/br-magic-button.entry.cjs.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +1 -1
- package/dist/cjs/br-scrim.cjs.entry.js +17 -29
- package/dist/cjs/br-scrim.cjs.entry.js.map +1 -1
- package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
- package/dist/cjs/br-select.cjs.entry.js +16 -20
- package/dist/cjs/br-select.cjs.entry.js.map +1 -1
- package/dist/cjs/br-select.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step-item.cjs.entry.js +14 -27
- package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
- package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step.cjs.entry.js +21 -32
- package/dist/cjs/br-step.cjs.entry.js.map +1 -1
- package/dist/cjs/br-step.entry.cjs.js.map +1 -1
- package/dist/cjs/br-switch.cjs.entry.js +4 -7
- package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
- 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.cjs.entry.js.map +1 -1
- package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tab.cjs.entry.js +4 -5
- package/dist/cjs/br-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/br-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header-row.cjs.entry.js +1 -1
- package/dist/cjs/br-table-row.cjs.entry.js +1 -1
- package/dist/cjs/br-table.cjs.entry.js +1 -1
- package/dist/cjs/br-tag.cjs.entry.js +2 -2
- package/dist/cjs/br-textarea.cjs.entry.js +8 -15
- package/dist/cjs/br-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tooltip.cjs.entry.js +18 -28
- package/dist/cjs/br-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +2 -3
- package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
- package/dist/cjs/index-DNnn1o_9.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/avatar/avatar.js +120 -85
- package/dist/collection/components/avatar/avatar.js.map +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +5 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- 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 -0
- package/dist/collection/components/card/card.js +166 -0
- package/dist/collection/components/card/card.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.js +8 -13
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/checkgroup/checkgroup.js +3 -5
- package/dist/collection/components/checkgroup/checkgroup.js.map +1 -1
- package/dist/collection/components/collapse/collapse.js +11 -18
- package/dist/collection/components/collapse/collapse.js.map +1 -1
- package/dist/collection/components/divider/divider.js +2 -3
- package/dist/collection/components/divider/divider.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +14 -21
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/footer/footer.js +1 -1
- package/dist/collection/components/footer-category/footer-category.js +2 -2
- package/dist/collection/components/footer-item/footer-item.js +1 -1
- package/dist/collection/components/footer-legal/footer-legal.js +1 -1
- package/dist/collection/components/footer-logo/footer-logo.js +1 -1
- package/dist/collection/components/footer-logo/footer-logo.js.map +1 -1
- package/dist/collection/components/footer-social/footer-social.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.js +4 -7
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/item/item.js +11 -10
- package/dist/collection/components/item/item.js.map +1 -1
- package/dist/collection/components/list/list.js +3 -4
- package/dist/collection/components/list/list.js.map +1 -1
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/loading/loading.js +3 -4
- package/dist/collection/components/loading/loading.js.map +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/magic-button/magic-button.js.map +1 -1
- package/dist/collection/components/message/message.js +1 -1
- package/dist/collection/components/radio/radio.js +6 -10
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/scrim/scrim.js +17 -29
- package/dist/collection/components/scrim/scrim.js.map +1 -1
- package/dist/collection/components/select/select.js +16 -20
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/step/step.js +21 -32
- package/dist/collection/components/step/step.js.map +1 -1
- package/dist/collection/components/step-item/step-item.js +14 -27
- package/dist/collection/components/step-item/step-item.js.map +1 -1
- package/dist/collection/components/switch/switch.js +4 -7
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/tab/tab.css +1 -1
- package/dist/collection/components/tab/tab.js +3 -4
- package/dist/collection/components/tab/tab.js.map +1 -1
- package/dist/collection/components/tab-item/tab-item.css +1 -1
- package/dist/collection/components/tab-item/tab-item.js +1 -1
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/table-cell/table-cell.js +1 -1
- package/dist/collection/components/table-header-cell/table-header-cell.js +1 -1
- package/dist/collection/components/table-header-row/table-header-row.js +1 -1
- package/dist/collection/components/table-row/table-row.js +1 -1
- package/dist/collection/components/tag/tag.js +2 -2
- package/dist/collection/components/textarea/textarea.js +8 -15
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +8 -12
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/upload/upload.js +2 -3
- package/dist/collection/components/upload/upload.js.map +1 -1
- package/dist/collection/pages/components/card/index.js +18 -0
- package/dist/collection/pages/scripts/menu.js +13 -0
- package/dist/collection/utils/floating-ui.js +10 -16
- package/dist/collection/utils/floating-ui.js.map +1 -1
- package/dist/components/br-avatar.js +117 -69
- package/dist/components/br-avatar.js.map +1 -1
- package/dist/components/br-breadcrumb.js +22 -25
- package/dist/components/br-breadcrumb.js.map +1 -1
- package/dist/components/br-button.js +3 -3
- package/dist/components/br-card.d.ts +11 -0
- package/dist/components/br-card.js +141 -0
- package/dist/components/br-card.js.map +1 -0
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkgroup.js +15 -17
- package/dist/components/br-checkgroup.js.map +1 -1
- package/dist/components/br-collapse.js +4 -4
- package/dist/components/br-divider.js +1 -1
- package/dist/components/br-dropdown.js +31 -39
- package/dist/components/br-dropdown.js.map +1 -1
- package/dist/components/br-footer-category.js +9 -9
- package/dist/components/br-footer-item.js +4 -4
- package/dist/components/br-footer-legal.js +3 -3
- package/dist/components/br-footer-logo.js +8 -7
- package/dist/components/br-footer-logo.js.map +1 -1
- package/dist/components/br-footer-social.js +5 -5
- package/dist/components/br-footer.js +15 -15
- package/dist/components/br-icon.js +1 -1
- 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 -6
- package/dist/components/br-loading.js.map +1 -1
- package/dist/components/br-magic-button.js +10 -9
- package/dist/components/br-magic-button.js.map +1 -1
- package/dist/components/br-message.js +3 -3
- package/dist/components/br-radio.js +4 -4
- package/dist/components/br-scrim.js +44 -57
- package/dist/components/br-scrim.js.map +1 -1
- package/dist/components/br-select.js +41 -46
- package/dist/components/br-select.js.map +1 -1
- package/dist/components/br-step-item.js +36 -50
- package/dist/components/br-step-item.js.map +1 -1
- package/dist/components/br-step.js +30 -42
- package/dist/components/br-step.js.map +1 -1
- package/dist/components/br-switch.js +17 -21
- package/dist/components/br-switch.js.map +1 -1
- package/dist/components/br-tab-item.js +10 -10
- package/dist/components/br-tab.js +15 -16
- package/dist/components/br-tab.js.map +1 -1
- package/dist/components/br-table-cell.js +3 -3
- package/dist/components/br-table-header-cell.js +3 -3
- package/dist/components/br-table-header-row.js +3 -3
- package/dist/components/br-table-row.js +3 -3
- package/dist/components/br-table.js +6 -6
- package/dist/components/br-tag.js +8 -8
- package/dist/components/br-textarea.js +30 -37
- package/dist/components/br-textarea.js.map +1 -1
- package/dist/components/br-tooltip.js +118 -132
- package/dist/components/br-tooltip.js.map +1 -1
- package/dist/components/br-upload.js +14 -15
- package/dist/components/br-upload.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/{p-1eKV5oxP.js → p-3-jhm6pC.js} +8 -9
- package/dist/components/p-3-jhm6pC.js.map +1 -0
- package/dist/components/{p-BU5QW70m.js → p-BlryBljm.js} +28 -33
- package/dist/components/p-BlryBljm.js.map +1 -0
- package/dist/components/{p-DqQ_qkzV.js → p-DhONBlJ-.js} +6 -7
- package/dist/components/p-DhONBlJ-.js.map +1 -0
- package/dist/components/{p-DtU3ZpAC.js → p-DvuyuK9Y.js} +20 -26
- package/dist/components/{p-DtU3ZpAC.js.map → p-DvuyuK9Y.js.map} +1 -1
- package/dist/components/{p-CwEkkt16.js → p-Hceu1c6D.js} +39 -47
- package/dist/components/p-Hceu1c6D.js.map +1 -0
- package/dist/components/{p-B3u7t9TB.js → p-mX_ZX0bR.js} +13 -18
- package/dist/components/p-mX_ZX0bR.js.map +1 -0
- package/dist/components/{p-DoUCJxLj.js → p-ssSt5UuQ.js} +6 -6
- package/dist/components/{p-0V7YvY_S.js → p-xvM_htUS.js} +4 -4
- package/dist/components/{p-B-uKqjsz.js → p-y6TZslWo.js} +21 -26
- package/dist/components/p-y6TZslWo.js.map +1 -0
- package/dist/custom-docs/output-docs.js +3 -5
- package/dist/custom-docs/output-docs.js.map +1 -1
- package/dist/custom-docs/path.js +1 -2
- package/dist/custom-docs/path.js.map +1 -1
- package/dist/custom-elements.json +317 -70
- package/dist/esm/br-avatar.entry.js +104 -31
- package/dist/esm/br-avatar.entry.js.map +1 -1
- package/dist/esm/br-breadcrumb.entry.js +6 -9
- 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 +3 -3
- package/dist/esm/br-button_2.entry.js.map +1 -1
- package/dist/esm/br-card.entry.js +95 -0
- package/dist/esm/br-card.entry.js.map +1 -0
- package/dist/esm/br-checkbox.entry.js +8 -13
- package/dist/esm/br-checkbox.entry.js.map +1 -1
- package/dist/esm/br-checkgroup.entry.js +3 -5
- 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 +14 -22
- package/dist/esm/br-collapse_2.entry.js.map +1 -1
- package/dist/esm/br-divider.entry.js +2 -3
- package/dist/esm/br-divider.entry.js.map +1 -1
- package/dist/esm/br-dropdown.entry.js +14 -21
- package/dist/esm/br-dropdown.entry.js.map +1 -1
- package/dist/esm/br-footer-category.entry.js +2 -2
- package/dist/esm/br-footer-item.entry.js +1 -1
- package/dist/esm/br-footer-legal.entry.js +1 -1
- package/dist/esm/br-footer-logo.entry.js +1 -1
- package/dist/esm/br-footer-logo.entry.js.map +1 -1
- package/dist/esm/br-footer-social.entry.js +1 -1
- package/dist/esm/br-footer.entry.js +1 -1
- package/dist/esm/br-input.br-radio.entry.js.map +1 -1
- package/dist/esm/br-input_2.entry.js +10 -17
- package/dist/esm/br-input_2.entry.js.map +1 -1
- package/dist/esm/br-item.entry.js +11 -10
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-loading.entry.js +4 -5
- package/dist/esm/br-loading.entry.js.map +1 -1
- package/dist/esm/br-magic-button.entry.js +2 -2
- package/dist/esm/br-magic-button.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +1 -1
- package/dist/esm/br-scrim.entry.js +17 -29
- package/dist/esm/br-scrim.entry.js.map +1 -1
- package/dist/esm/br-select.entry.js +16 -20
- package/dist/esm/br-select.entry.js.map +1 -1
- package/dist/esm/br-step-item.entry.js +14 -27
- package/dist/esm/br-step-item.entry.js.map +1 -1
- package/dist/esm/br-step.entry.js +21 -32
- package/dist/esm/br-step.entry.js.map +1 -1
- package/dist/esm/br-switch.entry.js +4 -7
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-tab-item.entry.js +2 -2
- package/dist/esm/br-tab-item.entry.js.map +1 -1
- package/dist/esm/br-tab.entry.js +4 -5
- package/dist/esm/br-tab.entry.js.map +1 -1
- package/dist/esm/br-table-cell.entry.js +1 -1
- package/dist/esm/br-table-header-cell.entry.js +1 -1
- package/dist/esm/br-table-header-row.entry.js +1 -1
- package/dist/esm/br-table-row.entry.js +1 -1
- package/dist/esm/br-table.entry.js +1 -1
- package/dist/esm/br-tag.entry.js +2 -2
- package/dist/esm/br-textarea.entry.js +8 -15
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-tooltip.entry.js +18 -28
- package/dist/esm/br-tooltip.entry.js.map +1 -1
- package/dist/esm/br-upload.entry.js +2 -3
- package/dist/esm/br-upload.entry.js.map +1 -1
- package/dist/esm/index-DmA0bHaX.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +411 -347
- package/dist/hydrate/index.mjs +411 -347
- package/dist/types/components/avatar/avatar.d.ts +63 -27
- package/dist/types/components/card/card.d.ts +44 -0
- package/dist/types/components.d.ts +73 -32
- 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 -0
- package/dist/webcomponents/br-checkbox.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-divider.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-input.br-radio.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-scrim.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step.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-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/{p-b16a7896.entry.js → p-096b0875.entry.js} +28 -40
- package/dist/webcomponents/{p-b16a7896.entry.js.map → p-096b0875.entry.js.map} +1 -1
- package/dist/webcomponents/{p-64545afe.entry.js → p-0fe0dcc1.entry.js} +5 -5
- package/dist/webcomponents/{p-744eb116.entry.js → p-16f8e426.entry.js} +15 -15
- package/dist/webcomponents/{p-67e47dd0.entry.js → p-1d018f30.entry.js} +4 -4
- package/dist/webcomponents/{p-d7a4225f.entry.js → p-22682cde.entry.js} +19 -24
- package/dist/webcomponents/p-22682cde.entry.js.map +1 -0
- package/dist/webcomponents/{p-c966ab17.entry.js → p-24f6adad.entry.js} +28 -35
- package/dist/webcomponents/p-24f6adad.entry.js.map +1 -0
- package/dist/webcomponents/{p-4f41615a.entry.js → p-2a407917.entry.js} +7 -7
- package/dist/webcomponents/{p-d7265a28.entry.js → p-3615200c.entry.js} +11 -10
- package/dist/webcomponents/p-3615200c.entry.js.map +1 -0
- package/dist/webcomponents/{p-0d46ca85.entry.js → p-46f1f54c.entry.js} +25 -30
- package/dist/webcomponents/p-46f1f54c.entry.js.map +1 -0
- package/dist/webcomponents/{p-07f5518d.entry.js → p-4b3042fb.entry.js} +44 -53
- package/dist/webcomponents/p-4b3042fb.entry.js.map +1 -0
- package/dist/webcomponents/{p-db84202e.entry.js → p-502c9692.entry.js} +4 -4
- package/dist/webcomponents/{p-6fcaf560.entry.js → p-62ac038c.entry.js} +44 -57
- package/dist/webcomponents/p-62ac038c.entry.js.map +1 -0
- package/dist/webcomponents/{p-59f07375.entry.js → p-70d4da25.entry.js} +10 -10
- package/dist/webcomponents/{p-b7c58efc.entry.js → p-761f7798.entry.js} +7 -7
- package/dist/webcomponents/{p-df308ecd.entry.js → p-83df407a.entry.js} +15 -17
- package/dist/webcomponents/p-83df407a.entry.js.map +1 -0
- package/dist/webcomponents/{p-25addf8c.entry.js → p-88bfa633.entry.js} +4 -4
- package/dist/webcomponents/{p-08702123.entry.js → p-8ab5744a.entry.js} +18 -24
- package/dist/webcomponents/{p-08702123.entry.js.map → p-8ab5744a.entry.js.map} +1 -1
- package/dist/webcomponents/{p-8dba2e0e.entry.js → p-8b15dfc8.entry.js} +114 -128
- package/dist/webcomponents/p-8b15dfc8.entry.js.map +1 -0
- package/dist/webcomponents/{p-02d3c9c1.entry.js → p-8b24abe6.entry.js} +40 -50
- package/dist/webcomponents/p-8b24abe6.entry.js.map +1 -0
- package/dist/webcomponents/{p-2190e7a9.entry.js → p-90abf633.entry.js} +5 -6
- package/dist/webcomponents/p-90abf633.entry.js.map +1 -0
- package/dist/webcomponents/{p-1457ba7e.entry.js → p-94afd91b.entry.js} +10 -9
- package/dist/webcomponents/p-94afd91b.entry.js.map +1 -0
- package/dist/webcomponents/{p-fb3e3276.entry.js → p-9ed0a45f.entry.js} +9 -8
- package/dist/webcomponents/p-9ed0a45f.entry.js.map +1 -0
- package/dist/webcomponents/{p-8b4d5bf1.entry.js → p-9f9f80c1.entry.js} +2 -2
- package/dist/webcomponents/{p-a9af8d3e.entry.js → p-a802ca08.entry.js} +13 -14
- package/dist/webcomponents/p-a802ca08.entry.js.map +1 -0
- package/dist/webcomponents/{p-e5b33b7e.entry.js → p-abf81334.entry.js} +15 -19
- package/dist/webcomponents/{p-e5b33b7e.entry.js.map → p-abf81334.entry.js.map} +1 -1
- package/dist/webcomponents/{p-a06b7d9d.entry.js → p-ac4ce40c.entry.js} +30 -44
- package/dist/webcomponents/{p-a06b7d9d.entry.js.map → p-ac4ce40c.entry.js.map} +1 -1
- package/dist/webcomponents/{p-9e1743b6.entry.js → p-b019dfca.entry.js} +7 -7
- package/dist/webcomponents/{p-f7a210a8.entry.js → p-b565e6e5.entry.js} +4 -4
- package/dist/webcomponents/{p-33ab56d5.entry.js → p-b600b95e.entry.js} +18 -21
- package/dist/webcomponents/p-b600b95e.entry.js.map +1 -0
- package/dist/webcomponents/{p-41443414.entry.js → p-bbd38dd7.entry.js} +4 -4
- package/dist/webcomponents/{p-cbaac66c.entry.js → p-cac6afba.entry.js} +29 -37
- package/dist/webcomponents/{p-cbaac66c.entry.js.map → p-cac6afba.entry.js.map} +1 -1
- package/dist/webcomponents/{p-ac0f37e9.entry.js → p-d549a87b.entry.js} +4 -4
- package/dist/webcomponents/{p-51cc97aa.entry.js → p-deb094fb.entry.js} +4 -4
- package/dist/webcomponents/{p-3350d161.entry.js → p-df6e707a.entry.js} +116 -66
- package/dist/webcomponents/p-df6e707a.entry.js.map +1 -0
- package/dist/webcomponents/p-ee9fe4a2.entry.js +119 -0
- package/dist/webcomponents/p-ee9fe4a2.entry.js.map +1 -0
- package/dist/webcomponents/{p-238a6399.entry.js → p-f1738ae0.entry.js} +16 -17
- package/dist/webcomponents/p-f1738ae0.entry.js.map +1 -0
- package/dist/webcomponents/webcomponents.esm.js +15 -15
- package/dist/webcomponents.html-custom-data.json +13 -5
- package/package.json +1 -1
- package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
- package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
- package/dist/components/p-1eKV5oxP.js.map +0 -1
- package/dist/components/p-B-uKqjsz.js.map +0 -1
- package/dist/components/p-B3u7t9TB.js.map +0 -1
- package/dist/components/p-BU5QW70m.js.map +0 -1
- package/dist/components/p-CwEkkt16.js.map +0 -1
- package/dist/components/p-DIPMDb5E.js +0 -55
- package/dist/components/p-DIPMDb5E.js.map +0 -1
- package/dist/components/p-DqQ_qkzV.js.map +0 -1
- package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
- package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-02d3c9c1.entry.js.map +0 -1
- package/dist/webcomponents/p-07f5518d.entry.js.map +0 -1
- package/dist/webcomponents/p-0d46ca85.entry.js.map +0 -1
- package/dist/webcomponents/p-1457ba7e.entry.js.map +0 -1
- package/dist/webcomponents/p-2190e7a9.entry.js.map +0 -1
- package/dist/webcomponents/p-238a6399.entry.js.map +0 -1
- package/dist/webcomponents/p-3350d161.entry.js.map +0 -1
- package/dist/webcomponents/p-33ab56d5.entry.js.map +0 -1
- package/dist/webcomponents/p-6fcaf560.entry.js.map +0 -1
- package/dist/webcomponents/p-8dba2e0e.entry.js.map +0 -1
- package/dist/webcomponents/p-DIPMDb5E.js +0 -55
- package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-a9af8d3e.entry.js.map +0 -1
- package/dist/webcomponents/p-c966ab17.entry.js.map +0 -1
- package/dist/webcomponents/p-d7265a28.entry.js.map +0 -1
- package/dist/webcomponents/p-d7a4225f.entry.js.map +0 -1
- package/dist/webcomponents/p-df308ecd.entry.js.map +0 -1
- package/dist/webcomponents/p-fb3e3276.entry.js.map +0 -1
- /package/dist/components/{p-DoUCJxLj.js.map → p-ssSt5UuQ.js.map} +0 -0
- /package/dist/components/{p-0V7YvY_S.js.map → p-xvM_htUS.js.map} +0 -0
- /package/dist/webcomponents/{p-64545afe.entry.js.map → p-0fe0dcc1.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-744eb116.entry.js.map → p-16f8e426.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-67e47dd0.entry.js.map → p-1d018f30.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-4f41615a.entry.js.map → p-2a407917.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-db84202e.entry.js.map → p-502c9692.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-59f07375.entry.js.map → p-70d4da25.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-b7c58efc.entry.js.map → p-761f7798.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-25addf8c.entry.js.map → p-88bfa633.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-8b4d5bf1.entry.js.map → p-9f9f80c1.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-9e1743b6.entry.js.map → p-b019dfca.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-f7a210a8.entry.js.map → p-b565e6e5.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-41443414.entry.js.map → p-bbd38dd7.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-ac0f37e9.entry.js.map → p-d549a87b.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-51cc97aa.entry.js.map → p-deb094fb.entry.js.map} +0 -0
|
@@ -11,11 +11,6 @@ export declare class Avatar {
|
|
|
11
11
|
* Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.
|
|
12
12
|
*/
|
|
13
13
|
density: 'small' | 'medium' | 'large';
|
|
14
|
-
handleDensityChange(newValue: 'small' | 'medium' | 'large'): void;
|
|
15
|
-
/**
|
|
16
|
-
* Executa validações iniciais quando o componente é carregado
|
|
17
|
-
*/
|
|
18
|
-
componentWillLoad(): void;
|
|
19
14
|
/**
|
|
20
15
|
* Identificador único.
|
|
21
16
|
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
@@ -27,48 +22,89 @@ export declare class Avatar {
|
|
|
27
22
|
*/
|
|
28
23
|
readonly src: string;
|
|
29
24
|
/**
|
|
30
|
-
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade
|
|
25
|
+
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.
|
|
31
26
|
* Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: "Foto de perfil de João Silva".
|
|
32
27
|
*/
|
|
33
|
-
readonly alt = "
|
|
28
|
+
readonly alt = "Foto de perfil do usu\u00E1rio";
|
|
34
29
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
30
|
+
* Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).
|
|
31
|
+
* Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.
|
|
37
32
|
*/
|
|
38
33
|
readonly isIconic: boolean;
|
|
39
34
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
35
|
+
* Conteúdo textual do avatar.
|
|
36
|
+
* Apenas o primeiro caractere será exibido em maiúscula.
|
|
42
37
|
*/
|
|
43
38
|
readonly text: string;
|
|
44
39
|
/**
|
|
45
|
-
*
|
|
46
|
-
* */
|
|
47
|
-
readonly iconWidth: string;
|
|
48
|
-
/**
|
|
49
|
-
* Altura do ícone no avatar do tipo icônico
|
|
40
|
+
* Define se o avatar está desabilitado
|
|
50
41
|
*/
|
|
51
|
-
readonly
|
|
42
|
+
readonly disabled = false;
|
|
52
43
|
/**
|
|
53
|
-
*
|
|
44
|
+
* Cor de fundo personalizada para o avatar do tipo texto
|
|
54
45
|
*/
|
|
55
|
-
readonly
|
|
46
|
+
readonly textBackgroundColor: string;
|
|
47
|
+
private hasError;
|
|
56
48
|
/**
|
|
57
|
-
*
|
|
49
|
+
* Observa mudanças na propriedade density para validação e sincronização com atributo DOM.
|
|
50
|
+
* Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.
|
|
58
51
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
handleDensityChange(newValue: 'small' | 'medium' | 'large'): void;
|
|
53
|
+
componentWillLoad(): void;
|
|
54
|
+
componentDidUpdate(): void;
|
|
61
55
|
/**
|
|
62
56
|
* Gera um mapa de classes CSS com base nas propriedades do componente.
|
|
63
|
-
* O mapa de classes determina quais classes CSS devem ser aplicadas
|
|
64
|
-
* ao elemento host do componente, ajustando sua aparência.
|
|
65
|
-
*
|
|
66
57
|
* @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.
|
|
67
58
|
*/
|
|
68
59
|
private getCssClassMap;
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).
|
|
62
|
+
* @param value - String a ser verificada
|
|
63
|
+
* @returns {boolean} true se a string possui conteúdo
|
|
64
|
+
*/
|
|
65
|
+
private hasContent;
|
|
71
66
|
private readonly handleImageError;
|
|
67
|
+
/**
|
|
68
|
+
* Obtém as classes CSS para o elemento content.
|
|
69
|
+
* @returns {string} Classes CSS do content
|
|
70
|
+
*/
|
|
71
|
+
private getContentClasses;
|
|
72
|
+
/**
|
|
73
|
+
* Define a variável CSS para cor de fundo personalizada para o avatar texto.
|
|
74
|
+
*/
|
|
75
|
+
private setCustomBackgroundColor;
|
|
76
|
+
/**
|
|
77
|
+
* Gera aria-label apropriado baseado no tipo de avatar
|
|
78
|
+
* Prioriza aria-label do host, senão gera automaticamente
|
|
79
|
+
*/
|
|
80
|
+
private getAriaLabel;
|
|
81
|
+
/**
|
|
82
|
+
* Obtém o valor do token do DS para altura do ícone
|
|
83
|
+
*/
|
|
84
|
+
private getIconSize;
|
|
85
|
+
/**
|
|
86
|
+
* Obtém o valor do token do DS para largura do ícone (altura + 8px)
|
|
87
|
+
*/
|
|
88
|
+
private getIconWidth;
|
|
89
|
+
/**
|
|
90
|
+
* Renderiza o avatar do tipo 'letra/texto'.
|
|
91
|
+
* Exibe a primeira letra do texto em maiúscula.
|
|
92
|
+
*/
|
|
93
|
+
private renderTextAvatar;
|
|
94
|
+
/**
|
|
95
|
+
* Renderiza o avatar do tipo 'fotográfico/imagem'.
|
|
96
|
+
* Exibe uma imagem carregada via URL.
|
|
97
|
+
*/
|
|
98
|
+
private renderImageAvatar;
|
|
99
|
+
/**
|
|
100
|
+
* Renderiza o avatar do tipo 'icônico'.
|
|
101
|
+
* Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.
|
|
102
|
+
*/
|
|
103
|
+
private renderIconAvatar;
|
|
104
|
+
/**
|
|
105
|
+
* Método principal de renderização do avatar.
|
|
106
|
+
* Prioridade: isIconic > texto > imagem > ícone (padrão)
|
|
107
|
+
*/
|
|
72
108
|
private renderAvatar;
|
|
73
109
|
render(): any;
|
|
74
110
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* O componente Card é um container versátil para apresentação de conteúdo estruturado.
|
|
3
|
+
* Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
|
|
4
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
|
|
5
|
+
*
|
|
6
|
+
* @slot default - Conteúdo principal do card quando não usar slots estruturados
|
|
7
|
+
* @slot header - Conteúdo do cabeçalho do card
|
|
8
|
+
* @slot content - Conteúdo principal do card (quando usar estrutura com slots)
|
|
9
|
+
* @slot footer - Conteúdo do rodapé do card
|
|
10
|
+
*/
|
|
11
|
+
export declare class BrCard {
|
|
12
|
+
/**
|
|
13
|
+
* Referência ao elemento host do componente.
|
|
14
|
+
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
|
|
15
|
+
*/
|
|
16
|
+
el: HTMLBrCardElement;
|
|
17
|
+
elementInternals: ElementInternals;
|
|
18
|
+
/**
|
|
19
|
+
* Identificador único.
|
|
20
|
+
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
21
|
+
*/
|
|
22
|
+
readonly customId: string;
|
|
23
|
+
/**
|
|
24
|
+
* Define se o card está desabilitado.
|
|
25
|
+
* Quando true, o card fica com opacidade reduzida e não responde a interações.
|
|
26
|
+
*/
|
|
27
|
+
disabled: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Define se o card tem hover interativo.
|
|
30
|
+
* Quando true, o card terá efeitos visuais ao passar o mouse.
|
|
31
|
+
*/
|
|
32
|
+
hover: boolean;
|
|
33
|
+
private hasHeader;
|
|
34
|
+
private hasContent;
|
|
35
|
+
private hasFooter;
|
|
36
|
+
componentWillLoad(): void;
|
|
37
|
+
componentDidLoad(): void;
|
|
38
|
+
private checkSlots;
|
|
39
|
+
private getCssClassMap;
|
|
40
|
+
private getHeaderClassMap;
|
|
41
|
+
private getContentClassMap;
|
|
42
|
+
private getFooterClassMap;
|
|
43
|
+
render(): any;
|
|
44
|
+
}
|
|
@@ -13,9 +13,9 @@ export namespace Components {
|
|
|
13
13
|
*/
|
|
14
14
|
interface BrAvatar {
|
|
15
15
|
/**
|
|
16
|
-
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade
|
|
16
|
+
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade. Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: "Foto de perfil de João Silva".
|
|
17
17
|
*/
|
|
18
|
-
"alt": "
|
|
18
|
+
"alt": "Foto de perfil do usuário";
|
|
19
19
|
/**
|
|
20
20
|
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
21
21
|
*/
|
|
@@ -29,19 +29,7 @@ export namespace Components {
|
|
|
29
29
|
*/
|
|
30
30
|
"disabled": false;
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
34
|
-
"iconHeight": string;
|
|
35
|
-
/**
|
|
36
|
-
* Ajuste para a margem de cima do ícone no avatar do tipo icônico
|
|
37
|
-
*/
|
|
38
|
-
"iconMarginTop": string;
|
|
39
|
-
/**
|
|
40
|
-
* Largura do ícone no avatar do tipo icônico
|
|
41
|
-
*/
|
|
42
|
-
"iconWidth": string;
|
|
43
|
-
/**
|
|
44
|
-
* Indica se o avatar deve ser exibido como um ícone em vez de uma imagem fotográfica. Se definido como verdadeiro, o avatar será exibido como um ícone.
|
|
32
|
+
* Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem). Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.
|
|
45
33
|
*/
|
|
46
34
|
"isIconic": boolean;
|
|
47
35
|
/**
|
|
@@ -49,9 +37,13 @@ export namespace Components {
|
|
|
49
37
|
*/
|
|
50
38
|
"src": string;
|
|
51
39
|
/**
|
|
52
|
-
*
|
|
40
|
+
* Conteúdo textual do avatar. Apenas o primeiro caractere será exibido em maiúscula.
|
|
53
41
|
*/
|
|
54
42
|
"text": string;
|
|
43
|
+
/**
|
|
44
|
+
* Cor de fundo personalizada para o avatar do tipo texto
|
|
45
|
+
*/
|
|
46
|
+
"textBackgroundColor": string;
|
|
55
47
|
}
|
|
56
48
|
interface BrBreadcrumb {
|
|
57
49
|
/**
|
|
@@ -120,6 +112,25 @@ export namespace Components {
|
|
|
120
112
|
*/
|
|
121
113
|
"value": string;
|
|
122
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* O componente Card é um container versátil para apresentação de conteúdo estruturado.
|
|
117
|
+
* Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
|
|
118
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
|
|
119
|
+
*/
|
|
120
|
+
interface BrCard {
|
|
121
|
+
/**
|
|
122
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
123
|
+
*/
|
|
124
|
+
"customId": string;
|
|
125
|
+
/**
|
|
126
|
+
* Define se o card está desabilitado. Quando true, o card fica com opacidade reduzida e não responde a interações.
|
|
127
|
+
*/
|
|
128
|
+
"disabled": boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Define se o card tem hover interativo. Quando true, o card terá efeitos visuais ao passar o mouse.
|
|
131
|
+
*/
|
|
132
|
+
"hover": boolean;
|
|
133
|
+
}
|
|
123
134
|
/**
|
|
124
135
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/checkbox?tab=designer).
|
|
125
136
|
*/
|
|
@@ -1490,6 +1501,17 @@ declare global {
|
|
|
1490
1501
|
prototype: HTMLBrButtonElement;
|
|
1491
1502
|
new (): HTMLBrButtonElement;
|
|
1492
1503
|
};
|
|
1504
|
+
/**
|
|
1505
|
+
* O componente Card é um container versátil para apresentação de conteúdo estruturado.
|
|
1506
|
+
* Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
|
|
1507
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
|
|
1508
|
+
*/
|
|
1509
|
+
interface HTMLBrCardElement extends Components.BrCard, HTMLStencilElement {
|
|
1510
|
+
}
|
|
1511
|
+
var HTMLBrCardElement: {
|
|
1512
|
+
prototype: HTMLBrCardElement;
|
|
1513
|
+
new (): HTMLBrCardElement;
|
|
1514
|
+
};
|
|
1493
1515
|
interface HTMLBrCheckboxElementEventMap {
|
|
1494
1516
|
"checkedChange": boolean;
|
|
1495
1517
|
"indeterminateChange": boolean;
|
|
@@ -2058,6 +2080,7 @@ declare global {
|
|
|
2058
2080
|
"br-avatar": HTMLBrAvatarElement;
|
|
2059
2081
|
"br-breadcrumb": HTMLBrBreadcrumbElement;
|
|
2060
2082
|
"br-button": HTMLBrButtonElement;
|
|
2083
|
+
"br-card": HTMLBrCardElement;
|
|
2061
2084
|
"br-checkbox": HTMLBrCheckboxElement;
|
|
2062
2085
|
"br-checkgroup": HTMLBrCheckgroupElement;
|
|
2063
2086
|
"br-collapse": HTMLBrCollapseElement;
|
|
@@ -2101,9 +2124,9 @@ declare namespace LocalJSX {
|
|
|
2101
2124
|
*/
|
|
2102
2125
|
interface BrAvatar {
|
|
2103
2126
|
/**
|
|
2104
|
-
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade
|
|
2127
|
+
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade. Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: "Foto de perfil de João Silva".
|
|
2105
2128
|
*/
|
|
2106
|
-
"alt"?: "
|
|
2129
|
+
"alt"?: "Foto de perfil do usuário";
|
|
2107
2130
|
/**
|
|
2108
2131
|
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
2109
2132
|
*/
|
|
@@ -2117,19 +2140,7 @@ declare namespace LocalJSX {
|
|
|
2117
2140
|
*/
|
|
2118
2141
|
"disabled"?: false;
|
|
2119
2142
|
/**
|
|
2120
|
-
*
|
|
2121
|
-
*/
|
|
2122
|
-
"iconHeight"?: string;
|
|
2123
|
-
/**
|
|
2124
|
-
* Ajuste para a margem de cima do ícone no avatar do tipo icônico
|
|
2125
|
-
*/
|
|
2126
|
-
"iconMarginTop"?: string;
|
|
2127
|
-
/**
|
|
2128
|
-
* Largura do ícone no avatar do tipo icônico
|
|
2129
|
-
*/
|
|
2130
|
-
"iconWidth"?: string;
|
|
2131
|
-
/**
|
|
2132
|
-
* Indica se o avatar deve ser exibido como um ícone em vez de uma imagem fotográfica. Se definido como verdadeiro, o avatar será exibido como um ícone.
|
|
2143
|
+
* Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem). Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.
|
|
2133
2144
|
*/
|
|
2134
2145
|
"isIconic"?: boolean;
|
|
2135
2146
|
/**
|
|
@@ -2137,9 +2148,13 @@ declare namespace LocalJSX {
|
|
|
2137
2148
|
*/
|
|
2138
2149
|
"src"?: string;
|
|
2139
2150
|
/**
|
|
2140
|
-
*
|
|
2151
|
+
* Conteúdo textual do avatar. Apenas o primeiro caractere será exibido em maiúscula.
|
|
2141
2152
|
*/
|
|
2142
2153
|
"text"?: string;
|
|
2154
|
+
/**
|
|
2155
|
+
* Cor de fundo personalizada para o avatar do tipo texto
|
|
2156
|
+
*/
|
|
2157
|
+
"textBackgroundColor"?: string;
|
|
2143
2158
|
}
|
|
2144
2159
|
interface BrBreadcrumb {
|
|
2145
2160
|
/**
|
|
@@ -2208,6 +2223,25 @@ declare namespace LocalJSX {
|
|
|
2208
2223
|
*/
|
|
2209
2224
|
"value"?: string;
|
|
2210
2225
|
}
|
|
2226
|
+
/**
|
|
2227
|
+
* O componente Card é um container versátil para apresentação de conteúdo estruturado.
|
|
2228
|
+
* Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
|
|
2229
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
|
|
2230
|
+
*/
|
|
2231
|
+
interface BrCard {
|
|
2232
|
+
/**
|
|
2233
|
+
* Identificador único. Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
2234
|
+
*/
|
|
2235
|
+
"customId"?: string;
|
|
2236
|
+
/**
|
|
2237
|
+
* Define se o card está desabilitado. Quando true, o card fica com opacidade reduzida e não responde a interações.
|
|
2238
|
+
*/
|
|
2239
|
+
"disabled"?: boolean;
|
|
2240
|
+
/**
|
|
2241
|
+
* Define se o card tem hover interativo. Quando true, o card terá efeitos visuais ao passar o mouse.
|
|
2242
|
+
*/
|
|
2243
|
+
"hover"?: boolean;
|
|
2244
|
+
}
|
|
2211
2245
|
/**
|
|
2212
2246
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/checkbox?tab=designer).
|
|
2213
2247
|
*/
|
|
@@ -3480,6 +3514,7 @@ declare namespace LocalJSX {
|
|
|
3480
3514
|
"br-avatar": BrAvatar;
|
|
3481
3515
|
"br-breadcrumb": BrBreadcrumb;
|
|
3482
3516
|
"br-button": BrButton;
|
|
3517
|
+
"br-card": BrCard;
|
|
3483
3518
|
"br-checkbox": BrCheckbox;
|
|
3484
3519
|
"br-checkgroup": BrCheckgroup;
|
|
3485
3520
|
"br-collapse": BrCollapse;
|
|
@@ -3530,6 +3565,12 @@ declare module "@stencil/core" {
|
|
|
3530
3565
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/button?tab=designer).
|
|
3531
3566
|
*/
|
|
3532
3567
|
"br-button": LocalJSX.BrButton & JSXBase.HTMLAttributes<HTMLBrButtonElement>;
|
|
3568
|
+
/**
|
|
3569
|
+
* O componente Card é um container versátil para apresentação de conteúdo estruturado.
|
|
3570
|
+
* Suporta cabeçalho, conteúdo principal e rodapé, além de diferentes estilos visuais.
|
|
3571
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/card?tab=designer).
|
|
3572
|
+
*/
|
|
3573
|
+
"br-card": LocalJSX.BrCard & JSXBase.HTMLAttributes<HTMLBrCardElement>;
|
|
3533
3574
|
/**
|
|
3534
3575
|
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/checkbox?tab=designer).
|
|
3535
3576
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-avatar.entry.esm.js","sources":["../../packages/webcomponents/src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","../../packages/webcomponents/src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: inline-block;\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ mutable: true }) density: 'small' | 'medium' | 'large' = 'medium'\n\n @Watch('density')\n handleDensityChange(newValue: 'small' | 'medium' | 'large') {\n if (!['small', 'medium', 'large'].includes(newValue)) {\n console.warn(`Valor inválido para density: ${newValue}. Usando 'medium'.`)\n this.density = 'medium'\n }\n this.el.setAttribute('density', this.density)\n }\n\n /**\n * Executa validações iniciais quando o componente é carregado\n */\n componentWillLoad() {\n this.handleDensityChange(this.density)\n }\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-avatar-${avatarId++}`\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() readonly src: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade e SEO.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() readonly alt = 'Imagem do avatar'\n\n /**\n * Indica se o avatar deve ser exibido como um ícone em vez de uma imagem fotográfica.\n * Se definido como verdadeiro, o avatar será exibido como um ícone.\n */\n @Prop() readonly isIconic: boolean = false\n\n /**\n * Texto exibido no avatar do tipo 'letra'.\n * Esse texto será mostrado em vez de uma imagem e pode ser usado para representar iniciais ou outras informações textuais.\n */\n @Prop() readonly text: string\n\n /**\n * Largura do ícone no avatar do tipo icônico\n * */\n @Prop() readonly iconWidth: string\n\n /**\n * Altura do ícone no avatar do tipo icônico\n */\n @Prop() readonly iconHeight: string\n\n /**\n * Ajuste para a margem de cima do ícone no avatar do tipo icônico\n */\n @Prop() readonly iconMarginTop: string\n\n /**\n * Define se o avatar está desabilitado\n */\n @Prop() readonly disabled = false\n\n @State() private hasError = false\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * O mapa de classes determina quais classes CSS devem ser aplicadas\n * ao elemento host do componente, ajustando sua aparência.\n *\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n [this.density]: true,\n error: this.hasError,\n disabled: this.disabled,\n }\n }\n\n private readonly iconSizes = {\n small: { height: '32px', width: '40px' },\n medium: { height: '80px', width: '88px' },\n large: { height: '128px', width: '136px' },\n }\n\n private readonly iconMarginTops = {\n small: '0.7em',\n medium: '1em',\n large: '0.62em',\n }\n\n private readonly handleImageError = () => {\n this.hasError = true\n console.error(`Erro ao carregar imagem do avatar: ${this.src}`)\n }\n\n private renderAvatar() {\n if (this.text?.trim().length > 0) {\n return (\n <span class=\"content bg-support-01 text-pure-0\" title={this.text}>\n {this.text[0].toUpperCase()}\n </span>\n )\n } else if (this.src?.trim().length > 0 && !this.hasError) {\n return (\n <span class=\"content\" title={this.alt || this.text}>\n <img src={this.src} alt={this.alt} loading=\"lazy\" onError={this.handleImageError} />\n </span>\n )\n } else {\n return (\n <span class=\"content\" title={this.text}>\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.iconHeight?.length > 0 ? this.iconHeight : this.iconSizes[this.density]?.height}\n width={this.iconWidth?.length > 0 ? this.iconWidth : this.iconSizes[this.density]?.width}\n aria-hidden=\"true\"\n style={{\n 'margin-top': this.iconMarginTop?.length > 0 ? this.iconMarginTop : this.iconMarginTops[this.density],\n }}\n ></br-icon>\n </span>\n )\n }\n }\n\n render() {\n return (\n <Host>\n <span id={this.customId} class={this.getCssClassMap()} aria-disabled={this.disabled}>\n {this.renderAvatar()}\n </span>\n </Host>\n )\n }\n}\n\nlet avatarId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,SAAS,GAAG,414DAA414D;;MCYj24D,MAAM,GAAA,MAAA;AALnB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;AAEG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAiC,QAAQ;AAkBzE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,aAAa,QAAQ,EAAE,EAAE;AAQ9E;;;AAGG;AACc,QAAA,IAAG,CAAA,GAAA,GAAG,kBAAkB;AAEzC;;;AAGG;AACc,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAuB1C;;AAEG;AACc,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAEhB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;QAkBhB,IAAA,CAAA,SAAS,GAAG;YAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACxC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACzC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SAC3C;QAEgB,IAAA,CAAA,cAAc,GAAG;AAChC,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,KAAK,EAAE,QAAQ;SAChB;AAEgB,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AACvC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACpB,OAAO,CAAC,KAAK,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAAC,GAAG,CAAE,CAAA,CAAC;AACjE,SAAC;AAyCF;AA3IC,IAAA,mBAAmB,CAAC,QAAsC,EAAA;AACxD,QAAA,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACpD,YAAA,OAAO,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAA,kBAAA,CAAoB,CAAC;AAC1E,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ;;QAEzB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;;AAG/C;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;;AAuDxC;;;;;;AAMG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI;YACpB,KAAK,EAAE,IAAI,CAAC,QAAQ;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;;IAoBK,YAAY,GAAA;;AAClB,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,EAAA,CAAG,MAAM,IAAG,CAAC,EAAE;AAChC,YAAA,QACE,YAAM,KAAK,EAAC,mCAAmC,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACtB;;AAEJ,aAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,0CAAE,IAAI,EAAA,CAAG,MAAM,IAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxD,QACE,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAA,EAChD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAA,CAAI,CAC/E;;aAEJ;AACL,YAAA,QACE,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAA,EACpC,CAAA,CAAA,SAAA,EAAA,EAAA,WAAA,EACY,eAAe,EACzB,MAAM,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,0CAAE,MAAM,EAC5F,KAAK,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,0CAAE,KAAK,EAAA,aAAA,EAC5E,MAAM,EAClB,KAAK,EAAE;oBACL,YAAY,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;iBACtG,EACQ,CAAA,CACN;;;IAKb,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,mBAAiB,IAAI,CAAC,QAAQ,EAAA,EAChF,IAAI,CAAC,YAAY,EAAE,CACf,CACF;;;;;;;AAKb,IAAI,QAAQ,GAAG,CAAC;;;;;"}
|
|
1
|
+
{"version":3,"file":"br-avatar.entry.esm.js","sources":["../../packages/webcomponents/src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","../../packages/webcomponents/src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: inline-block;\n --avatar-text-background-color: var(--blue-10);\n}\n\n.br-avatar .content.text-pure-0 {\n background-color: var(--avatar-text-background-color) !important;\n}\n\n.avatar-icon {\n margin-top: 0.39em;\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ mutable: true }) density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-avatar-${avatarId++}`\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() readonly src: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() readonly alt = 'Foto de perfil do usuário'\n\n /**\n * Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).\n * Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.\n */\n @Prop() readonly isIconic: boolean = false\n\n /**\n * Conteúdo textual do avatar.\n * Apenas o primeiro caractere será exibido em maiúscula.\n */\n @Prop() readonly text: string\n\n /**\n * Define se o avatar está desabilitado\n */\n @Prop() readonly disabled = false\n\n /**\n * Cor de fundo personalizada para o avatar do tipo texto\n */\n @Prop() readonly textBackgroundColor: string\n\n @State() private hasError = false\n\n /**\n * Observa mudanças na propriedade density para validação e sincronização com atributo DOM.\n * Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.\n */\n @Watch('density')\n handleDensityChange(newValue: 'small' | 'medium' | 'large') {\n if (!['small', 'medium', 'large'].includes(newValue)) {\n console.warn(`Valor inválido para density: ${newValue}. Usando 'medium'.`)\n this.density = 'medium'\n }\n this.el.setAttribute('density', this.density)\n }\n\n componentWillLoad() {\n this.handleDensityChange(this.density)\n this.setCustomBackgroundColor()\n }\n\n componentDidUpdate() {\n this.setCustomBackgroundColor()\n }\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n [this.density]: true,\n error: this.hasError,\n disabled: this.disabled,\n }\n }\n\n /**\n * Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).\n * @param value - String a ser verificada\n * @returns {boolean} true se a string possui conteúdo\n */\n private hasContent(value: string): boolean {\n return value?.trim().length > 0\n }\n\n private readonly handleImageError = () => {\n this.hasError = true\n console.error(`Erro ao carregar imagem do avatar: ${this.src}`)\n }\n\n /**\n * Obtém as classes CSS para o elemento content.\n * @returns {string} Classes CSS do content\n */\n private getContentClasses(): string {\n if (this.hasContent(this.text) && !this.isIconic) {\n return 'content text-pure-0'\n }\n return 'content'\n }\n\n /**\n * Define a variável CSS para cor de fundo personalizada para o avatar texto.\n */\n private setCustomBackgroundColor() {\n if (this.hasContent(this.textBackgroundColor)) {\n this.el.style.setProperty('--avatar-text-background-color', this.textBackgroundColor)\n }\n }\n\n /**\n * Gera aria-label apropriado baseado no tipo de avatar\n * Prioriza aria-label do host, senão gera automaticamente\n */\n private getAriaLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n if (this.hasContent(hostAriaLabel)) {\n return hostAriaLabel\n }\n\n if (this.hasContent(this.text) && !this.isIconic) {\n return `Avatar de ${this.text}`\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.alt\n }\n\n return 'Avatar com ícone padrão de usuário'\n }\n\n /**\n * Obtém o valor do token do DS para altura do ícone\n */\n private getIconSize(): string {\n const tokenName = `--icon-size-${this.density === 'small' ? '2x' : this.density === 'medium' ? '5x' : '8x'}`\n return getComputedStyle(this.el).getPropertyValue(tokenName).trim()\n }\n\n /**\n * Obtém o valor do token do DS para largura do ícone (altura + 8px)\n */\n private getIconWidth(): string {\n const baseSize = this.getIconSize()\n const numericValue = parseInt(baseSize.replace('px', ''))\n return `${numericValue + 8}px`\n }\n\n /**\n * Renderiza o avatar do tipo 'letra/texto'.\n * Exibe a primeira letra do texto em maiúscula.\n */\n private renderTextAvatar() {\n return this.text[0].toUpperCase()\n }\n\n /**\n * Renderiza o avatar do tipo 'fotográfico/imagem'.\n * Exibe uma imagem carregada via URL.\n */\n private renderImageAvatar() {\n return <img src={this.src} alt={this.alt} loading=\"lazy\" onError={this.handleImageError} />\n }\n\n /**\n * Renderiza o avatar do tipo 'icônico'.\n * Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.\n */\n private renderIconAvatar() {\n return (\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.getIconSize()}\n width={this.getIconWidth()}\n aria-hidden=\"true\"\n class=\"avatar-icon\"\n ></br-icon>\n )\n }\n\n /**\n * Método principal de renderização do avatar.\n * Prioridade: isIconic > texto > imagem > ícone (padrão)\n */\n private renderAvatar() {\n if (this.isIconic) {\n return this.renderIconAvatar()\n }\n\n if (this.hasContent(this.text)) {\n return this.renderTextAvatar()\n }\n\n if (this.hasContent(this.src) && !this.hasError) {\n return this.renderImageAvatar()\n }\n\n return this.renderIconAvatar()\n }\n\n render() {\n return (\n <Host>\n <span id={this.customId} class={this.getCssClassMap()} aria-label={this.getAriaLabel()}>\n <span class={this.getContentClasses()}>{this.renderAvatar()}</span>\n </span>\n </Host>\n )\n }\n}\n\nlet avatarId = 0\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-breadcrumb.entry.esm.js","sources":["../../packages/webcomponents/src/components/breadcrumb/breadcrumb.scss?tag=br-breadcrumb&encapsulation=shadow","../../packages/webcomponents/src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/breadcrumb/breadcrumb\";\n@import \"~@govbr-ds/core/src/partial/scss/configs/icons\";\n@import \"~@govbr-ds/core/src/components/button/button\";\n@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n}\n\n.br-breadcrumb {\n .br-icon {\n color: #ccc;\n }\n\n .br-icon,\n .mobile-active-page {\n display: flex;\n align-items: center;\n }\n\n .mobile-crumb-list {\n display: none;\n position: absolute;\n width: 200px;\n box-shadow: var(--surface-shadow-sm);\n }\n\n .mobile-crumb-list.show {\n display: block;\n top: 100%;\n z-index: 999;\n }\n\n .buttonFolderGroup,\n .buttonFolderGroup span {\n display: flex;\n align-items: center;\n }\n\n .mobile-active-page {\n span:focus:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n outline-offset: var(--focus-offset);\n }\n\n [data-active] {\n margin: 0 var(--spacing-scale-2x) 0 var(--spacing-scale-base);\n }\n }\n\n .crumb {\n display: flex;\n align-items: center;\n\n span {\n display: flex;\n align-items: center;\n }\n }\n}\n\n.tooltip-box {\n position: fixed;\n background: #1351b4;\n color: #fff;\n padding: 8px 12px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n transform: translate(-50%, -100%);\n pointer-events: none;\n z-index: 9999;\n box-shadow: 0 2px 4px rgba(0 0 0 / 20%);\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: -5px;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #1351b4;\n }\n}\n\n:host(:hover) {\n .tooltip-box {\n opacity: 1;\n }\n}\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport { AttachInternals, Component, Element, h, Host, Prop, State } from '@stencil/core'\n\ninterface BreadcrumbItem {\n label: string\n url?: string\n target?: string\n home?: boolean\n active?: boolean\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.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-breadcrumb-${breadcrumbId++}`\n\n /**\n * URL para home.\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\" tabindex=\"0\">\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\" tabindex=\"0\">\n {item.label}\n </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 * ID do Breadcrumb\n */\nlet breadcrumbId = 0\n\n/**\n * Limite de caracteres para o truncamento\n */\nconst charactersNumberTruncate = 20\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-breadcrumb.entry.esm.js","sources":["../../packages/webcomponents/src/components/breadcrumb/breadcrumb.scss?tag=br-breadcrumb&encapsulation=shadow","../../packages/webcomponents/src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/breadcrumb/breadcrumb\";\n@import \"~@govbr-ds/core/src/partial/scss/configs/icons\";\n@import \"~@govbr-ds/core/src/components/button/button\";\n@import \"~@govbr-ds/core/src/components/list/list\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n@import \"~@govbr-ds/core/src/components/divider/divider\";\n\n:host {\n display: block;\n}\n\n.br-breadcrumb {\n .br-icon {\n color: #ccc;\n }\n\n .br-icon,\n .mobile-active-page {\n display: flex;\n align-items: center;\n }\n\n .mobile-crumb-list {\n display: none;\n position: absolute;\n width: 200px;\n box-shadow: var(--surface-shadow-sm);\n }\n\n .mobile-crumb-list.show {\n display: block;\n top: 100%;\n z-index: 999;\n }\n\n .buttonFolderGroup,\n .buttonFolderGroup span {\n display: flex;\n align-items: center;\n }\n\n .mobile-active-page {\n span:focus:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus);\n outline-offset: var(--focus-offset);\n }\n\n [data-active] {\n margin: 0 var(--spacing-scale-2x) 0 var(--spacing-scale-base);\n }\n }\n\n .crumb {\n display: flex;\n align-items: center;\n\n span {\n display: flex;\n align-items: center;\n }\n }\n}\n\n.tooltip-box {\n position: fixed;\n background: #1351b4;\n color: #fff;\n padding: 8px 12px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n transform: translate(-50%, -100%);\n pointer-events: none;\n z-index: 9999;\n box-shadow: 0 2px 4px rgba(0 0 0 / 20%);\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: -5px;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #1351b4;\n }\n}\n\n:host(:hover) {\n .tooltip-box {\n opacity: 1;\n }\n}\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport { AttachInternals, Component, Element, h, Host, Prop, State } from '@stencil/core'\n\ninterface BreadcrumbItem {\n label: string\n url?: string\n target?: string\n home?: boolean\n active?: boolean\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.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-breadcrumb-${breadcrumbId++}`\n\n /**\n * URL para home.\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\" tabindex=\"0\">\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\" tabindex=\"0\">\n {item.label}\n </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 * ID do Breadcrumb\n */\nlet breadcrumbId = 0\n\n/**\n * Limite de caracteres para o truncamento\n */\nconst charactersNumberTruncate = 20\n"],"names":[],"mappings":"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"}
|