@govbr-ds/webcomponents 2.0.0-next.61 → 2.0.0-next.63
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-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkbox_3.cjs.entry.js +17 -28
- package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-collapse_2.cjs.entry.js +10 -15
- package/dist/cjs/br-datetime-picker.cjs.entry.js +18 -31
- package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown_2.cjs.entry.js +73 -56
- package/dist/cjs/br-header-list.cjs.entry.js +6 -13
- package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header.cjs.entry.js +2 -5
- package/dist/cjs/br-header.entry.cjs.js.map +1 -1
- package/dist/cjs/br-item.cjs.entry.js +3 -6
- package/dist/cjs/br-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +13 -16
- package/dist/cjs/br-message.entry.cjs.js.map +1 -1
- package/dist/cjs/br-modal.cjs.entry.js +123 -24
- package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/br-scrim.cjs.entry.js +108 -25
- package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skip-link.cjs.entry.js +24 -29
- package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skiplink-item.cjs.entry.js +32 -37
- package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step_2.cjs.entry.js +33 -56
- package/dist/cjs/br-switch.cjs.entry.js +3 -6
- package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/br-textarea.cjs.entry.js +5 -8
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tooltip.cjs.entry.js +1 -2
- package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard-panel.cjs.entry.js +6 -13
- package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard.cjs.entry.js +147 -182
- package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
- package/dist/cjs/{floating-ui-D_WzFT9x.js → floating-ui-CkTJEp-y.js} +11 -15
- package/dist/{esm/floating-ui-DBIzWbO2.js.map → cjs/floating-ui-CkTJEp-y.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +9 -16
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/collapse/collapse.js +10 -15
- package/dist/collection/components/collapse/collapse.js.map +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +18 -31
- package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +13 -20
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/header/header-list/header-list.js +6 -13
- package/dist/collection/components/header/header-list/header-list.js.map +1 -1
- package/dist/collection/components/header/header.js +2 -5
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/item/item.js +3 -6
- package/dist/collection/components/item/item.js.map +1 -1
- package/dist/collection/components/message/message.js +13 -16
- package/dist/collection/components/message/message.js.map +1 -1
- package/dist/collection/components/modal/modal.js +156 -46
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/radio/radio.js +8 -13
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/scrim/scrim.js +108 -25
- package/dist/collection/components/scrim/scrim.js.map +1 -1
- package/dist/collection/components/select/select.js +79 -36
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +32 -37
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js.map +1 -1
- package/dist/collection/components/skip-link/skip-link.js +24 -29
- package/dist/collection/components/skip-link/skip-link.js.map +1 -1
- package/dist/collection/components/step/step-item/step-item.js +13 -26
- package/dist/collection/components/step/step-item/step-item.js.map +1 -1
- package/dist/collection/components/step/step.js +20 -31
- package/dist/collection/components/step/step.js.map +1 -1
- package/dist/collection/components/switch/switch.js +3 -6
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +5 -8
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +6 -13
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js.map +1 -1
- package/dist/collection/components/wizard/wizard.js +147 -182
- package/dist/collection/components/wizard/wizard.js.map +1 -1
- package/dist/collection/pages/components/modal/index.js +1 -53
- package/dist/collection/utils/floating-ui.js +9 -12
- package/dist/collection/utils/floating-ui.js.map +1 -1
- package/dist/components/br-breadcrumb.js +3 -3
- package/dist/components/br-checkbox.js +4 -4
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.js +4 -4
- package/dist/components/br-datetime-picker.js +1981 -1995
- package/dist/components/br-datetime-picker.js.map +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.js +3 -3
- package/dist/components/br-footer-item.js +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-link.js +1 -1
- package/dist/components/br-header-list.js +31 -39
- package/dist/components/br-header-list.js.map +1 -1
- package/dist/components/br-header.js +63 -67
- package/dist/components/br-header.js.map +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-list.js +3 -3
- package/dist/components/br-message.js +28 -32
- package/dist/components/br-message.js.map +1 -1
- package/dist/components/br-modal.js +140 -49
- package/dist/components/br-modal.js.map +1 -1
- package/dist/components/br-pagination.js +7 -7
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-scrim.js +112 -43
- package/dist/components/br-scrim.js.map +1 -1
- package/dist/components/br-select.js +3 -3
- package/dist/components/br-skip-link.js +38 -44
- package/dist/components/br-skip-link.js.map +1 -1
- package/dist/components/br-skiplink-item.js +55 -61
- package/dist/components/br-skiplink-item.js.map +1 -1
- package/dist/components/br-step-item.js +4 -4
- package/dist/components/br-step.js +4 -4
- package/dist/components/br-switch.js +12 -16
- package/dist/components/br-switch.js.map +1 -1
- package/dist/components/br-textarea.js +14 -18
- package/dist/components/br-textarea.js.map +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-wizard-panel.js +13 -21
- package/dist/components/br-wizard-panel.js.map +1 -1
- package/dist/components/br-wizard.js +190 -228
- package/dist/components/br-wizard.js.map +1 -1
- package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
- package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
- package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
- package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
- package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
- package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
- package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
- package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
- package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
- package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
- package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
- package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
- package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
- package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
- package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
- package/dist/components/p-DdjKNpU3.js.map +1 -0
- package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
- package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
- package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
- package/dist/custom-elements.json +1613 -430
- package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
- package/dist/esm/br-checkbox_3.entry.js +17 -28
- package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
- package/dist/esm/br-collapse_2.entry.js +10 -15
- package/dist/esm/br-datetime-picker.entry.js +18 -31
- package/dist/esm/br-datetime-picker.entry.js.map +1 -1
- package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
- package/dist/esm/br-dropdown_2.entry.js +73 -56
- package/dist/esm/br-header-list.entry.js +6 -13
- package/dist/esm/br-header-list.entry.js.map +1 -1
- package/dist/esm/br-header.entry.js +2 -5
- package/dist/esm/br-header.entry.js.map +1 -1
- package/dist/esm/br-item.entry.js +3 -6
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +13 -16
- package/dist/esm/br-message.entry.js.map +1 -1
- package/dist/esm/br-modal.entry.js +123 -24
- package/dist/esm/br-modal.entry.js.map +1 -1
- package/dist/esm/br-scrim.entry.js +108 -25
- package/dist/esm/br-scrim.entry.js.map +1 -1
- package/dist/esm/br-skip-link.entry.js +24 -29
- package/dist/esm/br-skip-link.entry.js.map +1 -1
- package/dist/esm/br-skiplink-item.entry.js +32 -37
- package/dist/esm/br-skiplink-item.entry.js.map +1 -1
- package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
- package/dist/esm/br-step_2.entry.js +33 -56
- package/dist/esm/br-switch.entry.js +3 -6
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-textarea.entry.js +5 -8
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-tooltip.entry.js +1 -2
- package/dist/esm/br-tooltip.entry.js.map +1 -1
- package/dist/esm/br-wizard-panel.entry.js +6 -13
- package/dist/esm/br-wizard-panel.entry.js.map +1 -1
- package/dist/esm/br-wizard.entry.js +147 -182
- package/dist/esm/br-wizard.entry.js.map +1 -1
- package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
- package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +634 -578
- package/dist/hydrate/index.mjs +634 -578
- package/dist/types/components/modal/modal.d.ts +46 -4
- package/dist/types/components/scrim/scrim.d.ts +39 -1
- package/dist/types/components/select/select.d.ts +5 -0
- package/dist/types/components.d.ts +21 -11
- package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
- package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
- package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
- package/dist/webcomponents/{p-097912c2.entry.js → p-1991135d.entry.js} +30 -36
- package/dist/webcomponents/p-1991135d.entry.js.map +1 -0
- package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
- package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
- package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
- package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
- package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
- package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
- package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
- package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
- package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
- package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
- package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
- package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
- package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
- package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
- package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
- package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
- package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
- package/dist/webcomponents/p-83001853.entry.js.map +1 -0
- package/dist/webcomponents/{p-28dba962.entry.js → p-90401ecd.entry.js} +124 -34
- package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
- package/dist/webcomponents/{p-e7b38c63.entry.js → p-a2eec4fb.entry.js} +112 -43
- package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
- package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
- package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
- package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
- package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
- package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
- package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
- package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
- package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
- package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
- package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
- package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
- package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/dist/webcomponents.html-custom-data.json +1708 -349
- package/package.json +1 -1
- package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
- package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
- package/dist/components/p-7kxAU6Gr.js.map +0 -1
- package/dist/components/p-DIPMDb5E.js +0 -55
- package/dist/components/p-DIPMDb5E.js.map +0 -1
- package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
- package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
- package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
- package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
- package/dist/webcomponents/p-28dba962.entry.js.map +0 -1
- package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
- package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
- package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
- package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
- package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
- package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
- package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
- package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
- package/dist/webcomponents/p-DIPMDb5E.js +0 -55
- package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
- package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
- package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
- package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
- package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
- package/dist/webcomponents/p-e7b38c63.entry.js.map +0 -1
- /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { p as t, H as i, d as e, h as o, c as r } from "./p-DSkSDmzD.js";
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { H as a } from "./p-D4N4PPot.js";
|
|
8
8
|
|
|
9
|
-
import { H as n } from "./p-D4N4PPot.js";
|
|
9
|
+
const n = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{--br-scrim-opacity:1}:host .br-scrim{visibility:hidden;-webkit-transition:visibility .3s ease;transition:visibility .3s ease;z-index:var(--z-index-layer-4);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:auto}:host .br-scrim.mode-fullscreen{position:fixed;inset:0}:host .br-scrim.mode-parent{position:absolute;inset:0;width:100%;height:100%}:host .br-scrim.opened{visibility:visible;pointer-events:auto}:host .mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--surface-overlay-scrim);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:auto}:host .br-scrim.opened .mask{opacity:var(--br-scrim-opacity)}:host .content{position:relative;outline:none;pointer-events:auto;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;background:rgba(0,0,0,0);padding:0;margin:0;border:none;-webkit-box-shadow:none;box-shadow:none;overflow:visible;contain:none;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;z-index:calc(var(--z-index-layer-4) + 1)}:host .content:focus{outline:var(--focus-outline);outline-offset:var(--focus-offset);-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow)}:host .br-scrim.opened .content{opacity:1;-webkit-transform:scale(1);transform:scale(1);pointer-events:auto}:host .br-scrim.position-top .content{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-bottom .content{position:absolute;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-left .content{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-right .content{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-center .content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .content ::slotted(*){opacity:1 !important;-webkit-filter:none;filter:none}@media (width <= 768px){:host .content{max-width:95%;max-height:95%;width:auto}:host .br-scrim.position-top .content,:host .br-scrim.position-bottom .content{width:100%;max-width:100%;border-radius:0}}";
|
|
10
10
|
|
|
11
|
-
const s = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}:host{--br-scrim-opacity:1}:host .br-scrim{visibility:hidden;-webkit-transition:visibility .3s ease;transition:visibility .3s ease;z-index:var(--z-index-layer-4);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:auto}:host .br-scrim.mode-fullscreen{position:fixed;inset:0}:host .br-scrim.mode-parent{position:absolute;inset:0;width:100%;height:100%}:host .br-scrim.opened{visibility:visible;pointer-events:auto}:host .mask{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--surface-overlay-scrim);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:auto}:host .br-scrim.opened .mask{opacity:var(--br-scrim-opacity)}:host .content{position:relative;outline:none;pointer-events:auto;opacity:0;-webkit-transform:scale(0.9);transform:scale(0.9);-webkit-transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,-webkit-transform .3s ease;transition:opacity .3s ease,transform .3s ease;transition:opacity .3s ease,transform .3s ease,-webkit-transform .3s ease;background:rgba(0,0,0,0);padding:0;margin:0;border:none;-webkit-box-shadow:none;box-shadow:none;overflow:visible;contain:none;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;z-index:calc(var(--z-index-layer-4) + 1)}:host .content:focus{outline:var(--focus-outline);outline-offset:var(--focus-offset);-webkit-box-shadow:var(--focus-shadow);box-shadow:var(--focus-shadow)}:host .br-scrim.opened .content{opacity:1;-webkit-transform:scale(1);transform:scale(1);pointer-events:auto}:host .br-scrim.position-top .content{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-bottom .content{position:absolute;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}:host .br-scrim.position-left .content{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-right .content{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}:host .br-scrim.position-center .content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}:host .content ::slotted(*){opacity:1 !important;-webkit-filter:none;filter:none}@media (width <= 768px){:host .content{max-width:95%;max-height:95%;width:auto}:host .br-scrim.position-top .content,:host .br-scrim.position-bottom .content{width:100%;max-width:100%;border-radius:0}}";
|
|
12
|
-
|
|
13
|
-
const l = t(class t extends i {
|
|
11
|
+
const s = t(class t extends i {
|
|
14
12
|
constructor(t) {
|
|
15
13
|
super();
|
|
16
14
|
if (t !== false) {
|
|
@@ -23,7 +21,7 @@ const l = t(class t extends i {
|
|
|
23
21
|
/**
|
|
24
22
|
* Identificador único.
|
|
25
23
|
* Caso não seja fornecido, um ID gerado automaticamente será usado.
|
|
26
|
-
*/ this.customId =
|
|
24
|
+
*/ this.customId = a.generateUniqueId();
|
|
27
25
|
/**
|
|
28
26
|
* Ativa/desativa o scrim
|
|
29
27
|
*/ this.isOpen = false;
|
|
@@ -77,6 +75,25 @@ const l = t(class t extends i {
|
|
|
77
75
|
this.previouslyFocusedElement = null;
|
|
78
76
|
this.focusTimeoutId = null;
|
|
79
77
|
this.restoreFocusTimeoutId = null;
|
|
78
|
+
// ======================================================================
|
|
79
|
+
// GERENCIAMENTO DE COMPONENTES FILHOS
|
|
80
|
+
// ======================================================================
|
|
81
|
+
/**
|
|
82
|
+
* Handler para evento brModalOpen emitido por modal filha
|
|
83
|
+
*/ this.handleModalOpen = t => {
|
|
84
|
+
const i = t.target;
|
|
85
|
+
if (!this.isDirectChild(i)) return;
|
|
86
|
+
if (!this.isOpen) {
|
|
87
|
+
this.open();
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Handler para evento brModalClose emitido por modal filha
|
|
92
|
+
*/ this.handleModalClose = t => {
|
|
93
|
+
const i = t.target;
|
|
94
|
+
if (!this.isDirectChild(i)) return;
|
|
95
|
+
this.close();
|
|
96
|
+
};
|
|
80
97
|
this.handleActivatorClick = () => {
|
|
81
98
|
this.toggle();
|
|
82
99
|
};
|
|
@@ -94,6 +111,10 @@ const l = t(class t extends i {
|
|
|
94
111
|
const e = (t = this.scrollOrigin) !== null && t !== void 0 ? t : this.lastScrollTop;
|
|
95
112
|
if (Math.abs(i - e) > this.scrollThreshold) {
|
|
96
113
|
this.scrollOrigin = null;
|
|
114
|
+
// Não fecha se tiver modal filha com autoClose=false ou não definido
|
|
115
|
+
if (this.hasModalWithAutoClose()) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
97
118
|
this.isOpen = false;
|
|
98
119
|
this.handleOpenChange(false);
|
|
99
120
|
return;
|
|
@@ -127,7 +148,9 @@ const l = t(class t extends i {
|
|
|
127
148
|
}
|
|
128
149
|
if (t.key === "Escape" && !this.disableCloseOnClick) {
|
|
129
150
|
t.preventDefault();
|
|
130
|
-
this.
|
|
151
|
+
if (!this.hasModalWithAutoClose()) {
|
|
152
|
+
this.isOpen = false;
|
|
153
|
+
}
|
|
131
154
|
}
|
|
132
155
|
};
|
|
133
156
|
// Intercepta TODOS os eventos de clique globalmente quando scrim está ativo
|
|
@@ -158,11 +181,14 @@ const l = t(class t extends i {
|
|
|
158
181
|
}), 0);
|
|
159
182
|
}
|
|
160
183
|
};
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Handler para clique na máscara do scrim
|
|
186
|
+
* Fecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false
|
|
187
|
+
*/ this.handleMaskClick = t => {
|
|
165
188
|
if (!this.disableCloseOnClick) {
|
|
189
|
+
if (this.hasModalWithAutoClose()) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
166
192
|
this.close();
|
|
167
193
|
}
|
|
168
194
|
};
|
|
@@ -170,7 +196,7 @@ const l = t(class t extends i {
|
|
|
170
196
|
// ======================================================================
|
|
171
197
|
// LIFECYCLE HOOKS E WATCHERS
|
|
172
198
|
// ======================================================================
|
|
173
|
-
handleOpenChange(t) {
|
|
199
|
+
async handleOpenChange(t) {
|
|
174
200
|
// Cancelar qualquer timeout anterior
|
|
175
201
|
if (this.focusTimeoutId !== null) {
|
|
176
202
|
clearTimeout(this.focusTimeoutId);
|
|
@@ -227,6 +253,7 @@ const l = t(class t extends i {
|
|
|
227
253
|
this.setupActivator();
|
|
228
254
|
this.setupActivatorSlotClick();
|
|
229
255
|
this.addContentEventListener();
|
|
256
|
+
this.listenToModalEvents();
|
|
230
257
|
if (this.isActive) {
|
|
231
258
|
this.applyScrollStrategy();
|
|
232
259
|
this.addGlobalEventInterception();
|
|
@@ -259,8 +286,7 @@ const l = t(class t extends i {
|
|
|
259
286
|
clearTimeout(this.restoreFocusTimeoutId);
|
|
260
287
|
this.restoreFocusTimeoutId = null;
|
|
261
288
|
}
|
|
262
|
-
|
|
263
|
-
window.removeEventListener("scroll", this.handleScrollClose);
|
|
289
|
+
window.removeEventListener("scroll", this.handleScrollClose);
|
|
264
290
|
window.removeEventListener("scroll", this.handleBlockScroll);
|
|
265
291
|
if (this.contentRef !== null) {
|
|
266
292
|
this.contentRef.removeEventListener("keydown", this.handleKeyDown);
|
|
@@ -268,6 +294,50 @@ const l = t(class t extends i {
|
|
|
268
294
|
this.removeActivatorClickListener();
|
|
269
295
|
this.cleanupActivatorSlotClick();
|
|
270
296
|
this.removeGlobalEventInterception();
|
|
297
|
+
this.removeModalEventListener();
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Verifica se um elemento é filho direto deste scrim (não nested)
|
|
301
|
+
*/ isDirectChild(t) {
|
|
302
|
+
const i = this.getDirectChildren();
|
|
303
|
+
return i.some((i => i === t || i.contains(t)));
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Adiciona listeners para eventos brModalOpen e brModalClose das modais filhas
|
|
307
|
+
*/ listenToModalEvents() {
|
|
308
|
+
this.el.addEventListener("brModalOpen", this.handleModalOpen);
|
|
309
|
+
this.el.addEventListener("brModalClose", this.handleModalClose);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Remove listeners dos eventos da modal
|
|
313
|
+
*/ removeModalEventListener() {
|
|
314
|
+
this.el.removeEventListener("brModalOpen", this.handleModalOpen);
|
|
315
|
+
this.el.removeEventListener("brModalClose", this.handleModalClose);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Retorna os elementos filhos diretos do scrim via slot padrão
|
|
319
|
+
*/ getDirectChildren() {
|
|
320
|
+
const t = this.el.shadowRoot;
|
|
321
|
+
if (t === null) return [];
|
|
322
|
+
const i = t.querySelector("slot:not([name])");
|
|
323
|
+
if (i === null) return [];
|
|
324
|
+
return i.assignedElements();
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Busca uma modal filha direta do scrim
|
|
328
|
+
*/ findModalChild() {
|
|
329
|
+
var t;
|
|
330
|
+
const i = this.getDirectChildren();
|
|
331
|
+
const e = i.find((t => t.tagName === "BR-MODAL"));
|
|
332
|
+
return (t = e) !== null && t !== void 0 ? t : null;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Verifica se há uma modal filha com autoClose=false (padrão ou explícito)
|
|
336
|
+
* Retorna true se:
|
|
337
|
+
* - Existe modal filha E autoClose não é explicitamente true
|
|
338
|
+
*/ hasModalWithAutoClose() {
|
|
339
|
+
const t = this.findModalChild();
|
|
340
|
+
return t !== null && t.autoClose !== true;
|
|
271
341
|
}
|
|
272
342
|
// ======================================================================
|
|
273
343
|
// GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)
|
|
@@ -447,7 +517,11 @@ const l = t(class t extends i {
|
|
|
447
517
|
return t.filter((t => t.offsetWidth > 0 && t.offsetHeight > 0 && getComputedStyle(t).visibility !== "hidden"));
|
|
448
518
|
}
|
|
449
519
|
shouldHandleEscape(t) {
|
|
450
|
-
|
|
520
|
+
if ((t.key === "Escape" || t.key === "Esc") && this.isActive && !this.disableCloseOnClick) {
|
|
521
|
+
// Não fecha se tiver modal filha com autoClose=false ou não definido
|
|
522
|
+
return !this.hasModalWithAutoClose();
|
|
523
|
+
}
|
|
524
|
+
return false;
|
|
451
525
|
}
|
|
452
526
|
handleTabNavigation(t) {
|
|
453
527
|
const i = this.getFocusableElements();
|
|
@@ -504,6 +578,9 @@ const l = t(class t extends i {
|
|
|
504
578
|
document.removeEventListener("focus", this.handleGlobalFocus, true);
|
|
505
579
|
document.removeEventListener("focusin", this.handleGlobalFocus, true);
|
|
506
580
|
}
|
|
581
|
+
// ======================================================================
|
|
582
|
+
// UTILITÁRIOS
|
|
583
|
+
// ======================================================================
|
|
507
584
|
getCssClassMap() {
|
|
508
585
|
return {
|
|
509
586
|
"br-scrim": true,
|
|
@@ -524,40 +601,32 @@ const l = t(class t extends i {
|
|
|
524
601
|
/**
|
|
525
602
|
* Define o limite de rolagem para o fechamento automático do scrim.
|
|
526
603
|
*/
|
|
527
|
-
setScrollThreshold(t) {
|
|
528
|
-
|
|
529
|
-
this.scrollThreshold = t;
|
|
530
|
-
}));
|
|
604
|
+
async setScrollThreshold(t) {
|
|
605
|
+
this.scrollThreshold = t;
|
|
531
606
|
}
|
|
532
607
|
/**
|
|
533
608
|
* Método público para exibir o scrim
|
|
534
|
-
*/ open() {
|
|
535
|
-
|
|
536
|
-
this.isOpen = true;
|
|
537
|
-
}));
|
|
609
|
+
*/ async open() {
|
|
610
|
+
this.isOpen = true;
|
|
538
611
|
}
|
|
539
612
|
/**
|
|
540
613
|
* Método público para esconder o scrim
|
|
541
|
-
*/ close() {
|
|
542
|
-
|
|
543
|
-
this.isOpen = false;
|
|
544
|
-
}));
|
|
614
|
+
*/ async close() {
|
|
615
|
+
this.isOpen = false;
|
|
545
616
|
}
|
|
546
617
|
/**
|
|
547
618
|
* Método público para alternar o estado de exibição do scrim
|
|
548
|
-
*/ toggle() {
|
|
549
|
-
|
|
550
|
-
this.isOpen = !this.isActive;
|
|
551
|
-
}));
|
|
619
|
+
*/ async toggle() {
|
|
620
|
+
this.isOpen = !this.isActive;
|
|
552
621
|
}
|
|
553
622
|
render() {
|
|
554
623
|
return o(r, {
|
|
555
|
-
key: "
|
|
624
|
+
key: "249de7af4056263464615cbe086b419f74b8981b"
|
|
556
625
|
}, o("slot", {
|
|
557
|
-
key: "
|
|
626
|
+
key: "1698faa6b492e1ec594eba8425f20582a2af0e4a",
|
|
558
627
|
name: "activator"
|
|
559
628
|
}), o("div", {
|
|
560
|
-
key: "
|
|
629
|
+
key: "adedf3eb84f3d8f79ac9bb19209022301453c019",
|
|
561
630
|
class: this.getCssClassMap(),
|
|
562
631
|
id: this.customId,
|
|
563
632
|
role: "dialog",
|
|
@@ -565,18 +634,18 @@ const l = t(class t extends i {
|
|
|
565
634
|
"aria-label": this.ariaLabel || "Conteúdo do diálogo",
|
|
566
635
|
"data-visible": this.isActive ? "true" : "false"
|
|
567
636
|
}, o("div", {
|
|
568
|
-
key: "
|
|
637
|
+
key: "ef7408a6672fabf4d2f79bc7922f301fd102652e",
|
|
569
638
|
class: "mask",
|
|
570
639
|
onClick: this.handleMaskClick
|
|
571
640
|
}), o("div", {
|
|
572
|
-
key: "
|
|
641
|
+
key: "91ffb1a84478f09fc90cefbb97180c5db13dba5c",
|
|
573
642
|
ref: t => this.contentRef = t,
|
|
574
643
|
id: `${this.customId}-content`,
|
|
575
644
|
class: "content",
|
|
576
645
|
tabIndex: -1,
|
|
577
646
|
onKeyDown: this.handleKeyDown
|
|
578
647
|
}, o("slot", {
|
|
579
|
-
key: "
|
|
648
|
+
key: "0600ac804980446103154cebf83389ac92e44d9d"
|
|
580
649
|
}))));
|
|
581
650
|
}
|
|
582
651
|
static get formAssociated() {
|
|
@@ -595,7 +664,7 @@ const l = t(class t extends i {
|
|
|
595
664
|
};
|
|
596
665
|
}
|
|
597
666
|
static get style() {
|
|
598
|
-
return
|
|
667
|
+
return n;
|
|
599
668
|
}
|
|
600
669
|
}, [ 321, "br-scrim", {
|
|
601
670
|
customId: [ 513, "custom-id" ],
|
|
@@ -624,7 +693,7 @@ const l = t(class t extends i {
|
|
|
624
693
|
activator: [ "handleActivatorChange" ]
|
|
625
694
|
} ]);
|
|
626
695
|
|
|
627
|
-
|
|
696
|
+
s.FOCUSABLE_SELECTORS = [ "a[href]:not([disabled])", "button:not([disabled])", "br-button:not([disabled])", "input:not([disabled])", "br-input:not([disabled])", "select:not([disabled])", "br-select:not([disabled])", "textarea:not([disabled])", "br-textarea:not([disabled])", '[tabindex]:not([tabindex="-1"])' ].join(",");
|
|
628
697
|
|
|
629
698
|
function defineCustomElement$1() {
|
|
630
699
|
if (typeof customElements === "undefined") {
|
|
@@ -635,17 +704,17 @@ function defineCustomElement$1() {
|
|
|
635
704
|
switch (t) {
|
|
636
705
|
case "br-scrim":
|
|
637
706
|
if (!customElements.get(t)) {
|
|
638
|
-
customElements.define(t,
|
|
707
|
+
customElements.define(t, s);
|
|
639
708
|
}
|
|
640
709
|
break;
|
|
641
710
|
}
|
|
642
711
|
}));
|
|
643
712
|
}
|
|
644
713
|
|
|
645
|
-
const
|
|
714
|
+
const l = s;
|
|
646
715
|
|
|
647
|
-
const
|
|
716
|
+
const c = defineCustomElement$1;
|
|
648
717
|
|
|
649
|
-
export {
|
|
718
|
+
export { l as BrScrim, c as defineCustomElement };
|
|
650
719
|
//# sourceMappingURL=br-scrim.js.map
|
|
651
720
|
//# sourceMappingURL=br-scrim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scrimCss","Scrim","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","Helpers","generateUniqueId","isOpen","disableCloseOnClick","zIndex","bgColor","customOpacity","displayMode","scrollThreshold","activator","ariaLabel","isActive","hasActivatorSlot","contentRef","activatorElement","scrollOffset","lastScrollTop","scrollOrigin","previouslyFocusedElement","focusTimeoutId","restoreFocusTimeoutId","handleActivatorClick","toggle","handleBlockScroll","e","scrollStrategy","window","scrollTo","preventDefault","stopPropagation","handleScrollClose","currentScroll","getScrollPosition","reference","_a","Math","abs","handleOpenChange","handleKeyDown","event","shouldHandleEscape","key","handleTabNavigation","handleGlobalKeyDown","target","isElementInsideScrim","stopImmediatePropagation","focusFirstElement","handleGlobalClick","close","handleGlobalFocus","setTimeout","handleMaskClick","_event","newValue","clearTimeout","scrollY","updateStyles","document","activeElement","applyScrollStrategy","addGlobalEventInterception","brScrimOpen","emit","resetScrolling","removeGlobalEventInterception","restoreFocus","brScrimClose","undefined","el","style","setProperty","handleActivatorChange","removeActivatorClickListener","setupActivator","componentWillLoad","checkActivatorSlot","componentDidLoad","setupActivatorSlotClick","addContentEventListener","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","cleanupActivatorSlotClick","slotName","querySelector","shadowRoot","slotEl","assignedElements","_b","call","length","console","warn","parentElement","element","addActivatorClickListener","enableScrollBlock","enableScrollWatcher","targetWindow","ownerDocument","defaultView","_d","_c","pageYOffset","body","documentElement","removeProperty","setAttribute","focus","focusableElements","getFocusableElements","firstElement","scrollIntoView","block","inline","preventScroll","targetElement","isConnected","error","defaultSlot","flatten","forEach","matches","FOCUSABLE_SELECTORS","push","nestedFocusables","Array","from","querySelectorAll","filterVisibleElements","elements","filter","offsetWidth","offsetHeight","getComputedStyle","visibility","lastElement","isTabForward","shiftKey","shouldTrapFocus","wrapFocus","contains","getCssClassMap","opened","positionContent","setScrollThreshold","threshold","open","render","h","Host","name","class","id","role","onClick","ref","tabIndex","onKeyDown","join"],"sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\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 Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/scrim?tab=designer).\n *\n * @slot default - Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.\n * @slot activator - Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private scrollOrigin: number | null = null\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n if (newValue && this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n }\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n // Remover event listeners\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private getScrollPosition(): number {\n const targetWindow = this.el?.ownerDocument?.defaultView || window\n return targetWindow?.scrollY ?? targetWindow?.pageYOffset ?? 0\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n this.scrollOrigin = null\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = this.getScrollPosition()\n const reference = this.scrollOrigin ?? this.lastScrollTop\n if (Math.abs(currentScroll - reference) > this.scrollThreshold) {\n this.scrollOrigin = null\n this.isOpen = false\n this.handleOpenChange(false)\n return\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.isOpen = false\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n this.isOpen = false\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n // ======================================================================\n // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS\n // ======================================================================\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n this.close()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.isOpen = true\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.isOpen = false\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.isOpen = !this.isActive\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["scrimCss","Scrim","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","customId","Helpers","generateUniqueId","isOpen","disableCloseOnClick","zIndex","bgColor","customOpacity","displayMode","scrollThreshold","activator","ariaLabel","isActive","hasActivatorSlot","contentRef","activatorElement","scrollOffset","lastScrollTop","scrollOrigin","previouslyFocusedElement","focusTimeoutId","restoreFocusTimeoutId","handleModalOpen","event","modalElement","target","isDirectChild","open","handleModalClose","close","handleActivatorClick","toggle","handleBlockScroll","e","scrollStrategy","window","scrollTo","preventDefault","stopPropagation","handleScrollClose","currentScroll","getScrollPosition","reference","_a","Math","abs","hasModalWithAutoClose","handleOpenChange","handleKeyDown","shouldHandleEscape","key","handleTabNavigation","handleGlobalKeyDown","isElementInsideScrim","stopImmediatePropagation","focusFirstElement","handleGlobalClick","handleGlobalFocus","setTimeout","handleMaskClick","_event","newValue","clearTimeout","scrollY","updateStyles","document","activeElement","applyScrollStrategy","addGlobalEventInterception","brScrimOpen","emit","resetScrolling","removeGlobalEventInterception","restoreFocus","brScrimClose","undefined","el","style","setProperty","handleActivatorChange","removeActivatorClickListener","setupActivator","componentWillLoad","checkActivatorSlot","componentDidLoad","setupActivatorSlotClick","addContentEventListener","listenToModalEvents","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","cleanupActivatorSlotClick","removeModalEventListener","element","children","getDirectChildren","some","child","contains","shadowRoot","slot","querySelector","assignedElements","findModalChild","find","tagName","modal","autoClose","slotName","slotEl","_b","call","length","console","warn","parentElement","addActivatorClickListener","enableScrollBlock","enableScrollWatcher","targetWindow","ownerDocument","defaultView","_d","_c","pageYOffset","body","documentElement","removeProperty","setAttribute","focus","focusableElements","getFocusableElements","firstElement","scrollIntoView","block","inline","preventScroll","targetElement","isConnected","error","defaultSlot","flatten","forEach","matches","FOCUSABLE_SELECTORS","push","nestedFocusables","Array","from","querySelectorAll","filterVisibleElements","elements","filter","offsetWidth","offsetHeight","getComputedStyle","visibility","lastElement","isTabForward","shiftKey","shouldTrapFocus","wrapFocus","getCssClassMap","opened","positionContent","setScrollThreshold","threshold","render","h","Host","name","class","id","role","onClick","ref","tabIndex","onKeyDown","join"],"sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\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 Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/scrim?tab=designer).\n *\n * @slot default - Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.\n * @slot activator - Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private scrollOrigin: number | null = null\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n async handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n if (newValue && this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n }\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n this.listenToModalEvents()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n this.removeModalEventListener()\n }\n\n // ======================================================================\n // GERENCIAMENTO DE COMPONENTES FILHOS\n // ======================================================================\n\n /**\n * Handler para evento brModalOpen emitido por modal filha\n */\n private handleModalOpen = (event: Event) => {\n const modalElement = event.target as HTMLElement\n if (!this.isDirectChild(modalElement)) return\n\n if (!this.isOpen) {\n this.open()\n }\n }\n\n /**\n * Handler para evento brModalClose emitido por modal filha\n */\n private handleModalClose = (event: Event) => {\n const modalElement = event.target as HTMLElement\n if (!this.isDirectChild(modalElement)) return\n\n this.close()\n }\n\n /**\n * Verifica se um elemento é filho direto deste scrim (não nested)\n */\n private isDirectChild(element: HTMLElement): boolean {\n const children = this.getDirectChildren()\n return children.some((child) => child === element || child.contains(element))\n }\n\n /**\n * Adiciona listeners para eventos brModalOpen e brModalClose das modais filhas\n */\n private listenToModalEvents() {\n this.el.addEventListener('brModalOpen', this.handleModalOpen)\n this.el.addEventListener('brModalClose', this.handleModalClose)\n }\n\n /**\n * Remove listeners dos eventos da modal\n */\n private removeModalEventListener() {\n this.el.removeEventListener('brModalOpen', this.handleModalOpen)\n this.el.removeEventListener('brModalClose', this.handleModalClose)\n }\n\n /**\n * Retorna os elementos filhos diretos do scrim via slot padrão\n */\n private getDirectChildren(): Element[] {\n const shadowRoot = this.el.shadowRoot\n if (shadowRoot === null) return []\n\n const slot = shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement | null\n if (slot === null) return []\n\n return slot.assignedElements()\n }\n\n /**\n * Busca uma modal filha direta do scrim\n */\n private findModalChild(): HTMLBrModalElement | null {\n const children = this.getDirectChildren()\n const modalElement = children.find((child) => child.tagName === 'BR-MODAL')\n return (modalElement as HTMLBrModalElement | undefined) ?? null\n }\n\n /**\n * Verifica se há uma modal filha com autoClose=false (padrão ou explícito)\n * Retorna true se:\n * - Existe modal filha E autoClose não é explicitamente true\n */\n private hasModalWithAutoClose(): boolean {\n const modal = this.findModalChild()\n return modal !== null && modal.autoClose !== true\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private getScrollPosition(): number {\n const targetWindow = this.el?.ownerDocument?.defaultView || window\n return targetWindow?.scrollY ?? targetWindow?.pageYOffset ?? 0\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n this.scrollOrigin = null\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = this.getScrollPosition()\n const reference = this.scrollOrigin ?? this.lastScrollTop\n if (Math.abs(currentScroll - reference) > this.scrollThreshold) {\n this.scrollOrigin = null\n // Não fecha se tiver modal filha com autoClose=false ou não definido\n if (this.hasModalWithAutoClose()) {\n return\n }\n this.isOpen = false\n this.handleOpenChange(false)\n return\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.isOpen = false\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n if (!this.hasModalWithAutoClose()) {\n this.isOpen = false\n }\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n if ((event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick) {\n // Não fecha se tiver modal filha com autoClose=false ou não definido\n return !this.hasModalWithAutoClose()\n }\n return false\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Handler para clique na máscara do scrim\n * Fecha o scrim se disableCloseOnClick for false e não houver modal filha com autoClose=false\n */\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n if (this.hasModalWithAutoClose()) {\n return\n }\n this.close()\n }\n }\n\n // ======================================================================\n // UTILITÁRIOS\n // ======================================================================\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.isOpen = true\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.isOpen = false\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.isOpen = !this.isActive\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Construído por SERPRO
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { S as o, d as s } from "./p-
|
|
5
|
+
import { S as o, d as s } from "./p-DdjKNpU3.js";
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const p = o;
|
|
8
8
|
|
|
9
9
|
const t = s;
|
|
10
10
|
|
|
11
|
-
export {
|
|
11
|
+
export { p as BrSelect, t as defineCustomElement };
|
|
12
12
|
//# sourceMappingURL=br-select.js.map
|
|
13
13
|
//# sourceMappingURL=br-select.js.map
|