@govbr-ds/webcomponents 2.4.0 → 2.5.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 +2 -2
- package/cem/custom-elements.json +371 -199
- package/cem/webcomponents.html-custom-data.json +146 -121
- package/dist/cjs/br-avatar.cjs.entry.js +2 -2
- package/dist/cjs/br-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/br-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/br-button_2.cjs.entry.js +2 -2
- package/dist/cjs/br-card.cjs.entry.js +2 -2
- package/dist/cjs/br-carousel-page.cjs.entry.js +1 -1
- package/dist/cjs/br-carousel.cjs.entry.js +1 -1
- package/dist/cjs/br-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/br-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/br-checkgroup.cjs.entry.js +1 -1
- package/dist/cjs/br-collapse_2.cjs.entry.js +3 -3
- package/dist/cjs/br-cookiebar-cookie.cjs.entry.js +1 -1
- package/dist/cjs/br-cookiebar-group.cjs.entry.js +1 -1
- package/dist/cjs/br-cookiebar-header.cjs.entry.js +1 -1
- package/dist/cjs/br-cookiebar-link.cjs.entry.js +1 -1
- package/dist/cjs/br-cookiebar-note.cjs.entry.js +1 -1
- package/dist/cjs/br-cookiebar.cjs.entry.js +2 -2
- package/dist/cjs/br-crumb.cjs.entry.js +1 -1
- package/dist/cjs/br-date-picker_3.cjs.entry.js +154 -67
- package/dist/cjs/br-datetime-picker.cjs.entry.js +5 -5
- package/dist/cjs/br-divider.cjs.entry.js +2 -2
- package/dist/cjs/br-dropdown_2.cjs.entry.js +40 -16
- package/dist/cjs/br-footer-category.cjs.entry.js +2 -2
- package/dist/cjs/br-footer-item.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-legal.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-logo.cjs.entry.js +1 -1
- package/dist/cjs/br-footer-social.cjs.entry.js +1 -1
- package/dist/cjs/br-footer.cjs.entry.js +3 -3
- package/dist/cjs/br-header-function.cjs.entry.js +1 -1
- package/dist/cjs/br-header-link.cjs.entry.js +1 -1
- package/dist/cjs/br-header-list.cjs.entry.js +1 -1
- package/dist/cjs/br-header-logo.cjs.entry.js +1 -1
- package/dist/cjs/br-header.cjs.entry.js +1 -1
- package/dist/cjs/br-icon.cjs.entry.js +2 -2
- package/dist/cjs/br-input.cjs.entry.js +58 -10
- package/dist/cjs/br-item.cjs.entry.js +2 -2
- package/dist/cjs/br-link.cjs.entry.js +7 -7
- package/dist/cjs/br-loading.cjs.entry.js +1 -1
- package/dist/cjs/br-magic-button.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-header.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-info.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-link.cjs.entry.js +1 -1
- package/dist/cjs/br-menu-logo.cjs.entry.js +1 -1
- package/dist/cjs/br-menu.cjs.entry.js +3 -3
- package/dist/cjs/br-notification-body.cjs.entry.js +1 -1
- package/dist/cjs/br-notification-header.cjs.entry.js +1 -1
- package/dist/cjs/br-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/br-notification.cjs.entry.js +2 -2
- package/dist/cjs/br-pagination.cjs.entry.js +3 -3
- package/dist/cjs/br-radio-group.cjs.entry.js +3 -3
- package/dist/cjs/br-radio.cjs.entry.js +3 -3
- package/dist/cjs/br-scrim.cjs.entry.js +2 -2
- package/dist/cjs/br-select-input_3.cjs.entry.js +39 -16
- package/dist/cjs/br-sign-in.cjs.entry.js +2 -2
- package/dist/cjs/br-skip-link-item.cjs.entry.js +1 -1
- package/dist/cjs/br-skip-link.cjs.entry.js +1 -1
- package/dist/cjs/br-skiplink-item.cjs.entry.js +1 -1
- package/dist/cjs/br-slider.cjs.entry.js +2 -2
- package/dist/cjs/br-step_2.cjs.entry.js +4 -4
- package/dist/cjs/br-switch.cjs.entry.js +3 -3
- package/dist/cjs/br-tab-item.cjs.entry.js +1 -1
- package/dist/cjs/br-tab.cjs.entry.js +3 -3
- package/dist/cjs/br-table-body.cjs.entry.js +1 -1
- package/dist/cjs/br-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header-cell.cjs.entry.js +1 -1
- package/dist/cjs/br-table-header.cjs.entry.js +1 -1
- package/dist/cjs/br-table-row.cjs.entry.js +1 -1
- package/dist/cjs/br-table.cjs.entry.js +1 -1
- package/dist/cjs/br-tag.cjs.entry.js +3 -3
- package/dist/cjs/br-textarea.cjs.entry.js +2 -2
- package/dist/cjs/br-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/br-upload.cjs.entry.js +4 -4
- package/dist/cjs/br-wizard-panel.cjs.entry.js +1 -1
- package/dist/cjs/br-wizard.cjs.entry.js +1 -1
- package/dist/cjs/{datetime-picker-constants-CCeI5iW7.js → datetime-picker-constants-CTf1kVJ1.js} +1 -0
- package/dist/cjs/{iconify-icon-DfODV9bf.js → iconify-icon-LjavbM-D.js} +103 -57
- package/dist/cjs/{index-C-IpVFDH.js → index-Caoez3xb.js} +64 -16
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{isValid-CduHZTFc.js → isValid-DgJ-noPS.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{slot-DAllytTj.js → slot-CjaqqX7y.js} +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/avatar/avatar.js +21 -21
- package/dist/collection/components/breadcrumb/breadcrumb-item/breadcrumb-item.js +4 -12
- package/dist/collection/components/breadcrumb/breadcrumb.js +32 -27
- package/dist/collection/components/breadcrumb/crumb/crumb.js +2 -13
- package/dist/collection/components/button/button.js +21 -21
- package/dist/collection/components/card/card.js +20 -22
- package/dist/collection/components/carousel/carousel-page/carousel-page.js +3 -13
- package/dist/collection/components/carousel/carousel.js +23 -30
- package/dist/collection/components/checkbox/checkbox.js +18 -24
- package/dist/collection/components/checkbox-group/checkbox-group.js +19 -20
- package/dist/collection/components/checkgroup/checkgroup.js +2 -14
- package/dist/collection/components/collapse/collapse.js +25 -21
- package/dist/collection/components/cookiebar/cookiebar-cookie/cookiebar-cookie.js +3 -16
- package/dist/collection/components/cookiebar/cookiebar-group/cookiebar-group.js +3 -16
- package/dist/collection/components/cookiebar/cookiebar-header/cookiebar-header.js +3 -16
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +3 -15
- package/dist/collection/components/cookiebar/cookiebar-note/cookiebar-note.js +3 -14
- package/dist/collection/components/cookiebar/cookiebar-note-group/cookiebar-note-group.js +2 -13
- package/dist/collection/components/cookiebar/cookiebar.js +32 -27
- package/dist/collection/components/datetime-picker/date-picker/date-picker-locale.js +62 -15
- package/dist/collection/components/datetime-picker/date-picker/date-picker.js +120 -71
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +3 -13
- package/dist/collection/components/datetime-picker/datetime-picker.js +23 -27
- package/dist/collection/components/datetime-picker/time-picker/time-picker.js +5 -15
- package/dist/collection/components/divider/divider.js +15 -19
- package/dist/collection/components/dropdown/dropdown.js +22 -21
- package/dist/collection/components/footer/footer-category/footer-category.js +4 -17
- package/dist/collection/components/footer/footer-item/footer-item.js +3 -16
- package/dist/collection/components/footer/footer-legal/footer-legal.js +2 -16
- package/dist/collection/components/footer/footer-logo/footer-logo.js +3 -16
- package/dist/collection/components/footer/footer-social/footer-social.js +3 -15
- package/dist/collection/components/footer/footer.js +25 -29
- package/dist/collection/components/header/header-function/header-function.js +10 -14
- package/dist/collection/components/header/header-link/header-link.js +3 -16
- package/dist/collection/components/header/header-list/header-list.js +3 -16
- package/dist/collection/components/header/header-logo/header-logo.js +3 -16
- package/dist/collection/components/header/header.js +30 -27
- package/dist/collection/components/icon/icon.js +22 -17
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/input/input.js +98 -30
- package/dist/collection/components/item/item.js +18 -22
- package/dist/collection/components/link/link.js +25 -29
- package/dist/collection/components/list/list.js +17 -21
- package/dist/collection/components/loading/loading.js +17 -24
- package/dist/collection/components/magic-button/magic-button.js +13 -20
- package/dist/collection/components/menu/menu-group/menu-group.js +3 -16
- package/dist/collection/components/menu/menu-header/menu-header.js +3 -16
- package/dist/collection/components/menu/menu-info/menu-info.js +2 -15
- package/dist/collection/components/menu/menu-item/menu-item.js +3 -16
- package/dist/collection/components/menu/menu-link/menu-link.js +5 -17
- package/dist/collection/components/menu/menu-list/menu-list.js +2 -15
- package/dist/collection/components/menu/menu-logo/menu-logo.js +2 -15
- package/dist/collection/components/menu/menu-social/menu-social.js +2 -15
- package/dist/collection/components/menu/menu.js +28 -35
- package/dist/collection/components/message/message.js +22 -25
- package/dist/collection/components/modal/modal.js +18 -21
- package/dist/collection/components/notification/notification-body/notification-body.js +3 -13
- package/dist/collection/components/notification/notification-header/notification-header.js +3 -14
- package/dist/collection/components/notification/notification-item/notification-item.js +3 -16
- package/dist/collection/components/notification/notification.js +20 -29
- package/dist/collection/components/pagination/pagination.css +1 -1
- package/dist/collection/components/pagination/pagination.js +15 -23
- package/dist/collection/components/radio/radio.js +17 -20
- package/dist/collection/components/radio-group/radio-group.js +20 -20
- package/dist/collection/components/scrim/scrim.js +14 -17
- package/dist/collection/components/select/select-input/select-input.css +1 -1
- package/dist/collection/components/select/select-input/select-input.js +43 -19
- package/dist/collection/components/select/select-list/select-list.css +1 -1
- package/dist/collection/components/select/select-list/select-list.js +52 -15
- package/dist/collection/components/select/select-option/select-option.js +8 -13
- package/dist/collection/components/select/select.css +1 -1
- package/dist/collection/components/select/select.js +83 -105
- package/dist/collection/components/sign-in/sign-in.js +12 -16
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item-alias.js +8 -4
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +5 -15
- package/dist/collection/components/skip-link/skip-link.js +18 -24
- package/dist/collection/components/slider/slider.js +15 -25
- package/dist/collection/components/step/step-item/step-item.js +5 -15
- package/dist/collection/components/step/step.js +16 -25
- package/dist/collection/components/switch/switch.js +16 -20
- package/dist/collection/components/tab/tab-item/tab-item.js +5 -15
- package/dist/collection/components/tab/tab.js +22 -29
- package/dist/collection/components/table/table-body/table-body.js +3 -13
- package/dist/collection/components/table/table-cell/table-cell.js +3 -12
- package/dist/collection/components/table/table-header/table-header.js +3 -13
- package/dist/collection/components/table/table-header-cell/table-header-cell.js +3 -13
- package/dist/collection/components/table/table-row/table-row.js +3 -13
- package/dist/collection/components/table/table.js +25 -32
- package/dist/collection/components/tag/tag.js +17 -26
- package/dist/collection/components/textarea/textarea.js +14 -22
- package/dist/collection/components/tooltip/tooltip.js +13 -19
- package/dist/collection/components/upload/upload.css +1 -1
- package/dist/collection/components/upload/upload.js +36 -29
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +3 -13
- package/dist/collection/components/wizard/wizard.js +22 -26
- package/dist/collection/pages/components/select/remote-options.js +87 -0
- package/dist/collection/shared/utils/slot.js +1 -1
- package/dist/components/br-avatar.js +1 -1
- package/dist/components/br-breadcrumb-item.js +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-button.js +1 -1
- package/dist/components/br-card.js +1 -1
- package/dist/components/br-carousel-page.js +1 -1
- package/dist/components/br-carousel.js +1 -1
- package/dist/components/br-checkbox-group.js +1 -1
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.js +1 -1
- package/dist/components/br-cookiebar-cookie.js +1 -1
- package/dist/components/br-cookiebar-group.js +1 -1
- package/dist/components/br-cookiebar-header.js +1 -1
- package/dist/components/br-cookiebar-link.js +1 -1
- package/dist/components/br-cookiebar-note-group.js +1 -1
- package/dist/components/br-cookiebar-note.js +1 -1
- package/dist/components/br-cookiebar.js +1 -1
- package/dist/components/br-crumb.js +1 -1
- package/dist/components/br-date-picker.js +1 -1
- package/dist/components/br-datetime-input.js +1 -1
- package/dist/components/br-datetime-picker.js +1 -1
- package/dist/components/br-divider.js +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.js +1 -1
- package/dist/components/br-footer-item.js +1 -1
- package/dist/components/br-footer-legal.js +1 -1
- package/dist/components/br-footer-logo.js +1 -1
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-footer.js +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-link.js +1 -1
- package/dist/components/br-header-list.js +1 -1
- package/dist/components/br-header-logo.js +1 -1
- package/dist/components/br-header.js +1 -1
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-link.js +1 -1
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-loading.js +1 -1
- package/dist/components/br-magic-button.js +1 -1
- package/dist/components/br-menu-group.js +1 -1
- package/dist/components/br-menu-header.js +1 -1
- package/dist/components/br-menu-info.js +1 -1
- package/dist/components/br-menu-item.js +1 -1
- package/dist/components/br-menu-link.js +1 -1
- package/dist/components/br-menu-list.js +1 -1
- package/dist/components/br-menu-logo.js +1 -1
- package/dist/components/br-menu-social.js +1 -1
- package/dist/components/br-menu.js +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-modal.js +1 -1
- package/dist/components/br-notification-body.js +1 -1
- package/dist/components/br-notification-header.js +1 -1
- package/dist/components/br-notification-item.js +1 -1
- package/dist/components/br-notification.js +1 -1
- package/dist/components/br-pagination.js +1 -1
- package/dist/components/br-radio-group.js +1 -1
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-scrim.js +1 -1
- package/dist/components/br-select-input.js +1 -1
- package/dist/components/br-select-list.js +1 -1
- package/dist/components/br-select-option.js +1 -1
- package/dist/components/br-select.js +1 -1
- package/dist/components/br-sign-in.js +1 -1
- package/dist/components/br-skip-link-item.js +1 -1
- package/dist/components/br-skip-link.js +1 -1
- package/dist/components/br-skiplink-item.js +1 -1
- package/dist/components/br-slider.js +1 -1
- package/dist/components/br-step-item.js +1 -1
- package/dist/components/br-step.js +1 -1
- package/dist/components/br-switch.js +1 -1
- package/dist/components/br-tab-item.js +1 -1
- package/dist/components/br-tab.js +1 -1
- package/dist/components/br-table-body.js +1 -1
- package/dist/components/br-table-cell.js +1 -1
- package/dist/components/br-table-header-cell.js +1 -1
- package/dist/components/br-table-header.js +1 -1
- package/dist/components/br-table-row.js +1 -1
- package/dist/components/br-table.js +1 -1
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-textarea.js +1 -1
- package/dist/components/br-time-picker.js +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-wizard-panel.js +1 -1
- package/dist/components/br-wizard.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-jOb1hCPi.js → p-448Z5r2f.js} +1 -1
- package/dist/components/{p-DL6xuxGG.js → p-AhfgJCUp.js} +1 -1
- package/dist/components/{p-BzQFMh9j.js → p-AoNL6BaW.js} +1 -1
- package/dist/components/{p-Devw08cc.js → p-B468MCYC.js} +1 -1
- package/dist/components/{p-BH6QYnAr.js → p-B985Ov_x.js} +1 -1
- package/dist/components/{p-5h-W9_JR.js → p-BOWQIHQA.js} +1 -1
- package/dist/components/{p-Di96UxvH.js → p-BPQrgCRr.js} +1 -1
- package/dist/components/{p-CeNELttN.js → p-BwQT0fOJ.js} +1 -1
- package/dist/components/{p-CjtmJTLO.js → p-CAgbUwsx.js} +1 -1
- package/dist/components/{p-DDu3JV_r.js → p-CFXey8i8.js} +1 -1
- package/dist/components/{p-DsO4F0Cz.js → p-CVz_akHx.js} +1 -1
- package/dist/components/{p-DFWqyfUe.js → p-CW8xwk6J.js} +1 -1
- package/dist/components/p-CYZVdKeO.js +5 -0
- package/dist/components/p-C_DC6oQW.js +16 -0
- package/dist/components/{p-CCPHCJjw.js → p-CeWbZN7V.js} +1 -1
- package/dist/components/p-CyXVsiz9.js +5 -0
- package/dist/components/{p-BFHvuEnN.js → p-DDe0tQEO.js} +1 -1
- package/dist/components/{p-D-3G3Ioq.js → p-DJKZ8ktB.js} +1 -1
- package/dist/components/{p-BicHMcSS.js → p-DRsZ9GNg.js} +1 -1
- package/dist/components/p-DU54cqCf.js +5 -0
- package/dist/components/p-DVJlmlEX.js +5 -0
- package/dist/components/{p-ta-24T1Z.js → p-DcMjwTqu.js} +1 -1
- package/dist/components/p-Dd1qCWAK.js +5 -0
- package/dist/components/{p-rMnkh3Cy.js → p-Dn36Mj2E.js} +1 -1
- package/dist/components/{p-DOX9Uwk1.js → p-DoWy_P8b.js} +1 -1
- package/dist/components/{p-Dp3MsSXu.js → p-HbhTnepI.js} +1 -1
- package/dist/components/{p-CbgKdASU.js → p-JkJjzmGm.js} +1 -1
- package/dist/components/{p-Bvrw9yWR.js → p-Or3FLzbz.js} +1 -1
- package/dist/components/{p-PV731d8s.js → p-SWQlgYWR.js} +1 -1
- package/dist/components/{p-XW6Hp_Jk.js → p-Zb9nyfTY.js} +1 -1
- package/dist/components/{p-OQpiDEK9.js → p-jvKQA6x7.js} +1 -1
- package/dist/components/{p-CBHd0-fF.js → p-pQb-3jFY.js} +1 -1
- package/dist/components/{p-848QkYoM.js → p-qX6sHxOk.js} +1 -1
- package/dist/esm/br-avatar.entry.js +2 -2
- package/dist/esm/br-breadcrumb-item.entry.js +1 -1
- package/dist/esm/br-breadcrumb.entry.js +2 -2
- package/dist/esm/br-button_2.entry.js +2 -2
- package/dist/esm/br-card.entry.js +2 -2
- package/dist/esm/br-carousel-page.entry.js +1 -1
- package/dist/esm/br-carousel.entry.js +1 -1
- package/dist/esm/br-checkbox-group.entry.js +2 -2
- package/dist/esm/br-checkbox.entry.js +3 -3
- package/dist/esm/br-checkgroup.entry.js +1 -1
- package/dist/esm/br-collapse_2.entry.js +3 -3
- package/dist/esm/br-cookiebar-cookie.entry.js +1 -1
- package/dist/esm/br-cookiebar-group.entry.js +1 -1
- package/dist/esm/br-cookiebar-header.entry.js +1 -1
- package/dist/esm/br-cookiebar-link.entry.js +1 -1
- package/dist/esm/br-cookiebar-note.entry.js +1 -1
- package/dist/esm/br-cookiebar.entry.js +2 -2
- package/dist/esm/br-crumb.entry.js +1 -1
- package/dist/esm/br-date-picker_3.entry.js +155 -68
- package/dist/esm/br-datetime-picker.entry.js +5 -5
- package/dist/esm/br-divider.entry.js +2 -2
- package/dist/esm/br-dropdown_2.entry.js +40 -16
- package/dist/esm/br-footer-category.entry.js +2 -2
- package/dist/esm/br-footer-item.entry.js +1 -1
- package/dist/esm/br-footer-legal.entry.js +1 -1
- package/dist/esm/br-footer-logo.entry.js +1 -1
- package/dist/esm/br-footer-social.entry.js +1 -1
- package/dist/esm/br-footer.entry.js +3 -3
- package/dist/esm/br-header-function.entry.js +1 -1
- package/dist/esm/br-header-link.entry.js +1 -1
- package/dist/esm/br-header-list.entry.js +1 -1
- package/dist/esm/br-header-logo.entry.js +1 -1
- package/dist/esm/br-header.entry.js +1 -1
- package/dist/esm/br-icon.entry.js +2 -2
- package/dist/esm/br-input.entry.js +59 -11
- package/dist/esm/br-item.entry.js +2 -2
- package/dist/esm/br-link.entry.js +7 -7
- package/dist/esm/br-loading.entry.js +1 -1
- package/dist/esm/br-magic-button.entry.js +1 -1
- package/dist/esm/br-menu-group.entry.js +1 -1
- package/dist/esm/br-menu-header.entry.js +1 -1
- package/dist/esm/br-menu-info.entry.js +1 -1
- package/dist/esm/br-menu-item.entry.js +1 -1
- package/dist/esm/br-menu-link.entry.js +1 -1
- package/dist/esm/br-menu-logo.entry.js +1 -1
- package/dist/esm/br-menu.entry.js +3 -3
- package/dist/esm/br-notification-body.entry.js +1 -1
- package/dist/esm/br-notification-header.entry.js +1 -1
- package/dist/esm/br-notification-item.entry.js +1 -1
- package/dist/esm/br-notification.entry.js +2 -2
- package/dist/esm/br-pagination.entry.js +3 -3
- package/dist/esm/br-radio-group.entry.js +3 -3
- package/dist/esm/br-radio.entry.js +3 -3
- package/dist/esm/br-scrim.entry.js +2 -2
- package/dist/esm/br-select-input_3.entry.js +39 -16
- package/dist/esm/br-sign-in.entry.js +2 -2
- package/dist/esm/br-skip-link-item.entry.js +1 -1
- package/dist/esm/br-skip-link.entry.js +1 -1
- package/dist/esm/br-skiplink-item.entry.js +1 -1
- package/dist/esm/br-slider.entry.js +2 -2
- package/dist/esm/br-step_2.entry.js +4 -4
- package/dist/esm/br-switch.entry.js +3 -3
- package/dist/esm/br-tab-item.entry.js +1 -1
- package/dist/esm/br-tab.entry.js +3 -3
- package/dist/esm/br-table-body.entry.js +1 -1
- package/dist/esm/br-table-cell.entry.js +1 -1
- package/dist/esm/br-table-header-cell.entry.js +1 -1
- package/dist/esm/br-table-header.entry.js +1 -1
- package/dist/esm/br-table-row.entry.js +1 -1
- package/dist/esm/br-table.entry.js +1 -1
- package/dist/esm/br-tag.entry.js +3 -3
- package/dist/esm/br-textarea.entry.js +2 -2
- package/dist/esm/br-tooltip.entry.js +1 -1
- package/dist/esm/br-upload.entry.js +4 -4
- package/dist/esm/br-wizard-panel.entry.js +1 -1
- package/dist/esm/br-wizard.entry.js +1 -1
- package/dist/esm/{datetime-picker-constants-DDc4sADe.js → datetime-picker-constants-1l4_-FEJ.js} +1 -1
- package/dist/esm/{iconify-icon-D3usVJE2.js → iconify-icon-C_DC6oQW.js} +103 -57
- package/dist/esm/{index-CytVKoHT.js → index-BQRBKuY0.js} +64 -17
- package/dist/esm/index.js +2 -2
- package/dist/esm/{isValid-Bee0Uvqc.js → isValid-wU7S6MI2.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{slot-BIG-yees.js → slot-Bt01zQ7-.js} +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +1452 -1876
- package/dist/hydrate/index.mjs +1452 -1876
- package/dist/types/components/avatar/avatar.d.ts +20 -20
- package/dist/types/components/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +3 -11
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +30 -25
- package/dist/types/components/breadcrumb/crumb/crumb.d.ts +1 -12
- package/dist/types/components/button/button.d.ts +20 -20
- package/dist/types/components/card/card.d.ts +19 -21
- package/dist/types/components/carousel/carousel-page/carousel-page.d.ts +2 -12
- package/dist/types/components/carousel/carousel.d.ts +22 -29
- package/dist/types/components/checkbox/checkbox.d.ts +16 -22
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +17 -18
- package/dist/types/components/checkgroup/checkgroup.d.ts +1 -13
- package/dist/types/components/collapse/collapse.d.ts +24 -20
- package/dist/types/components/cookiebar/cookiebar-cookie/cookiebar-cookie.d.ts +2 -15
- package/dist/types/components/cookiebar/cookiebar-group/cookiebar-group.d.ts +2 -15
- package/dist/types/components/cookiebar/cookiebar-header/cookiebar-header.d.ts +2 -15
- package/dist/types/components/cookiebar/cookiebar-link/cookiebar-link.d.ts +2 -14
- package/dist/types/components/cookiebar/cookiebar-note/cookiebar-note.d.ts +2 -13
- package/dist/types/components/cookiebar/cookiebar-note-group/cookiebar-note-group.d.ts +2 -13
- package/dist/types/components/cookiebar/cookiebar.d.ts +30 -25
- package/dist/types/components/datetime-picker/date-picker/date-picker-locale.d.ts +12 -4
- package/dist/types/components/datetime-picker/date-picker/date-picker.d.ts +57 -11
- package/dist/types/components/datetime-picker/datetime-input/datetime-input.d.ts +2 -12
- package/dist/types/components/datetime-picker/datetime-picker.d.ts +22 -26
- package/dist/types/components/datetime-picker/time-picker/time-picker.d.ts +3 -13
- package/dist/types/components/divider/divider.d.ts +14 -18
- package/dist/types/components/dropdown/dropdown.d.ts +21 -20
- package/dist/types/components/footer/footer-category/footer-category.d.ts +2 -15
- package/dist/types/components/footer/footer-item/footer-item.d.ts +2 -15
- package/dist/types/components/footer/footer-legal/footer-legal.d.ts +1 -15
- package/dist/types/components/footer/footer-logo/footer-logo.d.ts +2 -15
- package/dist/types/components/footer/footer-social/footer-social.d.ts +2 -14
- package/dist/types/components/footer/footer.d.ts +23 -27
- package/dist/types/components/header/header-function/header-function.d.ts +9 -13
- package/dist/types/components/header/header-link/header-link.d.ts +2 -15
- package/dist/types/components/header/header-list/header-list.d.ts +2 -15
- package/dist/types/components/header/header-logo/header-logo.d.ts +2 -15
- package/dist/types/components/header/header.d.ts +29 -26
- package/dist/types/components/icon/icon.d.ts +21 -16
- package/dist/types/components/input/input.d.ts +39 -22
- package/dist/types/components/item/item.d.ts +17 -21
- package/dist/types/components/link/link.d.ts +18 -22
- package/dist/types/components/list/list.d.ts +16 -20
- package/dist/types/components/loading/loading.d.ts +16 -23
- package/dist/types/components/magic-button/magic-button.d.ts +12 -19
- package/dist/types/components/menu/menu-group/menu-group.d.ts +2 -15
- package/dist/types/components/menu/menu-header/menu-header.d.ts +2 -15
- package/dist/types/components/menu/menu-info/menu-info.d.ts +1 -14
- package/dist/types/components/menu/menu-item/menu-item.d.ts +2 -15
- package/dist/types/components/menu/menu-link/menu-link.d.ts +4 -16
- package/dist/types/components/menu/menu-list/menu-list.d.ts +2 -15
- package/dist/types/components/menu/menu-logo/menu-logo.d.ts +1 -14
- package/dist/types/components/menu/menu-social/menu-social.d.ts +2 -15
- package/dist/types/components/menu/menu.d.ts +25 -32
- package/dist/types/components/message/message.d.ts +21 -24
- package/dist/types/components/modal/modal.d.ts +18 -21
- package/dist/types/components/notification/notification-body/notification-body.d.ts +2 -12
- package/dist/types/components/notification/notification-header/notification-header.d.ts +2 -13
- package/dist/types/components/notification/notification-item/notification-item.d.ts +2 -15
- package/dist/types/components/notification/notification.d.ts +18 -27
- package/dist/types/components/pagination/pagination.d.ts +13 -21
- package/dist/types/components/radio/radio.d.ts +15 -18
- package/dist/types/components/radio-group/radio-group.d.ts +18 -18
- package/dist/types/components/scrim/scrim.d.ts +12 -15
- package/dist/types/components/select/select-input/select-input.d.ts +11 -10
- package/dist/types/components/select/select-list/select-list.d.ts +13 -12
- package/dist/types/components/select/select-option/select-option.d.ts +5 -10
- package/dist/types/components/select/select.d.ts +42 -94
- package/dist/types/components/sign-in/sign-in.d.ts +11 -15
- package/dist/types/components/skip-link/skip-link-item/skip-link-item-alias.d.ts +7 -3
- package/dist/types/components/skip-link/skip-link-item/skip-link-item.d.ts +4 -14
- package/dist/types/components/skip-link/skip-link.d.ts +17 -23
- package/dist/types/components/slider/slider.d.ts +14 -24
- package/dist/types/components/step/step-item/step-item.d.ts +2 -12
- package/dist/types/components/step/step.d.ts +15 -24
- package/dist/types/components/switch/switch.d.ts +14 -18
- package/dist/types/components/tab/tab-item/tab-item.d.ts +4 -14
- package/dist/types/components/tab/tab.d.ts +19 -26
- package/dist/types/components/table/table-body/table-body.d.ts +2 -12
- package/dist/types/components/table/table-cell/table-cell.d.ts +2 -11
- package/dist/types/components/table/table-header/table-header.d.ts +2 -12
- package/dist/types/components/table/table-header-cell/table-header-cell.d.ts +2 -12
- package/dist/types/components/table/table-row/table-row.d.ts +2 -12
- package/dist/types/components/table/table.d.ts +24 -31
- package/dist/types/components/tag/tag.d.ts +15 -24
- package/dist/types/components/textarea/textarea.d.ts +13 -21
- package/dist/types/components/tooltip/tooltip.d.ts +12 -18
- package/dist/types/components/upload/upload.d.ts +20 -27
- package/dist/types/components/wizard/wizard-panel/wizard-panel.d.ts +2 -12
- package/dist/types/components/wizard/wizard.d.ts +21 -25
- package/dist/types/components.d.ts +3384 -4947
- package/dist/webcomponents/index.esm.js +1 -1
- package/dist/webcomponents/{p-08ac6f09.entry.js → p-031a2256.entry.js} +1 -1
- package/dist/webcomponents/{p-23a5cfd7.entry.js → p-0602e5b1.entry.js} +1 -1
- package/dist/webcomponents/p-079d5f69.entry.js +5 -0
- package/dist/webcomponents/{p-0fc112fc.entry.js → p-087ed5e7.entry.js} +1 -1
- package/dist/webcomponents/{p-7ee564a1.entry.js → p-0d5a9ebf.entry.js} +1 -1
- package/dist/webcomponents/{p-a038be16.entry.js → p-105b4d06.entry.js} +1 -1
- package/dist/webcomponents/{p-6a293be8.entry.js → p-11d4edc5.entry.js} +1 -1
- package/dist/webcomponents/{p-31a4694a.entry.js → p-12dd22af.entry.js} +1 -1
- package/dist/webcomponents/{p-b07bfdc5.entry.js → p-14aedf0d.entry.js} +1 -1
- package/dist/webcomponents/{p-1ba60d13.entry.js → p-152482f9.entry.js} +1 -1
- package/dist/webcomponents/{p-09c79c1d.entry.js → p-19b4b1b7.entry.js} +1 -1
- package/dist/webcomponents/{p-b0124459.entry.js → p-1cd1126e.entry.js} +1 -1
- package/dist/webcomponents/{p-DDc4sADe.js → p-1l4_-FEJ.js} +1 -1
- package/dist/webcomponents/{p-18cf093a.entry.js → p-21e10074.entry.js} +1 -1
- package/dist/webcomponents/{p-47c490ef.entry.js → p-2271ea84.entry.js} +1 -1
- package/dist/webcomponents/{p-c717c745.entry.js → p-271b1ede.entry.js} +1 -1
- package/dist/webcomponents/{p-b66ab52d.entry.js → p-28f732fc.entry.js} +1 -1
- package/dist/webcomponents/{p-b5d25332.entry.js → p-2971d38a.entry.js} +1 -1
- package/dist/webcomponents/{p-b063c12f.entry.js → p-2ac48875.entry.js} +1 -1
- package/dist/webcomponents/{p-609cf652.entry.js → p-2b1a919c.entry.js} +1 -1
- package/dist/webcomponents/{p-05b459f2.entry.js → p-2da57966.entry.js} +1 -1
- package/dist/webcomponents/{p-eb94199d.entry.js → p-2e81b0b3.entry.js} +1 -1
- package/dist/webcomponents/p-2eececed.entry.js +5 -0
- package/dist/webcomponents/{p-f99d8c9c.entry.js → p-2f904c4a.entry.js} +1 -1
- package/dist/webcomponents/p-32414f1c.entry.js +5 -0
- package/dist/webcomponents/{p-5a7c2031.entry.js → p-324afbce.entry.js} +1 -1
- package/dist/webcomponents/{p-a89b684d.entry.js → p-330ec8ab.entry.js} +1 -1
- package/dist/webcomponents/{p-37914e63.entry.js → p-374f83b1.entry.js} +1 -1
- package/dist/webcomponents/{p-d08b6266.entry.js → p-3926cc91.entry.js} +1 -1
- package/dist/webcomponents/{p-745213f7.entry.js → p-39a7826d.entry.js} +1 -1
- package/dist/webcomponents/{p-8aa6f07c.entry.js → p-3bcc2c58.entry.js} +1 -1
- package/dist/webcomponents/{p-67605757.entry.js → p-3c7ce0e4.entry.js} +1 -1
- package/dist/webcomponents/{p-473561f2.entry.js → p-467842ca.entry.js} +1 -1
- package/dist/webcomponents/p-53550e8c.entry.js +5 -0
- package/dist/webcomponents/p-53e71a8a.entry.js +5 -0
- package/dist/webcomponents/{p-198aa844.entry.js → p-5528b466.entry.js} +1 -1
- package/dist/webcomponents/{p-a32d17cb.entry.js → p-55e0822d.entry.js} +1 -1
- package/dist/webcomponents/{p-01801ac1.entry.js → p-58bacbe1.entry.js} +1 -1
- package/dist/webcomponents/{p-a46f068e.entry.js → p-621f0fa8.entry.js} +1 -1
- package/dist/webcomponents/{p-821341dc.entry.js → p-6514a75d.entry.js} +1 -1
- package/dist/webcomponents/{p-dc23cb2e.entry.js → p-678b43a6.entry.js} +1 -1
- package/dist/webcomponents/p-6b6be415.entry.js +5 -0
- package/dist/webcomponents/{p-ac68355e.entry.js → p-6d58ab4f.entry.js} +1 -1
- package/dist/webcomponents/{p-fdcb54a3.entry.js → p-6ff9b26e.entry.js} +1 -1
- package/dist/webcomponents/{p-e241caf3.entry.js → p-84dfbfdd.entry.js} +1 -1
- package/dist/webcomponents/{p-6f1a4fbe.entry.js → p-85c8d060.entry.js} +1 -1
- package/dist/webcomponents/{p-3b0dd0ff.entry.js → p-913d6f28.entry.js} +1 -1
- package/dist/webcomponents/{p-fed02286.entry.js → p-975ea5c7.entry.js} +1 -1
- package/dist/webcomponents/{p-15022ab7.entry.js → p-992167bc.entry.js} +1 -1
- package/dist/webcomponents/p-C_DC6oQW.js +16 -0
- package/dist/webcomponents/{p-fOJu6uZR.js → p-CpE_G6IZ.js} +1 -1
- package/dist/webcomponents/p-DnwERaeQ.js +5 -0
- package/dist/webcomponents/{p-1bb96641.entry.js → p-a21872bf.entry.js} +1 -1
- package/dist/webcomponents/{p-db309a11.entry.js → p-a9f16a65.entry.js} +1 -1
- package/dist/webcomponents/{p-7fda8b89.entry.js → p-bbcde1ea.entry.js} +1 -1
- package/dist/webcomponents/{p-42b60169.entry.js → p-bbf47e78.entry.js} +1 -1
- package/dist/webcomponents/{p-42c9c6c5.entry.js → p-bf35e506.entry.js} +1 -1
- package/dist/webcomponents/{p-9e0324a7.entry.js → p-c09af3cd.entry.js} +1 -1
- package/dist/webcomponents/{p-794b701b.entry.js → p-c29268b5.entry.js} +1 -1
- package/dist/webcomponents/{p-7352d459.entry.js → p-c3e61c39.entry.js} +1 -1
- package/dist/webcomponents/{p-fb76b1e0.entry.js → p-c6b2545a.entry.js} +1 -1
- package/dist/webcomponents/{p-b55425b7.entry.js → p-c6f2f17b.entry.js} +1 -1
- package/dist/webcomponents/{p-95f3c44a.entry.js → p-cae39e13.entry.js} +1 -1
- package/dist/webcomponents/{p-8116ee93.entry.js → p-cb1e08b1.entry.js} +1 -1
- package/dist/webcomponents/{p-dacb7e2c.entry.js → p-cb690a87.entry.js} +1 -1
- package/dist/webcomponents/{p-8ddf3ce3.entry.js → p-d0be7243.entry.js} +1 -1
- package/dist/webcomponents/{p-3658adcf.entry.js → p-d191c6e3.entry.js} +1 -1
- package/dist/webcomponents/{p-2c8595d3.entry.js → p-d205f3fd.entry.js} +1 -1
- package/dist/webcomponents/{p-4b01c60f.entry.js → p-d3bd2c40.entry.js} +1 -1
- package/dist/webcomponents/{p-af888d13.entry.js → p-dbeea64e.entry.js} +1 -1
- package/dist/webcomponents/{p-d6165aa0.entry.js → p-df475129.entry.js} +1 -1
- package/dist/webcomponents/{p-67774920.entry.js → p-e0ccf189.entry.js} +1 -1
- package/dist/webcomponents/p-e121429a.entry.js +5 -0
- package/dist/webcomponents/{p-96dbb585.entry.js → p-e4b968b5.entry.js} +1 -1
- package/dist/webcomponents/{p-67d62559.entry.js → p-e6c6f305.entry.js} +1 -1
- package/dist/webcomponents/{p-13babfc4.entry.js → p-e8291be2.entry.js} +1 -1
- package/dist/webcomponents/{p-614683d9.entry.js → p-eb5806c7.entry.js} +1 -1
- package/dist/webcomponents/{p-20477061.entry.js → p-ed3fa8ec.entry.js} +1 -1
- package/dist/webcomponents/{p-21feda62.entry.js → p-f9084f16.entry.js} +1 -1
- package/dist/webcomponents/{p-695dbeb0.entry.js → p-fad3aa61.entry.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +1 -1
- package/dist/collection/pages/components/select/remote.js +0 -33
- package/dist/collection/pages/components/select/virtualized.js +0 -13
- package/dist/components/p-BcW8O6h2.js +0 -5
- package/dist/components/p-Bs7iRQTG.js +0 -5
- package/dist/components/p-D3usVJE2.js +0 -16
- package/dist/components/p-DUq7uT2-.js +0 -5
- package/dist/components/p-DuLHFTpa.js +0 -5
- package/dist/components/p-DusornQ0.js +0 -5
- package/dist/webcomponents/p-09817344.entry.js +0 -5
- package/dist/webcomponents/p-172d42c2.entry.js +0 -5
- package/dist/webcomponents/p-9815ab95.entry.js +0 -5
- package/dist/webcomponents/p-CJipT0in.js +0 -5
- package/dist/webcomponents/p-D3usVJE2.js +0 -16
- package/dist/webcomponents/p-b609b464.entry.js +0 -5
- package/dist/webcomponents/p-ce3d689c.entry.js +0 -5
- package/dist/webcomponents/p-e7107869.entry.js +0 -5
- package/dist/webcomponents/p-f8993ae4.entry.js +0 -5
- /package/dist/components/{p-5z6jgH1D.js → p-BNckUhK6.js} +0 -0
- /package/dist/webcomponents/{p-BIG-yees.js → p-Bt01zQ7-.js} +0 -0
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
* Construído por SERPRO
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { Host, h } from "@stencil/core";
|
|
5
|
+
import { Fragment, Host, h } from "@stencil/core";
|
|
6
6
|
import { addDays } from "date-fns/addDays";
|
|
7
7
|
import { addMonths } from "date-fns/addMonths";
|
|
8
|
+
import { addYears } from "date-fns/addYears";
|
|
8
9
|
import { compareAsc } from "date-fns/compareAsc";
|
|
9
10
|
import { eachDayOfInterval } from "date-fns/eachDayOfInterval";
|
|
10
11
|
import { endOfMonth } from "date-fns/endOfMonth";
|
|
11
12
|
import { endOfWeek } from "date-fns/endOfWeek";
|
|
12
13
|
import { format } from "date-fns/format";
|
|
14
|
+
import { getDaysInMonth } from "date-fns/getDaysInMonth";
|
|
13
15
|
import { isAfter } from "date-fns/isAfter";
|
|
14
16
|
import { isBefore } from "date-fns/isBefore";
|
|
15
17
|
import { isSameDay } from "date-fns/isSameDay";
|
|
@@ -24,22 +26,30 @@ import { toDate } from "date-fns/toDate";
|
|
|
24
26
|
import { dispatchNativeFormEvent } from "../../../shared/utils/event";
|
|
25
27
|
import { resolveSsrLocalDate } from "../../../shared/utils/ssr-date";
|
|
26
28
|
import { DATETIME_PICKER_LOCALE, NAVIGATION_ACTION } from "../datetime-picker-constants";
|
|
27
|
-
import { getMonthLabels, getWeekdayLabels, resolveDateFnsLocale } from "./date-picker-locale";
|
|
29
|
+
import { getMonthLabels, getWeekdayFullNames, getWeekdayLabels, resolveDateFnsLocale } from "./date-picker-locale";
|
|
28
30
|
import { normalizeLocale, normalizeWeekStartsOn } from "./date-picker-props-validation";
|
|
31
|
+
/** Formato da chave local de dia usada em `data-date` e nas buscas de datas bloqueadas. */
|
|
32
|
+
const DAY_KEY_FORMAT = 'yyyy-MM-dd';
|
|
29
33
|
/**
|
|
30
|
-
*
|
|
34
|
+
* Calendário usado pelo `br-datetime-picker`. Também pode ser usado sozinho, quando a tela precisa de um calendário sempre visível.
|
|
31
35
|
*
|
|
32
|
-
*
|
|
36
|
+
* Usado sozinho, ele não tem campo de texto nem participa de formulário: a aplicação lê a seleção e cuida da validação.
|
|
33
37
|
*
|
|
34
|
-
*
|
|
38
|
+
* ```html
|
|
39
|
+
* <br-date-picker id="agenda"></br-date-picker>
|
|
40
|
+
* ```
|
|
35
41
|
*
|
|
36
|
-
*
|
|
42
|
+
* ```js
|
|
43
|
+
* const calendario = document.querySelector('#agenda');
|
|
44
|
+
* calendario.addEventListener('change', () => console.log(calendario.value));
|
|
45
|
+
* ```
|
|
37
46
|
*
|
|
38
|
-
*
|
|
47
|
+
* - `value`: data selecionada (`Date`).
|
|
48
|
+
* - `referenceDate`: mês exibido.
|
|
49
|
+
* - `disabledDates`: datas que não podem ser escolhidas.
|
|
50
|
+
* - `selectionMode="range"`: seleção de intervalo, lida em `rangeValue`.
|
|
39
51
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/date-picker?tab=designer).
|
|
52
|
+
* Para mudar o idioma, veja "Idiomas" na documentação do `br-datetime-picker`.
|
|
43
53
|
*
|
|
44
54
|
* @part container - Parte para o container base do calendário.
|
|
45
55
|
* @part header - Cabeçalho do calendário (contendo navegação e seleção de mês/ano).
|
|
@@ -116,6 +126,11 @@ export class DatePicker {
|
|
|
116
126
|
* @internal
|
|
117
127
|
*/
|
|
118
128
|
this.shouldFocusDate = false;
|
|
129
|
+
/**
|
|
130
|
+
* Chaves `yyyy-MM-dd` das datas bloqueadas, para consulta O(1) por célula.
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
this.disabledDateKeysCache = new Set();
|
|
119
134
|
/**
|
|
120
135
|
* Handler de mudança do seletor de mês.
|
|
121
136
|
* @param event - evento de mudança do `<select>`
|
|
@@ -131,8 +146,7 @@ export class DatePicker {
|
|
|
131
146
|
console.warn(`Índice de mês inválido selecionado: ${select.value}`);
|
|
132
147
|
return;
|
|
133
148
|
}
|
|
134
|
-
|
|
135
|
-
this.emitDateStateChange(date);
|
|
149
|
+
this.navigateToMonth(set(this.baseDate, { month: monthIndex, date: 1 }));
|
|
136
150
|
};
|
|
137
151
|
/**
|
|
138
152
|
* Trata cliques nos botões de navegação do calendário.
|
|
@@ -178,11 +192,7 @@ export class DatePicker {
|
|
|
178
192
|
console.warn(`Ano inválido digitado: ${input.value}`);
|
|
179
193
|
return;
|
|
180
194
|
}
|
|
181
|
-
|
|
182
|
-
const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
|
|
183
|
-
? { start: this.rangeStart, end: this.rangeEnd }
|
|
184
|
-
: undefined;
|
|
185
|
-
this.emitDateStateChange(date, this.value, range);
|
|
195
|
+
this.navigateToMonth(set(this.baseDate, { year, month: this.baseDate.getMonth(), date: 1 }));
|
|
186
196
|
};
|
|
187
197
|
/**
|
|
188
198
|
* Trata cliques com um handler compartilhado, lendo a data local da célula.
|
|
@@ -195,7 +205,7 @@ export class DatePicker {
|
|
|
195
205
|
console.warn('Célula de dia clicada sem data-date definido');
|
|
196
206
|
return;
|
|
197
207
|
}
|
|
198
|
-
const date = parse(cell.dataset.date,
|
|
208
|
+
const date = parse(cell.dataset.date, DAY_KEY_FORMAT, this.baseDate);
|
|
199
209
|
if (Number.isNaN(date.getTime())) {
|
|
200
210
|
console.warn(`Data inválida na célula de dia: ${cell.dataset.date}`);
|
|
201
211
|
return;
|
|
@@ -204,7 +214,10 @@ export class DatePicker {
|
|
|
204
214
|
};
|
|
205
215
|
/**
|
|
206
216
|
* Gerencia navegação por teclado dentro da grade de dias.
|
|
207
|
-
* Teclas suportadas: ArrowLeft/Right/Up/Down, PageUp/PageDown,
|
|
217
|
+
* Teclas suportadas: ArrowLeft/Right/Up/Down, PageUp/PageDown (mês), Shift+PageUp/PageDown (ano),
|
|
218
|
+
* Home/End, Enter/Space.
|
|
219
|
+
*
|
|
220
|
+
* Permanece ativo em datas bloqueadas para que o foco não fique preso nelas; somente a seleção é ignorada.
|
|
208
221
|
* @param event - evento de teclado
|
|
209
222
|
* @returns void
|
|
210
223
|
* @internal
|
|
@@ -234,7 +247,7 @@ export class DatePicker {
|
|
|
234
247
|
if (targetEl && targetEl.dataset?.date !== undefined) {
|
|
235
248
|
const dateKey = targetEl.dataset.date;
|
|
236
249
|
event.preventDefault();
|
|
237
|
-
current = parse(dateKey,
|
|
250
|
+
current = parse(dateKey, DAY_KEY_FORMAT, new Date());
|
|
238
251
|
}
|
|
239
252
|
else {
|
|
240
253
|
event.preventDefault();
|
|
@@ -261,10 +274,10 @@ export class DatePicker {
|
|
|
261
274
|
next = addDays(current, 7);
|
|
262
275
|
break;
|
|
263
276
|
case 'PageUp':
|
|
264
|
-
next = addMonths(current, -1);
|
|
277
|
+
next = event.shiftKey ? addYears(current, -1) : addMonths(current, -1);
|
|
265
278
|
break;
|
|
266
279
|
case 'PageDown':
|
|
267
|
-
next = addMonths(current, 1);
|
|
280
|
+
next = event.shiftKey ? addYears(current, 1) : addMonths(current, 1);
|
|
268
281
|
break;
|
|
269
282
|
case 'Home':
|
|
270
283
|
next = startOfWeek(current, { weekStartsOn: this.weekStartsOn });
|
|
@@ -297,10 +310,12 @@ export class DatePicker {
|
|
|
297
310
|
/**
|
|
298
311
|
* Observador para a prop `value` — atualiza `focusedDate` quando a seleção externa muda.
|
|
299
312
|
* @param {Date | null} newValue - novo valor de seleção (ou `null`)
|
|
313
|
+
* @param {Date | null} oldValue - valor anterior da seleção
|
|
300
314
|
* @internal
|
|
301
315
|
*/
|
|
302
|
-
handleValueChange(newValue) {
|
|
303
|
-
|
|
316
|
+
handleValueChange(newValue, oldValue) {
|
|
317
|
+
// Reatribuições com o mesmo instante (ex.: navegação entre meses) não devem mover o foco.
|
|
318
|
+
if (newValue !== null && newValue.getTime() !== oldValue?.getTime()) {
|
|
304
319
|
this.focusedDate = toDate(newValue);
|
|
305
320
|
}
|
|
306
321
|
}
|
|
@@ -341,7 +356,7 @@ export class DatePicker {
|
|
|
341
356
|
return;
|
|
342
357
|
this.shouldFocusDate = false;
|
|
343
358
|
const normalizedDate = this.getNormalizedFocusedDate();
|
|
344
|
-
const dateKey = format(normalizedDate,
|
|
359
|
+
const dateKey = format(normalizedDate, DAY_KEY_FORMAT);
|
|
345
360
|
const cell = this.el.shadowRoot?.querySelector(`[data-date="${dateKey}"]`);
|
|
346
361
|
cell?.focus();
|
|
347
362
|
}
|
|
@@ -461,11 +476,7 @@ export class DatePicker {
|
|
|
461
476
|
if (this.disabled) {
|
|
462
477
|
return;
|
|
463
478
|
}
|
|
464
|
-
|
|
465
|
-
const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
|
|
466
|
-
? { start: this.rangeStart, end: this.rangeEnd }
|
|
467
|
-
: undefined;
|
|
468
|
-
this.emitDateStateChange(date, this.value, range);
|
|
479
|
+
this.navigateToMonth(set(subMonths(this.baseDate, 1), { date: 1 }));
|
|
469
480
|
}
|
|
470
481
|
/**
|
|
471
482
|
* Incrementa o mês exibido e preserva seleção/intervalo quando aplicável.
|
|
@@ -475,11 +486,28 @@ export class DatePicker {
|
|
|
475
486
|
if (this.disabled) {
|
|
476
487
|
return;
|
|
477
488
|
}
|
|
478
|
-
|
|
489
|
+
this.navigateToMonth(set(addMonths(this.baseDate, 1), { date: 1 }));
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Exibe o mês informado preservando a seleção, o intervalo completo e o dia em foco.
|
|
493
|
+
*
|
|
494
|
+
* O foco vai para a data selecionada quando ela pertence ao novo mês; caso
|
|
495
|
+
* contrário, mantém o mesmo dia do mês, limitado ao último dia disponível
|
|
496
|
+
* (ex.: 31/01 → 28/02).
|
|
497
|
+
*
|
|
498
|
+
* @param monthDate - primeiro dia do mês de destino
|
|
499
|
+
* @internal
|
|
500
|
+
*/
|
|
501
|
+
navigateToMonth(monthDate) {
|
|
502
|
+
const value = this.value;
|
|
503
|
+
this.focusedDate =
|
|
504
|
+
value !== null && isSameMonth(value, monthDate)
|
|
505
|
+
? value
|
|
506
|
+
: set(monthDate, { date: Math.min(this.focusedDate.getDate(), getDaysInMonth(monthDate)) });
|
|
479
507
|
const range = this.selectionMode === 'range' && this.rangeStart !== null && this.rangeEnd !== null
|
|
480
508
|
? { start: this.rangeStart, end: this.rangeEnd }
|
|
481
509
|
: undefined;
|
|
482
|
-
this.emitDateStateChange(
|
|
510
|
+
this.emitDateStateChange(monthDate, value, range);
|
|
483
511
|
}
|
|
484
512
|
/**
|
|
485
513
|
* Verifica se uma data está indisponível para seleção.
|
|
@@ -488,7 +516,22 @@ export class DatePicker {
|
|
|
488
516
|
* @internal
|
|
489
517
|
*/
|
|
490
518
|
isDateDisabled(date) {
|
|
491
|
-
return this.
|
|
519
|
+
return this.disabledDateKeys.has(format(date, DAY_KEY_FORMAT));
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Chaves locais das datas bloqueadas, recalculadas somente quando `disabledDates` é substituída.
|
|
523
|
+
* Entradas inválidas são ignoradas.
|
|
524
|
+
* @internal
|
|
525
|
+
*/
|
|
526
|
+
get disabledDateKeys() {
|
|
527
|
+
if (this.disabledDateKeysSource !== this.disabledDates) {
|
|
528
|
+
this.disabledDateKeysSource = this.disabledDates;
|
|
529
|
+
this.disabledDateKeysCache = new Set((this.disabledDates ?? [])
|
|
530
|
+
.map((disabledDate) => toDate(disabledDate))
|
|
531
|
+
.filter((disabledDate) => !Number.isNaN(disabledDate.getTime()))
|
|
532
|
+
.map((disabledDate) => format(disabledDate, DAY_KEY_FORMAT)));
|
|
533
|
+
}
|
|
534
|
+
return this.disabledDateKeysCache;
|
|
492
535
|
}
|
|
493
536
|
/**
|
|
494
537
|
* Data base usada para todos os cálculos de calendário.
|
|
@@ -510,25 +553,19 @@ export class DatePicker {
|
|
|
510
553
|
/**
|
|
511
554
|
* Constrói o rótulo acessível da célula de dia, incluindo estado (selecionado/início/fim).
|
|
512
555
|
* @param date - dia representado pela célula
|
|
556
|
+
* @param state - estado já calculado da célula
|
|
513
557
|
* @returns string para `aria-label`
|
|
514
558
|
* @internal
|
|
515
559
|
*/
|
|
516
|
-
getDayCellAriaLabel(date) {
|
|
560
|
+
getDayCellAriaLabel(date, state) {
|
|
517
561
|
const fullDate = format(date, "d 'de' MMMM 'de' yyyy", { locale: this.dateFnsLocale });
|
|
518
|
-
|
|
519
|
-
const isRangeStart = this.selectionMode === 'range' && this.rangeStart !== null && isSameDay(date, this.rangeStart);
|
|
520
|
-
const isRangeEnd = this.selectionMode === 'range' && this.rangeEnd !== null && isSameDay(date, this.rangeEnd);
|
|
521
|
-
const isBetween = this.selectionMode === 'range' &&
|
|
522
|
-
this.rangeStart !== null &&
|
|
523
|
-
this.rangeEnd !== null &&
|
|
524
|
-
this.isDateBetweenRange(date, this.rangeStart, this.rangeEnd);
|
|
525
|
-
if (isSelected)
|
|
562
|
+
if (state.isSelected)
|
|
526
563
|
return `${fullDate}, selecionado`;
|
|
527
|
-
if (isRangeStart)
|
|
564
|
+
if (state.isRangeStart)
|
|
528
565
|
return `${fullDate}, início do intervalo`;
|
|
529
|
-
if (isRangeEnd)
|
|
566
|
+
if (state.isRangeEnd)
|
|
530
567
|
return `${fullDate}, fim do intervalo`;
|
|
531
|
-
if (
|
|
568
|
+
if (state.isInRange)
|
|
532
569
|
return `${fullDate}, no intervalo selecionado`;
|
|
533
570
|
return fullDate;
|
|
534
571
|
}
|
|
@@ -540,28 +577,41 @@ export class DatePicker {
|
|
|
540
577
|
return resolveDateFnsLocale(this.locale);
|
|
541
578
|
}
|
|
542
579
|
/**
|
|
543
|
-
* Calcula o
|
|
580
|
+
* Calcula uma única vez o estado de seleção da célula, compartilhado por classes, ARIA e foco.
|
|
544
581
|
* @param date - dia da grade
|
|
545
582
|
* @param today - instante atual compartilhado pela renderização da grade
|
|
583
|
+
* @returns estado da célula
|
|
584
|
+
* @internal
|
|
585
|
+
*/
|
|
586
|
+
getDayCellState(date, today) {
|
|
587
|
+
const isRange = this.selectionMode === 'range';
|
|
588
|
+
const { value, rangeStart, rangeEnd } = this;
|
|
589
|
+
return {
|
|
590
|
+
isToday: isSameDay(date, today),
|
|
591
|
+
isOutsideMonth: !isSameMonth(date, this.baseDate),
|
|
592
|
+
isSelected: !isRange && value !== null && isSameDay(date, value),
|
|
593
|
+
isRangeStart: isRange && rangeStart !== null && isSameDay(date, rangeStart),
|
|
594
|
+
isRangeEnd: isRange && rangeEnd !== null && isSameDay(date, rangeEnd),
|
|
595
|
+
isInRange: isRange && rangeStart !== null && rangeEnd !== null && this.isDateBetweenRange(date, rangeStart, rangeEnd),
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Calcula o mapa de classes CSS da célula do dia.
|
|
600
|
+
* @param state - estado já calculado da célula
|
|
601
|
+
* @param disabled - indica se a célula está bloqueada
|
|
546
602
|
* @returns mapa de classes booleanas
|
|
547
603
|
* @internal
|
|
548
604
|
*/
|
|
549
|
-
getDayCssClasses(
|
|
550
|
-
const selected = this.value;
|
|
551
|
-
const rangeStart = this.rangeStart;
|
|
552
|
-
const rangeEnd = this.rangeEnd;
|
|
553
|
-
const hasRange = rangeStart !== null && rangeEnd !== null;
|
|
554
|
-
const isRangeStart = rangeStart !== null && isSameDay(date, rangeStart);
|
|
555
|
-
const isRangeEnd = rangeEnd !== null && isSameDay(date, rangeEnd);
|
|
556
|
-
const isBetweenRange = hasRange && this.isDateBetweenRange(date, rangeStart, rangeEnd);
|
|
605
|
+
getDayCssClasses(state, disabled) {
|
|
557
606
|
return {
|
|
558
607
|
day: true,
|
|
559
|
-
'outside-month':
|
|
560
|
-
today:
|
|
561
|
-
selected:
|
|
562
|
-
'range-start':
|
|
563
|
-
'range-end':
|
|
564
|
-
'in-range':
|
|
608
|
+
'outside-month': state.isOutsideMonth,
|
|
609
|
+
today: state.isToday,
|
|
610
|
+
selected: state.isSelected,
|
|
611
|
+
'range-start': state.isRangeStart,
|
|
612
|
+
'range-end': state.isRangeEnd,
|
|
613
|
+
'in-range': state.isInRange,
|
|
614
|
+
disabled,
|
|
565
615
|
};
|
|
566
616
|
}
|
|
567
617
|
/**
|
|
@@ -705,7 +755,7 @@ export class DatePicker {
|
|
|
705
755
|
*/
|
|
706
756
|
renderCalendar() {
|
|
707
757
|
const monthLabel = format(this.baseDate, "MMMM 'de' yyyy", { locale: this.dateFnsLocale });
|
|
708
|
-
return (h("div", { class: "calendar", role: "grid", "aria-label": `Calendário de ${monthLabel}`, part: "calendar" }, this.renderWeekdays(), this.renderMonthGrid()));
|
|
758
|
+
return (h(Fragment, null, h("div", { class: "visually-hidden", "aria-live": "polite" }, monthLabel), h("div", { class: "calendar", role: "grid", "aria-label": `Calendário de ${monthLabel}`, part: "calendar" }, this.renderWeekdays(), this.renderMonthGrid())));
|
|
709
759
|
}
|
|
710
760
|
/**
|
|
711
761
|
* Renderiza os rótulos dos dias da semana.
|
|
@@ -714,7 +764,8 @@ export class DatePicker {
|
|
|
714
764
|
*/
|
|
715
765
|
renderWeekdays() {
|
|
716
766
|
const labels = this.getWeekdayLabels();
|
|
717
|
-
|
|
767
|
+
const fullNames = getWeekdayFullNames(this.locale, this.weekStartsOn);
|
|
768
|
+
return (h("div", { class: "weekdays", role: "row", tabIndex: -1, part: "weekdays" }, labels.map((label, index) => (h("div", { key: `weekday-${index}`, class: "weekday", role: "columnheader", tabIndex: -1, "aria-label": fullNames[index], part: "weekday" }, label)))));
|
|
718
769
|
}
|
|
719
770
|
/**
|
|
720
771
|
* Renderiza a grade de dias do mês atual.
|
|
@@ -727,7 +778,7 @@ export class DatePicker {
|
|
|
727
778
|
const normalizedFocusedDate = this.getNormalizedFocusedDate(interval);
|
|
728
779
|
const today = new Date();
|
|
729
780
|
const weeks = Array.from({ length: Math.ceil(dates.length / 7) }, (_, index) => dates.slice(index * 7, index * 7 + 7));
|
|
730
|
-
return (h("div", { class: "monthdays", role: "rowgroup", part: "grid" }, weeks.map((week) => (h("div", { key: `week-${format(week[0],
|
|
781
|
+
return (h("div", { class: "monthdays", role: "rowgroup", part: "grid" }, weeks.map((week) => (h("div", { key: `week-${format(week[0], DAY_KEY_FORMAT)}`, class: "week", role: "row", tabIndex: -1 }, week.map((date) => this.renderDayCell(date, normalizedFocusedDate, today)))))));
|
|
731
782
|
}
|
|
732
783
|
/**
|
|
733
784
|
* Renderiza uma célula de dia com estado visual apropriado.
|
|
@@ -738,17 +789,15 @@ export class DatePicker {
|
|
|
738
789
|
* @internal
|
|
739
790
|
*/
|
|
740
791
|
renderDayCell(date, normalizedFocusedDate, today) {
|
|
741
|
-
const dateKey = format(date,
|
|
742
|
-
const disabled = this.disabled || this.
|
|
743
|
-
const
|
|
744
|
-
const
|
|
745
|
-
const isRangeEnd = this.selectionMode === 'range' && this.rangeEnd !== null && isSameDay(date, this.rangeEnd);
|
|
746
|
-
const isActiveDay = isSelected || isRangeStart || isRangeEnd;
|
|
792
|
+
const dateKey = format(date, DAY_KEY_FORMAT);
|
|
793
|
+
const disabled = this.disabled || this.disabledDateKeys.has(dateKey);
|
|
794
|
+
const state = this.getDayCellState(date, today);
|
|
795
|
+
const isActiveDay = state.isSelected || state.isRangeStart || state.isRangeEnd;
|
|
747
796
|
const isFocused = isSameDay(date, normalizedFocusedDate);
|
|
748
|
-
return (h("div", { key: dateKey, role: "gridcell", tabIndex: this.disabled ? undefined : isFocused ? 0 : -1, "data-date": dateKey, class:
|
|
797
|
+
return (h("div", { key: dateKey, role: "gridcell", tabIndex: this.disabled ? undefined : isFocused ? 0 : -1, "data-date": dateKey, class: this.getDayCssClasses(state, disabled), onClick: disabled ? undefined : this.handleDayCellClick, onKeyDown: this.handleGridKeydown, "aria-label": this.getDayCellAriaLabel(date, state), "aria-selected": isActiveDay ? 'true' : 'false', "aria-current": state.isToday ? 'date' : null, "aria-disabled": disabled ? 'true' : null, part: "day" }, this.getDayWithLeadingZero(date)));
|
|
749
798
|
}
|
|
750
799
|
render() {
|
|
751
|
-
return (h(Host, { key: '
|
|
800
|
+
return (h(Host, { key: 'd909c9c84061f6b456a0350e2ab3fe6e50cc5d83' }, h("div", { key: 'aba7fc5f0b7bce2a9aa2d95bae9897f138dd8146', class: "br-date-picker", part: "container" }, this.renderCalendarHeader(), this.renderCalendar())));
|
|
752
801
|
}
|
|
753
802
|
static get is() { return "br-date-picker"; }
|
|
754
803
|
static get encapsulation() { return "shadow"; }
|
|
@@ -17,19 +17,9 @@ import { DATETIME_RANGE_ORDER_MESSAGE } from "../datetime-picker-constants";
|
|
|
17
17
|
import { INPUT_FORMAT_CONFIG } from "./datetime-input-constants";
|
|
18
18
|
import { normalizeDatetimeInputMode, normalizeDatetimeInputReferenceDate, normalizeDatetimeInputValue, } from "./datetime-input-props-validation";
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Campo de texto com máscara usado pelo `br-datetime-picker`. Interpreta a data ou a hora digitada e abre o calendário pelo botão do campo.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* Exibe e permite editar a seleção única ou os limites de um intervalo nos modos `date`, `time` e `datetime`. Comunica alterações por `dateStateChange`, informa a validação local por `inputValidationChange` e solicita a abertura ou o fechamento do painel por `togglePicker`.
|
|
25
|
-
*
|
|
26
|
-
* ### Regra de uso e relacionamento
|
|
27
|
-
*
|
|
28
|
-
* O `br-datetime-picker` instancia este campo internamente e fornece valores e configurações por propriedades. O pai coordena a seleção com o calendário e os controles de horário; o campo não abre esses seletores por conta própria nem deve ser fornecido em slot.
|
|
29
|
-
*
|
|
30
|
-
* Prefira o `br-datetime-picker` para o controle completo. Use o campo isoladamente apenas em composições personalizadas nas quais a aplicação assuma a sincronização de estado, o tratamento dos eventos e a integração com formulários. Este subcomponente não possui a associação nativa ao formulário do orquestrador.
|
|
31
|
-
*
|
|
32
|
-
* Consulte também as [diretrizes de design do GovBR](https://www.gov.br/ds/components/datetime?tab=designer).
|
|
22
|
+
* É criado pelo `br-datetime-picker`; não é preciso declará-lo. Para um campo de data em formulário, use o `br-datetime-picker`.
|
|
33
23
|
*
|
|
34
24
|
* @see https://www.gov.br/ds/components/datetime?tab=designer
|
|
35
25
|
* @part container - Container do campo.
|
|
@@ -721,7 +711,7 @@ export class DatetimeInput {
|
|
|
721
711
|
* Renderização principal do componente.
|
|
722
712
|
*/
|
|
723
713
|
render() {
|
|
724
|
-
return (h(Host, { key: '
|
|
714
|
+
return (h(Host, { key: 'dd5b4fa7df2b33edc9c262b4d7cf0d161ae195b8' }, h("div", { key: '83035393364d795eeb46f7a9f03309e33d53aa42', class: this.getCssClassMap(), part: "container" }, this.renderInputField())));
|
|
725
715
|
}
|
|
726
716
|
static get is() { return "br-datetime-input"; }
|
|
727
717
|
static get encapsulation() { return "shadow"; }
|
|
@@ -17,42 +17,38 @@ import { DATETIME_PICKER_LOCALE, DATETIME_PICKER_MODE, DATETIME_RANGE_ORDER_MESS
|
|
|
17
17
|
import { hasDatetimePickerMissingValue, parseDatetimePickerSerializedRange, parseDatetimePickerSerializedValue, serializeDatetimePickerFormValue, } from "./datetime-picker-form-associated";
|
|
18
18
|
import { normalizeDatetimePickerDisabledDates, normalizeDatetimePickerInitialMoment, normalizeDatetimePickerMode, normalizeDatetimePickerSelectionMode, normalizeDatetimePickerWeekStartsOn, } from "./datetime-picker-props-validation";
|
|
19
19
|
/**
|
|
20
|
-
* O `br-datetime-picker` é
|
|
20
|
+
* O `br-datetime-picker` é um campo para informar data, hora ou data e hora. A pessoa pode digitar ou escolher no calendário e nos controles de horário.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* Escolha o tipo em `mode`: `date`, `time` ou `datetime`. Para início e fim, use `selection-mode="range"`.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
* -
|
|
26
|
-
* - Centraliza restrições de seleção, validação e submissão do valor por meio de `formAssociated`.
|
|
24
|
+
* ```html
|
|
25
|
+
* <br-datetime-picker mode="date" name="nascimento" required></br-datetime-picker>
|
|
27
26
|
*
|
|
28
|
-
*
|
|
27
|
+
* <br-datetime-picker mode="date" selection-mode="range" name="periodo"></br-datetime-picker>
|
|
28
|
+
* ```
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
* - Utilize para períodos com início e fim, inclusive com horários nos modos `time` e `datetime`.
|
|
32
|
-
* - Evite quando precisar apenas apresentar uma data: prefira texto formatado.
|
|
33
|
-
* - Para um calendário permanentemente visível sem o campo textual, considere `br-date-picker`; a aplicação assume a integração com o restante do formulário.
|
|
34
|
-
* - A seleção não oferece uma coleção de datas independentes: use `single` para um valor ou `range` para um intervalo.
|
|
30
|
+
* ### Ler o valor
|
|
35
31
|
*
|
|
36
|
-
*
|
|
32
|
+
* | Onde | Formato |
|
|
33
|
+
* | --- | --- |
|
|
34
|
+
* | `value` | `Date` (ou `null`) |
|
|
35
|
+
* | `rangeValue` | `{ start, end }` com `Date` |
|
|
36
|
+
* | `serialized-value` e envio do formulário | `2026-05-20` (data), `14:30` (hora), `2026-05-20T14:30:00-03:00` (data e hora), `início/fim` (intervalo) |
|
|
37
37
|
*
|
|
38
|
-
*
|
|
39
|
-
* | --- | --- | --- |
|
|
40
|
-
* | `br-datetime-picker` | Orquestrador do valor consolidado, validação, formulário e abertura do painel. | Declare este controle no template para obter a composição completa. |
|
|
41
|
-
* | `br-datetime-input` | Campo textual com máscara, interpretação da entrada e ação de abertura do painel. | Instanciado internamente pelo pai; não deve ser fornecido em slot. |
|
|
42
|
-
* | `br-date-picker` | Calendário para navegação e seleção de data única ou intervalo. | Criado pelo pai nos modos `date` e `datetime`; pode ser usado isoladamente como calendário embutido. |
|
|
43
|
-
* | `br-time-picker` | Controles de hora e minuto. | Criado pelo pai nos modos `time` e `datetime`, com uma instância por limite quando a seleção é `range`. |
|
|
38
|
+
* Atribua valores do tipo `Date` pelo JavaScript (`picker.value = new Date()`), não por atributo. Para restringir datas, use `min`, `max` e `disabled-dates`.
|
|
44
39
|
*
|
|
45
|
-
*
|
|
40
|
+
* ### Quando usar
|
|
46
41
|
*
|
|
47
|
-
*
|
|
42
|
+
* - Formulários que pedem uma data, um horário ou um período.
|
|
48
43
|
*
|
|
49
|
-
*
|
|
44
|
+
* ### Quando evitar
|
|
50
45
|
*
|
|
51
|
-
*
|
|
46
|
+
* - Para só exibir uma data: use texto formatado.
|
|
47
|
+
* - Para escolher várias datas soltas: o componente aceita uma data ou um intervalo.
|
|
52
48
|
*
|
|
53
|
-
* O
|
|
49
|
+
* O calendário (`br-date-picker`), os controles de horário (`br-time-picker`) e o campo de texto (`br-datetime-input`) são criados pelo próprio componente; não é preciso declará-los.
|
|
54
50
|
*
|
|
55
|
-
*
|
|
51
|
+
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/datetimepicker?tab=designer).
|
|
56
52
|
*
|
|
57
53
|
* @category Formulários
|
|
58
54
|
* @status stable
|
|
@@ -1082,7 +1078,7 @@ export class DatetimePicker {
|
|
|
1082
1078
|
}
|
|
1083
1079
|
this.restoreSingleStateFromSerialized(serializedValue);
|
|
1084
1080
|
}
|
|
1085
|
-
/** Atualiza os nomes
|
|
1081
|
+
/** Atualiza os nomes padrão sem emitir eventos adicionais ou criar ciclos de watchers. */
|
|
1086
1082
|
syncCanonicalValues() {
|
|
1087
1083
|
const nextSerializedValue = this.getSerializedValue();
|
|
1088
1084
|
const nextValueAsDate = this.cloneDate(this.value);
|
|
@@ -1494,7 +1490,7 @@ export class DatetimePicker {
|
|
|
1494
1490
|
this.inputValidationMessage ||
|
|
1495
1491
|
this.validatorMessage ||
|
|
1496
1492
|
(this.inputValidationPending ? '' : this.getRangeOrderValidationMessage());
|
|
1497
|
-
return (h(Host, { key: '
|
|
1493
|
+
return (h(Host, { key: '84fb00b49ddc94c38ccb60d6473008ef6f966c0a', onKeyDown: this.handlePickerKeydown, "aria-busy": this.isValidating ? 'true' : null, "aria-describedby": this.hasFeedbackSlot || validationMessage ? this.feedbackId : null, "aria-errormessage": validationMessage || this.hasFeedbackSlot ? this.feedbackId : null }, h("div", { key: '4c16fee0aa4a44ceb5b4097a3189ab9a427f00a3', class: this.getCssClassMap(), part: "container" }, this.renderInputField(), this.renderPickerContent()), h("div", { key: '1906aed19809ab4a5da12bef5d5a71fbe807be1b', id: this.feedbackId, part: "feedback", hidden: !this.hasFeedbackSlot && !validationMessage }, h("slot", { key: 'b3544c63edfcaf84f48f91e4105874ff7ebe4b01', name: "feedback", onSlotchange: (event) => (this.hasFeedbackSlot = hasAssignedSlotContent(event.currentTarget)) }), !this.hasFeedbackSlot && validationMessage ? (h("br-message", { state: "danger", "attr:message": validationMessage, feedback: true })) : null)));
|
|
1498
1494
|
}
|
|
1499
1495
|
static get is() { return "br-datetime-picker"; }
|
|
1500
1496
|
static get encapsulation() { return "shadow"; }
|
|
@@ -2053,7 +2049,7 @@ export class DatetimePicker {
|
|
|
2053
2049
|
"name": "type",
|
|
2054
2050
|
"text": "{CustomEvent<DatetimePickerChangeDetail>}"
|
|
2055
2051
|
}],
|
|
2056
|
-
"text": "Evento
|
|
2052
|
+
"text": "Evento emitido quando a sele\u00E7\u00E3o muda.\n\nPayload (`DatetimePickerChangeDetail`):\n- `mode`: DatetimePickerMode \u2014 modo atual do componente (`date` | `time` | `datetime`).\n- `selectionMode`: DatetimePickerSelectionMode \u2014 `single` ou `range`.\n- `value`: Date | null | DatetimePickerDateRange \u2014 sele\u00E7\u00E3o atual (tipo depende de `selectionMode`).\n- `serializedValue`: string | undefined \u2014 representa\u00E7\u00E3o serializada para integra\u00E7\u00E3o com formul\u00E1rios."
|
|
2057
2053
|
},
|
|
2058
2054
|
"complexType": {
|
|
2059
2055
|
"original": "DatetimePickerChangeDetail",
|
|
@@ -16,19 +16,9 @@ import { resolveSsrLocalDate } from "../../../shared/utils/ssr-date";
|
|
|
16
16
|
import { NAVIGATION_ACTION } from "../datetime-picker-constants";
|
|
17
17
|
import { INPUT_TIME_TYPE } from "./time-picker-constants";
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Controles de hora e minuto usados pelo `br-datetime-picker`. Em um intervalo, o componente cria um controle para o início e outro para o fim.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* Oferece campos textuais e botões de incremento e decremento para hora e minuto. Usa uma data de referência e comunica alterações por `dateStateChange`; não coordena diretamente o calendário nem o campo textual principal.
|
|
24
|
-
*
|
|
25
|
-
* ### Regra de uso e relacionamento
|
|
26
|
-
*
|
|
27
|
-
* O `br-datetime-picker` instancia e sincroniza este seletor nos modos `time` e `datetime`. Na seleção de intervalo, o pai cria dois seletores, um para o início e outro para o fim, e consolida os respectivos valores. Não forneça seletores de horário em slots do pai.
|
|
28
|
-
*
|
|
29
|
-
* Prefira o orquestrador para um controle completo de horário com campo textual e formulário. Use diretamente apenas quando precisar dos controles de hora e minuto em uma composição personalizada e assumir a sincronização de estado, a validação e a integração com formulários. O uso isolado não herda a associação nativa ao formulário do pai.
|
|
30
|
-
*
|
|
31
|
-
* Consulte também as [diretrizes de design do GovBR](https://www.gov.br/ds/components/time-picker?tab=designer).
|
|
21
|
+
* Para um campo de horário em formulário, use `<br-datetime-picker mode="time">`. Usado sozinho, ele não participa de formulário: leia o horário em `value` e trate a validação na aplicação.
|
|
32
22
|
*
|
|
33
23
|
* @part container - Container base do seletor de horários.
|
|
34
24
|
* @part timer - Grupo que contém os campos de hora e minuto.
|
|
@@ -45,7 +35,7 @@ export class TimePicker {
|
|
|
45
35
|
*/
|
|
46
36
|
this.referenceDate = new Date();
|
|
47
37
|
/**
|
|
48
|
-
* Valor
|
|
38
|
+
* Valor selecionado pelo usuário.
|
|
49
39
|
*
|
|
50
40
|
* @default null
|
|
51
41
|
*/
|
|
@@ -440,7 +430,7 @@ export class TimePicker {
|
|
|
440
430
|
* @returns {JSX.Element}
|
|
441
431
|
*/
|
|
442
432
|
render() {
|
|
443
|
-
return (h(Host, { key: '
|
|
433
|
+
return (h(Host, { key: 'e81125092811d06b37cdd61d562998de83020880' }, h("div", { key: 'df218ea0cc8424f55ed0689e5479ef47cdbee74c', class: "br-time-picker", part: "container" }, this.renderTimePicker())));
|
|
444
434
|
}
|
|
445
435
|
static get is() { return "br-time-picker"; }
|
|
446
436
|
static get encapsulation() { return "shadow"; }
|
|
@@ -502,7 +492,7 @@ export class TimePicker {
|
|
|
502
492
|
"name": "default",
|
|
503
493
|
"text": "null"
|
|
504
494
|
}],
|
|
505
|
-
"text": "Valor
|
|
495
|
+
"text": "Valor selecionado pelo usu\u00E1rio."
|
|
506
496
|
},
|
|
507
497
|
"getter": false,
|
|
508
498
|
"setter": false,
|
|
@@ -12,31 +12,27 @@ const DIVIDER_BORDER_STYLES = ['dashed', 'solid'];
|
|
|
12
12
|
const DIVIDER_COLOR_MODES = ['light', 'dark'];
|
|
13
13
|
const DIVIDER_ALIGNS = ['start', 'center', 'end'];
|
|
14
14
|
/**
|
|
15
|
-
* O
|
|
15
|
+
* O `br-divider` é uma linha que separa seções ou grupos de conteúdo. Pode ser horizontal ou vertical e ter um texto no meio.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <br-divider></br-divider>
|
|
18
19
|
*
|
|
19
|
-
* -
|
|
20
|
-
* - **Rotulação intermediária:** Permite incluir texto (ex.: "ou"), ícones ou outros elementos centralizados ao longo da linha divisória através do slot padrão.
|
|
21
|
-
* - **Variações visuais:** Suporta estilos contínuos, tracejados (`dashed`) e diferentes densidades para se adequar ao leiaute.
|
|
20
|
+
* <br-divider>ou</br-divider>
|
|
22
21
|
*
|
|
23
|
-
*
|
|
22
|
+
* <br-divider orientation="vertical" thickness="medium" border-style="dashed"></br-divider>
|
|
23
|
+
* ```
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
* - Houver necessidade de indicar explicitamente o término de um bloco temático e o início de outro.
|
|
27
|
-
* - Separar alternativas com um divisor textual (ex.: "Entrar com conta Gov.BR" --- ou --- "Entrar com certificado digital").
|
|
28
|
-
* - Dividir colunas de rodapés, menus laterais ou cabeçalhos.
|
|
29
|
-
* - **Evite e prefira outro componente quando:**
|
|
30
|
-
* - Os espaçamentos em branco (margens e paddings) já forem suficientes para garantir a percepção de separação sem sobrecarregar visualmente a tela.
|
|
25
|
+
* ### Quando usar
|
|
31
26
|
*
|
|
32
|
-
*
|
|
27
|
+
* - Marcar o fim de um bloco e o início de outro.
|
|
28
|
+
* - Separar alternativas, como "Entrar com gov.br" ou "Entrar com certificado digital".
|
|
33
29
|
*
|
|
34
|
-
*
|
|
35
|
-
* - `default`: Slot opcional para texto ou elemento centralizado intercalado na linha do divisor.
|
|
30
|
+
* ### Quando evitar
|
|
36
31
|
*
|
|
37
|
-
*
|
|
32
|
+
* - Quando o espaço em branco já separa bem o conteúdo.
|
|
33
|
+
*
|
|
34
|
+
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/divider?tab=designer).
|
|
38
35
|
*
|
|
39
|
-
|
|
40
36
|
* @category Layout, Estrutura
|
|
41
37
|
* @status stable
|
|
42
38
|
* @slot default - Slot opcional para conteúdo dentro do divisor (texto, ícones ou elementos personalizados).
|
|
@@ -273,7 +269,7 @@ export class Divider {
|
|
|
273
269
|
return h("hr", { class: this.getCssClassMap(), part: "divider" });
|
|
274
270
|
}
|
|
275
271
|
render() {
|
|
276
|
-
return (h(Host, { key: '
|
|
272
|
+
return (h(Host, { key: '5bb8579f8b756513982809583bfb73068deb3c00', class: this.effectiveOrientation === 'vertical' ? 'vertical' : undefined }, this.hasContent
|
|
277
273
|
? this.renderDefaultSlotDivider()
|
|
278
274
|
: [
|
|
279
275
|
h("slot", { onSlotchange: (event) => (this.hasContent = hasAssignedSlotContent(event.currentTarget)) }),
|
|
@@ -430,7 +426,7 @@ export class Divider {
|
|
|
430
426
|
"optional": true,
|
|
431
427
|
"docs": {
|
|
432
428
|
"tags": [],
|
|
433
|
-
"text": "Esquema de cor
|
|
429
|
+
"text": "Esquema de cor padr\u00E3o. Quando informado, tem preced\u00EAncia sobre `isDarkMode`; valores inv\u00E1lidos usam `light`."
|
|
434
430
|
},
|
|
435
431
|
"getter": false,
|
|
436
432
|
"setter": false,
|