@govbr-ds/webcomponents 2.0.0-next.36 → 2.0.0-next.38
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.cjs.entry.js.map +1 -1
- package/dist/cjs/br-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/br-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/br-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/br-breadcrumb.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js +10 -4
- package/dist/cjs/br-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/br-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
- package/dist/cjs/br-checkgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/br-checkgroup.entry.cjs.js.map +1 -1
- package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -0
- package/dist/cjs/br-collapse_2.cjs.entry.js +286 -0
- package/dist/cjs/br-collapse_2.cjs.entry.js.map +1 -0
- package/dist/cjs/br-divider.cjs.entry.js +1 -1
- package/dist/cjs/br-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/br-divider.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/br-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/br-footer-category.cjs.entry.js +110 -0
- package/dist/cjs/br-footer-category.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer-category.entry.cjs.js.map +1 -0
- package/dist/cjs/br-footer-item.cjs.entry.js +52 -0
- package/dist/cjs/br-footer-item.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer-item.entry.cjs.js.map +1 -0
- package/dist/cjs/br-footer-legal.cjs.entry.js +43 -0
- package/dist/cjs/br-footer-legal.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer-legal.entry.cjs.js.map +1 -0
- package/dist/cjs/br-footer-logo.cjs.entry.js +74 -0
- package/dist/cjs/br-footer-logo.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer-logo.entry.cjs.js.map +1 -0
- package/dist/cjs/br-footer-social.cjs.entry.js +57 -0
- package/dist/cjs/br-footer-social.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer-social.entry.cjs.js.map +1 -0
- package/dist/cjs/br-footer.cjs.entry.js +49 -0
- package/dist/cjs/br-footer.cjs.entry.js.map +1 -0
- package/dist/cjs/br-footer.entry.cjs.js.map +1 -0
- package/dist/cjs/br-input.br-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/br-input_2.cjs.entry.js +33 -4
- package/dist/cjs/br-input_2.cjs.entry.js.map +1 -1
- package/dist/cjs/br-item.cjs.entry.js +2 -2
- package/dist/cjs/br-item.cjs.entry.js.map +1 -1
- package/dist/cjs/br-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-loading.cjs.entry.js +2 -2
- package/dist/cjs/br-loading.cjs.entry.js.map +1 -1
- package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +2 -2
- package/dist/cjs/br-message.cjs.entry.js.map +1 -1
- package/dist/cjs/br-message.entry.cjs.js.map +1 -1
- package/dist/cjs/br-select.cjs.entry.js +2 -2
- package/dist/cjs/br-select.cjs.entry.js.map +1 -1
- package/dist/cjs/br-select.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step-item.cjs.entry.js +2 -2
- package/dist/cjs/br-step-item.cjs.entry.js.map +1 -1
- package/dist/cjs/br-step-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step.cjs.entry.js +2 -2
- package/dist/cjs/br-step.cjs.entry.js.map +1 -1
- package/dist/cjs/br-step.entry.cjs.js.map +1 -1
- package/dist/cjs/br-switch.cjs.entry.js +2 -2
- package/dist/cjs/br-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tab-item.cjs.entry.js +76 -0
- package/dist/cjs/br-tab-item.cjs.entry.js.map +1 -0
- package/dist/cjs/br-tab-item.entry.cjs.js.map +1 -0
- package/dist/cjs/{br-collapse.cjs.entry.js → br-tab.cjs.entry.js} +254 -60
- package/dist/cjs/br-tab.cjs.entry.js.map +1 -0
- package/dist/cjs/br-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/br-table-cell.cjs.entry.js +81 -0
- package/dist/cjs/br-table-cell.cjs.entry.js.map +1 -0
- package/dist/cjs/br-table-cell.entry.cjs.js.map +1 -0
- package/dist/cjs/br-table-header-cell.cjs.entry.js +70 -0
- package/dist/cjs/br-table-header-cell.cjs.entry.js.map +1 -0
- package/dist/cjs/br-table-header-cell.entry.cjs.js.map +1 -0
- package/dist/cjs/br-table-header-row.cjs.entry.js +44 -0
- package/dist/cjs/br-table-header-row.cjs.entry.js.map +1 -0
- package/dist/cjs/br-table-header-row.entry.cjs.js.map +1 -0
- package/dist/cjs/br-table-row.cjs.entry.js +36 -0
- package/dist/cjs/br-table-row.cjs.entry.js.map +1 -0
- package/dist/cjs/br-table-row.entry.cjs.js.map +1 -0
- package/dist/cjs/br-table.cjs.entry.js +44 -0
- package/dist/cjs/br-table.cjs.entry.js.map +1 -0
- package/dist/cjs/br-table.entry.cjs.js.map +1 -0
- package/dist/cjs/br-tag.cjs.entry.js +3 -3
- package/dist/cjs/br-tag.cjs.entry.js.map +1 -1
- 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.cjs.entry.js.map +1 -1
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +2 -2
- package/dist/cjs/br-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/br-upload.entry.cjs.js.map +1 -1
- package/dist/cjs/helpers-BOXIHVCc.js +23 -0
- package/dist/cjs/helpers-BOXIHVCc.js.map +1 -0
- package/dist/cjs/index-DAOr34NM.js +58 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +13 -0
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button/button.js +7 -1
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/checkgroup/checkgroup.css +1 -1
- package/dist/collection/components/collapse/collapse.css +1 -1
- package/dist/collection/components/collapse/collapse.js +131 -43
- package/dist/collection/components/collapse/collapse.js.map +1 -1
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/footer/footer.css +1 -0
- package/dist/collection/components/footer/footer.js +128 -0
- package/dist/collection/components/footer/footer.js.map +1 -0
- package/dist/collection/components/footer-category/footer-category.css +1 -0
- package/dist/collection/components/footer-category/footer-category.js +178 -0
- package/dist/collection/components/footer-category/footer-category.js.map +1 -0
- package/dist/collection/components/footer-item/footer-item.css +1 -0
- package/dist/collection/components/footer-item/footer-item.js +117 -0
- package/dist/collection/components/footer-item/footer-item.js.map +1 -0
- package/dist/collection/components/footer-legal/footer-legal.css +1 -0
- package/dist/collection/components/footer-legal/footer-legal.js +77 -0
- package/dist/collection/components/footer-legal/footer-legal.js.map +1 -0
- package/dist/collection/components/footer-logo/footer-logo.css +1 -0
- package/dist/collection/components/footer-logo/footer-logo.js +188 -0
- package/dist/collection/components/footer-logo/footer-logo.js.map +1 -0
- package/dist/collection/components/footer-social/footer-social.css +1 -0
- package/dist/collection/components/footer-social/footer-social.js +147 -0
- package/dist/collection/components/footer-social/footer-social.js.map +1 -0
- 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 +91 -8
- package/dist/collection/components/list/list.js.map +1 -1
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/loading/loading.js +1 -1
- package/dist/collection/components/message/message.css +1 -1
- package/dist/collection/components/message/message.js +1 -1
- package/dist/collection/components/radio/radio.css +1 -1
- package/dist/collection/components/radio/radio.js +36 -1
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/step/step.css +1 -1
- package/dist/collection/components/step/step.js +1 -1
- package/dist/collection/components/step-item/step-item.css +1 -1
- package/dist/collection/components/step-item/step-item.js +2 -2
- package/dist/collection/components/step-item/step-item.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.css +1 -0
- package/dist/collection/components/tab/tab.js +372 -0
- package/dist/collection/components/tab/tab.js.map +1 -0
- package/dist/collection/components/tab-item/tab-item.css +1 -0
- package/dist/collection/components/tab-item/tab-item.js +256 -0
- package/dist/collection/components/tab-item/tab-item.js.map +1 -0
- package/dist/collection/components/table/table.css +1 -0
- package/dist/collection/components/table/table.js +77 -0
- package/dist/collection/components/table/table.js.map +1 -0
- package/dist/collection/components/table-cell/table-cell.css +1 -0
- package/dist/collection/components/table-cell/table-cell.js +171 -0
- package/dist/collection/components/table-cell/table-cell.js.map +1 -0
- package/dist/collection/components/table-header-cell/table-header-cell.css +1 -0
- package/dist/collection/components/table-header-cell/table-header-cell.js +164 -0
- package/dist/collection/components/table-header-cell/table-header-cell.js.map +1 -0
- package/dist/collection/components/table-header-row/table-header-row.css +1 -0
- package/dist/collection/components/table-header-row/table-header-row.js +77 -0
- package/dist/collection/components/table-header-row/table-header-row.js.map +1 -0
- package/dist/collection/components/table-row/table-row.css +1 -0
- package/dist/collection/components/table-row/table-row.js +69 -0
- package/dist/collection/components/table-row/table-row.js.map +1 -0
- package/dist/collection/components/tag/tag.css +1 -1
- package/dist/collection/components/tag/tag.js +2 -2
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/components/upload/upload.css +1 -1
- package/dist/collection/components/upload/upload.js +1 -1
- package/dist/collection/pages/components/footer/index.js +18 -0
- package/dist/collection/pages/components/tab/index.js +18 -0
- package/dist/collection/pages/components/table/index.js +18 -0
- package/dist/collection/pages/scripts/menu.js +18 -4
- package/dist/collection/utils/css-variables.js +10 -0
- package/dist/collection/utils/css-variables.js.map +1 -0
- package/dist/collection/utils/helpers.js +17 -0
- package/dist/collection/utils/helpers.js.map +1 -0
- package/dist/collection/utils/types.js +2 -0
- package/dist/collection/utils/types.js.map +1 -0
- package/dist/components/br-avatar.js +3 -3
- package/dist/components/br-breadcrumb.js +29 -21
- package/dist/components/br-breadcrumb.js.map +1 -1
- package/dist/components/br-button.js +4 -4
- package/dist/components/br-checkbox.js +3 -3
- package/dist/components/br-checkgroup.js +3 -3
- package/dist/components/br-collapse.js +4 -171
- package/dist/components/br-collapse.js.map +1 -1
- package/dist/components/br-divider.js +4 -131
- package/dist/components/br-divider.js.map +1 -1
- package/dist/components/br-dropdown.js +2 -2
- package/dist/components/br-footer-category.d.ts +11 -0
- package/dist/components/br-footer-category.js +169 -0
- package/dist/components/br-footer-category.js.map +1 -0
- package/dist/components/br-footer-item.d.ts +11 -0
- package/dist/components/br-footer-item.js +95 -0
- package/dist/components/br-footer-item.js.map +1 -0
- package/dist/components/br-footer-legal.d.ts +11 -0
- package/dist/components/br-footer-legal.js +85 -0
- package/dist/components/br-footer-legal.js.map +1 -0
- package/dist/components/br-footer-logo.d.ts +11 -0
- package/dist/components/br-footer-logo.js +112 -0
- package/dist/components/br-footer-logo.js.map +1 -0
- package/dist/components/br-footer-social.d.ts +11 -0
- package/dist/components/br-footer-social.js +116 -0
- package/dist/components/br-footer-social.js.map +1 -0
- package/dist/components/br-footer.d.ts +11 -0
- package/dist/components/br-footer.js +113 -0
- package/dist/components/br-footer.js.map +1 -0
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.js +3 -3
- package/dist/components/br-item.js +4 -4
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-loading.js +3 -3
- package/dist/components/br-message.js +7 -7
- package/dist/components/br-message.js.map +1 -1
- package/dist/components/br-radio.js +4 -4
- package/dist/components/br-select.js +33 -25
- package/dist/components/br-select.js.map +1 -1
- package/dist/components/br-step-item.js +18 -20
- package/dist/components/br-step-item.js.map +1 -1
- package/dist/components/br-step.js +9 -9
- package/dist/components/br-switch.js +7 -7
- package/dist/components/br-tab-item.d.ts +11 -0
- package/dist/components/br-tab-item.js +142 -0
- package/dist/components/br-tab-item.js.map +1 -0
- package/dist/components/br-tab.d.ts +11 -0
- package/dist/components/br-tab.js +323 -0
- package/dist/components/br-tab.js.map +1 -0
- package/dist/components/br-table-cell.d.ts +11 -0
- package/dist/components/br-table-cell.js +118 -0
- package/dist/components/br-table-cell.js.map +1 -0
- package/dist/components/br-table-header-cell.d.ts +11 -0
- package/dist/components/br-table-header-cell.js +108 -0
- package/dist/components/br-table-header-cell.js.map +1 -0
- package/dist/components/br-table-header-row.d.ts +11 -0
- package/dist/components/br-table-header-row.js +76 -0
- package/dist/components/br-table-header-row.js.map +1 -0
- package/dist/components/br-table-row.d.ts +11 -0
- package/dist/components/br-table-row.js +69 -0
- package/dist/components/br-table-row.js.map +1 -0
- package/dist/components/br-table.d.ts +11 -0
- package/dist/components/br-table.js +86 -0
- package/dist/components/br-table.js.map +1 -0
- package/dist/components/br-tag.js +10 -10
- package/dist/components/br-tag.js.map +1 -1
- package/dist/components/br-textarea.js +10 -10
- package/dist/components/br-upload.js +13 -13
- package/dist/components/br-upload.js.map +1 -1
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +27 -1
- package/dist/components/p-6zXKXi1G.js +386 -0
- package/dist/components/p-6zXKXi1G.js.map +1 -0
- package/dist/components/{p-CyMSBO1R.js → p-BBbnZnbw.js} +3 -3
- package/dist/components/p-BRKK5nMe.js +22 -0
- package/dist/components/p-BRKK5nMe.js.map +1 -0
- package/dist/components/p-BUstn93c.js +190 -0
- package/dist/components/p-BUstn93c.js.map +1 -0
- package/dist/components/p-BccYWJTM.js +285 -0
- package/dist/components/p-C69qzP4f.js +2270 -0
- package/dist/components/{p-ZjuPhQfh.js.map → p-C69qzP4f.js.map} +1 -1
- package/dist/components/p-CLzPNRoE.js +198 -0
- package/dist/components/p-YVVBeyHg.js +183 -0
- package/dist/components/p-YVVBeyHg.js.map +1 -0
- package/dist/components/p-fXOTnsCB.js +237 -0
- package/dist/components/p-fXOTnsCB.js.map +1 -0
- package/dist/components/p-lS-a0O7q.js +161 -0
- package/dist/components/p-lS-a0O7q.js.map +1 -0
- package/dist/components/p-netcRdpj.js +136 -0
- package/dist/components/p-netcRdpj.js.map +1 -0
- package/dist/custom-elements.json +3676 -1685
- package/dist/esm/br-avatar.entry.js +1 -1
- package/dist/esm/br-avatar.entry.js.map +1 -1
- package/dist/esm/br-breadcrumb.entry.js +1 -1
- 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 +10 -4
- package/dist/esm/br-button_2.entry.js.map +1 -1
- package/dist/esm/br-checkbox.entry.js +1 -1
- package/dist/esm/br-checkbox.entry.js.map +1 -1
- package/dist/esm/br-checkgroup.entry.js +1 -1
- package/dist/esm/br-checkgroup.entry.js.map +1 -1
- package/dist/esm/br-collapse.br-list.entry.js.map +1 -0
- package/dist/esm/br-collapse_2.entry.js +283 -0
- package/dist/esm/br-collapse_2.entry.js.map +1 -0
- package/dist/esm/br-divider.entry.js +1 -1
- package/dist/esm/br-divider.entry.js.map +1 -1
- package/dist/esm/br-dropdown.entry.js +1 -1
- package/dist/esm/br-dropdown.entry.js.map +1 -1
- package/dist/esm/br-footer-category.entry.js +108 -0
- package/dist/esm/br-footer-category.entry.js.map +1 -0
- package/dist/esm/br-footer-item.entry.js +50 -0
- package/dist/esm/br-footer-item.entry.js.map +1 -0
- package/dist/esm/br-footer-legal.entry.js +41 -0
- package/dist/esm/br-footer-legal.entry.js.map +1 -0
- package/dist/esm/br-footer-logo.entry.js +72 -0
- package/dist/esm/br-footer-logo.entry.js.map +1 -0
- package/dist/esm/br-footer-social.entry.js +55 -0
- package/dist/esm/br-footer-social.entry.js.map +1 -0
- package/dist/esm/br-footer.entry.js +47 -0
- package/dist/esm/br-footer.entry.js.map +1 -0
- package/dist/esm/br-input.br-radio.entry.js.map +1 -1
- package/dist/esm/br-input_2.entry.js +33 -4
- package/dist/esm/br-input_2.entry.js.map +1 -1
- package/dist/esm/br-item.entry.js +2 -2
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-loading.entry.js +2 -2
- package/dist/esm/br-loading.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +2 -2
- package/dist/esm/br-message.entry.js.map +1 -1
- package/dist/esm/br-select.entry.js +2 -2
- package/dist/esm/br-select.entry.js.map +1 -1
- package/dist/esm/br-step-item.entry.js +2 -2
- package/dist/esm/br-step-item.entry.js.map +1 -1
- package/dist/esm/br-step.entry.js +2 -2
- package/dist/esm/br-step.entry.js.map +1 -1
- package/dist/esm/br-switch.entry.js +2 -2
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-tab-item.entry.js +74 -0
- package/dist/esm/br-tab-item.entry.js.map +1 -0
- package/dist/esm/{br-collapse.entry.js → br-tab.entry.js} +254 -60
- package/dist/esm/br-tab.entry.js.map +1 -0
- package/dist/esm/br-table-cell.entry.js +79 -0
- package/dist/esm/br-table-cell.entry.js.map +1 -0
- package/dist/esm/br-table-header-cell.entry.js +68 -0
- package/dist/esm/br-table-header-cell.entry.js.map +1 -0
- package/dist/esm/br-table-header-row.entry.js +42 -0
- package/dist/esm/br-table-header-row.entry.js.map +1 -0
- package/dist/esm/br-table-row.entry.js +34 -0
- package/dist/esm/br-table-row.entry.js.map +1 -0
- package/dist/esm/br-table.entry.js +42 -0
- package/dist/esm/br-table.entry.js.map +1 -0
- 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 +2 -2
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-upload.entry.js +2 -2
- package/dist/esm/br-upload.entry.js.map +1 -1
- package/dist/esm/helpers-BRKK5nMe.js +21 -0
- package/dist/esm/helpers-BRKK5nMe.js.map +1 -0
- package/dist/esm/index-ClsF4De3.js +58 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +1418 -148
- package/dist/hydrate/index.mjs +1418 -148
- package/dist/types/components/button/button.d.ts +1 -0
- package/dist/types/components/collapse/collapse.d.ts +73 -9
- package/dist/types/components/footer/footer.d.ts +37 -0
- package/dist/types/components/footer-category/footer-category.d.ts +81 -0
- package/dist/types/components/footer-item/footer-item.d.ts +39 -0
- package/dist/types/components/footer-legal/footer-legal.d.ts +24 -0
- package/dist/types/components/footer-logo/footer-logo.d.ts +49 -0
- package/dist/types/components/footer-social/footer-social.d.ts +38 -0
- package/dist/types/components/list/list.d.ts +39 -1
- package/dist/types/components/radio/radio.d.ts +8 -0
- package/dist/types/components/tab/tab.d.ts +103 -0
- package/dist/types/components/tab-item/tab-item.d.ts +52 -0
- package/dist/types/components/table/table.d.ts +27 -0
- package/dist/types/components/table-cell/table-cell.d.ts +50 -0
- package/dist/types/components/table-header-cell/table-header-cell.d.ts +39 -0
- package/dist/types/components/table-header-row/table-header-row.d.ts +27 -0
- package/dist/types/components/table-row/table-row.d.ts +19 -0
- package/dist/types/components.d.ts +772 -10
- package/dist/types/utils/css-variables.d.ts +5 -0
- package/dist/types/utils/helpers.d.ts +8 -0
- package/dist/types/utils/types.d.ts +1 -0
- 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-checkbox.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-checkgroup.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-divider.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-dropdown.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-footer-category.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-footer-item.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-footer-legal.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-footer-logo.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-footer-social.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-footer.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-input.br-radio.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-select.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tab-item.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-tab.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-table-cell.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-table-header-cell.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-table-header-row.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-table-row.entry.esm.js.map +1 -0
- package/dist/webcomponents/br-table.entry.esm.js.map +1 -0
- 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-upload.entry.esm.js.map +1 -1
- package/dist/webcomponents/p-0d558b53.entry.js +164 -0
- package/dist/webcomponents/p-264546b9.entry.js +72 -0
- package/dist/webcomponents/p-264546b9.entry.js.map +1 -0
- package/dist/webcomponents/p-290d85de.entry.js +61 -0
- package/dist/webcomponents/p-290d85de.entry.js.map +1 -0
- package/dist/webcomponents/p-2c34874f.entry.js +210 -0
- package/dist/webcomponents/p-2c34874f.entry.js.map +1 -0
- package/dist/webcomponents/p-2d0ea474.entry.js +52 -0
- package/dist/webcomponents/p-2d0ea474.entry.js.map +1 -0
- package/dist/webcomponents/p-2f53eae4.entry.js +79 -0
- package/dist/webcomponents/p-2f53eae4.entry.js.map +1 -0
- package/dist/webcomponents/p-329b8988.entry.js +167 -0
- package/dist/webcomponents/p-3565a60d.entry.js +153 -0
- package/dist/webcomponents/p-3565a60d.entry.js.map +1 -0
- package/dist/webcomponents/p-356d2ed1.entry.js +399 -0
- package/dist/webcomponents/p-356d2ed1.entry.js.map +1 -0
- package/dist/webcomponents/p-39b2018d.entry.js +149 -0
- package/dist/webcomponents/p-3dede3fc.entry.js +145 -0
- package/dist/webcomponents/p-3ffdd86d.entry.js +117 -0
- package/dist/webcomponents/p-3ffdd86d.entry.js.map +1 -0
- package/dist/webcomponents/p-43d52598.entry.js +376 -0
- package/dist/webcomponents/p-4a7f95ce.entry.js +255 -0
- package/dist/webcomponents/p-4f7a4a8c.entry.js +83 -0
- package/dist/webcomponents/p-4f7a4a8c.entry.js.map +1 -0
- package/dist/webcomponents/p-52f26deb.entry.js +484 -0
- package/dist/webcomponents/p-52f26deb.entry.js.map +1 -0
- package/dist/webcomponents/p-564e2ed1.entry.js +89 -0
- package/dist/webcomponents/p-564e2ed1.entry.js.map +1 -0
- package/dist/webcomponents/p-59eecde7.entry.js +343 -0
- package/dist/webcomponents/p-59eecde7.entry.js.map +1 -0
- package/dist/webcomponents/p-62527cde.entry.js +258 -0
- package/dist/webcomponents/p-62527cde.entry.js.map +1 -0
- package/dist/webcomponents/p-774ba96e.entry.js +51 -0
- package/dist/webcomponents/p-774ba96e.entry.js.map +1 -0
- package/dist/webcomponents/p-7a41ff6c.entry.js +61 -0
- package/dist/webcomponents/p-7a41ff6c.entry.js.map +1 -0
- package/dist/webcomponents/p-7e15d753.entry.js +282 -0
- package/dist/webcomponents/p-8939b230.entry.js +297 -0
- package/dist/webcomponents/p-8939b230.entry.js.map +1 -0
- package/dist/webcomponents/p-8e8f9f78.entry.js +169 -0
- package/dist/webcomponents/p-923d0ee2.entry.js +2369 -0
- package/dist/webcomponents/p-923d0ee2.entry.js.map +1 -0
- package/dist/webcomponents/p-9c435cb9.entry.js +88 -0
- package/dist/webcomponents/p-BRKK5nMe.js +22 -0
- package/dist/webcomponents/p-BRKK5nMe.js.map +1 -0
- package/dist/webcomponents/p-bf7f634f.entry.js +86 -0
- package/dist/webcomponents/p-bf7f634f.entry.js.map +1 -0
- package/dist/webcomponents/p-c473e6fd.entry.js +277 -0
- package/dist/webcomponents/{p-36231217.entry.js.map → p-c473e6fd.entry.js.map} +1 -1
- package/dist/webcomponents/p-c47722eb.entry.js +44 -0
- package/dist/webcomponents/p-c47722eb.entry.js.map +1 -0
- package/dist/webcomponents/p-ccbd8201.entry.js +105 -0
- package/dist/webcomponents/p-d8efe09f.entry.js +108 -0
- package/dist/webcomponents/p-d8efe09f.entry.js.map +1 -0
- package/dist/webcomponents/p-e267327f.entry.js +141 -0
- package/dist/webcomponents/webcomponents.esm.js +139 -78
- package/dist/webcomponents.html-custom-data.json +147 -4
- package/package.json +1 -1
- package/dist/cjs/br-collapse.cjs.entry.js.map +0 -1
- package/dist/cjs/br-collapse.entry.cjs.js.map +0 -1
- package/dist/cjs/br-list.cjs.entry.js +0 -90
- package/dist/cjs/br-list.cjs.entry.js.map +0 -1
- package/dist/cjs/br-list.entry.cjs.js.map +0 -1
- package/dist/components/p-BQZa6fK2.js +0 -198
- package/dist/components/p-BQb4_NfQ.js +0 -166
- package/dist/components/p-BQb4_NfQ.js.map +0 -1
- package/dist/components/p-CAjrcMpR.js +0 -154
- package/dist/components/p-CAjrcMpR.js.map +0 -1
- package/dist/components/p-DP5hSLC1.js +0 -130
- package/dist/components/p-DP5hSLC1.js.map +0 -1
- package/dist/components/p-DvG8eiYP.js +0 -285
- package/dist/components/p-ZjuPhQfh.js +0 -2270
- package/dist/components/p-sndAoOGI.js +0 -386
- package/dist/components/p-sndAoOGI.js.map +0 -1
- package/dist/esm/br-collapse.entry.js.map +0 -1
- package/dist/esm/br-list.entry.js +0 -88
- package/dist/esm/br-list.entry.js.map +0 -1
- package/dist/webcomponents/br-collapse.entry.esm.js.map +0 -1
- package/dist/webcomponents/br-list.entry.esm.js.map +0 -1
- package/dist/webcomponents/p-2537ae9c.entry.js +0 -167
- package/dist/webcomponents/p-36231217.entry.js +0 -279
- package/dist/webcomponents/p-3c0f3cb4.entry.js +0 -169
- package/dist/webcomponents/p-477035e2.entry.js +0 -164
- package/dist/webcomponents/p-48996f81.entry.js +0 -282
- package/dist/webcomponents/p-520c5527.entry.js +0 -149
- package/dist/webcomponents/p-64df4b98.entry.js +0 -255
- package/dist/webcomponents/p-795c258e.entry.js +0 -105
- package/dist/webcomponents/p-94aa48d4.entry.js +0 -460
- package/dist/webcomponents/p-94aa48d4.entry.js.map +0 -1
- package/dist/webcomponents/p-94aab132.entry.js +0 -141
- package/dist/webcomponents/p-9cf1963e.entry.js +0 -145
- package/dist/webcomponents/p-9cfc8db7.entry.js +0 -399
- package/dist/webcomponents/p-9cfc8db7.entry.js.map +0 -1
- package/dist/webcomponents/p-bfb1bd71.entry.js +0 -258
- package/dist/webcomponents/p-bfb1bd71.entry.js.map +0 -1
- package/dist/webcomponents/p-c5ac5216.entry.js +0 -210
- package/dist/webcomponents/p-c5ac5216.entry.js.map +0 -1
- package/dist/webcomponents/p-caa64d3d.entry.js +0 -111
- package/dist/webcomponents/p-caa64d3d.entry.js.map +0 -1
- package/dist/webcomponents/p-cd2933f6.entry.js +0 -153
- package/dist/webcomponents/p-cd2933f6.entry.js.map +0 -1
- package/dist/webcomponents/p-db618028.entry.js +0 -2362
- package/dist/webcomponents/p-db618028.entry.js.map +0 -1
- package/dist/webcomponents/p-ddee0a15.entry.js +0 -88
- package/dist/webcomponents/p-eecebb46.entry.js +0 -376
- package/dist/webcomponents/p-ff97c81f.entry.js +0 -145
- package/dist/webcomponents/p-ff97c81f.entry.js.map +0 -1
- /package/dist/components/{p-CyMSBO1R.js.map → p-BBbnZnbw.js.map} +0 -0
- /package/dist/components/{p-DvG8eiYP.js.map → p-BccYWJTM.js.map} +0 -0
- /package/dist/components/{p-BQZa6fK2.js.map → p-CLzPNRoE.js.map} +0 -0
- /package/dist/webcomponents/{p-477035e2.entry.js.map → p-0d558b53.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-2537ae9c.entry.js.map → p-329b8988.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-520c5527.entry.js.map → p-39b2018d.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-9cf1963e.entry.js.map → p-3dede3fc.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-eecebb46.entry.js.map → p-43d52598.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-64df4b98.entry.js.map → p-4a7f95ce.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-48996f81.entry.js.map → p-7e15d753.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-3c0f3cb4.entry.js.map → p-8e8f9f78.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-ddee0a15.entry.js.map → p-9c435cb9.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-795c258e.entry.js.map → p-ccbd8201.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-94aab132.entry.js.map → p-e267327f.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-message.entry.esm.js","sources":["../../packages/webcomponents/src/components/message/message.scss?tag=br-message&encapsulation=shadow","../../packages/webcomponents/src/components/message/message.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/message/message\";\n\n:host {\n display: block;\n\n
|
|
1
|
+
{"version":3,"file":"br-message.entry.esm.js","sources":["../../packages/webcomponents/src/components/message/message.scss?tag=br-message&encapsulation=shadow","../../packages/webcomponents/src/components/message/message.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/message/message\";\n\n:host {\n display: block;\n\n .icon-space {\n margin-right: var(--spacing-scale-half);\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/message?tab=designer).\n *\n * @slot default - Utilizado para inserir qualquer conteúdo que será exibido no corpo da mensagem.\n */\n@Component({\n tag: 'br-message',\n styleUrl: 'message.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Message {\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: HTMLBrMessageElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Define o título da mensagem, que é exibido no início, acima da mensagem principal.\n * Este título serve para destacar a mensagem textual. Não é aplicável para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly messageTitle: 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 = `br-message-${messageId++}`\n\n /**\n * Define o texto da mensagem que será exibido.\n * Este é o conteúdo principal da mensagem. A propriedade `message` é obrigatória e deve ser fornecida para que a mensagem apareça.\n */\n @Prop({ reflect: true }) readonly message!: string\n\n /**\n * Se definido como verdadeiro, o título da mensagem será exibido na mesma linha que a mensagem principal.\n * Isso pode ser útil para criar um layout onde o título e a mensagem estão alinhados horizontalmente.\n */\n @Prop({ reflect: true }) readonly isInline: boolean = false\n\n /**\n * Se definido como verdadeiro, um botão de fechar será exibido para permitir que o usuário feche a mensagem.\n * O fechamento emitirá o evento `brDidClose`, mas não removerá automaticamente o componente do DOM, a menos que a propriedade `autoRemove` também esteja definida como `true`.\n * Este recurso não está disponível para mensagens do tipo feedback.\n */\n @Prop({ reflect: true }) readonly isClosable: boolean = false\n\n /**\n * Controla o comportamento do fechamento do componente quando `isClosable` é verdadeiro.\n * - Se definido como `true`, o componente será automaticamente removido do DOM ao clicar no botão de fechar.\n * - Se definido como `false`, o componente permanecerá no DOM e apenas emitirá o evento `brDidClose`.\n *\n * Esta propriedade não tem efeito se `isClosable` for `false`.\n * O valor padrão é `false`.\n */\n @Prop({ reflect: true }) autoRemove: boolean = false\n\n /**\n * Se definido como verdadeiro, um ícone associado à mensagem será exibido.\n * Use esta propriedade para mostrar ou ocultar o ícone da mensagem conforme necessário.\n */\n @Prop({ reflect: true }) readonly showIcon: boolean = false\n\n /**\n * Define se a mensagem é do tipo feedback, geralmente usada para fornecer contexto adicional sobre ações do usuário.\n * Exemplos incluem mensagens de validação em campos de formulário. Não disponível para mensagens que não sejam de feedback.\n */\n @Prop({ reflect: true }) readonly isFeedback: boolean = false\n\n /**\n * Define o estado do message.\n * Os possíveis valores são:\n * - 'info': Mensagem informativa.\n * - 'warning': Mensagem de aviso.\n * - 'danger': Mensagem de erro ou alerta.\n * - 'success': Mensagem de sucesso.\n * O valor padrão é 'info'.\n */\n @Prop({ reflect: true }) readonly state: 'info' | 'warning' | 'danger' | 'success' = 'info'\n\n /** Evento emitido quando o usuário fecha a mensagem, se closable for true. */\n @Event() brDidClose: EventEmitter\n\n private readonly dismissHandler = () => {\n this.brDidClose.emit()\n if (this.autoRemove) {\n this.el.remove()\n }\n }\n\n private checkIconState() {\n const iconMap = {\n success: 'fa-solid:check-circle',\n warning: 'fa-solid:exclamation-triangle',\n danger: 'fa-solid:times-circle',\n info: 'fa-solid:info-circle',\n }\n return iconMap[this.state] || 'check-circle' // Valor padrão se não encontrado\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-message': true,\n [this.state]: true,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isFeedback ? (\n <span class={`feedback ${this.state}`} role=\"alert\" id={this.customId}>\n {this.showIcon ? <br-icon class=\"icon-space\" icon-name={this.checkIconState()}></br-icon> : null}\n {this.message && this.message.length > 0 ? this.message : <slot></slot>}\n </span>\n ) : (\n <div class={this.getCssClassMap()} role=\"alert\" id={this.customId}>\n {this.showIcon && (\n <div class=\"icon\">\n <br-icon icon-name={this.checkIconState()} height=\"20\" aria-hidden=\"true\"></br-icon>\n </div>\n )}\n <div class=\"content\" role=\"alert\">\n {this.message && this.message.length > 0 ? (\n <div>\n {this.messageTitle && <span class=\"message-title\">{this.messageTitle}</span>}\n {this.messageTitle && !this.isInline && <br />}\n {this.message && <span class=\"message-body\">{this.message}</span>}\n </div>\n ) : (\n <div>\n {this.messageTitle && this.isInline && <strong>{this.messageTitle}</strong>}\n {this.messageTitle && !this.isInline && <br />}\n <slot></slot>\n </div>\n )}\n </div>\n {this.isClosable && !this.isFeedback && (\n <div class=\"close\">\n <br-button shape=\"circle\" type=\"button\" aria-label=\"Fechar a mensagem\" onClick={this.dismissHandler}>\n <br-icon icon-name=\"fa-solid:times\" aria-hidden=\"true\"></br-icon>\n </br-button>\n </div>\n )}\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet messageId = 0\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-select.entry.esm.js","sources":["../../packages/webcomponents/src/components/select/select.scss?tag=br-select&encapsulation=shadow","../../packages/webcomponents/src/components/select/select.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/select/select\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = ''\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false\n\n /**\n * Define as opções do componente de seleção.\n */\n @Prop({ reflect: true }) options: { label: string; value: string; selected?: boolean }[]\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos'\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos'\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-select-${selectId++}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = ''\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n */\n @Event() brDidSelectChange: EventEmitter\n\n @Watch('options')\n synchronizeSelect() {\n try {\n let parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n if (typeof this.options === 'string') {\n try {\n const jsonData = JSON.parse(this.options)\n if (Array.isArray(jsonData)) {\n parsedOptions = jsonData\n } else {\n throw new Error('JSON inválido: deve ser um array')\n }\n } catch (error) {\n console.error('Erro ao converter options para JSON:', error.message)\n parsedOptions = []\n }\n } else if (Array.isArray(this.options)) {\n parsedOptions = this.options\n }\n\n // Sanitiza as opções (remove opções inválidas, etc.)\n this.parsedOptions = parsedOptions\n\n // Atualiza o estado do componente\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.emitSelectedOptions()\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error)\n this.parsedOptions = []\n }\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen\n this.synchronizeSelect()\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n /**\n * Fecha a lista suspensa (`dropdown`) do `br-select` quando o usuário clica fora do componente.\n * O listener global é adicionado no `componentDidLoad` e removido no `disconnectedCallback` para evitar vazamentos de memória.\n * Se a lista estiver aberta (`this.isExpanded`) e o clique ocorrer fora (`!this.el.contains(target)`), ela é fechada.\n * A reatividade do StencilJS garante a atualização automática da interface.\n * A arrow function (`=>`) mantém o contexto correto de `this` ao ser usada como callback.\n *\n * @param {MouseEvent} event O evento de clique.\n * @returns {void}\n */\n private readonly handleClickOutside = (event: MouseEvent) => {\n const target = event.target as HTMLElement\n if (this.isExpanded && !this.el.contains(target)) {\n this.isExpanded = false\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('next')\n break\n case 'ArrowUp':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('previous')\n break\n case 'Escape':\n this.closeSelect()\n this.resetFocus()\n break\n case 'Enter':\n this.toggleOpen()\n break\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault()\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus()\n break\n case 'ArrowUp':\n this.focusItemInDirection('previous')\n break\n case 'ArrowDown':\n this.focusItemInDirection('next')\n break\n default:\n break\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleSelection(index)\n } else if (event.key === 'Escape') {\n this.closeSelect()\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.toggleSelectAll()\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.closeSelect()\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLElement\n input.focus()\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length\n if (this.isMultiple) itemCount += 1\n\n this.focusedIndex =\n direction === 'next' ? (this.focusedIndex + 1) % itemCount : (this.focusedIndex - 1 + itemCount) % itemCount\n\n this.focusItem(this.focusedIndex)\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item')\n if (items[index]) {\n const item = items[index] as HTMLElement\n item.focus()\n }\n }\n\n private openSelect() {\n this.isExpanded = true\n }\n\n private closeSelect() {\n this.isExpanded = false\n // Resetar o índice focado ao fechar o select\n this.focusedIndex = -1\n }\n\n private handleSelection(index: number) {\n if (index < 0 || index >= this.parsedOptions.length) {\n return\n }\n\n if (this.isMultiple) {\n const updatedOptions = [...this.parsedOptions]\n updatedOptions[index].selected = !updatedOptions[index].selected\n this.parsedOptions = updatedOptions\n } else {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: false }))\n updatedOptions[index].selected = true\n this.parsedOptions = updatedOptions\n this.isExpanded = false\n }\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n this.updateSelectedAllState()\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter((option) => option.selected))\n }\n\n private getStringValue(options: { label: string; value: string; selected?: boolean }[]) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : ''\n return `${firstSelected}${howManySelected}`\n } else {\n return firstSelected\n }\n }\n return ''\n }\n\n private emitSelectedOptions() {\n const selectedOptions = this.parsedOptions\n .filter((option) => option.selected === true)\n .map((option) => option.label ?? option.value)\n\n this.brDidSelectChange.emit(selectedOptions)\n\n // Atualiza o valor do form associado\n this.elementInternals.setFormValue(JSON.stringify(selectedOptions))\n }\n\n private updateSelectedAllState() {\n const allSelected = this.parsedOptions.every((option) => option.selected)\n this.isAllSelected = allSelected\n }\n\n private toggleSelectAll() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: !this.isAllSelected }))\n this.parsedOptions = updatedOptions\n this.isAllSelected = !this.isAllSelected\n\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n }\n\n private renderInput() {\n return (\n <br-input\n value={this.inputValue}\n label={this.label}\n placeholder={this.placeholder}\n readonly\n onClick={() => this.toggleOpen()}\n onKeyDown={(event) => this.handleKeydownOnInput(event)}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon\n slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\"\n ></br-icon>\n </br-input>\n )\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div\n class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n onKeyDown={(event) => this.handleSelectAllKeyDown(event)}\n onClick={() => this.toggleSelectAll()}\n >\n <br-checkbox\n name={`checkbox-${this.customId}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n onCheckedChange={() => this.toggleSelectAll()}\n ></br-checkbox>\n </div>\n )\n }\n\n private renderOptions() {\n return this.parsedOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''}`}\n key={`${option.label}-${this.customId}`}\n role=\"option\"\n tabindex={this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n onClick={() => this.handleSelection(index)}\n onKeyDown={(event) => this.handleKeydownOnItem(event, index)}\n >\n {this.isMultiple ? (\n <br-checkbox\n name={`checkbox-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n ) : (\n <br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n )}\n </div>\n ))\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.customId}`\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n async toggleOpen() {\n this.isExpanded = !this.isExpanded\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n render() {\n return (\n <div class={this.getCssClassMap()} id={this.getComputedId()}>\n {this.renderInput()}\n\n {this.isExpanded && (\n <br-list tabindex={-1} onKeyDown={(event) => this.handleKeydownOnList(event)}>\n {this.isMultiple && this.renderSelectAllCheckbox()}\n {this.renderOptions()}\n </br-list>\n )}\n </div>\n )\n }\n}\n\nlet selectId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,SAAS,GAAG,wzpEAAwzpE;;MCU7zpE,MAAM,GAAA,MAAA;;;;;;;;;;;;;AAOE,IAAA,gBAAgB;AAEnC;;AAEG;AACsB,IAAA,KAAK;AAE9B;;AAEG;IACsB,WAAW,GAAW,EAAE;AAEjD;;AAEG;IACsB,UAAU,GAAY,KAAK;AAEpD;;AAEG;AACsB,IAAA,OAAO;AAEhC;;AAEG;IACsB,cAAc,GAAW,kBAAkB;AAEpE;;AAEG;IACsB,gBAAgB,GAAW,qBAAqB;AAEzE;;AAEG;IACsB,cAAc,GAAY,KAAK;AAExD;;AAEG;IACsB,MAAM,GAAY,KAAK;AAEhD;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,CAAA,UAAA,EAAa,QAAQ,EAAE,EAAE;;;IAIrE,aAAa,GAA2D,EAAE;;IAG1E,UAAU,GAAW,EAAE;;IAGvB,aAAa,GAAY,KAAK;;IAG9B,UAAU,GAAY,KAAK;;IAG3B,YAAY,GAAW,EAAE;AAElC;;AAEG;AACM,IAAA,iBAAiB;IAG1B,iBAAiB,GAAA;AACf,QAAA,IAAI;YACF,IAAI,aAAa,GAA2D,EAAE;AAC9E,YAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AACpC,gBAAA,IAAI;oBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBAC3B,aAAa,GAAG,QAAQ;;yBACnB;AACL,wBAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;;gBAErD,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,OAAO,CAAC;oBACpE,aAAa,GAAG,EAAE;;;iBAEf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtC,gBAAA,aAAa,GAAG,IAAI,CAAC,OAAO;;;AAI9B,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;YAGlC,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,mBAAmB,EAAE;;QAC1B,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;;IAI3B,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM;QAC7B,IAAI,CAAC,iBAAiB,EAAE;;IAG1B,gBAAgB,GAAA;QACd,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;;IAG7D,oBAAoB,GAAA;QAClB,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC;;AAGhE;;;;;;;;;AASG;AACc,IAAA,kBAAkB,GAAG,CAAC,KAAiB,KAAI;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;AAC1C,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAE3B,KAAC;AAEO,IAAA,oBAAoB,CAAC,KAAoB,EAAA;AAC/C,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,KAAK;gBACR,IAAI,CAAC,WAAW,EAAE;gBAClB;AACF,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACpB,IAAI,CAAC,UAAU,EAAE;;AAEnB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gBACjC;AACF,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACpB,IAAI,CAAC,UAAU,EAAE;;AAEnB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBACrC;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,UAAU,EAAE;gBACjB;AACF,YAAA,KAAK,OAAO;gBACV,IAAI,CAAC,UAAU,EAAE;gBACjB;;;AAKE,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QAC9C,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,EAAE;gBACjB;AACF,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBACrC;AACF,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gBACjC;;;IAME,mBAAmB,CAAC,KAAoB,EAAE,KAAa,EAAA;AAC7D,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;AACtB,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,WAAW,EAAE;;;AAId,IAAA,sBAAsB,CAAC,KAAoB,EAAA;AACjD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE;;AACjB,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACjC,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,WAAW,EAAE;;;IAId,UAAU,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAgB;QACzE,KAAK,CAAC,KAAK,EAAE;;AAGP,IAAA,oBAAoB,CAAC,SAA8B,EAAA;AACzD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;QACzC,IAAI,IAAI,CAAC,UAAU;YAAE,SAAS,IAAI,CAAC;AAEnC,QAAA,IAAI,CAAC,YAAY;AACf,YAAA,SAAS,KAAK,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,SAAS,IAAI,SAAS;AAE9G,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG3B,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC7D,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAgB;YACxC,IAAI,CAAC,KAAK,EAAE;;;IAIR,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;IAGhB,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAEvB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;;AAGhB,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACnD;;AAGF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C,YAAA,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ;AAChE,YAAA,IAAI,CAAC,aAAa,GAAG,cAAc;;aAC9B;YACL,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3F,YAAA,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI;AACrC,YAAA,IAAI,CAAC,aAAa,GAAG,cAAc;AACnC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;QAEzB,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,sBAAsB,EAAE;;IAGvB,qBAAqB,GAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;;AAGvF,IAAA,cAAc,CAAC,OAA+D,EAAA;AACpF,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1D,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE;AAC9E,gBAAA,OAAO,CAAG,EAAA,aAAa,CAAG,EAAA,eAAe,EAAE;;iBACtC;AACL,gBAAA,OAAO,aAAa;;;AAGxB,QAAA,OAAO,EAAE;;IAGH,mBAAmB,GAAA;AACzB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC;aAC1B,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,KAAK,IAAI;AAC3C,aAAA,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AAEhD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC;;AAG5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;;IAG7D,sBAAsB,GAAA;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC;AACzE,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW;;IAG1B,eAAe,GAAA;QACrB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACzG,QAAA,IAAI,CAAC,aAAa,GAAG,cAAc;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa;QAExC,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,mBAAmB,EAAE;;IAGpB,WAAW,GAAA;QACjB,QACE,gBACE,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAA,IAAA,EACR,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,EAChC,SAAS,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAA,EAErD,IAAI,CAAC,cAAc,IAAI,CAAS,CAAA,SAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAW,WAAA,EAAA,iBAAiB,EAAa,aAAA,EAAA,MAAM,EAAW,CAAA,EACtG,CACE,CAAA,SAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACF,WAAA,EAAA,IAAI,CAAC,UAAU,GAAG,mBAAmB,GAAG,qBAAqB,EACxE,MAAM,EAAC,IAAI,iBACC,MAAM,EAAA,CACT,CACF;;IAIP,uBAAuB,GAAA;QAC7B,QACE,CACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAuB,oBAAA,EAAA,IAAI,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,EAC3D,UAAA,EAAA,UAAU,EACnB,QAAQ,EAAC,IAAI,EACb,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,aAAa,EACjC,SAAS,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EACxD,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,EAAA,EAErC,CACE,CAAA,aAAA,EAAA,EAAA,IAAI,EAAE,YAAY,IAAI,CAAC,QAAQ,CAAA,CAAE,EACjC,KAAK,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,EACvE,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,eAAe,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,EAChC,CAAA,CACX;;IAIF,aAAa,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAC1C,CACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,CAAW,QAAA,EAAA,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAA,CAAE,EACrD,GAAG,EAAE,CAAA,EAAG,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,EACvC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,KAAK,GAAG,CAAC,GAAG,EAAE,mBAC/B,MAAM,CAAC,QAAQ,EAC9B,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAC1C,SAAS,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,EAE3D,EAAA,IAAI,CAAC,UAAU,IACd,CACE,CAAA,aAAA,EAAA,EAAA,IAAI,EAAE,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAE,CAAA,EAC1C,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EACnC,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,EACjC,eAAe,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAClD,CAAA,KAEF,gBACE,WAAW,EAAC,0BAA0B,EACtC,IAAI,EAAE,CAAA,MAAA,EAAS,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,QAAQ,CAAE,CAAA,EACvC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EACnC,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,EACjC,eAAe,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAClD,CACH,CACG,CACP,CAAC;;AAGJ;;AAEG;IACK,aAAa,GAAA;QACnB,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,IAAI,CAAC,QAAQ,CAAA,CAAE;;AAGjF;;AAEG;AAEH,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;;IAG5B,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,WAAW,EAAE,IAAI;SAClB;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAA,EACxD,IAAI,CAAC,WAAW,EAAE,EAElB,IAAI,CAAC,UAAU,KACd,gEAAS,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAA,EACzE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,EAAE,EACjD,IAAI,CAAC,aAAa,EAAE,CACb,CACX,CACG;;;;;;;AAKZ,IAAI,QAAQ,GAAG,CAAC;;;;;"}
|
|
1
|
+
{"version":3,"file":"br-select.entry.esm.js","sources":["../../packages/webcomponents/src/components/select/select.scss?tag=br-select&encapsulation=shadow","../../packages/webcomponents/src/components/select/select.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/select/select\";\n@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n\n .br-select br-list {\n background-color: var(--bg-color);\n box-shadow: var(--select-shadow);\n margin-top: -2px;\n max-height: 404px;\n overflow: auto;\n position: absolute;\n resize: none;\n width: 100%;\n z-index: 1;\n\n @include scrollbar;\n\n &:focus,\n &:active {\n color: var(--color-secondary-09);\n outline: none;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background: var(--color-secondary-07);\n }\n }\n\n .br-item br-radio::part(radio-input) {\n visibility: hidden;\n height: 0;\n width: 0;\n }\n\n .br-item br-radio::part(radio-label) {\n padding-left: var(--spacing-scale-base);\n position: relative;\n\n &::before,\n &::after {\n display: none;\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n@Component({\n tag: 'br-select',\n styleUrl: 'select.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Select {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrSelectElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Rótulo que indica o tipo de informação que deve ser selecionada.\n */\n @Prop({ reflect: true }) label: string\n\n /**\n * Texto auxiliar exibido antes de uma seleção.\n */\n @Prop({ reflect: true }) placeholder: string = ''\n\n /**\n * Habilita o modo múltiplo para selecionar várias opções.\n */\n @Prop({ reflect: true }) isMultiple: boolean = false\n\n /**\n * Define as opções do componente de seleção.\n */\n @Prop({ reflect: true }) options: { label: string; value: string; selected?: boolean }[]\n\n /**\n * Rótulo para selecionar todas as opções.\n */\n @Prop({ reflect: true }) selectAllLabel: string = 'Selecionar todos'\n\n /**\n * Rótulo para desmarcar todas as opções.\n */\n @Prop({ reflect: true }) unselectAllLabel: string = 'Desselecionar todos'\n\n /**\n * Exibe o ícone de busca no campo de entrada.\n */\n @Prop({ reflect: true }) showSearchIcon: boolean = false\n\n /**\n * Indica se a listagem de itens do select está expandida\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-select-${selectId++}`\n\n // Representa as opções do select disponíveis para renderização.\n // Cada opção contém `label`, `value` e o estado de seleção (`selected`).\n @State() parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n\n // Valor exibido no input, refletindo as opções selecionadas.\n @State() inputValue: string = ''\n\n // Indica se todas as opções estão selecionadas. Comportamento do checkbox \"Selecionar Todos\".\n @State() isAllSelected: boolean = false\n\n // Controla se a lista de opções do select está expandida (aberta) ou colapsada (fechada).\n @State() isExpanded: boolean = false\n\n // Armazena o índice do item atualmente focado, usado para navegação por teclado.\n @State() focusedIndex: number = -1\n\n /**\n * Evento emitido sempre que houver atualização nos itens selecionados.\n */\n @Event() brDidSelectChange: EventEmitter\n\n @Watch('options')\n synchronizeSelect() {\n try {\n let parsedOptions: { label: string; value: string; selected?: boolean }[] = []\n if (typeof this.options === 'string') {\n try {\n const jsonData = JSON.parse(this.options)\n if (Array.isArray(jsonData)) {\n parsedOptions = jsonData\n } else {\n throw new Error('JSON inválido: deve ser um array')\n }\n } catch (error) {\n console.error('Erro ao converter options para JSON:', error.message)\n parsedOptions = []\n }\n } else if (Array.isArray(this.options)) {\n parsedOptions = this.options\n }\n\n // Sanitiza as opções (remove opções inválidas, etc.)\n this.parsedOptions = parsedOptions\n\n // Atualiza o estado do componente\n this.updateSelectedOptions()\n this.updateSelectedAllState()\n this.emitSelectedOptions()\n } catch (error) {\n console.error('Erro ao processar as opções do select:', error)\n this.parsedOptions = []\n }\n }\n\n componentWillLoad() {\n this.isExpanded = this.isOpen\n this.synchronizeSelect()\n }\n\n componentDidLoad() {\n document.addEventListener('click', this.handleClickOutside)\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleClickOutside)\n }\n\n /**\n * Fecha a lista suspensa (`dropdown`) do `br-select` quando o usuário clica fora do componente.\n * O listener global é adicionado no `componentDidLoad` e removido no `disconnectedCallback` para evitar vazamentos de memória.\n * Se a lista estiver aberta (`this.isExpanded`) e o clique ocorrer fora (`!this.el.contains(target)`), ela é fechada.\n * A reatividade do StencilJS garante a atualização automática da interface.\n * A arrow function (`=>`) mantém o contexto correto de `this` ao ser usada como callback.\n *\n * @param {MouseEvent} event O evento de clique.\n * @returns {void}\n */\n private readonly handleClickOutside = (event: MouseEvent) => {\n const target = event.target as HTMLElement\n if (this.isExpanded && !this.el.contains(target)) {\n this.isExpanded = false\n }\n }\n\n private handleKeydownOnInput(event: KeyboardEvent) {\n switch (event.key) {\n case 'Tab':\n this.closeSelect()\n break\n case 'ArrowDown':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('next')\n break\n case 'ArrowUp':\n event.preventDefault()\n if (!this.isExpanded) {\n this.openSelect()\n }\n this.focusItemInDirection('previous')\n break\n case 'Escape':\n this.closeSelect()\n this.resetFocus()\n break\n case 'Enter':\n this.toggleOpen()\n break\n default:\n }\n }\n\n private handleKeydownOnList(event: KeyboardEvent) {\n event.preventDefault()\n switch (event.key) {\n case 'Tab':\n case 'Escape':\n this.resetFocus()\n break\n case 'ArrowUp':\n this.focusItemInDirection('previous')\n break\n case 'ArrowDown':\n this.focusItemInDirection('next')\n break\n default:\n break\n }\n }\n\n private handleKeydownOnItem(event: KeyboardEvent, index: number) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.handleSelection(index)\n } else if (event.key === 'Escape') {\n this.closeSelect()\n }\n }\n\n private handleSelectAllKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n this.toggleSelectAll()\n } else if (event.key === 'Escape') {\n event.preventDefault()\n this.closeSelect()\n }\n }\n\n private resetFocus() {\n const input = this.el.shadowRoot.querySelector('br-input') as HTMLElement\n input.focus()\n }\n\n private focusItemInDirection(direction: 'next' | 'previous') {\n let itemCount = this.parsedOptions.length\n if (this.isMultiple) itemCount += 1\n\n this.focusedIndex =\n direction === 'next' ? (this.focusedIndex + 1) % itemCount : (this.focusedIndex - 1 + itemCount) % itemCount\n\n this.focusItem(this.focusedIndex)\n }\n\n private focusItem(index: number) {\n const items = this.el.shadowRoot.querySelectorAll('.br-item')\n if (items[index]) {\n const item = items[index] as HTMLElement\n item.focus()\n }\n }\n\n private openSelect() {\n this.isExpanded = true\n }\n\n private closeSelect() {\n this.isExpanded = false\n // Resetar o índice focado ao fechar o select\n this.focusedIndex = -1\n }\n\n private handleSelection(index: number) {\n if (index < 0 || index >= this.parsedOptions.length) {\n return\n }\n\n if (this.isMultiple) {\n const updatedOptions = [...this.parsedOptions]\n updatedOptions[index].selected = !updatedOptions[index].selected\n this.parsedOptions = updatedOptions\n } else {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: false }))\n updatedOptions[index].selected = true\n this.parsedOptions = updatedOptions\n this.isExpanded = false\n }\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n this.updateSelectedAllState()\n }\n\n private updateSelectedOptions() {\n this.inputValue = this.getStringValue(this.parsedOptions.filter((option) => option.selected))\n }\n\n private getStringValue(options: { label: string; value: string; selected?: boolean }[]) {\n if (options.length > 0) {\n const firstSelected = options[0].label || options[0].value\n if (this.isMultiple) {\n const howManySelected = options.length > 1 ? ` + (${options.length - 1})` : ''\n return `${firstSelected}${howManySelected}`\n } else {\n return firstSelected\n }\n }\n return ''\n }\n\n private emitSelectedOptions() {\n const selectedOptions = this.parsedOptions\n .filter((option) => option.selected === true)\n .map((option) => option.label ?? option.value)\n\n this.brDidSelectChange.emit(selectedOptions)\n\n // Atualiza o valor do form associado\n this.elementInternals.setFormValue(JSON.stringify(selectedOptions))\n }\n\n private updateSelectedAllState() {\n const allSelected = this.parsedOptions.every((option) => option.selected)\n this.isAllSelected = allSelected\n }\n\n private toggleSelectAll() {\n const updatedOptions = this.parsedOptions.map((option) => ({ ...option, selected: !this.isAllSelected }))\n this.parsedOptions = updatedOptions\n this.isAllSelected = !this.isAllSelected\n\n this.updateSelectedOptions()\n this.emitSelectedOptions()\n }\n\n private renderInput() {\n return (\n <br-input\n value={this.inputValue}\n label={this.label}\n placeholder={this.placeholder}\n readonly\n onClick={() => this.toggleOpen()}\n onKeyDown={(event) => this.handleKeydownOnInput(event)}\n >\n {this.showSearchIcon && <br-icon slot=\"icon\" icon-name=\"fa-solid:search\" aria-hidden=\"true\"></br-icon>}\n <br-icon\n slot=\"action\"\n icon-name={this.isExpanded ? 'fa-solid:angle-up' : 'fa-solid:angle-down'}\n height=\"16\"\n aria-hidden=\"true\"\n ></br-icon>\n </br-input>\n )\n }\n\n private renderSelectAllCheckbox() {\n return (\n <div\n class={`br-item highlighted ${this.isAllSelected ? 'selected' : ''}`}\n data-all=\"data-all\"\n tabindex=\"-1\"\n role=\"option\"\n aria-selected={this.isAllSelected}\n onKeyDown={(event) => this.handleSelectAllKeyDown(event)}\n onClick={() => this.toggleSelectAll()}\n >\n <br-checkbox\n name={`checkbox-${this.customId}`}\n label={this.isAllSelected ? this.unselectAllLabel : this.selectAllLabel}\n checked={this.isAllSelected}\n onCheckedChange={() => this.toggleSelectAll()}\n ></br-checkbox>\n </div>\n )\n }\n\n private renderOptions() {\n return this.parsedOptions.map((option, index) => (\n <div\n class={`br-item ${option.selected ? 'selected' : ''}`}\n key={`${option.label}-${this.customId}`}\n role=\"option\"\n tabindex={this.focusedIndex === index ? 0 : -1}\n aria-selected={option.selected}\n onClick={() => this.handleSelection(index)}\n onKeyDown={(event) => this.handleKeydownOnItem(event, index)}\n >\n {this.isMultiple ? (\n <br-checkbox\n name={`checkbox-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n ) : (\n <br-radio\n exportparts=\"radio-input, radio-label\"\n name={`radio-${index}-${this.customId}`}\n label={option.label || option.value}\n checked={option.selected === true}\n onCheckedChange={() => this.handleSelection(index)}\n />\n )}\n </div>\n ))\n }\n\n /**\n * Determina um id para o radio.\n */\n private getComputedId() {\n return this.customId?.length > 0 ? this.customId : `br-select-${this.customId}`\n }\n\n /**\n * Inverte o valor da prop `isOpen`\n */\n @Method()\n async toggleOpen() {\n this.isExpanded = !this.isExpanded\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-select': true,\n }\n }\n\n render() {\n return (\n <div class={this.getCssClassMap()} id={this.getComputedId()}>\n {this.renderInput()}\n\n {this.isExpanded && (\n <br-list tabindex={-1} onKeyDown={(event) => this.handleKeydownOnList(event)}>\n {this.isMultiple && this.renderSelectAllCheckbox()}\n {this.renderOptions()}\n </br-list>\n )}\n </div>\n )\n }\n}\n\nlet selectId = 0\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-step-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/step-item/step-item.scss?tag=br-step-item&encapsulation=shadow","../../packages/webcomponents/src/components/step-item/step-item.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n\n.disabled-host {\n pointer-events: none;\n}\n\n.step-button {\n position: relative;\n z-index: 2;\n}\n\n.mode-controller {\n border: 1px solid var(--gray-20);\n width: 14px;\n height: 14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: var(--gray-20);\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n\n &:hover {\n background-image: linear-gradient(\n rgba(var(--interactive-rgb), var(--hover)),\n rgba(var(--interactive-rgb), var(--hover))\n );\n }\n}\n\n[data-active].mode-controller {\n border: 1px solid var(--gray-20);\n background-color: var(--active);\n}\n\n.step-item-container-horizontal {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n &.label-top::after {\n content: \"\";\n left: 0;\n bottom: 50%;\n }\n\n &.label-bottom::after {\n content: \"\";\n left: 0;\n bottom: 86%;\n }\n\n &.label-left::after {\n bottom: 68%;\n width: 70%;\n left: 26%;\n }\n\n &.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 42%;\n }\n}\n\n.step-item-container-vertical {\n display: flex;\n flex-direction: row;\n max-width: max-content;\n\n &::after {\n content: \"\";\n position: relative;\n height: 100%;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 2px;\n right: 50%;\n }\n\n &.label-bottom::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-top::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-left::after {\n right: 16%;\n top: 12%;\n }\n\n &.label-right::after {\n top: 12%;\n right: 86%;\n }\n}\n\n.step-item-content {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: auto;\n min-height: 100px;\n min-width: 80px;\n justify-content: center;\n\n &.label-top {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n &.label-bottom {\n flex-direction: column;\n align-items: center;\n }\n\n &.label-left {\n flex-direction: row-reverse;\n align-items: center;\n background-color: #fff;\n }\n\n &.label-right {\n flex-direction: row;\n align-items: center;\n background-color: #fff;\n }\n}\n\n.controller {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: 0 5px;\n min-height: unset;\n min-width: unset;\n}\n\n.step-item-container-vertical .step-item-content.label-right,\n.step-item-container-vertical .step-item-content.label-left {\n background-color: transparent;\n}\n\n.step-item-indicator-area {\n display: inline-block;\n position: relative;\n z-index: 1;\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 4;\n border-radius: 50%;\n transform: translate(25px, -5px);\n color: white;\n font-size: 16px;\n font-weight: 900;\n width: 29px;\n height: 29px;\n }\n\n .icon.no-content {\n transform: translate(0, 0);\n width: 41px;\n height: 41px;\n }\n}\n\n[data-active].step-item-indicator-area .icon.no-content {\n transform: translate(5px, 5px);\n width: 30px;\n height: 30px;\n}\n\n.success {\n background-color: var(--success);\n}\n\n.info {\n background-color: var(--info);\n}\n\n.danger {\n background-color: var(--danger);\n}\n\n.warning {\n background-color: var(--warning);\n}\n\n.step-item-label-area {\n padding: 0;\n display: flex;\n\n &.label-left {\n padding: 0 14px;\n }\n\n &.label-right {\n padding: 0 14px;\n }\n}\n\n.step-item-label-area > span {\n font-size: var(--font-size-scale-up-01);\n font-weight: var(--font-weight-medium);\n color: var(--interactive);\n}\n\n.vertical.step-item-label-area {\n &.label-top {\n padding-top: 14px;\n }\n\n &.label-bottom {\n padding-bottom: 14px;\n }\n}\n\n.horizontal.step-item-label-area {\n &.label-top {\n padding-bottom: 14px;\n }\n\n &.label-bottom {\n padding-top: 14px;\n }\n}\n\n.step-item-container-vertical .step-item-content.label-right.last .step-item-indicator-area::after,\n.step-item-container-vertical .step-item-content.label-left.last .step-item-indicator-area::after,\n.step-item-container-horizontal .step-item-content.label-bottom.last .step-item-indicator-area::after {\n display: none;\n}\n\n.step-item-container-vertical .step-item-content.label-top .step-item-label-area,\n.step-item-container-vertical .step-item-content.label-bottom .step-item-label-area {\n flex-direction: column;\n align-items: center;\n}\n\n.step-item-container-horizontal::after {\n content: \"\";\n position: relative;\n height: 2px;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 100%;\n left: 0;\n bottom: 75%;\n}\n\n.step-item-container-horizontal.last::after,\n.step-item-container-horizontal.controller::after,\n.step-item-container-vertical.last::after {\n content: \"\";\n height: 0;\n display: none;\n}\n\n.step-item-container-horizontal .step-item-content.label-left.timeline.last::after {\n content: \"\";\n position: absolute;\n width: 160px;\n height: 2px;\n background-color: var(--interactive);\n display: inline-block;\n right: calc(100% - 80px);\n bottom: 50%;\n z-index: -1;\n}\n\n.content-type-br-icon {\n color: var(--interactive);\n font-size: 16px;\n font-weight: 900;\n}\n\n[data-active] .content-type-br-icon {\n color: var(--interactive);\n color: #fff;\n}\n\n.button-controller {\n width: 15px;\n height: 15px;\n}\n\n/* Desktops grandes (até 1440px) */\n@media (width <= 1440px) {\n .step-item-container-horizontal.label-left::after {\n width: 50%;\n left: 48%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 48%;\n }\n}\n\n/* Laptops (até 1024px) */\n@media (width <= 1024px) {\n .step-item-container-horizontal.label-left::after {\n width: 34%;\n left: 58%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Tablets (até 768px) */\n@media (width <= 768px) {\n .step-item-container-horizontal.label-left::after {\n width: 22%;\n left: 76%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares grandes (até 425px) */\n@media (width <= 425px) {\n .step-item-container-horizontal.label-left::after {\n width: 20%;\n left: 80%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares médios (até 375px) */\n@media (width <= 375px) {\n .step-item-container-horizontal.label-left::after {\n width: 18%;\n left: 82%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares pequenos (até 320px) */\n@media (width <= 320px) {\n .step-item-container-horizontal.label-left::after {\n width: 16%;\n left: 85%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\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 { 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/step?tab=designer).\n *\n * @slot nomeado label-area: insere o conteúdo customizado dentro do botão que compõe o componente.\n */\n@Component({\n tag: 'br-step-item',\n styleUrl: 'step-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class StepItem {\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: HTMLBrStepItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".\n */\n @Prop({ reflect: true }) highlight?: 'success' | 'info' | 'danger' | 'warning'\n\n /**\n * Propriedade que define se o item Step está com estado ativo.\n */\n @Prop({ reflect: true }) active: boolean = false\n\n /**\n * Propriedade que define se o item Step está com estado desativado..\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propriedade Define o nome do ícone do componente BRIcon que será exibido como conteúdo do step item, propriedade funciona apenas quando o state contentType assume o valor br-icon.\n */\n @Prop({ reflect: true }) brIconName?: string = ''\n /**\n * Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon\n */\n\n @Prop({ reflect: true }) brIconAria: string = ''\n\n @State() showTimeLine: boolean = false\n @State() stepItemPositionStatus: 'first' | 'middle' | 'last' = 'first'\n @State() stepLayout: 'horizontal' | 'vertical' = 'horizontal'\n @State() labelPosition: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n @State() contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n @State() mode: 'controller' | 'step' = 'step'\n @State() content: string = ''\n @State() ariaLabelContent: string = ''\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n let accessibilityContent = ''\n let activeItem = ''\n if (this.contentType === 'slotted') {\n const slotedContent = this.el.lastElementChild\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${slotedContent.textContent} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${slotedContent.textContent} ${this.highLightAriaLabel[this.highlight]}`\n this.ariaLabelContent = accessibilityContent\n return\n }\n if (this.contentType === 'br-icon') {\n accessibilityContent =\n `passo ${this.content} ` + this.brIconAria + this.label + this.highLightAriaLabel[this.highlight]\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n return\n } else {\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${this.highLightAriaLabel[this.highlight]}`\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n }\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('role', 'option')\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n button.lastElementChild.setAttribute('aria-label', this.ariaLabelContent)\n }\n }\n\n /**\n * Watch que observa o valor da propriedade active, e ao alterar seu valor este método altera o valor do campo de acessibilidade aria-selected\n */\n @Watch('active')\n watchItemIsActive(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente\n */\n @Method()\n async setStepItemPositionStatus(value: 'first' | 'middle' | 'last') {\n this.stepItemPositionStatus = value\n }\n\n /**\n * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.\n */\n @Method()\n async handleShowTimeLine(value: boolean, layout) {\n this.showTimeLine = value\n this.stepLayout = layout\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado\n */\n @Method()\n async setLabelPosition(value: 'top' | 'right' | 'bottom' | 'left') {\n this.labelPosition = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem\n */\n @Method()\n async setContentType(value: 'default' | 'br-icon' | 'no-content' | 'slotted') {\n this.contentType = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.\n */\n @Method()\n async setMode(value: 'controller' | 'step') {\n this.mode = value\n }\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem\n */\n @Method()\n async setContent(value: string) {\n this.content = value\n }\n\n private getStepContainerClassMap(): CssClassMap {\n return {\n 'step-item-container-horizontal': this.stepLayout === 'horizontal',\n 'step-item-container-vertical': this.stepLayout === 'vertical',\n last: this.stepItemPositionStatus == 'last',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'label-bottom': this.labelPosition === 'bottom' && this.label !== '',\n controller: this.mode === 'controller',\n 'disabled-div': true,\n }\n }\n\n private getStepItemContentClassMap(): CssClassMap {\n return {\n 'step-item-content': true,\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n timeline: this.showTimeLine === true,\n middle: this.stepItemPositionStatus === 'middle',\n first: this.stepItemPositionStatus === 'first',\n controller: this.mode === 'controller',\n }\n }\n\n private getStepItemIndicatorAreaClassMap(): CssClassMap {\n return {\n 'step-item-indicator-area': true,\n }\n }\n\n private getStepItemLabelAreaClassMap(): CssClassMap {\n return {\n 'step-item-label-area': true,\n vertical: this.stepLayout === 'vertical',\n horizontal: this.stepLayout === 'horizontal',\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'no-label': this.label === '',\n }\n }\n\n private getHighlightClass(): CssClassMap {\n return {\n icon: true,\n success: this.highlight === 'success',\n info: this.highlight === 'info',\n warning: this.highlight === 'warning',\n danger: this.highlight === 'danger',\n 'no-content': this.contentType === 'no-content',\n }\n }\n\n private getStepItemIndicatorClass(): CssClassMap {\n return {\n 'step-button': true,\n controller: this.mode === 'controller',\n 'disabled-host': this.disabled,\n }\n }\n\n private highLightAriaLabel = {\n success: 'passo completo',\n info: 'passo com item informativo',\n warning: 'passo com alerta',\n danger: 'passo com erro',\n undefined: '',\n }\n\n private IconsName = {\n success: 'fa-check',\n info: 'fa-info-circle',\n warning: 'fa-exclamation-triangle',\n danger: 'fa-times',\n }\n\n render() {\n return (\n <Host>\n <div id=\"item-container\" class={this.getStepContainerClassMap()}>\n <div id=\"item-content\" class={this.getStepItemContentClassMap()}>\n <div id=\"indicator-area\" data-active={this.active} class={this.getStepItemIndicatorAreaClassMap()}>\n {this.mode === 'step' && this.highlight && (\n <div class={this.getHighlightClass()}>\n <br-icon\n icon-name={this.IconsName[this.highlight]}\n class={`${this.highlight === 'warning' && 'warning-color'}`}\n ></br-icon>\n </div>\n )}\n\n {this.mode === 'step' && (\n <br-button\n shape=\"circle\"\n emphasis=\"secondary\"\n isActive={this.active}\n class={this.getStepItemIndicatorClass()}\n >\n {this.contentType === 'no-content' && ''}\n {this.contentType === 'default' && this.content}\n {this.contentType === 'br-icon' && (\n <div>\n <br-icon icon-name={this.brIconName} class={'content-type-br-icon'}></br-icon>\n </div>\n )}\n {this.contentType === 'slotted' && <slot name={'content-area'}></slot>}\n </br-button>\n )}\n\n {this.mode === 'controller' && <button data-active={this.active} class={'mode-controller'}></button>}\n </div>\n <div id=\"label-area\" class={this.getStepItemLabelAreaClassMap()}>\n <span> {this.label} </span>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-step-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/step-item/step-item.scss?tag=br-step-item&encapsulation=shadow","../../packages/webcomponents/src/components/step-item/step-item.tsx"],"sourcesContent":[":host {\n display: flex;\n}\n\n.disabled-host {\n pointer-events: none;\n}\n\n.step-button {\n position: relative;\n z-index: 2;\n}\n\n.mode-controller {\n border: 1px solid var(--gray-20);\n width: 14px;\n height: 14px;\n cursor: pointer;\n border-radius: 50%;\n background-color: var(--gray-20);\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n\n &:hover {\n background-image: linear-gradient(\n rgba(var(--interactive-rgb), var(--hover)),\n rgba(var(--interactive-rgb), var(--hover))\n );\n }\n}\n\n[data-active].mode-controller {\n border: 1px solid var(--gray-20);\n background-color: var(--active);\n}\n\n.step-item-container-horizontal {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n\n &.label-top::after {\n content: \"\";\n left: 0;\n bottom: 50%;\n }\n\n &.label-bottom::after {\n content: \"\";\n left: 0;\n bottom: 86%;\n }\n\n &.label-left::after {\n bottom: 68%;\n width: 70%;\n left: 26%;\n }\n\n &.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 42%;\n }\n}\n\n.step-item-container-vertical {\n display: flex;\n flex-direction: row;\n max-width: max-content;\n\n &::after {\n content: \"\";\n position: relative;\n height: 100%;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 2px;\n right: 50%;\n }\n\n &.label-bottom::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-top::after {\n top: 50%;\n height: 70%;\n }\n\n &.label-left::after {\n right: 16%;\n top: 12%;\n }\n\n &.label-right::after {\n top: 12%;\n right: 86%;\n }\n}\n\n.step-item-content {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: auto;\n min-height: 100px;\n min-width: 80px;\n justify-content: center;\n\n &.label-top {\n flex-direction: column-reverse;\n align-items: center;\n }\n\n &.label-bottom {\n flex-direction: column;\n align-items: center;\n }\n\n &.label-left {\n flex-direction: row-reverse;\n align-items: center;\n background-color: #fff;\n }\n\n &.label-right {\n flex-direction: row;\n align-items: center;\n background-color: #fff;\n }\n}\n\n.controller {\n display: flex;\n position: relative;\n flex-grow: 1;\n margin: 0 5px;\n min-height: unset;\n min-width: unset;\n}\n\n.step-item-container-vertical .step-item-content.label-right,\n.step-item-container-vertical .step-item-content.label-left {\n background-color: transparent;\n}\n\n.step-item-indicator-area {\n display: inline-block;\n position: relative;\n z-index: 1;\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 4;\n border-radius: 50%;\n transform: translate(25px, -5px);\n color: white;\n font-size: 16px;\n font-weight: 900;\n width: 29px;\n height: 29px;\n }\n\n .icon.no-content {\n transform: translate(0, 0);\n width: 41px;\n height: 41px;\n }\n}\n\n[data-active].step-item-indicator-area .icon.no-content {\n transform: translate(5px, 5px);\n width: 30px;\n height: 30px;\n}\n\n.success {\n background-color: var(--success);\n}\n\n.info {\n background-color: var(--info);\n}\n\n.danger {\n background-color: var(--danger);\n}\n\n.warning {\n background-color: var(--warning);\n}\n\n.step-item-label-area {\n padding: 0;\n display: flex;\n\n &.label-left {\n padding: 0 14px;\n }\n\n &.label-right {\n padding: 0 14px;\n }\n}\n\n.step-item-label-area > span {\n font-size: var(--font-size-scale-up-01);\n font-weight: var(--font-weight-medium);\n color: var(--interactive);\n}\n\n.vertical.step-item-label-area {\n &.label-top {\n padding-top: 14px;\n }\n\n &.label-bottom {\n padding-bottom: 14px;\n }\n}\n\n.horizontal.step-item-label-area {\n &.label-top {\n padding-bottom: 14px;\n }\n\n &.label-bottom {\n padding-top: 14px;\n }\n}\n\n.step-item-container-vertical .step-item-content.label-right.last .step-item-indicator-area::after,\n.step-item-container-vertical .step-item-content.label-left.last .step-item-indicator-area::after,\n.step-item-container-horizontal .step-item-content.label-bottom.last .step-item-indicator-area::after {\n display: none;\n}\n\n.step-item-container-vertical .step-item-content.label-top .step-item-label-area,\n.step-item-container-vertical .step-item-content.label-bottom .step-item-label-area {\n flex-direction: column;\n align-items: center;\n}\n\n.step-item-container-horizontal::after {\n content: \"\";\n position: relative;\n height: 2px;\n background-color: var(--interactive);\n display: block;\n transform: translate(50%, 20px);\n z-index: -1;\n width: 100%;\n left: 0;\n bottom: 75%;\n}\n\n.step-item-container-horizontal.last::after,\n.step-item-container-horizontal.controller::after,\n.step-item-container-vertical.last::after {\n content: \"\";\n height: 0;\n display: none;\n}\n\n.step-item-container-horizontal .step-item-content.label-left.timeline.last::after {\n content: \"\";\n position: absolute;\n width: 160px;\n height: 2px;\n background-color: var(--interactive);\n display: inline-block;\n right: calc(100% - 80px);\n bottom: 50%;\n z-index: -1;\n}\n\n.content-type-br-icon {\n color: var(--interactive);\n font-size: 16px;\n font-weight: 900;\n}\n\n[data-active] .content-type-br-icon {\n color: var(--interactive);\n color: #fff;\n}\n\n.button-controller {\n width: 15px;\n height: 15px;\n}\n\n/* Desktops grandes (até 1440px) */\n@media (width <= 1440px) {\n .step-item-container-horizontal.label-left::after {\n width: 50%;\n left: 48%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 58%;\n left: 48%;\n }\n}\n\n/* Laptops (até 1024px) */\n@media (width <= 1024px) {\n .step-item-container-horizontal.label-left::after {\n width: 34%;\n left: 58%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Tablets (até 768px) */\n@media (width <= 768px) {\n .step-item-container-horizontal.label-left::after {\n width: 22%;\n left: 76%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares grandes (até 425px) */\n@media (width <= 425px) {\n .step-item-container-horizontal.label-left::after {\n width: 20%;\n left: 80%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares médios (até 375px) */\n@media (width <= 375px) {\n .step-item-container-horizontal.label-left::after {\n width: 18%;\n left: 82%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\n}\n\n/* Celulares pequenos (até 320px) */\n@media (width <= 320px) {\n .step-item-container-horizontal.label-left::after {\n width: 16%;\n left: 85%;\n bottom: 68%;\n }\n\n .step-item-container-horizontal.label-right::after {\n bottom: 68%;\n width: 36%;\n left: 72%;\n }\n\n .step-item-container-vertical.label-top::after {\n top: 50%;\n height: 50%;\n }\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 { 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/step?tab=designer).\n *\n * @slot nomeado label-area: insere o conteúdo customizado dentro do botão que compõe o componente.\n */\n@Component({\n tag: 'br-step-item',\n styleUrl: 'step-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class StepItem {\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: HTMLBrStepItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Propriedade que define o conteúdo do texto auxiliar de realce do item de Step.\n */\n @Prop({ reflect: true }) label: string = ''\n\n /**\n * Propriedade que define o tipo de ícone de destaque exibido pelo item Step, com quatro opções disponíveis: \"success\", \"info\", \"danger\" e \"warning\".\n */\n @Prop({ reflect: true }) highlight?: 'success' | 'info' | 'danger' | 'warning'\n\n /**\n * Propriedade que define se o item Step está com estado ativo.\n */\n @Prop({ reflect: true }) active: boolean = false\n\n /**\n * Propriedade que define se o item Step está com estado desativado..\n */\n @Prop({ reflect: true }) disabled: boolean = false\n\n /**\n * Propriedade Define o nome do ícone do componente BRIcon que será exibido como conteúdo do step item, propriedade funciona apenas quando o state contentType assume o valor br-icon.\n */\n @Prop({ reflect: true }) brIconName?: string = ''\n /**\n * Propriedade Define o nome do ícone o texto de acessibilidade apresentando quando o tipo de conteúdo for o br-icon\n */\n\n @Prop({ reflect: true }) brIconAria: string = ''\n\n @State() showTimeLine: boolean = false\n @State() stepItemPositionStatus: 'first' | 'middle' | 'last' = 'first'\n @State() stepLayout: 'horizontal' | 'vertical' = 'horizontal'\n @State() labelPosition: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n @State() contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n @State() mode: 'controller' | 'step' = 'step'\n @State() content: string = ''\n @State() ariaLabelContent: string = ''\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brWillRender: EventEmitter<void>\n componentWillRender() {\n let accessibilityContent = ''\n let activeItem = ''\n if (this.contentType === 'slotted') {\n const slotedContent = this.el.lastElementChild\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${slotedContent.textContent} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${slotedContent.textContent} ${this.highLightAriaLabel[this.highlight]}`\n this.ariaLabelContent = accessibilityContent\n return\n }\n if (this.contentType === 'br-icon') {\n accessibilityContent =\n `passo ${this.content} ` + this.brIconAria + this.label + this.highLightAriaLabel[this.highlight]\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n return\n } else {\n accessibilityContent =\n this.label !== ''\n ? `passo ${this.content} ${this.label} ${this.highLightAriaLabel[this.highlight]}`\n : `passo ${this.content} ${this.highLightAriaLabel[this.highlight]}`\n activeItem = this.active === true ? accessibilityContent + ' selecionado' : accessibilityContent\n this.ariaLabelContent = activeItem\n }\n }\n\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer antes que o componente seja renderizado ou atualizado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidRender: EventEmitter<void>\n componentDidRender() {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('role', 'option')\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n button.lastElementChild.setAttribute('aria-label', this.ariaLabelContent)\n }\n }\n\n /**\n * Watch que observa o valor da propriedade active, e ao alterar seu valor este método altera o valor do campo de acessibilidade aria-selected\n */\n @Watch('active')\n watchItemIsActive(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n const button = this.el.shadowRoot.getElementById('indicator-area').lastElementChild.shadowRoot\n if (button !== null) {\n button.lastElementChild.setAttribute('aria-selected', `${this.active}`)\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que indica a posição do step item, ele serve para setar o state stepItemPositionStatus do componente\n */\n @Method()\n async setStepItemPositionStatus(value: 'first' | 'middle' | 'last') {\n this.stepItemPositionStatus = value\n }\n\n /**\n * Método que define a orientação do stepItem e controla a exibição da linha do tempo após o componente.\n */\n @Method()\n async handleShowTimeLine(value: boolean, layout) {\n this.showTimeLine = value\n this.stepLayout = layout\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor ao estado que define onde o label, o texto de destaque, irá ficar localizado\n */\n @Method()\n async setLabelPosition(value: 'top' | 'right' | 'bottom' | 'left') {\n this.labelPosition = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o tipo de conteúdo apresentado dentro do componente stepItem\n */\n @Method()\n async setContentType(value: 'default' | 'br-icon' | 'no-content' | 'slotted') {\n this.contentType = value\n }\n\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá definir o modo como o componente irá se comportar e exibir seu estilo.\n */\n @Method()\n async setMode(value: 'controller' | 'step') {\n this.mode = value\n }\n /**\n *\n * Método disponibilizado via api do elemento que atribui o valor que irá ser exibido dentro do componente stepItem\n */\n @Method()\n async setContent(value: string) {\n this.content = value\n }\n\n private getStepContainerClassMap(): CssClassMap {\n return {\n 'step-item-container-horizontal': this.stepLayout === 'horizontal',\n 'step-item-container-vertical': this.stepLayout === 'vertical',\n last: this.stepItemPositionStatus == 'last',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'label-bottom': this.labelPosition === 'bottom' && this.label !== '',\n controller: this.mode === 'controller',\n 'disabled-div': true,\n }\n }\n\n private getStepItemContentClassMap(): CssClassMap {\n return {\n 'step-item-content': true,\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n timeline: this.showTimeLine === true,\n middle: this.stepItemPositionStatus === 'middle',\n first: this.stepItemPositionStatus === 'first',\n controller: this.mode === 'controller',\n }\n }\n\n private getStepItemIndicatorAreaClassMap(): CssClassMap {\n return {\n 'step-item-indicator-area': true,\n }\n }\n\n private getStepItemLabelAreaClassMap(): CssClassMap {\n return {\n 'step-item-label-area': true,\n vertical: this.stepLayout === 'vertical',\n horizontal: this.stepLayout === 'horizontal',\n 'label-bottom': this.labelPosition === 'bottom',\n 'label-top': this.labelPosition === 'top',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n 'no-label': this.label === '',\n }\n }\n\n private getHighlightClass(): CssClassMap {\n return {\n icon: true,\n success: this.highlight === 'success',\n info: this.highlight === 'info',\n warning: this.highlight === 'warning',\n danger: this.highlight === 'danger',\n 'no-content': this.contentType === 'no-content',\n }\n }\n\n private getStepItemIndicatorClass(): CssClassMap {\n return {\n 'step-button': true,\n controller: this.mode === 'controller',\n 'disabled-host': this.disabled,\n }\n }\n\n private highLightAriaLabel = {\n success: 'passo completo',\n info: 'passo com item informativo',\n warning: 'passo com alerta',\n danger: 'passo com erro',\n undefined: '',\n }\n\n private IconsName = {\n success: 'fa-check',\n info: 'fa-info-circle',\n warning: 'fa-exclamation-triangle',\n danger: 'fa-times',\n }\n\n render() {\n return (\n <Host>\n <div id=\"item-container\" class={this.getStepContainerClassMap()}>\n <div id=\"item-content\" class={this.getStepItemContentClassMap()}>\n <div id=\"indicator-area\" data-active={this.active} class={this.getStepItemIndicatorAreaClassMap()}>\n {this.mode === 'step' && this.highlight && (\n <div class={this.getHighlightClass()}>\n <br-icon\n icon-name={this.IconsName[this.highlight]}\n class={`${this.highlight === 'warning' && 'warning-color'}`}\n ></br-icon>\n </div>\n )}\n\n {this.mode === 'step' && (\n <br-button\n shape=\"circle\"\n emphasis=\"secondary\"\n isActive={this.active}\n class={this.getStepItemIndicatorClass()}\n >\n {this.contentType === 'no-content' && ''}\n {this.contentType === 'default' && this.content}\n {this.contentType === 'br-icon' && (\n <br-icon icon-name={this.brIconName} class={'content-type-br-icon'}></br-icon>\n )}\n {this.contentType === 'slotted' && <slot name={'content-area'}></slot>}\n </br-button>\n )}\n\n {this.mode === 'controller' && <button data-active={this.active} class={'mode-controller'}></button>}\n </div>\n <div id=\"label-area\" class={this.getStepItemLabelAreaClassMap()}>\n <span> {this.label} </span>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-step.entry.esm.js","sources":["../../packages/webcomponents/src/components/step/step.scss?tag=br-step&encapsulation=shadow","../../packages/webcomponents/src/components/step/step.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/step/step\";\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n .step-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n overflow: auto;\n flex-grow: 1;\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .vertical {\n flex-direction: column;\n justify-content: center;\n\n &.label-right {\n align-items: start;\n padding-left: 20px;\n }\n\n &.label-left {\n align-items: start;\n padding-right: 20px;\n }\n }\n}\n\n::slotted([disabled]) {\n opacity: 1 !important;\n}\n\n::slotted(.linha) {\n width: 100px;\n height: 2px;\n display: flex;\n align-items: center;\n background-color: var(--interactive);\n}\n\n::slotted(*) {\n flex: 1;\n min-width: 0;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot default - Slot que abriga o componente step-item. Este slot tem a particularidade de aceitar somente o componente step-item em sua composição. Caso outro elemento ou componente seja incluído dentro dele, o componente Step não será renderizado, e uma mensagem de erro será exibida no console.\n */\n@Component({\n tag: 'br-step',\n styleUrl: 'step.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Step {\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: HTMLBrStepElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * propriedade responsável por definir a orientação do componente Step\n */\n @Prop({ reflect: true }) layout: 'horizontal' | 'vertical' = 'horizontal'\n /**\n *\n * define o passo que começará destacado\n */\n @Prop({ reflect: true }) initialStep: string = '0'\n /**\n *\n * Propriedade que define a posição onde o texto de destaque,label, ficará localizado no stepItem\n */\n @Prop({ reflect: true }) labelPosition?: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n /**\n *\n * Propriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem\n */\n @Prop({ reflect: true }) contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n /**\n *\n * Propriedade que define o tipo de comportamento que o componente Step deverá seguir\n */\n @Prop({ reflect: true }) mode: 'controller' | 'step' = 'step'\n\n /**\n *\n * Propriedade que define o tipo de progressão de etapas que o step vai executar\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n @State() activeStep: number = 0\n @State() stepItems: Element[] = []\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.setStepItemsLabelPosition()\n this.setStepItemsContentType()\n this.setStepItemsDefaultContent()\n this.setStepItemsMode(this.mode)\n if (this.mode === 'step') {\n this.configureTimeLine()\n }\n if (this.progressionType === 'linear') {\n this.configureLinearProgression()\n }\n if (this.activeStep <= this.stepItems.length - 1) {\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n } else {\n console.warn('br-step initial-step attribute has value more than number of step-items provided')\n }\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado pela primeira vez, permitindo a preparação de dados ou inicializações necessárias.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdwillLoad) para mais detalhes.\n */\n @Event() brWilLoad: EventEmitter<void>\n componentWillLoad() {\n this.activeStep = Number(this.initialStep)\n this.getStepItemsElements()\n this.brWilLoad.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n componentShouldUpdate(newValue, oldValue, stateName) {\n if (stateName == 'activeStep' && oldValue != newValue) {\n const outOfRange = oldValue > this.stepItems.length - 1\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n if (!outOfRange) {\n this.stepItems[oldValue].removeAttribute('active')\n }\n this.brShouldUpdate.emit()\n }\n }\n\n /**\n * listener para ouvir o evento de click no componente step\n * Através desse listener o componente define qual será o proximo passo do step que terá o estado ativo\n */\n\n @Listen('click', { capture: true })\n handleClick(event) {\n const targetElement = event.target as Element\n if (targetElement.getAttribute('slot') !== null) {\n const slotItem = this.stepItems.findIndex((element) => element.lastElementChild === targetElement)\n this.activeStep = slotItem\n return\n }\n const item = this.stepItems.findIndex((element) => element === targetElement)\n this.activeStep = item\n }\n\n private getStepItemsElements() {\n const slotItems = Array.from(this.el.children)\n const firstChildrenContentTypeValue = slotItems[0].getAttribute('content-type')\n const childrenHaveConsistentContentType = slotItems.every(\n (item) => item.getAttribute('content-type') === firstChildrenContentTypeValue\n )\n const childrenHaveConsistentTagName = slotItems.every((item) => item.tagName.toLowerCase() === 'br-step-item')\n if (childrenHaveConsistentContentType && childrenHaveConsistentTagName) {\n this.stepItems = slotItems\n return\n }\n if (!childrenHaveConsistentTagName) {\n throw new Error('br-step component must have as child elements only br-step-items components')\n }\n if (!childrenHaveConsistentContentType) {\n throw new Error('br-step must have all child elements with same content type attribute value')\n }\n }\n\n private setStepItemsLabelPosition() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (this.labelPosition !== undefined) {\n elements.setLabelPosition(this.labelPosition)\n }\n })\n }\n\n private setStepItemsDefaultContent() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const indicatorContent = index + 1\n elements.setContent(indicatorContent.toString())\n })\n }\n\n private async setStepItemsContentType() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)))\n slotItems.forEach((elements, index) => {\n elements.setAttribute('aria-posinset', `${index + 1}`)\n elements.setAttribute('aria-setsize', `${slotItems.length}`)\n })\n }\n\n private setStepItemsMode(mode: 'controller' | 'step') {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (mode === 'controller') {\n elements.setMode(this.mode)\n elements.setContentType('no-content')\n if (this.layout !== 'horizontal') {\n this.layout = 'horizontal'\n }\n elements.handleShowTimeLine(false, this.layout)\n elements.removeAttribute('label')\n }\n })\n }\n\n private getStepItemPosition(stepItemsElements: HTMLBrStepItemElement[], index) {\n if (index === 0) {\n return 'first'\n }\n if (index > 0 && index < stepItemsElements.length - 1) {\n return 'middle'\n }\n return 'last'\n }\n\n private configureTimeLine() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const elementPosition = this.getStepItemPosition(slotItems, index)\n elements.setStepItemPositionStatus(elementPosition)\n elements.handleShowTimeLine(true, this.layout)\n })\n }\n\n private configureLinearProgression() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n if (index > 0) {\n elements.setAttribute('disabled', 'true')\n }\n })\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep\n */\n @Method()\n async ProceedToNextStep() {\n if (this.activeStep + 1 < this.stepItems.length) {\n this.activeStep = this.activeStep + 1\n if (this.progressionType === 'linear') {\n this.stepItems[this.activeStep].removeAttribute('disabled')\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep\n */\n @Method()\n async BackToPreviousStep() {\n if (this.activeStep - 1 >= 0) {\n this.activeStep = this.activeStep - 1\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.\n */\n @Method()\n async StepValidation(validationStatus: 'success' | 'info' | 'danger' | 'warning') {\n this.stepItems[this.activeStep].setAttribute('highlight', validationStatus)\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.\n */\n @Method()\n async GetActiveStep() {\n return this.activeStep\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-step': true,\n 'step-container': true,\n horizontal: this.layout === 'horizontal',\n vertical: this.layout === 'vertical',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n }\n }\n\n private AriaObjectContent = {\n step: 'Modo etapas ',\n controller: 'Modo controle ',\n default: 'passos com conteúdo numérico ',\n 'br-icon': 'passos com conteúdo que possuem icones ',\n slotted: 'passos com conteúdo customizados ',\n 'no-content': 'passos que apresentam conteúdo por meio de tooltip ',\n linear: 'progressão linear ',\n nonlinear: 'progressão não linear ',\n vertical: 'com layout vertical ',\n horizontal: 'com layout horizontal ',\n }\n\n private getAreaLabel(): string {\n let ariaLabel = ' Lista de Opções '\n if (this.mode !== 'controller') {\n ariaLabel +=\n this.AriaObjectContent[this.mode] +\n this.AriaObjectContent[this.contentType] +\n this.AriaObjectContent[this.progressionType] +\n this.AriaObjectContent[this.layout]\n } else {\n ariaLabel += this.AriaObjectContent[this.mode]\n }\n return ariaLabel\n }\n\n render() {\n return (\n <Host>\n {this.stepItems.length > 0 && (\n <div\n role=\"listbox\"\n tabIndex={0}\n aria-orientation={this.layout}\n aria-label={this.getAreaLabel()}\n class={this.getCssClassMap()}\n >\n <slot></slot>\n </div>\n )}\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-step.entry.esm.js","sources":["../../packages/webcomponents/src/components/step/step.scss?tag=br-step&encapsulation=shadow","../../packages/webcomponents/src/components/step/step.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/step/step\";\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n\n .step-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n overflow: auto;\n flex-grow: 1;\n\n &:focus-visible {\n outline: var(--focus-width) var(--focus-style) var(--focus) var(--focus-offset);\n }\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .vertical {\n flex-direction: column;\n justify-content: center;\n\n &.label-right {\n align-items: start;\n padding-left: 20px;\n }\n\n &.label-left {\n align-items: start;\n padding-right: 20px;\n }\n }\n}\n\n::slotted([disabled]) {\n opacity: 1 !important;\n}\n\n::slotted(.linha) {\n width: 100px;\n height: 2px;\n display: flex;\n align-items: center;\n background-color: var(--interactive);\n}\n\n::slotted(*) {\n flex: 1;\n min-width: 0;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/step?tab=designer).\n *\n * @slot default - Slot que abriga o componente step-item. Este slot tem a particularidade de aceitar somente o componente step-item em sua composição. Caso outro elemento ou componente seja incluído dentro dele, o componente Step não será renderizado, e uma mensagem de erro será exibida no console.\n */\n@Component({\n tag: 'br-step',\n styleUrl: 'step.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Step {\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: HTMLBrStepElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * propriedade responsável por definir a orientação do componente Step\n */\n @Prop({ reflect: true }) layout: 'horizontal' | 'vertical' = 'horizontal'\n /**\n *\n * define o passo que começará destacado\n */\n @Prop({ reflect: true }) initialStep: string = '0'\n /**\n *\n * Propriedade que define a posição onde o texto de destaque,label, ficará localizado no stepItem\n */\n @Prop({ reflect: true }) labelPosition?: 'top' | 'right' | 'bottom' | 'left' = 'bottom'\n /**\n *\n * Propriedade que define o tipo de conteúdo a ser exibido dentro do componente step e stepItem\n */\n @Prop({ reflect: true }) contentType: 'default' | 'br-icon' | 'no-content' | 'slotted' = 'default'\n /**\n *\n * Propriedade que define o tipo de comportamento que o componente Step deverá seguir\n */\n @Prop({ reflect: true }) mode: 'controller' | 'step' = 'step'\n\n /**\n *\n * Propriedade que define o tipo de progressão de etapas que o step vai executar\n */\n @Prop({ reflect: true }) progressionType: 'linear' | 'nonlinear' = 'nonlinear'\n\n @State() activeStep: number = 0\n @State() stepItems: Element[] = []\n /**\n * Emite um evento após o componente ter sido carregado pela primeira vez.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdidload) para mais detalhes.\n */\n @Event() brDidLoad: EventEmitter<void>\n componentDidLoad() {\n this.setStepItemsLabelPosition()\n this.setStepItemsContentType()\n this.setStepItemsDefaultContent()\n this.setStepItemsMode(this.mode)\n if (this.mode === 'step') {\n this.configureTimeLine()\n }\n if (this.progressionType === 'linear') {\n this.configureLinearProgression()\n }\n if (this.activeStep <= this.stepItems.length - 1) {\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n } else {\n console.warn('br-step initial-step attribute has value more than number of step-items provided')\n }\n this.brDidLoad.emit()\n }\n\n /**\n * Emite um evento antes do componente ser renderizado pela primeira vez, permitindo a preparação de dados ou inicializações necessárias.\n * Utilize este evento para realizar ações que devem ocorrer depois que o componente foi totalmente carregado.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentdwillLoad) para mais detalhes.\n */\n @Event() brWilLoad: EventEmitter<void>\n componentWillLoad() {\n this.activeStep = Number(this.initialStep)\n this.getStepItemsElements()\n this.brWilLoad.emit()\n }\n\n /**\n * Emite um evento para indicar se o componente deve ser atualizado ou não.\n * Este evento é chamado antes de qualquer atualização do componente para decidir se a atualização deve prosseguir.\n * Consulte a documentação do [Stencil](https://stenciljs.com/docs/component-lifecycle#componentshouldupdate) para mais detalhes.\n */\n @Event() brShouldUpdate: EventEmitter<void>\n componentShouldUpdate(newValue, oldValue, stateName) {\n if (stateName == 'activeStep' && oldValue != newValue) {\n const outOfRange = oldValue > this.stepItems.length - 1\n this.stepItems[this.activeStep].setAttribute('active', 'true')\n if (!outOfRange) {\n this.stepItems[oldValue].removeAttribute('active')\n }\n this.brShouldUpdate.emit()\n }\n }\n\n /**\n * listener para ouvir o evento de click no componente step\n * Através desse listener o componente define qual será o proximo passo do step que terá o estado ativo\n */\n\n @Listen('click', { capture: true })\n handleClick(event) {\n const targetElement = event.target as Element\n if (targetElement.getAttribute('slot') !== null) {\n const slotItem = this.stepItems.findIndex((element) => element.lastElementChild === targetElement)\n this.activeStep = slotItem\n return\n }\n const item = this.stepItems.findIndex((element) => element === targetElement)\n this.activeStep = item\n }\n\n private getStepItemsElements() {\n const slotItems = Array.from(this.el.children)\n const firstChildrenContentTypeValue = slotItems[0].getAttribute('content-type')\n const childrenHaveConsistentContentType = slotItems.every(\n (item) => item.getAttribute('content-type') === firstChildrenContentTypeValue\n )\n const childrenHaveConsistentTagName = slotItems.every((item) => item.tagName.toLowerCase() === 'br-step-item')\n if (childrenHaveConsistentContentType && childrenHaveConsistentTagName) {\n this.stepItems = slotItems\n return\n }\n if (!childrenHaveConsistentTagName) {\n throw new Error('br-step component must have as child elements only br-step-items components')\n }\n if (!childrenHaveConsistentContentType) {\n throw new Error('br-step must have all child elements with same content type attribute value')\n }\n }\n\n private setStepItemsLabelPosition() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (this.labelPosition !== undefined) {\n elements.setLabelPosition(this.labelPosition)\n }\n })\n }\n\n private setStepItemsDefaultContent() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const indicatorContent = index + 1\n elements.setContent(indicatorContent.toString())\n })\n }\n\n private async setStepItemsContentType() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n await Promise.all(slotItems.map((element) => element.setContentType(this.contentType)))\n slotItems.forEach((elements, index) => {\n elements.setAttribute('aria-posinset', `${index + 1}`)\n elements.setAttribute('aria-setsize', `${slotItems.length}`)\n })\n }\n\n private setStepItemsMode(mode: 'controller' | 'step') {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements) => {\n if (mode === 'controller') {\n elements.setMode(this.mode)\n elements.setContentType('no-content')\n if (this.layout !== 'horizontal') {\n this.layout = 'horizontal'\n }\n elements.handleShowTimeLine(false, this.layout)\n elements.removeAttribute('label')\n }\n })\n }\n\n private getStepItemPosition(stepItemsElements: HTMLBrStepItemElement[], index) {\n if (index === 0) {\n return 'first'\n }\n if (index > 0 && index < stepItemsElements.length - 1) {\n return 'middle'\n }\n return 'last'\n }\n\n private configureTimeLine() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n const elementPosition = this.getStepItemPosition(slotItems, index)\n elements.setStepItemPositionStatus(elementPosition)\n elements.handleShowTimeLine(true, this.layout)\n })\n }\n\n private configureLinearProgression() {\n const slotItems = Array.from(this.el.getElementsByTagName('br-step-item'))\n slotItems.forEach((elements, index) => {\n if (index > 0) {\n elements.setAttribute('disabled', 'true')\n }\n })\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por avançar para o próximo passo e atualizar o valor do estado activeStep\n */\n @Method()\n async ProceedToNextStep() {\n if (this.activeStep + 1 < this.stepItems.length) {\n this.activeStep = this.activeStep + 1\n if (this.progressionType === 'linear') {\n this.stepItems[this.activeStep].removeAttribute('disabled')\n }\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que controla o componente Step, responsável por retornar ao passo anterior e atualizar o valor do estado activeStep\n */\n @Method()\n async BackToPreviousStep() {\n if (this.activeStep - 1 >= 0) {\n this.activeStep = this.activeStep - 1\n }\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que integra um componente externo ao componente Step, permitindo sinalizar validações ou destacar a etapa com estado ativo.\n */\n @Method()\n async StepValidation(validationStatus: 'success' | 'info' | 'danger' | 'warning') {\n this.stepItems[this.activeStep].setAttribute('highlight', validationStatus)\n }\n\n /**\n *\n * Método disponibilizado via API do elemento que permite a um componente externo obter a etapa com o estado ativo do componente Step.\n */\n @Method()\n async GetActiveStep() {\n return this.activeStep\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-step': true,\n 'step-container': true,\n horizontal: this.layout === 'horizontal',\n vertical: this.layout === 'vertical',\n 'label-left': this.labelPosition === 'left',\n 'label-right': this.labelPosition === 'right',\n }\n }\n\n private AriaObjectContent = {\n step: 'Modo etapas ',\n controller: 'Modo controle ',\n default: 'passos com conteúdo numérico ',\n 'br-icon': 'passos com conteúdo que possuem icones ',\n slotted: 'passos com conteúdo customizados ',\n 'no-content': 'passos que apresentam conteúdo por meio de tooltip ',\n linear: 'progressão linear ',\n nonlinear: 'progressão não linear ',\n vertical: 'com layout vertical ',\n horizontal: 'com layout horizontal ',\n }\n\n private getAreaLabel(): string {\n let ariaLabel = ' Lista de Opções '\n if (this.mode !== 'controller') {\n ariaLabel +=\n this.AriaObjectContent[this.mode] +\n this.AriaObjectContent[this.contentType] +\n this.AriaObjectContent[this.progressionType] +\n this.AriaObjectContent[this.layout]\n } else {\n ariaLabel += this.AriaObjectContent[this.mode]\n }\n return ariaLabel\n }\n\n render() {\n return (\n <Host>\n {this.stepItems.length > 0 && (\n <div\n role=\"listbox\"\n tabIndex={0}\n aria-orientation={this.layout}\n aria-label={this.getAreaLabel()}\n class={this.getCssClassMap()}\n >\n <slot></slot>\n </div>\n )}\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-switch.entry.esm.js","sources":["../../packages/webcomponents/src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","../../packages/webcomponents/src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Descreve o que o switch faz quando a alternância estiver ativada. A label passada por slot tem precedência sobre a propriedade 'label'.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\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: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: 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-switch-${switchId++}`\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() readonly label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) readonly labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) readonly labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) readonly labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) readonly hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): void {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked\n this.checkedChange.emit(this.checked)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this.checked.toString()}\n aria-disabled={this.disabled ? 'true' : null}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff}></div>\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet switchId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"br-switch.entry.esm.js","sources":["../../packages/webcomponents/src/components/switch/switch.scss?tag=br-switch&encapsulation=shadow","../../packages/webcomponents/src/components/switch/switch.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/switch/switch\";\n\n:host {\n display: block;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/switch?tab=designer).\n *\n * @slot default - Descreve o que o switch faz quando a alternância estiver ativada. A label passada por slot tem precedência sobre a propriedade 'label'.\n */\n@Component({\n tag: 'br-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Switch {\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: HTMLBrSwitchElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o switch, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Define o estado de seleção do checkbox.\n * Se definido como verdadeiro, o checkbox estará marcado. Caso contrário, estará desmarcado.\n */\n @Prop({ reflect: true, mutable: true }) checked: 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-switch-${switchId++}`\n\n /**\n * Texto descritivo.\n * Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.\n */\n @Prop() readonly label: string\n\n /**\n * Posição do rótulo em relação ao switch.\n */\n @Prop({ reflect: true }) readonly labelPosition: 'right' | 'left' | 'top' = 'left'\n\n /**\n * Texto exibido quando o switch está ativado.\n */\n @Prop({ reflect: true }) readonly labelOn: string\n\n /**\n * Texto exibido quando o switch está desativado.\n */\n @Prop({ reflect: true }) readonly labelOff: string\n\n /**\n * Adiciona um ícone ao switch para indicar a mudança de estado.\n */\n @Prop({ reflect: true }) readonly hasIcon: boolean = false\n\n /**\n * Define o nome do switch, que é utilizado para agrupar switches em formulários e identificar o campo.\n * O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.\n */\n @Prop({ reflect: true }) readonly name: string\n\n /**\n * Define o valor associado ao switch quando ele faz parte de um formulário nativo (`<form>`).\n * Esse valor é enviado com o formulário quando o switch está selecionado.\n * **Nota:** Esta propriedade não deve ser utilizada para determinar se o switch está selecionado; para verificar o estado de seleção, use a propriedade `checked`.\n */\n @Prop({ reflect: true }) readonly value: string\n\n /** O ajuste da densidade consiste em aumentar ou reduzir a área de interação do switch. Quanto menor for a densidade, maior a área de interação. */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() _slotDefault: boolean = false\n\n componentWillLoad() {\n this._hasSlotContentDefault()\n }\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n\n /**\n * Disparado depois que o valor do `checked` foi alterado\n */\n @Event() checkedChange: EventEmitter<boolean>\n private _hasSlotContentDefault(): void {\n this._slotDefault = this.el.innerHTML !== ''\n }\n\n private readonly handleCheckedChange = (event: Event) => {\n this.checked = (event.target as HTMLInputElement).checked\n this.checkedChange.emit(this.checked)\n }\n\n private readonly handleClick = (event: Event) => {\n event.stopPropagation()\n }\n\n /**\n * Inverte o valor da prop `checked`\n */\n @Method()\n async toggleChecked() {\n this.checked = !this.checked\n this.checkedChange.emit(this.checked)\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-switch': true,\n icon: this.hasIcon,\n top: this.labelPosition === 'top',\n right: this.labelPosition === 'right',\n large: this.density === 'large',\n small: this.density === 'small',\n }\n }\n\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n <input\n id={this.customId}\n type=\"checkbox\"\n name={this.name}\n checked={this.checked}\n disabled={this.disabled}\n role=\"switch\"\n aria-checked={this.checked.toString()}\n aria-disabled={this.disabled ? 'true' : null}\n onChange={this.handleCheckedChange}\n onClick={this.handleClick}\n />\n <label htmlFor={this.customId}>{this._slotDefault ? <slot></slot> : this.label}</label>\n {this.labelOn && this.labelOff && (\n <div class=\"switch-data\" data-enabled={this.labelOn} data-disabled={this.labelOff}></div>\n )}\n </div>\n </Host>\n )\n }\n}\n\nlet switchId = 0\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"br-tab-item.entry.esm.js","sources":["../../packages/webcomponents/src/components/tab-item/tab-item.scss?tag=br-tab-item&encapsulation=shadow","../../packages/webcomponents/src/components/tab-item/tab-item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/tab/tab\";\n@import \"~@govbr-ds/core/src/partial/scss/configs/icons\";\n\n:host {\n display: block;\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\n@include tab-nav;\n\n.tab-item {\n &.inverted,\n &.dark-mode {\n @include dark-mode;\n\n &.active {\n button {\n border-bottom-color: var(--background-light);\n color: var(--color);\n }\n }\n }\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/tab-item?tab=designer).\n *\n * @slot default - Slot com conteúdo do item da tab\n */\n@Component({\n tag: 'br-tab-item',\n styleUrl: 'tab-item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class TabItem {\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: HTMLBrTabItemElement\n\n @Prop({ reflect: true }) readonly TabItemId: string = crypto.randomUUID()\n /**\n * Define ícone do item de tab\n * @type {string}\n */\n @Prop({ reflect: true }) readonly icon: string\n /**\n * Define o título do item de tab\n * @type {string}\n */\n @Prop({ reflect: true }) readonly tabItemTitle: string\n /**\n * Define se mostra somente o ícone\n * @type {boolean}\n * @default false\n */\n @Prop({ reflect: true }) readonly onlyIcon: boolean = false\n\n /**\n * Define se o item de tab é ativo\n * @type {boolean}\n */\n @Prop({ reflect: true }) isActive: boolean\n /**\n * Define contador do item de tab\n * @type {string}\n */\n @Prop({ reflect: true }) readonly counter: string\n\n /**\n * Define se o Tab usará um esquema de cores.\n * Apenas o esquema 'dark' está disponível para o modo escuro.\n * @type {string}\n */\n @Prop({ reflect: true }) colorMode: string\n\n @AttachInternals() elementInternals: ElementInternals\n\n @Event() itemTabClick: EventEmitter<{ id: string }>\n\n private getCssClassMap(): CssClassMap {\n return {\n 'tab-item': true,\n active: this.isActive,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n render() {\n return (\n <Host>\n <li class={this.getCssClassMap()}>\n <button\n type=\"button\"\n id={`tab-button-${this.TabItemId}`}\n role=\"tab\"\n data-panel={this.TabItemId}\n aria-label={this.tabItemTitle}\n aria-controls={`tab-panel-${this.TabItemId}`}\n aria-selected={this.isActive}\n onClick={() => this.itemTabClick.emit({ id: this.TabItemId })}\n >\n <span class=\"name d-flex align-items-center\">\n {this.icon && (\n <span class=\"icon mr-2\">\n <br-icon icon-name={this.icon}></br-icon>\n </span>\n )}\n {!this.onlyIcon && <span>{this.tabItemTitle}</span>}\n </span>\n </button>\n {this.counter && <span class=\"results\">({this.counter})</span>}\n </li>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,+//DAA+//D;;MCerggE,OAAO,GAAA,MAAA;;;;;;;;;;;;;AAOgB,IAAA,SAAS,GAAW,MAAM,CAAC,UAAU,EAAE;AACzE;;;AAGG;AAC+B,IAAA,IAAI;AACtC;;;AAGG;AAC+B,IAAA,YAAY;AAC9C;;;;AAIG;IAC+B,QAAQ,GAAY,KAAK;AAE3D;;;AAGG;AACsB,IAAA,QAAQ;AACjC;;;AAGG;AAC+B,IAAA,OAAO;AAEzC;;;;AAIG;AACsB,IAAA,SAAS;AAEf,IAAA,gBAAgB;AAE1B,IAAA,YAAY;IAEb,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,WAAW,EAAE,IAAI,CAAC,SAAS,KAAK,MAAM;SACvC;;IAGH,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAA,EAC9B,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,CAAc,WAAA,EAAA,IAAI,CAAC,SAAS,CAAE,CAAA,EAClC,IAAI,EAAC,KAAK,EACE,YAAA,EAAA,IAAI,CAAC,SAAS,gBACd,IAAI,CAAC,YAAY,EAAA,eAAA,EACd,CAAA,UAAA,EAAa,IAAI,CAAC,SAAS,CAAE,CAAA,EAC7B,eAAA,EAAA,IAAI,CAAC,QAAQ,EAC5B,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAA,EAE7D,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gCAAgC,EAAA,EACzC,IAAI,CAAC,IAAI,KACR,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EACrB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAoB,IAAI,CAAC,IAAI,EAAA,CAAY,CACpC,CACR,EACA,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,YAAY,CAAQ,CAC9C,CACA,EACR,IAAI,CAAC,OAAO,IAAI,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,SAAS,EAAA,OAAG,IAAI,CAAC,OAAO,MAAS,CAC3D,CACA;;;;;;;;"}
|
|
@@ -0,0 +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@import \"~@govbr-ds/core/src/partial/scss/configs/icons\";\n\n:host {\n display: block;\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\n.br-tab {\n max-width: 100vw; /* Impede que o elemento ultrapasse a largura da janela */\n overflow-x: hidden; /* Evita rolagem horizontal indesejada */\n padding: 16px;\n box-sizing: border-box;\n}\n\n.tab-nav[data-counter=\"true\"] ul {\n max-height: 65px;\n}\n\n.tab-nav[data-counter=\"true\"] {\n overflow: hidden;\n min-height: 102px;\n}\n","import { AttachInternals, Component, Element, Event, EventEmitter, h, Host, Prop, State, Watch } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/tab-item?tab=designer).\n *\n * @slot default - Slot com os componentes item da tab\n */\n@Component({\n tag: 'br-tab',\n styleUrl: 'tab.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Tab {\n @Element() el: HTMLBrTabElement\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * A propriedade 'density' define a densidade do componente.\n * Os valores possíveis são 'small', 'medium' e 'large'.\n * @type {string}\n * @default 'medium'\n */\n @Prop({ reflect: true }) readonly density: 'small' | 'medium' | 'large' = 'medium'\n /**\n * Define se o Tab usará um esquema de cores.\n * Apenas o esquema 'dark' está disponível para o modo escuro.\n * @type {string}\n */\n @Prop({ reflect: true }) colorMode: string\n /**\n * A propriedade 'activeTab' define o tab ativo.\n */\n @State() activeTab: string\n /**\n * A propriedade 'tabItems' lista dos tabs items .\n */\n @State() tabItems: Element[] = []\n\n /**\n * A propriedade 'tabContent' armazena o conteúdo dos tabs.\n * @type {string}\n * @memberof Tab\n */\n @State() tabContent: string = ''\n\n private maxWidth: string\n private hostStyle: { [key: string]: string } = {}\n private containerStyle: { [key: string]: string } = {}\n private mutationObserver: MutationObserver\n private focusElementIndex: number = 0\n\n @Event() brDidActive: EventEmitter\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-tab': true,\n [this.density]: true,\n 'dark-mode': this.colorMode === 'dark',\n }\n }\n\n private setupHostStyles() {\n this.hostStyle = {\n maxWidth: '100%',\n display: 'block',\n boxSizing: 'border-box',\n }\n }\n\n private updateContainerStyles() {\n this.containerStyle = {\n maxWidth: this.maxWidth,\n overflow: 'hidden',\n width: '100%',\n boxSizing: 'border-box',\n }\n }\n /**\n * Obtém os elementos de tab items dentro do componente.\n * Se não houver elementos, emite um aviso.\n * @private\n * @returns {void}\n * @memberof Tab\n */\n private getTabItemsElements() {\n const slotItems = Array.from(this.el.children)\n\n slotItems.forEach((tab) => {\n if (this.colorMode) tab.setAttribute('color-mode', this.colorMode)\n if (!tab.hasAttribute('tab-item-id')) {\n tab.setAttribute('tab-item-id', crypto.randomUUID())\n }\n })\n\n this.tabItems = slotItems\n }\n /**\n * Atualiza o conteúdo dos tabs com base nos elementos de tab items.\n * Cada tab item é transformado em um painel de tab com o ID apropriado.\n * O painel ativo é marcado com a classe 'active'.\n * @private\n * @returns {void}\n * @memberof Tab\n * @description\n */\n private updateTabContent() {\n this.tabContent = this.tabItems\n .map((tab: Element) => {\n const tabActive = this.isTabActive(tab)\n\n return `\n <div\n id=\"tab-panel-${this.getTabID(tab)}\"\n role=\"tabpanel\"\n aria-labelledby=\"tab-button-${tab.getAttribute('tab-item-id')}\"\n class=\"tab-panel${tabActive ? ' active' : ''}\"\n >\n ${tab.innerHTML} \n </div>\n `\n })\n .join('')\n }\n /**\n * Atualiza a largura máxima do componente com base na largura da janela.\n * Se a largura da janela não estiver disponível, define a largura máxima como 100%.\n * @private\n * @returns {void}\n * @memberof Tab\n * @description\n * Esta função calcula a largura máxima do componente com base na posição do elemento na tela.\n */\n private updateMaxWidth() {\n if (typeof window !== 'undefined') {\n const componentRect = this.el.getBoundingClientRect()\n const availableWidth = window.innerWidth - componentRect.left\n this.maxWidth = `${availableWidth - 5}px`\n } else {\n this.maxWidth = '100%'\n }\n this.updateContainerStyles()\n }\n\n /**\n * Obtém o ID do tab item.\n * @private\n * @param {Element} tab - O elemento do tab item.\n * @returns {string} - O ID do tab item.\n * @memberof Tab\n * @description\n * Esta função retorna o ID do tab item, que é armazenado no atributo 'tab-item-id'.\n */\n private getTabID(tab: Element): string {\n return tab.getAttribute('tab-item-id')\n }\n /**\n *\n * @param tab\n * @returns\n */\n private isTabActive(tab: Element): boolean {\n return this.getTabID(tab) === this.activeTab\n }\n\n private verifActiveTab() {\n const selected = this.el.querySelector('br-tab-item[active]')\n if (!selected && this.tabItems.length > 0) {\n this.activeTab = this.getTabID(this.tabItems[0])\n } else if (selected) {\n this.activeTab = this.getTabID(selected)\n }\n }\n\n @Watch('activeTab')\n activeTabChanged(newValue: string) {\n this.tabItems.forEach((tab) => {\n try {\n if (this.getTabID(tab) === newValue) {\n tab.setAttribute('is-active', 'true')\n tab.setAttribute('aria-selected', 'true')\n } else {\n if (tab.hasAttribute('is-active')) {\n if (tab) {\n tab.removeAttribute('is-active')\n }\n tab.removeAttribute('aria-selected')\n }\n }\n } catch (error) {\n console.error('Failed to remove attribute \"is-active\":', error)\n }\n })\n this.updateTabContent()\n this.brDidActive.emit({ id: newValue })\n }\n\n /**\n * Evento de navegação por teclado\n * @param event\n */\n private handleKeyNavigation = (event: KeyboardEvent) => {\n const focusableTabs = Array.from(this.tabItems) as HTMLElement[]\n\n if (event.key === 'ArrowDown') {\n const activeTabPanel = this.el.shadowRoot.querySelector('.tab-panel.active') as HTMLElement\n if (activeTabPanel) {\n const focusableElements = Array.from(\n activeTabPanel.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n ) as HTMLElement[]\n if (focusableElements.length > 0) {\n focusableElements[0].focus()\n }\n }\n }\n\n const activeIndex = this.focusElementIndex\n if (event.key === 'ArrowRight') {\n const nextIndex = (activeIndex + 1) % focusableTabs.length\n const nextButton = focusableTabs[nextIndex]?.shadowRoot?.querySelector('button')\n if (nextButton) {\n nextButton.focus()\n this.focusElementIndex = nextIndex\n }\n } else if (event.key === 'ArrowLeft') {\n const prevIndex = (activeIndex - 1 + focusableTabs.length) % focusableTabs.length\n const prevButton = focusableTabs[prevIndex]?.shadowRoot?.querySelector('button')\n if (prevButton) {\n prevButton.focus()\n this.focusElementIndex = prevIndex\n }\n }\n }\n\n componentWillLoad() {\n this.getTabItemsElements()\n this.setupHostStyles()\n this.updateTabContent()\n\n if (typeof window !== 'undefined' && typeof MutationObserver !== 'undefined') {\n // window.addEventListener('resize', () => this.updateMaxWidth());\n\n this.mutationObserver = new MutationObserver(() => this.updateMaxWidth())\n this.mutationObserver.observe(this.el, { childList: true, subtree: true })\n\n this.updateMaxWidth()\n } else {\n this.maxWidth = '100%'\n this.updateContainerStyles()\n }\n }\n\n componentDidLoad() {\n if (!this.el) {\n console.error('Host element is not defined.')\n return\n }\n requestAnimationFrame(() => this.verifActiveTab())\n\n // Use the class method directly\n if (this.el) {\n try {\n const hndClick = this.handleTabClick\n this.el.addEventListener('keydown', this.handleKeyNavigation)\n this.el.addEventListener('itemTabClick', hndClick)\n } catch (error) {\n console.error('Failed to add event listener for itemTabClick:', error)\n }\n }\n }\n\n disconnectedCallback() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', () => this.updateMaxWidth())\n }\n if (this.mutationObserver) this.mutationObserver.disconnect()\n this.el.removeEventListener('itemTabClick', this.handleTabClick)\n this.el.removeEventListener('keydown', this.handleKeyNavigation) // Remove the keydown listener\n }\n\n private handleTabClick: (event: CustomEvent<{ id: string }>) => void = (event) => {\n if (event.detail && event.detail.id) {\n this.setActiveTab(event.detail.id.trim())\n }\n }\n\n private setActiveTab(newActiveTab: string) {\n // if (this.activeTab !== newActiveTab) {\n this.activeTab = newActiveTab\n // }\n }\n\n render() {\n return (\n <Host style={this.hostStyle}>\n <div class={this.getCssClassMap()} style={this.containerStyle}>\n <nav\n class=\"tab-nav\"\n data-counter={this.tabItems.some((tab) => tab.hasAttribute('counter')) ? 'true' : 'false'}\n >\n <ul role=\"tablist\">\n <slot></slot>\n </ul>\n </nav>\n <div class=\"tab-content\" innerHTML={this.tabContent}></div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"br-table-cell.entry.esm.js","sources":["../../packages/webcomponents/src/components/table-cell/table-cell.scss?tag=br-table-cell&encapsulation=shadow","../../packages/webcomponents/src/components/table-cell/table-cell.tsx"],"sourcesContent":[":host {\n display: block;\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 - Descrição do slot\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,4gzDAA4gzD;;ACOjizD,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;;;;;AAOpB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,iBAAiB,GAAY,KAAK;AAE3D;;AAEG;IACsB,eAAe,GAAoB,MAAM;AAElE;;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;;;;;;;;;;"}
|
|
@@ -0,0 +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-header-cell/table-header-cell.scss?tag=br-table-header-cell&encapsulation=shadow","../../packages/webcomponents/src/components/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: block;\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 * 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 - Descrição do slot\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,6/yDAA6/yD;;MCiB3gzD,eAAe,GAAA,MAAA;;;;;;AAO1B;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;IACsB,iBAAiB,GAAY,KAAK;AAE3D;;;AAGG;IACsB,eAAe,GAAoB,MAAM;IAE1D,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;;AAG5D;;AAEG;AACM,IAAA,0BAA0B;AAEnC;;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;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"br-table-header-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table-header-row/table-header-row.scss?tag=br-table-header-row&encapsulation=shadow","../../packages/webcomponents/src/components/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: block;\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 * 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 - Descrição do slot\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,44yDAA44yD;;MCez5yD,cAAc,GAAA,MAAA;;;;;AAOzB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;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;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"br-table-row.entry.esm.js","sources":["../../packages/webcomponents/src/components/table-row/table-row.scss?tag=br-table-row&encapsulation=shadow","../../packages/webcomponents/src/components/table-row/table-row.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/table-row/table-row\";\n\n:host {\n display: block;\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 - Descrição do slot\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,s1yDAAs1yD;;MCe71yD,QAAQ,GAAA,MAAA;;;;;AAOnB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;IAEvE,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;;;;;;;"}
|
|
@@ -0,0 +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 * 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 - Descrição do slot\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,uh3DAAuh3D;;MCe3h3D,KAAK,GAAA,MAAA;;;;;AAOhB;;;AAGG;AAC+B,IAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;;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;;;;;;;"}
|