@govbr-ds/webcomponents 2.1.0 → 2.1.2
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/README.md +0 -11
- package/cem/custom-elements.json +272 -71
- package/dist/cjs/app-globals-DcqHuMBv.js +9 -0
- package/dist/cjs/br-avatar.cjs.entry.js +248 -0
- package/dist/cjs/br-breadcrumb-item.cjs.entry.js +45 -0
- package/dist/cjs/br-breadcrumb.cjs.entry.js +443 -0
- package/dist/cjs/br-button_2.cjs.entry.js +280 -0
- package/dist/cjs/br-card.cjs.entry.js +111 -0
- package/dist/cjs/br-carousel-page.cjs.entry.js +80 -0
- package/dist/cjs/br-carousel.cjs.entry.js +565 -0
- package/dist/cjs/br-checkbox-group.cjs.entry.js +118 -0
- package/dist/cjs/br-checkbox.cjs.entry.js +288 -0
- package/dist/cjs/br-checkgroup.cjs.entry.js +20 -0
- package/dist/cjs/br-collapse_2.cjs.entry.js +683 -0
- package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +83 -0
- package/dist/cjs/br-cookiebar-group.cjs.entry.js +309 -0
- package/dist/cjs/br-cookiebar-header.cjs.entry.js +39 -0
- package/dist/cjs/br-cookiebar-link.cjs.entry.js +55 -0
- package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +70 -0
- package/dist/cjs/br-cookiebar-note.cjs.entry.js +25 -0
- package/dist/cjs/br-cookiebar.cjs.entry.js +758 -0
- package/dist/cjs/br-crumb.cjs.entry.js +51 -0
- package/dist/cjs/br-date-picker_3.cjs.entry.js +2447 -0
- package/dist/cjs/br-datetime-picker.cjs.entry.js +1886 -0
- package/dist/cjs/br-divider.cjs.entry.js +225 -0
- package/dist/cjs/br-dropdown_2.cjs.entry.js +2000 -0
- package/dist/cjs/br-footer-category.cjs.entry.js +102 -0
- package/dist/cjs/br-footer-item.cjs.entry.js +52 -0
- package/dist/cjs/br-footer-legal.cjs.entry.js +41 -0
- package/dist/cjs/br-footer-logo.cjs.entry.js +104 -0
- package/dist/cjs/br-footer-social.cjs.entry.js +71 -0
- package/dist/cjs/br-footer.cjs.entry.js +92 -0
- package/dist/cjs/br-header-function.cjs.entry.js +142 -0
- package/dist/cjs/br-header-link.cjs.entry.js +60 -0
- package/dist/cjs/br-header-list.cjs.entry.js +279 -0
- package/dist/cjs/br-header-logo.cjs.entry.js +178 -0
- package/dist/cjs/br-header.cjs.entry.js +642 -0
- package/dist/cjs/br-icon.cjs.entry.js +485 -0
- package/dist/cjs/br-input.cjs.entry.js +599 -0
- package/dist/cjs/br-item.cjs.entry.js +367 -0
- package/dist/cjs/br-link.cjs.entry.js +133 -0
- package/dist/cjs/br-loading.cjs.entry.js +505 -0
- package/dist/cjs/br-magic-button.cjs.entry.js +93 -0
- package/dist/cjs/br-menu-group.cjs.entry.js +23 -0
- package/dist/cjs/br-menu-header.cjs.entry.js +47 -0
- package/dist/cjs/br-menu-info.cjs.entry.js +38 -0
- package/dist/cjs/br-menu-item.cjs.entry.js +79 -0
- package/dist/cjs/br-menu-link.cjs.entry.js +56 -0
- package/dist/cjs/br-menu-list.cjs.entry.js +149 -0
- package/dist/cjs/br-menu-logo.cjs.entry.js +75 -0
- package/dist/cjs/br-menu-social.cjs.entry.js +65 -0
- package/dist/cjs/br-menu.cjs.entry.js +993 -0
- package/dist/cjs/br-modal.cjs.entry.js +496 -0
- package/dist/cjs/br-notification-body.cjs.entry.js +71 -0
- package/dist/cjs/br-notification-header.cjs.entry.js +48 -0
- package/dist/cjs/br-notification-item.cjs.entry.js +110 -0
- package/dist/cjs/br-notification.cjs.entry.js +334 -0
- package/dist/cjs/br-pagination.cjs.entry.js +884 -0
- package/dist/cjs/br-radio-group.cjs.entry.js +428 -0
- package/dist/cjs/br-radio.cjs.entry.js +357 -0
- package/dist/cjs/br-scrim.cjs.entry.js +1336 -0
- package/dist/cjs/br-select-input_3.cjs.entry.js +988 -0
- package/dist/cjs/br-sign-in.cjs.entry.js +126 -0
- package/dist/cjs/br-skip-link-item.cjs.entry.js +20 -0
- package/dist/cjs/br-skip-link.cjs.entry.js +362 -0
- package/dist/cjs/br-skiplink-item.cjs.entry.js +192 -0
- package/dist/cjs/br-slider.cjs.entry.js +687 -0
- package/dist/cjs/br-step_2.cjs.entry.js +628 -0
- package/dist/cjs/br-switch.cjs.entry.js +245 -0
- package/dist/cjs/br-tab-item.cjs.entry.js +185 -0
- package/dist/cjs/br-tab.cjs.entry.js +397 -0
- package/dist/cjs/br-table-body.cjs.entry.js +37 -0
- package/dist/cjs/br-table-cell.cjs.entry.js +184 -0
- package/dist/cjs/br-table-header-cell.cjs.entry.js +173 -0
- package/dist/cjs/br-table-header.cjs.entry.js +37 -0
- package/dist/cjs/br-table-row.cjs.entry.js +81 -0
- package/dist/cjs/br-table.cjs.entry.js +680 -0
- package/dist/cjs/br-tag.cjs.entry.js +493 -0
- package/dist/cjs/br-textarea.cjs.entry.js +306 -0
- package/dist/cjs/br-tooltip.cjs.entry.js +627 -0
- package/dist/cjs/br-upload.cjs.entry.js +581 -0
- package/dist/cjs/br-wizard-panel.cjs.entry.js +54 -0
- package/dist/cjs/br-wizard.cjs.entry.js +708 -0
- package/dist/cjs/breakpoint-observer-P8veqXg7.js +144 -0
- package/dist/cjs/clamp-Co_hWptd.js +25 -0
- package/dist/cjs/cookiebar.utils-CB1gQwZ4.js +18 -0
- package/dist/cjs/datetime-picker-constants-B5pWeOn1.js +3827 -0
- package/dist/cjs/event-CmVdNHxl.js +56 -0
- package/dist/cjs/floating-surface-dismiss-ccdiD0KF.js +63 -0
- package/dist/cjs/floating-ui-MBI1osio.js +136 -0
- package/dist/cjs/floating-ui.dom-BUSTaaxR.js +1715 -0
- package/dist/cjs/focus-DuywwJPR.js +30 -0
- package/dist/cjs/getNextElement-R9l3JtM9.js +31 -0
- package/dist/cjs/iconify-icon-DfODV9bf.js +2307 -0
- package/dist/cjs/id-CjRFMzf6.js +20 -0
- package/dist/cjs/index-C92n55ch.js +678 -0
- package/dist/cjs/index-CRdcutym.js +3287 -0
- package/dist/cjs/index.cjs.js +12 -0
- package/dist/cjs/isNil-DO5zWc3l.js +19 -0
- package/dist/cjs/isValid-Fu3kaWNn.js +3694 -0
- package/dist/cjs/loader.cjs.js +17 -0
- package/dist/cjs/native-dialog--Ewqm4w0.js +49 -0
- package/dist/cjs/navigation-AbzwcRCU.js +25 -0
- package/dist/cjs/parts-D5K3ae2C.js +19 -0
- package/dist/cjs/props-CScmBvKd.js +24 -0
- package/dist/cjs/raf-batcher-yc87a4dS.js +55 -0
- package/dist/cjs/slot-DAllytTj.js +48 -0
- package/dist/cjs/swipe-BU8_XE9f.js +345 -0
- package/dist/cjs/table-constants-BOPSay0B.js +183 -0
- package/dist/cjs/validator-CTCajtT9.js +123 -0
- package/dist/cjs/webcomponents.cjs.js +50 -0
- package/dist/collection/assets/icon-search.svg +6 -0
- package/dist/collection/assets/logo-negative.svg +1 -0
- package/dist/collection/assets/logo-positive.svg +1 -0
- package/dist/collection/assets/wc.svg +1 -0
- package/dist/collection/collection-manifest.json +113 -0
- package/dist/collection/components/avatar/avatar.css +1 -0
- package/dist/collection/components/avatar/avatar.js +589 -0
- package/dist/collection/components/avatar/avatar.types.js +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +166 -0
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +619 -0
- package/dist/collection/components/breadcrumb/breadcrumb.types.js +1 -0
- package/dist/collection/components/breadcrumb/crumb/crumb.js +175 -0
- package/dist/collection/components/button/button.css +1 -0
- package/dist/collection/components/button/button.js +546 -0
- package/dist/collection/components/button/button.types.js +1 -0
- package/dist/collection/components/card/card.css +1 -0
- package/dist/collection/components/card/card.js +225 -0
- package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -0
- package/dist/collection/components/carousel/carousel-page/carousel-page.js +195 -0
- package/dist/collection/components/carousel/carousel.css +1 -0
- package/dist/collection/components/carousel/carousel.js +1217 -0
- package/dist/collection/components/carousel/carousel.types.js +1 -0
- package/dist/collection/components/checkbox/checkbox.css +1 -0
- package/dist/collection/components/checkbox/checkbox.js +823 -0
- package/dist/collection/components/checkbox/checkbox.types.js +1 -0
- package/dist/collection/components/checkbox-group/checkbox-group.css +1 -0
- package/dist/collection/components/checkbox-group/checkbox-group.js +268 -0
- package/dist/collection/components/checkgroup/checkgroup.js +166 -0
- package/dist/collection/components/collapse/collapse.css +1 -0
- package/dist/collection/components/collapse/collapse.js +642 -0
- package/dist/collection/components/collapse/collapse.types.js +1 -0
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +529 -0
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +628 -0
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +165 -0
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +201 -0
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +100 -0
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +172 -0
- package/dist/collection/components/cookiebar/cookiebar.css +1 -0
- package/dist/collection/components/cookiebar/cookiebar.js +1419 -0
- package/dist/collection/components/cookiebar/cookiebar.types.js +1 -0
- package/dist/collection/components/cookiebar/cookiebar.utils.js +14 -0
- package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +94 -0
- package/dist/collection/components/datetime-picker/date-picker/date-picker-props-validation.js +57 -0
- package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -0
- package/dist/collection/components/datetime-picker/date-picker/date-picker.js +913 -0
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input-props-validation.js +65 -0
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -0
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +826 -0
- package/dist/collection/components/datetime-picker/datetime-picker-constants.js +36 -0
- package/dist/collection/components/datetime-picker/datetime-picker-form-associated.js +112 -0
- package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +202 -0
- package/dist/collection/components/datetime-picker/datetime-picker.css +1 -0
- package/dist/collection/components/datetime-picker/datetime-picker.js +1924 -0
- package/dist/collection/components/datetime-picker/datetime-picker.types.js +1 -0
- package/dist/collection/components/datetime-picker/datetime-picker.utils.js +250 -0
- package/dist/collection/components/datetime-picker/time-picker/time-picker-constants.js +13 -0
- package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -0
- package/dist/collection/components/datetime-picker/time-picker/time-picker.js +456 -0
- package/dist/collection/components/divider/divider.css +1 -0
- package/dist/collection/components/divider/divider.js +537 -0
- package/dist/collection/components/divider/divider.types.js +1 -0
- package/dist/collection/components/dropdown/dropdown.css +1 -0
- package/dist/collection/components/dropdown/dropdown.js +939 -0
- package/dist/collection/components/dropdown/dropdown.types.js +1 -0
- package/dist/collection/components/footer/footer-category/footer-category.css +1 -0
- package/dist/collection/components/footer/footer-category/footer-category.js +160 -0
- package/dist/collection/components/footer/footer-item/footer-item.css +1 -0
- package/dist/collection/components/footer/footer-item/footer-item.js +154 -0
- package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -0
- package/dist/collection/components/footer/footer-legal/footer-legal.js +75 -0
- package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -0
- package/dist/collection/components/footer/footer-logo/footer-logo.js +342 -0
- package/dist/collection/components/footer/footer-logo/footer-logo.types.js +1 -0
- package/dist/collection/components/footer/footer-social/footer-social.css +1 -0
- package/dist/collection/components/footer/footer-social/footer-social.js +239 -0
- package/dist/collection/components/footer/footer.css +1 -0
- package/dist/collection/components/footer/footer.js +245 -0
- package/dist/collection/components/footer/footer.types.js +1 -0
- package/dist/collection/components/global.types.js +1 -0
- package/dist/collection/components/header/header-function/header-function.css +1 -0
- package/dist/collection/components/header/header-function/header-function.js +311 -0
- package/dist/collection/components/header/header-link/header-link.css +1 -0
- package/dist/collection/components/header/header-link/header-link.js +189 -0
- package/dist/collection/components/header/header-list/header-list.css +1 -0
- package/dist/collection/components/header/header-list/header-list.js +452 -0
- package/dist/collection/components/header/header-logo/header-logo.css +1 -0
- package/dist/collection/components/header/header-logo/header-logo.js +421 -0
- package/dist/collection/components/header/header.css +1 -0
- package/dist/collection/components/header/header.js +1131 -0
- package/dist/collection/components/header/header.types.js +1 -0
- package/dist/collection/components/icon/default-icons-cache.js +233 -0
- package/dist/collection/components/icon/icon.css +1 -0
- package/dist/collection/components/icon/icon.js +598 -0
- package/dist/collection/components/icon/icon.types.js +1 -0
- package/dist/collection/components/icon/icon.utils.js +33 -0
- package/dist/collection/components/input/input.css +1 -0
- package/dist/collection/components/input/input.js +1642 -0
- package/dist/collection/components/input/input.types.js +1 -0
- package/dist/collection/components/item/item.css +1 -0
- package/dist/collection/components/item/item.js +917 -0
- package/dist/collection/components/item/item.types.js +1 -0
- package/dist/collection/components/link/link.css +1 -0
- package/dist/collection/components/link/link.js +699 -0
- package/dist/collection/components/list/list.css +1 -0
- package/dist/collection/components/list/list.js +728 -0
- package/dist/collection/components/loading/loading.css +1 -0
- package/dist/collection/components/loading/loading.js +1169 -0
- package/dist/collection/components/loading/loading.types.js +1 -0
- package/dist/collection/components/magic-button/magic-button.css +1 -0
- package/dist/collection/components/magic-button/magic-button.js +238 -0
- package/dist/collection/components/menu/menu-group/menu-group.css +1 -0
- package/dist/collection/components/menu/menu-group/menu-group.js +77 -0
- package/dist/collection/components/menu/menu-header/menu-header.css +1 -0
- package/dist/collection/components/menu/menu-header/menu-header.js +161 -0
- package/dist/collection/components/menu/menu-info/menu-info.css +1 -0
- package/dist/collection/components/menu/menu-info/menu-info.js +94 -0
- package/dist/collection/components/menu/menu-item/menu-item.css +1 -0
- package/dist/collection/components/menu/menu-item/menu-item.js +306 -0
- package/dist/collection/components/menu/menu-item/menu-item.types.js +1 -0
- package/dist/collection/components/menu/menu-link/menu-link.css +1 -0
- package/dist/collection/components/menu/menu-link/menu-link.js +260 -0
- package/dist/collection/components/menu/menu-list/menu-list.css +1 -0
- package/dist/collection/components/menu/menu-list/menu-list.js +311 -0
- package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -0
- package/dist/collection/components/menu/menu-logo/menu-logo.js +230 -0
- package/dist/collection/components/menu/menu-social/menu-social.css +1 -0
- package/dist/collection/components/menu/menu-social/menu-social.js +263 -0
- package/dist/collection/components/menu/menu.css +1 -0
- package/dist/collection/components/menu/menu.js +1372 -0
- package/dist/collection/components/menu/menu.types.js +1 -0
- package/dist/collection/components/menu/menu.utils.js +279 -0
- package/dist/collection/components/message/message.css +1 -0
- package/dist/collection/components/message/message.js +508 -0
- package/dist/collection/components/modal/modal.css +1 -0
- package/dist/collection/components/modal/modal.js +842 -0
- package/dist/collection/components/modal/modal.types.js +1 -0
- package/dist/collection/components/notification/notification-body/notification-body.css +1 -0
- package/dist/collection/components/notification/notification-body/notification-body.js +153 -0
- package/dist/collection/components/notification/notification-header/notification-header.css +1 -0
- package/dist/collection/components/notification/notification-header/notification-header.js +181 -0
- package/dist/collection/components/notification/notification-item/notification-item.css +1 -0
- package/dist/collection/components/notification/notification-item/notification-item.js +351 -0
- package/dist/collection/components/notification/notification-item/notification-item.types.js +1 -0
- package/dist/collection/components/notification/notification.css +1 -0
- package/dist/collection/components/notification/notification.js +838 -0
- package/dist/collection/components/notification/notification.types.js +1 -0
- package/dist/collection/components/pagination/pagination.css +1 -0
- package/dist/collection/components/pagination/pagination.js +1470 -0
- package/dist/collection/components/pagination/pagination.types.js +1 -0
- package/dist/collection/components/radio/radio.css +1 -0
- package/dist/collection/components/radio/radio.js +847 -0
- package/dist/collection/components/radio/radio.types.js +1 -0
- package/dist/collection/components/radio-group/radio-group.css +1 -0
- package/dist/collection/components/radio-group/radio-group.js +862 -0
- package/dist/collection/components/radio-group/radio-group.types.js +1 -0
- package/dist/collection/components/scrim/scrim.css +1 -0
- package/dist/collection/components/scrim/scrim.js +1825 -0
- package/dist/collection/components/scrim/scrim.types.js +1 -0
- package/dist/collection/components/scrim/scrim.utils.js +132 -0
- package/dist/collection/components/select/select-input/select-input.css +1 -0
- package/dist/collection/components/select/select-input/select-input.js +586 -0
- package/dist/collection/components/select/select-list/select-list.css +1 -0
- package/dist/collection/components/select/select-list/select-list.js +1159 -0
- package/dist/collection/components/select/select-option/select-option.css +1 -0
- package/dist/collection/components/select/select-option/select-option.js +564 -0
- package/dist/collection/components/select/select.constants.js +6 -0
- package/dist/collection/components/select/select.css +1 -0
- package/dist/collection/components/select/select.js +2692 -0
- package/dist/collection/components/select/select.types.js +1 -0
- package/dist/collection/components/select/select.utils.js +34 -0
- package/dist/collection/components/sign-in/sign-in.css +1 -0
- package/dist/collection/components/sign-in/sign-in.js +401 -0
- package/dist/collection/components/sign-in/sign-in.types.js +1 -0
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +103 -0
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -0
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +450 -0
- package/dist/collection/components/skip-link/skip-link.css +1 -0
- package/dist/collection/components/skip-link/skip-link.js +699 -0
- package/dist/collection/components/skip-link/skip-link.types.js +1 -0
- package/dist/collection/components/slider/slider.css +1 -0
- package/dist/collection/components/slider/slider.js +1324 -0
- package/dist/collection/components/slider/slider.types.js +1 -0
- package/dist/collection/components/step/step-item/step-item.css +1 -0
- package/dist/collection/components/step/step-item/step-item.js +604 -0
- package/dist/collection/components/step/step-item/step-item.types.js +1 -0
- package/dist/collection/components/step/step.css +1 -0
- package/dist/collection/components/step/step.js +896 -0
- package/dist/collection/components/step/step.types.js +1 -0
- package/dist/collection/components/switch/switch.css +1 -0
- package/dist/collection/components/switch/switch.js +715 -0
- package/dist/collection/components/switch/switch.types.js +1 -0
- package/dist/collection/components/tab/tab-item/tab-item.css +1 -0
- package/dist/collection/components/tab/tab-item/tab-item.js +425 -0
- package/dist/collection/components/tab/tab.css +1 -0
- package/dist/collection/components/tab/tab.js +724 -0
- package/dist/collection/components/tab/tab.types.js +1 -0
- package/dist/collection/components/table/table-body/table-body.css +1 -0
- package/dist/collection/components/table/table-body/table-body.js +51 -0
- package/dist/collection/components/table/table-cell/table-cell.css +1 -0
- package/dist/collection/components/table/table-cell/table-cell.js +373 -0
- package/dist/collection/components/table/table-constants.js +171 -0
- package/dist/collection/components/table/table-header/table-header.css +1 -0
- package/dist/collection/components/table/table-header/table-header.js +51 -0
- package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -0
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +402 -0
- package/dist/collection/components/table/table-row/table-row.css +1 -0
- package/dist/collection/components/table/table-row/table-row.js +261 -0
- package/dist/collection/components/table/table-tokens.js +50 -0
- package/dist/collection/components/table/table-types.js +1 -0
- package/dist/collection/components/table/table-utils.js +44 -0
- package/dist/collection/components/table/table.css +1 -0
- package/dist/collection/components/table/table.js +1030 -0
- package/dist/collection/components/tag/tag.css +1 -0
- package/dist/collection/components/tag/tag.js +1152 -0
- package/dist/collection/components/tag/tag.types.js +1 -0
- package/dist/collection/components/textarea/textarea.css +1 -0
- package/dist/collection/components/textarea/textarea.js +985 -0
- package/dist/collection/components/textarea/textarea.types.js +1 -0
- package/dist/collection/components/tooltip/tooltip.css +1 -0
- package/dist/collection/components/tooltip/tooltip.js +1024 -0
- package/dist/collection/components/tooltip/tooltip.types.js +1 -0
- package/dist/collection/components/upload/upload.css +1 -0
- package/dist/collection/components/upload/upload.js +1314 -0
- package/dist/collection/components/upload/upload.types.js +1 -0
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -0
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +167 -0
- package/dist/collection/components/wizard/wizard.css +1 -0
- package/dist/collection/components/wizard/wizard.js +1228 -0
- package/dist/collection/index.js +14 -0
- package/dist/collection/pages/components/cookiebar/index.js +26 -0
- package/dist/collection/pages/components/link/index.js +29 -0
- package/dist/collection/pages/components/pagination/index.js +12 -0
- package/dist/collection/pages/components/slider/index.js +18 -0
- package/dist/collection/pages/scripts/code-editor.js +101 -0
- package/dist/collection/pages/scripts/component-controls.js +600 -0
- package/dist/collection/pages/scripts/dev-event-console.js +47 -0
- package/dist/collection/pages/scripts/menu.js +192 -0
- package/dist/collection/pages/scripts/pageLoader.js +1422 -0
- package/dist/collection/shared/utils/assetsPath.js +75 -0
- package/dist/collection/shared/utils/breakpoint-observer.js +139 -0
- package/dist/collection/shared/utils/clamp.js +21 -0
- package/dist/collection/shared/utils/css-variables.js +12 -0
- package/dist/collection/shared/utils/cssVariables.js +37 -0
- package/dist/collection/shared/utils/date.js +405 -0
- package/dist/collection/shared/utils/debounce.js +39 -0
- package/dist/collection/shared/utils/event.js +55 -0
- package/dist/collection/shared/utils/floating-surface-dismiss.js +59 -0
- package/dist/collection/shared/utils/floating-ui.js +131 -0
- package/dist/collection/shared/utils/focus.js +24 -0
- package/dist/collection/shared/utils/form.js +82 -0
- package/dist/collection/shared/utils/format-bytes.js +20 -0
- package/dist/collection/shared/utils/getNextElement.js +30 -0
- package/dist/collection/shared/utils/getRandom.js +27 -0
- package/dist/collection/shared/utils/helpers.js +31 -0
- package/dist/collection/shared/utils/id.js +16 -0
- package/dist/collection/shared/utils/index.js +60 -0
- package/dist/collection/shared/utils/interfaces.js +1 -0
- package/dist/collection/shared/utils/isClient.js +14 -0
- package/dist/collection/shared/utils/isDefined.js +19 -0
- package/dist/collection/shared/utils/isEmpty.js +30 -0
- package/dist/collection/shared/utils/isHTMLElement.js +16 -0
- package/dist/collection/shared/utils/isNil.js +15 -0
- package/dist/collection/shared/utils/isString.js +20 -0
- package/dist/collection/shared/utils/native-dialog.js +44 -0
- package/dist/collection/shared/utils/navigation.js +21 -0
- package/dist/collection/shared/utils/parts.js +15 -0
- package/dist/collection/shared/utils/prop-warning.js +7 -0
- package/dist/collection/shared/utils/props.js +37 -0
- package/dist/collection/shared/utils/raf-batcher.js +51 -0
- package/dist/collection/shared/utils/scrollLock.js +141 -0
- package/dist/collection/shared/utils/setRafTimeout.js +38 -0
- package/dist/collection/shared/utils/slot.js +113 -0
- package/dist/collection/shared/utils/ssr-date.js +33 -0
- package/dist/collection/shared/utils/stringToArray.js +29 -0
- package/dist/collection/shared/utils/swipe.js +342 -0
- package/dist/collection/shared/utils/transition.js +127 -0
- package/dist/collection/shared/utils/types.js +1 -0
- package/dist/collection/shared/utils/validator.js +51 -0
- package/dist/collection/value-accessors/angular-value-accessor-config.js +41 -0
- package/dist/collection/value-accessors/index.js +6 -0
- package/dist/collection/value-accessors/vue-model-config.js +43 -0
- package/dist/components/br-avatar.d.ts +11 -0
- package/dist/components/br-avatar.js +5 -0
- package/dist/components/br-breadcrumb-item.d.ts +11 -0
- package/dist/components/br-breadcrumb-item.js +5 -0
- package/dist/components/br-breadcrumb.d.ts +11 -0
- package/dist/components/br-breadcrumb.js +5 -0
- package/dist/components/br-button.d.ts +11 -0
- package/dist/components/br-button.js +5 -0
- package/dist/components/br-card.d.ts +11 -0
- package/dist/components/br-card.js +5 -0
- package/dist/components/br-carousel-page.d.ts +11 -0
- package/dist/components/br-carousel-page.js +5 -0
- package/dist/components/br-carousel.d.ts +11 -0
- package/dist/components/br-carousel.js +5 -0
- package/dist/components/br-checkbox-group.d.ts +11 -0
- package/dist/components/br-checkbox-group.js +5 -0
- package/dist/components/br-checkbox.d.ts +11 -0
- package/dist/components/br-checkbox.js +5 -0
- package/dist/components/br-checkgroup.d.ts +11 -0
- package/dist/components/br-checkgroup.js +5 -0
- package/dist/components/br-collapse.d.ts +11 -0
- package/dist/components/br-collapse.js +5 -0
- package/dist/components/br-cookiebar-cookie.d.ts +11 -0
- package/dist/components/br-cookiebar-cookie.js +5 -0
- package/dist/components/br-cookiebar-group.d.ts +11 -0
- package/dist/components/br-cookiebar-group.js +5 -0
- package/dist/components/br-cookiebar-header.d.ts +11 -0
- package/dist/components/br-cookiebar-header.js +5 -0
- package/dist/components/br-cookiebar-link.d.ts +11 -0
- package/dist/components/br-cookiebar-link.js +5 -0
- package/dist/components/br-cookiebar-note-group.d.ts +11 -0
- package/dist/components/br-cookiebar-note-group.js +5 -0
- package/dist/components/br-cookiebar-note.d.ts +11 -0
- package/dist/components/br-cookiebar-note.js +5 -0
- package/dist/components/br-cookiebar.d.ts +11 -0
- package/dist/components/br-cookiebar.js +5 -0
- package/dist/components/br-crumb.d.ts +11 -0
- package/dist/components/br-crumb.js +5 -0
- package/dist/components/br-date-picker.d.ts +11 -0
- package/dist/components/br-date-picker.js +5 -0
- package/dist/components/br-datetime-input.d.ts +11 -0
- package/dist/components/br-datetime-input.js +5 -0
- package/dist/components/br-datetime-picker.d.ts +11 -0
- package/dist/components/br-datetime-picker.js +5 -0
- package/dist/components/br-divider.d.ts +11 -0
- package/dist/components/br-divider.js +5 -0
- package/dist/components/br-dropdown.d.ts +11 -0
- package/dist/components/br-dropdown.js +5 -0
- package/dist/components/br-footer-category.d.ts +11 -0
- package/dist/components/br-footer-category.js +5 -0
- package/dist/components/br-footer-item.d.ts +11 -0
- package/dist/components/br-footer-item.js +5 -0
- package/dist/components/br-footer-legal.d.ts +11 -0
- package/dist/components/br-footer-legal.js +5 -0
- package/dist/components/br-footer-logo.d.ts +11 -0
- package/dist/components/br-footer-logo.js +5 -0
- package/dist/components/br-footer-social.d.ts +11 -0
- package/dist/components/br-footer-social.js +5 -0
- package/dist/components/br-footer.d.ts +11 -0
- package/dist/components/br-footer.js +5 -0
- package/dist/components/br-header-function.d.ts +11 -0
- package/dist/components/br-header-function.js +5 -0
- package/dist/components/br-header-link.d.ts +11 -0
- package/dist/components/br-header-link.js +5 -0
- package/dist/components/br-header-list.d.ts +11 -0
- package/dist/components/br-header-list.js +5 -0
- package/dist/components/br-header-logo.d.ts +11 -0
- package/dist/components/br-header-logo.js +5 -0
- package/dist/components/br-header.d.ts +11 -0
- package/dist/components/br-header.js +5 -0
- package/dist/components/br-icon.d.ts +11 -0
- package/dist/components/br-icon.js +5 -0
- package/dist/components/br-input.d.ts +11 -0
- package/dist/components/br-input.js +5 -0
- package/dist/components/br-item.d.ts +11 -0
- package/dist/components/br-item.js +5 -0
- package/dist/components/br-link.d.ts +11 -0
- package/dist/components/br-link.js +5 -0
- package/dist/components/br-list.d.ts +11 -0
- package/dist/components/br-list.js +5 -0
- package/dist/components/br-loading.d.ts +11 -0
- package/dist/components/br-loading.js +5 -0
- package/dist/components/br-magic-button.d.ts +11 -0
- package/dist/components/br-magic-button.js +5 -0
- package/dist/components/br-menu-group.d.ts +11 -0
- package/dist/components/br-menu-group.js +5 -0
- package/dist/components/br-menu-header.d.ts +11 -0
- package/dist/components/br-menu-header.js +5 -0
- package/dist/components/br-menu-info.d.ts +11 -0
- package/dist/components/br-menu-info.js +5 -0
- package/dist/components/br-menu-item.d.ts +11 -0
- package/dist/components/br-menu-item.js +5 -0
- package/dist/components/br-menu-link.d.ts +11 -0
- package/dist/components/br-menu-link.js +5 -0
- package/dist/components/br-menu-list.d.ts +11 -0
- package/dist/components/br-menu-list.js +5 -0
- package/dist/components/br-menu-logo.d.ts +11 -0
- package/dist/components/br-menu-logo.js +5 -0
- package/dist/components/br-menu-social.d.ts +11 -0
- package/dist/components/br-menu-social.js +5 -0
- package/dist/components/br-menu.d.ts +11 -0
- package/dist/components/br-menu.js +5 -0
- package/dist/components/br-message.d.ts +11 -0
- package/dist/components/br-message.js +5 -0
- package/dist/components/br-modal.d.ts +11 -0
- package/dist/components/br-modal.js +5 -0
- package/dist/components/br-notification-body.d.ts +11 -0
- package/dist/components/br-notification-body.js +5 -0
- package/dist/components/br-notification-header.d.ts +11 -0
- package/dist/components/br-notification-header.js +5 -0
- package/dist/components/br-notification-item.d.ts +11 -0
- package/dist/components/br-notification-item.js +5 -0
- package/dist/components/br-notification.d.ts +11 -0
- package/dist/components/br-notification.js +5 -0
- package/dist/components/br-pagination.d.ts +11 -0
- package/dist/components/br-pagination.js +5 -0
- package/dist/components/br-radio-group.d.ts +11 -0
- package/dist/components/br-radio-group.js +5 -0
- package/dist/components/br-radio.d.ts +11 -0
- package/dist/components/br-radio.js +5 -0
- package/dist/components/br-scrim.d.ts +11 -0
- package/dist/components/br-scrim.js +5 -0
- package/dist/components/br-select-input.d.ts +11 -0
- package/dist/components/br-select-input.js +5 -0
- package/dist/components/br-select-list.d.ts +11 -0
- package/dist/components/br-select-list.js +5 -0
- package/dist/components/br-select-option.d.ts +11 -0
- package/dist/components/br-select-option.js +5 -0
- package/dist/components/br-select.d.ts +11 -0
- package/dist/components/br-select.js +5 -0
- package/dist/components/br-sign-in.d.ts +11 -0
- package/dist/components/br-sign-in.js +5 -0
- package/dist/components/br-skip-link-item.d.ts +11 -0
- package/dist/components/br-skip-link-item.js +5 -0
- package/dist/components/br-skip-link.d.ts +11 -0
- package/dist/components/br-skip-link.js +5 -0
- package/dist/components/br-skiplink-item.d.ts +11 -0
- package/dist/components/br-skiplink-item.js +5 -0
- package/dist/components/br-slider.d.ts +11 -0
- package/dist/components/br-slider.js +5 -0
- package/dist/components/br-step-item.d.ts +11 -0
- package/dist/components/br-step-item.js +5 -0
- package/dist/components/br-step.d.ts +11 -0
- package/dist/components/br-step.js +5 -0
- package/dist/components/br-switch.d.ts +11 -0
- package/dist/components/br-switch.js +5 -0
- package/dist/components/br-tab-item.d.ts +11 -0
- package/dist/components/br-tab-item.js +5 -0
- package/dist/components/br-tab.d.ts +11 -0
- package/dist/components/br-tab.js +5 -0
- package/dist/components/br-table-body.d.ts +11 -0
- package/dist/components/br-table-body.js +5 -0
- package/dist/components/br-table-cell.d.ts +11 -0
- package/dist/components/br-table-cell.js +5 -0
- package/dist/components/br-table-header-cell.d.ts +11 -0
- package/dist/components/br-table-header-cell.js +5 -0
- package/dist/components/br-table-header.d.ts +11 -0
- package/dist/components/br-table-header.js +5 -0
- package/dist/components/br-table-row.d.ts +11 -0
- package/dist/components/br-table-row.js +5 -0
- package/dist/components/br-table.d.ts +11 -0
- package/dist/components/br-table.js +5 -0
- package/dist/components/br-tag.d.ts +11 -0
- package/dist/components/br-tag.js +5 -0
- package/dist/components/br-textarea.d.ts +11 -0
- package/dist/components/br-textarea.js +5 -0
- package/dist/components/br-time-picker.d.ts +11 -0
- package/dist/components/br-time-picker.js +5 -0
- package/dist/components/br-tooltip.d.ts +11 -0
- package/dist/components/br-tooltip.js +5 -0
- package/dist/components/br-upload.d.ts +11 -0
- package/dist/components/br-upload.js +5 -0
- package/dist/components/br-wizard-panel.d.ts +11 -0
- package/dist/components/br-wizard-panel.js +5 -0
- package/dist/components/br-wizard.d.ts +11 -0
- package/dist/components/br-wizard.js +5 -0
- package/dist/components/index.d.ts +213 -0
- package/dist/components/index.js +5 -0
- package/dist/components/p-34Jfn-U-.js +5 -0
- package/dist/components/p-5z6jgH1D.js +5 -0
- package/dist/components/p-6OdfnwnK.js +5 -0
- package/dist/components/p-9S9bgUT0.js +5 -0
- package/dist/components/p-B-qLmYZC.js +5 -0
- package/dist/components/p-B55qsau4.js +5 -0
- package/dist/components/p-B7Amgxkp.js +5 -0
- package/dist/components/p-BC7f6MK8.js +5 -0
- package/dist/components/p-BKuMQJrQ.js +5 -0
- package/dist/components/p-BPJpHGOW.js +5 -0
- package/dist/components/p-BWXfdbQH.js +5 -0
- package/dist/components/p-Bb-nLtTG.js +5 -0
- package/dist/components/p-BeE7R9nu.js +5 -0
- package/dist/components/p-BkS6ujyf.js +5 -0
- package/dist/components/p-Bo0QYHJO.js +5 -0
- package/dist/components/p-C1yRmdso.js +5 -0
- package/dist/components/p-C2i2c_io.js +5 -0
- package/dist/components/p-C7v0lVlX.js +5 -0
- package/dist/components/p-CMBsvswx.js +5 -0
- package/dist/components/p-CRrimdz6.js +5 -0
- package/dist/components/p-CWORw84-.js +5 -0
- package/dist/components/p-CXMwM9m4.js +5 -0
- package/dist/components/p-CdDwqbBv.js +5 -0
- package/dist/components/p-CvUMXJCl.js +5 -0
- package/dist/components/p-D3usVJE2.js +16 -0
- package/dist/components/p-D6zroLx5.js +5 -0
- package/dist/components/p-DA5GS53D.js +5 -0
- package/dist/components/p-DBP6K_aq.js +5 -0
- package/dist/components/p-DBmwzG9E.js +5 -0
- package/dist/components/p-DCrVo-8T.js +5 -0
- package/dist/components/p-DFUKDNck.js +5 -0
- package/dist/components/p-DHicj0By.js +5 -0
- package/dist/components/p-DIK54tTj.js +5 -0
- package/dist/components/p-DQRSHR-D.js +5 -0
- package/dist/components/p-DRVMm1Py.js +5 -0
- package/dist/components/p-DWPmUV72.js +5 -0
- package/dist/components/p-DXjQyH6s.js +5 -0
- package/dist/components/p-DYA74R1r.js +5 -0
- package/dist/components/p-DmCxdB9P.js +5 -0
- package/dist/components/p-Dmfk7eEe.js +5 -0
- package/dist/components/p-Dp0xy_3n.js +5 -0
- package/dist/components/p-DxZJrIyL.js +5 -0
- package/dist/components/p-JAkkThgf.js +5 -0
- package/dist/components/p-Ud-WB0hx.js +5 -0
- package/dist/components/p-bhULC15U.js +5 -0
- package/dist/components/p-cF3ia5e9.js +5 -0
- package/dist/components/p-fpMNttbg.js +5 -0
- package/dist/components/p-gvnfuTjd.js +5 -0
- package/dist/components/p-qYONSNcf.js +5 -0
- package/dist/components/p-qhhHGJY1.js +5 -0
- package/dist/components/p-ttI0nvv_.js +5 -0
- package/dist/components/p-ukNmfGNP.js +5 -0
- package/dist/components/p-xa8e1kSW.js +5 -0
- package/dist/esm/app-globals-DVjNHTTs.js +7 -0
- package/dist/esm/br-avatar.entry.js +246 -0
- package/dist/esm/br-breadcrumb-item.entry.js +43 -0
- package/dist/esm/br-breadcrumb.entry.js +441 -0
- package/dist/esm/br-button_2.entry.js +277 -0
- package/dist/esm/br-card.entry.js +109 -0
- package/dist/esm/br-carousel-page.entry.js +78 -0
- package/dist/esm/br-carousel.entry.js +563 -0
- package/dist/esm/br-checkbox-group.entry.js +116 -0
- package/dist/esm/br-checkbox.entry.js +286 -0
- package/dist/esm/br-checkgroup.entry.js +18 -0
- package/dist/esm/br-collapse_2.entry.js +680 -0
- package/dist/esm/br-cookiebar-cookie.entry.js +81 -0
- package/dist/esm/br-cookiebar-group.entry.js +307 -0
- package/dist/esm/br-cookiebar-header.entry.js +37 -0
- package/dist/esm/br-cookiebar-link.entry.js +53 -0
- package/dist/esm/br-cookiebar-note-group.entry.js +68 -0
- package/dist/esm/br-cookiebar-note.entry.js +23 -0
- package/dist/esm/br-cookiebar.entry.js +756 -0
- package/dist/esm/br-crumb.entry.js +49 -0
- package/dist/esm/br-date-picker_3.entry.js +2443 -0
- package/dist/esm/br-datetime-picker.entry.js +1884 -0
- package/dist/esm/br-divider.entry.js +223 -0
- package/dist/esm/br-dropdown_2.entry.js +1997 -0
- package/dist/esm/br-footer-category.entry.js +100 -0
- package/dist/esm/br-footer-item.entry.js +50 -0
- package/dist/esm/br-footer-legal.entry.js +39 -0
- package/dist/esm/br-footer-logo.entry.js +102 -0
- package/dist/esm/br-footer-social.entry.js +69 -0
- package/dist/esm/br-footer.entry.js +90 -0
- package/dist/esm/br-header-function.entry.js +140 -0
- package/dist/esm/br-header-link.entry.js +58 -0
- package/dist/esm/br-header-list.entry.js +277 -0
- package/dist/esm/br-header-logo.entry.js +176 -0
- package/dist/esm/br-header.entry.js +640 -0
- package/dist/esm/br-icon.entry.js +483 -0
- package/dist/esm/br-input.entry.js +597 -0
- package/dist/esm/br-item.entry.js +365 -0
- package/dist/esm/br-link.entry.js +131 -0
- package/dist/esm/br-loading.entry.js +503 -0
- package/dist/esm/br-magic-button.entry.js +91 -0
- package/dist/esm/br-menu-group.entry.js +21 -0
- package/dist/esm/br-menu-header.entry.js +45 -0
- package/dist/esm/br-menu-info.entry.js +36 -0
- package/dist/esm/br-menu-item.entry.js +77 -0
- package/dist/esm/br-menu-link.entry.js +54 -0
- package/dist/esm/br-menu-list.entry.js +147 -0
- package/dist/esm/br-menu-logo.entry.js +73 -0
- package/dist/esm/br-menu-social.entry.js +63 -0
- package/dist/esm/br-menu.entry.js +991 -0
- package/dist/esm/br-modal.entry.js +494 -0
- package/dist/esm/br-notification-body.entry.js +69 -0
- package/dist/esm/br-notification-header.entry.js +46 -0
- package/dist/esm/br-notification-item.entry.js +108 -0
- package/dist/esm/br-notification.entry.js +332 -0
- package/dist/esm/br-pagination.entry.js +882 -0
- package/dist/esm/br-radio-group.entry.js +426 -0
- package/dist/esm/br-radio.entry.js +355 -0
- package/dist/esm/br-scrim.entry.js +1334 -0
- package/dist/esm/br-select-input_3.entry.js +984 -0
- package/dist/esm/br-sign-in.entry.js +124 -0
- package/dist/esm/br-skip-link-item.entry.js +18 -0
- package/dist/esm/br-skip-link.entry.js +360 -0
- package/dist/esm/br-skiplink-item.entry.js +190 -0
- package/dist/esm/br-slider.entry.js +685 -0
- package/dist/esm/br-step_2.entry.js +625 -0
- package/dist/esm/br-switch.entry.js +243 -0
- package/dist/esm/br-tab-item.entry.js +183 -0
- package/dist/esm/br-tab.entry.js +395 -0
- package/dist/esm/br-table-body.entry.js +35 -0
- package/dist/esm/br-table-cell.entry.js +182 -0
- package/dist/esm/br-table-header-cell.entry.js +171 -0
- package/dist/esm/br-table-header.entry.js +35 -0
- package/dist/esm/br-table-row.entry.js +79 -0
- package/dist/esm/br-table.entry.js +678 -0
- package/dist/esm/br-tag.entry.js +491 -0
- package/dist/esm/br-textarea.entry.js +304 -0
- package/dist/esm/br-tooltip.entry.js +625 -0
- package/dist/esm/br-upload.entry.js +579 -0
- package/dist/esm/br-wizard-panel.entry.js +52 -0
- package/dist/esm/br-wizard.entry.js +706 -0
- package/dist/esm/breakpoint-observer-DBmwzG9E.js +141 -0
- package/dist/esm/clamp-gvnfuTjd.js +23 -0
- package/dist/esm/cookiebar.utils-DYA74R1r.js +16 -0
- package/dist/esm/datetime-picker-constants-Bfm58jO6.js +3798 -0
- package/dist/esm/event-DFN_so7I.js +48 -0
- package/dist/esm/floating-surface-dismiss-BWXfdbQH.js +61 -0
- package/dist/esm/floating-ui-BavFwMnx.js +134 -0
- package/dist/esm/floating-ui.dom-DIK54tTj.js +1707 -0
- package/dist/esm/focus-DxZJrIyL.js +26 -0
- package/dist/esm/getNextElement-9S9bgUT0.js +28 -0
- package/dist/esm/iconify-icon-D3usVJE2.js +2303 -0
- package/dist/esm/id-BkS6ujyf.js +18 -0
- package/dist/esm/index-Bo-2igoO.js +671 -0
- package/dist/esm/index-C2RBydfd.js +3258 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/isNil-B-qLmYZC.js +17 -0
- package/dist/esm/isValid-DIUZX1qS.js +3684 -0
- package/dist/esm/loader.js +15 -0
- package/dist/esm/native-dialog-B55qsau4.js +46 -0
- package/dist/esm/navigation-bhULC15U.js +23 -0
- package/dist/esm/parts-Bb5vVlCC.js +17 -0
- package/dist/esm/props-DRVMm1Py.js +22 -0
- package/dist/esm/raf-batcher-cF3ia5e9.js +53 -0
- package/dist/esm/slot-BIG-yees.js +44 -0
- package/dist/esm/swipe-Dmfk7eEe.js +343 -0
- package/dist/esm/table-constants-CXMwM9m4.js +170 -0
- package/dist/esm/validator-D3tVP32U.js +113 -0
- package/dist/esm/webcomponents.js +46 -0
- package/dist/hydrate/index.d.ts +287 -0
- package/dist/hydrate/index.js +67516 -0
- package/dist/hydrate/index.mjs +67506 -0
- package/dist/hydrate/package.json +12 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/loader/cdn.js +5 -0
- package/dist/loader/index.cjs.js +5 -0
- package/dist/loader/index.d.ts +24 -0
- package/dist/loader/index.es2017.js +5 -0
- package/dist/loader/index.js +6 -0
- package/dist/types/components/item/item.d.ts +1 -0
- package/dist/types/components/select/select-list/select-list.d.ts +1 -0
- package/dist/types/components/select/select-option/select-option.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +14 -0
- package/dist/types/components/select/select.types.d.ts +2 -0
- package/dist/types/components/select/select.utils.d.ts +13 -0
- package/dist/webcomponents/index.esm.js +5 -0
- package/dist/webcomponents/p-0196804a.entry.js +5 -0
- package/dist/webcomponents/p-0410186a.entry.js +5 -0
- package/dist/webcomponents/p-0415ef22.entry.js +5 -0
- package/dist/webcomponents/p-0777c7b1.entry.js +5 -0
- package/dist/webcomponents/p-0caa4d12.entry.js +5 -0
- package/dist/webcomponents/p-0d4f718d.entry.js +5 -0
- package/dist/webcomponents/p-0e84c9e8.entry.js +5 -0
- package/dist/webcomponents/p-12286e73.entry.js +5 -0
- package/dist/webcomponents/p-147ac8d3.entry.js +5 -0
- package/dist/webcomponents/p-1580beee.entry.js +5 -0
- package/dist/webcomponents/p-18ee6175.entry.js +5 -0
- package/dist/webcomponents/p-1bca4499.entry.js +5 -0
- package/dist/webcomponents/p-1c303a4e.entry.js +5 -0
- package/dist/webcomponents/p-1d6b0b6f.entry.js +5 -0
- package/dist/webcomponents/p-1d8cb8fd.entry.js +5 -0
- package/dist/webcomponents/p-224daaac.entry.js +5 -0
- package/dist/webcomponents/p-28426d2a.entry.js +5 -0
- package/dist/webcomponents/p-2abd2da0.entry.js +5 -0
- package/dist/webcomponents/p-2fdc51ae.entry.js +5 -0
- package/dist/webcomponents/p-30c428b6.entry.js +5 -0
- package/dist/webcomponents/p-36bbea4e.entry.js +5 -0
- package/dist/webcomponents/p-3907ebfa.entry.js +5 -0
- package/dist/webcomponents/p-39a16f9d.entry.js +5 -0
- package/dist/webcomponents/p-3ebbd2f5.entry.js +5 -0
- package/dist/webcomponents/p-3ef7eac8.entry.js +5 -0
- package/dist/webcomponents/p-45356e9a.entry.js +5 -0
- package/dist/webcomponents/p-46513db4.entry.js +5 -0
- package/dist/webcomponents/p-4c13221a.entry.js +5 -0
- package/dist/webcomponents/p-51ce2c31.entry.js +5 -0
- package/dist/webcomponents/p-52df61cb.entry.js +5 -0
- package/dist/webcomponents/p-569134cf.entry.js +5 -0
- package/dist/webcomponents/p-5ce7db4a.entry.js +5 -0
- package/dist/webcomponents/p-5f373708.entry.js +5 -0
- package/dist/webcomponents/p-5f6afb79.entry.js +5 -0
- package/dist/webcomponents/p-5fc7ba4c.entry.js +5 -0
- package/dist/webcomponents/p-66006312.entry.js +5 -0
- package/dist/webcomponents/p-66b13fd9.entry.js +5 -0
- package/dist/webcomponents/p-6OdfnwnK.js +5 -0
- package/dist/webcomponents/p-750799b7.entry.js +5 -0
- package/dist/webcomponents/p-756ff2ad.entry.js +5 -0
- package/dist/webcomponents/p-765bfe27.entry.js +5 -0
- package/dist/webcomponents/p-7ab96c11.entry.js +5 -0
- package/dist/webcomponents/p-7c2ff8b4.entry.js +5 -0
- package/dist/webcomponents/p-7f7506f0.entry.js +5 -0
- package/dist/webcomponents/p-7fb03a49.entry.js +5 -0
- package/dist/webcomponents/p-82200563.entry.js +5 -0
- package/dist/webcomponents/p-83ff4579.entry.js +5 -0
- package/dist/webcomponents/p-85f8063b.entry.js +5 -0
- package/dist/webcomponents/p-8b558233.entry.js +5 -0
- package/dist/webcomponents/p-8e6c2767.entry.js +5 -0
- package/dist/webcomponents/p-8e819355.entry.js +5 -0
- package/dist/webcomponents/p-92a9b9c4.entry.js +5 -0
- package/dist/webcomponents/p-966ad32f.entry.js +5 -0
- package/dist/webcomponents/p-9679d230.entry.js +5 -0
- package/dist/webcomponents/p-96dd663b.entry.js +5 -0
- package/dist/webcomponents/p-98843fa3.entry.js +5 -0
- package/dist/webcomponents/p-9S9bgUT0.js +5 -0
- package/dist/webcomponents/p-9a375eff.entry.js +5 -0
- package/dist/webcomponents/p-9b358cff.entry.js +5 -0
- package/dist/webcomponents/p-9f7558c7.entry.js +5 -0
- package/dist/webcomponents/p-B-qLmYZC.js +5 -0
- package/dist/webcomponents/p-B55qsau4.js +5 -0
- package/dist/webcomponents/p-BIG-yees.js +5 -0
- package/dist/webcomponents/p-BWXfdbQH.js +5 -0
- package/dist/webcomponents/p-Bb5vVlCC.js +5 -0
- package/dist/webcomponents/p-Bfm58jO6.js +5 -0
- package/dist/webcomponents/p-BhMVJQ4-.js +5 -0
- package/dist/webcomponents/p-BkS6ujyf.js +5 -0
- package/dist/webcomponents/p-C2RBydfd.js +6 -0
- package/dist/webcomponents/p-CO5cOQQU.js +5 -0
- package/dist/webcomponents/p-CXMwM9m4.js +5 -0
- package/dist/webcomponents/p-D3tVP32U.js +5 -0
- package/dist/webcomponents/p-D3usVJE2.js +16 -0
- package/dist/webcomponents/p-DBmwzG9E.js +5 -0
- package/dist/webcomponents/p-DFN_so7I.js +5 -0
- package/dist/webcomponents/p-DIK54tTj.js +5 -0
- package/dist/webcomponents/p-DRVMm1Py.js +5 -0
- package/dist/webcomponents/p-DVjNHTTs.js +5 -0
- package/dist/webcomponents/p-DYA74R1r.js +5 -0
- package/dist/webcomponents/p-Dmfk7eEe.js +5 -0
- package/dist/webcomponents/p-DxZJrIyL.js +5 -0
- package/dist/webcomponents/p-a382e115.entry.js +5 -0
- package/dist/webcomponents/p-a4ae72e3.entry.js +5 -0
- package/dist/webcomponents/p-a994c190.entry.js +5 -0
- package/dist/webcomponents/p-a9ff7c25.entry.js +5 -0
- package/dist/webcomponents/p-bhULC15U.js +5 -0
- package/dist/webcomponents/p-c0b0f531.entry.js +5 -0
- package/dist/webcomponents/p-c211af17.entry.js +5 -0
- package/dist/webcomponents/p-c492d926.entry.js +5 -0
- package/dist/webcomponents/p-c4cfe599.entry.js +5 -0
- package/dist/webcomponents/p-c846e784.entry.js +5 -0
- package/dist/webcomponents/p-c949d993.entry.js +5 -0
- package/dist/webcomponents/p-cF3ia5e9.js +5 -0
- package/dist/webcomponents/p-d1e899cd.entry.js +5 -0
- package/dist/webcomponents/p-d38d82cc.entry.js +5 -0
- package/dist/webcomponents/p-e0ce536a.entry.js +5 -0
- package/dist/webcomponents/p-e1331288.entry.js +5 -0
- package/dist/webcomponents/p-e360a463.entry.js +5 -0
- package/dist/webcomponents/p-f078f972.entry.js +5 -0
- package/dist/webcomponents/p-f26038e2.entry.js +5 -0
- package/dist/webcomponents/p-f303f6b3.entry.js +5 -0
- package/dist/webcomponents/p-f6318e94.entry.js +5 -0
- package/dist/webcomponents/p-f85ee01c.entry.js +5 -0
- package/dist/webcomponents/p-fcd4ae48.entry.js +5 -0
- package/dist/webcomponents/p-ffe0241e.entry.js +5 -0
- package/dist/webcomponents/p-gvnfuTjd.js +5 -0
- package/dist/webcomponents/webcomponents.esm.js +5 -0
- package/package.json +3 -7
- package/cem/.gitkeep +0 -0
|
@@ -0,0 +1,993 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Construído por SERPRO
|
|
3
|
+
* © https://serpro.gov.br/ - MIT License.
|
|
4
|
+
*/
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
var index = require('./index-CRdcutym.js');
|
|
8
|
+
var event = require('./event-CmVdNHxl.js');
|
|
9
|
+
var focus = require('./focus-DuywwJPR.js');
|
|
10
|
+
var getNextElement = require('./getNextElement-R9l3JtM9.js');
|
|
11
|
+
var id = require('./id-CjRFMzf6.js');
|
|
12
|
+
var nativeDialog = require('./native-dialog--Ewqm4w0.js');
|
|
13
|
+
|
|
14
|
+
const menuCss = () => `*,*::before,*::after{box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}code{font-family:monospace;font-size:1em}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]{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}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown>.br-notification{left:auto;right:0}.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)}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.align-items-center{align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{flex:1 0 0%;min-width:8.3333333333%}.col-auto{flex:0 0 auto;width:auto}.col-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-fluid,.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:flex;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,.container-fluid{--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))}}@media (min-width: 992px){.container,.container-lg,.container-fluid{--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,.container-fluid{--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))}}@media (min-width: 1600px){.container,.container-lg,.container-fluid{--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))}}.ease{animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.mt-1{margin-top:var(--spacing-scale-half) !important}.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}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mb-4{margin-bottom:var(--spacing-scale-3x) !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}.highlight{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}.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-bold{font-weight:700 !important}.text-base{font-size:var(--font-size-scale-base) !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}}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,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:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}.main-content a{text-decoration:underline}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%}tr.selected,tr.is-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)}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)}fieldset,.fieldset{border:var(--surface-width-none);margin-bottom:var(--spacing-scale-5x);margin-top:0;padding:0}legend,.legend{color:var(--color);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2x);margin-top:var(--spacing-scale-2x)}::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)}.help{font-size:var(--font-size-scale-base)}code,.code{background:var(--gray-5);border-radius:4px;color:var(--gray-80);display:inline-block;font-family:monospace;font-size:var(--font-size-scale-base);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);padding:var(--spacing-scale-half)}*[data-toggle=collapse]:not(:disabled):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,*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-button{--button-radius:100em;--button-xsmall:24px;--button-small:32px;--button-medium:40px;--button-large:48px;--button-size:var(--button-medium);align-items:center;background-color:rgba(0,0,0,0);border:0;border-radius:var(--button-radius);color:var(--interactive);cursor:pointer;display:inline-flex;font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-semi-bold);height:var(--button-size);justify-content:center;overflow:hidden;padding:0 var(--spacing-scale-3x);position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:auto}.br-button.block{width:100%}.br-button.circle,.br-button[circle]{border-radius:50%;padding:0;width:var(--button-size)}.br-button.xsmall,.br-button[xsmall]{--button-size:var(--button-xsmall)}.br-button.small,.br-button[small]{--button-size:var(--button-small)}.br-button.medium,.br-button[medium]{--button-size:var(--button-medium)}.br-button.large,.br-button[large]{--button-size:var(--button-large)}.br-button.primary,.br-button[primary]{--interactive-rgb:var(--color-dark-rgb);background-color:var(--interactive-light);color:var(--color-dark)}.br-button.secondary,.br-button[secondary]{background-color:var(--background-light);border:1px solid var(--interactive)}.br-button.danger,.br-button[danger]{background-color:var(--danger);--interactive-rgb:var(--color-dark-rgb);color:var(--color-dark)}.br-button.success,.br-button[success]{background-color:var(--success);--interactive-rgb:var(--color-dark-rgb);color:var(--color-dark)}.br-button.warning,.br-button[warning]{background-color:var(--warning);--interactive-rgb:var(--color-light-rgb);color:var(--color-light)}.br-button.info,.br-button[info]{background-color:var(--info);--interactive-rgb:var(--color-dark-rgb);color:var(--color-dark)}.br-button:disabled{cursor:not-allowed}.br-button:not(:disabled){--focus-offset:var(--spacing-scale-half)}.br-button:not(:disabled):focus{outline:none}.br-button:not(:disabled).focus-visible,.br-button:not(:disabled):focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-button:not(:disabled):not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}.br-button:not(:disabled):not(:disabled):active{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}.br-button.active,.br-button.is-active,.br-button[active]{--hover:var(--hover-dark);background-color:var(--active);color:var(--color-dark)}.br-button.loading{color:rgba(0,0,0,0) !important;cursor:progress}.br-button.loading:not(:disabled):hover{background-image:none}.br-button.loading::before{border-color:var(--interactive) var(--interactive) rgba(0,0,0,0);border-style:solid}.br-button.loading.primary::before,.br-button.loading.danger::before,.br-button.loading.success::before,.br-button.loading.info::before{border-color:var(--background) var(--background) rgba(0,0,0,0)}.br-button.inverted,.br-button[inverted],.br-button.dark-mode{--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);color:var(--interactive-dark)}.br-button.inverted.primary,.br-button.inverted[primary],.br-button[inverted].primary,.br-button[inverted][primary],.br-button.dark-mode.primary,.br-button.dark-mode[primary]{--interactive-rgb:var(--background-dark-rgb);background-color:var(--interactive-dark);color:var(--background-dark)}.br-button.inverted.secondary,.br-button.inverted[secondary],.br-button[inverted].secondary,.br-button[inverted][secondary],.br-button.dark-mode.secondary,.br-button.dark-mode[secondary]{background-color:var(--background-dark)}.br-button.inverted.active,.br-button[inverted].active,.br-button.dark-mode.active{--hover:var(--hover-light);--interactive-rgb:var(--active-rgb);background-color:var(--background-light);color:var(--active)}a.br-button{font-weight:var(--font-weight-semi-bold);text-decoration:none !important}.br-menu{--menu-zindex:var(--z-index-layer-3);--menu-background-submenu:var(--gray-2);--menu-logo:40px;--menu-item-ng:var(--menu-item-medium);--menu-item-padding:var(--menu-item-medium);--menu-item-small:var(--spacing-scale-base);--menu-item-medium:var(--spacing-scale-2x);--menu-item-large:var(--spacing-scale-3x)}.br-menu .menu-container{display:none}.br-menu .menu-panel{--focus-offset:calc(var(--spacing-scale-half) * -1);background:var(--background);display:flex;flex-direction:column;height:100vh}.br-menu.active .menu-container{bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:var(--menu-zindex)}.br-menu.active .menu-panel{flex:1;overflow:auto;position:relative;z-index:calc(var(--menu-zindex) + 1)}.br-menu .menu-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;padding:var(--spacing-scale-base) var(--spacing-scale-base)}.br-menu .menu-header .menu-title{align-items:center;display:flex;flex:1;margin-left:var(--spacing-scale-base)}.br-menu .menu-header .menu-title img{max-height:var(--menu-logo)}.br-menu .menu-header .menu-title img+*{margin-left:var(--spacing-scale-base)}.br-menu .menu-body ul,.br-menu .menu-body li{margin:0;padding:0}.br-menu .menu-body ul{list-style:none}.br-menu .menu-body>.divider{border-bottom:1px solid var(--border-color)}.br-menu .menu-body .menu-folder>ul>li:last-child>.menu-item{border-bottom:1px solid var(--border-color)}.br-menu .menu-body .menu-folder>.menu-item+ul{background:var(--menu-background-submenu)}.br-menu .menu-body .menu-folder>.menu-item+ul .menu-item{padding-left:var(--spacing-scale-5x)}.br-menu .menu-body .drop-menu>.menu-item{border-bottom:1px solid var(--border-color)}.br-menu .menu-body .drop-menu.active>.menu-item{border-bottom:0}.br-menu .menu-body .drop-menu>ul{background:var(--menu-background-submenu);display:none}.br-menu .menu-body .drop-menu.active>.menu-item:not(:hover){background-color:var(--background)}.br-menu .menu-body .drop-menu.active>.menu-item .support .fa{transform:rotate(180deg)}.br-menu .menu-body .drop-menu.active>ul{display:block}.br-menu .menu-footer>*:not(:last-child){border-bottom:1px solid var(--border-color)}.br-menu .menu-footer .menu-logos{column-gap:var(--spacing-scale-2x);display:grid;grid-template-columns:1fr 1fr 1fr;padding:var(--spacing-scale-base) var(--spacing-scale-5x);row-gap:var(--spacing-scale-2x)}.br-menu .menu-footer .menu-links{--focus-offset:var(--spacing-scale-half);padding:var(--spacing-scale-2x) var(--spacing-scale-5x)}.br-menu .menu-footer .menu-links a{display:block}.br-menu .menu-footer .menu-links a:not(:last-child){margin-bottom:var(--spacing-scale-2x)}.br-menu .menu-footer .menu-links a:not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}.br-menu .menu-footer .social-network,.br-menu .menu-footer .menu-social{padding:var(--spacing-scale-base) var(--spacing-scale-5x)}.br-menu .menu-footer .social-network .social-network-title,.br-menu .menu-footer .menu-social .social-network-title{font-weight:var(--font-weight-semi-bold);margin-bottom:var(--spacing-scale-half)}.br-menu .menu-footer .social-network .sharegroup,.br-menu .menu-footer .menu-social .sharegroup{display:flex}.br-menu .menu-footer .menu-info{padding:var(--spacing-scale-2x)}.br-menu .menu-item{--focus-offset:calc(var(--spacing-scale-half) * -1);background:rgba(0,0,0,0);display:flex;padding:var(--menu-item-padding) var(--spacing-scale-2x)}.br-menu .menu-item .icon{margin-right:var(--spacing-scale-2x)}.br-menu .menu-item .content{flex:1}.br-menu a.menu-item{color:var(--interactive)}.br-menu .side-menu>ul{background:var(--menu-background-submenu);display:none}.br-menu .side-menu.active>.menu-item{--interactive:var(--active);--interactive-rgb:var(--active-rgb);background-color:var(--background);flex-direction:row-reverse;font-weight:var(--font-weight-semi-bold)}.br-menu .side-menu.active>.menu-item .icon{margin-right:0}.br-menu .side-menu.active>.menu-item .support{margin-right:var(--spacing-scale-2x)}.br-menu .side-menu.active>.menu-item .support .fa{transform:rotate(180deg)}.br-menu .side-menu.active>ul{display:block}.br-menu .side-menu.active .menu-item{padding-left:var(--spacing-scale-2x) !important}.br-menu.small .menu-item{--menu-item-padding:var(--menu-item-small)}.br-menu.medium .menu-item{--menu-item-padding:var(--menu-item-medium)}.br-menu.large .menu-item{--menu-item-padding:var(--menu-item-large)}.br-menu.push .menu-trigger{display:none}@media (min-width: 576px){.br-menu.push{--menu-zindex:var(--z-index-layer-0)}}@media (min-width: 576px){.br-menu.push .menu-header,.br-menu.push .menu-footer{display:none}.br-menu.push .menu-header[data-visible=true]{display:flex}.br-menu.push .menu-footer[data-visible=true]{display:block}.br-menu.push .menu-panel{height:auto}.br-menu.push.active .menu-container{position:static}}.br-menu.contextual{--menu-zindex:calc(var(--z-index-layer-3) - 10);overflow:auto}.br-menu.contextual .menu-body .menu-folder>.menu-item+ul .menu-item{padding-left:var(--spacing-scale-2x)}.br-menu.contextual .menu-body .menu-folder>ul>li:last-child>.menu-item{border-bottom:0}.br-menu.contextual .menu-trigger{bottom:0;left:0;position:fixed;right:0;z-index:calc(var(--menu-zindex) - 1)}.br-menu.contextual .menu-trigger .br-button{--button-radius:0}.br-menu.contextual .menu-container{display:none;flex-direction:column-reverse;position:static}.br-menu.contextual .menu-panel{height:auto}.br-menu.contextual.active{bottom:0;display:flex;flex-direction:column;height:100vh;justify-content:flex-end;left:0;position:fixed;right:0;z-index:var(--menu-zindex)}.br-menu.contextual.active .menu-trigger{position:relative;z-index:calc(var(--menu-zindex) + 1)}.br-menu.contextual.active .menu-trigger .fa{transform:rotate(180deg)}.br-menu.contextual.active .menu-container{display:flex;overflow:auto}@media (min-width: 992px){.br-menu.contextual .menu-trigger{display:none;position:absolute}.br-menu.contextual .menu-container{display:block}.br-menu.contextual.active{height:100%;position:absolute}}.br-menu .menu-item[hidden]{display:none}.br-menu .menu-item:disabled{cursor:not-allowed;opacity:var(--disabled)}.br-menu .menu-item:disabled *{pointer-events:none}.br-menu a.menu-item:not(:disabled).active{--interactive:var(--color-dark);--interactive-rgb:var(--color-dark-rgb);background-color:var(--active)}.br-menu a.menu-item:not(:disabled).active:focus{outline-color:var(--focus-color-dark)}.br-menu a.menu-item:not(:disabled):not(:disabled):hover{background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}:host{display:block}:host([push][is-open]){position:relative;z-index:var(--z-index-layer-1)}:host([fixed]){position:fixed;z-index:var(--menu-zindex, 1000);inset:0 auto 0 0;width:var(--menu-fixed-width, min(20rem, 100vw));height:100vh}.br-menu:not(.push,.contextual){--menu-zindex:var(--z-index-layer-3)}dialog.menu-container{background:rgba(0,0,0,0);border:0;color:inherit;margin:0;max-height:none;max-width:none;padding:0}dialog.menu-container::backdrop{background:rgba(0,0,0,0)}.br-menu.fixed.active .menu-container{display:flex;position:static;height:100%;min-height:0}.br-menu.fixed{height:100%}.br-menu.fixed.active .menu-panel{flex:1 1 auto;height:100%;min-height:0;overflow-y:auto}.br-menu.active .menu-panel{z-index:1}.menu-trigger br-button{width:100%;display:flex;align-items:center;justify-content:space-between}.menu-trigger br-button::part(button){border-radius:0 !important}.menu-trigger .trigger-label{flex:1;text-align:center;font-weight:var(--font-weight-semi-bold)}.menu-trigger .trigger-icon{flex-shrink:0;margin-left:var(--spacing-scale-2x)}.br-menu.active .menu-container{pointer-events:none}.br-menu.active .menu-panel{pointer-events:auto}::slotted(.drill-down-hidden),::slotted(br-menu-list.drill-down-hidden),::slotted(br-menu-item.drill-down-hidden){display:none !important}::slotted(br-menu-link){margin-bottom:var(--spacing-scale-2x)}::slotted(br-menu-link):last-of-type{margin-bottom:0}.menu-back-button{border-bottom:1px solid var(--color-neutral-light-20)}.menu-back-button .back-btn{display:flex;align-items:center;gap:var(--spacing-scale-2x);box-sizing:border-box;padding-block:var(--menu-item-padding, var(--menu-item-medium));padding-inline:var(--spacing-scale-2x);border:none;background:rgba(0,0,0,0);color:var(--color-primary-dark);font-size:var(--font-size-scale-base);cursor:pointer;width:100%;justify-content:flex-start;transition:background-color .2s ease,color .2s ease,transform .1s ease}.menu-back-button .back-btn:hover{background-image:linear-gradient(rgb(var(--interactive-rgb)/var(--hover)), rgb(var(--interactive-rgb)/var(--hover)))}.menu-back-button .back-btn:focus-visible{outline:var(--focus-width) var(--focus-style) var(--focus-color);outline-offset:var(--focus-offset);border-radius:0}.menu-back-button .back-btn:active{background:var(--color-primary-dark);transform:translateY(1px)}.menu-back-button .back-btn br-icon{font-size:var(--font-size-scale-up-01);color:var(--active)}.menu-back-button .back-btn .back-title{text-align:center;color:var(--active);font-weight:var(--font-weight-semi-bold)}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}`;
|
|
15
|
+
|
|
16
|
+
const Menu = class {
|
|
17
|
+
constructor(hostRef) {
|
|
18
|
+
index.registerInstance(this, hostRef);
|
|
19
|
+
this.brMenuStateChange = index.createEvent(this, "brMenuStateChange", 6);
|
|
20
|
+
this.brMenuOpenChange = index.createEvent(this, "brMenuOpenChange", 6);
|
|
21
|
+
// Representa o nível atual de navegação no drill-down (0 para o nível raiz)
|
|
22
|
+
this.currentLevel = 0;
|
|
23
|
+
// Controla quais menus drop-down estão expandidos no modo acordeão
|
|
24
|
+
this.expandedDropMenus = {};
|
|
25
|
+
// Indica se o menu está exibindo um submenu (drill-down ativo)
|
|
26
|
+
this.isInSubmenu = false;
|
|
27
|
+
// Pilha de navegação para controle do drill-down e navegação de volta
|
|
28
|
+
this.navigationStack = [];
|
|
29
|
+
/**
|
|
30
|
+
* Identificador único do componente.
|
|
31
|
+
* Quando omitido, um valor é gerado automaticamente.
|
|
32
|
+
*
|
|
33
|
+
* > **Padrão:** valor único gerado por generateUniqueId().
|
|
34
|
+
*/
|
|
35
|
+
this.customId = id.generateUniqueId();
|
|
36
|
+
/**
|
|
37
|
+
* Classes CSS para definir breakpoints responsivos do menu.
|
|
38
|
+
* Utilize esta propriedade para controlar a largura do menu em diferentes tamanhos de tela.
|
|
39
|
+
* Por padrão não aplica colunas; quando contextual e sem valor definido, usa `col-sm-4 col-lg-3`.
|
|
40
|
+
*/
|
|
41
|
+
this.breakpoints = '';
|
|
42
|
+
/**
|
|
43
|
+
* Define se o menu deve usar comportamento push.
|
|
44
|
+
* Quando ativado, o menu permanece fixo na lateral e empurra o conteúdo principal.
|
|
45
|
+
*/
|
|
46
|
+
this.push = false;
|
|
47
|
+
/**
|
|
48
|
+
* Mantém o menu como uma barra lateral fixa quando estiver aberto.
|
|
49
|
+
* O menu continua podendo ser ocultado alterando `isOpen` ou chamando `close()`.
|
|
50
|
+
* A largura padrão é `20rem`, limitada à viewport, e pode ser sobrescrita
|
|
51
|
+
* pela variável CSS `--menu-fixed-width`.
|
|
52
|
+
*/
|
|
53
|
+
this.fixed = false;
|
|
54
|
+
/**
|
|
55
|
+
* Define se o painel do menu está aberto/visível.
|
|
56
|
+
* Em modo push, esta propriedade permite controle externo da visibilidade.
|
|
57
|
+
* O nome permanece porque o método público `open()` já ocupa a propriedade `open` no host.
|
|
58
|
+
*/
|
|
59
|
+
this.isOpen = false;
|
|
60
|
+
/**
|
|
61
|
+
* Define se o menu deve usar comportamento contextual (aparece na parte inferior).
|
|
62
|
+
* Quando ativado, o menu é posicionado na parte inferior da tela em dispositivos móveis.
|
|
63
|
+
*/
|
|
64
|
+
this.contextual = false;
|
|
65
|
+
/**
|
|
66
|
+
* Define a densidade dos itens do menu, alterando o espaçamento interno.
|
|
67
|
+
* - `small` (densidade alta): itens mais compactos
|
|
68
|
+
* - `medium` (padrão): equilíbrio entre economia de espaço e separação
|
|
69
|
+
* - `large` (densidade baixa): maior espaçamento (recomendado em touch)
|
|
70
|
+
*/
|
|
71
|
+
this.density = 'medium';
|
|
72
|
+
/**
|
|
73
|
+
* Título da seção de redes sociais exibida no rodapé do menu.
|
|
74
|
+
* Utilize esta propriedade para personalizar o texto que aparece acima dos ícones sociais.
|
|
75
|
+
*/
|
|
76
|
+
this.socialTitle = 'Redes Sociais';
|
|
77
|
+
/**
|
|
78
|
+
* Rótulo do botão trigger do menu contextual.
|
|
79
|
+
* Exibido apenas em modo contextual e em telas menores (mobile).
|
|
80
|
+
*/
|
|
81
|
+
this.contextualLabel = 'Menu Contextual';
|
|
82
|
+
// Armazena o elemento que tinha foco antes do menu abrir (para restaurar o foco ao fechar)
|
|
83
|
+
this.previouslyFocusedElement = null;
|
|
84
|
+
// IDs dos requestAnimationFrame para cancelamento no cleanup
|
|
85
|
+
this.rafIds = [];
|
|
86
|
+
this.scrimRef = null;
|
|
87
|
+
this.nativeDialogRef = null;
|
|
88
|
+
this.activeMenuItem = null;
|
|
89
|
+
this.handleNativeCancel = (event) => {
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
this.applyOpenState(false);
|
|
92
|
+
};
|
|
93
|
+
this.onToggleClick = () => {
|
|
94
|
+
this.applyOpenState(!this.isOpen);
|
|
95
|
+
};
|
|
96
|
+
this.onGoBackClick = () => {
|
|
97
|
+
this.goBack();
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// O @Watch dispara após isOpen já ter sido atualizado pelo Stencil.
|
|
101
|
+
// Por isso, aqui ficam apenas os side effects (foco, reset de navegação) — não há loop.
|
|
102
|
+
onOpenChange(isOpening) {
|
|
103
|
+
this.brMenuStateChange.emit({ isOpen: isOpening });
|
|
104
|
+
this.brMenuOpenChange.emit({ open: isOpening, sourceId: this.el.id || this.customId });
|
|
105
|
+
if (isOpening) {
|
|
106
|
+
this.previouslyFocusedElement = focus.captureFocus(this.el.ownerDocument);
|
|
107
|
+
const rafId = requestAnimationFrame(() => this.focusFirstVisibleTarget());
|
|
108
|
+
this.rafIds.push(rafId);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.isInSubmenu = false;
|
|
112
|
+
this.resetNavigation();
|
|
113
|
+
if (this.previouslyFocusedElement) {
|
|
114
|
+
focus.restoreFocus(this.previouslyFocusedElement);
|
|
115
|
+
this.previouslyFocusedElement = null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Método do ciclo de vida do componente.
|
|
120
|
+
* Este método é chamado quando o componente é desconectado do DOM.
|
|
121
|
+
* Realiza limpeza de recursos para evitar vazamento de memória.
|
|
122
|
+
*/
|
|
123
|
+
disconnectedCallback() {
|
|
124
|
+
// Cancela todos os requestAnimationFrame pendentes
|
|
125
|
+
this.rafIds.forEach((id) => {
|
|
126
|
+
cancelAnimationFrame(id);
|
|
127
|
+
});
|
|
128
|
+
this.rafIds = [];
|
|
129
|
+
}
|
|
130
|
+
componentDidLoad() {
|
|
131
|
+
// Garante que apenas um item tenha active no carregamento inicial
|
|
132
|
+
this.ensureSingleActiveItem();
|
|
133
|
+
this.syncNativeDialog();
|
|
134
|
+
}
|
|
135
|
+
componentDidRender() {
|
|
136
|
+
this.syncNativeDialog();
|
|
137
|
+
}
|
|
138
|
+
onMenuItemClick(ev) {
|
|
139
|
+
// Busca o menu-item mais próximo do alvo do clique
|
|
140
|
+
const path = event.getEventPath(ev);
|
|
141
|
+
let menuItemHost = null;
|
|
142
|
+
// Percorre o caminho do evento para encontrar o br-menu-item
|
|
143
|
+
for (const element of path) {
|
|
144
|
+
if (element instanceof HTMLElement && element.tagName === 'BR-MENU-ITEM') {
|
|
145
|
+
menuItemHost = element;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
// Para quando chegar no host do menu
|
|
149
|
+
if (element === this.el)
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (!menuItemHost || !this.el.contains(menuItemHost))
|
|
153
|
+
return;
|
|
154
|
+
// Ignora se for um header de menu-list (folder/dropdown que tem filhos)
|
|
155
|
+
// Menus que expandem/têm submenus não devem receber classe active
|
|
156
|
+
const parentMenuList = menuItemHost.parentElement;
|
|
157
|
+
if (parentMenuList?.tagName === 'BR-MENU-LIST') {
|
|
158
|
+
// Se é filho direto de br-menu-list, verifica se é o header (primeiro br-menu-item)
|
|
159
|
+
const header = parentMenuList.shadowRoot?.querySelector('br-menu-item');
|
|
160
|
+
if (header === menuItemHost) {
|
|
161
|
+
// É um header de folder, não deve receber active
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Também verifica via atributo display-mode
|
|
166
|
+
const displayMode = menuItemHost.getAttribute('display-mode');
|
|
167
|
+
if (displayMode && displayMode !== 'none') {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (this.activeMenuItem !== null && this.activeMenuItem !== menuItemHost) {
|
|
171
|
+
this.activeMenuItem.active = false;
|
|
172
|
+
}
|
|
173
|
+
this.activeMenuItem = menuItemHost;
|
|
174
|
+
this.activeMenuItem.active = true;
|
|
175
|
+
}
|
|
176
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: fluxo de teclado centraliza múltiplos modos de navegação e armadilha de foco.
|
|
177
|
+
onKeyDown(ev) {
|
|
178
|
+
// Permite ativar o botão contextual com Enter ou Espaço quando o menu está fechado
|
|
179
|
+
if (!this.isOpen && this.contextual && (ev.key === 'Enter' || ev.key === ' ')) {
|
|
180
|
+
const target = ev.target;
|
|
181
|
+
const isContextualButton = target?.closest?.('#contextual-trigger') || target?.id === 'contextual-trigger';
|
|
182
|
+
if (isContextualButton) {
|
|
183
|
+
ev.preventDefault();
|
|
184
|
+
this.applyOpenState(!this.isOpen);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (!this.isOpen)
|
|
189
|
+
return;
|
|
190
|
+
if (this.usesNativeDialog && nativeDialog.supportsNativeModalDialog() && !event.isEventTargetInside(ev, this.el))
|
|
191
|
+
return;
|
|
192
|
+
const targetEl = ev.target;
|
|
193
|
+
const isFormField = targetEl &&
|
|
194
|
+
(targetEl.tagName === 'INPUT' ||
|
|
195
|
+
targetEl.tagName === 'TEXTAREA' ||
|
|
196
|
+
targetEl.tagName === 'SELECT' ||
|
|
197
|
+
targetEl.isContentEditable);
|
|
198
|
+
// Focus trap: gerencia Tab/Shift+Tab para manter o foco dentro do menu
|
|
199
|
+
if (ev.key === 'Tab') {
|
|
200
|
+
const focusableElements = this.getFocusableElements();
|
|
201
|
+
if (focusableElements.length === 0)
|
|
202
|
+
return;
|
|
203
|
+
const firstElement = focusableElements[0];
|
|
204
|
+
const lastElement = focusableElements[focusableElements.length - 1];
|
|
205
|
+
const deepActive = focus.getDeepActiveElement(this.el.getRootNode());
|
|
206
|
+
// Se Tab sem Shift e está no último elemento, volta para o primeiro
|
|
207
|
+
if (!ev.shiftKey && deepActive === lastElement) {
|
|
208
|
+
ev.preventDefault();
|
|
209
|
+
firstElement.focus();
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
// Se Shift+Tab e está no primeiro elemento, vai para o último
|
|
213
|
+
if (ev.shiftKey && deepActive === firstElement) {
|
|
214
|
+
ev.preventDefault();
|
|
215
|
+
lastElement.focus();
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Voltar/fechar
|
|
220
|
+
if (this.isInSubmenu && (ev.key === 'ArrowLeft' || ev.key === 'Backspace' || ev.key === 'Escape')) {
|
|
221
|
+
ev.preventDefault();
|
|
222
|
+
this.goBack();
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (!this.isInSubmenu && ev.key === 'Escape') {
|
|
226
|
+
ev.preventDefault();
|
|
227
|
+
if (!this.push && !this.fixed)
|
|
228
|
+
this.applyOpenState(false);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
// Navegação global por setas (fallback para todos os tipos de menu)
|
|
232
|
+
if (!isFormField && (ev.key === 'ArrowDown' || ev.key === 'ArrowUp')) {
|
|
233
|
+
const deepActive = focus.getDeepActiveElement(this.el.getRootNode());
|
|
234
|
+
if (deepActive == null || !this.isNodeWithinHost(deepActive))
|
|
235
|
+
return;
|
|
236
|
+
ev.preventDefault();
|
|
237
|
+
ev.stopPropagation();
|
|
238
|
+
// No modo contextual ou quando não há drill-down ativo, navega por todos os itens visíveis
|
|
239
|
+
const useGlobalNavigation = this.contextual || !this.isInSubmenu;
|
|
240
|
+
const targets = useGlobalNavigation ? this.getAllVisibleTargets() : this.getScopedTargets(deepActive);
|
|
241
|
+
if (targets.length === 0)
|
|
242
|
+
return;
|
|
243
|
+
let index = targets.findIndex((t) => t === deepActive || (deepActive instanceof Node && t.contains(deepActive)));
|
|
244
|
+
if (index === -1)
|
|
245
|
+
index = 0;
|
|
246
|
+
const nextTarget = getNextElement.getNextEnabledElement(targets, targets[index], ev.key === 'ArrowDown' ? 'forward' : 'backward');
|
|
247
|
+
nextTarget?.focus();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Escuta cliques no documento para alternar o estado do menu automaticamente
|
|
252
|
+
* quando um elemento com o atributo `data-toggle="menu"` é clicado.
|
|
253
|
+
* Utiliza o caminho completo do evento (composedPath) para permitir o funcionamento
|
|
254
|
+
* correto quando o botão acionador está dentro de outros componentes com Shadow DOM (ex: br-header).
|
|
255
|
+
*/
|
|
256
|
+
onDocumentClick(ev) {
|
|
257
|
+
const path = event.getEventPath(ev);
|
|
258
|
+
let toggleBtn = null;
|
|
259
|
+
for (const target of path) {
|
|
260
|
+
if (target instanceof HTMLElement &&
|
|
261
|
+
target.hasAttribute('data-toggle') &&
|
|
262
|
+
target.getAttribute('data-toggle') === 'menu') {
|
|
263
|
+
toggleBtn = target;
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (toggleBtn) {
|
|
268
|
+
const targetId = toggleBtn.getAttribute('data-target');
|
|
269
|
+
if (!targetId || targetId === `#${this.el.id}` || targetId === this.el.id || targetId === this.customId) {
|
|
270
|
+
this.applyOpenState(!this.isOpen);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
onNavigateToSubmenu(ev) {
|
|
275
|
+
const { element, label } = ev.detail;
|
|
276
|
+
const itemId = element.getAttribute('data-menu-id') || `menu-${Date.now()}`;
|
|
277
|
+
// Obter o nível real do menu do elemento
|
|
278
|
+
const menuLevel = parseInt(element.getAttribute('menu-level') || '0', 10);
|
|
279
|
+
// Aplicar a regra principal: comportamento por nível
|
|
280
|
+
if (menuLevel === 0 && !this.push && !this.fixed) {
|
|
281
|
+
// Camada 1: Comportamento de acordeão
|
|
282
|
+
this.toggleDropMenu(itemId);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// Modo push e camadas 2+: comportamento drill-down
|
|
286
|
+
this.navigateToLevel({ element, label, id: itemId });
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
onFolderToggled(ev) {
|
|
290
|
+
const element = ev.target;
|
|
291
|
+
const itemId = element.getAttribute('data-menu-id') || `menu-${Date.now()}`;
|
|
292
|
+
if (ev.detail) {
|
|
293
|
+
// Se o folder foi expandido, fecha todos os outros no nível 0
|
|
294
|
+
this.collapseOtherFolders(itemId);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
onMenuToggle(ev) {
|
|
298
|
+
const targetId = ev.detail?.target;
|
|
299
|
+
if (targetId) {
|
|
300
|
+
if (targetId === `#${this.el.id}` || targetId === this.el.id || targetId === this.customId) {
|
|
301
|
+
this.applyOpenState(!this.isOpen);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
if (event.isEventTargetInside(ev, this.el) || !this.isEventTargetInsideAnyMenu(ev)) {
|
|
306
|
+
this.applyOpenState(!this.isOpen);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
isEventTargetInsideAnyMenu(ev) {
|
|
311
|
+
return event.getEventPath(ev).some((target) => target instanceof HTMLElement && target.tagName === 'BR-MENU');
|
|
312
|
+
}
|
|
313
|
+
onScrimClose(ev) {
|
|
314
|
+
if (this.scrimRef === null || !event.isEventTargetInside(ev, this.scrimRef))
|
|
315
|
+
return;
|
|
316
|
+
if (!this.push && !this.fixed && !this.contextual) {
|
|
317
|
+
this.applyOpenState(false);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
onMenuGoBack() {
|
|
321
|
+
this.goBack();
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Abre o painel do menu.
|
|
325
|
+
* Pode ser chamado externamente: `menuEl.open()`.
|
|
326
|
+
*/
|
|
327
|
+
async open() {
|
|
328
|
+
this.applyOpenState(true);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Fecha o painel do menu.
|
|
332
|
+
* Pode ser chamado externamente: `menuEl.close()`.
|
|
333
|
+
*/
|
|
334
|
+
async close() {
|
|
335
|
+
this.applyOpenState(false);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Alterna o estado do painel do menu (abre se fechado, fecha se aberto).
|
|
339
|
+
* Pode ser chamado externamente: `menuEl.toggle()`.
|
|
340
|
+
*/
|
|
341
|
+
async toggle() {
|
|
342
|
+
this.applyOpenState(!this.isOpen);
|
|
343
|
+
}
|
|
344
|
+
get usesNativeDialog() {
|
|
345
|
+
return !this.push && !this.fixed && !this.contextual;
|
|
346
|
+
}
|
|
347
|
+
syncNativeDialog() {
|
|
348
|
+
nativeDialog.syncNativeModalDialog(this.nativeDialogRef, this.isOpen && this.usesNativeDialog);
|
|
349
|
+
}
|
|
350
|
+
ensureSingleActiveItem() {
|
|
351
|
+
const allMenuItems = this.el.querySelectorAll('br-menu-item');
|
|
352
|
+
let firstActiveItem = null;
|
|
353
|
+
this.activeMenuItem = null;
|
|
354
|
+
// Encontra o primeiro item com active e remove dos demais
|
|
355
|
+
for (let i = 0; i < allMenuItems.length; i++) {
|
|
356
|
+
const item = allMenuItems[i];
|
|
357
|
+
// Verifica se o item tem active
|
|
358
|
+
if (item.active || item.hasAttribute('active')) {
|
|
359
|
+
// Se é um header de menu-list (folder), remove o active
|
|
360
|
+
const displayMode = item.getAttribute('display-mode');
|
|
361
|
+
if (displayMode && displayMode !== 'none') {
|
|
362
|
+
item.active = false;
|
|
363
|
+
item.removeAttribute('active');
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
366
|
+
// Se já encontramos um item ativo antes, remove deste
|
|
367
|
+
if (firstActiveItem) {
|
|
368
|
+
item.active = false;
|
|
369
|
+
item.removeAttribute('active');
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
// É o primeiro item ativo válido
|
|
373
|
+
firstActiveItem = item;
|
|
374
|
+
item.active = true;
|
|
375
|
+
this.activeMenuItem = item;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Alterna o estado expandido de um menu drop-down no modo acordeão.
|
|
382
|
+
*
|
|
383
|
+
* Este método recebe o identificador único (`itemId`) de um menu do tipo drop-down (nível 0)
|
|
384
|
+
* e inverte o seu estado de expansão dentro do objeto `expandedDropMenus`.
|
|
385
|
+
*
|
|
386
|
+
* Se o menu estiver atualmente expandido, ele será recolhido; se estiver recolhido, será expandido.
|
|
387
|
+
* O spread operator (`...this.expandedDropMenus`) garante que os estados dos outros menus sejam preservados.
|
|
388
|
+
*
|
|
389
|
+
* @param itemId - Identificador único do menu drop-down a ser alternado.
|
|
390
|
+
*/
|
|
391
|
+
toggleDropMenu(itemId) {
|
|
392
|
+
this.expandedDropMenus = {
|
|
393
|
+
...this.expandedDropMenus,
|
|
394
|
+
[itemId]: !this.expandedDropMenus[itemId],
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Recolhe todos os folders do nível 0, exceto o especificado.
|
|
399
|
+
* Garante que apenas um folder possa estar expandido por vez no comportamento acordeão.
|
|
400
|
+
*
|
|
401
|
+
* @param activeItemId - ID do folder que deve permanecer expandido
|
|
402
|
+
*/
|
|
403
|
+
collapseOtherFolders(activeItemId) {
|
|
404
|
+
// Encontra todos os menu-list no nível 0
|
|
405
|
+
const level0MenuLists = this.el.querySelectorAll('br-menu-list[menu-level="0"]');
|
|
406
|
+
level0MenuLists.forEach((menuList) => {
|
|
407
|
+
const element = menuList;
|
|
408
|
+
const itemId = element.getAttribute('data-menu-id');
|
|
409
|
+
// Se é um folder diferente do ativo, força o recolhimento
|
|
410
|
+
if (itemId && itemId !== activeItemId) {
|
|
411
|
+
// Força o estado recolhido no menu-list
|
|
412
|
+
element.expanded = false;
|
|
413
|
+
// Remove do estado de expandedDropMenus
|
|
414
|
+
if (this.expandedDropMenus[itemId]) {
|
|
415
|
+
this.expandedDropMenus = {
|
|
416
|
+
...this.expandedDropMenus,
|
|
417
|
+
[itemId]: false,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Navega para um nível específico do menu (drill-down).
|
|
425
|
+
*
|
|
426
|
+
* Este método é chamado quando o usuário interage com um item de menu de nível 2 ou superior,
|
|
427
|
+
* ou seja, quando o comportamento esperado é de drill-down (aprofundamento em submenus).
|
|
428
|
+
*
|
|
429
|
+
* Funcionamento:
|
|
430
|
+
* 1. Adiciona o item atual à pilha de navegação (`navigationStack`), permitindo que o usuário volte para níveis anteriores.
|
|
431
|
+
* 2. Obtém o nível do menu a partir do atributo `menu-level` do elemento clicado.
|
|
432
|
+
* 3. Atualiza o estado `currentLevel` para refletir o novo nível de profundidade (sempre um nível abaixo do atual).
|
|
433
|
+
* 4. Define `inSubmenu` como `true`, indicando que o usuário está navegando em um submenu.
|
|
434
|
+
* 5. Oculta todos os itens do menu, exceto o submenu selecionado, para garantir foco e clareza na navegação.
|
|
435
|
+
* 6. Marca o elemento ativo como "drill active" para controle visual e de acessibilidade.
|
|
436
|
+
*
|
|
437
|
+
* @param item - Objeto contendo o elemento do menu, seu rótulo e identificador único.
|
|
438
|
+
*/
|
|
439
|
+
navigateToLevel(item) {
|
|
440
|
+
// Adiciona o item à pilha de navegação para possibilitar o retorno (back)
|
|
441
|
+
this.navigationStack = [...this.navigationStack, item];
|
|
442
|
+
// Obtém o nível do menu a partir do atributo do elemento
|
|
443
|
+
const menuLevel = parseInt(item.element.getAttribute('menu-level') || '0', 10);
|
|
444
|
+
// Atualiza o nível atual para o próximo nível após o elemento clicado
|
|
445
|
+
this.currentLevel = menuLevel + 1;
|
|
446
|
+
// Indica que estamos em um submenu (drill-down ativo)
|
|
447
|
+
this.isInSubmenu = true;
|
|
448
|
+
// Oculta todos os menus, exceto o submenu selecionado
|
|
449
|
+
this.hideAllExcept(item.element);
|
|
450
|
+
// Marca o submenu como ativo para controle visual e de acessibilidade
|
|
451
|
+
this.setDrillActive(item.element, true);
|
|
452
|
+
// Após entrar no submenu, foca no primeiro item visível
|
|
453
|
+
const rafId = requestAnimationFrame(() => this.focusFirstChildOfList(item.element));
|
|
454
|
+
this.rafIds.push(rafId);
|
|
455
|
+
}
|
|
456
|
+
focusFirstChildOfList(listEl) {
|
|
457
|
+
const slotEl = listEl.shadowRoot?.querySelector('ul slot');
|
|
458
|
+
const assigned = slotEl?.assignedElements?.() || [];
|
|
459
|
+
for (const el of assigned) {
|
|
460
|
+
if (el.tagName === 'BR-MENU-ITEM') {
|
|
461
|
+
const anchor = el.shadowRoot?.querySelector('a');
|
|
462
|
+
if (this.isVisibleElement(el) && this.isVisibleElement(anchor)) {
|
|
463
|
+
anchor.focus();
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
else if (el.tagName === 'BR-MENU-LIST') {
|
|
468
|
+
const header = el.shadowRoot?.querySelector('br-menu-item');
|
|
469
|
+
const anchor = header?.shadowRoot?.querySelector('a');
|
|
470
|
+
if (this.isVisibleElement(el) && this.isVisibleElement(anchor)) {
|
|
471
|
+
anchor.focus();
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
// Ponto de mutação de isOpen: faz o guard e seta a prop.
|
|
478
|
+
// A mudança em isOpen dispara o @Watch, que executa os side effects.
|
|
479
|
+
applyOpenState(nextOpen) {
|
|
480
|
+
if (this.isOpen === nextOpen)
|
|
481
|
+
return;
|
|
482
|
+
this.isOpen = nextOpen;
|
|
483
|
+
}
|
|
484
|
+
resetNavigation() {
|
|
485
|
+
if (this.navigationStack.length > 0)
|
|
486
|
+
this.navigationStack = [];
|
|
487
|
+
if (this.currentLevel !== 0)
|
|
488
|
+
this.currentLevel = 0;
|
|
489
|
+
if (Object.keys(this.expandedDropMenus).length > 0)
|
|
490
|
+
this.expandedDropMenus = {};
|
|
491
|
+
this.clearAllDrillMarkers();
|
|
492
|
+
this.showAllMenuItems();
|
|
493
|
+
}
|
|
494
|
+
isVisibleElement(el) {
|
|
495
|
+
if (el == null)
|
|
496
|
+
return false;
|
|
497
|
+
const htmlEl = el;
|
|
498
|
+
if (!htmlEl.isConnected)
|
|
499
|
+
return false;
|
|
500
|
+
if (htmlEl.hasAttribute('hidden'))
|
|
501
|
+
return false;
|
|
502
|
+
const rects = htmlEl.getClientRects?.();
|
|
503
|
+
return rects != null && rects.length > 0;
|
|
504
|
+
}
|
|
505
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: montagem de foco precisa tratar tipos heterogêneos de itens no topo.
|
|
506
|
+
getTopLevelTargets() {
|
|
507
|
+
const targets = [];
|
|
508
|
+
const bodySlot = this.el.shadowRoot?.querySelector('nav.menu-body slot:not([name])');
|
|
509
|
+
const children = bodySlot?.assignedElements?.() || [];
|
|
510
|
+
for (const child of children) {
|
|
511
|
+
if (child.tagName === 'BR-MENU-ITEM') {
|
|
512
|
+
if (!this.isVisibleElement(child))
|
|
513
|
+
continue;
|
|
514
|
+
const anchor = child.shadowRoot?.querySelector('a');
|
|
515
|
+
if (this.isVisibleElement(anchor))
|
|
516
|
+
targets.push(anchor);
|
|
517
|
+
}
|
|
518
|
+
else if (child.tagName === 'BR-MENU-LIST') {
|
|
519
|
+
if (!this.isVisibleElement(child))
|
|
520
|
+
continue;
|
|
521
|
+
const header = child.shadowRoot?.querySelector('br-menu-item');
|
|
522
|
+
const anchor = header?.shadowRoot?.querySelector('a');
|
|
523
|
+
if (this.isVisibleElement(anchor))
|
|
524
|
+
targets.push(anchor);
|
|
525
|
+
}
|
|
526
|
+
else if (child.tagName === 'BR-MENU-GROUP') {
|
|
527
|
+
this.collectTopLevelGroupTargets(child, targets);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
return targets;
|
|
531
|
+
}
|
|
532
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: grupos estáticos são transparentes e podem conter pastas aninhadas.
|
|
533
|
+
collectTopLevelGroupTargets(group, targets) {
|
|
534
|
+
if (!this.isVisibleElement(group))
|
|
535
|
+
return;
|
|
536
|
+
for (const child of Array.from(group.children)) {
|
|
537
|
+
if (child.tagName === 'BR-MENU-ITEM') {
|
|
538
|
+
const anchor = child.shadowRoot?.querySelector('a');
|
|
539
|
+
if (this.isVisibleElement(child) && this.isVisibleElement(anchor))
|
|
540
|
+
targets.push(anchor);
|
|
541
|
+
}
|
|
542
|
+
else if (child.tagName === 'BR-MENU-LIST') {
|
|
543
|
+
const header = child.shadowRoot?.querySelector('br-menu-item');
|
|
544
|
+
const anchor = header?.shadowRoot?.querySelector('a');
|
|
545
|
+
if (this.isVisibleElement(child) && this.isVisibleElement(anchor))
|
|
546
|
+
targets.push(anchor);
|
|
547
|
+
}
|
|
548
|
+
else if (child.tagName === 'BR-MENU-GROUP') {
|
|
549
|
+
this.collectTopLevelGroupTargets(child, targets);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Obtém todos os elementos navegáveis visíveis no menu, incluindo itens dentro de agrupamentos expandidos.
|
|
555
|
+
* Utilizado para navegação global por setas no modo contextual.
|
|
556
|
+
*/
|
|
557
|
+
getAllVisibleTargets() {
|
|
558
|
+
const targets = [];
|
|
559
|
+
const bodySlot = this.el.shadowRoot?.querySelector('nav.menu-body slot:not([name])');
|
|
560
|
+
const children = bodySlot?.assignedElements?.() || [];
|
|
561
|
+
for (const child of children) {
|
|
562
|
+
this.collectVisibleTargetsFrom(child, targets);
|
|
563
|
+
}
|
|
564
|
+
return targets;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Coleta recursivamente todos os targets visíveis de um elemento e seus descendentes.
|
|
568
|
+
* Respeita o estado expandido/recolhido dos agrupamentos.
|
|
569
|
+
*/
|
|
570
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: travessia recursiva respeita visibilidade, slots e estado expandido dos agrupamentos.
|
|
571
|
+
collectVisibleTargetsFrom(element, targets) {
|
|
572
|
+
if (element.tagName === 'BR-MENU-ITEM') {
|
|
573
|
+
if (!this.isVisibleElement(element))
|
|
574
|
+
return;
|
|
575
|
+
const anchor = element.shadowRoot?.querySelector('a');
|
|
576
|
+
if (this.isVisibleElement(anchor)) {
|
|
577
|
+
targets.push(anchor);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else if (element.tagName === 'BR-MENU-LIST') {
|
|
581
|
+
if (!this.isVisibleElement(element))
|
|
582
|
+
return;
|
|
583
|
+
// Adiciona o header do menu-list
|
|
584
|
+
const header = element.shadowRoot?.querySelector('br-menu-item');
|
|
585
|
+
const headerAnchor = header?.shadowRoot?.querySelector('a');
|
|
586
|
+
if (this.isVisibleElement(headerAnchor)) {
|
|
587
|
+
targets.push(headerAnchor);
|
|
588
|
+
}
|
|
589
|
+
// Verifica se o menu-list está expandido antes de processar os filhos
|
|
590
|
+
const menuListEl = element;
|
|
591
|
+
const isExpanded = menuListEl.expanded || menuListEl.hasAttribute('expanded');
|
|
592
|
+
if (isExpanded) {
|
|
593
|
+
// Verifica também se o <ul> está realmente visível (para nível 0 que usa display:none)
|
|
594
|
+
const ulElement = element.shadowRoot?.querySelector('ul');
|
|
595
|
+
const isUlVisible = ulElement ? this.isVisibleElement(ulElement) : false;
|
|
596
|
+
if (isUlVisible) {
|
|
597
|
+
// Coleta os filhos do slot do menu-list
|
|
598
|
+
const slotEl = ulElement?.querySelector('slot');
|
|
599
|
+
const assigned = slotEl?.assignedElements?.() || [];
|
|
600
|
+
for (const child of assigned) {
|
|
601
|
+
this.collectVisibleTargetsFrom(child, targets);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
else if (element.tagName === 'BR-MENU-GROUP') {
|
|
607
|
+
if (!this.isVisibleElement(element))
|
|
608
|
+
return;
|
|
609
|
+
for (const child of Array.from(element.children)) {
|
|
610
|
+
this.collectVisibleTargetsFrom(child, targets);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Obtém targets com escopo limitado ao menu-list mais próximo (usado em drill-down).
|
|
616
|
+
*/
|
|
617
|
+
getScopedTargets(deepActive) {
|
|
618
|
+
const listScope = this.findClosestMenuListFrom(deepActive);
|
|
619
|
+
return listScope ? this.getTargetsForMenuList(listScope) : this.getTopLevelTargets();
|
|
620
|
+
}
|
|
621
|
+
isNodeWithinHost(node) {
|
|
622
|
+
let current = node;
|
|
623
|
+
while (current != null) {
|
|
624
|
+
if (current === this.el)
|
|
625
|
+
return true;
|
|
626
|
+
if (current instanceof Element && current.parentElement != null) {
|
|
627
|
+
current = current.parentElement;
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
const rootNode = (current instanceof Element ? current.getRootNode() : current);
|
|
631
|
+
current = rootNode != null && 'host' in rootNode ? rootNode.host : null;
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
return false;
|
|
635
|
+
}
|
|
636
|
+
findClosestMenuListFrom(node) {
|
|
637
|
+
let current = node;
|
|
638
|
+
while (current != null) {
|
|
639
|
+
if (current instanceof Element && current.tagName === 'BR-MENU-LIST')
|
|
640
|
+
return current;
|
|
641
|
+
if (current instanceof Element && current.parentElement != null) {
|
|
642
|
+
current = current.parentElement;
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
const rootNode = (current instanceof Element ? current.getRootNode() : current);
|
|
646
|
+
current = rootNode != null && 'host' in rootNode ? rootNode.host : null;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
return null;
|
|
650
|
+
}
|
|
651
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: coleta focável depende de cabeçalho, itens diretos e listas internas atribuídas por slot.
|
|
652
|
+
getTargetsForMenuList(listEl) {
|
|
653
|
+
const targets = [];
|
|
654
|
+
const header = listEl.shadowRoot?.querySelector('br-menu-item');
|
|
655
|
+
const headerAnchor = header?.shadowRoot?.querySelector('a');
|
|
656
|
+
if (this.isVisibleElement(header) && this.isVisibleElement(headerAnchor))
|
|
657
|
+
targets.push(headerAnchor);
|
|
658
|
+
const slotEl = listEl.shadowRoot?.querySelector('ul slot');
|
|
659
|
+
const assigned = slotEl?.assignedElements?.() || [];
|
|
660
|
+
for (const el of assigned) {
|
|
661
|
+
if (el.tagName === 'BR-MENU-ITEM') {
|
|
662
|
+
const anchor = el.shadowRoot?.querySelector('a');
|
|
663
|
+
if (this.isVisibleElement(el) && this.isVisibleElement(anchor))
|
|
664
|
+
targets.push(anchor);
|
|
665
|
+
}
|
|
666
|
+
else if (el.tagName === 'BR-MENU-LIST') {
|
|
667
|
+
const subHeader = el.shadowRoot?.querySelector('br-menu-item');
|
|
668
|
+
const subAnchor = subHeader?.shadowRoot?.querySelector('a');
|
|
669
|
+
if (this.isVisibleElement(el) && this.isVisibleElement(subAnchor))
|
|
670
|
+
targets.push(subAnchor);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
return targets;
|
|
674
|
+
}
|
|
675
|
+
focusFirstVisibleTarget() {
|
|
676
|
+
const targets = this.getTopLevelTargets();
|
|
677
|
+
if (targets.length > 0)
|
|
678
|
+
targets[0].focus();
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Coleta recursivamente os elementos focáveis no modo drill-down.
|
|
682
|
+
* Respeita a ordem do DOM e a hierarquia dos elementos.
|
|
683
|
+
* Apenas coleta elementos que não têm o atributo 'hidden'.
|
|
684
|
+
*/
|
|
685
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: algoritmo recursivo lida com menu-item, menu-list e contêineres auxiliares.
|
|
686
|
+
collectDrillDownTargets(element, targets) {
|
|
687
|
+
const children = Array.from(element.children);
|
|
688
|
+
for (const child of children) {
|
|
689
|
+
if (child.hasAttribute('hidden'))
|
|
690
|
+
continue;
|
|
691
|
+
if (!this.isVisibleElement(child))
|
|
692
|
+
continue;
|
|
693
|
+
if (child.tagName === 'BR-MENU-ITEM') {
|
|
694
|
+
const anchor = child.shadowRoot?.querySelector('a');
|
|
695
|
+
if (anchor && this.isVisibleElement(anchor)) {
|
|
696
|
+
targets.push(anchor);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
else if (child.tagName === 'BR-MENU-LIST') {
|
|
700
|
+
// Adiciona o header do menu-list
|
|
701
|
+
const header = child.shadowRoot?.querySelector('br-menu-item');
|
|
702
|
+
const headerAnchor = header?.shadowRoot?.querySelector('a');
|
|
703
|
+
if (headerAnchor && this.isVisibleElement(headerAnchor)) {
|
|
704
|
+
targets.push(headerAnchor);
|
|
705
|
+
}
|
|
706
|
+
// Coleta recursivamente os filhos do menu-list
|
|
707
|
+
this.collectDrillDownTargets(child, targets);
|
|
708
|
+
}
|
|
709
|
+
else {
|
|
710
|
+
// Para outros elementos, continua a busca recursiva
|
|
711
|
+
this.collectDrillDownTargets(child, targets);
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* Obtém todos os elementos focáveis dentro do menu que estão visíveis.
|
|
717
|
+
* Inclui botões, links e outros elementos interativos.
|
|
718
|
+
* No modo contextual, inclui itens dentro de agrupamentos expandidos.
|
|
719
|
+
*/
|
|
720
|
+
getFocusableElements() {
|
|
721
|
+
const focusable = [];
|
|
722
|
+
const menuPanel = this.el.shadowRoot?.querySelector('.menu-panel');
|
|
723
|
+
if (!menuPanel)
|
|
724
|
+
return focusable;
|
|
725
|
+
// Adiciona o botão trigger (toggle/contextual) como primeiro elemento com foco
|
|
726
|
+
const triggerButton = this.contextual
|
|
727
|
+
? this.el.shadowRoot?.querySelector('#contextual-trigger')
|
|
728
|
+
: this.el.shadowRoot?.querySelector('#toggle-menu');
|
|
729
|
+
if (triggerButton) {
|
|
730
|
+
const button = triggerButton.shadowRoot?.querySelector('button');
|
|
731
|
+
if (button && this.isVisibleElement(button)) {
|
|
732
|
+
focusable.push(button);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
// Busca o botão de voltar se estiver em submenu
|
|
736
|
+
const backButton = this.el.shadowRoot?.querySelector('.back-btn');
|
|
737
|
+
if (backButton && this.isVisibleElement(backButton)) {
|
|
738
|
+
focusable.push(backButton);
|
|
739
|
+
}
|
|
740
|
+
// No modo contextual ou quando não há drill-down, usa navegação global que respeita estado expandido
|
|
741
|
+
if (this.contextual || !this.isInSubmenu) {
|
|
742
|
+
const targets = this.getAllVisibleTargets();
|
|
743
|
+
focusable.push(...targets);
|
|
744
|
+
}
|
|
745
|
+
else {
|
|
746
|
+
// Em drill-down, coleta elementos na ordem do DOM respeitando a hierarquia
|
|
747
|
+
// O método hideAllExcept() já controla a visibilidade via atributo 'hidden'
|
|
748
|
+
this.collectDrillDownTargets(this.el, focusable);
|
|
749
|
+
}
|
|
750
|
+
return focusable;
|
|
751
|
+
}
|
|
752
|
+
// Eventos compostos dos itens projetados chegam ao host do menu.
|
|
753
|
+
/**
|
|
754
|
+
* Oculta todos os elementos do menu, exceto o elemento ativo e sua cadeia de ancestrais,
|
|
755
|
+
* garantindo que apenas o submenu relevante esteja visível durante a navegação drill-down.
|
|
756
|
+
*
|
|
757
|
+
* Funcionamento detalhado:
|
|
758
|
+
* 1. Oculta todos os elementos <br-menu-list> e <br-menu-item> do menu, aplicando o atributo 'hidden'.
|
|
759
|
+
* Isso garante que nada além do caminho de navegação atual fique visível.
|
|
760
|
+
* 2. Remove o atributo 'drill-ancestor' de quaisquer listas marcadas anteriormente, limpando o estado visual.
|
|
761
|
+
* 3. Remove o atributo 'hidden' do elemento ativo (o submenu ou item selecionado), tornando-o visível.
|
|
762
|
+
* 4. Percorre a cadeia de ancestrais do elemento ativo:
|
|
763
|
+
* - Para cada ancestral do tipo <br-menu-list> ou <br-menu-item>, remove o 'hidden' para garantir visibilidade.
|
|
764
|
+
* - Para ancestrais <br-menu-list> (exceto o próprio ativo), adiciona o atributo 'drill-ancestor' para permitir
|
|
765
|
+
* estilização diferenciada (por exemplo, ocultar cabeçalhos mas manter o conteúdo visível).
|
|
766
|
+
* - Interrompe o loop ao chegar no elemento host do componente.
|
|
767
|
+
* 5. Exibe todos os filhos diretos do elemento ativo que sejam <br-menu-list> ou <br-menu-item>,
|
|
768
|
+
* removendo o 'hidden' para mostrar as opções do submenu.
|
|
769
|
+
* 6. Exibe também filhos que estejam dentro de um <ul> (estrutura comum em subníveis),
|
|
770
|
+
* garantindo que todos os itens relevantes do submenu estejam visíveis.
|
|
771
|
+
*
|
|
772
|
+
* Este método é fundamental para a experiência de navegação drill-down, pois controla
|
|
773
|
+
* exatamente quais partes do menu são exibidas ao usuário em cada etapa da navegação.
|
|
774
|
+
*
|
|
775
|
+
* @param activeElement O elemento <br-menu-list> ou <br-menu-item> que representa o submenu/item atualmente ativo.
|
|
776
|
+
*/
|
|
777
|
+
hideAllExcept(activeElement) {
|
|
778
|
+
// 1. Oculta todos os elementos do menu
|
|
779
|
+
const allMenuElements = this.el.querySelectorAll('br-menu-list, br-menu-item');
|
|
780
|
+
allMenuElements.forEach((element) => {
|
|
781
|
+
element.setAttribute('hidden', '');
|
|
782
|
+
});
|
|
783
|
+
// 2. Limpa marcadores de ancestrais anteriores
|
|
784
|
+
this.el.querySelectorAll('br-menu-list[drill-ancestor]').forEach((e) => {
|
|
785
|
+
e.removeAttribute('drill-ancestor');
|
|
786
|
+
});
|
|
787
|
+
// 3. Garante que o elemento ativo esteja visível
|
|
788
|
+
activeElement.removeAttribute('hidden');
|
|
789
|
+
// 4. Exibe a cadeia de ancestrais do elemento ativo
|
|
790
|
+
let ancestor = activeElement.parentElement;
|
|
791
|
+
while (ancestor !== null) {
|
|
792
|
+
const tag = ancestor.tagName;
|
|
793
|
+
if (tag === 'BR-MENU-LIST' || tag === 'BR-MENU-ITEM') {
|
|
794
|
+
ancestor.removeAttribute('hidden');
|
|
795
|
+
}
|
|
796
|
+
if (tag === 'BR-MENU-LIST' && ancestor !== activeElement) {
|
|
797
|
+
ancestor.setAttribute('drill-ancestor', '');
|
|
798
|
+
}
|
|
799
|
+
if (ancestor === this.el)
|
|
800
|
+
break;
|
|
801
|
+
ancestor = ancestor.parentElement;
|
|
802
|
+
}
|
|
803
|
+
this.getDirectMenuChildren(activeElement).forEach((child) => {
|
|
804
|
+
child.removeAttribute('hidden');
|
|
805
|
+
});
|
|
806
|
+
}
|
|
807
|
+
getDirectMenuChildren(element) {
|
|
808
|
+
const children = [];
|
|
809
|
+
Array.from(element.children).forEach((child) => {
|
|
810
|
+
const childElement = child;
|
|
811
|
+
if (childElement.tagName === 'BR-MENU-GROUP' ||
|
|
812
|
+
childElement.tagName === 'BR-MENU-LIST' ||
|
|
813
|
+
childElement.tagName === 'BR-MENU-ITEM') {
|
|
814
|
+
if (childElement.tagName === 'BR-MENU-GROUP') {
|
|
815
|
+
children.push(...this.getDirectMenuChildren(childElement));
|
|
816
|
+
return;
|
|
817
|
+
}
|
|
818
|
+
children.push(childElement);
|
|
819
|
+
}
|
|
820
|
+
if (childElement.tagName === 'UL') {
|
|
821
|
+
Array.from(childElement.children).forEach((listItem) => {
|
|
822
|
+
Array.from(listItem.children).forEach((listChild) => {
|
|
823
|
+
const menuChild = listChild;
|
|
824
|
+
if (menuChild.tagName === 'BR-MENU-LIST' || menuChild.tagName === 'BR-MENU-ITEM') {
|
|
825
|
+
children.push(menuChild);
|
|
826
|
+
}
|
|
827
|
+
});
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
});
|
|
831
|
+
return children;
|
|
832
|
+
}
|
|
833
|
+
/**
|
|
834
|
+
* Exibe todos os itens e listas do menu, removendo o atributo 'hidden' de cada um.
|
|
835
|
+
*
|
|
836
|
+
* Esta função é utilizada para restaurar a visualização completa do menu,
|
|
837
|
+
* normalmente após uma navegação drill-down ou ao retornar ao nível raiz.
|
|
838
|
+
*
|
|
839
|
+
* O método percorre todos os elementos <br-menu-list> e <br-menu-item> dentro do componente
|
|
840
|
+
* e garante que estejam visíveis, removendo o atributo 'hidden' que pode ter sido
|
|
841
|
+
* adicionado durante a navegação entre submenus.
|
|
842
|
+
*/
|
|
843
|
+
showAllMenuItems() {
|
|
844
|
+
const allMenuLists = this.el.querySelectorAll('br-menu-list');
|
|
845
|
+
const allMenuItems = this.el.querySelectorAll('br-menu-item');
|
|
846
|
+
allMenuLists.forEach((menuList) => {
|
|
847
|
+
menuList.removeAttribute('hidden');
|
|
848
|
+
});
|
|
849
|
+
allMenuItems.forEach((menuItem) => {
|
|
850
|
+
menuItem.removeAttribute('hidden');
|
|
851
|
+
});
|
|
852
|
+
}
|
|
853
|
+
/**
|
|
854
|
+
* Marca ou desmarca um elemento <br-menu-list> como ativo no contexto de navegação drill-down.
|
|
855
|
+
*
|
|
856
|
+
* Quando 'active' é true, adiciona o atributo 'drill-active' ao elemento, indicando que
|
|
857
|
+
* ele está no foco da navegação. Quando 'active' é false, remove esse atributo.
|
|
858
|
+
*
|
|
859
|
+
* Esse atributo pode ser utilizado para aplicar estilos visuais ou lógica condicional
|
|
860
|
+
* durante a navegação entre níveis do menu.
|
|
861
|
+
*
|
|
862
|
+
* @param element Elemento <br-menu-list> a ser marcado/desmarcado
|
|
863
|
+
* @param active Boolean indicando se o elemento deve ser marcado como ativo
|
|
864
|
+
*/
|
|
865
|
+
setDrillActive(element, active) {
|
|
866
|
+
if (active) {
|
|
867
|
+
element.setAttribute('drill-active', '');
|
|
868
|
+
}
|
|
869
|
+
else {
|
|
870
|
+
element.removeAttribute('drill-active');
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
/**
|
|
874
|
+
* Remove todos os marcadores de navegação drill-down do menu.
|
|
875
|
+
*
|
|
876
|
+
* Esta função percorre todos os elementos <br-menu-list> que possuem os atributos
|
|
877
|
+
* 'drill-active' ou 'drill-ancestor' e remove esses atributos. Isso é necessário
|
|
878
|
+
* para garantir que, ao retornar ao nível raiz ou reiniciar a navegação, nenhum
|
|
879
|
+
* marcador visual ou lógico de navegação anterior permaneça ativo.
|
|
880
|
+
*/
|
|
881
|
+
clearAllDrillMarkers() {
|
|
882
|
+
// Remove o atributo 'drill-active' de todos os <br-menu-list>
|
|
883
|
+
this.el.querySelectorAll('br-menu-list[drill-active]').forEach((e) => {
|
|
884
|
+
e.removeAttribute('drill-active');
|
|
885
|
+
});
|
|
886
|
+
// Remove o atributo 'drill-ancestor' de todos os <br-menu-list>
|
|
887
|
+
this.el.querySelectorAll('br-menu-list[drill-ancestor]').forEach((e) => {
|
|
888
|
+
e.removeAttribute('drill-ancestor');
|
|
889
|
+
});
|
|
890
|
+
}
|
|
891
|
+
/**
|
|
892
|
+
* Realiza a navegação de retorno (voltar) em menus do tipo drill-down.
|
|
893
|
+
*
|
|
894
|
+
* Esta função é chamada quando o usuário deseja voltar um nível na navegação do menu.
|
|
895
|
+
* Ela utiliza uma pilha de navegação (navigationStack) para controlar o histórico de navegação.
|
|
896
|
+
*
|
|
897
|
+
* - Se houver elementos na pilha, remove o elemento do topo (nível atual) e desmarca como ativo.
|
|
898
|
+
* - Se, após a remoção, a pilha estiver vazia, significa que o usuário retornou ao nível raiz:
|
|
899
|
+
* - Restaura o estado inicial do menu, mostrando todos os itens e limpando marcadores de navegação.
|
|
900
|
+
* - Caso contrário, ativa o elemento do nível anterior e oculta os demais, mantendo o contexto do drill-down.
|
|
901
|
+
*/
|
|
902
|
+
goBack() {
|
|
903
|
+
if (this.navigationStack.length > 0) {
|
|
904
|
+
// Remove o elemento do topo da pilha (nível atual)
|
|
905
|
+
const removed = this.navigationStack[this.navigationStack.length - 1];
|
|
906
|
+
this.navigationStack = this.navigationStack.slice(0, -1);
|
|
907
|
+
if (removed !== undefined)
|
|
908
|
+
this.setDrillActive(removed.element, false);
|
|
909
|
+
if (this.navigationStack.length === 0) {
|
|
910
|
+
// Se a pilha está vazia, voltamos ao nível raiz do menu
|
|
911
|
+
this.currentLevel = 0;
|
|
912
|
+
this.isInSubmenu = false;
|
|
913
|
+
this.clearAllDrillMarkers();
|
|
914
|
+
this.showAllMenuItems();
|
|
915
|
+
}
|
|
916
|
+
else {
|
|
917
|
+
// Caso ainda haja elementos na pilha, voltamos ao nível anterior do drill-down
|
|
918
|
+
const previousElement = this.navigationStack[this.navigationStack.length - 1].element;
|
|
919
|
+
const previousLevel = parseInt(previousElement.getAttribute('menu-level') || '0', 10);
|
|
920
|
+
// Atualiza o nível atual para refletir o contexto correto
|
|
921
|
+
this.currentLevel = previousLevel + 1;
|
|
922
|
+
// Marca o elemento anterior como ativo
|
|
923
|
+
this.setDrillActive(previousElement, true);
|
|
924
|
+
// Oculta todos os itens, exceto o submenu ativo
|
|
925
|
+
this.hideAllExcept(previousElement);
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
/**
|
|
930
|
+
* Verifica se um slot específico possui conteúdo.
|
|
931
|
+
*/
|
|
932
|
+
hasSlotContent(slotName) {
|
|
933
|
+
return this.el.querySelector(`[slot="${slotName}"]`) !== null;
|
|
934
|
+
}
|
|
935
|
+
getEffectiveBreakpoints() {
|
|
936
|
+
return this.breakpoints.trim();
|
|
937
|
+
}
|
|
938
|
+
getCssClassMap() {
|
|
939
|
+
return {
|
|
940
|
+
'br-menu': true,
|
|
941
|
+
active: this.isOpen,
|
|
942
|
+
push: this.push || this.fixed,
|
|
943
|
+
fixed: this.fixed,
|
|
944
|
+
contextual: this.contextual,
|
|
945
|
+
large: this.density === 'large',
|
|
946
|
+
small: this.density === 'small',
|
|
947
|
+
...Object.fromEntries(this.getEffectiveBreakpoints()
|
|
948
|
+
.split(/\s+/)
|
|
949
|
+
.filter(Boolean)
|
|
950
|
+
.map((className) => [className, true])),
|
|
951
|
+
};
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* Retorna as classes CSS para o painel do menu.
|
|
955
|
+
* Aplica breakpoints apenas quando o menu NÃO está no modo push ou contextual.
|
|
956
|
+
*/
|
|
957
|
+
getMenuPanelClasses() {
|
|
958
|
+
const baseClass = 'menu-panel';
|
|
959
|
+
// No modo push ou contextual, não aplica breakpoints
|
|
960
|
+
if (this.push || this.fixed || this.contextual) {
|
|
961
|
+
return baseClass;
|
|
962
|
+
}
|
|
963
|
+
// Nos outros modos, aplica os breakpoints responsivos
|
|
964
|
+
const breakpoints = this.getEffectiveBreakpoints();
|
|
965
|
+
return breakpoints ? `${baseClass} ${breakpoints}` : baseClass;
|
|
966
|
+
}
|
|
967
|
+
/**
|
|
968
|
+
* Renderiza o scrim do menu (backdrop)
|
|
969
|
+
*/
|
|
970
|
+
renderScrim() {
|
|
971
|
+
if (this.push || this.fixed || this.contextual)
|
|
972
|
+
return null;
|
|
973
|
+
return (index.h("br-scrim", { ref: (el) => (this.scrimRef = el), "prop:positionContent": "center", "prop:scrollStrategy": "block", "content-layout": "none", "is-open": this.isOpen, "display-mode": "fullscreen", zIndex: 0 }));
|
|
974
|
+
}
|
|
975
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: render combina três modos de menu, gatilhos distintos e estrutura de painel responsivo.
|
|
976
|
+
render() {
|
|
977
|
+
const MenuContainer = this.usesNativeDialog ? 'dialog' : 'div';
|
|
978
|
+
return (index.h(index.Host, { key: 'b347a13ea63f42519f7a0963525b0a6aff0f6af7' }, index.h("div", { key: '265e99476d7345fb86a62e6cd45cfccf7b8bf470', class: this.getCssClassMap() }, this.contextual && (index.h("div", { key: '65605230b67cfd1e260987f15df639fab83db389', class: "menu-trigger" }, index.h("br-button", { key: '442a9293f17601a9250591872ee4574cf62b87ac', id: "contextual-trigger", emphasis: "primary", shape: "block", "aria-label": this.contextualLabel, "prop:ariaExpanded": String(this.isOpen), onClick: this.onToggleClick, part: "trigger" }, index.h("span", { key: 'd1a513a21b51d95d268cbe0d96f68f489d168037', class: "trigger-label" }, this.contextualLabel), index.h("br-icon", { key: '5f2b245450b57d4cdf259643643cb5d624dd2e5d', iconName: `fa6-solid:chevron-${this.isOpen ? 'down' : 'up'}`, width: "16", height: "16", class: "trigger-icon", "aria-hidden": "true" })))), index.h(MenuContainer, { key: 'e36d4dec672153b914a2ad55a76edc94dceb2c6c', ref: (el) => (this.nativeDialogRef = this.usesNativeDialog ? el : null), class: 'menu-container', part: "container", role: this.usesNativeDialog ? 'dialog' : undefined, "aria-modal": this.usesNativeDialog ? 'true' : undefined, "aria-label": this.usesNativeDialog ? 'Menu' : undefined, onCancel: this.usesNativeDialog ? this.handleNativeCancel : undefined }, this.renderScrim(), index.h("div", { key: 'aebf7d1cfec10bd17ba659a368fe58afe03e9059', id: this.contextual ? 'contextual-menu-panel' : 'menu-panel', class: this.getMenuPanelClasses(), ...(this.usesNativeDialog
|
|
979
|
+
? {}
|
|
980
|
+
: { role: 'dialog', 'aria-label': this.contextual ? this.contextualLabel : 'Menu' }), part: "panel" }, !this.contextual && !this.push && this.hasSlotContent('header') && index.h("slot", { key: '9389d96a7640b20cf36b2ea07233e26c8181a336', name: "header" }), index.h("nav", { key: '2db383fc5c82352087c5cc90cb588cf8f38cd530', class: "menu-body", part: "body" }, this.isInSubmenu && this.currentLevel > 0 && (index.h("div", { key: '3eff15e0eee7cfa52a24e8f30ac24fd0d363ed9d', class: "menu-back-button" }, index.h("button", { key: 'a6771daed780dceae084669c11ed37fbf517cbf0', type: "button", class: "back-btn", onClick: this.onGoBackClick, "aria-label": "Voltar ao n\u00EDvel anterior", part: "back-btn" }, index.h("br-icon", { key: '793ee144aed32934168db6c615533b670a4ca4c3', class: "back-icon", iconName: "fa6-solid:angle-left", width: "16", height: "16", "aria-hidden": "true" }), index.h("span", { key: 'fc8f995c6c7814b278a692fb9745f21cb321461d', class: "back-title" }, this.navigationStack.length > 0
|
|
981
|
+
? `${this.navigationStack[this.navigationStack.length - 1].label}`
|
|
982
|
+
: '')))), index.h("slot", { key: '6d5fd58167e2f49554f6c0cd0bf5c8e57b0c397a' })), !this.contextual && (index.h("div", { key: '17cac62b8c06a99b56b31344188dead4e7b9363a', class: "menu-footer", part: "footer" }, this.hasSlotContent('logo') && (index.h("div", { key: '2792cca656bb5be52d1aeae69bdad5b45a365e09', class: "menu-logos", part: "logo" }, index.h("slot", { key: '9d3c01dbc021bdf226f9fc91aa1d41010fd17359', name: "logo" }))), this.hasSlotContent('link') && (index.h("div", { key: 'c320910795ef26bd878596157421181de7d14bda', class: "menu-links", part: "link" }, index.h("slot", { key: 'b84e004dc71c535b99b8d7e1db8461eb714e0fb1', name: "link" }))), this.hasSlotContent('social') && (index.h("div", { key: '498b5cef3f4d60c0445f4a656e40686e65a8db6e', class: "social-network", part: "social" }, this.socialTitle && index.h("div", { key: '9a1f6a0d2c84bbe37b993e13aa59b5664f10d1e8', class: "social-network-title" }, this.socialTitle), index.h("div", { key: '4e9af99c0b2e69804dcc1bdda22b1ede0df03df5', class: "sharegroup" }, index.h("slot", { key: 'd82cc15374a4c3816c362a1ea025b6998ee1a169', name: "social" })))), this.hasSlotContent('info') && (index.h("div", { key: '886085ae30123f61221e3fa58976f3850e735085', class: "menu-info", part: "info" }, index.h("slot", { key: 'acb5fc8e6a4de3e6cde3ad8c61944969413e2f2f', name: "info" }))))))))));
|
|
983
|
+
}
|
|
984
|
+
get el() { return index.getElement(this); }
|
|
985
|
+
static get watchers() { return {
|
|
986
|
+
"isOpen": [{
|
|
987
|
+
"onOpenChange": 0
|
|
988
|
+
}]
|
|
989
|
+
}; }
|
|
990
|
+
};
|
|
991
|
+
Menu.style = menuCss();
|
|
992
|
+
|
|
993
|
+
exports.br_menu = Menu;
|