@inera/ids-react 9.1.2 → 9.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/components/accordion/accordion-base.d.ts +4 -1
- package/components/accordion/accordion-base.js +33 -7
- package/components/accordion/accordion.d.ts +4 -1
- package/components/accordion/accordion.js +14 -11
- package/components/alert/alert-base.d.ts +3 -0
- package/components/alert/alert-base.js +4 -3
- package/components/alert/alert.d.ts +6 -1
- package/components/alert/alert.js +12 -9
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/badge.js +6 -3
- package/components/breadcrumbs/breadcrumbs.d.ts +3 -0
- package/components/breadcrumbs/breadcrumbs.js +25 -4
- package/components/button/button-group.d.ts +3 -0
- package/components/button/button-group.js +1 -0
- package/components/button/button.js +22 -14
- package/components/card/card.d.ts +3 -0
- package/components/card/card.js +2 -1
- package/components/carousel/carousel-item.d.ts +3 -0
- package/components/carousel/carousel-item.js +1 -0
- package/components/date-label/date-label.d.ts +3 -0
- package/components/date-label/date-label.js +1 -0
- package/components/dialog/dialog-base.d.ts +0 -1
- package/components/dialog/dialog-base.js +3 -3
- package/components/dialog/dialog.d.ts +3 -0
- package/components/dialog/dialog.js +19 -19
- package/components/dropdown/dropdown-base.js +6 -3
- package/components/dropdown/dropdown-content-button.js +1 -1
- package/components/dropdown/dropdown-content-link.d.ts +3 -0
- package/components/dropdown/dropdown-content-link.js +1 -1
- package/components/dropdown/dropdown.d.ts +3 -0
- package/components/dropdown/dropdown.js +28 -31
- package/components/footer-1177/footer-1177.d.ts +3 -0
- package/components/footer-1177/footer-1177.js +1 -0
- package/components/footer-1177-admin/footer-1177-admin.d.ts +3 -0
- package/components/footer-1177-admin/footer-1177-admin.js +1 -0
- package/components/footer-1177-pro/footer-1177-pro.d.ts +3 -0
- package/components/footer-1177-pro/footer-1177-pro.js +1 -0
- package/components/footer-inera/footer-inera.d.ts +3 -0
- package/components/footer-inera/footer-inera.js +1 -0
- package/components/footer-inera-admin/footer-inera-admin.d.ts +3 -0
- package/components/footer-inera-admin/footer-inera-admin.js +2 -1
- package/components/footer-inera-general/footer-inera-general.d.ts +21 -0
- package/components/footer-inera-general/footer-inera-general.js +28 -0
- package/components/form/check-button/check-button.js +1 -0
- package/components/form/checkbox/checkbox-base.d.ts +7 -13
- package/components/form/checkbox/checkbox-base.js +10 -10
- package/components/form/checkbox/checkbox-group-base.d.ts +3 -0
- package/components/form/checkbox/checkbox-group-base.js +3 -2
- package/components/form/checkbox/checkbox-group.d.ts +3 -0
- package/components/form/checkbox/checkbox-group.js +1 -0
- package/components/form/checkbox/checkbox.d.ts +5 -15
- package/components/form/checkbox/checkbox.js +10 -2
- package/components/form/datepicker/datepicker.d.ts +7 -11
- package/components/form/datepicker/datepicker.js +17 -16
- package/components/form/error-message/error-message.d.ts +3 -0
- package/components/form/error-message/error-message.js +1 -0
- package/components/form/form-props/form-props.d.ts +18 -0
- package/components/form/input/input-base.d.ts +7 -16
- package/components/form/input/input-base.js +15 -16
- package/components/form/input/input.d.ts +3 -16
- package/components/form/input/input.js +3 -4
- package/components/form/radio/radio-base.d.ts +8 -13
- package/components/form/radio/radio-base.js +8 -10
- package/components/form/radio/radio-group-base.d.ts +3 -0
- package/components/form/radio/radio-group-base.js +1 -0
- package/components/form/radio/radio-group.d.ts +3 -0
- package/components/form/radio/radio-group.js +2 -2
- package/components/form/radio/radio.d.ts +2 -14
- package/components/form/radio/radio.js +11 -5
- package/components/form/radio-button/radio-button-group-base.d.ts +3 -0
- package/components/form/radio-button/radio-button-group-base.js +1 -0
- package/components/form/radio-button/radio-button-group.d.ts +3 -0
- package/components/form/radio-button/radio-button-group.js +4 -1
- package/components/form/radio-button/radio-button.js +1 -0
- package/components/form/range/range-base.d.ts +6 -8
- package/components/form/range/range-base.js +3 -2
- package/components/form/range/range.d.ts +2 -7
- package/components/form/range/range.js +13 -6
- package/components/form/select/select-base.d.ts +7 -15
- package/components/form/select/select-base.js +8 -8
- package/components/form/select/select.d.ts +2 -14
- package/components/form/select/select.js +12 -5
- package/components/form/select-multiple/select-multiple-base.d.ts +7 -14
- package/components/form/select-multiple/select-multiple-base.js +7 -5
- package/components/form/select-multiple/select-multiple.d.ts +4 -15
- package/components/form/select-multiple/select-multiple.js +3 -5
- package/components/form/spinner/spinner.d.ts +3 -0
- package/components/form/spinner/spinner.js +1 -0
- package/components/form/textarea/textarea-base.d.ts +7 -15
- package/components/form/textarea/textarea-base.js +7 -10
- package/components/form/textarea/textarea.d.ts +4 -14
- package/components/form/textarea/textarea.js +13 -6
- package/components/form/time/time-base.d.ts +6 -12
- package/components/form/time/time-base.js +7 -7
- package/components/form/time/time.d.ts +2 -14
- package/components/form/time/time.js +13 -6
- package/components/global-alert/global-alert-base.d.ts +3 -0
- package/components/global-alert/global-alert-base.js +3 -2
- package/components/global-alert/global-alert.d.ts +6 -1
- package/components/global-alert/global-alert.js +12 -9
- package/components/header-1177/header-1177-avatar-base.d.ts +3 -0
- package/components/header-1177/header-1177-avatar-base.js +1 -0
- package/components/header-1177/header-1177-avatar.d.ts +3 -0
- package/components/header-1177/header-1177-avatar.js +7 -15
- package/components/header-1177/header-1177-base.d.ts +3 -0
- package/components/header-1177/header-1177-base.js +1 -0
- package/components/header-1177/header-1177-item-base.d.ts +3 -0
- package/components/header-1177/header-1177-item-base.js +1 -0
- package/components/header-1177/header-1177-item.d.ts +3 -0
- package/components/header-1177/header-1177-item.js +1 -0
- package/components/header-1177/header-1177-menu-mobile-base.d.ts +3 -0
- package/components/header-1177/header-1177-menu-mobile-base.js +1 -0
- package/components/header-1177/header-1177-menu-mobile.d.ts +3 -0
- package/components/header-1177/header-1177-menu-mobile.js +7 -24
- package/components/header-1177/header-1177-nav-base.d.ts +3 -0
- package/components/header-1177/header-1177-nav-base.js +1 -0
- package/components/header-1177/header-1177-nav-item-base.d.ts +3 -0
- package/components/header-1177/header-1177-nav-item-base.js +1 -0
- package/components/header-1177/header-1177-nav-item-mobile-base.d.ts +3 -0
- package/components/header-1177/header-1177-nav-item-mobile-base.js +1 -0
- package/components/header-1177/header-1177-nav-item-mobile.d.ts +3 -0
- package/components/header-1177/header-1177-nav-item-mobile.js +1 -0
- package/components/header-1177/header-1177-nav-item.d.ts +3 -0
- package/components/header-1177/header-1177-nav-item.js +6 -29
- package/components/header-1177/header-1177-nav.d.ts +3 -0
- package/components/header-1177/header-1177-nav.js +2 -1
- package/components/header-1177/header-1177-region-picker-base.d.ts +3 -0
- package/components/header-1177/header-1177-region-picker-base.js +1 -0
- package/components/header-1177/header-1177-region-picker-mobile-base.d.ts +3 -0
- package/components/header-1177/header-1177-region-picker-mobile-base.js +1 -0
- package/components/header-1177/header-1177-region-picker-mobile.d.ts +3 -0
- package/components/header-1177/header-1177-region-picker-mobile.js +1 -0
- package/components/header-1177/header-1177-region-picker.d.ts +3 -0
- package/components/header-1177/header-1177-region-picker.js +1 -0
- package/components/header-1177/header-1177.d.ts +3 -0
- package/components/header-1177/header-1177.js +1 -0
- package/components/header-1177-admin/header-1177-admin-avatar-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-avatar-base.js +2 -1
- package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-avatar-mobile-base.js +2 -1
- package/components/header-1177-admin/header-1177-admin-avatar-mobile.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-avatar-mobile.js +7 -7
- package/components/header-1177-admin/header-1177-admin-avatar.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-avatar.js +7 -25
- package/components/header-1177-admin/header-1177-admin-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-base.js +1 -0
- package/components/header-1177-admin/header-1177-admin-item-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-item-base.js +1 -0
- package/components/header-1177-admin/header-1177-admin-item.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-item.js +1 -0
- package/components/header-1177-admin/header-1177-admin-menu-mobile-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-menu-mobile-base.js +1 -0
- package/components/header-1177-admin/header-1177-admin-menu-mobile.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-menu-mobile.js +7 -26
- package/components/header-1177-admin/header-1177-admin-nav-base.d.ts +6 -1
- package/components/header-1177-admin/header-1177-admin-nav-base.js +5 -3
- package/components/header-1177-admin/header-1177-admin-nav-item-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-nav-item-base.js +1 -0
- package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-nav-item-mobile-base.js +1 -0
- package/components/header-1177-admin/header-1177-admin-nav-item-mobile.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-nav-item-mobile.js +1 -0
- package/components/header-1177-admin/header-1177-admin-nav-item.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin-nav-item.js +6 -29
- package/components/header-1177-admin/header-1177-admin-nav.d.ts +6 -1
- package/components/header-1177-admin/header-1177-admin-nav.js +3 -2
- package/components/header-1177-admin/header-1177-admin.d.ts +3 -0
- package/components/header-1177-admin/header-1177-admin.js +1 -0
- package/components/header-1177-pro/header-1177-pro-avatar-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-avatar-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-avatar-mobile-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-avatar-mobile.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-avatar-mobile.js +6 -5
- package/components/header-1177-pro/header-1177-pro-avatar.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-avatar.js +7 -26
- package/components/header-1177-pro/header-1177-pro-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-item-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-item-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-item.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-item.js +1 -0
- package/components/header-1177-pro/header-1177-pro-menu-mobile-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-menu-mobile-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-menu-mobile.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-menu-mobile.js +7 -26
- package/components/header-1177-pro/header-1177-pro-nav-base.d.ts +6 -1
- package/components/header-1177-pro/header-1177-pro-nav-base.js +5 -3
- package/components/header-1177-pro/header-1177-pro-nav-item-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-nav-item-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-nav-item-mobile-base.js +1 -0
- package/components/header-1177-pro/header-1177-pro-nav-item-mobile.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-nav-item-mobile.js +1 -0
- package/components/header-1177-pro/header-1177-pro-nav-item.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-nav-item.js +6 -29
- package/components/header-1177-pro/header-1177-pro-nav.d.ts +6 -1
- package/components/header-1177-pro/header-1177-pro-nav.js +3 -2
- package/components/header-1177-pro/header-1177-pro-region-picker-base.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-region-picker-base.js +2 -1
- package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.d.ts +5 -1
- package/components/header-1177-pro/header-1177-pro-region-picker-mobile-base.js +4 -2
- package/components/header-1177-pro/header-1177-pro-region-picker-mobile.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-region-picker-mobile.js +2 -1
- package/components/header-1177-pro/header-1177-pro-region-picker.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro-region-picker.js +1 -0
- package/components/header-1177-pro/header-1177-pro.d.ts +3 -0
- package/components/header-1177-pro/header-1177-pro.js +1 -0
- package/components/header-inera/header-inera-base.d.ts +3 -0
- package/components/header-inera/header-inera-base.js +1 -0
- package/components/header-inera/header-inera-item-base.d.ts +3 -0
- package/components/header-inera/header-inera-item-base.js +1 -0
- package/components/header-inera/header-inera-item.d.ts +3 -0
- package/components/header-inera/header-inera-item.js +1 -0
- package/components/header-inera/header-inera-menu-mobile-base.d.ts +3 -0
- package/components/header-inera/header-inera-menu-mobile-base.js +1 -0
- package/components/header-inera/header-inera-menu-mobile.d.ts +3 -0
- package/components/header-inera/header-inera-menu-mobile.js +7 -26
- package/components/header-inera/header-inera-nav-base.d.ts +3 -0
- package/components/header-inera/header-inera-nav-base.js +1 -0
- package/components/header-inera/header-inera-nav-item-base.d.ts +3 -0
- package/components/header-inera/header-inera-nav-item-base.js +1 -0
- package/components/header-inera/header-inera-nav-item.d.ts +3 -0
- package/components/header-inera/header-inera-nav-item.js +6 -29
- package/components/header-inera/header-inera-nav.d.ts +3 -0
- package/components/header-inera/header-inera-nav.js +1 -0
- package/components/header-inera/header-inera.d.ts +3 -0
- package/components/header-inera/header-inera.js +1 -0
- package/components/header-inera-admin/header-inera-admin-avatar-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-avatar-base.js +2 -1
- package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-avatar-mobile-base.js +2 -1
- package/components/header-inera-admin/header-inera-admin-avatar-mobile.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-avatar-mobile.js +6 -5
- package/components/header-inera-admin/header-inera-admin-avatar.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-avatar.js +7 -25
- package/components/header-inera-admin/header-inera-admin-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-base.js +1 -0
- package/components/header-inera-admin/header-inera-admin-item-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-item-base.js +1 -0
- package/components/header-inera-admin/header-inera-admin-item.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-item.js +1 -0
- package/components/header-inera-admin/header-inera-admin-menu-mobile-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-menu-mobile-base.js +2 -1
- package/components/header-inera-admin/header-inera-admin-menu-mobile.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-menu-mobile.js +7 -26
- package/components/header-inera-admin/header-inera-admin-nav-base.d.ts +6 -1
- package/components/header-inera-admin/header-inera-admin-nav-base.js +5 -3
- package/components/header-inera-admin/header-inera-admin-nav-item-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-nav-item-base.js +1 -0
- package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-nav-item-mobile-base.js +1 -0
- package/components/header-inera-admin/header-inera-admin-nav-item-mobile.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-nav-item-mobile.js +1 -0
- package/components/header-inera-admin/header-inera-admin-nav-item.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin-nav-item.js +6 -29
- package/components/header-inera-admin/header-inera-admin-nav.d.ts +6 -1
- package/components/header-inera-admin/header-inera-admin-nav.js +3 -2
- package/components/header-inera-admin/header-inera-admin.d.ts +3 -0
- package/components/header-inera-admin/header-inera-admin.js +1 -0
- package/components/header-inera-general/header-inera-general-base.d.ts +16 -0
- package/components/header-inera-general/header-inera-general-base.js +12 -0
- package/components/header-inera-general/header-inera-general-item-base.d.ts +11 -0
- package/components/header-inera-general/header-inera-general-item-base.js +13 -0
- package/components/header-inera-general/header-inera-general-item.d.ts +10 -0
- package/components/header-inera-general/header-inera-general-item.js +12 -0
- package/components/header-inera-general/header-inera-general-menu-mobile-base.d.ts +15 -0
- package/components/header-inera-general/header-inera-general-menu-mobile-base.js +19 -0
- package/components/header-inera-general/header-inera-general-menu-mobile.d.ts +13 -0
- package/components/header-inera-general/header-inera-general-menu-mobile.js +31 -0
- package/components/header-inera-general/header-inera-general-nav-base.d.ts +10 -0
- package/components/header-inera-general/header-inera-general-nav-base.js +11 -0
- package/components/header-inera-general/header-inera-general-nav-item-base.d.ts +21 -0
- package/components/header-inera-general/header-inera-general-nav-item-base.js +27 -0
- package/components/header-inera-general/header-inera-general-nav-item.d.ts +18 -0
- package/components/header-inera-general/header-inera-general-nav-item.js +27 -0
- package/components/header-inera-general/header-inera-general-nav.d.ts +8 -0
- package/components/header-inera-general/header-inera-general-nav.js +12 -0
- package/components/header-inera-general/header-inera-general.d.ts +15 -0
- package/components/header-inera-general/header-inera-general.js +11 -0
- package/components/header-patient/header-patient.d.ts +3 -0
- package/components/header-patient/header-patient.js +1 -0
- package/components/link/action-link.d.ts +3 -0
- package/components/link/action-link.js +2 -1
- package/components/link/box-link.d.ts +3 -0
- package/components/link/box-link.js +1 -0
- package/components/link/link.d.ts +3 -0
- package/components/link/link.js +1 -0
- package/components/list-pagination/list-pagination-links.d.ts +3 -0
- package/components/list-pagination/list-pagination-links.js +1 -0
- package/components/list-pagination/list-pagination.d.ts +3 -0
- package/components/list-pagination/list-pagination.js +4 -3
- package/components/mobile-menu/mobile-item-base.d.ts +3 -0
- package/components/mobile-menu/mobile-item-base.js +1 -0
- package/components/mobile-menu/mobile-item.d.ts +3 -0
- package/components/mobile-menu/mobile-item.js +1 -0
- package/components/mobile-menu/mobile-menu.d.ts +3 -0
- package/components/mobile-menu/mobile-menu.js +1 -0
- package/components/navigation-content/navigation-content.d.ts +3 -0
- package/components/navigation-content/navigation-content.js +1 -0
- package/components/navigation-local/navigation-local.d.ts +3 -0
- package/components/navigation-local/navigation-local.js +1 -0
- package/components/notification-badge/notification-badge.d.ts +2 -4
- package/components/notification-badge/notification-badge.js +6 -3
- package/components/popover/popover-base.d.ts +4 -1
- package/components/popover/popover-base.js +1 -0
- package/components/popover/popover-content.d.ts +7 -1
- package/components/popover/popover-content.js +6 -10
- package/components/popover/popover.d.ts +3 -0
- package/components/popover/popover.js +141 -52
- package/components/progressbar/progressbar.d.ts +4 -4
- package/components/progressbar/progressbar.js +5 -3
- package/components/puff-list/puff-list-item-date.d.ts +3 -0
- package/components/puff-list/puff-list-item-date.js +1 -0
- package/components/puff-list/puff-list-item-info.d.ts +3 -0
- package/components/puff-list/puff-list-item-info.js +1 -0
- package/components/puff-list/puff-list-item.d.ts +1 -1
- package/components/puff-list/puff-list-item.js +11 -13
- package/components/puff-list/puff-list.d.ts +4 -1
- package/components/puff-list/puff-list.js +2 -1
- package/components/region-icon/region-icon.d.ts +3 -0
- package/components/region-icon/region-icon.js +1 -0
- package/components/side-menu/side-menu.d.ts +3 -0
- package/components/side-menu/side-menu.js +1 -0
- package/components/side-panel/side-panel-base.d.ts +1 -0
- package/components/side-panel/side-panel-base.js +1 -1
- package/components/side-panel/side-panel-provider.d.ts +3 -0
- package/components/side-panel/side-panel-provider.js +1 -0
- package/components/side-panel/side-panel.d.ts +3 -0
- package/components/side-panel/side-panel.js +29 -7
- package/components/stepper/step-base.js +1 -1
- package/components/stepper/step.js +11 -4
- package/components/stepper/stepper.d.ts +3 -0
- package/components/stepper/stepper.js +1 -0
- package/components/tabs/tabs-base.d.ts +3 -0
- package/components/tabs/tabs-base.js +1 -0
- package/components/tabs/tabs.d.ts +3 -0
- package/components/tabs/tabs.js +1 -0
- package/components/tag/tag.d.ts +1 -1
- package/components/tag/tag.js +4 -3
- package/components/toolbar/toolbar.d.ts +5 -0
- package/components/toolbar/toolbar.js +11 -0
- package/components/tooltip/tooltip-base.d.ts +5 -1
- package/components/tooltip/tooltip-base.js +3 -2
- package/components/tooltip/tooltip.d.ts +3 -0
- package/components/tooltip/tooltip.js +26 -1
- package/components/utils/hooks/useClickOutside.d.ts +1 -9
- package/components/utils/hooks/useClickOutside.js +9 -16
- package/components/utils/hooks/useLinkClick.d.ts +2 -0
- package/components/utils/hooks/useLinkClick.js +22 -0
- package/index.d.ts +24 -0
- package/index.js +12 -0
- package/package.json +2 -2
|
@@ -12,4 +12,7 @@ type Props = Omit<IDSDropdownBaseProps, "onTriggerClick" | "triggerRef" | "conte
|
|
|
12
12
|
onOpened?: () => void;
|
|
13
13
|
};
|
|
14
14
|
export declare function IDSDropdown({ button, position, maxHeight, minWidth, sBlock, mBlock, expanded, persistent, onClosed, onOpened, children, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare namespace IDSDropdown {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
15
18
|
export {};
|
|
@@ -2,45 +2,22 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useState, useRef, useEffect } from 'react';
|
|
4
4
|
import { IDSDropdownBase } from './dropdown-base.js';
|
|
5
|
+
import { useFocusTrap } from '../utils/hooks/useFocusTrap.js';
|
|
6
|
+
import { useEsc } from '../utils/hooks/useEsc.js';
|
|
5
7
|
|
|
6
8
|
function IDSDropdown({ button, position, maxHeight, minWidth, sBlock, mBlock, expanded = false, persistent = false, onClosed, onOpened, children, className, ...props }) {
|
|
7
9
|
const [isExpanded, setIsExpanded] = useState(expanded);
|
|
8
10
|
const triggerRef = useRef(null);
|
|
9
11
|
const contentRef = useRef(null);
|
|
12
|
+
useFocusTrap(contentRef.current, isExpanded);
|
|
13
|
+
const closeMenu = () => {
|
|
14
|
+
setIsExpanded(false);
|
|
15
|
+
onClosed?.();
|
|
16
|
+
};
|
|
17
|
+
useEsc(closeMenu, triggerRef, contentRef, isExpanded);
|
|
10
18
|
useEffect(() => {
|
|
11
19
|
setIsExpanded(expanded);
|
|
12
20
|
}, [expanded]);
|
|
13
|
-
// Click outside to close
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (!isExpanded || persistent)
|
|
16
|
-
return;
|
|
17
|
-
const handleClickOutside = (event) => {
|
|
18
|
-
if (triggerRef.current &&
|
|
19
|
-
!triggerRef.current.contains(event.target) &&
|
|
20
|
-
contentRef.current &&
|
|
21
|
-
!contentRef.current.contains(event.target)) {
|
|
22
|
-
setIsExpanded(false);
|
|
23
|
-
onClosed?.();
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
27
|
-
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
28
|
-
}, [isExpanded, persistent, onClosed]);
|
|
29
|
-
// Escape should also close
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (!isExpanded || persistent)
|
|
32
|
-
return;
|
|
33
|
-
const handleKeyDown = (event) => {
|
|
34
|
-
if (event.key === "Escape") {
|
|
35
|
-
event.preventDefault();
|
|
36
|
-
setIsExpanded(false);
|
|
37
|
-
onClosed?.();
|
|
38
|
-
triggerRef.current?.focus();
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
42
|
-
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
43
|
-
}, [isExpanded, persistent, onClosed]);
|
|
44
21
|
const toggleDropdown = () => {
|
|
45
22
|
setIsExpanded(prev => {
|
|
46
23
|
const next = !prev;
|
|
@@ -51,7 +28,27 @@ function IDSDropdown({ button, position, maxHeight, minWidth, sBlock, mBlock, ex
|
|
|
51
28
|
return next;
|
|
52
29
|
});
|
|
53
30
|
};
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!isExpanded)
|
|
33
|
+
return;
|
|
34
|
+
const content = contentRef.current;
|
|
35
|
+
if (!content)
|
|
36
|
+
return;
|
|
37
|
+
requestAnimationFrame(() => {
|
|
38
|
+
const focusable = content.querySelectorAll([
|
|
39
|
+
"a[href]",
|
|
40
|
+
"button:not([disabled])",
|
|
41
|
+
"[tabindex]:not([tabindex='-1'])",
|
|
42
|
+
"input:not([disabled])",
|
|
43
|
+
"select:not([disabled])",
|
|
44
|
+
"textarea:not([disabled])"
|
|
45
|
+
].join(","));
|
|
46
|
+
const firstVisible = Array.from(focusable).find(el => el.offsetParent !== null);
|
|
47
|
+
firstVisible?.focus();
|
|
48
|
+
});
|
|
49
|
+
}, [isExpanded]);
|
|
54
50
|
return (jsx(IDSDropdownBase, { ...props, client: true, className: className, expanded: isExpanded, trigger: button, triggerRef: triggerRef, contentRef: contentRef, maxHeight: maxHeight, sBlock: sBlock, mBlock: mBlock, minWidth: minWidth, position: position, onTriggerClick: toggleDropdown, children: children }));
|
|
55
51
|
}
|
|
52
|
+
IDSDropdown.displayName = "IDSDropdown";
|
|
56
53
|
|
|
57
54
|
export { IDSDropdown };
|
|
@@ -16,3 +16,6 @@ export interface Footer1177Props extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
16
16
|
children?: ReactNode;
|
|
17
17
|
}
|
|
18
18
|
export declare function IDSFooter1177({ headline, srHeadline, subHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: Footer1177Props): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare namespace IDSFooter1177 {
|
|
20
|
+
var displayName: string;
|
|
21
|
+
}
|
|
@@ -23,5 +23,6 @@ function IDSFooter1177({ headline = "", srHeadline = "", subHeadline = "", col1,
|
|
|
23
23
|
};
|
|
24
24
|
return (jsxs("footer", { className: clsx("ids-footer-1177", className), ...props, children: [jsx("div", { className: "ids-footer-1177__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177__inner", children: [jsx("div", { className: "ids-footer-1177__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177__content", children: [jsxs("div", { className: "ids-footer-1177__text", children: [children, toggle && jsx("div", { className: "ids-footer-1177__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-1177__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177__sub-footer", children: [jsx("div", { className: "ids-footer-1177__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-1177__sub-footer-mobile", children: jsx("div", { className: "ids-footer-1177__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
|
|
25
25
|
}
|
|
26
|
+
IDSFooter1177.displayName = "IDSFooter1177";
|
|
26
27
|
|
|
27
28
|
export { IDSFooter1177 };
|
|
@@ -15,4 +15,7 @@ interface Footer1177AdminProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
15
15
|
children?: ReactNode;
|
|
16
16
|
}
|
|
17
17
|
export declare function IDSFooter1177Admin({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: Footer1177AdminProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace IDSFooter1177Admin {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
18
21
|
export {};
|
|
@@ -23,5 +23,6 @@ function IDSFooter1177Admin({ headline = "", srHeadline = "", col1, col2, col3,
|
|
|
23
23
|
};
|
|
24
24
|
return (jsxs("footer", { className: clsx("ids-footer-1177-admin", className), ...props, children: [jsx("div", { className: "ids-footer-1177-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-admin__inner", children: [jsx("div", { className: "ids-footer-1177-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-admin__content", children: [jsxs("div", { className: "ids-footer-1177-admin__text", children: [children, toggle && jsx("div", { className: "ids-footer-1177-admin__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-1177-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-admin__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-headline", children: headline })] }), jsx("div", { className: "ids-footer-1177-admin__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
|
|
25
25
|
}
|
|
26
|
+
IDSFooter1177Admin.displayName = "IDSFooter1177Admin";
|
|
26
27
|
|
|
27
28
|
export { IDSFooter1177Admin };
|
|
@@ -19,4 +19,7 @@ interface Footer1177ProProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
19
|
children?: ReactNode;
|
|
20
20
|
}
|
|
21
21
|
export declare function IDSFooter1177Pro({ headline, srHeadline, mobileHeadline, col1, col2, col3, toggle, col1Headline, col2Headline, col3Headline, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: Footer1177ProProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare namespace IDSFooter1177Pro {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
22
25
|
export {};
|
|
@@ -23,5 +23,6 @@ function IDSFooter1177Pro({ headline = "", srHeadline = "", mobileHeadline = "",
|
|
|
23
23
|
};
|
|
24
24
|
return (jsxs("footer", { className: clsx("ids-footer-1177-pro", className), ...props, children: [jsx("div", { className: "ids-footer-1177-pro__inner-wrapper", children: jsxs("div", { className: "ids-footer-1177-pro__inner", children: [jsx("div", { className: "ids-footer-1177-pro__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-1177-pro__content", children: [jsxs("div", { className: "ids-footer-1177-pro__text", children: [children, toggle && jsx("div", { className: "ids-footer-1177-pro__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-1177-pro__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-1177-pro__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-container", children: jsxs("div", { className: "ids-footer-1177-pro__sub-footer-inner", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-1177-pro__mobile-links", children: mobileLinks })] }) }), jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile", children: [jsxs("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline-wrapper", children: [jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-logo" }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-headline", children: mobileHeadline })] }), jsx("div", { className: "ids-footer-1177-pro__sub-footer-mobile-text", children: subFooterMobile })] })] })] }));
|
|
25
25
|
}
|
|
26
|
+
IDSFooter1177Pro.displayName = "IDSFooter1177Pro";
|
|
26
27
|
|
|
27
28
|
export { IDSFooter1177Pro };
|
|
@@ -15,4 +15,7 @@ interface FooterIneraProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
15
15
|
children?: ReactNode;
|
|
16
16
|
}
|
|
17
17
|
export declare function IDSFooterInera({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: FooterIneraProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace IDSFooterInera {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
18
21
|
export {};
|
|
@@ -23,5 +23,6 @@ function IDSFooterInera({ headline = "", srHeadline = "", col1, col2, col3, togg
|
|
|
23
23
|
};
|
|
24
24
|
return (jsxs("footer", { className: clsx("ids-footer-inera", className), ...props, children: [jsx("div", { className: "ids-footer-inera__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera__inner", children: [jsx("div", { className: "ids-footer-inera__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera__content", children: [jsxs("div", { className: "ids-footer-inera__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera__sub-footer", children: [jsx("div", { className: "ids-footer-inera__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-inera__sub-footer-mobile", children: jsx("div", { className: "ids-footer-inera__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
|
|
25
25
|
}
|
|
26
|
+
IDSFooterInera.displayName = "IDSFooterInera";
|
|
26
27
|
|
|
27
28
|
export { IDSFooterInera };
|
|
@@ -15,4 +15,7 @@ interface FooterIneraAdminProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
15
15
|
children?: ReactNode;
|
|
16
16
|
}
|
|
17
17
|
export declare function IDSFooterIneraAdmin({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: FooterIneraAdminProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace IDSFooterIneraAdmin {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
18
21
|
export {};
|
|
@@ -21,7 +21,8 @@ function IDSFooterIneraAdmin({ headline = "", srHeadline = "", col1, col2, col3,
|
|
|
21
21
|
}
|
|
22
22
|
return null;
|
|
23
23
|
};
|
|
24
|
-
return (jsxs("footer", { className: clsx("ids-footer-inera-admin", className), ...props, children: [jsx("div", { className: "ids-footer-inera-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera-admin__inner", children: [jsx("div", { className: "ids-footer-inera-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera-admin__content", children: [jsxs("div", { className: "ids-footer-inera-admin__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera-admin__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera-admin__mobile-links", children: mobileLinks })] }) }),
|
|
24
|
+
return (jsxs("footer", { className: clsx("ids-footer-inera-admin", className), ...props, children: [jsx("div", { className: "ids-footer-inera-admin__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera-admin__inner", children: [jsx("div", { className: "ids-footer-inera-admin__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera-admin__content", children: [jsxs("div", { className: "ids-footer-inera-admin__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera-admin__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera-admin__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera-admin__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera-admin__sub-footer", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera-admin__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera-admin__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera-admin__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile", children: jsx("div", { className: "ids-footer-inera-admin__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
|
|
25
25
|
}
|
|
26
|
+
IDSFooterIneraAdmin.displayName = "IDSFooterIneraAdmin";
|
|
26
27
|
|
|
27
28
|
export { IDSFooterIneraAdmin };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import "@inera/ids-design/components/footer-inera-general/footer-inera-general.css";
|
|
3
|
+
interface FooterIneraGeneralProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
headline?: string;
|
|
5
|
+
srHeadline?: string;
|
|
6
|
+
toggle?: ReactNode;
|
|
7
|
+
col1?: ReactNode;
|
|
8
|
+
col2?: ReactNode;
|
|
9
|
+
col3?: ReactNode;
|
|
10
|
+
subFooterLeft?: ReactNode;
|
|
11
|
+
subFooterRight?: ReactNode;
|
|
12
|
+
mobileMenu?: ReactNode;
|
|
13
|
+
mobileLinks?: ReactNode;
|
|
14
|
+
subFooterMobile?: ReactNode;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export declare function IDSFooterIneraGeneral({ headline, srHeadline, col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }: FooterIneraGeneralProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare namespace IDSFooterIneraGeneral {
|
|
19
|
+
var displayName: string;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import '@inera/ids-design/components/footer-inera-general/footer-inera-general.css';
|
|
4
|
+
|
|
5
|
+
function IDSFooterIneraGeneral({ headline = "", srHeadline = "", col1, col2, col3, toggle, subFooterLeft, subFooterRight, mobileMenu, mobileLinks, subFooterMobile, children, className, ...props }) {
|
|
6
|
+
const renderHeadline = () => {
|
|
7
|
+
if (srHeadline) {
|
|
8
|
+
return (jsxs(Fragment, { children: [jsx("h2", { className: "ids-footer-inera-general__headline--sr", children: srHeadline }), jsx("h2", { "aria-hidden": "true", className: "ids-footer-inera-general__headline", children: headline })] }));
|
|
9
|
+
}
|
|
10
|
+
return jsx("h2", { className: "ids-footer-inera-general__headline", children: headline });
|
|
11
|
+
};
|
|
12
|
+
const renderCols = () => {
|
|
13
|
+
if (!!col1 && !col2 && !col3) {
|
|
14
|
+
return jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--100"), children: col1 });
|
|
15
|
+
}
|
|
16
|
+
else if (!!col1 && !!col2 && !col3) {
|
|
17
|
+
return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--50"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--50"), children: col2 })] }));
|
|
18
|
+
}
|
|
19
|
+
else if (!!col1 && !!col2 && !!col3) {
|
|
20
|
+
return (jsxs(Fragment, { children: [jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--33"), children: col1 }), jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--33"), children: col2 }), jsx("div", { className: clsx("ids-footer-inera-general__link-col", "ids-footer-inera-general__link-col--33"), children: col3 })] }));
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
};
|
|
24
|
+
return (jsxs("footer", { className: clsx("ids-footer-inera-general", className), ...props, children: [jsx("div", { className: "ids-footer-inera-general__inner-wrapper", children: jsxs("div", { className: "ids-footer-inera-general__inner", children: [jsx("div", { className: "ids-footer-inera-general__headline-wrapper", children: renderHeadline() }), jsxs("div", { className: "ids-footer-inera-general__content", children: [jsxs("div", { className: "ids-footer-inera-general__text", children: [children, toggle && jsx("div", { className: "ids-footer-inera-general__darkmode-toggle", children: toggle })] }), jsx("div", { className: "ids-footer-inera-general__cols", children: renderCols() })] })] }) }), jsx("div", { className: "ids-footer-inera-general__mobile-menu", children: mobileMenu }), jsxs("div", { className: "ids-footer-inera-general__sub-footer", children: [jsx("div", { className: "ids-footer-inera-general__sub-footer-container", children: jsxs("div", { className: "ids-footer-inera-general__sub-footer-inner", children: [jsx("div", { className: "ids-footer-inera-general__sub-footer-left", children: subFooterLeft }), jsx("div", { className: "ids-footer-inera-general__sub-footer-right", children: subFooterRight }), jsx("div", { className: "ids-footer-inera-general__mobile-links", children: mobileLinks })] }) }), jsx("div", { className: "ids-footer-inera-general__sub-footer-mobile", children: jsx("div", { className: "ids-footer-inera-general__sub-footer-mobile-text", children: subFooterMobile }) })] })] }));
|
|
25
|
+
}
|
|
26
|
+
IDSFooterIneraGeneral.displayName = "IDSFooterIneraGeneral";
|
|
27
|
+
|
|
28
|
+
export { IDSFooterIneraGeneral };
|
|
@@ -8,5 +8,6 @@ const IDSCheckButton = forwardRef(function IDSCheckButton({ id, dataTestId, disa
|
|
|
8
8
|
"ids-focus-anchor": focusAnchor
|
|
9
9
|
}), type: "checkbox", disabled: disabled, ...props }), jsx("label", { htmlFor: inputId, className: "ids-check-button__label", children: children })] }));
|
|
10
10
|
});
|
|
11
|
+
IDSCheckButton.displayName = "IDSCheckButton";
|
|
11
12
|
|
|
12
13
|
export { IDSCheckButton };
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
disabled?: boolean;
|
|
5
|
-
required?: boolean;
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
|
+
import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
|
|
3
|
+
export interface IDSCheckboxBaseProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
|
|
6
4
|
indeterminate?: boolean;
|
|
7
|
-
light?: boolean;
|
|
8
5
|
block?: boolean;
|
|
9
|
-
compact?: boolean;
|
|
10
|
-
focusAnchor?: boolean;
|
|
11
|
-
errorMsg?: string | ReactNode;
|
|
12
|
-
tooltip?: ReactNode;
|
|
13
|
-
dataTestId?: string;
|
|
14
|
-
id?: string;
|
|
15
6
|
groupErrorMsgId?: string;
|
|
16
7
|
errorMsgId?: string;
|
|
17
8
|
inputRef?: React.Ref<HTMLInputElement>;
|
|
18
9
|
}
|
|
19
|
-
export declare function IDSCheckboxBase({ invalid, disabled, required, indeterminate, light, block,
|
|
10
|
+
export declare function IDSCheckboxBase({ invalid, disabled, required, indeterminate, light, block, focusAnchor, errorMsg, tooltip, children, dataTestId, id, groupErrorMsgId, errorMsgId, inputRef, className, ...props }: IDSCheckboxBaseProps): ReactElement;
|
|
11
|
+
export declare namespace IDSCheckboxBase {
|
|
12
|
+
var displayName: string;
|
|
13
|
+
}
|
|
@@ -3,28 +3,28 @@ import { useId } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { IDSErrorMessage } from '../error-message/error-message.js';
|
|
5
5
|
|
|
6
|
-
function IDSCheckboxBase({ invalid, disabled, required, indeterminate, light, block,
|
|
6
|
+
function IDSCheckboxBase({ invalid, disabled, required, indeterminate, light, block, focusAnchor, errorMsg, tooltip, children, dataTestId, id, groupErrorMsgId, errorMsgId, inputRef, className, ...props }) {
|
|
7
7
|
const reactId = useId();
|
|
8
|
-
const inputId =
|
|
9
|
-
const baseErrorMsgId =
|
|
8
|
+
const inputId = id ?? `checkbox-base-${reactId}`;
|
|
9
|
+
const baseErrorMsgId = errorMsgId ?? `checkbox-base-error-${reactId}`;
|
|
10
10
|
const showErrorMsg = invalid && !!errorMsg;
|
|
11
|
-
const ariaErrorHandler =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
: {};
|
|
11
|
+
const ariaErrorHandler = {};
|
|
12
|
+
if (showErrorMsg || !!groupErrorMsgId) {
|
|
13
|
+
ariaErrorHandler["aria-describedby"] = groupErrorMsgId || baseErrorMsgId;
|
|
14
|
+
}
|
|
16
15
|
const ariaCheckedHandler = indeterminate ? { "aria-checked": "mixed" } : {};
|
|
17
16
|
return (jsxs("div", { className: clsx("ids-checkbox-component", className), style: { display: "inline-flex", flexDirection: "column", gap: showErrorMsg ? "0.5rem" : "" }, "data-testid": dataTestId, children: [jsxs("div", { className: clsx("ids-checkbox", {
|
|
18
17
|
"ids-checkbox--light": light,
|
|
19
18
|
"ids-checkbox--block": block
|
|
20
19
|
}), "data-testid": dataTestId, children: [jsx("input", { id: inputId, ref: inputRef, type: "checkbox", className: clsx("ids-checkbox__input", {
|
|
21
20
|
"ids-focus-anchor": focusAnchor
|
|
22
|
-
}), "aria-invalid": invalid, disabled: disabled,
|
|
21
|
+
}), "aria-invalid": invalid, disabled: disabled, required: required, ...ariaErrorHandler, ...ariaCheckedHandler, ...props }), !!children && (jsxs("div", { className: clsx("ids-label-wrapper", {
|
|
23
22
|
"ids-label-wrapper--block": block
|
|
24
23
|
}), children: [jsx("label", { htmlFor: inputId, className: clsx("ids-checkbox__label ids-label", {
|
|
25
24
|
"ids-label--clickable": !disabled,
|
|
26
25
|
"ids-label--disabled": disabled
|
|
27
|
-
}), children: children }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] }))] }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true,
|
|
26
|
+
}), children: children }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] }))] }), showErrorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, children: errorMsg }))] }));
|
|
28
27
|
}
|
|
28
|
+
IDSCheckboxBase.displayName = "IDSCheckboxBase";
|
|
29
29
|
|
|
30
30
|
export { IDSCheckboxBase };
|
|
@@ -11,3 +11,6 @@ export interface IDSCheckboxGroupBaseProps extends InputHTMLAttributes<HTMLField
|
|
|
11
11
|
groupRef?: React.Ref<HTMLFieldSetElement>;
|
|
12
12
|
}
|
|
13
13
|
export declare function IDSCheckboxGroupBase({ legend, errorMsg, compact, hideLegend, tooltip, children, className, invalid, errorMsgId, groupRef, ...props }: IDSCheckboxGroupBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare namespace IDSCheckboxGroupBase {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
@@ -4,12 +4,13 @@ import clsx from 'clsx';
|
|
|
4
4
|
import { IDSErrorMessage } from '../error-message/error-message.js';
|
|
5
5
|
|
|
6
6
|
function IDSCheckboxGroupBase({ legend, errorMsg = "", compact = false, hideLegend, tooltip, children, className, invalid = false, errorMsgId, groupRef, ...props }) {
|
|
7
|
-
const baseErrorMsgId =
|
|
8
|
-
return (jsxs("fieldset", { ref: groupRef, className: clsx("ids-form-group__fieldset", {
|
|
7
|
+
const baseErrorMsgId = errorMsgId ?? `checkbox-group-base-error-${useId()}`;
|
|
8
|
+
return (jsxs("fieldset", { ref: groupRef, "aria-describedby": invalid && errorMsg ? baseErrorMsgId : undefined, className: clsx("ids-form-group__fieldset", {
|
|
9
9
|
"ids-form-group__fieldset--compact": compact
|
|
10
10
|
}, className), ...props, children: [legend && (jsx("div", { className: clsx("ids-label-wrapper", {
|
|
11
11
|
"ids-label-wrapper--sr-only": hideLegend
|
|
12
12
|
}, className), children: jsxs("legend", { children: [legend, tooltip && jsx("span", { className: "ids-legend__tooltip", children: tooltip })] }) })), children, invalid && !!errorMsg && (jsx(IDSErrorMessage, { id: baseErrorMsgId, show: true, compact: true, style: { marginTop: compact ? "0.75rem" : "auto" }, children: errorMsg }))] }));
|
|
13
13
|
}
|
|
14
|
+
IDSCheckboxGroupBase.displayName = "IDSCheckboxGroupBase";
|
|
14
15
|
|
|
15
16
|
export { IDSCheckboxGroupBase };
|
|
@@ -12,3 +12,6 @@ export interface IDSCheckboxGroupProps extends InputHTMLAttributes<HTMLFieldSetE
|
|
|
12
12
|
onValidityChange?: (isValid: boolean) => void;
|
|
13
13
|
}
|
|
14
14
|
export declare function IDSCheckboxGroup({ errorMsg, block, invalid, noValidation, onValidityChange, children, ...props }: IDSCheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare namespace IDSCheckboxGroup {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
@@ -36,5 +36,6 @@ function IDSCheckboxGroup({ errorMsg = "", block, invalid, noValidation = false,
|
|
|
36
36
|
});
|
|
37
37
|
return (jsx(IDSCheckboxGroupBase, { ...props, groupRef: groupRef, invalid: groupInvalid || invalid, errorMsgId: errorMsgId, errorMsg: !noValidation && errorMsg, children: clonedChildren }));
|
|
38
38
|
}
|
|
39
|
+
IDSCheckboxGroup.displayName = "IDSCheckboxGroup";
|
|
39
40
|
|
|
40
41
|
export { IDSCheckboxGroup };
|
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
import React
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
key?: string;
|
|
5
|
-
invalid?: boolean;
|
|
6
|
-
disabled?: boolean;
|
|
7
|
-
required?: boolean;
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
|
|
3
|
+
export interface IDSCheckboxProps extends React.InputHTMLAttributes<HTMLInputElement>, CommonFormPropsWithReadOnly {
|
|
8
4
|
indeterminate?: boolean;
|
|
9
|
-
noValidation?: boolean;
|
|
10
|
-
light?: boolean;
|
|
11
|
-
block?: boolean;
|
|
12
|
-
compact?: boolean;
|
|
13
|
-
focusAnchor?: boolean;
|
|
14
|
-
errorMsg?: string | ReactNode;
|
|
15
|
-
tooltip?: ReactNode;
|
|
16
|
-
dataTestId?: string;
|
|
17
5
|
groupErrorMsgId?: string;
|
|
6
|
+
key?: string;
|
|
7
|
+
block?: boolean;
|
|
18
8
|
}
|
|
19
9
|
export declare const IDSCheckbox: React.ForwardRefExoticComponent<IDSCheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -8,14 +8,22 @@ const IDSCheckbox = forwardRef(({ invalid = false, noValidation = false, indeter
|
|
|
8
8
|
const internalRef = useRef(null);
|
|
9
9
|
const checkboxRef = ref ?? internalRef;
|
|
10
10
|
const hasValidValue = useInputValidity(checkboxRef);
|
|
11
|
-
const
|
|
11
|
+
const computedInvalid = (invalid || !hasValidValue) && !noValidation;
|
|
12
|
+
// Merge forwarded + local ref
|
|
13
|
+
const mergedRef = (node) => {
|
|
14
|
+
checkboxRef.current = node;
|
|
15
|
+
if (typeof ref === "function")
|
|
16
|
+
ref(node);
|
|
17
|
+
else if (ref)
|
|
18
|
+
ref.current = node;
|
|
19
|
+
};
|
|
12
20
|
// indeterminate support
|
|
13
21
|
useEffect(() => {
|
|
14
22
|
if (checkboxRef.current) {
|
|
15
23
|
checkboxRef.current.indeterminate = indeterminate;
|
|
16
24
|
}
|
|
17
25
|
}, [indeterminate]);
|
|
18
|
-
return (jsx(IDSCheckboxBase, { ...props, inputRef:
|
|
26
|
+
return (jsx(IDSCheckboxBase, { ...props, inputRef: mergedRef, invalid: computedInvalid, indeterminate: indeterminate, children: children }));
|
|
19
27
|
});
|
|
20
28
|
IDSCheckbox.displayName = "IDSCheckbox";
|
|
21
29
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { Matcher, Modifiers } from "react-day-picker";
|
|
3
|
+
import { CommonFormPropsWithReadOnly } from "../form-props/form-props";
|
|
3
4
|
export interface IDSDatePickerChangeEvent {
|
|
4
5
|
value: string;
|
|
5
6
|
valueAsDate?: Date;
|
|
6
7
|
invalidDate: boolean;
|
|
7
8
|
missingDate: boolean;
|
|
8
9
|
}
|
|
9
|
-
export interface IDSDatePickerProps extends Omit<React.
|
|
10
|
-
label: string;
|
|
10
|
+
export interface IDSDatePickerProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange">, CommonFormPropsWithReadOnly {
|
|
11
11
|
value?: string;
|
|
12
|
-
light?: boolean;
|
|
13
12
|
placeholder?: string;
|
|
14
13
|
calendarHeader?: string;
|
|
15
14
|
defaultMonth?: Date;
|
|
@@ -18,16 +17,10 @@ export interface IDSDatePickerProps extends Omit<React.HTMLAttributes<HTMLElemen
|
|
|
18
17
|
srOpenText?: string;
|
|
19
18
|
srCloseText?: string;
|
|
20
19
|
focusedDay?: Date;
|
|
21
|
-
disabled?: boolean;
|
|
22
|
-
required?: boolean;
|
|
23
|
-
noValidation?: boolean;
|
|
24
|
-
errorMsg?: string;
|
|
25
20
|
missingDateErrorMsg?: string;
|
|
26
21
|
invalidDateErrorMsg?: string;
|
|
27
|
-
validationOnBlur?: boolean;
|
|
28
|
-
invalid?: boolean;
|
|
29
22
|
disableNavigation?: boolean;
|
|
30
|
-
|
|
23
|
+
noValidation?: boolean;
|
|
31
24
|
modifiers?: Record<string, Matcher | Matcher[]>;
|
|
32
25
|
onChange?: (event: IDSDatePickerChangeEvent) => void;
|
|
33
26
|
onOpen?: () => void;
|
|
@@ -35,3 +28,6 @@ export interface IDSDatePickerProps extends Omit<React.HTMLAttributes<HTMLElemen
|
|
|
35
28
|
onDayClick?: (date: Date, modifiers: Modifiers, e: React.MouseEvent) => void;
|
|
36
29
|
}
|
|
37
30
|
export declare function IDSDatePicker({ label, id, value, light, placeholder, errorMsg, missingDateErrorMsg, invalidDateErrorMsg, calendarHeader, srOpenText, srCloseText, validationOnBlur, defaultMonth, startMonth, endMonth, noValidation, disabled, required, invalid, tooltip, disableNavigation, modifiers, focusedDay, onChange, onFocus, onBlur, onOpen, onClose, onDayClick, className, ...props }: IDSDatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare namespace IDSDatePicker {
|
|
32
|
+
var displayName: string;
|
|
33
|
+
}
|
|
@@ -7,6 +7,7 @@ import { IDSErrorMessage } from '../error-message/error-message.js';
|
|
|
7
7
|
import { DayPicker, WeekNumberHeader, MonthsDropdown, YearsDropdown, useDayPicker, DropdownNav } from 'react-day-picker';
|
|
8
8
|
import { useFocusTrap } from '../../utils/hooks/useFocusTrap.js';
|
|
9
9
|
import { useAriaDescribedBy } from '../form-hooks/useAriaDescribedBy.js';
|
|
10
|
+
import { useClickOutside } from '../../utils/hooks/useClickOutside.js';
|
|
10
11
|
|
|
11
12
|
const locale = { locale: sv };
|
|
12
13
|
const createNewDate = (dateString) => {
|
|
@@ -46,11 +47,15 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
46
47
|
const [hasMissingError, setHasMissingError] = useState(false);
|
|
47
48
|
const [hasOtherError, setHasOtherError] = useState(false);
|
|
48
49
|
const hasError = hasMissingError || hasDateError || hasOtherError || invalid;
|
|
49
|
-
const showInvalidError = !!hasDateError && !!invalidDateErrorMsg;
|
|
50
|
-
const showMissingError = !!hasMissingError && !!missingDateErrorMsg;
|
|
51
|
-
const showError = !!invalid && !!errorMsg && !isDialogOpen;
|
|
50
|
+
const showInvalidError = !!hasDateError && !!invalidDateErrorMsg && !noValidation;
|
|
51
|
+
const showMissingError = !!hasMissingError && !!missingDateErrorMsg && !noValidation;
|
|
52
|
+
const showError = !!invalid && !!errorMsg && !isDialogOpen && !noValidation;
|
|
52
53
|
useAriaDescribedBy(inputRef, errorMsgId, invalid, (showError || showMissingError || showInvalidError) && !noValidation);
|
|
53
54
|
useFocusTrap(dialogRef.current, isDialogOpen);
|
|
55
|
+
useClickOutside(() => {
|
|
56
|
+
setIsDialogOpen(false);
|
|
57
|
+
onClose?.();
|
|
58
|
+
}, [dialogRef, triggerRef], triggerRef, isDialogOpen);
|
|
54
59
|
const handleOpenDialog = (e) => {
|
|
55
60
|
e.preventDefault();
|
|
56
61
|
setIsDialogOpen(true);
|
|
@@ -61,15 +66,6 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
61
66
|
triggerRef.current.focus();
|
|
62
67
|
onClose?.();
|
|
63
68
|
};
|
|
64
|
-
useEffect(() => {
|
|
65
|
-
const handleClickOutside = (event) => {
|
|
66
|
-
if (dialogRef.current && !dialogRef.current.contains(event.target)) {
|
|
67
|
-
setIsDialogOpen(false);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
71
|
-
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
72
|
-
}, []);
|
|
73
69
|
useEffect(() => {
|
|
74
70
|
if (!isDialogOpen)
|
|
75
71
|
return;
|
|
@@ -125,11 +121,13 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
125
121
|
resetErrors();
|
|
126
122
|
setInputValue(e.currentTarget.value);
|
|
127
123
|
const parsedDate = createNewDate(e.currentTarget.value);
|
|
124
|
+
setHasDateError(false);
|
|
128
125
|
if (isValid(parsedDate)) {
|
|
129
126
|
setSelectedDate(parsedDate);
|
|
130
127
|
setMonth(parsedDate);
|
|
131
128
|
}
|
|
132
129
|
else {
|
|
130
|
+
setHasDateError(true);
|
|
133
131
|
setSelectedDate(undefined);
|
|
134
132
|
}
|
|
135
133
|
emitValue(e.currentTarget.value, parsedDate);
|
|
@@ -139,6 +137,7 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
139
137
|
if (value !== inputValue && inputRef.current) {
|
|
140
138
|
resetErrors();
|
|
141
139
|
setInputValue(value);
|
|
140
|
+
setHasDateError(false);
|
|
142
141
|
if (value) {
|
|
143
142
|
const parsedDate = createNewDate(value);
|
|
144
143
|
if (isValid(parsedDate)) {
|
|
@@ -147,6 +146,7 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
147
146
|
}
|
|
148
147
|
else {
|
|
149
148
|
setSelectedDate(undefined);
|
|
149
|
+
setHasDateError(true);
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
}
|
|
@@ -174,7 +174,7 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
174
174
|
const form = inputRef.current?.form;
|
|
175
175
|
if (!form)
|
|
176
176
|
return;
|
|
177
|
-
const handleSubmit = (
|
|
177
|
+
const handleSubmit = (_e) => {
|
|
178
178
|
if (!noValidation) {
|
|
179
179
|
requestAnimationFrame(() => {
|
|
180
180
|
updateErrors(inputRef.current.validity, !isValid(createNewDate(inputRef.current.value)));
|
|
@@ -214,10 +214,10 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
214
214
|
return;
|
|
215
215
|
header?.focus();
|
|
216
216
|
}, [isDialogOpen]);
|
|
217
|
-
return (jsxs("div", { className: clsx("ids-datepicker", { "ids-datepicker--invalid": !noValidation && hasError }, className), ...props, children: [isDialogOpen && jsx("div", { className: "ids-datepicker__overlay" }), label && (jsxs("div", { className: "ids-label-wrapper ids-label-wrapper--margin-bottom", children: [jsx("label", { htmlFor: inputId, className: "ids-label", children: label }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] })), jsxs("div", { className: "ids-datepicker__input-wrapper", children: [jsx("input", { className: clsx("ids-datepicker__input", { "ids-input--light": light }), ref: inputRef, style: { fontSize: "inherit" }, id: inputId, type: "text", value: inputValue, required: required, disabled: disabled, "aria-invalid": !noValidation && hasError, placeholder: placeholder, onChange: handleInputChange, onInvalid: handleInvalid, onBlur: handleBlur, pattern: "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$" }), jsx("button", { ref: triggerRef, type: "button", className: "ids-datepicker__trigger", style: { fontSize: "inherit" }, disabled: disabled, onClick: handleOpenDialog, "aria-controls": "dialog", "aria-haspopup": "dialog", "aria-expanded": isDialogOpen, "aria-label": srOpenText }), jsxs("div", { className: clsx("ids-datepicker__dialog", { "ids-datepicker__dialog--show": isDialogOpen }), role: "dialog", ref: dialogRef, id: dialogId, "aria-modal": true, "aria-labelledby": headerId, children: [jsxs("div", { className: "ids-datepicker__dialog-bar", children: [jsx("div", { className: "ids-datepicker__dialog-header", id: headerId, ref: headerRef, tabIndex: -1, children: calendarHeader }), jsx("button", { className: "ids-datepicker__dialog-close-button", onClick: closeDialog, "aria-label": srCloseText })] }), jsx(DayPicker, { mode: "single", locale: sv, labels: {
|
|
217
|
+
return (jsxs("div", { className: clsx("ids-datepicker", { "ids-datepicker--invalid": !noValidation && hasError }, className), ...props, children: [isDialogOpen && jsx("div", { className: "ids-datepicker__overlay" }), label && (jsxs("div", { className: "ids-label-wrapper ids-label-wrapper--margin-bottom", children: [jsx("label", { htmlFor: inputId, className: "ids-label", children: label }), tooltip && jsx("span", { className: "ids-label__tooltip", children: tooltip })] })), jsxs("div", { className: "ids-datepicker__input-wrapper", children: [jsx("input", { className: clsx("ids-datepicker__input", { "ids-input--light": light }), ref: inputRef, style: { fontSize: "inherit" }, id: inputId, type: "text", value: inputValue, required: required, disabled: disabled, "aria-invalid": !noValidation && hasError, placeholder: placeholder, onChange: handleInputChange, onInvalid: handleInvalid, onBlur: handleBlur, pattern: "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$" }), jsx("button", { ref: triggerRef, type: "button", className: "ids-datepicker__trigger", style: { fontSize: "inherit" }, disabled: disabled, onClick: handleOpenDialog, "aria-controls": "dialog", "aria-haspopup": "dialog", "aria-expanded": isDialogOpen, "aria-label": srOpenText }), jsxs("div", { className: clsx("ids-datepicker__dialog", { "ids-datepicker__dialog--show": isDialogOpen }), role: "dialog", ref: dialogRef, id: dialogId, "aria-modal": true, "aria-labelledby": headerId, children: [jsxs("div", { className: "ids-datepicker__dialog-bar", children: [jsx("div", { className: "ids-datepicker__dialog-header", id: headerId, ref: headerRef, tabIndex: -1, children: calendarHeader }), jsx("button", { className: "ids-datepicker__dialog-close-button", type: "button", onClick: closeDialog, "aria-label": srCloseText })] }), jsx(DayPicker, { mode: "single", locale: sv, labels: {
|
|
218
218
|
labelWeekNumberHeader: () => "Veckonumer",
|
|
219
|
-
labelWeekNumber: (
|
|
220
|
-
labelDayButton(date,
|
|
219
|
+
labelWeekNumber: (_weekNumber) => `vecka`,
|
|
220
|
+
labelDayButton(date, _modifiers, _options, dateLib) {
|
|
221
221
|
const formattedDate = dateLib.format(date, "EEEE d MMMM yyyy", { locale: sv });
|
|
222
222
|
const weekNumber = getWeek(date, {
|
|
223
223
|
weekStartsOn: 1,
|
|
@@ -237,5 +237,6 @@ function IDSDatePicker({ label, id, value, light = false, placeholder = "ååå
|
|
|
237
237
|
YearsDropdown: props => (jsx(YearsDropdown, { ...props, disabled: disableNavigation, className: "ids-datepicker__year-select" }))
|
|
238
238
|
}, startMonth: startMonth, endMonth: endMonth, month: month, onMonthChange: setMonth, defaultMonth: defaultMonth, selected: selectedDate, onSelect: handleDayPickerSelect, onDayClick: onDayClick })] })] }), (showError || showInvalidError || showMissingError) && (jsxs(IDSErrorMessage, { id: errorMsgId, show: true, children: [showInvalidError && !showMissingError && !showError && invalidDateErrorMsg, showMissingError && !showInvalidError && !showError && missingDateErrorMsg, showError && errorMsg] }))] }));
|
|
239
239
|
}
|
|
240
|
+
IDSDatePicker.displayName = "IDSDatePicker";
|
|
240
241
|
|
|
241
242
|
export { IDSDatePicker };
|
|
@@ -6,4 +6,7 @@ interface IDSErrorMessageProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
6
6
|
children?: ReactNode;
|
|
7
7
|
}
|
|
8
8
|
export declare function IDSErrorMessage({ show, compact, id, children, className, ...props }: IDSErrorMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare namespace IDSErrorMessage {
|
|
10
|
+
var displayName: string;
|
|
11
|
+
}
|
|
9
12
|
export {};
|
|
@@ -6,5 +6,6 @@ function IDSErrorMessage({ show = false, compact = false, id, children, classNam
|
|
|
6
6
|
"ids-error-message--show": show
|
|
7
7
|
}, className), ...props, children: jsxs("span", { className: "ids-error-message__text", children: [" ", children, " "] }) }));
|
|
8
8
|
}
|
|
9
|
+
IDSErrorMessage.displayName = "IDSErrorMessage";
|
|
9
10
|
|
|
10
11
|
export { IDSErrorMessage };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
export interface CommonFormProps {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
required?: boolean;
|
|
5
|
+
invalid?: boolean;
|
|
6
|
+
noValidation?: boolean;
|
|
7
|
+
validationOnBlur?: boolean;
|
|
8
|
+
label?: string;
|
|
9
|
+
errorMsg?: string;
|
|
10
|
+
hint?: string | ReactNode;
|
|
11
|
+
tooltip?: ReactNode;
|
|
12
|
+
focusAnchor?: boolean;
|
|
13
|
+
dataTestId?: string;
|
|
14
|
+
light?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface CommonFormPropsWithReadOnly extends CommonFormProps {
|
|
17
|
+
readOnly?: boolean;
|
|
18
|
+
}
|