@govbr-ds/webcomponents 2.1.2 → 2.2.0
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 +87 -46
- package/cem/custom-elements.json +6367 -1134
- package/cem/webcomponents.html-custom-data.json +399 -286
- package/dist/cjs/br-avatar.cjs.entry.js +21 -14
- package/dist/cjs/br-breadcrumb-item.cjs.entry.js +2 -2
- package/dist/cjs/br-breadcrumb.cjs.entry.js +49 -22
- package/dist/cjs/br-button_2.cjs.entry.js +72 -35
- package/dist/cjs/br-card.cjs.entry.js +6 -5
- package/dist/cjs/br-carousel-page.cjs.entry.js +3 -3
- package/dist/cjs/br-carousel.cjs.entry.js +77 -21
- package/dist/cjs/br-checkbox-group.cjs.entry.js +157 -27
- package/dist/cjs/br-checkbox.cjs.entry.js +85 -15
- package/dist/cjs/br-checkgroup.cjs.entry.js +5 -2
- package/dist/cjs/br-collapse_2.cjs.entry.js +85 -26
- package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-group.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-header.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar-link.cjs.entry.js +14 -6
- package/dist/cjs/br-cookiebar-note-group.cjs.entry.js +3 -5
- package/dist/cjs/br-cookiebar-note.cjs.entry.js +4 -4
- package/dist/cjs/br-cookiebar.cjs.entry.js +38 -25
- package/dist/cjs/br-crumb.cjs.entry.js +2 -2
- package/dist/cjs/br-date-picker_3.cjs.entry.js +246 -88
- package/dist/cjs/br-datetime-picker.cjs.entry.js +115 -527
- package/dist/cjs/br-divider.cjs.entry.js +70 -17
- package/dist/cjs/br-dropdown_2.cjs.entry.js +304 -122
- package/dist/cjs/br-footer-category.cjs.entry.js +10 -6
- package/dist/cjs/br-footer-item.cjs.entry.js +9 -4
- package/dist/cjs/br-footer-legal.cjs.entry.js +4 -4
- package/dist/cjs/br-footer-logo.cjs.entry.js +22 -10
- package/dist/cjs/br-footer-social.cjs.entry.js +14 -6
- package/dist/cjs/br-footer.cjs.entry.js +16 -7
- package/dist/cjs/br-header-function.cjs.entry.js +28 -7
- package/dist/cjs/br-header-link.cjs.entry.js +25 -4
- package/dist/cjs/br-header-list.cjs.entry.js +6 -17
- package/dist/cjs/br-header-logo.cjs.entry.js +18 -7
- package/dist/cjs/br-header.cjs.entry.js +72 -17
- package/dist/cjs/br-icon.cjs.entry.js +160 -23
- package/dist/cjs/br-input.cjs.entry.js +130 -39
- package/dist/cjs/br-item.cjs.entry.js +96 -48
- package/dist/cjs/br-link.cjs.entry.js +20 -7
- package/dist/cjs/br-loading.cjs.entry.js +100 -38
- package/dist/cjs/br-magic-button.cjs.entry.js +26 -9
- package/dist/cjs/br-menu-group.cjs.entry.js +14 -3
- package/dist/cjs/br-menu-header.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-info.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-item.cjs.entry.js +27 -5
- package/dist/cjs/br-menu-link.cjs.entry.js +14 -6
- package/dist/cjs/br-menu-list.cjs.entry.js +23 -27
- package/dist/cjs/br-menu-logo.cjs.entry.js +4 -4
- package/dist/cjs/br-menu-social.cjs.entry.js +16 -6
- package/dist/cjs/br-menu.cjs.entry.js +41 -64
- package/dist/cjs/br-modal.cjs.entry.js +26 -40
- package/dist/cjs/br-notification-body.cjs.entry.js +4 -4
- package/dist/cjs/br-notification-header.cjs.entry.js +4 -4
- package/dist/cjs/br-notification-item.cjs.entry.js +14 -8
- package/dist/cjs/br-notification.cjs.entry.js +23 -8
- package/dist/cjs/br-pagination.cjs.entry.js +119 -87
- package/dist/cjs/br-radio-group.cjs.entry.js +106 -57
- package/dist/cjs/br-radio.cjs.entry.js +61 -11
- package/dist/cjs/br-scrim.cjs.entry.js +161 -67
- package/dist/cjs/br-select-input_3.cjs.entry.js +283 -90
- package/dist/cjs/br-sign-in.cjs.entry.js +34 -15
- package/dist/cjs/br-skip-link-item.cjs.entry.js +39 -2
- package/dist/cjs/br-skip-link.cjs.entry.js +50 -33
- package/dist/cjs/br-skiplink-item.cjs.entry.js +22 -6
- package/dist/cjs/br-slider.cjs.entry.js +521 -99
- package/dist/cjs/br-step_2.cjs.entry.js +98 -44
- package/dist/cjs/br-switch.cjs.entry.js +20 -11
- package/dist/cjs/br-tab-item.cjs.entry.js +38 -14
- package/dist/cjs/br-tab.cjs.entry.js +57 -44
- package/dist/cjs/br-table-body.cjs.entry.js +3 -3
- package/dist/cjs/br-table-cell.cjs.entry.js +30 -13
- package/dist/cjs/br-table-header-cell.cjs.entry.js +23 -7
- package/dist/cjs/br-table-header.cjs.entry.js +3 -3
- package/dist/cjs/br-table-row.cjs.entry.js +17 -3
- package/dist/cjs/br-table.cjs.entry.js +67 -21
- package/dist/cjs/br-tag.cjs.entry.js +48 -30
- package/dist/cjs/br-textarea.cjs.entry.js +117 -12
- package/dist/cjs/br-tooltip.cjs.entry.js +87 -41
- package/dist/cjs/br-upload.cjs.entry.js +83 -24
- package/dist/cjs/br-wizard-panel.cjs.entry.js +16 -3
- package/dist/cjs/br-wizard.cjs.entry.js +52 -28
- package/dist/cjs/{isValid-Fu3kaWNn.js → datetime-picker-props-validation-DmNKSXsy.js} +481 -4
- package/dist/cjs/{floating-ui-MBI1osio.js → floating-ui-B6nsdYUU.js} +24 -1
- package/dist/cjs/{floating-ui.dom-BUSTaaxR.js → floating-ui.dom-wzdGZjyG.js} +201 -113
- package/dist/cjs/{focus-DuywwJPR.js → focus-BhfJnFgJ.js} +21 -0
- package/dist/cjs/header-context-CdawuLsH.js +17 -0
- package/dist/cjs/id-DE4jSi-L.js +36 -0
- package/dist/cjs/{index-CRdcutym.js → index-CGgZBuyy.js} +68 -752
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/motion-CgIooxWS.js +29 -0
- package/dist/cjs/ownership-UnpufyCx.js +116 -0
- package/dist/cjs/prop-warning-xvEHQz8H.js +60 -0
- package/dist/cjs/props-D8dybmr0.js +124 -0
- package/dist/cjs/{swipe-BU8_XE9f.js → swipe-BGF-h9WY.js} +11 -1
- package/dist/cjs/webcomponents.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/avatar/avatar.js +48 -16
- package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +15 -3
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +107 -22
- package/dist/collection/components/breadcrumb/crumb/crumb.js +14 -2
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button/button.js +88 -24
- package/dist/collection/components/card/card.css +1 -1
- package/dist/collection/components/card/card.js +33 -5
- package/dist/collection/components/carousel/carousel-page/carousel-page.css +1 -1
- package/dist/collection/components/carousel/carousel-page/carousel-page.js +11 -4
- package/dist/collection/components/carousel/carousel.css +1 -1
- package/dist/collection/components/carousel/carousel.js +107 -21
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/checkbox/checkbox.js +134 -20
- package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
- package/dist/collection/components/checkbox-group/checkbox-group.js +210 -30
- package/dist/collection/components/checkgroup/checkgroup.js +42 -4
- package/dist/collection/components/collapse/collapse.css +1 -1
- package/dist/collection/components/collapse/collapse.js +48 -8
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +17 -4
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +16 -7
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +15 -9
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +24 -8
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +14 -4
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +13 -5
- package/dist/collection/components/cookiebar/cookiebar.css +1 -1
- package/dist/collection/components/cookiebar/cookiebar.js +67 -32
- package/dist/collection/components/datetime-picker/date-picker/date-picker.css +1 -1
- package/dist/collection/components/datetime-picker/date-picker/date-picker.js +134 -35
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.css +1 -1
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +112 -22
- package/dist/collection/components/datetime-picker/datetime-picker-props-validation.js +13 -5
- package/dist/collection/components/datetime-picker/datetime-picker.css +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +158 -42
- package/dist/collection/components/datetime-picker/time-picker/time-picker.css +1 -1
- package/dist/collection/components/datetime-picker/time-picker/time-picker.js +78 -9
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/divider/divider.js +101 -26
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown/dropdown.js +166 -18
- package/dist/collection/components/footer/footer-category/footer-category.css +1 -1
- package/dist/collection/components/footer/footer-category/footer-category.js +23 -4
- package/dist/collection/components/footer/footer-item/footer-item.css +1 -1
- package/dist/collection/components/footer/footer-item/footer-item.js +21 -2
- package/dist/collection/components/footer/footer-legal/footer-legal.css +1 -1
- package/dist/collection/components/footer/footer-legal/footer-legal.js +16 -2
- package/dist/collection/components/footer/footer-logo/footer-logo.css +1 -1
- package/dist/collection/components/footer/footer-logo/footer-logo.js +35 -9
- package/dist/collection/components/footer/footer-social/footer-social.css +1 -1
- package/dist/collection/components/footer/footer-social/footer-social.js +26 -6
- package/dist/collection/components/footer/footer.css +1 -1
- package/dist/collection/components/footer/footer.js +48 -7
- package/dist/collection/components/header/header-context.js +13 -0
- package/dist/collection/components/header/header-function/header-function.css +1 -1
- package/dist/collection/components/header/header-function/header-function.js +51 -8
- package/dist/collection/components/header/header-link/header-link.css +1 -1
- package/dist/collection/components/header/header-link/header-link.js +52 -2
- package/dist/collection/components/header/header-list/header-list.css +1 -1
- package/dist/collection/components/header/header-list/header-list.js +20 -23
- package/dist/collection/components/header/header-logo/header-logo.css +1 -1
- package/dist/collection/components/header/header-logo/header-logo.js +33 -8
- package/dist/collection/components/header/header.css +1 -1
- package/dist/collection/components/header/header.js +110 -24
- package/dist/collection/components/icon/default-icons-cache.js +111 -3
- package/dist/collection/components/icon/icon.css +1 -1
- package/dist/collection/components/icon/icon.js +80 -33
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/input/input.js +169 -54
- package/dist/collection/components/item/item.css +1 -1
- package/dist/collection/components/item/item.js +134 -51
- package/dist/collection/components/link/link.css +1 -1
- package/dist/collection/components/link/link.js +48 -15
- package/dist/collection/components/list/list.css +1 -1
- package/dist/collection/components/list/list.js +106 -25
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/loading/loading.js +131 -43
- package/dist/collection/components/magic-button/magic-button.css +1 -1
- package/dist/collection/components/magic-button/magic-button.js +51 -9
- package/dist/collection/components/menu/menu-group/menu-group.css +1 -1
- package/dist/collection/components/menu/menu-group/menu-group.js +60 -2
- package/dist/collection/components/menu/menu-header/menu-header.css +1 -1
- package/dist/collection/components/menu/menu-header/menu-header.js +17 -2
- package/dist/collection/components/menu/menu-info/menu-info.css +1 -1
- package/dist/collection/components/menu/menu-info/menu-info.js +15 -2
- package/dist/collection/components/menu/menu-item/menu-item.css +1 -1
- package/dist/collection/components/menu/menu-item/menu-item.js +72 -8
- package/dist/collection/components/menu/menu-link/menu-link.css +1 -1
- package/dist/collection/components/menu/menu-link/menu-link.js +25 -4
- package/dist/collection/components/menu/menu-list/menu-list.css +1 -1
- package/dist/collection/components/menu/menu-list/menu-list.js +64 -29
- package/dist/collection/components/menu/menu-logo/menu-logo.css +1 -1
- package/dist/collection/components/menu/menu-logo/menu-logo.js +15 -2
- package/dist/collection/components/menu/menu-social/menu-social.css +1 -1
- package/dist/collection/components/menu/menu-social/menu-social.js +29 -7
- package/dist/collection/components/menu/menu.css +1 -1
- package/dist/collection/components/menu/menu.js +75 -68
- package/dist/collection/components/menu/menu.utils.js +8 -18
- package/dist/collection/components/message/message.css +1 -1
- package/dist/collection/components/message/message.js +50 -24
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/modal/modal.js +54 -41
- package/dist/collection/components/notification/notification-body/notification-body.css +1 -1
- package/dist/collection/components/notification/notification-body/notification-body.js +13 -4
- package/dist/collection/components/notification/notification-header/notification-header.css +1 -1
- package/dist/collection/components/notification/notification-header/notification-header.js +13 -4
- package/dist/collection/components/notification/notification-item/notification-item.css +1 -1
- package/dist/collection/components/notification/notification-item/notification-item.js +23 -9
- package/dist/collection/components/notification/notification.css +1 -1
- package/dist/collection/components/notification/notification.js +54 -10
- package/dist/collection/components/pagination/pagination.css +1 -1
- package/dist/collection/components/pagination/pagination.js +161 -74
- package/dist/collection/components/radio/radio.css +1 -1
- package/dist/collection/components/radio/radio.js +109 -14
- package/dist/collection/components/radio-group/radio-group.css +1 -1
- package/dist/collection/components/radio-group/radio-group.js +153 -63
- package/dist/collection/components/scrim/scrim.css +1 -1
- package/dist/collection/components/scrim/scrim.js +215 -74
- package/dist/collection/components/scrim/scrim.utils.js +5 -51
- package/dist/collection/components/select/select-input/select-input.css +1 -1
- package/dist/collection/components/select/select-input/select-input.js +58 -5
- package/dist/collection/components/select/select-list/select-list.css +1 -1
- package/dist/collection/components/select/select-list/select-list.js +247 -52
- package/dist/collection/components/select/select-option/select-option.css +1 -1
- package/dist/collection/components/select/select-option/select-option.js +108 -46
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +323 -118
- package/dist/collection/components/sign-in/sign-in.css +1 -1
- package/dist/collection/components/sign-in/sign-in.js +55 -16
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +112 -3
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.css +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +58 -5
- package/dist/collection/components/skip-link/skip-link.css +1 -1
- package/dist/collection/components/skip-link/skip-link.js +78 -39
- package/dist/collection/components/slider/slider.css +1 -1
- package/dist/collection/components/slider/slider.js +530 -132
- package/dist/collection/components/slider/slider.utils.js +178 -0
- package/dist/collection/components/step/step-item/step-item.css +1 -1
- package/dist/collection/components/step/step-item/step-item.js +29 -12
- package/dist/collection/components/step/step.css +1 -1
- package/dist/collection/components/step/step.js +119 -44
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/switch/switch.js +48 -15
- package/dist/collection/components/tab/tab-item/tab-item.css +1 -1
- package/dist/collection/components/tab/tab-item/tab-item.js +49 -14
- package/dist/collection/components/tab/tab.css +1 -1
- package/dist/collection/components/tab/tab.js +89 -46
- package/dist/collection/components/table/table-body/table-body.css +1 -1
- package/dist/collection/components/table/table-body/table-body.js +11 -7
- package/dist/collection/components/table/table-cell/table-cell.css +1 -1
- package/dist/collection/components/table/table-cell/table-cell.js +36 -17
- package/dist/collection/components/table/table-header/table-header.css +1 -1
- package/dist/collection/components/table/table-header/table-header.js +11 -7
- package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -1
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +35 -13
- package/dist/collection/components/table/table-row/table-row.css +1 -1
- package/dist/collection/components/table/table-row/table-row.js +24 -7
- package/dist/collection/components/table/table.css +1 -1
- package/dist/collection/components/table/table.js +107 -31
- package/dist/collection/components/tag/tag.css +1 -1
- package/dist/collection/components/tag/tag.js +86 -36
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/textarea/textarea.js +222 -19
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/tooltip/tooltip.js +134 -45
- package/dist/collection/components/upload/upload.css +1 -1
- package/dist/collection/components/upload/upload.js +135 -33
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.css +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +54 -3
- package/dist/collection/components/wizard/wizard.css +1 -1
- package/dist/collection/components/wizard/wizard.js +82 -28
- package/dist/collection/pages/scripts/component-controls-core.js +95 -0
- package/dist/collection/pages/scripts/component-controls.js +238 -153
- package/dist/collection/pages/scripts/dev-event-console.js +5 -1
- package/dist/collection/pages/scripts/menu.js +90 -5
- package/dist/collection/pages/scripts/pageLoader.js +1486 -586
- package/dist/collection/pages/scripts/pageloader-preview.js +787 -0
- package/dist/collection/pages/scripts/playground-core.js +173 -0
- package/dist/collection/shared/utils/cssVariables.js +2 -0
- package/dist/collection/shared/utils/date.js +8 -4
- package/dist/collection/shared/utils/floating-ui.js +24 -1
- package/dist/collection/shared/utils/focus.js +31 -0
- package/dist/collection/shared/utils/getRandom.js +16 -1
- package/dist/collection/shared/utils/helpers.js +4 -11
- package/dist/collection/shared/utils/id.js +23 -7
- package/dist/collection/shared/utils/index.js +6 -1
- package/dist/collection/shared/utils/isEmpty.js +5 -3
- package/dist/collection/shared/utils/motion.js +25 -0
- package/dist/collection/shared/utils/ownership.js +113 -0
- package/dist/collection/shared/utils/prop-warning.js +47 -0
- package/dist/collection/shared/utils/props.js +79 -0
- package/dist/collection/shared/utils/swipe.js +11 -1
- package/dist/collection/shared/utils/transition.js +3 -0
- package/dist/collection/shared/utils/virtual-scroll.js +24 -0
- package/dist/components/br-avatar.d.ts +1 -1
- package/dist/components/br-avatar.js +1 -1
- package/dist/components/br-breadcrumb-item.d.ts +1 -1
- package/dist/components/br-breadcrumb-item.js +1 -1
- package/dist/components/br-breadcrumb.d.ts +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-button.d.ts +1 -1
- package/dist/components/br-button.js +1 -1
- package/dist/components/br-card.d.ts +1 -1
- package/dist/components/br-card.js +1 -1
- package/dist/components/br-carousel-page.d.ts +1 -1
- package/dist/components/br-carousel-page.js +1 -1
- package/dist/components/br-carousel.d.ts +1 -1
- package/dist/components/br-carousel.js +1 -1
- package/dist/components/br-checkbox-group.d.ts +1 -1
- package/dist/components/br-checkbox-group.js +1 -1
- package/dist/components/br-checkbox.d.ts +1 -1
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkgroup.d.ts +1 -1
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.d.ts +1 -1
- package/dist/components/br-collapse.js +1 -1
- package/dist/components/br-cookiebar-cookie.d.ts +1 -1
- package/dist/components/br-cookiebar-cookie.js +1 -1
- package/dist/components/br-cookiebar-group.d.ts +1 -1
- package/dist/components/br-cookiebar-group.js +1 -1
- package/dist/components/br-cookiebar-header.d.ts +1 -1
- package/dist/components/br-cookiebar-header.js +1 -1
- package/dist/components/br-cookiebar-link.d.ts +1 -1
- package/dist/components/br-cookiebar-link.js +1 -1
- package/dist/components/br-cookiebar-note-group.d.ts +1 -1
- package/dist/components/br-cookiebar-note-group.js +1 -1
- package/dist/components/br-cookiebar-note.d.ts +1 -1
- package/dist/components/br-cookiebar-note.js +1 -1
- package/dist/components/br-cookiebar.d.ts +1 -1
- package/dist/components/br-cookiebar.js +1 -1
- package/dist/components/br-crumb.d.ts +1 -1
- package/dist/components/br-crumb.js +1 -1
- package/dist/components/br-date-picker.d.ts +1 -1
- package/dist/components/br-date-picker.js +1 -1
- package/dist/components/br-datetime-input.d.ts +1 -1
- package/dist/components/br-datetime-input.js +1 -1
- package/dist/components/br-datetime-picker.d.ts +1 -1
- package/dist/components/br-datetime-picker.js +1 -1
- package/dist/components/br-divider.d.ts +1 -1
- package/dist/components/br-divider.js +1 -1
- package/dist/components/br-dropdown.d.ts +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.d.ts +1 -1
- package/dist/components/br-footer-category.js +1 -1
- package/dist/components/br-footer-item.d.ts +1 -1
- package/dist/components/br-footer-item.js +1 -1
- package/dist/components/br-footer-legal.d.ts +1 -1
- package/dist/components/br-footer-legal.js +1 -1
- package/dist/components/br-footer-logo.d.ts +1 -1
- package/dist/components/br-footer-logo.js +1 -1
- package/dist/components/br-footer-social.d.ts +1 -1
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-footer.d.ts +1 -1
- package/dist/components/br-footer.js +1 -1
- package/dist/components/br-header-function.d.ts +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-link.d.ts +1 -1
- package/dist/components/br-header-link.js +1 -1
- package/dist/components/br-header-list.d.ts +1 -1
- package/dist/components/br-header-list.js +1 -1
- package/dist/components/br-header-logo.d.ts +1 -1
- package/dist/components/br-header-logo.js +1 -1
- package/dist/components/br-header.d.ts +1 -1
- package/dist/components/br-header.js +1 -1
- package/dist/components/br-icon.d.ts +1 -1
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.d.ts +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-item.d.ts +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-link.d.ts +1 -1
- package/dist/components/br-link.js +1 -1
- package/dist/components/br-list.d.ts +1 -1
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-loading.d.ts +1 -1
- package/dist/components/br-loading.js +1 -1
- package/dist/components/br-magic-button.d.ts +1 -1
- package/dist/components/br-magic-button.js +1 -1
- package/dist/components/br-menu-group.d.ts +1 -1
- package/dist/components/br-menu-group.js +1 -1
- package/dist/components/br-menu-header.d.ts +1 -1
- package/dist/components/br-menu-header.js +1 -1
- package/dist/components/br-menu-info.d.ts +1 -1
- package/dist/components/br-menu-info.js +1 -1
- package/dist/components/br-menu-item.d.ts +1 -1
- package/dist/components/br-menu-item.js +1 -1
- package/dist/components/br-menu-link.d.ts +1 -1
- package/dist/components/br-menu-link.js +1 -1
- package/dist/components/br-menu-list.d.ts +1 -1
- package/dist/components/br-menu-list.js +1 -1
- package/dist/components/br-menu-logo.d.ts +1 -1
- package/dist/components/br-menu-logo.js +1 -1
- package/dist/components/br-menu-social.d.ts +1 -1
- package/dist/components/br-menu-social.js +1 -1
- package/dist/components/br-menu.d.ts +1 -1
- package/dist/components/br-menu.js +1 -1
- package/dist/components/br-message.d.ts +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-modal.d.ts +1 -1
- package/dist/components/br-modal.js +1 -1
- package/dist/components/br-notification-body.d.ts +1 -1
- package/dist/components/br-notification-body.js +1 -1
- package/dist/components/br-notification-header.d.ts +1 -1
- package/dist/components/br-notification-header.js +1 -1
- package/dist/components/br-notification-item.d.ts +1 -1
- package/dist/components/br-notification-item.js +1 -1
- package/dist/components/br-notification.d.ts +1 -1
- package/dist/components/br-notification.js +1 -1
- package/dist/components/br-pagination.d.ts +1 -1
- package/dist/components/br-pagination.js +1 -1
- package/dist/components/br-radio-group.d.ts +1 -1
- package/dist/components/br-radio-group.js +1 -1
- package/dist/components/br-radio.d.ts +1 -1
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-scrim.d.ts +1 -1
- package/dist/components/br-scrim.js +1 -1
- package/dist/components/br-select-input.d.ts +1 -1
- package/dist/components/br-select-input.js +1 -1
- package/dist/components/br-select-list.d.ts +1 -1
- package/dist/components/br-select-list.js +1 -1
- package/dist/components/br-select-option.d.ts +1 -1
- package/dist/components/br-select-option.js +1 -1
- package/dist/components/br-select.d.ts +1 -1
- package/dist/components/br-select.js +1 -1
- package/dist/components/br-sign-in.d.ts +1 -1
- package/dist/components/br-sign-in.js +1 -1
- package/dist/components/br-skip-link-item.d.ts +1 -1
- package/dist/components/br-skip-link-item.js +1 -1
- package/dist/components/br-skip-link.d.ts +1 -1
- package/dist/components/br-skip-link.js +1 -1
- package/dist/components/br-skiplink-item.d.ts +1 -1
- package/dist/components/br-skiplink-item.js +1 -1
- package/dist/components/br-slider.d.ts +1 -1
- package/dist/components/br-slider.js +1 -1
- package/dist/components/br-step-item.d.ts +1 -1
- package/dist/components/br-step-item.js +1 -1
- package/dist/components/br-step.d.ts +1 -1
- package/dist/components/br-step.js +1 -1
- package/dist/components/br-switch.d.ts +1 -1
- package/dist/components/br-switch.js +1 -1
- package/dist/components/br-tab-item.d.ts +1 -1
- package/dist/components/br-tab-item.js +1 -1
- package/dist/components/br-tab.d.ts +1 -1
- package/dist/components/br-tab.js +1 -1
- package/dist/components/br-table-body.d.ts +1 -1
- package/dist/components/br-table-body.js +1 -1
- package/dist/components/br-table-cell.d.ts +1 -1
- package/dist/components/br-table-cell.js +1 -1
- package/dist/components/br-table-header-cell.d.ts +1 -1
- package/dist/components/br-table-header-cell.js +1 -1
- package/dist/components/br-table-header.d.ts +1 -1
- package/dist/components/br-table-header.js +1 -1
- package/dist/components/br-table-row.d.ts +1 -1
- package/dist/components/br-table-row.js +1 -1
- package/dist/components/br-table.d.ts +1 -1
- package/dist/components/br-table.js +1 -1
- package/dist/components/br-tag.d.ts +1 -1
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-textarea.d.ts +1 -1
- package/dist/components/br-textarea.js +1 -1
- package/dist/components/br-time-picker.d.ts +1 -1
- package/dist/components/br-time-picker.js +1 -1
- package/dist/components/br-tooltip.d.ts +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-upload.d.ts +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-wizard-panel.d.ts +1 -1
- package/dist/components/br-wizard-panel.js +1 -1
- package/dist/components/br-wizard.d.ts +1 -1
- package/dist/components/br-wizard.js +1 -1
- package/dist/components/index.d.ts +89 -89
- package/dist/components/index.js +1 -1
- package/dist/components/p-B0o70fWP.js +5 -0
- package/dist/components/p-B96LROz9.js +5 -0
- package/dist/components/p-BDqef5-y.js +5 -0
- package/dist/components/p-BEJGB0Nd.js +5 -0
- package/dist/{webcomponents/p-Dmfk7eEe.js → components/p-BJZC_NuV.js} +1 -1
- package/dist/components/p-BJtdabsr.js +5 -0
- package/dist/components/p-BP5zMCxG.js +5 -0
- package/dist/components/p-BRaphxoP.js +5 -0
- package/dist/components/p-BUzBa9L1.js +5 -0
- package/dist/components/{p-DA5GS53D.js → p-BblZlUp2.js} +1 -1
- package/dist/components/p-Bc4nAk5i.js +5 -0
- package/dist/components/{p-C1yRmdso.js → p-BcqVlof7.js} +1 -1
- package/dist/components/p-BeJxz5TQ.js +5 -0
- package/dist/components/p-Bezou5CQ.js +5 -0
- package/dist/components/p-BrNh9KdF.js +5 -0
- package/dist/components/p-C5th2dxu.js +5 -0
- package/dist/components/p-CDtFCbKp.js +5 -0
- package/dist/components/p-CEdUp183.js +5 -0
- package/dist/components/p-CF7t0uxQ.js +5 -0
- package/dist/components/p-CFzHx6zV.js +5 -0
- package/dist/components/p-CG4em0S6.js +5 -0
- package/dist/components/p-CI4D3-pf.js +5 -0
- package/dist/components/p-CIrVPkVg.js +5 -0
- package/dist/components/p-CNwZRgyL.js +5 -0
- package/dist/components/p-CppRJiyC.js +5 -0
- package/dist/components/p-Cvk1Ggs5.js +5 -0
- package/dist/components/p-D12US39c.js +5 -0
- package/dist/components/p-D9Zo6FlV.js +5 -0
- package/dist/components/p-DGPJkJsj.js +5 -0
- package/dist/components/p-DSHbttu9.js +5 -0
- package/dist/components/p-DTGNra9m.js +5 -0
- package/dist/components/p-DWhzxlCx.js +5 -0
- package/dist/components/p-DX1wAFn4.js +5 -0
- package/dist/components/p-DiLI514I.js +5 -0
- package/dist/components/p-Dma14GVa.js +5 -0
- package/dist/components/p-DpRZ4B0d.js +5 -0
- package/dist/components/p-G35qEQZd.js +5 -0
- package/dist/components/p-Ho_IybzR.js +5 -0
- package/dist/components/p-SvVnvJdC.js +5 -0
- package/dist/components/p-emAWunES.js +5 -0
- package/dist/components/p-fB79wKCm.js +5 -0
- package/dist/components/p-k7p4QJ8a.js +5 -0
- package/dist/esm/br-avatar.entry.js +21 -14
- package/dist/esm/br-breadcrumb-item.entry.js +2 -2
- package/dist/esm/br-breadcrumb.entry.js +49 -22
- package/dist/esm/br-button_2.entry.js +72 -35
- package/dist/esm/br-card.entry.js +6 -5
- package/dist/esm/br-carousel-page.entry.js +3 -3
- package/dist/esm/br-carousel.entry.js +78 -22
- package/dist/esm/br-checkbox-group.entry.js +157 -27
- package/dist/esm/br-checkbox.entry.js +86 -16
- package/dist/esm/br-checkgroup.entry.js +5 -2
- package/dist/esm/br-collapse_2.entry.js +86 -27
- package/dist/esm/br-cookiebar-cookie.entry.js +4 -4
- package/dist/esm/br-cookiebar-group.entry.js +4 -4
- package/dist/esm/br-cookiebar-header.entry.js +4 -4
- package/dist/esm/br-cookiebar-link.entry.js +14 -6
- package/dist/esm/br-cookiebar-note-group.entry.js +3 -5
- package/dist/esm/br-cookiebar-note.entry.js +4 -4
- package/dist/esm/br-cookiebar.entry.js +39 -26
- package/dist/esm/br-crumb.entry.js +2 -2
- package/dist/esm/br-date-picker_3.entry.js +207 -49
- package/dist/esm/br-datetime-picker.entry.js +82 -494
- package/dist/esm/br-divider.entry.js +70 -17
- package/dist/esm/br-dropdown_2.entry.js +305 -123
- package/dist/esm/br-footer-category.entry.js +10 -6
- package/dist/esm/br-footer-item.entry.js +9 -4
- package/dist/esm/br-footer-legal.entry.js +4 -4
- package/dist/esm/br-footer-logo.entry.js +22 -10
- package/dist/esm/br-footer-social.entry.js +14 -6
- package/dist/esm/br-footer.entry.js +16 -7
- package/dist/esm/br-header-function.entry.js +28 -7
- package/dist/esm/br-header-link.entry.js +25 -4
- package/dist/esm/br-header-list.entry.js +7 -18
- package/dist/esm/br-header-logo.entry.js +18 -7
- package/dist/esm/br-header.entry.js +72 -17
- package/dist/esm/br-icon.entry.js +160 -23
- package/dist/esm/br-input.entry.js +132 -41
- package/dist/esm/br-item.entry.js +96 -48
- package/dist/esm/br-link.entry.js +20 -7
- package/dist/esm/br-loading.entry.js +100 -38
- package/dist/esm/br-magic-button.entry.js +26 -9
- package/dist/esm/br-menu-group.entry.js +14 -3
- package/dist/esm/br-menu-header.entry.js +4 -4
- package/dist/esm/br-menu-info.entry.js +4 -4
- package/dist/esm/br-menu-item.entry.js +27 -5
- package/dist/esm/br-menu-link.entry.js +14 -6
- package/dist/esm/br-menu-list.entry.js +23 -27
- package/dist/esm/br-menu-logo.entry.js +4 -4
- package/dist/esm/br-menu-social.entry.js +16 -6
- package/dist/esm/br-menu.entry.js +42 -65
- package/dist/esm/br-modal.entry.js +26 -40
- package/dist/esm/br-notification-body.entry.js +4 -4
- package/dist/esm/br-notification-header.entry.js +4 -4
- package/dist/esm/br-notification-item.entry.js +14 -8
- package/dist/esm/br-notification.entry.js +24 -9
- package/dist/esm/br-pagination.entry.js +119 -87
- package/dist/esm/br-radio-group.entry.js +107 -58
- package/dist/esm/br-radio.entry.js +62 -12
- package/dist/esm/br-scrim.entry.js +161 -67
- package/dist/esm/br-select-input_3.entry.js +283 -90
- package/dist/esm/br-sign-in.entry.js +34 -15
- package/dist/esm/br-skip-link-item.entry.js +39 -2
- package/dist/esm/br-skip-link.entry.js +50 -33
- package/dist/esm/br-skiplink-item.entry.js +22 -6
- package/dist/esm/br-slider.entry.js +519 -97
- package/dist/esm/br-step_2.entry.js +98 -44
- package/dist/esm/br-switch.entry.js +21 -12
- package/dist/esm/br-tab-item.entry.js +38 -14
- package/dist/esm/br-tab.entry.js +57 -44
- package/dist/esm/br-table-body.entry.js +3 -3
- package/dist/esm/br-table-cell.entry.js +30 -13
- package/dist/esm/br-table-header-cell.entry.js +23 -7
- package/dist/esm/br-table-header.entry.js +3 -3
- package/dist/esm/br-table-row.entry.js +17 -3
- package/dist/esm/br-table.entry.js +68 -22
- package/dist/esm/br-tag.entry.js +49 -31
- package/dist/esm/br-textarea.entry.js +118 -13
- package/dist/esm/br-tooltip.entry.js +88 -42
- package/dist/esm/br-upload.entry.js +84 -25
- package/dist/esm/br-wizard-panel.entry.js +16 -3
- package/dist/esm/br-wizard.entry.js +52 -28
- package/dist/esm/{datetime-picker-constants-Bfm58jO6.js → datetime-picker-constants-BtRPYRvA.js} +1 -1
- package/dist/esm/{isValid-DIUZX1qS.js → datetime-picker-props-validation-BeTcUTnE.js} +476 -5
- package/dist/esm/{event-DFN_so7I.js → event-CfuJQ1DY.js} +1 -1
- package/dist/esm/{floating-ui-BavFwMnx.js → floating-ui-CskvaxD5.js} +24 -1
- package/dist/esm/{floating-ui.dom-DIK54tTj.js → floating-ui.dom-D9Zo6FlV.js} +201 -114
- package/dist/esm/{focus-DxZJrIyL.js → focus-CNwZRgyL.js} +20 -1
- package/dist/esm/header-context-BEJGB0Nd.js +15 -0
- package/dist/esm/id-BeJxz5TQ.js +34 -0
- package/dist/esm/{index-Bo-2igoO.js → index-BQPOWxe5.js} +1 -1
- package/dist/esm/{index-C2RBydfd.js → index-Dcn7tRST.js} +68 -752
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/motion-DWhzxlCx.js +27 -0
- package/dist/esm/ownership-CDtFCbKp.js +111 -0
- package/dist/esm/prop-warning-BlGV-x0w.js +56 -0
- package/dist/esm/props-D07GjR4_.js +116 -0
- package/dist/esm/{swipe-Dmfk7eEe.js → swipe-BJZC_NuV.js} +11 -1
- package/dist/esm/webcomponents.js +4 -4
- package/dist/hydrate/index.js +7370 -2603
- package/dist/hydrate/index.mjs +7370 -2603
- package/dist/loader/index.d.ts +1 -1
- package/dist/types/components/avatar/avatar.d.ts +34 -4
- package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +14 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +66 -5
- package/dist/types/components/breadcrumb/crumb/crumb.d.ts +13 -1
- package/dist/types/components/button/button.d.ts +45 -9
- package/dist/types/components/card/card.d.ts +31 -3
- package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +10 -3
- package/dist/types/components/carousel/carousel.d.ts +46 -3
- package/dist/types/components/checkbox/checkbox.d.ts +59 -6
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +47 -5
- package/dist/types/components/checkgroup/checkgroup.d.ts +27 -5
- package/dist/types/components/collapse/collapse.d.ts +33 -4
- package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +16 -3
- package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +15 -6
- package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +14 -8
- package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +16 -5
- package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +13 -3
- package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +13 -3
- package/dist/types/components/cookiebar/cookiebar.d.ts +35 -10
- package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +63 -7
- package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +51 -9
- package/dist/types/components/datetime-picker/datetime-picker-props-validation.d.ts +4 -2
- package/dist/types/components/datetime-picker/datetime-picker.d.ts +118 -12
- package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +38 -4
- package/dist/types/components/divider/divider.d.ts +45 -8
- package/dist/types/components/dropdown/dropdown.d.ts +41 -3
- package/dist/types/components/footer/footer-category/footer-category.d.ts +16 -1
- package/dist/types/components/footer/footer-item/footer-item.d.ts +17 -1
- package/dist/types/components/footer/footer-legal/footer-legal.d.ts +15 -1
- package/dist/types/components/footer/footer-logo/footer-logo.d.ts +21 -2
- package/dist/types/components/footer/footer-social/footer-social.d.ts +20 -3
- package/dist/types/components/footer/footer.d.ts +39 -3
- package/dist/types/components/header/header-context.d.ts +1 -0
- package/dist/types/components/header/header-function/header-function.d.ts +24 -2
- package/dist/types/components/header/header-link/header-link.d.ts +22 -1
- package/dist/types/components/header/header-list/header-list.d.ts +16 -8
- package/dist/types/components/header/header-logo/header-logo.d.ts +20 -1
- package/dist/types/components/header/header.d.ts +45 -7
- package/dist/types/components/icon/icon.d.ts +44 -13
- package/dist/types/components/input/input.d.ts +65 -15
- package/dist/types/components/item/item.d.ts +38 -5
- package/dist/types/components/link/link.d.ts +41 -9
- package/dist/types/components/list/list.d.ts +58 -8
- package/dist/types/components/loading/loading.d.ts +48 -8
- package/dist/types/components/magic-button/magic-button.d.ts +37 -3
- package/dist/types/components/menu/menu-group/menu-group.d.ts +19 -1
- package/dist/types/components/menu/menu-header/menu-header.d.ts +16 -1
- package/dist/types/components/menu/menu-info/menu-info.d.ts +14 -1
- package/dist/types/components/menu/menu-item/menu-item.d.ts +27 -3
- package/dist/types/components/menu/menu-link/menu-link.d.ts +17 -1
- package/dist/types/components/menu/menu-list/menu-list.d.ts +22 -4
- package/dist/types/components/menu/menu-logo/menu-logo.d.ts +14 -1
- package/dist/types/components/menu/menu-social/menu-social.d.ts +21 -2
- package/dist/types/components/menu/menu.d.ts +42 -9
- package/dist/types/components/menu/menu.utils.d.ts +2 -6
- package/dist/types/components/message/message.d.ts +38 -9
- package/dist/types/components/modal/modal.d.ts +34 -4
- package/dist/types/components/notification/notification-body/notification-body.d.ts +12 -3
- package/dist/types/components/notification/notification-header/notification-header.d.ts +12 -3
- package/dist/types/components/notification/notification-item/notification-item.d.ts +15 -3
- package/dist/types/components/notification/notification.d.ts +36 -5
- package/dist/types/components/pagination/pagination.d.ts +56 -20
- package/dist/types/components/radio/radio.d.ts +49 -4
- package/dist/types/components/radio-group/radio-group.d.ts +52 -10
- package/dist/types/components/scrim/scrim.d.ts +72 -11
- package/dist/types/components/scrim/scrim.utils.d.ts +2 -17
- package/dist/types/components/select/select-input/select-input.d.ts +22 -4
- package/dist/types/components/select/select-list/select-list.d.ts +51 -5
- package/dist/types/components/select/select-option/select-option.d.ts +31 -8
- package/dist/types/components/select/select.d.ts +152 -13
- package/dist/types/components/select/select.types.d.ts +5 -0
- package/dist/types/components/sign-in/sign-in.d.ts +30 -3
- package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +15 -2
- package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +22 -1
- package/dist/types/components/skip-link/skip-link.d.ts +37 -3
- package/dist/types/components/slider/slider.d.ts +147 -21
- package/dist/types/components/slider/slider.types.d.ts +7 -2
- package/dist/types/components/slider/slider.utils.d.ts +27 -0
- package/dist/types/components/step/step-item/step-item.d.ts +15 -3
- package/dist/types/components/step/step.d.ts +47 -12
- package/dist/types/components/switch/switch.d.ts +39 -6
- package/dist/types/components/tab/tab-item/tab-item.d.ts +20 -4
- package/dist/types/components/tab/tab.d.ts +41 -11
- package/dist/types/components/table/table-body/table-body.d.ts +10 -6
- package/dist/types/components/table/table-cell/table-cell.d.ts +10 -6
- package/dist/types/components/table/table-header/table-header.d.ts +10 -6
- package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +18 -6
- package/dist/types/components/table/table-row/table-row.d.ts +11 -6
- package/dist/types/components/table/table.d.ts +49 -11
- package/dist/types/components/tag/tag.d.ts +55 -7
- package/dist/types/components/textarea/textarea.d.ts +75 -5
- package/dist/types/components/textarea/textarea.types.d.ts +4 -0
- package/dist/types/components/tooltip/tooltip.d.ts +46 -8
- package/dist/types/components/upload/upload.d.ts +78 -10
- package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +20 -2
- package/dist/types/components/wizard/wizard.d.ts +44 -7
- package/dist/types/components.d.ts +5825 -1352
- package/dist/types/shared/utils/floating-ui.d.ts +4 -0
- package/dist/types/shared/utils/focus.d.ts +14 -0
- package/dist/types/shared/utils/getRandom.d.ts +1 -0
- package/dist/types/shared/utils/id.d.ts +1 -1
- package/dist/types/shared/utils/index.d.ts +6 -1
- package/dist/types/shared/utils/motion.d.ts +14 -0
- package/dist/types/shared/utils/ownership.d.ts +33 -0
- package/dist/types/shared/utils/prop-warning.d.ts +7 -0
- package/dist/types/shared/utils/props.d.ts +38 -0
- package/dist/types/shared/utils/swipe.d.ts +5 -0
- package/dist/types/shared/utils/virtual-scroll.d.ts +25 -0
- package/dist/types/stencil-public-runtime.d.ts +12 -0
- package/dist/webcomponents/index.esm.js +1 -1
- package/dist/webcomponents/p-01baafce.entry.js +5 -0
- package/dist/webcomponents/p-01fb0754.entry.js +5 -0
- package/dist/webcomponents/p-030c02f8.entry.js +5 -0
- package/dist/webcomponents/p-03359c92.entry.js +5 -0
- package/dist/webcomponents/p-09770c98.entry.js +5 -0
- package/dist/webcomponents/p-0b9714f1.entry.js +5 -0
- package/dist/webcomponents/p-12aa36a8.entry.js +5 -0
- package/dist/webcomponents/p-130b6e06.entry.js +5 -0
- package/dist/webcomponents/p-144f8c8d.entry.js +5 -0
- package/dist/webcomponents/p-14fe22e2.entry.js +5 -0
- package/dist/webcomponents/p-1ff9210a.entry.js +5 -0
- package/dist/webcomponents/p-2605cdc3.entry.js +5 -0
- package/dist/webcomponents/p-27afaec9.entry.js +5 -0
- package/dist/webcomponents/p-2a50e42d.entry.js +5 -0
- package/dist/webcomponents/p-327f034f.entry.js +5 -0
- package/dist/webcomponents/p-342650b8.entry.js +5 -0
- package/dist/webcomponents/p-38f6a78b.entry.js +5 -0
- package/dist/webcomponents/p-3920fe3a.entry.js +5 -0
- package/dist/webcomponents/p-3ae97345.entry.js +5 -0
- package/dist/webcomponents/p-3cce767c.entry.js +5 -0
- package/dist/webcomponents/p-3df6c5d2.entry.js +5 -0
- package/dist/webcomponents/p-3e287899.entry.js +5 -0
- package/dist/webcomponents/p-3e5580ba.entry.js +5 -0
- package/dist/webcomponents/p-403637dd.entry.js +5 -0
- package/dist/webcomponents/p-435c8ef2.entry.js +5 -0
- package/dist/webcomponents/p-59da5b55.entry.js +5 -0
- package/dist/webcomponents/p-5dd4314c.entry.js +5 -0
- package/dist/webcomponents/p-646af6a5.entry.js +5 -0
- package/dist/webcomponents/p-670e8fec.entry.js +5 -0
- package/dist/webcomponents/p-68046544.entry.js +5 -0
- package/dist/webcomponents/p-68ec76b8.entry.js +5 -0
- package/dist/webcomponents/p-6c0ea20c.entry.js +5 -0
- package/dist/webcomponents/p-6c2fe5e4.entry.js +5 -0
- package/dist/webcomponents/p-707df9b9.entry.js +5 -0
- package/dist/webcomponents/p-72b839fe.entry.js +5 -0
- package/dist/webcomponents/p-73dcc05b.entry.js +5 -0
- package/dist/webcomponents/p-7acf20d3.entry.js +5 -0
- package/dist/webcomponents/p-7b01bddb.entry.js +5 -0
- package/dist/webcomponents/p-7cd38850.entry.js +5 -0
- package/dist/webcomponents/p-82454383.entry.js +5 -0
- package/dist/webcomponents/p-91e959a8.entry.js +5 -0
- package/dist/webcomponents/p-964c01e6.entry.js +5 -0
- package/dist/webcomponents/p-9858e42a.entry.js +5 -0
- package/dist/webcomponents/p-9c4200b0.entry.js +5 -0
- package/dist/webcomponents/p-9d9c87b1.entry.js +5 -0
- package/dist/webcomponents/p-B0PbhaxL.js +5 -0
- package/dist/webcomponents/p-BEJGB0Nd.js +5 -0
- package/dist/{components/p-Dmfk7eEe.js → webcomponents/p-BJZC_NuV.js} +1 -1
- package/dist/webcomponents/p-BJtdabsr.js +5 -0
- package/dist/webcomponents/p-BeJxz5TQ.js +5 -0
- package/dist/webcomponents/p-BlGV-x0w.js +5 -0
- package/dist/webcomponents/{p-Bfm58jO6.js → p-BtRPYRvA.js} +1 -1
- package/dist/webcomponents/p-CDtFCbKp.js +5 -0
- package/dist/webcomponents/p-CNwZRgyL.js +5 -0
- package/dist/webcomponents/{p-DFN_so7I.js → p-CfuJQ1DY.js} +1 -1
- package/dist/webcomponents/p-D9Zo6FlV.js +5 -0
- package/dist/webcomponents/{p-BhMVJQ4-.js → p-DV-iW9Aj.js} +1 -1
- package/dist/webcomponents/p-DWhzxlCx.js +5 -0
- package/dist/webcomponents/p-Dcn7tRST.js +7 -0
- package/dist/webcomponents/p-EbtQZm5s.js +5 -0
- package/dist/webcomponents/p-a0931550.entry.js +5 -0
- package/dist/webcomponents/p-a212fd85.entry.js +5 -0
- package/dist/webcomponents/p-a2e75143.entry.js +5 -0
- package/dist/webcomponents/p-a3bb98c9.entry.js +5 -0
- package/dist/webcomponents/p-a8b5dba0.entry.js +5 -0
- package/dist/webcomponents/p-aa909443.entry.js +5 -0
- package/dist/webcomponents/p-abaf2365.entry.js +5 -0
- package/dist/webcomponents/p-aeb16645.entry.js +5 -0
- package/dist/webcomponents/p-b287c384.entry.js +5 -0
- package/dist/webcomponents/p-b506b0a1.entry.js +5 -0
- package/dist/webcomponents/p-b520c08c.entry.js +5 -0
- package/dist/webcomponents/p-b94c3f84.entry.js +5 -0
- package/dist/webcomponents/p-bda62f90.entry.js +5 -0
- package/dist/webcomponents/p-c201ae16.entry.js +5 -0
- package/dist/webcomponents/p-c7e899a1.entry.js +5 -0
- package/dist/webcomponents/p-c8b7bbab.entry.js +5 -0
- package/dist/webcomponents/p-cbf3e251.entry.js +5 -0
- package/dist/webcomponents/{p-7f7506f0.entry.js → p-cff24492.entry.js} +1 -1
- package/dist/webcomponents/p-d35cf5b4.entry.js +5 -0
- package/dist/webcomponents/p-d45ffe9c.entry.js +5 -0
- package/dist/webcomponents/p-d719a4af.entry.js +5 -0
- package/dist/webcomponents/p-d826c052.entry.js +5 -0
- package/dist/webcomponents/p-da21a60d.entry.js +5 -0
- package/dist/webcomponents/p-de0c7f26.entry.js +5 -0
- package/dist/webcomponents/p-e20188c0.entry.js +5 -0
- package/dist/webcomponents/p-e27882e1.entry.js +5 -0
- package/dist/webcomponents/p-e3de5bb3.entry.js +5 -0
- package/dist/webcomponents/p-e624ff04.entry.js +5 -0
- package/dist/webcomponents/p-ed5af0e4.entry.js +5 -0
- package/dist/webcomponents/p-edc6da0e.entry.js +5 -0
- package/dist/webcomponents/p-f24fcf3d.entry.js +5 -0
- package/dist/webcomponents/p-f52ef0dc.entry.js +5 -0
- package/dist/webcomponents/{p-12286e73.entry.js → p-f558d7b9.entry.js} +1 -1
- package/dist/webcomponents/p-fcab1428.entry.js +5 -0
- package/dist/webcomponents/p-fe1729a7.entry.js +5 -0
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +18 -3
- package/dist/cjs/clamp-Co_hWptd.js +0 -25
- package/dist/cjs/id-CjRFMzf6.js +0 -20
- package/dist/cjs/props-CScmBvKd.js +0 -24
- package/dist/collection/pages/components/cookiebar/index.js +0 -26
- package/dist/collection/pages/components/link/index.js +0 -29
- package/dist/collection/pages/components/pagination/index.js +0 -12
- package/dist/collection/pages/components/slider/index.js +0 -18
- package/dist/components/p-34Jfn-U-.js +0 -5
- package/dist/components/p-6OdfnwnK.js +0 -5
- package/dist/components/p-B7Amgxkp.js +0 -5
- package/dist/components/p-BKuMQJrQ.js +0 -5
- package/dist/components/p-BPJpHGOW.js +0 -5
- package/dist/components/p-Bb-nLtTG.js +0 -5
- package/dist/components/p-BeE7R9nu.js +0 -5
- package/dist/components/p-BkS6ujyf.js +0 -5
- package/dist/components/p-Bo0QYHJO.js +0 -5
- package/dist/components/p-C2i2c_io.js +0 -5
- package/dist/components/p-C7v0lVlX.js +0 -5
- package/dist/components/p-CMBsvswx.js +0 -5
- package/dist/components/p-CRrimdz6.js +0 -5
- package/dist/components/p-CWORw84-.js +0 -5
- package/dist/components/p-CvUMXJCl.js +0 -5
- package/dist/components/p-D6zroLx5.js +0 -5
- package/dist/components/p-DBP6K_aq.js +0 -5
- package/dist/components/p-DCrVo-8T.js +0 -5
- package/dist/components/p-DFUKDNck.js +0 -5
- package/dist/components/p-DHicj0By.js +0 -5
- package/dist/components/p-DIK54tTj.js +0 -5
- package/dist/components/p-DQRSHR-D.js +0 -5
- package/dist/components/p-DRVMm1Py.js +0 -5
- package/dist/components/p-DWPmUV72.js +0 -5
- package/dist/components/p-DXjQyH6s.js +0 -5
- package/dist/components/p-DmCxdB9P.js +0 -5
- package/dist/components/p-Dp0xy_3n.js +0 -5
- package/dist/components/p-DxZJrIyL.js +0 -5
- package/dist/components/p-JAkkThgf.js +0 -5
- package/dist/components/p-Ud-WB0hx.js +0 -5
- package/dist/components/p-fpMNttbg.js +0 -5
- package/dist/components/p-gvnfuTjd.js +0 -5
- package/dist/components/p-qYONSNcf.js +0 -5
- package/dist/components/p-qhhHGJY1.js +0 -5
- package/dist/components/p-ttI0nvv_.js +0 -5
- package/dist/components/p-ukNmfGNP.js +0 -5
- package/dist/components/p-xa8e1kSW.js +0 -5
- package/dist/esm/clamp-gvnfuTjd.js +0 -23
- package/dist/esm/id-BkS6ujyf.js +0 -18
- package/dist/esm/props-DRVMm1Py.js +0 -22
- package/dist/webcomponents/p-0196804a.entry.js +0 -5
- package/dist/webcomponents/p-0410186a.entry.js +0 -5
- package/dist/webcomponents/p-0415ef22.entry.js +0 -5
- package/dist/webcomponents/p-0777c7b1.entry.js +0 -5
- package/dist/webcomponents/p-0caa4d12.entry.js +0 -5
- package/dist/webcomponents/p-0d4f718d.entry.js +0 -5
- package/dist/webcomponents/p-0e84c9e8.entry.js +0 -5
- package/dist/webcomponents/p-147ac8d3.entry.js +0 -5
- package/dist/webcomponents/p-1580beee.entry.js +0 -5
- package/dist/webcomponents/p-18ee6175.entry.js +0 -5
- package/dist/webcomponents/p-1bca4499.entry.js +0 -5
- package/dist/webcomponents/p-1c303a4e.entry.js +0 -5
- package/dist/webcomponents/p-1d6b0b6f.entry.js +0 -5
- package/dist/webcomponents/p-1d8cb8fd.entry.js +0 -5
- package/dist/webcomponents/p-224daaac.entry.js +0 -5
- package/dist/webcomponents/p-28426d2a.entry.js +0 -5
- package/dist/webcomponents/p-2abd2da0.entry.js +0 -5
- package/dist/webcomponents/p-2fdc51ae.entry.js +0 -5
- package/dist/webcomponents/p-30c428b6.entry.js +0 -5
- package/dist/webcomponents/p-36bbea4e.entry.js +0 -5
- package/dist/webcomponents/p-3907ebfa.entry.js +0 -5
- package/dist/webcomponents/p-39a16f9d.entry.js +0 -5
- package/dist/webcomponents/p-3ebbd2f5.entry.js +0 -5
- package/dist/webcomponents/p-3ef7eac8.entry.js +0 -5
- package/dist/webcomponents/p-45356e9a.entry.js +0 -5
- package/dist/webcomponents/p-46513db4.entry.js +0 -5
- package/dist/webcomponents/p-4c13221a.entry.js +0 -5
- package/dist/webcomponents/p-51ce2c31.entry.js +0 -5
- package/dist/webcomponents/p-52df61cb.entry.js +0 -5
- package/dist/webcomponents/p-569134cf.entry.js +0 -5
- package/dist/webcomponents/p-5ce7db4a.entry.js +0 -5
- package/dist/webcomponents/p-5f373708.entry.js +0 -5
- package/dist/webcomponents/p-5f6afb79.entry.js +0 -5
- package/dist/webcomponents/p-5fc7ba4c.entry.js +0 -5
- package/dist/webcomponents/p-66006312.entry.js +0 -5
- package/dist/webcomponents/p-66b13fd9.entry.js +0 -5
- package/dist/webcomponents/p-6OdfnwnK.js +0 -5
- package/dist/webcomponents/p-750799b7.entry.js +0 -5
- package/dist/webcomponents/p-756ff2ad.entry.js +0 -5
- package/dist/webcomponents/p-765bfe27.entry.js +0 -5
- package/dist/webcomponents/p-7ab96c11.entry.js +0 -5
- package/dist/webcomponents/p-7c2ff8b4.entry.js +0 -5
- package/dist/webcomponents/p-7fb03a49.entry.js +0 -5
- package/dist/webcomponents/p-82200563.entry.js +0 -5
- package/dist/webcomponents/p-83ff4579.entry.js +0 -5
- package/dist/webcomponents/p-85f8063b.entry.js +0 -5
- package/dist/webcomponents/p-8b558233.entry.js +0 -5
- package/dist/webcomponents/p-8e6c2767.entry.js +0 -5
- package/dist/webcomponents/p-8e819355.entry.js +0 -5
- package/dist/webcomponents/p-92a9b9c4.entry.js +0 -5
- package/dist/webcomponents/p-966ad32f.entry.js +0 -5
- package/dist/webcomponents/p-9679d230.entry.js +0 -5
- package/dist/webcomponents/p-96dd663b.entry.js +0 -5
- package/dist/webcomponents/p-98843fa3.entry.js +0 -5
- package/dist/webcomponents/p-9a375eff.entry.js +0 -5
- package/dist/webcomponents/p-9b358cff.entry.js +0 -5
- package/dist/webcomponents/p-9f7558c7.entry.js +0 -5
- package/dist/webcomponents/p-BkS6ujyf.js +0 -5
- package/dist/webcomponents/p-C2RBydfd.js +0 -6
- package/dist/webcomponents/p-CO5cOQQU.js +0 -5
- package/dist/webcomponents/p-DIK54tTj.js +0 -5
- package/dist/webcomponents/p-DRVMm1Py.js +0 -5
- package/dist/webcomponents/p-DxZJrIyL.js +0 -5
- package/dist/webcomponents/p-a382e115.entry.js +0 -5
- package/dist/webcomponents/p-a4ae72e3.entry.js +0 -5
- package/dist/webcomponents/p-a994c190.entry.js +0 -5
- package/dist/webcomponents/p-a9ff7c25.entry.js +0 -5
- package/dist/webcomponents/p-c0b0f531.entry.js +0 -5
- package/dist/webcomponents/p-c211af17.entry.js +0 -5
- package/dist/webcomponents/p-c492d926.entry.js +0 -5
- package/dist/webcomponents/p-c4cfe599.entry.js +0 -5
- package/dist/webcomponents/p-c846e784.entry.js +0 -5
- package/dist/webcomponents/p-c949d993.entry.js +0 -5
- package/dist/webcomponents/p-d1e899cd.entry.js +0 -5
- package/dist/webcomponents/p-d38d82cc.entry.js +0 -5
- package/dist/webcomponents/p-e0ce536a.entry.js +0 -5
- package/dist/webcomponents/p-e1331288.entry.js +0 -5
- package/dist/webcomponents/p-e360a463.entry.js +0 -5
- package/dist/webcomponents/p-f078f972.entry.js +0 -5
- package/dist/webcomponents/p-f26038e2.entry.js +0 -5
- package/dist/webcomponents/p-f303f6b3.entry.js +0 -5
- package/dist/webcomponents/p-f6318e94.entry.js +0 -5
- package/dist/webcomponents/p-f85ee01c.entry.js +0 -5
- package/dist/webcomponents/p-fcd4ae48.entry.js +0 -5
- package/dist/webcomponents/p-ffe0241e.entry.js +0 -5
- package/dist/webcomponents/p-gvnfuTjd.js +0 -5
|
@@ -3,13 +3,41 @@
|
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { Host, h } from "@stencil/core";
|
|
6
|
+
import { generateUniqueId } from "../../shared/utils/id";
|
|
7
|
+
import { createMicrotaskReconciler, getOwnedAssignedElements } from "../../shared/utils/ownership";
|
|
8
|
+
import { resolveAllowedPropValue } from "../../shared/utils/props";
|
|
9
|
+
const CHECKBOX_GROUP_ORIENTATIONS = ['horizontal', 'vertical'];
|
|
6
10
|
/**
|
|
7
|
-
*
|
|
11
|
+
* O componente `br-checkbox-group` é o contêiner semântico e orquestrador de múltiplos controles `br-checkbox` que pertencem a um mesmo contexto ou pergunta em formulários do GovBR-DS.
|
|
8
12
|
*
|
|
9
|
-
* Para
|
|
13
|
+
* ### Para que serve
|
|
10
14
|
*
|
|
11
|
-
*
|
|
15
|
+
* - **Agrupamento semântico e acessibilidade:** Cria a estrutura recomendada de `fieldset` e `legend` para leitores de tela, garantindo que o contexto da pergunta seja anunciado antes de cada opção individual.
|
|
16
|
+
* - **Validação conjunta:** Permite coordenar regras de validação em grupo (como exigir uma quantidade mínima ou máxima de checkboxes selecionados).
|
|
17
|
+
* - **Alinhamento e padronização visual:** Organiza os checkboxes vertical ou horizontalmente conforme o leiaute da interface.
|
|
18
|
+
*
|
|
19
|
+
* ### Quando utilizar
|
|
20
|
+
*
|
|
21
|
+
* - **Utilize quando:**
|
|
22
|
+
* - Existirem duas ou mais opções em checkbox que respondem à mesma pergunta ou pertencem ao mesmo conjunto lógico de preferências.
|
|
23
|
+
* - For necessário aplicar rótulo geral e mensagens de validação ao grupo completo de escolhas.
|
|
24
|
+
* - **Evite e prefira outro componente quando:**
|
|
25
|
+
* - Houver apenas um único checkbox independente (ex.: aceite de termos): use `br-checkbox` isoladamente.
|
|
26
|
+
* - A seleção for de escolha única (mutuamente exclusiva): use `br-radio-group`.
|
|
27
|
+
*
|
|
28
|
+
* ### Estrutura e Slots
|
|
29
|
+
*
|
|
30
|
+
* O `br-checkbox-group` atua como container orquestrador:
|
|
31
|
+
* - `default`: Slot onde devem ser inseridos os elementos `br-checkbox` que compõem o grupo.
|
|
32
|
+
* - `feedback`: Slot opcional para mensagem de erro ou orientação de validação associada ao grupo todo.
|
|
33
|
+
*
|
|
34
|
+
* Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/checkgroup?tab=designer).
|
|
35
|
+
*
|
|
36
|
+
|
|
37
|
+
* @category Formulários, Seleção
|
|
12
38
|
* @status stable
|
|
39
|
+
* @see br-checkbox
|
|
40
|
+
* @see br-checkgroup
|
|
13
41
|
* @slot default - Slot para adicionar os checkboxes controlados pelo grupo.
|
|
14
42
|
*/
|
|
15
43
|
export class CheckboxGroup {
|
|
@@ -18,29 +46,46 @@ export class CheckboxGroup {
|
|
|
18
46
|
this.checked = false;
|
|
19
47
|
/** Estado indeterminado do controlador do grupo. */
|
|
20
48
|
this.isIndeterminate = false;
|
|
49
|
+
/** Desabilita o controlador e os checkboxes contidos no grupo. */
|
|
50
|
+
this.disabled = false;
|
|
21
51
|
/** Rótulo para desmarcar todos os checkboxes. */
|
|
22
52
|
this.unselectAllLabel = 'Desselecionar tudo';
|
|
23
53
|
/** Rótulo para marcar todos os checkboxes. */
|
|
24
54
|
this.selectAllLabel = 'Selecionar tudo';
|
|
25
55
|
/** Define o estado indeterminado inicial do grupo. */
|
|
26
56
|
this.indeterminate = false;
|
|
27
|
-
/** Orientação visual das opções. */
|
|
57
|
+
/** Orientação visual das opções. Valores inválidos usam `vertical`. */
|
|
28
58
|
this.orientation = 'vertical';
|
|
29
59
|
/** Identificador único do controlador. */
|
|
30
|
-
this.customId =
|
|
60
|
+
this.customId = generateUniqueId('br-checkbox-group');
|
|
31
61
|
this.syncingChildren = false;
|
|
62
|
+
this.managedChildren = new Set();
|
|
63
|
+
this.reconciler = createMicrotaskReconciler(() => this.updateGroupState());
|
|
32
64
|
this.handleSlotChange = () => {
|
|
33
65
|
this.setNumberOfChildren();
|
|
34
|
-
this.
|
|
66
|
+
this.syncManagedChildren();
|
|
67
|
+
this.reconciler.schedule();
|
|
68
|
+
};
|
|
69
|
+
this.handleStructureChange = () => {
|
|
70
|
+
this.setNumberOfChildren();
|
|
71
|
+
this.syncManagedChildren();
|
|
72
|
+
this.reconciler.schedule();
|
|
35
73
|
};
|
|
36
74
|
this.handleParentChange = (event) => {
|
|
37
|
-
if (
|
|
75
|
+
if (this.disabled)
|
|
38
76
|
return;
|
|
39
|
-
|
|
77
|
+
const children = this.getChildCheckboxes();
|
|
78
|
+
const enabledChildren = children.filter((checkbox) => !this.isCheckboxDisabledOrReadonly(checkbox));
|
|
79
|
+
const targetChecked = enabledChildren.length > 0
|
|
80
|
+
? !enabledChildren.every((checkbox) => this.isCheckboxChecked(checkbox))
|
|
81
|
+
: event.detail;
|
|
82
|
+
this.checked = targetChecked;
|
|
40
83
|
this.isIndeterminate = false;
|
|
41
84
|
this.syncingChildren = true;
|
|
42
|
-
|
|
43
|
-
|
|
85
|
+
children.forEach((checkbox) => {
|
|
86
|
+
if (this.isCheckboxDisabledOrReadonly(checkbox))
|
|
87
|
+
return;
|
|
88
|
+
checkbox.checked = targetChecked;
|
|
44
89
|
checkbox.indeterminate = false;
|
|
45
90
|
});
|
|
46
91
|
this.syncingChildren = false;
|
|
@@ -53,28 +98,80 @@ export class CheckboxGroup {
|
|
|
53
98
|
}
|
|
54
99
|
componentDidLoad() {
|
|
55
100
|
this.setNumberOfChildren();
|
|
101
|
+
this.syncManagedChildren();
|
|
102
|
+
this.updateGroupState();
|
|
56
103
|
this.getSlotElement()?.addEventListener('slotchange', this.handleSlotChange);
|
|
104
|
+
this.structureObserver = new MutationObserver(this.handleStructureChange);
|
|
105
|
+
this.structureObserver.observe(this.el, {
|
|
106
|
+
attributes: true,
|
|
107
|
+
attributeFilter: ['class'],
|
|
108
|
+
childList: true,
|
|
109
|
+
subtree: true,
|
|
110
|
+
});
|
|
111
|
+
setTimeout(() => this.syncManagedChildren());
|
|
57
112
|
}
|
|
58
113
|
disconnectedCallback() {
|
|
114
|
+
this.reconciler.cancel();
|
|
115
|
+
this.structureObserver?.disconnect();
|
|
116
|
+
this.structureObserver = undefined;
|
|
59
117
|
this.getSlotElement()?.removeEventListener('slotchange', this.handleSlotChange);
|
|
118
|
+
this.releaseManagedChildren();
|
|
119
|
+
}
|
|
120
|
+
handleDisabledChange() {
|
|
121
|
+
this.syncManagedChildren();
|
|
60
122
|
}
|
|
61
|
-
handleChildChange(event) {
|
|
123
|
+
async handleChildChange(event) {
|
|
124
|
+
if (event) {
|
|
125
|
+
const target = this.getEventCheckboxTarget(event);
|
|
126
|
+
if (target && this.isParentCheckbox(target)) {
|
|
127
|
+
this.handleParentChange(event);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (target && !this.getChildCheckboxes().includes(target))
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (this.syncingChildren)
|
|
134
|
+
return;
|
|
135
|
+
this.reconciler.schedule();
|
|
136
|
+
}
|
|
137
|
+
handleInternalChildStateChange(event) {
|
|
62
138
|
const target = this.getEventCheckboxTarget(event);
|
|
63
|
-
if (!target || this.isParentCheckbox(target) || this.
|
|
139
|
+
if (!target || this.isParentCheckbox(target) || !this.getChildCheckboxes().includes(target))
|
|
64
140
|
return;
|
|
65
|
-
this.
|
|
141
|
+
if (this.syncingChildren)
|
|
142
|
+
return;
|
|
143
|
+
this.reconciler.schedule();
|
|
144
|
+
}
|
|
145
|
+
dispatchGroupState(checkbox, managed) {
|
|
146
|
+
checkbox.dispatchEvent(new CustomEvent('brCheckboxGroupState', {
|
|
147
|
+
bubbles: true,
|
|
148
|
+
composed: true,
|
|
149
|
+
detail: { managed, disabled: managed && this.disabled },
|
|
150
|
+
}));
|
|
151
|
+
}
|
|
152
|
+
syncManagedChildren() {
|
|
153
|
+
const children = new Set(this.getChildCheckboxes());
|
|
154
|
+
for (const checkbox of this.managedChildren) {
|
|
155
|
+
if (!children.has(checkbox)) {
|
|
156
|
+
this.dispatchGroupState(checkbox, false);
|
|
157
|
+
this.managedChildren.delete(checkbox);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
for (const checkbox of children) {
|
|
161
|
+
this.dispatchGroupState(checkbox, true);
|
|
162
|
+
this.managedChildren.add(checkbox);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
releaseManagedChildren() {
|
|
166
|
+
for (const checkbox of this.managedChildren)
|
|
167
|
+
this.dispatchGroupState(checkbox, false);
|
|
168
|
+
this.managedChildren.clear();
|
|
66
169
|
}
|
|
67
170
|
getSlotElement() {
|
|
68
171
|
return this.el.shadowRoot?.querySelector('slot') ?? null;
|
|
69
172
|
}
|
|
70
173
|
getChildCheckboxes() {
|
|
71
|
-
|
|
72
|
-
const children = assigned.flatMap((element) => {
|
|
73
|
-
if (element.tagName.toLowerCase() === 'br-checkbox')
|
|
74
|
-
return [element];
|
|
75
|
-
return Array.from(element.querySelectorAll('br-checkbox'));
|
|
76
|
-
});
|
|
77
|
-
return [...new Set(children)].filter((element) => element.getAttribute('data-controller') !== 'true');
|
|
174
|
+
return getOwnedAssignedElements(this.getSlotElement(), this.el, 'br-checkbox').filter((element) => element.getAttribute('data-controller') !== 'true');
|
|
78
175
|
}
|
|
79
176
|
getEventCheckboxTarget(event) {
|
|
80
177
|
return event.composedPath().find((node) => node.tagName?.toLowerCase() === 'br-checkbox');
|
|
@@ -82,36 +179,88 @@ export class CheckboxGroup {
|
|
|
82
179
|
isParentCheckbox(target) {
|
|
83
180
|
return target.getRootNode() === this.el.shadowRoot;
|
|
84
181
|
}
|
|
182
|
+
isCheckboxDisabledOrReadonly(checkbox) {
|
|
183
|
+
return (checkbox.disabled ||
|
|
184
|
+
checkbox.hasAttribute('disabled') ||
|
|
185
|
+
Boolean(checkbox.readonly) ||
|
|
186
|
+
Boolean(checkbox.readOnly) ||
|
|
187
|
+
checkbox.hasAttribute('readonly') ||
|
|
188
|
+
checkbox.hasAttribute('read-only') ||
|
|
189
|
+
Boolean(checkbox.closest('fieldset[disabled]')));
|
|
190
|
+
}
|
|
191
|
+
isCheckboxChecked(checkbox) {
|
|
192
|
+
return Boolean(checkbox.checked);
|
|
193
|
+
}
|
|
194
|
+
isCheckboxIndeterminate(checkbox) {
|
|
195
|
+
return Boolean(checkbox.indeterminate);
|
|
196
|
+
}
|
|
85
197
|
updateGroupState() {
|
|
86
198
|
const children = this.getChildCheckboxes();
|
|
87
199
|
if (children.length === 0) {
|
|
88
200
|
this.setParentState(false, false);
|
|
89
201
|
return;
|
|
90
202
|
}
|
|
91
|
-
const
|
|
92
|
-
const
|
|
203
|
+
const anyIndeterminate = children.some((checkbox) => this.isCheckboxIndeterminate(checkbox));
|
|
204
|
+
const allChecked = !anyIndeterminate && children.every((checkbox) => this.isCheckboxChecked(checkbox));
|
|
205
|
+
const noneChecked = !anyIndeterminate && children.every((checkbox) => !this.isCheckboxChecked(checkbox));
|
|
93
206
|
this.setParentState(allChecked, !allChecked && !noneChecked);
|
|
94
207
|
}
|
|
208
|
+
componentDidUpdate() {
|
|
209
|
+
this.syncManagedChildren();
|
|
210
|
+
this.syncControllerState();
|
|
211
|
+
}
|
|
212
|
+
syncControllerState() {
|
|
213
|
+
const controller = this.controller ?? this.el.shadowRoot?.querySelector('br-checkbox');
|
|
214
|
+
if (controller) {
|
|
215
|
+
this.controller = controller;
|
|
216
|
+
controller.checked = this.checked;
|
|
217
|
+
controller.indeterminate = this.isIndeterminate;
|
|
218
|
+
const label = this.checked ? this.unselectAllLabel : this.selectAllLabel;
|
|
219
|
+
controller.label = label;
|
|
220
|
+
controller.setAttribute('label', label);
|
|
221
|
+
controller.setAttribute('aria-label', label);
|
|
222
|
+
if (!this.checked) {
|
|
223
|
+
controller.removeAttribute('checked');
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
controller.setAttribute('checked', '');
|
|
227
|
+
}
|
|
228
|
+
if (!this.isIndeterminate) {
|
|
229
|
+
controller.removeAttribute('indeterminate');
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
controller.setAttribute('indeterminate', '');
|
|
233
|
+
}
|
|
234
|
+
controller.dispatchEvent(new CustomEvent('brInternalCheckboxSyncRequest'));
|
|
235
|
+
}
|
|
236
|
+
}
|
|
95
237
|
setParentState(checked, indeterminate) {
|
|
96
238
|
this.checked = checked;
|
|
97
239
|
this.isIndeterminate = indeterminate;
|
|
240
|
+
this.syncControllerState();
|
|
98
241
|
}
|
|
99
242
|
setNumberOfChildren() {
|
|
100
|
-
const controller = this.el.shadowRoot?.querySelector('br-checkbox');
|
|
243
|
+
const controller = this.controller ?? this.el.shadowRoot?.querySelector('br-checkbox');
|
|
101
244
|
const children = this.getChildCheckboxes();
|
|
102
|
-
if (controller
|
|
245
|
+
if (controller)
|
|
103
246
|
controller.setNumberOfChildren(children.length);
|
|
104
247
|
}
|
|
105
248
|
getCssClassMap() {
|
|
249
|
+
const orientation = this.effectiveOrientation;
|
|
106
250
|
return {
|
|
107
251
|
'br-checkbox-group': true,
|
|
108
|
-
horizontal:
|
|
109
|
-
vertical:
|
|
252
|
+
horizontal: orientation === 'horizontal',
|
|
253
|
+
vertical: orientation === 'vertical',
|
|
110
254
|
};
|
|
111
255
|
}
|
|
256
|
+
get effectiveOrientation() {
|
|
257
|
+
return resolveAllowedPropValue(this.el, 'orientation', this.orientation, CHECKBOX_GROUP_ORIENTATIONS, 'vertical');
|
|
258
|
+
}
|
|
112
259
|
render() {
|
|
113
260
|
const selectAllLabel = this.checked ? this.unselectAllLabel : this.selectAllLabel;
|
|
114
|
-
return (h(Host, { key: '
|
|
261
|
+
return (h(Host, { key: '5fcab47283a3e2df57ffbdc5bcca09c537d32951', style: { opacity: this.disabled ? '1' : undefined } }, h("fieldset", { key: '0f6d5a4f378d36eea6d65c13740a92216f4b64fa', class: this.getCssClassMap(), style: { width: '100%' }, disabled: this.disabled }, this.label && h("legend", { key: 'f3424c55354d30341f5c55ba1eb647b15457c355' }, this.label), h("div", { key: 'adefe827bf0e7a0bac8bd88739905ea55a2ed365', class: "mb-1" }, h("div", { key: 'abcf8538b1eb5b1155c4d0be4fec437384868437', class: "checkbox-group-example" }, h("br-checkbox", { key: '0e08247a7ad72a2a56a486601cceec8e92b33bd2', ref: (element) => {
|
|
262
|
+
this.controller = element;
|
|
263
|
+
}, id: `checkbox-group-${this.customId}`, "data-controller": "true", name: `checkbox-group-${this.customId}`, checked: this.checked, indeterminate: this.isIndeterminate, label: selectAllLabel, "aria-label": selectAllLabel, disabled: this.disabled, isFather: true, "is-father": true }))), h("div", { key: 'dbb446b00abdbda65925dc95034c3aeb237084c4', class: "checkbox-group-options" }, h("slot", { key: 'e2b0c5155435b7af5d9460fa5d21f38d2f80cc0b' })))));
|
|
115
264
|
}
|
|
116
265
|
static get is() { return "br-checkbox-group"; }
|
|
117
266
|
static get encapsulation() { return "shadow"; }
|
|
@@ -127,6 +276,26 @@ export class CheckboxGroup {
|
|
|
127
276
|
}
|
|
128
277
|
static get properties() {
|
|
129
278
|
return {
|
|
279
|
+
"disabled": {
|
|
280
|
+
"type": "boolean",
|
|
281
|
+
"mutable": false,
|
|
282
|
+
"complexType": {
|
|
283
|
+
"original": "boolean",
|
|
284
|
+
"resolved": "boolean",
|
|
285
|
+
"references": {}
|
|
286
|
+
},
|
|
287
|
+
"required": false,
|
|
288
|
+
"optional": false,
|
|
289
|
+
"docs": {
|
|
290
|
+
"tags": [],
|
|
291
|
+
"text": "Desabilita o controlador e os checkboxes contidos no grupo."
|
|
292
|
+
},
|
|
293
|
+
"getter": false,
|
|
294
|
+
"setter": false,
|
|
295
|
+
"reflect": true,
|
|
296
|
+
"attribute": "disabled",
|
|
297
|
+
"defaultValue": "false"
|
|
298
|
+
},
|
|
130
299
|
"label": {
|
|
131
300
|
"type": "string",
|
|
132
301
|
"mutable": false,
|
|
@@ -218,7 +387,7 @@ export class CheckboxGroup {
|
|
|
218
387
|
"optional": false,
|
|
219
388
|
"docs": {
|
|
220
389
|
"tags": [],
|
|
221
|
-
"text": "Orienta\u00E7\u00E3o visual das op\u00E7\u00F5es."
|
|
390
|
+
"text": "Orienta\u00E7\u00E3o visual das op\u00E7\u00F5es. Valores inv\u00E1lidos usam `vertical`."
|
|
222
391
|
},
|
|
223
392
|
"getter": false,
|
|
224
393
|
"setter": false,
|
|
@@ -244,7 +413,7 @@ export class CheckboxGroup {
|
|
|
244
413
|
"setter": false,
|
|
245
414
|
"reflect": true,
|
|
246
415
|
"attribute": "custom-id",
|
|
247
|
-
"defaultValue": "
|
|
416
|
+
"defaultValue": "generateUniqueId('br-checkbox-group')"
|
|
248
417
|
}
|
|
249
418
|
};
|
|
250
419
|
}
|
|
@@ -255,6 +424,12 @@ export class CheckboxGroup {
|
|
|
255
424
|
};
|
|
256
425
|
}
|
|
257
426
|
static get elementRef() { return "el"; }
|
|
427
|
+
static get watchers() {
|
|
428
|
+
return [{
|
|
429
|
+
"propName": "disabled",
|
|
430
|
+
"methodName": "handleDisabledChange"
|
|
431
|
+
}];
|
|
432
|
+
}
|
|
258
433
|
static get listeners() {
|
|
259
434
|
return [{
|
|
260
435
|
"name": "checkedChange",
|
|
@@ -262,7 +437,12 @@ export class CheckboxGroup {
|
|
|
262
437
|
"target": undefined,
|
|
263
438
|
"capture": false,
|
|
264
439
|
"passive": false
|
|
440
|
+
}, {
|
|
441
|
+
"name": "brInternalCheckboxStateChange",
|
|
442
|
+
"method": "handleInternalChildStateChange",
|
|
443
|
+
"target": undefined,
|
|
444
|
+
"capture": false,
|
|
445
|
+
"passive": false
|
|
265
446
|
}];
|
|
266
447
|
}
|
|
267
448
|
}
|
|
268
|
-
let checkboxGroupId = 0;
|
|
@@ -4,8 +4,23 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Host, h } from "@stencil/core";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* O componente `br-checkgroup` é o alias legado mantido para compatibilidade com versões anteriores da biblioteca.
|
|
8
|
+
*
|
|
9
|
+
* ### Papel na biblioteca
|
|
10
|
+
*
|
|
11
|
+
* - Atua como um redirecionador direto para a implementação do `br-checkbox-group`.
|
|
12
|
+
* - Permite que aplicações já existentes mantenham o funcionamento sem interrupções enquanto realizam a transição gradativa.
|
|
13
|
+
*
|
|
14
|
+
* ### Regra de uso e migração
|
|
15
|
+
*
|
|
16
|
+
* Em novos projetos e manutenções ativas, **utilize sempre a tag canônica `br-checkbox-group`**. O uso de `br-checkgroup` está depreciado e deve ser substituído pela tag oficial.
|
|
17
|
+
*
|
|
18
|
+
* Para a documentação canônica completa, consulte a página do [br-checkbox-group](/docs/components/checkbox-group).
|
|
19
|
+
*
|
|
20
|
+
|
|
21
|
+
* @category Formulários, Seleção
|
|
8
22
|
* @status deprecated
|
|
23
|
+
* @see br-checkbox-group
|
|
9
24
|
* @slot default - Slot para adicionar os checkboxes controlados pelo grupo.
|
|
10
25
|
* @deprecated Use `br-checkbox-group`.
|
|
11
26
|
*/
|
|
@@ -13,9 +28,11 @@ export class Checkgroup {
|
|
|
13
28
|
constructor() {
|
|
14
29
|
/** Estado indeterminado inicial. */
|
|
15
30
|
this.indeterminate = false;
|
|
31
|
+
/** Desabilita o controlador e os checkboxes contidos no grupo. */
|
|
32
|
+
this.disabled = false;
|
|
16
33
|
}
|
|
17
34
|
render() {
|
|
18
|
-
return (h(Host, { key: '
|
|
35
|
+
return (h(Host, { key: '19298fbd247fa7ae6360dad0c6b41641fd9d2f5d' }, h("br-checkbox-group", { key: '943b4a1d72ca1034d71fa79d748d4717f9cd7425', label: this.label, selectAllLabel: this.selectAllLabel ?? this.labelDesselecionado, unselectAllLabel: this.unselectAllLabel ?? this.labelSelecionado, indeterminate: this.indeterminate, customId: this.customId, disabled: this.disabled }, h("slot", { key: '8ff436a7e53c1c8d266d0e047013a89307805eec' }))));
|
|
19
36
|
}
|
|
20
37
|
static get is() { return "br-checkgroup"; }
|
|
21
38
|
static get encapsulation() { return "shadow"; }
|
|
@@ -55,7 +72,7 @@ export class Checkgroup {
|
|
|
55
72
|
"name": "deprecated",
|
|
56
73
|
"text": "Use `unselectAllLabel`."
|
|
57
74
|
}],
|
|
58
|
-
"text": ""
|
|
75
|
+
"text": "R\u00F3tulo legado para desmarcar todos."
|
|
59
76
|
},
|
|
60
77
|
"getter": false,
|
|
61
78
|
"setter": false,
|
|
@@ -96,7 +113,7 @@ export class Checkgroup {
|
|
|
96
113
|
"name": "deprecated",
|
|
97
114
|
"text": "Use `selectAllLabel`."
|
|
98
115
|
}],
|
|
99
|
-
"text": ""
|
|
116
|
+
"text": "R\u00F3tulo legado para marcar todos."
|
|
100
117
|
},
|
|
101
118
|
"getter": false,
|
|
102
119
|
"setter": false,
|
|
@@ -160,7 +177,28 @@ export class Checkgroup {
|
|
|
160
177
|
"setter": false,
|
|
161
178
|
"reflect": true,
|
|
162
179
|
"attribute": "custom-id"
|
|
180
|
+
},
|
|
181
|
+
"disabled": {
|
|
182
|
+
"type": "boolean",
|
|
183
|
+
"mutable": false,
|
|
184
|
+
"complexType": {
|
|
185
|
+
"original": "boolean",
|
|
186
|
+
"resolved": "boolean",
|
|
187
|
+
"references": {}
|
|
188
|
+
},
|
|
189
|
+
"required": false,
|
|
190
|
+
"optional": false,
|
|
191
|
+
"docs": {
|
|
192
|
+
"tags": [],
|
|
193
|
+
"text": "Desabilita o controlador e os checkboxes contidos no grupo."
|
|
194
|
+
},
|
|
195
|
+
"getter": false,
|
|
196
|
+
"setter": false,
|
|
197
|
+
"reflect": true,
|
|
198
|
+
"attribute": "disabled",
|
|
199
|
+
"defaultValue": "false"
|
|
163
200
|
}
|
|
164
201
|
};
|
|
165
202
|
}
|
|
203
|
+
static get elementRef() { return "el"; }
|
|
166
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,*::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)}:host{display:block;width:100%}:host([color-mode=dark]){--collapse-color: var(--pure-0, #fff);--collapse-hover: rgb(var(--color-rgb), var(--hover));--collapse-border-color: var(--color-secondary-07, #555)}:host([divider]) .br-collapse{border-bottom:1px solid var(--border-color, var(--color-secondary-04, #e5e5e5))}:host .br-collapse{color:var(--collapse-color, var(--color, inherit));border-bottom:1px solid var(--collapse-border-color, var(--border-color, var(--color-secondary-04, #e5e5e5)))}:host .br-collapse .trigger{display:flex;justify-content:center;align-items:center}:host .br-collapse .trigger:not(:disabled):hover,:host .br-collapse .trigger:not(:disabled):focus-visible{background-image:linear-gradient(var(--collapse-hover, rgb(var(--color-rgb), var(--hover))), var(--collapse-hover, rgb(var(--color-rgb), var(--hover))))}:host .br-collapse .trigger-content{flex:1 1 auto !important}:host .br-collapse .content{transition:height .3s;overflow:hidden}:host .br-collapse br-icon{color:var(--interactive);pointer-events:none}:host details{width:100%}:host details summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;height:48px;outline:none}:host details summary::-webkit-details-marker{display:none}:host details summary:focus-visible{outline:var(--focus-width) var(--focus-style) var(--focus)}:host details.trigger-button summary{width:max-content;min-width:40px;border-radius:var(--surface-border-radius-sm, 4px)}:host details.trigger-text summary{width:max-content;padding-inline:0}:host details.direction-up .content{display:flex;flex-direction:column-reverse}:host details.direction-right,:host details.direction-left{display:flex;align-items:flex-start}:host details.direction-right summary,:host details.direction-left summary{flex:0 0 auto}:host details.direction-right .content,:host details.direction-left .content{flex:1 1 auto;min-width:0}:host details.direction-left{flex-direction:row-reverse}:host .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}
|
|
1
|
+
*,*::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}pre{font-family:monospace;font-size:1em}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,optgroup,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))}.col-sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}}@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))}.col-lg-3{flex-basis:25%;max-width:25%}}@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-out{animation-timing-function:cubic-bezier(0, 0, 0.58, 1)}.ease-in-out{animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fast{animation-duration:var(--duration-fast)}.slow{animation-duration:var(--duration-slow)}.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}fieldset[disabled]{opacity:1}.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)}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)}pre,.pre{background:var(--gray-5);margin:var(--spacing-scale-2x) 0 var(--spacing-scale-4x);padding:var(--spacing-scale-2x)}pre code,.pre code{display:inline;padding:0}*[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)}@media(prefers-reduced-motion: reduce){:host,:host::before,:host::after,:host *,:host *::before,:host *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}}:host-context([data-wbc-reduced-motion=true])::before,:host-context([data-wbc-reduced-motion=true])::after,:host-context([data-wbc-reduced-motion=true]) *,:host-context([data-wbc-reduced-motion=true]) *::before,:host-context([data-wbc-reduced-motion=true]) *::after{animation:none !important;scroll-behavior:auto !important;transition:none !important}:host{display:block;width:100%}:host([color-mode=dark]){--collapse-color: var(--pure-0, #fff);--collapse-hover: rgb(var(--color-rgb), var(--hover));--collapse-border-color: var(--color-secondary-07, #555)}:host([divider]) .br-collapse{border-bottom:1px solid var(--collapse-border-color, var(--border-color, var(--color-secondary-04, #e5e5e5)))}:host .br-collapse{color:var(--collapse-color, var(--color, inherit))}:host .br-collapse .trigger{display:flex;justify-content:center;align-items:center}:host .br-collapse .trigger:not(:disabled):hover,:host .br-collapse .trigger:not(:disabled):focus-visible{background-image:linear-gradient(var(--collapse-hover, rgb(var(--color-rgb), var(--hover))), var(--collapse-hover, rgb(var(--color-rgb), var(--hover))))}:host .br-collapse .trigger-content{flex:1 1 auto !important}:host .br-collapse .content{overflow:hidden;opacity:1}:host .br-collapse br-icon{color:var(--interactive);pointer-events:none}:host details{width:100%}:host details summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;height:48px;outline:none}:host details summary::-webkit-details-marker{display:none}:host details summary:focus-visible{outline:var(--focus-width) var(--focus-style) var(--focus)}:host details[open] .content{animation:none}@media(prefers-reduced-motion: no-preference){:host details[open] .content{animation:collapse-content-open var(--duration-fast, 300ms) var(--animation-ease-out, ease-out) both}}:host details.trigger-button summary{width:max-content;min-width:40px;border-radius:var(--surface-border-radius-sm, 4px)}:host details.trigger-text summary{width:max-content;padding-inline:0}:host details.direction-up .content{display:flex;flex-direction:column-reverse}:host details.direction-right,:host details.direction-left{display:flex;align-items:flex-start}:host details.direction-right summary,:host details.direction-left summary{flex:0 0 auto}:host details.direction-right .content,:host details.direction-left .content{flex:1 1 auto;min-width:0}:host details.direction-left{flex-direction:row-reverse}:host .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}@keyframes collapse-content-open{from{opacity:0}to{opacity:1}}
|
|
@@ -5,11 +5,37 @@
|
|
|
5
5
|
import { Host, h } from "@stencil/core";
|
|
6
6
|
import { redispatchNativeEvent } from "../../shared/utils/event";
|
|
7
7
|
import { generateUniqueId } from "../../shared/utils/id";
|
|
8
|
+
import { resolveAllowedPropValue } from "../../shared/utils/props";
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
+
* O componente `br-collapse` é o controle retrátil do GovBR-DS baseado no elemento semântico HTML5 `<details>`, desenvolvido para permitir que a pessoa usuária expanda ou recolha seções de conteúdo sob demanda.
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
+
* ### Para que serve
|
|
13
|
+
*
|
|
14
|
+
* - **Otimização de espaço e hierarquia:** Reduz a sobrecarga de informação inicial na tela, ocultando blocos secundários até que o usuário decida visualizá-los.
|
|
15
|
+
* - **Estruturação de perguntas e respostas:** Padrão oficial para construção de seções de FAQ (perguntas frequentes) e listas explicativas sanfonadas (accordion).
|
|
16
|
+
* - **Acessibilidade nativa:** Por utilizar internamente os elementos `<details>` e `<summary>`, possui controle total de teclado, estado acessível (`open`) e anúncios para tecnologias assistivas sem exigir scripts adicionais complexos.
|
|
17
|
+
*
|
|
18
|
+
* ### Quando utilizar
|
|
19
|
+
*
|
|
20
|
+
* - **Utilize quando:**
|
|
21
|
+
* - O conteúdo for extenso, dividido em tópicos independentes e a maioria dos usuários só precisa consultar itens específicos.
|
|
22
|
+
* - Houver seções complementares opcionais em um formulário longo.
|
|
23
|
+
* - **Evite e prefira outro componente quando:**
|
|
24
|
+
* - A informação contida for crítica para a tomada de decisão imediata ou segurança da pessoa usuária (ela deve ficar permanentemente visível).
|
|
25
|
+
* - A intenção for alternar entre diferentes visões de uma mesma tela completa (prefira `br-tab`).
|
|
26
|
+
*
|
|
27
|
+
* ### Estrutura e Slots
|
|
28
|
+
*
|
|
29
|
+
* O `br-collapse` organiza o acionamento e a área expansível:
|
|
30
|
+
* - `trigger`: Slot para personalizar o botão/gatilho de expansão (texto, ícones ou componentes de apoio dentro do summary).
|
|
31
|
+
* - `default`: Slot para inserção do conteúdo que é revelado quando o componente é expandido.
|
|
32
|
+
*
|
|
33
|
+
* Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/collapse?tab=designer).
|
|
34
|
+
*
|
|
35
|
+
|
|
36
|
+
* @category Conteúdo, Ações
|
|
12
37
|
* @status stable
|
|
38
|
+
* @see br-list
|
|
13
39
|
* @slot default - Slot para o conteúdo expansível exibido ao abrir o collapse.
|
|
14
40
|
* @slot trigger - Slot para personalizar o acionador (texto, ícones, imagens, etc.).
|
|
15
41
|
*
|
|
@@ -43,11 +69,11 @@ export class Collapse {
|
|
|
43
69
|
*/
|
|
44
70
|
this.accordionGroup = null;
|
|
45
71
|
/**
|
|
46
|
-
*
|
|
72
|
+
* Identificador do ícone exibido quando o conteúdo está oculto. O valor padrão usa o registro SVG local.
|
|
47
73
|
*/
|
|
48
74
|
this.iconToShow = 'fa6-solid:chevron-down';
|
|
49
75
|
/**
|
|
50
|
-
*
|
|
76
|
+
* Identificador do ícone exibido quando o conteúdo está visível. O valor padrão usa o registro SVG local.
|
|
51
77
|
*/
|
|
52
78
|
this.iconToHide = 'fa6-solid:chevron-up';
|
|
53
79
|
/**
|
|
@@ -92,6 +118,18 @@ export class Collapse {
|
|
|
92
118
|
redispatchNativeEvent(this.el, event, 'toggle');
|
|
93
119
|
};
|
|
94
120
|
}
|
|
121
|
+
get effectiveColorMode() {
|
|
122
|
+
return resolveAllowedPropValue(this.el, 'colorMode', this.colorMode, ['light', 'dark'], 'light');
|
|
123
|
+
}
|
|
124
|
+
get effectiveExpansionDirection() {
|
|
125
|
+
return resolveAllowedPropValue(this.el, 'expansionDirection', this.expansionDirection, ['down', 'up', 'right', 'left'], 'down');
|
|
126
|
+
}
|
|
127
|
+
get effectiveIconPosition() {
|
|
128
|
+
return resolveAllowedPropValue(this.el, 'iconPosition', this.iconPosition, ['left', 'right'], 'right');
|
|
129
|
+
}
|
|
130
|
+
get effectiveTriggerVariant() {
|
|
131
|
+
return resolveAllowedPropValue(this.el, 'triggerVariant', this.triggerVariant, ['surface', 'button', 'text'], 'surface');
|
|
132
|
+
}
|
|
95
133
|
/**
|
|
96
134
|
* Remove o listener do <details> ao desmontar o componente.
|
|
97
135
|
*/
|
|
@@ -178,7 +216,9 @@ export class Collapse {
|
|
|
178
216
|
const parent = this.el.parentElement;
|
|
179
217
|
if (!parent)
|
|
180
218
|
return;
|
|
181
|
-
|
|
219
|
+
// Accordion é definido entre irmãos imediatos; uma busca descendente
|
|
220
|
+
// fecharia collapses pertencentes a componentes compostos aninhados.
|
|
221
|
+
const others = Array.from(parent.children).filter((element) => element.tagName.toLowerCase() === 'br-collapse');
|
|
182
222
|
others
|
|
183
223
|
.filter((collapse) => collapse !== this.el && collapse.accordionGroup === this.accordionGroup && collapse.open)
|
|
184
224
|
.forEach((c) => {
|
|
@@ -197,7 +237,7 @@ export class Collapse {
|
|
|
197
237
|
* Renderiza o <details> com acionador e conteúdo expansível.
|
|
198
238
|
*/
|
|
199
239
|
render() {
|
|
200
|
-
return (h(Host, { key: '
|
|
240
|
+
return (h(Host, { key: 'dd6481a2fc99541d1fa1b82ed07c24658a27309f', "color-mode": this.effectiveColorMode }, h("details", { key: 'f33896f5f6698b55f0e39d14a765cdc36c1f12a1', class: `br-collapse direction-${this.effectiveExpansionDirection} trigger-${this.effectiveTriggerVariant}`, open: this.open, onToggle: this.handleCollapse, id: this.customId, part: "details" }, h("summary", { key: '32657bf8b319f0a65d554e9ebaf50c7b927abe86', class: "trigger", part: "trigger", "aria-controls": `content-${this.customId}` }, this.effectiveIconPosition === 'left' && this.renderIcon(), h("div", { key: '6e42e9172d1efa3061906e04994b6ca2e113ea3b', class: "trigger-content", id: `label-${this.customId}` }, h("slot", { key: '4dbdd0ae814c93aa14424c760fb59629e69748cb', name: "trigger" })), this.effectiveIconPosition === 'right' && this.renderIcon()), h("div", { key: 'a4fd788c89a2446ebad6a562ceefed028859ae41', class: "content", id: `content-${this.customId}`, part: "content", "aria-hidden": String(!this.open) }, this.open && this.itemCount > 0 && (h("div", { key: 'd00bd030516cb622e65bbeb86303a64370137074', class: "visually-hidden" }, this.itemCount, " ", this.itemCount === 1 ? 'item' : 'itens', " na lista")), h("slot", { key: '63b5d31064f7f0c9f54f06be1b1142c92d008566', onSlotchange: (event) => this.updateItemCount(event.currentTarget) })))));
|
|
201
241
|
}
|
|
202
242
|
static get is() { return "br-collapse"; }
|
|
203
243
|
static get encapsulation() { return "shadow"; }
|
|
@@ -305,7 +345,7 @@ export class Collapse {
|
|
|
305
345
|
"optional": false,
|
|
306
346
|
"docs": {
|
|
307
347
|
"tags": [],
|
|
308
|
-
"text": "
|
|
348
|
+
"text": "Identificador do \u00EDcone exibido quando o conte\u00FAdo est\u00E1 oculto. O valor padr\u00E3o usa o registro SVG local."
|
|
309
349
|
},
|
|
310
350
|
"getter": false,
|
|
311
351
|
"setter": false,
|
|
@@ -325,7 +365,7 @@ export class Collapse {
|
|
|
325
365
|
"optional": false,
|
|
326
366
|
"docs": {
|
|
327
367
|
"tags": [],
|
|
328
|
-
"text": "
|
|
368
|
+
"text": "Identificador do \u00EDcone exibido quando o conte\u00FAdo est\u00E1 vis\u00EDvel. O valor padr\u00E3o usa o registro SVG local."
|
|
329
369
|
},
|
|
330
370
|
"getter": false,
|
|
331
371
|
"setter": false,
|