@govbr-ds/webcomponents 2.0.0-next.64 → 2.0.0-next.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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 +9 -9
- 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 +1388 -710
- 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-2be1c309.entry.js → p-f583b74c.entry.js} +7 -7
- package/dist/webcomponents/{p-2be1c309.entry.js.map → p-f583b74c.entry.js.map} +1 -1
- 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 +136 -79
- 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-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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-tab.entry.esm.js","sources":["../../packages/webcomponents/src/components/tab/tab.scss?tag=br-tab&encapsulation=shadow","../../packages/webcomponents/src/components/tab/tab.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/tab/tab\";\n\n:host {\n display: block;\n}\n\n.br-tab {\n box-sizing: border-box;\n width: 100%;\n overflow-x: hidden;\n padding: var(--tab-container-padding, 16px);\n}\n\n.tab-nav {\n &[data-counter=\"true\"] {\n min-height: 102px;\n overflow: hidden;\n\n ul {\n max-height: 65px;\n }\n }\n\n .tab-item {\n button {\n .icon:not(:only-child) {\n margin-right: var(--spacing-scale-base);\n }\n }\n }\n}\n\n.results {\n display: flex;\n font-weight: var(--font-weight);\n justify-content: center;\n margin-top: var(--spacing-scale-2x);\n position: absolute;\n top: 100%;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/tab?tab=designer).\n *\n * @slot default - Slot para inserir os itens das abas (br-tab-item)\n *\n * @part container - Parte para o contêiner principal das abas\n * @part nav - Parte para a navegação das abas\n */\n@Component({\n tag: 'br-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrTabElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * A propriedade 'density' define a densidade do componente.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Define se o Tab usará um esquema de cores escuro.\n */\n @Prop({ reflect: true }) readonly colorMode: 'dark'\n\n /**\n * Label de acessibilidade para a navegação das tabs\n */\n @Prop({ reflect: true }) readonly label: string = 'Abas de Navegação'\n\n /**\n * Define o alinhamento horizontal dos itens da tab na barra de navegação.\n * - 'start': Alinha à esquerda\n * - 'center': Centraliza\n * - 'end': Alinha à direita\n */\n @Prop({ reflect: true }) readonly alignItemsTab: 'start' | 'center' | 'end' = 'start'\n\n /**\n * Lista dos tab items registrados\n */\n @State() private tabItems: HTMLBrTabItemElement[] = []\n\n /**\n * ID do tab atualmente ativo\n */\n @State() private activeTabId: string\n\n /**\n * Flag para controlar se o activeTabId já foi inicializado\n */\n private activeTabInitialized = false\n\n /**\n * Evento disparado quando um tab é ativado.\n */\n @Event() brTabChange: EventEmitter<{ tabId: string; tabIndex: number }>\n\n private slotElement: HTMLSlotElement\n private mutationObserver: MutationObserver\n\n /**\n * Observa mudanças no tab ativo para atualizar os estados\n */\n @Watch('activeTabId')\n activeTabChanged(newId: string) {\n this.updateTabStates()\n const activeIndex = this.tabItems.findIndex((item) => item.tabItemId === newId)\n this.brTabChange.emit({ tabId: newId, tabIndex: activeIndex })\n }\n\n /**\n * Observa mudanças no color mode para propagar aos filhos\n */\n @Watch('colorMode')\n colorModeChanged(newValue: string) {\n this.tabItems.forEach((item) => {\n if (newValue !== undefined && newValue !== null && typeof newValue === 'string') {\n item.setAttribute('color-mode', newValue)\n } else {\n item.removeAttribute('color-mode')\n }\n })\n }\n\n /**\n * Escuta evento de mudança de propriedades dos tab-items filhos.\n * Este listener garante que o componente pai seja re-renderizado quando\n * propriedades como tabItemTitle, icon, counter ou onlyIcon mudam dinamicamente.\n */\n @Listen('brTabItemPropsChange')\n handleTabItemPropsChange() {\n // Força re-renderização para atualizar a navegação\n this.tabItems = [...this.tabItems]\n }\n\n private registerTabItems = () => {\n if (this.slotElement === undefined || this.slotElement === null) return\n\n const assignedElements = this.slotElement.assignedElements() as HTMLBrTabItemElement[]\n this.tabItems = assignedElements.filter((el) => el.tagName?.toLowerCase() === 'br-tab-item')\n\n // Garante que cada tab item tenha um ID único\n this.tabItems.forEach((item) => {\n if (\n item.tabItemId === undefined ||\n item.tabItemId === null ||\n (typeof item.tabItemId === 'string' && item.tabItemId === '') ||\n item.hasAttribute('tab-item-id') === false\n ) {\n const id = Helpers.generateUniqueId()\n item.tabItemId = id\n item.setAttribute('tab-item-id', id)\n }\n\n // Propaga color mode\n if (this.colorMode !== undefined && this.colorMode !== null && typeof this.colorMode === 'string') {\n item.setAttribute('color-mode', this.colorMode)\n }\n })\n\n // Só define activeTabId se ainda não foi inicializado\n if (!this.activeTabInitialized && this.tabItems.length > 0) {\n const activeItem = this.tabItems.find((item) => item.isActive === true)\n this.activeTabId = activeItem?.tabItemId || this.tabItems[0].tabItemId\n this.activeTabInitialized = true\n }\n\n this.updateTabStates()\n }\n\n /**\n * Atualiza o estado ativo de todos os tab items\n * Comunicação direta similar ao Vue\n */\n private updateTabStates() {\n this.tabItems.forEach((item) => {\n const isActive = item.tabItemId === this.activeTabId\n item.isActive = isActive\n\n // Atualiza atributos para compatibilidade\n if (isActive) {\n item.setAttribute('is-active', 'true')\n item.setAttribute('aria-selected', 'true')\n } else {\n item.removeAttribute('is-active')\n item.removeAttribute('aria-selected')\n }\n })\n }\n\n /**\n * Manipula o clique em um botão de tab\n */\n private handleTabClick(tabId: string) {\n if (this.activeTabId !== tabId) {\n this.activeTabId = tabId\n }\n }\n\n private handleTabButtonClick = (event: MouseEvent) => {\n const tabId = (event.currentTarget as HTMLElement | null)?.getAttribute('data-tab-id')\n if (typeof tabId === 'string' && tabId.trim() !== '') {\n this.handleTabClick(tabId)\n }\n }\n\n private handleTabButtonKeyDown = (event: KeyboardEvent) => {\n const indexAttr = (event.currentTarget as HTMLElement | null)?.getAttribute('data-tab-index')\n const index = indexAttr !== null ? Number(indexAttr) : NaN\n if (!Number.isNaN(index)) {\n this.handleKeyNavigation(index, event)\n }\n }\n\n /**\n * Manipula navegação por teclado (acessibilidade)\n */\n private handleKeyNavigation(currentIndex: number, event: KeyboardEvent) {\n let newIndex = currentIndex\n\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault()\n newIndex = (currentIndex + 1) % this.tabItems.length\n break\n case 'ArrowLeft':\n event.preventDefault()\n newIndex = (currentIndex - 1 + this.tabItems.length) % this.tabItems.length\n break\n case 'Home':\n event.preventDefault()\n newIndex = 0\n break\n case 'End':\n event.preventDefault()\n newIndex = this.tabItems.length - 1\n break\n case 'ArrowDown':\n event.preventDefault()\n // Foca no conteúdo do painel ativo\n const activePanel = this.tabItems[currentIndex]\n if (activePanel !== undefined && activePanel !== null && typeof activePanel === 'object') {\n const focusableElements = activePanel.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n if (focusableElements.length > 0) {\n ;(focusableElements[0] as HTMLElement).focus()\n }\n }\n return\n default:\n return\n }\n\n // Ativa e foca o novo tab\n if (newIndex !== currentIndex) {\n this.activeTabId = this.tabItems[newIndex].tabItemId\n // O foco será definido no próximo render através do tabindex\n setTimeout(() => {\n const buttons = this.el.shadowRoot.querySelectorAll('.tab-item button')\n ;(buttons[newIndex] as HTMLElement)?.focus()\n }, 0)\n }\n }\n\n /**\n * Retorna o mapeamento de classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tab': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n /**\n * Retorna o mapeamento de classes CSS para cada item de navegação\n */\n private getTabItemCssClassMap(isActive: boolean): CssClassMap {\n return {\n 'tab-item': true,\n active: isActive,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n /**\n * Retorna o alinhamento em formato flexbox\n */\n private getAlignItemsStyle(): string {\n const alignMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n }\n return alignMap[this.alignItemsTab] || 'flex-start'\n }\n\n componentDidLoad() {\n // Garante que registerTabItems seja chamado mesmo se slotchange não disparar\n this.registerTabItems()\n }\n\n disconnectedCallback() {\n if (\n this.mutationObserver !== undefined &&\n this.mutationObserver !== null &&\n typeof this.mutationObserver === 'object'\n ) {\n this.mutationObserver.disconnect()\n }\n }\n\n render() {\n const hasCounter = this.tabItems.some((item) => item.counter)\n\n return (\n <Host>\n <div class={this.getCssClassMap()} id={this.customId} part=\"container\">\n {/* Navegação das tabs */}\n <nav class=\"tab-nav\" data-counter={hasCounter ? 'true' : 'false'} aria-label={this.label} part=\"nav\">\n <ul role=\"tablist\" style={{ justifyContent: this.getAlignItemsStyle() }}>\n {this.tabItems.map((item, index) => {\n const isActive = item.tabItemId === this.activeTabId\n const showOnlyIcon = item.onlyIcon || item.hasAttribute('only-icon')\n\n return (\n <li key={item.tabItemId} class={this.getTabItemCssClassMap(isActive)} role=\"presentation\">\n <button\n type=\"button\"\n id={`tab-button-${item.tabItemId}`}\n role=\"tab\"\n aria-selected={isActive ? 'true' : 'false'}\n aria-controls={`tab-panel-${item.tabItemId}`}\n tabindex={isActive ? 0 : -1}\n data-tab-id={item.tabItemId}\n data-tab-index={index}\n onClick={this.handleTabButtonClick}\n onKeyDown={this.handleTabButtonKeyDown}\n >\n <span class=\"name\">\n {item.icon && (\n <span class=\"icon\">\n <br-icon icon-name={item.icon}></br-icon>\n </span>\n )}\n {!showOnlyIcon && <span>{item.tabItemTitle}</span>}\n </span>\n </button>\n {item.counter && <span class=\"results\">({item.counter})</span>}\n </li>\n )\n })}\n </ul>\n </nav>\n\n <div class=\"tab-content\">\n <slot\n ref={(el) => {\n this.slotElement = el as HTMLSlotElement\n }}\n onSlotchange={this.registerTabItems}\n ></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-tab.entry.esm.js","sources":["../../packages/webcomponents/src/components/tab/tab.scss?tag=br-tab&encapsulation=shadow","../../packages/webcomponents/src/components/tab/tab.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/tab/tab\";\n\n:host {\n display: block;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n --br-tab-height: auto;\n}\n\n.br-tab {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n height: var(--br-tab-height);\n min-height: 0;\n width: 100%;\n overflow: hidden;\n padding: var(--tab-container-padding, 16px);\n\n &.scroll-disabled {\n height: auto;\n min-height: auto;\n overflow: visible;\n }\n}\n\n.tab-nav {\n flex: 0 0 auto;\n\n &[data-counter=\"true\"] {\n min-height: 102px;\n overflow: hidden;\n\n ul {\n max-height: 65px;\n }\n }\n\n .tab-item {\n button {\n .icon:not(:only-child) {\n margin-right: var(--spacing-scale-base);\n }\n }\n }\n}\n\n.tab-content {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n\n .scroll-disabled & {\n overflow: hidden;\n }\n}\n\n.results {\n display: flex;\n font-weight: var(--font-weight);\n justify-content: center;\n margin-top: var(--spacing-scale-2x);\n position: absolute;\n top: 100%;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, State, Watch } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Tipo de densidade para o componente Tab, definindo o espaçamento e tamanho dos elementos.\n */\ntype TabDensity = 'small' | 'medium' | 'large'\n\n/**\n * Tipo de modo de cor para o componente Tab, definindo o esquema de cores utilizado.\n */\ntype TabColorMode = 'dark'\n\n/**\n * Tipo de alinhamento dos itens da tab na barra de navegação.\n */\ntype TabAlignItems = 'start' | 'center' | 'end'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/tab?tab=designer).\n *\n * @slot default - Slot para inserir os itens das abas (br-tab-item)\n *\n * @part container - Parte para o contêiner principal das abas\n * @part nav - Parte para a navegação das abas\n */\n@Component({\n tag: 'br-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n})\nexport class Tab {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el!: HTMLBrTabElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * A propriedade 'density' define a densidade do componente.\n */\n @Prop({ reflect: true }) readonly density: TabDensity = 'medium'\n\n /**\n * Define se o Tab usará um esquema de cores escuro.\n */\n @Prop({ reflect: true }) readonly colorMode?: TabColorMode\n\n /**\n * Label de acessibilidade para a navegação das tabs\n */\n @Prop({ reflect: true }) readonly label: string = 'Abas de Navegação'\n\n /**\n * Define o alinhamento horizontal dos itens da tab na barra de navegação.\n */\n @Prop({ reflect: true }) readonly alignItemsTab: TabAlignItems = 'start'\n\n /**\n * Desabilita o scroll automático da área de conteúdo.\n * Por padrão, o scroll vertical fica apenas na região de conteúdo.\n */\n @Prop({ reflect: true }) readonly scrollDisabled: boolean = false\n\n /**\n * Define a altura máxima da área de conteúdo, ativando o scroll interno quando o conteúdo ultrapassa essa altura.\n */\n @Prop({ reflect: true }) readonly height?: string\n\n /**\n * Lista dos tab items registrados\n */\n @State() private tabItems: HTMLBrTabItemElement[] = []\n\n /**\n * ID do tab atualmente ativo\n */\n @State() private activeTabId: string = ''\n\n /**\n * Flag para controlar se o activeTabId já foi inicializado\n */\n private activeTabInitialized = false\n\n /**\n * Evento disparado quando um tab é ativado.\n */\n @Event() brTabChange!: EventEmitter<{ tabId: string; tabIndex: number }>\n\n /**\n * Referência ao elemento de slot para monitorar mudanças nos tab items filhos.\n */\n private slotElement: HTMLSlotElement | undefined\n\n /**\n * Observador de mutação para detectar mudanças nos tab items filhos\n */\n private mutationObserver: MutationObserver | undefined\n\n /**\n * Observa mudanças no tab ativo para atualizar os estados\n */\n @Watch('activeTabId')\n activeTabChanged(newId: string) {\n this.updateTabStates()\n const activeIndex = this.tabItems.findIndex((item) => item.tabItemId === newId)\n this.brTabChange.emit({ tabId: newId, tabIndex: activeIndex })\n }\n\n /**\n * Observa mudanças no color mode para propagar aos filhos\n */\n @Watch('colorMode')\n colorModeChanged(newValue: string) {\n this.tabItems.forEach((item) => {\n if (newValue !== undefined && newValue !== null && typeof newValue === 'string') {\n item.setAttribute('color-mode', newValue)\n } else {\n item.removeAttribute('color-mode')\n }\n })\n }\n\n /**\n * Escuta evento de mudança de propriedades dos tab-items filhos.\n * Este listener garante que o componente pai seja re-renderizado quando\n * propriedades como tabItemTitle, icon, counter ou onlyIcon mudam dinamicamente.\n */\n @Listen('brTabItemPropsChange')\n handleTabItemPropsChange() {\n // Força re-renderização para atualizar a navegação\n this.tabItems = [...this.tabItems]\n }\n\n /**\n * Registra os tab items filhos e garante que cada um tenha um ID único.\n * Também propaga o color mode para os tab items.\n * @returns void\n */\n private registerTabItems = () => {\n if (this.slotElement === undefined || this.slotElement === null) return\n\n const assignedElements = this.slotElement.assignedElements() as HTMLBrTabItemElement[]\n this.tabItems = assignedElements.filter((el) => el.tagName?.toLowerCase() === 'br-tab-item')\n\n // Garante que cada tab item tenha um ID único\n this.tabItems.forEach((item) => {\n if (\n item.tabItemId === undefined ||\n item.tabItemId === null ||\n (typeof item.tabItemId === 'string' && item.tabItemId === '') ||\n item.hasAttribute('tab-item-id') === false\n ) {\n const id = Helpers.generateUniqueId()\n item.tabItemId = id\n item.setAttribute('tab-item-id', id)\n }\n\n // Propaga color mode\n if (this.colorMode !== undefined && this.colorMode !== null && typeof this.colorMode === 'string') {\n item.setAttribute('color-mode', this.colorMode)\n }\n })\n\n // Só define activeTabId se ainda não foi inicializado\n if (!this.activeTabInitialized && this.tabItems.length > 0) {\n const activeItem = this.tabItems.find((item) => item.isActive === true)\n this.activeTabId = activeItem?.tabItemId || this.tabItems[0].tabItemId\n this.activeTabInitialized = true\n }\n\n this.updateTabStates()\n }\n\n /**\n * Atualiza o estado ativo de todos os tab items\n * Comunicação direta similar ao Vue\n */\n private updateTabStates() {\n this.tabItems.forEach((item) => {\n const isActive = item.tabItemId === this.activeTabId\n item.isActive = isActive\n\n // Atualiza atributos para compatibilidade\n if (isActive) {\n item.setAttribute('is-active', 'true')\n item.setAttribute('aria-selected', 'true')\n } else {\n item.removeAttribute('is-active')\n item.removeAttribute('aria-selected')\n }\n })\n }\n\n /**\n * Manipula o clique em um botão de tab\n */\n private handleTabClick(tabId: string) {\n if (this.activeTabId !== tabId) {\n this.activeTabId = tabId\n }\n }\n\n /**\n * Manipula a navegação por teclado nos botões de tab para melhorar a acessibilidade\n */\n private handleTabButtonClick = (event: MouseEvent) => {\n const tabId = (event.currentTarget as HTMLElement | null)?.getAttribute('data-tab-id')\n if (typeof tabId === 'string' && tabId.trim() !== '') {\n this.handleTabClick(tabId)\n }\n }\n\n /**\n * Manipula o evento de pressionamento de tecla nos botões de tab para melhorar a acessibilidade\n * @param event Evento de teclado\n */\n private handleTabButtonKeyDown = (event: KeyboardEvent) => {\n const indexAttr = (event.currentTarget as HTMLElement | null)?.getAttribute('data-tab-index')\n const index = indexAttr !== null ? Number(indexAttr) : NaN\n if (!Number.isNaN(index)) {\n this.handleKeyNavigation(index, event)\n }\n }\n\n /**\n * Manipula navegação por teclado (acessibilidade)\n */\n private handleKeyNavigation(currentIndex: number, event: KeyboardEvent) {\n let newIndex = currentIndex\n\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault()\n newIndex = (currentIndex + 1) % this.tabItems.length\n break\n case 'ArrowLeft':\n event.preventDefault()\n newIndex = (currentIndex - 1 + this.tabItems.length) % this.tabItems.length\n break\n case 'Home':\n event.preventDefault()\n newIndex = 0\n break\n case 'End':\n event.preventDefault()\n newIndex = this.tabItems.length - 1\n break\n case 'ArrowDown':\n event.preventDefault()\n // Foca no conteúdo do painel ativo\n const activePanel = this.tabItems[currentIndex]\n if (activePanel !== undefined && activePanel !== null && typeof activePanel === 'object') {\n const focusableElements = activePanel.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n if (focusableElements.length > 0) {\n ;(focusableElements[0] as HTMLElement).focus()\n }\n }\n return\n default:\n return\n }\n\n // Ativa e foca o novo tab\n if (newIndex !== currentIndex) {\n this.activeTabId = this.tabItems[newIndex].tabItemId\n // O foco será definido no próximo render através do tabindex\n setTimeout(() => {\n const buttons = this.el.shadowRoot?.querySelectorAll('.tab-item button')\n ;(buttons?.[newIndex] as HTMLElement)?.focus()\n }, 0)\n }\n }\n\n /**\n * Retorna o mapeamento de classes CSS do componente\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tab': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n 'dark-mode': this.colorMode === 'dark',\n 'scroll-disabled': this.scrollDisabled,\n }\n }\n\n /**\n * Retorna o mapeamento de classes CSS para cada item de navegação\n */\n private getTabItemCssClassMap(isActive: boolean): CssClassMap {\n return {\n 'tab-item': true,\n active: isActive,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n /**\n * Retorna o alinhamento em formato flexbox\n */\n private getAlignItemsStyle(): string {\n const alignMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n }\n return alignMap[this.alignItemsTab] || 'flex-start'\n }\n\n /**\n * Verifica se o valor fornecido é uma altura válida para o componente, aceitando unidades CSS modernas e a palavra-chave 'auto'.\n * @param value Valor a ser verificado\n * @returns true se o valor for uma altura válida, caso contrário false\n */\n private isValidHeight(value?: string): boolean {\n if (!value || typeof value !== 'string') return false\n\n const trimmed = value.trim()\n\n // aceita auto\n if (trimmed === 'auto') return true\n\n // aceita funções CSS modernas\n if (/^(calc|min|max|clamp)\\(.+\\)$/.test(trimmed)) return true\n\n // aceita unidades CSS modernas\n const cssUnitRegex = /^\\d+(\\.\\d+)?(px|%|vh|vw|dvh|svh|lvh|vmin|vmax|rem|em)$/\n\n if (cssUnitRegex.test(trimmed)) return true\n\n return false\n }\n\n /**\n * Retorna a altura resolvida do componente, considerando valores válidos e emitindo um aviso para valores inválidos.\n * @returns A altura resolvida ou undefined se o valor for inválido\n */\n private getResolvedHeight(): string | undefined {\n if (!this.height) return undefined\n\n if (this.isValidHeight(this.height)) {\n return this.height\n }\n\n console.warn(`[br-tab]: valor inválido para \"height\": \"${this.height}\". Valor ignorado.`)\n\n return undefined\n }\n\n /**\n * Ciclo de vida. Executado antes do componente ser carregado no DOM.\n * Garante que os tab items sejam registrados mesmo que o evento slotchange não seja disparado.\n */\n componentWillLoad() {\n // Garante que registerTabItems seja chamado mesmo se slotchange não disparar\n this.registerTabItems()\n }\n\n /**\n * Ciclo de vida. Executado quando o componente é removido do DOM.\n * Desconecta o MutationObserver para evitar vazamentos de memória.\n */\n disconnectedCallback() {\n if (\n this.mutationObserver !== undefined &&\n this.mutationObserver !== null &&\n typeof this.mutationObserver === 'object'\n ) {\n this.mutationObserver.disconnect()\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX.Element\n */\n render() {\n const hasCounter = this.tabItems.some((item) => item.counter)\n const resolvedHeight = this.getResolvedHeight()\n\n return (\n <Host>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n part=\"container\"\n style={resolvedHeight !== undefined ? { '--br-tab-height': resolvedHeight } : undefined}\n >\n {/* Navegação das tabs */}\n <nav class=\"tab-nav\" data-counter={hasCounter ? 'true' : 'false'} aria-label={this.label} part=\"nav\">\n <ul role=\"tablist\" style={{ justifyContent: this.getAlignItemsStyle() }}>\n {this.tabItems.map((item, index) => {\n const isActive = item.tabItemId === this.activeTabId\n const showOnlyIcon = item.onlyIcon || item.hasAttribute('only-icon')\n\n return (\n <li key={item.tabItemId} class={this.getTabItemCssClassMap(isActive)} role=\"presentation\">\n <button\n type=\"button\"\n id={`tab-button-${item.tabItemId}`}\n role=\"tab\"\n aria-selected={isActive ? 'true' : 'false'}\n aria-controls={`tab-panel-${item.tabItemId}`}\n tabindex={isActive ? 0 : -1}\n data-tab-id={item.tabItemId}\n data-tab-index={index}\n onClick={this.handleTabButtonClick}\n onKeyDown={this.handleTabButtonKeyDown}\n >\n <span class=\"name\">\n {item.icon && (\n <span class=\"icon\">\n <br-icon icon-name={item.icon}></br-icon>\n </span>\n )}\n {!showOnlyIcon && <span>{item.tabItemTitle}</span>}\n </span>\n </button>\n {item.counter && <span class=\"results\">({item.counter})</span>}\n </li>\n )\n })}\n </ul>\n </nav>\n\n <div class=\"tab-content\">\n <slot\n ref={(el) => {\n this.slotElement = el as HTMLSlotElement\n }}\n onSlotchange={this.registerTabItems}\n ></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-table-cell.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-cell/table-cell.scss?tag=br-table-cell&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-cell/table-cell.tsx"],"sourcesContent":[":host {\n display: table-cell;\n border-bottom: 1px solid #ccc;\n --horizontal-align: left;\n}\n\n.br-table-cell {\n color: var(--color);\n font-size: var(--font-size-scale-base);\n font-weight: var(--font-weight-medium);\n padding: var(--table-row-size) var(--table-padding);\n text-align: var(--horizontal-align);\n\n &.vertical-border {\n border-left: 1px solid #ccc;\n }\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\ntype HorizontalAlign = 'left' | 'center' | 'right'\n\nenum CssVariables {\n HORIZONTAL_ALIGN = '--horizontal-align',\n}\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para o conteúdo da célula da tabela.\n */\n@Component({\n tag: 'br-table-cell',\n styleUrl: 'table-cell.scss',\n shadow: true,\n})\nexport class TableCell {\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: HTMLBrTableCellElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se a célula do cabeçalho possui borda vertical.\n */\n @Prop({ reflect: true }) hasVerticalBorder: boolean = false\n\n /**\n * Define o alinhamento horizontal do conteúdo da célula.\n */\n @Prop({ reflect: true }) horizontalAlign: HorizontalAlign = 'left'\n\n /**\n * Watcher que observa as mudanças na propriedade `horizontalAlign`.\n */\n @Watch('horizontalAlign')\n handleHorizontalAlignChange(newValue: HorizontalAlign) {\n this.el.style.setProperty(CssVariables.HORIZONTAL_ALIGN, newValue)\n }\n\n /**\n * Ouve o evento disparado ao alterar o alinhamento horizontal do conteúdo da célula.\n * @param event Objeto Event\n */\n @Listen('brHorizontalAlignDidChange', { target: 'document' })\n handleHorizontalAlignDidChange(event: CustomEvent) {\n if (!this.el.hasAttribute('horizontal-align')) {\n this.el.style.setProperty(CssVariables.HORIZONTAL_ALIGN, event.detail)\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado após o componente ser renderizado no DOM.\n */\n connectedCallback() {\n this.handleHorizontalAlignChange(this.horizontalAlign)\n }\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-cell': true,\n 'vertical-border': this.hasVerticalBorder,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"br-table-cell.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-cell/table-cell.scss?tag=br-table-cell&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-cell/table-cell.tsx"],"sourcesContent":[":host {\n display: table-cell;\n border-bottom: 1px solid #ccc;\n --horizontal-align: left;\n}\n\n.br-table-cell {\n color: var(--color);\n font-size: var(--font-size-scale-base);\n font-weight: var(--font-weight-medium);\n padding: var(--table-row-size) var(--table-padding);\n text-align: var(--horizontal-align);\n\n &.vertical-border {\n border-left: 1px solid #ccc;\n }\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\ntype HorizontalAlign = 'left' | 'center' | 'right'\n\nenum CssVariables {\n HORIZONTAL_ALIGN = '--horizontal-align',\n}\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para o conteúdo da célula da tabela.\n */\n@Component({\n tag: 'br-table-cell',\n styleUrl: 'table-cell.scss',\n shadow: true,\n})\nexport class TableCell {\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: HTMLBrTableCellElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se a célula do cabeçalho possui borda vertical.\n */\n @Prop({ reflect: true }) hasVerticalBorder: boolean = false\n\n /**\n * Define o alinhamento horizontal do conteúdo da célula.\n */\n @Prop({ reflect: true }) horizontalAlign: HorizontalAlign = 'left'\n\n /**\n * Watcher que observa as mudanças na propriedade `horizontalAlign`.\n */\n @Watch('horizontalAlign')\n handleHorizontalAlignChange(newValue: HorizontalAlign) {\n this.el.style.setProperty(CssVariables.HORIZONTAL_ALIGN, newValue)\n }\n\n /**\n * Ouve o evento disparado ao alterar o alinhamento horizontal do conteúdo da célula.\n * @param event Objeto Event\n */\n @Listen('brHorizontalAlignDidChange', { target: 'document' })\n handleHorizontalAlignDidChange(event: CustomEvent) {\n if (!this.el.hasAttribute('horizontal-align')) {\n this.el.style.setProperty(CssVariables.HORIZONTAL_ALIGN, event.detail)\n }\n }\n\n /**\n * Ciclo de vida do componente. Chamado após o componente ser renderizado no DOM.\n */\n connectedCallback() {\n this.handleHorizontalAlignChange(this.horizontalAlign)\n }\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Objeto com as classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-cell': true,\n 'vertical-border': this.hasVerticalBorder,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,YAAY,GAAG,slZAAslZ;;ACO3mZ,IAAK,YAEJ;AAFD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,oBAAuC;AACzC,CAAC,EAFI,YAAY,KAAZ,YAAY,GAEhB,EAAA,CAAA,CAAA;MAYY,SAAS,GAAA,MAAA;AALtB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAiB,CAAA,iBAAA,GAAY,KAAK;AAE3D;;AAEG;AACsB,QAAA,IAAe,CAAA,eAAA,GAAoB,MAAM;AAoDnE;AAlDC;;AAEG;AAEH,IAAA,2BAA2B,CAAC,QAAyB,EAAA;AACnD,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC;;AAGpE;;;AAGG;AAEH,IAAA,8BAA8B,CAAC,KAAkB,EAAA;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;;;AAI1E;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC;;AAGxD;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-table-header-cell.entry.esm.js","sources":["../../packages/webcomponents/src/utils/css-variables.ts","../../packages/webcomponents/src/components/table/table-header-cell/table-header-cell.scss?tag=br-table-header-cell&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-header-cell/table-header-cell.tsx"],"sourcesContent":["export const CssVariables = {\n ALIGN: {\n HORIZONTAL: '--horizontal-align',\n },\n}\n","// @import \"~@govbr-ds/core/src/components/table-header-cell/table-header-cell\";\n\n:host {\n display: table-cell;\n --horizontal-align: left;\n}\n\n.br-table-header-cell {\n color: var(--color);\n font-size: var(--font-size-scale-base);\n font-weight: var(--font-weight-medium);\n padding: var(--table-row-size) var(--table-padding);\n text-align: var(--horizontal-align);\n\n &.vertical-border {\n border-left: 1px solid #ccc;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\n\nimport { CssVariables } from '../../../utils/css-variables'\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\nimport { HorizontalAlign } from '../../../utils/types'\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/table?tab=designer).\n *\n * @slot default - Slot para o conteúdo da célula de cabeçalho da tabela.\n */\n@Component({\n tag: 'br-table-header-cell',\n styleUrl: 'table-header-cell.scss',\n shadow: true,\n})\nexport class TableHeaderCell {\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: HTMLBrTableHeaderCellElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se a célula do cabeçalho possui borda vertical.\n */\n @Prop({ reflect: true }) hasVerticalBorder: boolean = false\n\n /**\n * Define o alinhamento horizontal do conteúdo da célula.\n * Esse alinhamento é propagado para as demais células da coluna.\n */\n @Prop({ reflect: true }) horizontalAlign: HorizontalAlign = 'left'\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-header-cell': true,\n 'vertical-border': this.hasVerticalBorder,\n }\n }\n\n @Watch('horizontalAlign')\n handleHorizontalAlignChange(newValue: HorizontalAlign) {\n this.el.style.setProperty(CssVariables.ALIGN.HORIZONTAL, newValue)\n this.brHorizontalAlignDidChange.emit(this.horizontalAlign)\n }\n\n /**\n * Evento disparado ao alterar o alinhamento horizontal do conteúdo da célula.\n */\n @Event() brHorizontalAlignDidChange: EventEmitter\n\n /**\n * Ciclo de vida do componente. Disparado sempre que o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.handleHorizontalAlignChange(this.horizontalAlign)\n }\n\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAO,MAAM,YAAY,GAAG;AAC1B,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,oBAAoB;AACjC,KAAA;CACF;;ACJD,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"br-table-header-cell.entry.esm.js","sources":["../../packages/webcomponents/src/utils/css-variables.ts","../../packages/webcomponents/src/components/table/table-header-cell/table-header-cell.scss?tag=br-table-header-cell&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-header-cell/table-header-cell.tsx"],"sourcesContent":["export const CssVariables = {\n ALIGN: {\n HORIZONTAL: '--horizontal-align',\n },\n}\n","// @import \"~@govbr-ds/core/src/components/table-header-cell/table-header-cell\";\n\n:host {\n display: table-cell;\n --horizontal-align: left;\n}\n\n.br-table-header-cell {\n color: var(--color);\n font-size: var(--font-size-scale-base);\n font-weight: var(--font-weight-medium);\n padding: var(--table-row-size) var(--table-padding);\n text-align: var(--horizontal-align);\n\n &.vertical-border {\n border-left: 1px solid #ccc;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch } from '@stencil/core'\n\nimport { CssVariables } from '../../../utils/css-variables'\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\nimport { HorizontalAlign } from '../../../utils/types'\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/table?tab=designer).\n *\n * @slot default - Slot para o conteúdo da célula de cabeçalho da tabela.\n */\n@Component({\n tag: 'br-table-header-cell',\n styleUrl: 'table-header-cell.scss',\n shadow: true,\n})\nexport class TableHeaderCell {\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: HTMLBrTableHeaderCellElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define se a célula do cabeçalho possui borda vertical.\n */\n @Prop({ reflect: true }) hasVerticalBorder: boolean = false\n\n /**\n * Define o alinhamento horizontal do conteúdo da célula.\n * Esse alinhamento é propagado para as demais células da coluna.\n */\n @Prop({ reflect: true }) horizontalAlign: HorizontalAlign = 'left'\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-header-cell': true,\n 'vertical-border': this.hasVerticalBorder,\n }\n }\n\n @Watch('horizontalAlign')\n handleHorizontalAlignChange(newValue: HorizontalAlign) {\n this.el.style.setProperty(CssVariables.ALIGN.HORIZONTAL, newValue)\n this.brHorizontalAlignDidChange.emit(this.horizontalAlign)\n }\n\n /**\n * Evento disparado ao alterar o alinhamento horizontal do conteúdo da célula.\n */\n @Event() brHorizontalAlignDidChange: EventEmitter\n\n /**\n * Ciclo de vida do componente. Disparado sempre que o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.handleHorizontalAlignChange(this.horizontalAlign)\n }\n\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAO,MAAM,YAAY,GAAG;AAC1B,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,oBAAoB;AACjC,KAAA;CACF;;ACJD,MAAM,kBAAkB,GAAG,ukZAAukZ;;MCmBrlZ,eAAe,GAAA,MAAA;AAL5B,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAiB,CAAA,iBAAA,GAAY,KAAK;AAE3D;;;AAGG;AACsB,QAAA,IAAe,CAAA,eAAA,GAAoB,MAAM;AAoCnE;IAlCS,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,sBAAsB,EAAE,IAAI;YAC5B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C;;AAIH,IAAA,2BAA2B,CAAC,QAAyB,EAAA;AACnD,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;QAClE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;AAQ5D;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,eAAe,CAAC;;IAGxD,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-table-header-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-header-row/table-header-row.scss?tag=br-table-header-row&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-header-row/table-header-row.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/table-header-row/table-header-row\";\n\n:host {\n display: table-row;\n}\n\n.br-table-header-row {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n grid-auto-rows: 1fr;\n background-color: var(--background-alternative);\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as células de cabeçalho da linha da tabela.\n */\n@Component({\n tag: 'br-table-header-row',\n styleUrl: 'table-header-row.scss',\n shadow: true,\n})\nexport class TableHeaderRow {\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: HTMLBrTableHeaderRowElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Conjunto de classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-header-row': true,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"br-table-header-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-header-row/table-header-row.scss?tag=br-table-header-row&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-header-row/table-header-row.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/table-header-row/table-header-row\";\n\n:host {\n display: table-row;\n}\n\n.br-table-header-row {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n grid-auto-rows: 1fr;\n background-color: var(--background-alternative);\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as células de cabeçalho da linha da tabela.\n */\n@Component({\n tag: 'br-table-header-row',\n styleUrl: 'table-header-row.scss',\n shadow: true,\n})\nexport class TableHeaderRow {\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: HTMLBrTableHeaderRowElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Conjunto de classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-header-row': true,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,iBAAiB,GAAG,u9YAAu9Y;;MCiBp+Y,cAAc,GAAA,MAAA;AAL3B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAyBhF;AAvBC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,qBAAqB,EAAE,IAAI;SAC5B;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-table-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-row/table-row.scss?tag=br-table-row&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-row/table-row.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/table-row/table-row\";\n\n:host {\n display: table-row;\n}\n\n.br-table-row {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n grid-auto-rows: 1fr;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as células da linha da tabela.\n */\n@Component({\n tag: 'br-table-row',\n styleUrl: 'table-row.scss',\n shadow: true,\n})\nexport class TableRow {\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: HTMLBrTableRowElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-row': true,\n }\n }\n\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"br-table-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table-row/table-row.scss?tag=br-table-row&encapsulation=shadow","../../packages/webcomponents/src/components/table/table-row/table-row.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/table-row/table-row\";\n\n:host {\n display: table-row;\n}\n\n.br-table-row {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n grid-auto-rows: 1fr;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as células da linha da tabela.\n */\n@Component({\n tag: 'br-table-row',\n styleUrl: 'table-row.scss',\n shadow: true,\n})\nexport class TableRow {\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: HTMLBrTableRowElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table-row': true,\n }\n }\n\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,WAAW,GAAG,i6YAAi6Y;;MCex6Y,QAAQ,GAAA,MAAA;AALrB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAiBhF;IAfS,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,cAAc,EAAE,IAAI;SACrB;;IAGH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-table.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table.scss?tag=br-table&encapsulation=shadow","../../packages/webcomponents/src/components/table/table.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/table/table\";\n\n:host {\n display: block;\n width: 100%;\n}\n\n.br-table {\n display: grid;\n grid-template-columns: 1fr;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as linhas e células da tabela.\n */\n@Component({\n tag: 'br-table',\n styleUrl: 'table.scss',\n shadow: true,\n})\nexport class Table {\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: HTMLBrTableElement\n\n /**\n * Identificador único aplicado na tag raiz do shadowRoot.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Conjunto de classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table': true,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @return JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot name=\"tool-bar\"></slot>\n <slot name=\"header\"></slot>\n <slot name=\"row\"></slot>\n <slot name=\"footer\"></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"br-table.entry.esm.js","sources":["../../packages/webcomponents/src/components/table/table.scss?tag=br-table&encapsulation=shadow","../../packages/webcomponents/src/components/table/table.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/table/table\";\n\n:host {\n display: block;\n width: 100%;\n}\n\n.br-table {\n display: grid;\n grid-template-columns: 1fr;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/table?tab=designer).\n *\n * @slot default - Slot para as linhas e células da tabela.\n */\n@Component({\n tag: 'br-table',\n styleUrl: 'table.scss',\n shadow: true,\n})\nexport class Table {\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: HTMLBrTableElement\n\n /**\n * Identificador único aplicado na tag raiz do shadowRoot.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Define um conjunto de classes CSS que serão aplicadas ao componente.\n * @returns Conjunto de classes CSS.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-table': true,\n }\n }\n\n /**\n * Define o JSX do componente.\n * @return JSX do componente.\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <slot name=\"tool-bar\"></slot>\n <slot name=\"header\"></slot>\n <slot name=\"row\"></slot>\n <slot name=\"footer\"></slot>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,ogeAAoge;;MCiBxge,KAAK,GAAA,MAAA;AALlB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAYE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AA4BhF;AA1BC;;;AAGG;IACK,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;SACjB;;AAGH;;;AAGG;IACH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAClD,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EAAQ,CAAA,EAC7B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAQ,CAAA,EAC3B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,KAAK,EAAQ,CAAA,EACxB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACD;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-tag.entry.esm.js","sources":["../../packages/webcomponents/src/components/tag/tag.scss?tag=br-tag&encapsulation=shadow","../../packages/webcomponents/src/components/tag/tag.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n@import \"~@govbr-ds/core/src/components/input/input\";\n@import \"~@govbr-ds/core/src/components/tag/tag\";\n\n:host {\n display: inline-block;\n margin-right: var(--spacing-scale-half);\n\n .tag-spacing-status {\n margin-left: var(--spacing-scale-half);\n }\n\n .br-tag {\n &.interaction {\n br-button {\n margin-left: var(--spacing-scale-baseh);\n }\n }\n\n &:not(.icon) {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\nimport type { JSX } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n// Constantes para valores fixos\nconst DENSITY_SMALL = 'small'\nconst DENSITY_MEDIUM = 'medium'\nconst DENSITY_LARGE = 'large'\n\nconst SHAPE_CIRCLE = 'circle'\nconst SHAPE_ROUNDED = 'rounded'\nconst SHAPE_DEFAULT = 'default'\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/textarea?tag=designer).\n *\n * @slot default - Slot para inserir o conteúdo da tag, como rótulo ou ícone\n */\n@Component({\n tag: 'br-tag',\n styleUrl: 'tag.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tag {\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: HTMLBrTagElement\n\n /** API de controle de formulário nativa */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly label: string = ''\n\n /**\n * A propriedade 'iconName' define o nome do ícone que será exibido ao lado do texto.\n * O valor padrão é 'fa-solid:car', que corresponde a um ícone de carro da biblioteca Font Awesome.\n */\n @Prop({ reflect: true }) readonly iconName: string = ''\n\n /**\n * A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly name: string = ''\n\n /**\n * A tag permite seleção múltipla.\n * */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * A tag está selecionada.\n * */\n @Prop({ reflect: true, mutable: true }) selected: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-tag-${tagId++}`\n\n /**\n * A propriedade 'color' permite definir a cor do componente.\n * Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly bgColor: string = ''\n\n /**\n * A propriedade 'density' permite definir a densidade do componente.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = DENSITY_MEDIUM\n\n /**\n * A propriedade 'shape' define o formato do componente.\n */\n @Prop({ reflect: true }) readonly shape: 'circle' | 'rounded' | 'default' = SHAPE_DEFAULT\n\n /**\n * Transforma a tag em um indicador de status, com aparência circular.\n * É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).\n */\n @Prop({ reflect: true }) readonly status: boolean = false\n\n /**\n * Interação deve ser habilitada.\n */\n @Prop({ reflect: true, mutable: true }) interaction: boolean = false\n\n /**\n * Interação de seleção deve ser habilitada.\n * */\n @Prop({ reflect: true }) interactionSelect: boolean = false\n\n /**\n * Tag deve estar desabilitado.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Rótulo personalizado para leitores de tela.\n * Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela.\n * Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).\n */\n @Prop({ reflect: true }) readonly ariaLabel: string = null\n\n /**\n * ID do elemento que fornece descrição adicional da tag.\n * Referencia um elemento na página que contém informações complementares sobre a tag.\n * A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.\n * Exemplo: aria-describedby=\"help-status\" onde existe <div id=\"help-status\">Aguardando aprovação</div>\n */\n @Prop({ reflect: true }) readonly ariaDescribedby: string = null\n\n /**\n * Tag está selecionada.\n */\n @State() selectedClassValue: boolean = false\n\n /**\n * Evento emitido quando a tag é selecionada.\n */\n @Event() radioSelected: EventEmitter<string>\n\n @Watch('interaction')\n handleInteractionChange(newValue: boolean) {\n if (newValue && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('interactionSelect')\n handleInteractionSelectChange(newValue: boolean) {\n if (newValue && this.interaction) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('selected')\n handleSelectedChange(newValue: boolean) {\n this.selectedClassValue = newValue\n }\n\n @Listen('radioSelected', { target: 'document' })\n handleCheckedChange(event: CustomEvent) {\n if (event.detail === this.name && this.el !== event.target) {\n this.selected = false\n }\n }\n\n componentWillLoad() {\n if (this.interaction && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n connectedCallback() {\n this.selectedClassValue = this.selected\n this.el.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('keydown', this.handleKeyDown)\n }\n /**\n * Permite navegação por teclado (setas) entre tags do tipo radio (seleção unica).\n * Funciona apenas quando 'interactionSelect' é true e 'multiple' é false.\n * Ignora tags desabilitadas.\n * @param event - Evento de teclado\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.interactionSelect || this.multiple || this.disabled) return\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n this.selectNextRadio()\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault()\n this.selectPreviousRadio()\n }\n }\n\n private selectNextRadio() {\n this.selectRadioByStep(1)\n }\n\n private selectPreviousRadio() {\n this.selectRadioByStep(-1)\n }\n\n private selectRadioByStep(step: number) {\n const radios = Array.from(\n document.querySelectorAll(`br-tag[interaction-select][name=\"${this.name}\"]:not([disabled])`)\n ) as HTMLElement[]\n const currentIndex = radios.indexOf(this.el)\n if (currentIndex === -1) return\n const newIndex = (currentIndex + step + radios.length) % radios.length\n this.selectRadioByIndex(radios, newIndex)\n }\n\n private selectRadioByIndex(radios: HTMLElement[], index: number) {\n const nextRadio = radios[index] as HTMLBrTagElement\n const input = nextRadio.shadowRoot?.querySelector('input[type=\"radio\"]') as HTMLInputElement | null\n if (input !== null) {\n input.focus()\n input.click()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tag': true,\n interaction: this.interaction,\n 'interaction-select': this.interactionSelect,\n selected: this.selectedClassValue,\n disabled: this.disabled,\n [DENSITY_SMALL]: this.density === DENSITY_SMALL,\n [DENSITY_MEDIUM]: this.density === DENSITY_MEDIUM,\n [DENSITY_LARGE]: this.density === DENSITY_LARGE,\n count: this.shape === SHAPE_ROUNDED,\n icon: this.shape === SHAPE_CIRCLE,\n status: this.status,\n }\n }\n\n private getTagAttributes() {\n if (this.interaction) {\n return {\n id: this.customId,\n }\n }\n\n return {\n id: this.customId,\n role: this.getRole(),\n 'aria-label': this.getAriaLabel(),\n 'aria-describedby': this.getAriaDescribedBy(),\n 'aria-checked': this.getAriaChecked(),\n 'aria-disabled': this.getAriaDisabled(),\n }\n }\n\n private getAriaDescribedBy(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n const hasInternalLabel = !this.status && this.label !== ''\n\n if (this.ariaDescribedby && this.ariaDescribedby.trim() !== '') {\n return this.ariaDescribedby\n }\n\n if (hasInternalLabel && !this.hasContent(this.ariaLabel)) {\n return `${this.customId}-label`\n }\n\n return null\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 getAriaLabel(): string | null {\n return this.ariaLabel && this.ariaLabel.trim() !== '' ? this.ariaLabel : null\n }\n\n private getRole(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n if (this.interactionSelect) return this.multiple ? 'checkbox' : 'radio'\n return 'status'\n }\n\n private getAriaChecked(): string | null {\n return this.interactionSelect ? (this.selected ? 'true' : 'false') : null\n }\n\n private getAriaDisabled(): string | null {\n return this.disabled ? 'true' : null\n }\n\n private renderIcon() {\n return this.iconName && this.iconName.trim() !== '' ? (\n <br-icon icon-name={this.iconName} aria-hidden=\"true\" />\n ) : null\n }\n\n private renderLabel() {\n return this.shape !== SHAPE_CIRCLE && !this.status ? <span id={`${this.customId}-label`}>{this.label}</span> : null\n }\n\n private renderCloseButton() {\n if (!this.interaction) return null\n return (\n <br-button\n shape=\"circle\"\n emphasis=\"primary\"\n density=\"small\"\n aria-label={`Fechar ${this.label || 'tag'}`}\n onClick={this.handleClose}\n disabled={this.disabled}\n >\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n )\n }\n\n private renderStatusLabel() {\n return this.status ? <span class=\"tag-spacing-status\">{this.label}</span> : null\n }\n\n private handleClose = () => {\n this.el.remove()\n }\n\n private handleChangeValueChecked = () => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n }\n this.selected = !this.selected\n }\n\n private handleChangeRadioValue = (event: MouseEvent) => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n this.selected = (event.target as HTMLInputElement).checked\n }\n }\n\n private renderMainTagContent() {\n return (\n <span\n class={this.getCssClassMap()}\n {...this.getTagAttributes()}\n style={{ backgroundColor: this.bgColor || undefined }}\n >\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderCloseButton()}\n <slot></slot>\n </span>\n )\n }\n\n private renderStatusLayout(content: JSX.Element) {\n return (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {content}\n {this.renderStatusLabel()}\n </span>\n )\n }\n\n private handleInputChange = (event: MouseEvent) => {\n if (this.multiple) {\n this.handleChangeValueChecked()\n } else {\n this.handleChangeRadioValue(event)\n }\n }\n\n private renderInteractionSelectTag() {\n if (!this.interactionSelect) {\n return null\n }\n\n return (\n <span class={this.getCssClassMap()} id={this.customId}>\n <input\n id={`input-${this.customId}`}\n type={this.multiple ? 'checkbox' : 'radio'}\n name={this.name}\n value={this.label}\n checked={this.selected}\n onClick={this.handleInputChange}\n disabled={this.disabled}\n />\n <label htmlFor={`input-${this.customId}`}>\n {this.renderIcon()}\n {this.renderLabel()}\n </label>\n </span>\n )\n }\n\n render() {\n const mainContent = this.renderMainTagContent()\n\n return (\n <Host>\n {this.interactionSelect\n ? this.renderInteractionSelectTag()\n : this.status\n ? this.renderStatusLayout(mainContent)\n : mainContent}\n </Host>\n )\n }\n}\n\nlet tagId = 0\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-tag.entry.esm.js","sources":["../../packages/webcomponents/src/components/tag/tag.scss?tag=br-tag&encapsulation=shadow","../../packages/webcomponents/src/components/tag/tag.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/checkbox/checkbox\";\n@import \"~@govbr-ds/core/src/components/input/input\";\n@import \"~@govbr-ds/core/src/components/tag/tag\";\n\n:host {\n display: inline-block;\n margin-right: var(--spacing-scale-half);\n\n .tag-spacing-status {\n margin-left: var(--spacing-scale-half);\n }\n\n .br-tag {\n &.interaction {\n br-button {\n margin-left: var(--spacing-scale-baseh);\n }\n }\n\n &:not(.icon) {\n br-icon {\n margin-right: var(--spacing-scale-base);\n }\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\nimport type { JSX } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n// Constantes para valores fixos\nconst DENSITY_SMALL = 'small'\nconst DENSITY_MEDIUM = 'medium'\nconst DENSITY_LARGE = 'large'\n\nconst SHAPE_CIRCLE = 'circle'\nconst SHAPE_ROUNDED = 'rounded'\nconst SHAPE_DEFAULT = 'default'\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/textarea?tag=designer).\n *\n * @slot default - Slot para inserir o conteúdo da tag, como rótulo ou ícone\n */\n@Component({\n tag: 'br-tag',\n styleUrl: 'tag.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tag {\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: HTMLBrTagElement\n\n /** API de controle de formulário nativa */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'label' é uma string que representa o texto a ser exibido no componente.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly label: string = ''\n\n /**\n * A propriedade 'iconName' define o nome do ícone que será exibido ao lado do texto.\n * O valor padrão é 'fa-solid:car', que corresponde a um ícone de carro da biblioteca Font Awesome.\n */\n @Prop({ reflect: true }) readonly iconName: string = ''\n\n /**\n * A propriedade 'name' é uma string que representa o nome do grupo da tag para seleção.\n * Ela é refletida no DOM, permitindo que alterações no valor sejam refletidas no elemento HTML correspondente.\n */\n @Prop({ reflect: true }) readonly name: string = ''\n\n /**\n * A tag permite seleção múltipla.\n * */\n @Prop({ reflect: true }) readonly multiple: boolean = false\n\n /**\n * A tag está selecionada.\n * */\n @Prop({ reflect: true, mutable: true }) selected: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-tag-${tagId++}`\n\n /**\n * A propriedade 'color' permite definir a cor do componente.\n * Aceita valores como 'red', 'blue', entre outros, e é refletida no DOM.\n */\n @Prop({ reflect: true }) readonly bgColor: string = ''\n\n /**\n * A propriedade 'density' permite definir a densidade do componente.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = DENSITY_MEDIUM\n\n /**\n * A propriedade 'shape' define o formato do componente.\n */\n @Prop({ reflect: true }) readonly shape: 'circle' | 'rounded' | 'default' = SHAPE_DEFAULT\n\n /**\n * Transforma a tag em um indicador de status, com aparência circular.\n * É flexível podendo ser utilizado com label ou apenas a superfície circular (informação é transmitida por meio de cores).\n */\n @Prop({ reflect: true }) readonly status: boolean = false\n\n /**\n * Interação deve ser habilitada.\n */\n @Prop({ reflect: true, mutable: true }) interaction: boolean = false\n\n /**\n * Interação de seleção deve ser habilitada.\n * */\n @Prop({ reflect: true }) interactionSelect: boolean = false\n\n /**\n * Tag deve estar desabilitado.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Rótulo personalizado para leitores de tela.\n * Quando fornecido, substitui completamente o texto visível para usuários de leitores de tela.\n * Útil quando o texto visível não é suficientemente descritivo (ex: ícones, abreviações).\n */\n @Prop({ reflect: true }) readonly ariaLabel: string = null\n\n /**\n * ID do elemento que fornece descrição adicional da tag.\n * Referencia um elemento na página que contém informações complementares sobre a tag.\n * A descrição é lida após o conteúdo principal, fornecendo contexto extra aos usuários de leitores de tela.\n * Exemplo: aria-describedby=\"help-status\" onde existe <div id=\"help-status\">Aguardando aprovação</div>\n */\n @Prop({ reflect: true }) readonly ariaDescribedby: string = null\n\n /**\n * Tag está selecionada.\n */\n @State() selectedClassValue: boolean = false\n\n /**\n * Evento emitido quando a tag é selecionada.\n */\n @Event() radioSelected: EventEmitter<string>\n\n @Watch('interaction')\n handleInteractionChange(newValue: boolean) {\n if (newValue && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('interactionSelect')\n handleInteractionSelectChange(newValue: boolean) {\n if (newValue && this.interaction) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n\n @Watch('selected')\n handleSelectedChange(newValue: boolean) {\n this.selectedClassValue = newValue\n }\n\n @Listen('radioSelected', { target: 'document' })\n handleCheckedChange(event: CustomEvent) {\n if (event.detail === this.name && this.el !== event.target) {\n this.selected = false\n }\n }\n\n componentWillLoad() {\n if (this.interaction && this.interactionSelect) {\n console.warn(\n \"Aviso: 'interaction' e 'interactionSelect' não podem ser usados ao mesmo tempo. Alterando o 'interaction' para 'false'.\"\n )\n this.interaction = false\n }\n }\n connectedCallback() {\n this.selectedClassValue = this.selected\n this.el.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('keydown', this.handleKeyDown)\n }\n /**\n * Permite navegação por teclado (setas) entre tags do tipo radio (seleção unica).\n * Funciona apenas quando 'interactionSelect' é true e 'multiple' é false.\n * Ignora tags desabilitadas.\n * @param event - Evento de teclado\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.interactionSelect || this.multiple || this.disabled) return\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n this.selectNextRadio()\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault()\n this.selectPreviousRadio()\n }\n }\n\n private selectNextRadio() {\n this.selectRadioByStep(1)\n }\n\n private selectPreviousRadio() {\n this.selectRadioByStep(-1)\n }\n\n private selectRadioByStep(step: number) {\n const radios = Array.from(\n document.querySelectorAll(`br-tag[interaction-select][name=\"${this.name}\"]:not([disabled])`)\n ) as HTMLElement[]\n const currentIndex = radios.indexOf(this.el)\n if (currentIndex === -1) return\n const newIndex = (currentIndex + step + radios.length) % radios.length\n this.selectRadioByIndex(radios, newIndex)\n }\n\n private selectRadioByIndex(radios: HTMLElement[], index: number) {\n const nextRadio = radios[index] as HTMLBrTagElement\n const input = nextRadio.shadowRoot?.querySelector('input[type=\"radio\"]') as HTMLInputElement | null\n if (input !== null) {\n input.focus()\n input.click()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tag': true,\n interaction: this.interaction,\n 'interaction-select': this.interactionSelect,\n selected: this.selectedClassValue,\n disabled: this.disabled,\n [DENSITY_SMALL]: this.density === DENSITY_SMALL,\n [DENSITY_MEDIUM]: this.density === DENSITY_MEDIUM,\n [DENSITY_LARGE]: this.density === DENSITY_LARGE,\n count: this.shape === SHAPE_ROUNDED,\n icon: this.shape === SHAPE_CIRCLE,\n status: this.status,\n }\n }\n\n private getTagAttributes() {\n if (this.interaction) {\n return {\n id: this.customId,\n }\n }\n\n return {\n id: this.customId,\n role: this.getRole(),\n 'aria-label': this.getAriaLabel(),\n 'aria-describedby': this.getAriaDescribedBy(),\n 'aria-checked': this.getAriaChecked(),\n 'aria-disabled': this.getAriaDisabled(),\n }\n }\n\n private getAriaDescribedBy(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n const hasInternalLabel = !this.status && this.label !== ''\n\n if (this.ariaDescribedby && this.ariaDescribedby.trim() !== '') {\n return this.ariaDescribedby\n }\n\n if (hasInternalLabel && !this.hasContent(this.ariaLabel)) {\n return `${this.customId}-label`\n }\n\n return null\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 getAriaLabel(): string | null {\n return this.ariaLabel && this.ariaLabel.trim() !== '' ? this.ariaLabel : null\n }\n\n private getRole(): string | null {\n const hostTitle = this.el.getAttribute('title')\n if (this.hasContent(hostTitle)) {\n return null\n }\n\n if (this.interactionSelect) return this.multiple ? 'checkbox' : 'radio'\n return 'status'\n }\n\n private getAriaChecked(): string | null {\n return this.interactionSelect ? (this.selected ? 'true' : 'false') : null\n }\n\n private getAriaDisabled(): string | null {\n return this.disabled ? 'true' : null\n }\n\n private renderIcon() {\n return this.iconName && this.iconName.trim() !== '' ? (\n <br-icon icon-name={this.iconName} aria-hidden=\"true\" />\n ) : null\n }\n\n private renderLabel() {\n return this.shape !== SHAPE_CIRCLE && !this.status ? <span id={`${this.customId}-label`}>{this.label}</span> : null\n }\n\n private renderCloseButton() {\n if (!this.interaction) return null\n return (\n <br-button\n shape=\"circle\"\n emphasis=\"primary\"\n density=\"small\"\n aria-label={`Fechar ${this.label || 'tag'}`}\n onClick={this.handleClose}\n disabled={this.disabled}\n >\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n )\n }\n\n private renderStatusLabel() {\n return this.status ? <span class=\"tag-spacing-status\">{this.label}</span> : null\n }\n\n private handleClose = () => {\n this.el.remove()\n }\n\n private handleChangeValueChecked = () => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n }\n this.selected = !this.selected\n }\n\n private handleChangeRadioValue = (event: MouseEvent) => {\n if (!this.multiple) {\n this.radioSelected.emit(this.name)\n this.selected = (event.target as HTMLInputElement).checked\n }\n }\n\n private renderMainTagContent() {\n return (\n <span\n class={this.getCssClassMap()}\n {...this.getTagAttributes()}\n style={{ backgroundColor: this.bgColor || undefined }}\n >\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderCloseButton()}\n <slot></slot>\n </span>\n )\n }\n\n private renderStatusLayout(content: JSX.Element) {\n return (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {content}\n {this.renderStatusLabel()}\n </span>\n )\n }\n\n private handleInputChange = (event: MouseEvent) => {\n if (this.multiple) {\n this.handleChangeValueChecked()\n } else {\n this.handleChangeRadioValue(event)\n }\n }\n\n private renderInteractionSelectTag() {\n if (!this.interactionSelect) {\n return null\n }\n\n return (\n <span class={this.getCssClassMap()} id={this.customId}>\n <input\n id={`input-${this.customId}`}\n type={this.multiple ? 'checkbox' : 'radio'}\n name={this.name}\n value={this.label}\n checked={this.selected}\n onClick={this.handleInputChange}\n disabled={this.disabled}\n />\n <label htmlFor={`input-${this.customId}`}>\n {this.renderIcon()}\n {this.renderLabel()}\n </label>\n </span>\n )\n }\n\n render() {\n const mainContent = this.renderMainTagContent()\n\n return (\n <Host>\n {this.interactionSelect\n ? this.renderInteractionSelectTag()\n : this.status\n ? this.renderStatusLayout(mainContent)\n : mainContent}\n </Host>\n )\n }\n}\n\nlet tagId = 0\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-textarea.entry.esm.js","sources":["../../packages/webcomponents/src/components/textarea/textarea.scss?tag=br-textarea&encapsulation=shadow","../../packages/webcomponents/src/components/textarea/textarea.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/textarea/textarea\";\n\n:host {\n display: inline-block;\n vertical-align: top;\n box-sizing: border-box;\n font-family: Rawline, Raleway, sans-serif;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/textarea?tab=designer).\n *\n * @slot default - Slot para texto adicional ou instruções a serem exibidos junto ao textarea.\n */\n@Component({\n tag: 'br-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Textarea {\n @Element() el: HTMLBrTextareaElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Valor exibido no textarea.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ mutable: true, reflect: true }) value: string\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Texto alternativo para acessibilidade quando não há label visível.\n * Fornece um rótulo para tecnologias assistivas sem exibir visualmente.\n */\n @Prop({ reflect: true }) readonly ariaLabel: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-textarea')\n\n /**\n * Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\n */\n @Prop({ reflect: true }) readonly maxlength: number = 0\n\n /**\n * Mostra o contador com a quantidade máxima de caracteres.\n */\n @Prop({ reflect: true }) readonly showCounter: boolean = false\n\n /**\n * Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'.\n */\n @Prop({ reflect: true }) readonly state: 'danger' | 'success' | 'warning'\n /**\n * Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Número de linhas visíveis no textarea.\n * Define a altura do componente em relação ao número de linhas de texto exibidas.\n */\n @Prop({ reflect: true }) readonly rows: number\n\n /**\n * Número de colunas (caracteres) visíveis no textarea.\n * Define a largura do componente em relação ao número de caracteres por linha.\n */\n @Prop({ reflect: true }) readonly cols: number\n\n /**\n * Comprimento atual do texto no textarea. É atualizado sempre que o valor do textarea muda.\n */\n @State() currentLength: number\n\n /**\n * Indica se o slot padrão possui conteúdo.\n */\n @State() hasDefaultSlot: boolean = false\n\n componentWillLoad() {\n this.currentLength = this.value?.length || 0\n this.checkSlotContent()\n }\n\n private checkSlotContent() {\n this.hasDefaultSlot = Array.from(this.el.childNodes).some((node) => {\n // Ignora nós que têm atributo slot (pertencem a outros slots)\n if (node.nodeType === Node.ELEMENT_NODE && (node as Element).hasAttribute('slot')) {\n return false\n }\n // Verifica se é elemento ou texto não vazio\n return (\n node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '')\n )\n })\n }\n\n /**\n * Valor atualizado do textarea\n */\n @Event() valueChange: EventEmitter<string>\n\n @Watch('value')\n valueChanged() {\n this.currentLength = this.value?.length || 0\n }\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Define um novo valor para o textarea.\n * @param newValue - O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string) {\n this.value = newValue\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Retorna os ids para o atributo aria-describedby do textarea\n */\n private getDescribedBy(): string {\n return [this.showCounter ? `${this.customId}-limitMax` : null, `${this.customId}-slotInfo`]\n .filter(Boolean)\n .join(' ')\n }\n\n /**\n * Determina o texto a ser usado para acessibilidade quando não há label\n * Ordem de prioridade:\n * - aria-label do elemento host\n * - propriedade ariaLabel do componente\n * - placeholder\n * - texto padrão (\"Campo de texto\")\n */\n private getAccessibilityLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n\n return hostAriaLabel && hostAriaLabel.trim() !== ''\n ? hostAriaLabel\n : this.ariaLabel && this.ariaLabel.trim() !== ''\n ? this.ariaLabel\n : this.placeholder && this.placeholder.trim() !== ''\n ? this.placeholder\n : 'Campo de texto'\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-textarea': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n success: this.state === 'success',\n danger: this.state === 'danger',\n warning: this.state === 'warning',\n }\n }\n\n render() {\n const caracteresRestantes: number = this.maxlength - this.currentLength\n const mostrarLimite = this.currentLength > 0\n const hasLabel = !!this.label\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n {this.isInline ? (\n <div class=\"row\">\n {hasLabel && (\n <div class=\"col-auto pt-half\">\n <label htmlFor={this.customId}>{this.label}</label>\n </div>\n )}\n <div class=\"col\">\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.rows > 0 ? { rows: this.rows } : {})}\n {...(this.cols > 0 ? { cols: this.cols } : {})}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n aria-describedby={this.getDescribedBy()}\n {...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n ></textarea>\n {this.showCounter && (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id={`${this.customId}-limitMax`}>\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\" id={`${this.customId}-limitMax`}>\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n )}\n {this.hasDefaultSlot && (\n <div id={`${this.customId}-slotInfo`} aria-live=\"polite\">\n <slot></slot>\n </div>\n )}\n </div>\n </div>\n ) : (\n [\n hasLabel ? <label htmlFor={this.customId}>{this.label}</label> : null,\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.rows > 0 ? { rows: this.rows } : {})}\n {...(this.cols > 0 ? { cols: this.cols } : {})}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n aria-describedby={this.getDescribedBy()}\n {...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n ></textarea>,\n this.showCounter ? (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id={`${this.customId}-limitMax`}>\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\" id={`${this.customId}-limitMax`}>\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n ) : null,\n this.hasDefaultSlot ? (\n <div id={`${this.customId}-slotInfo`} aria-live=\"polite\">\n <slot></slot>\n </div>\n ) : null,\n ]\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-textarea.entry.esm.js","sources":["../../packages/webcomponents/src/components/textarea/textarea.scss?tag=br-textarea&encapsulation=shadow","../../packages/webcomponents/src/components/textarea/textarea.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/textarea/textarea\";\n\n:host {\n display: inline-block;\n vertical-align: top;\n box-sizing: border-box;\n font-family: Rawline, Raleway, sans-serif;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/textarea?tab=designer).\n *\n * @slot default - Slot para texto adicional ou instruções a serem exibidos junto ao textarea.\n */\n@Component({\n tag: 'br-textarea',\n styleUrl: 'textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Textarea {\n @Element() el: HTMLBrTextareaElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Valor exibido no textarea.\n * Pode ser alterado pelo usuário se a propriedade `readonly` não estiver ativa.\n */\n @Prop({ mutable: true, reflect: true }) value: string\n\n /**\n * Texto exibido como rótulo do input.\n */\n @Prop({ reflect: true }) readonly label: string\n\n /**\n * Texto exibido dentro do input quando está vazio, fornecendo uma dica ou sugestão ao usuário.\n */\n @Prop({ reflect: true }) readonly placeholder: string\n\n /**\n * Texto alternativo para acessibilidade quando não há label visível.\n * Fornece um rótulo para tecnologias assistivas sem exibir visualmente.\n */\n @Prop({ reflect: true }) readonly ariaLabel: string\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId('br-textarea')\n\n /**\n * Indica se o textarea está desabilitado. Quando verdadeiro, o usuário não pode interagir com o campo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Número máximo de caracteres permitidos no textarea. Se definido como 0, não há limite.\n */\n @Prop({ reflect: true }) readonly maxlength: number = 0\n\n /**\n * Mostra o contador com a quantidade máxima de caracteres.\n */\n @Prop({ reflect: true }) readonly showCounter: boolean = false\n\n /**\n * Define o estado visual do componente, podendo ser 'danger', 'success' ou 'warning'.\n */\n @Prop({ reflect: true }) readonly state: 'danger' | 'success' | 'warning'\n /**\n * Ajusta a densidade do componente, podendo ser 'small', 'medium' ou 'large'.\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * Se verdadeiro, o rótulo e o input estarão na mesma linha (layout inline).\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Número de linhas visíveis no textarea.\n * Define a altura do componente em relação ao número de linhas de texto exibidas.\n */\n @Prop({ reflect: true }) readonly rows: number\n\n /**\n * Número de colunas (caracteres) visíveis no textarea.\n * Define a largura do componente em relação ao número de caracteres por linha.\n */\n @Prop({ reflect: true }) readonly cols: number\n\n /**\n * Comprimento atual do texto no textarea. É atualizado sempre que o valor do textarea muda.\n */\n @State() currentLength: number\n\n /**\n * Indica se o slot padrão possui conteúdo.\n */\n @State() hasDefaultSlot: boolean = false\n\n componentWillLoad() {\n this.currentLength = this.value?.length || 0\n this.checkSlotContent()\n }\n\n private checkSlotContent() {\n this.hasDefaultSlot = Array.from(this.el.childNodes).some((node) => {\n // Ignora nós que têm atributo slot (pertencem a outros slots)\n if (node.nodeType === Node.ELEMENT_NODE && (node as Element).hasAttribute('slot')) {\n return false\n }\n // Verifica se é elemento ou texto não vazio\n return (\n node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '')\n )\n })\n }\n\n /**\n * Valor atualizado do textarea\n */\n @Event() valueChange: EventEmitter<string>\n\n @Watch('value')\n valueChanged() {\n this.currentLength = this.value?.length || 0\n }\n\n private readonly handleInput = (event: Event) => {\n this.value = (event.target as HTMLInputElement).value\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Define um novo valor para o textarea.\n * @param newValue - O novo valor a ser definido.\n */\n @Method()\n async setValue(newValue: string) {\n this.value = newValue\n this.currentLength = this.value?.length || 0\n this.valueChange.emit(this.value)\n }\n\n /**\n * Retorna os ids para o atributo aria-describedby do textarea\n */\n private getDescribedBy(): string {\n return [this.showCounter ? `${this.customId}-limitMax` : null, `${this.customId}-slotInfo`]\n .filter(Boolean)\n .join(' ')\n }\n\n /**\n * Determina o texto a ser usado para acessibilidade quando não há label\n * Ordem de prioridade:\n * - aria-label do elemento host\n * - propriedade ariaLabel do componente\n * - placeholder\n * - texto padrão (\"Campo de texto\")\n */\n private getAccessibilityLabel(): string {\n const hostAriaLabel = this.el.getAttribute('aria-label')\n\n return hostAriaLabel && hostAriaLabel.trim() !== ''\n ? hostAriaLabel\n : this.ariaLabel && this.ariaLabel.trim() !== ''\n ? this.ariaLabel\n : this.placeholder && this.placeholder.trim() !== ''\n ? this.placeholder\n : 'Campo de texto'\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-textarea': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n success: this.state === 'success',\n danger: this.state === 'danger',\n warning: this.state === 'warning',\n }\n }\n\n render() {\n const caracteresRestantes: number = this.maxlength - this.currentLength\n const mostrarLimite = this.currentLength > 0\n const hasLabel = !!this.label\n\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n {this.isInline ? (\n <div class=\"row\">\n {hasLabel && (\n <div class=\"col-auto pt-half\">\n <label htmlFor={this.customId}>{this.label}</label>\n </div>\n )}\n <div class=\"col\">\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.rows > 0 ? { rows: this.rows } : {})}\n {...(this.cols > 0 ? { cols: this.cols } : {})}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n aria-describedby={this.getDescribedBy()}\n {...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n ></textarea>\n {this.showCounter && (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id={`${this.customId}-limitMax`}>\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\" id={`${this.customId}-limitMax`}>\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n )}\n {this.hasDefaultSlot && (\n <div id={`${this.customId}-slotInfo`} aria-live=\"polite\">\n <slot></slot>\n </div>\n )}\n </div>\n </div>\n ) : (\n [\n hasLabel ? <label htmlFor={this.customId}>{this.label}</label> : null,\n <textarea\n id={this.customId}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n onInput={this.handleInput}\n {...(this.rows > 0 ? { rows: this.rows } : {})}\n {...(this.cols > 0 ? { cols: this.cols } : {})}\n {...(this.maxlength > 0 ? { maxLength: this.maxlength } : {})}\n aria-describedby={this.getDescribedBy()}\n {...(!hasLabel ? { 'aria-label': this.getAccessibilityLabel() } : {})}\n ></textarea>,\n this.showCounter ? (\n <div>\n {mostrarLimite ? (\n <span class=\"restantes\" aria-live=\"polite\" role=\"status\" id={`${this.customId}-limitMax`}>\n Restam <strong>{caracteresRestantes}</strong> caracteres\n </span>\n ) : (\n <span class=\"limit\" aria-live=\"polite\" id={`${this.customId}-limitMax`}>\n Limite máximo de <strong>{this.maxlength}</strong> caracteres\n </span>\n )}\n </div>\n ) : null,\n this.hasDefaultSlot ? (\n <div id={`${this.customId}-slotInfo`} aria-live=\"polite\">\n <slot></slot>\n </div>\n ) : null,\n ]\n )}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-tooltip.entry.esm.js","sources":["../../packages/webcomponents/src/components/tooltip/tooltip.scss?tag=br-tooltip&encapsulation=shadow","../../packages/webcomponents/src/components/tooltip/tooltip.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n.br-tooltip {\n .content {\n display: none;\n border-radius: 4px;\n box-shadow: var(--surface-offset-xl) var(--surface-offset-xl) var(--surface-offset-xl) rgb(0 0 0 / 16%);\n color: var(--pure-0);\n font-size: var(--font-size-scale-down-01);\n font-weight: var(--font-weight-regular);\n width: max-content;\n position: absolute;\n left: 0;\n top: 0;\n text-align: center;\n z-index: 4;\n\n &.small {\n padding: var(--spacing-scale-base) var(--spacing-scale-base);\n }\n\n &.medium {\n padding: var(--spacing-scale-baseh) var(--spacing-scale-baseh);\n }\n\n &.large {\n padding: var(--spacing-scale-2x) var(--spacing-scale-2x);\n }\n\n &.is-visible {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &.popover {\n br-button {\n align-self: flex-start;\n margin-left: var(--spacing-scale-half);\n }\n }\n\n &:focus-visible {\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n }\n }\n\n .arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n }\n\n .content,\n .arrow {\n &.info {\n background-color: var(--blue-warm-vivid-60);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n\n &.warning {\n background-color: var(--yellow-vivid-20);\n color: var(--gray-80);\n\n br-button::part(button) {\n color: var(--gray-80);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--gray-80-rgb), var(--hover)), rgb(var(--gray-80-rgb), var(--hover)));\n }\n }\n\n &.error {\n background-color: var(--red-vivid-50);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n\n &.success {\n background-color: var(--green-cool-vivid-50);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\ntype TooltipPosition = 'top' | 'bottom' | 'left' | 'right'\ntype TooltipType = 'standard' | 'popover'\ntype TooltipDensity = 'large' | 'medium' | 'small'\ntype TooltipState = 'info' | 'warning' | 'error' | 'success'\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/tooltip?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a exibição do tooltip.\n * @slot content - Slot para o conteúdo exibido no tooltip.\n */\n@Component({\n tag: 'br-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tooltip {\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: HTMLBrTooltipElement\n\n /**\n * Referência ao elemento Internals do componente.\n * O elemento Internals fornece uma interface para acessar e manipular o estado interno do componente.\n * Isso é útil para componentes que precisam se integrar com o sistema de formulários nativo do navegador.\n */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do tooltip; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) customId: string = Helpers.generateUniqueId()\n\n /**\n * Posição do tooltip em relação ao acionador.\n */\n @Prop({ reflect: true }) position: TooltipPosition = 'top'\n\n /**\n * Tipo do tooltip: 'standard' (simples) ou 'popover' (mais rico, com fechamento por interação).\n */\n @Prop({ reflect: true }) type: TooltipType = 'standard'\n\n /**\n * Densidade do tooltip: controla compacidade do conteúdo.\n */\n @Prop({ reflect: true }) density: TooltipDensity = 'medium'\n\n /**\n * Estado visual do tooltip: 'info', 'warning', 'error' ou 'success'.\n */\n @Prop({ reflect: true }) state: TooltipState = 'info'\n\n /**\n * Exibe automaticamente sem interação quando true; caso contrário, depende do acionador.\n */\n @Prop({ reflect: true }) isAutoVisible: boolean = false\n\n /**\n * Atraso em milissegundos antes de exibir.\n */\n @Prop({ reflect: true }) showDelay: number = null\n\n /**\n * Atraso em milissegundos antes de ocultar.\n */\n @Prop({ reflect: true }) hideDelay: number = null\n\n /**\n * Estado interno de visibilidade do tooltip.\n */\n @State() isVisible: boolean = false\n\n /**\n * Indica se o conteúdo do trigger é focável.\n * Se for false, o wrapper do trigger receberá tabindex=\"0\".\n */\n @State() private hasFocusableTrigger: boolean = false\n\n /**\n * Watcher para monitorar alterações na propriedade `isVisible`.\n * @param visible boolean\n * @returns void\n */\n @Watch('isVisible')\n handleVisibilityChange(visible: boolean) {\n if (this.contentElement == null) return\n\n if (visible) {\n this.positionTooltip()\n this.brDidOpen.emit({ id: this.customId, visible: true })\n } else {\n this.clearAutoUpdate?.()\n this.clearAutoUpdate = undefined\n this.brDidClose.emit({ id: this.customId, visible: false })\n }\n }\n\n /**\n * Emitido quando o tooltip abre.\n */\n @Event({\n eventName: 'brDidOpen',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n brDidOpen: EventEmitter<{ id: string; visible: boolean }>\n\n /**\n * Emitido quando o tooltip fecha.\n */\n @Event({\n eventName: 'brDidClose',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n brDidClose: EventEmitter<{ id: string; visible: boolean }>\n\n /**\n * Exibe o tooltip quando o acionador recebe foco.\n */\n @Listen('focusin')\n handleFocusIn() {\n if (!this.fromPointerDown) {\n this.showContent()\n }\n this.fromPointerDown = false\n }\n\n /**\n * Oculta o tooltip quando o acionador perde foco.\n */\n @Listen('focusout')\n handleFocusOut() {\n this.hideContent()\n }\n\n /**\n * Fecha com Escape quando o documento recebe a tecla.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hideContent()\n this.triggerElement?.focus()\n }\n }\n\n private floatingManager: FloatingUIManager\n\n /**\n * Elemento que aciona a exibição do tooltip.\n * Este elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele.\n */\n private triggerElement: HTMLDivElement\n\n /**\n * Elemento que contém o conteúdo do tooltip.\n * Este elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele.\n */\n private contentElement: HTMLDivElement\n\n /**\n * Elemento que representa a seta do tooltip.\n * Este elemento é utilizado para indicar a direção do tooltip em relação ao elemento acionador.\n */\n private arrowElement: HTMLDivElement\n\n /**\n * Função de limpeza para atualizar a posição do tooltip automaticamente.\n * Esta função é chamada quando o tooltip não está mais visível ou quando o componente é desconectado.\n * Isso garante que o tooltip não consuma recursos desnecessários quando não estiver em uso.\n */\n private clearAutoUpdate: () => void\n\n /**\n * Tempo limite para exibir o tooltip automaticamente.\n */\n private showTimer: ReturnType<typeof setTimeout>\n\n /**\n * Tempo limite para ocultar o tooltip.\n */\n private hideTimer: ReturnType<typeof setTimeout>\n\n /**\n * Indica se o tooltip foi acionado por um clique do mouse.\n * Isso é utilizado para evitar conflito com o acionamento por foco.\n */\n private fromPointerDown: boolean = false\n\n /**\n * Verifica se um elemento HTML é focável.\n * @param element HTMLElement a ser verificado\n * @returns boolean\n */\n private isFocusable(element: HTMLElement): boolean {\n if (!element || element.nodeType !== 1) return false\n\n // Verifica o atributo tabindex\n if (element.hasAttribute('tabindex')) {\n const index = parseInt(element.getAttribute('tabindex'), 10)\n return !isNaN(index) && index >= 0\n }\n\n // Verifica elementos interativos padrão\n const tag = element.tagName.toLowerCase()\n const interactiveTags = ['button', 'input', 'select', 'textarea', 'a']\n\n if (interactiveTags.includes(tag)) {\n if (tag === 'a') return element.hasAttribute('href')\n return !(element as any).disabled\n }\n\n return false\n }\n\n /**\n * Manipula a mudança no slot do trigger para verificar se há conteúdo focável.\n * @param event Evento de mudança do slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement\n const assignedNodes = slot.assignedNodes({ flatten: true })\n\n this.hasFocusableTrigger = assignedNodes.some((node) => {\n return node.nodeType === 1 && this.isFocusable(node as HTMLElement)\n })\n }\n\n /**\n * Controla a exibição do tooltip.\n * Quando o tooltip é exibido, ele é posicionado em relação ao elemento acionador.\n * Isso é feito utilizando a biblioteca Floating UI, que calcula a posição ideal do tooltip com base no espaço disponível na tela.\n * A função `autoUpdate` é utilizada para atualizar automaticamente a posição do tooltip quando o elemento acionador é movido ou redimensionado.\n */\n private positionTooltip() {\n if (this.triggerElement == null || this.contentElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.contentElement,\n arrowElement: this.arrowElement,\n placement: this.position,\n })\n\n this.floatingManager.start()\n }\n\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Define os eventos de interação do tooltip.\n * Os eventos de interação incluem mouseenter, mouseleave, focus e blur.\n * @returns void\n */\n private setupInteractions() {\n if (this.triggerElement == null || this.contentElement == null) return\n\n if (this.type === 'standard') {\n this.triggerElement.addEventListener('mouseenter', this.showContent)\n this.triggerElement.addEventListener('mouseleave', this.hideContent)\n }\n\n if (this.type === 'popover') {\n this.triggerElement.addEventListener('pointerdown', this.toggleContent)\n }\n\n if (this.isAutoVisible) {\n requestAnimationFrame(() => {\n this.clearShowTimer()\n this.setShowTimer()\n })\n }\n\n // Verifica inicialmente se o slot já tem elementos (caso slotchange não dispare no load inicial dependendo do framework)\n // Pequeno delay para garantir que o DOM light foi projetado\n requestAnimationFrame(() => {\n if (this.triggerElement) {\n const slot = this.triggerElement.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (slot) {\n // Dispara manualmente a verificação inicial\n this.handleTriggerSlotChange({ target: slot } as unknown as Event)\n }\n }\n })\n }\n\n /**\n * Alterna a exibição do tooltip.\n * Se o tooltip estiver visível, ele será ocultado.\n * Se o tooltip estiver oculto, ele será exibido.\n */\n private toggleContent = () => {\n this.fromPointerDown = true\n\n if (this.isVisible) {\n this.hideContent()\n } else {\n this.showContent()\n }\n }\n\n /**\n * Processa as ações relacionadas à exibição do tooltip.\n * Isso inclui exibir o tooltip e iniciar o tempo limite de ocultação automática.\n * @returns void\n */\n private showContent = () => {\n if (this.contentElement == null) return\n\n this.isVisible = true\n\n if (this.isAutoVisible) {\n if (this.hideDelay !== null) {\n this.clearHideTimer()\n this.setHideTimer()\n }\n }\n\n if (this.type === 'popover') {\n document.addEventListener('click', this.handleOutsideClick)\n }\n }\n\n /**\n * Processa as ações relacionadas ao fechamento do tooltip.\n * Isso inclui ocultar o tooltip e limpar o tempo limite de ocultação automática.\n * @returns void\n */\n private hideContent = () => {\n if (this.contentElement == null) return\n\n this.isVisible = false\n\n if (this.type === 'popover') {\n document.removeEventListener('click', this.handleOutsideClick)\n requestAnimationFrame(() => this.contentElement?.focus())\n }\n }\n\n /**\n * Configura o tempo limite para exibir o tooltip automaticamente.\n * O tempo limite é definido pelo valor da propriedade `showDelay`.\n */\n private setShowTimer() {\n this.showTimer = setTimeout(() => {\n this.showContent()\n }, this.showDelay || 0)\n }\n\n /**\n * Limpa o tempo limite de exibição automática do tooltip.\n */\n private clearShowTimer() {\n if (this.showTimer !== undefined) {\n clearTimeout(this.showTimer)\n this.showTimer = undefined\n }\n }\n\n /**\n * Configura o tempo limite para ocultar o tooltip automaticamente.\n * O tempo limite é definido pelo valor da propriedade `hideDelay`.\n */\n private setHideTimer() {\n this.hideTimer = setTimeout(() => {\n this.hideContent()\n }, this.hideDelay)\n }\n\n /**\n * Limpa o tempo limite de ocultação automática do tooltip.\n */\n private clearHideTimer() {\n if (this.hideTimer !== undefined) {\n clearTimeout(this.hideTimer)\n this.hideTimer = undefined\n }\n }\n\n /**\n * Lida com cliques fora do tooltip.\n * É utilizado para o tooltip do tipo 'popover'.\n * @param event MouseEvent\n */\n private handleOutsideClick = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (\n this.isVisible &&\n this.type === 'popover' &&\n !path.includes(this.contentElement) &&\n !path.includes(this.triggerElement)\n ) {\n this.hideContent()\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do componente.\n * @returns Um objeto que representa o mapeamento de classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tooltip': true,\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do trigger.\n * @returns Um objeto que representa o mapeamento de classes CSS do trigger.\n */\n private getTriggerCssClassMap(): CssClassMap {\n return {\n trigger: true,\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do conteúdo.\n * @returns Um objeto que representa o mapeamento de classes CSS do conteúdo.\n */\n private getContentCssClassMap(): CssClassMap {\n return {\n 'is-visible': this.isVisible,\n content: true,\n popover: this.type === 'popover',\n large: this.density === 'large',\n medium: this.density === 'medium',\n small: this.density === 'small',\n info: this.state === 'info',\n warning: this.state === 'warning',\n error: this.state === 'error',\n success: this.state === 'success',\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS da seta.\n * @returns Um objeto que representa o mapeamento de classes CSS da seta.\n */\n private getArrowCssClassMap(): CssClassMap {\n return {\n arrow: true,\n large: this.density === 'large',\n medium: this.density === 'medium',\n small: this.density === 'small',\n info: this.state === 'info',\n warning: this.state === 'warning',\n error: this.state === 'error',\n success: this.state === 'success',\n }\n }\n\n /**\n * Método do ciclo de vida do componente.\n * Este método é chamado uma única vez após o componente ser montado no DOM.\n */\n componentDidLoad() {\n if (typeof window === 'undefined') return\n this.setupInteractions()\n }\n\n /**\n * Método do ciclo de vida do componente.\n * Este método é chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n if (this.type === 'standard') {\n this.triggerElement?.removeEventListener('mouseenter', this.showContent)\n this.triggerElement?.removeEventListener('mouseleave', this.hideContent)\n } else if (this.type === 'popover') {\n this.triggerElement?.removeEventListener('pointerdown', this.toggleContent)\n document.removeEventListener('click', this.handleOutsideClick)\n }\n\n this.cleanupPositioning()\n\n this.clearShowTimer()\n this.clearHideTimer()\n }\n\n /**\n * Determina o texto de acessibilidade baseado no estado do tooltip.\n */\n private getAccessibilityLabel(): string {\n const labels = {\n info: 'Informação:',\n warning: 'Aviso:',\n error: 'Erro:',\n success: 'Sucesso:',\n }\n return labels[this.state] || ''\n }\n\n /**\n * Renderiza o componente.\n * Este método é responsável por gerar o conteúdo HTML do componente.\n * Ele utiliza a função `h` do Stencil para criar elementos JSX.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <div\n class={this.getTriggerCssClassMap()}\n ref={(el) => (this.triggerElement = el as HTMLDivElement)}\n aria-describedby={`${this.customId}-content`}\n aria-expanded={this.isVisible ? 'true' : 'false'}\n aria-controls={`${this.customId}-content`}\n tabindex={this.hasFocusableTrigger ? -1 : 0}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </div>\n <div\n id={`${this.customId}-content`}\n class={this.getContentCssClassMap()}\n ref={(el) => (this.contentElement = el as HTMLDivElement)}\n role={this.type === 'popover' ? 'dialog' : 'tooltip'}\n tabindex=\"-1\"\n >\n <span class=\"sr-only\">{this.getAccessibilityLabel()}</span>\n <slot name=\"content\"></slot>\n {this.type === 'popover' && (\n <br-button\n class=\"close\"\n shape=\"circle\"\n density=\"small\"\n onClick={this.hideContent}\n aria-label=\"Fechar popover\"\n >\n <br-icon icon-name=\"fa6-solid:xmark\"></br-icon>\n </br-button>\n )}\n <div class={this.getArrowCssClassMap()} ref={(el) => (this.arrowElement = el as HTMLDivElement)}></div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-tooltip.entry.esm.js","sources":["../../packages/webcomponents/src/components/tooltip/tooltip.scss?tag=br-tooltip&encapsulation=shadow","../../packages/webcomponents/src/components/tooltip/tooltip.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n.br-tooltip {\n .content {\n display: none;\n border-radius: 4px;\n box-shadow: var(--surface-offset-xl) var(--surface-offset-xl) var(--surface-offset-xl) rgb(0 0 0 / 16%);\n color: var(--pure-0);\n font-size: var(--font-size-scale-down-01);\n font-weight: var(--font-weight-regular);\n width: max-content;\n position: absolute;\n left: 0;\n top: 0;\n text-align: center;\n z-index: 4;\n\n &.small {\n padding: var(--spacing-scale-base) var(--spacing-scale-base);\n }\n\n &.medium {\n padding: var(--spacing-scale-baseh) var(--spacing-scale-baseh);\n }\n\n &.large {\n padding: var(--spacing-scale-2x) var(--spacing-scale-2x);\n }\n\n &.is-visible {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &.popover {\n br-button {\n align-self: flex-start;\n margin-left: var(--spacing-scale-half);\n }\n }\n\n &:focus-visible {\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n }\n }\n\n .arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n }\n\n .content,\n .arrow {\n &.info {\n background-color: var(--blue-warm-vivid-60);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n\n &.warning {\n background-color: var(--yellow-vivid-20);\n color: var(--gray-80);\n\n br-button::part(button) {\n color: var(--gray-80);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--gray-80-rgb), var(--hover)), rgb(var(--gray-80-rgb), var(--hover)));\n }\n }\n\n &.error {\n background-color: var(--red-vivid-50);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n\n &.success {\n background-color: var(--green-cool-vivid-50);\n\n br-button::part(button) {\n color: var(--pure-0);\n }\n\n br-button::part(button):hover {\n background: linear-gradient(rgb(var(--pure-0-rgb), var(--hover)), rgb(var(--pure-0-rgb), var(--hover)));\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n white-space: nowrap;\n border: 0;\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport { FloatingUIManager } from '../../utils/floating-ui'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\ntype TooltipPosition = 'top' | 'bottom' | 'left' | 'right'\ntype TooltipType = 'standard' | 'popover'\ntype TooltipDensity = 'large' | 'medium' | 'small'\ntype TooltipState = 'info' | 'warning' | 'error' | 'success'\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/tooltip?tab=designer).\n *\n * @slot trigger - Slot para o elemento que aciona a exibição do tooltip.\n * @slot content - Slot para o conteúdo exibido no tooltip.\n */\n@Component({\n tag: 'br-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tooltip {\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: HTMLBrTooltipElement\n\n /**\n * Referência ao elemento Internals do componente.\n * O elemento Internals fornece uma interface para acessar e manipular o estado interno do componente.\n * Isso é útil para componentes que precisam se integrar com o sistema de formulários nativo do navegador.\n */\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único do tooltip; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) customId: string = Helpers.generateUniqueId()\n\n /**\n * Posição do tooltip em relação ao acionador.\n */\n @Prop({ reflect: true }) position: TooltipPosition = 'top'\n\n /**\n * Tipo do tooltip: 'standard' (simples) ou 'popover' (mais rico, com fechamento por interação).\n */\n @Prop({ reflect: true }) type: TooltipType = 'standard'\n\n /**\n * Densidade do tooltip: controla compacidade do conteúdo.\n */\n @Prop({ reflect: true }) density: TooltipDensity = 'medium'\n\n /**\n * Estado visual do tooltip: 'info', 'warning', 'error' ou 'success'.\n */\n @Prop({ reflect: true }) state: TooltipState = 'info'\n\n /**\n * Exibe automaticamente sem interação quando true; caso contrário, depende do acionador.\n */\n @Prop({ reflect: true }) isAutoVisible: boolean = false\n\n /**\n * Atraso em milissegundos antes de exibir.\n */\n @Prop({ reflect: true }) showDelay: number = null\n\n /**\n * Atraso em milissegundos antes de ocultar.\n */\n @Prop({ reflect: true }) hideDelay: number = null\n\n /**\n * Estado interno de visibilidade do tooltip.\n */\n @State() isVisible: boolean = false\n\n /**\n * Indica se o conteúdo do trigger é focável.\n * Se for false, o wrapper do trigger receberá tabindex=\"0\".\n */\n @State() private hasFocusableTrigger: boolean = false\n\n /**\n * Watcher para monitorar alterações na propriedade `isVisible`.\n * @param visible boolean\n * @returns void\n */\n @Watch('isVisible')\n handleVisibilityChange(visible: boolean) {\n if (this.contentElement == null) return\n\n if (visible) {\n this.positionTooltip()\n this.brDidOpen.emit({ id: this.customId, visible: true })\n } else {\n this.clearAutoUpdate?.()\n this.clearAutoUpdate = undefined\n this.brDidClose.emit({ id: this.customId, visible: false })\n }\n }\n\n /**\n * Emitido quando o tooltip abre.\n */\n @Event({\n eventName: 'brDidOpen',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n brDidOpen: EventEmitter<{ id: string; visible: boolean }>\n\n /**\n * Emitido quando o tooltip fecha.\n */\n @Event({\n eventName: 'brDidClose',\n composed: true,\n cancelable: false,\n bubbles: true,\n })\n brDidClose: EventEmitter<{ id: string; visible: boolean }>\n\n /**\n * Exibe o tooltip quando o acionador recebe foco.\n */\n @Listen('focusin')\n handleFocusIn() {\n if (!this.fromPointerDown) {\n this.showContent()\n }\n this.fromPointerDown = false\n }\n\n /**\n * Oculta o tooltip quando o acionador perde foco.\n */\n @Listen('focusout')\n handleFocusOut() {\n this.hideContent()\n }\n\n /**\n * Fecha com Escape quando o documento recebe a tecla.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault()\n this.hideContent()\n this.triggerElement?.focus()\n }\n }\n\n private floatingManager: FloatingUIManager\n\n /**\n * Elemento que aciona a exibição do tooltip.\n * Este elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele.\n */\n private triggerElement: HTMLDivElement\n\n /**\n * Elemento que contém o conteúdo do tooltip.\n * Este elemento é referenciado para garantir que o tooltip seja posicionado corretamente em relação a ele.\n */\n private contentElement: HTMLDivElement\n\n /**\n * Elemento que representa a seta do tooltip.\n * Este elemento é utilizado para indicar a direção do tooltip em relação ao elemento acionador.\n */\n private arrowElement: HTMLDivElement\n\n /**\n * Função de limpeza para atualizar a posição do tooltip automaticamente.\n * Esta função é chamada quando o tooltip não está mais visível ou quando o componente é desconectado.\n * Isso garante que o tooltip não consuma recursos desnecessários quando não estiver em uso.\n */\n private clearAutoUpdate: () => void\n\n /**\n * Tempo limite para exibir o tooltip automaticamente.\n */\n private showTimer: ReturnType<typeof setTimeout>\n\n /**\n * Tempo limite para ocultar o tooltip.\n */\n private hideTimer: ReturnType<typeof setTimeout>\n\n /**\n * Indica se o tooltip foi acionado por um clique do mouse.\n * Isso é utilizado para evitar conflito com o acionamento por foco.\n */\n private fromPointerDown: boolean = false\n\n /**\n * Verifica se um elemento HTML é focável.\n * @param element HTMLElement a ser verificado\n * @returns boolean\n */\n private isFocusable(element: HTMLElement): boolean {\n if (!element || element.nodeType !== 1) return false\n\n // Verifica o atributo tabindex\n if (element.hasAttribute('tabindex')) {\n const index = parseInt(element.getAttribute('tabindex'), 10)\n return !isNaN(index) && index >= 0\n }\n\n // Verifica elementos interativos padrão\n const tag = element.tagName.toLowerCase()\n const interactiveTags = ['button', 'input', 'select', 'textarea', 'a']\n\n if (interactiveTags.includes(tag)) {\n if (tag === 'a') return element.hasAttribute('href')\n return !(element as any).disabled\n }\n\n return false\n }\n\n /**\n * Manipula a mudança no slot do trigger para verificar se há conteúdo focável.\n * @param event Evento de mudança do slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement\n const assignedNodes = slot.assignedNodes({ flatten: true })\n\n this.hasFocusableTrigger = assignedNodes.some((node) => {\n return node.nodeType === 1 && this.isFocusable(node as HTMLElement)\n })\n }\n\n /**\n * Controla a exibição do tooltip.\n * Quando o tooltip é exibido, ele é posicionado em relação ao elemento acionador.\n * Isso é feito utilizando a biblioteca Floating UI, que calcula a posição ideal do tooltip com base no espaço disponível na tela.\n * A função `autoUpdate` é utilizada para atualizar automaticamente a posição do tooltip quando o elemento acionador é movido ou redimensionado.\n */\n private positionTooltip() {\n if (this.triggerElement == null || this.contentElement == null) return\n\n this.floatingManager = new FloatingUIManager({\n triggerElement: this.triggerElement,\n contentElement: this.contentElement,\n arrowElement: this.arrowElement,\n placement: this.position,\n })\n\n this.floatingManager.start()\n }\n\n private cleanupPositioning() {\n this.floatingManager?.stop()\n }\n\n /**\n * Define os eventos de interação do tooltip.\n * Os eventos de interação incluem mouseenter, mouseleave, focus e blur.\n * @returns void\n */\n private setupInteractions() {\n if (this.triggerElement == null || this.contentElement == null) return\n\n if (this.type === 'standard') {\n this.triggerElement.addEventListener('mouseenter', this.showContent)\n this.triggerElement.addEventListener('mouseleave', this.hideContent)\n }\n\n if (this.type === 'popover') {\n this.triggerElement.addEventListener('pointerdown', this.toggleContent)\n }\n\n if (this.isAutoVisible) {\n requestAnimationFrame(() => {\n this.clearShowTimer()\n this.setShowTimer()\n })\n }\n\n // Verifica inicialmente se o slot já tem elementos (caso slotchange não dispare no load inicial dependendo do framework)\n // Pequeno delay para garantir que o DOM light foi projetado\n requestAnimationFrame(() => {\n if (this.triggerElement) {\n const slot = this.triggerElement.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement\n if (slot) {\n // Dispara manualmente a verificação inicial\n this.handleTriggerSlotChange({ target: slot } as unknown as Event)\n }\n }\n })\n }\n\n /**\n * Alterna a exibição do tooltip.\n * Se o tooltip estiver visível, ele será ocultado.\n * Se o tooltip estiver oculto, ele será exibido.\n */\n private toggleContent = () => {\n this.fromPointerDown = true\n\n if (this.isVisible) {\n this.hideContent()\n } else {\n this.showContent()\n }\n }\n\n /**\n * Processa as ações relacionadas à exibição do tooltip.\n * Isso inclui exibir o tooltip e iniciar o tempo limite de ocultação automática.\n * @returns void\n */\n private showContent = () => {\n if (this.contentElement == null) return\n\n this.isVisible = true\n\n if (this.isAutoVisible) {\n if (this.hideDelay !== null) {\n this.clearHideTimer()\n this.setHideTimer()\n }\n }\n\n if (this.type === 'popover') {\n document.addEventListener('click', this.handleOutsideClick)\n }\n }\n\n /**\n * Processa as ações relacionadas ao fechamento do tooltip.\n * Isso inclui ocultar o tooltip e limpar o tempo limite de ocultação automática.\n * @returns void\n */\n private hideContent = () => {\n if (this.contentElement == null) return\n\n this.isVisible = false\n\n if (this.type === 'popover') {\n document.removeEventListener('click', this.handleOutsideClick)\n requestAnimationFrame(() => this.contentElement?.focus())\n }\n }\n\n /**\n * Configura o tempo limite para exibir o tooltip automaticamente.\n * O tempo limite é definido pelo valor da propriedade `showDelay`.\n */\n private setShowTimer() {\n this.showTimer = setTimeout(() => {\n this.showContent()\n }, this.showDelay || 0)\n }\n\n /**\n * Limpa o tempo limite de exibição automática do tooltip.\n */\n private clearShowTimer() {\n if (this.showTimer !== undefined) {\n clearTimeout(this.showTimer)\n this.showTimer = undefined\n }\n }\n\n /**\n * Configura o tempo limite para ocultar o tooltip automaticamente.\n * O tempo limite é definido pelo valor da propriedade `hideDelay`.\n */\n private setHideTimer() {\n this.hideTimer = setTimeout(() => {\n this.hideContent()\n }, this.hideDelay)\n }\n\n /**\n * Limpa o tempo limite de ocultação automática do tooltip.\n */\n private clearHideTimer() {\n if (this.hideTimer !== undefined) {\n clearTimeout(this.hideTimer)\n this.hideTimer = undefined\n }\n }\n\n /**\n * Lida com cliques fora do tooltip.\n * É utilizado para o tooltip do tipo 'popover'.\n * @param event MouseEvent\n */\n private handleOutsideClick = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (\n this.isVisible &&\n this.type === 'popover' &&\n !path.includes(this.contentElement) &&\n !path.includes(this.triggerElement)\n ) {\n this.hideContent()\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do componente.\n * @returns Um objeto que representa o mapeamento de classes CSS do componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tooltip': true,\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do trigger.\n * @returns Um objeto que representa o mapeamento de classes CSS do trigger.\n */\n private getTriggerCssClassMap(): CssClassMap {\n return {\n trigger: true,\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS do conteúdo.\n * @returns Um objeto que representa o mapeamento de classes CSS do conteúdo.\n */\n private getContentCssClassMap(): CssClassMap {\n return {\n 'is-visible': this.isVisible,\n content: true,\n popover: this.type === 'popover',\n large: this.density === 'large',\n medium: this.density === 'medium',\n small: this.density === 'small',\n info: this.state === 'info',\n warning: this.state === 'warning',\n error: this.state === 'error',\n success: this.state === 'success',\n }\n }\n\n /**\n * Determina o mapeamento de classes CSS da seta.\n * @returns Um objeto que representa o mapeamento de classes CSS da seta.\n */\n private getArrowCssClassMap(): CssClassMap {\n return {\n arrow: true,\n large: this.density === 'large',\n medium: this.density === 'medium',\n small: this.density === 'small',\n info: this.state === 'info',\n warning: this.state === 'warning',\n error: this.state === 'error',\n success: this.state === 'success',\n }\n }\n\n /**\n * Método do ciclo de vida do componente.\n * Este método é chamado uma única vez após o componente ser montado no DOM.\n */\n componentDidLoad() {\n if (typeof window === 'undefined') return\n this.setupInteractions()\n }\n\n /**\n * Método do ciclo de vida do componente.\n * Este método é chamado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n if (this.type === 'standard') {\n this.triggerElement?.removeEventListener('mouseenter', this.showContent)\n this.triggerElement?.removeEventListener('mouseleave', this.hideContent)\n } else if (this.type === 'popover') {\n this.triggerElement?.removeEventListener('pointerdown', this.toggleContent)\n document.removeEventListener('click', this.handleOutsideClick)\n }\n\n this.cleanupPositioning()\n\n this.clearShowTimer()\n this.clearHideTimer()\n }\n\n /**\n * Determina o texto de acessibilidade baseado no estado do tooltip.\n */\n private getAccessibilityLabel(): string {\n const labels = {\n info: 'Informação:',\n warning: 'Aviso:',\n error: 'Erro:',\n success: 'Sucesso:',\n }\n return labels[this.state] || ''\n }\n\n /**\n * Renderiza o componente.\n * Este método é responsável por gerar o conteúdo HTML do componente.\n * Ele utiliza a função `h` do Stencil para criar elementos JSX.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <div id={this.customId} class={this.getCssClassMap()}>\n <div\n class={this.getTriggerCssClassMap()}\n ref={(el) => (this.triggerElement = el as HTMLDivElement)}\n aria-describedby={`${this.customId}-content`}\n aria-expanded={this.isVisible ? 'true' : 'false'}\n aria-controls={`${this.customId}-content`}\n tabindex={this.hasFocusableTrigger ? -1 : 0}\n >\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </div>\n <div\n id={`${this.customId}-content`}\n class={this.getContentCssClassMap()}\n ref={(el) => (this.contentElement = el as HTMLDivElement)}\n role={this.type === 'popover' ? 'dialog' : 'tooltip'}\n tabindex=\"-1\"\n >\n <span class=\"sr-only\">{this.getAccessibilityLabel()}</span>\n <slot name=\"content\"></slot>\n {this.type === 'popover' && (\n <br-button\n class=\"close\"\n shape=\"circle\"\n density=\"small\"\n onClick={this.hideContent}\n aria-label=\"Fechar popover\"\n >\n <br-icon icon-name=\"fa6-solid:xmark\"></br-icon>\n </br-button>\n )}\n <div class={this.getArrowCssClassMap()} ref={(el) => (this.arrowElement = el as HTMLDivElement)}></div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|