@inera/ids-react 9.1.1 → 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 +8 -12
- package/components/form/datepicker/datepicker.js +25 -23
- 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 +4 -6
- 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/useEsc.d.ts +1 -9
- package/components/utils/hooks/useEsc.js +14 -17
- 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
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { HTMLAttributes, ReactNode } from "react";
|
|
2
3
|
import "@inera/ids-design/components/accordion/accordion.css";
|
|
3
4
|
interface IDSAccordionBaseProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
5
|
headline: ReactNode;
|
|
6
|
+
subtitle?: string;
|
|
5
7
|
expanded?: boolean;
|
|
6
8
|
level?: 1 | 2;
|
|
7
9
|
headlineSize?: "m" | "s" | "xs";
|
|
@@ -10,8 +12,9 @@ interface IDSAccordionBaseProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
10
12
|
children?: ReactNode;
|
|
11
13
|
onToggleAccordion?: () => void;
|
|
12
14
|
client?: boolean;
|
|
15
|
+
accordionRef?: React.Ref<HTMLDivElement>;
|
|
13
16
|
}
|
|
14
|
-
export declare function IDSAccordionBase({ headline, expanded, level, headlineSize, lean, noBorder, onToggleAccordion, client, children, className, ...props }: IDSAccordionBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function IDSAccordionBase({ headline, subtitle, expanded, level, headlineSize, lean, noBorder, onToggleAccordion, client, children, className, accordionRef, ...props }: IDSAccordionBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
15
18
|
export declare namespace IDSAccordionBase {
|
|
16
19
|
var displayName: string;
|
|
17
20
|
}
|
|
@@ -3,15 +3,41 @@ import clsx from 'clsx';
|
|
|
3
3
|
import React, { useId } from 'react';
|
|
4
4
|
import '@inera/ids-design/components/accordion/accordion.css';
|
|
5
5
|
|
|
6
|
-
function IDSAccordionBase({ headline, expanded = false, level = 1, headlineSize = "m", lean = false, noBorder, onToggleAccordion, client = false, children, className, ...props }) {
|
|
7
|
-
const
|
|
6
|
+
function IDSAccordionBase({ headline, subtitle, expanded = false, level = 1, headlineSize = "m", lean = false, noBorder, onToggleAccordion, client = false, children, className, accordionRef, ...props }) {
|
|
7
|
+
const reactId = useId();
|
|
8
|
+
const headerId = `accordion-header-${reactId}`;
|
|
9
|
+
const contentId = `accordion-content-${reactId}`;
|
|
8
10
|
const hasChildren = !!React.Children.toArray(children).length;
|
|
9
11
|
const handleKeyDown = (e) => {
|
|
10
12
|
if (!onToggleAccordion)
|
|
11
13
|
return;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const container = e.currentTarget.closest("[data-accordion-root]") || document;
|
|
15
|
+
const items = Array.from(container.querySelectorAll("[data-accordion-header]"));
|
|
16
|
+
const currentIndex = items.indexOf(e.currentTarget);
|
|
17
|
+
if (currentIndex === -1)
|
|
18
|
+
return;
|
|
19
|
+
switch (e.key) {
|
|
20
|
+
case "Enter":
|
|
21
|
+
case " ":
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
onToggleAccordion();
|
|
24
|
+
break;
|
|
25
|
+
case "ArrowDown":
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
items[currentIndex + 1]?.focus();
|
|
28
|
+
break;
|
|
29
|
+
case "ArrowUp":
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
items[currentIndex - 1]?.focus();
|
|
32
|
+
break;
|
|
33
|
+
case "Home":
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
items[0]?.focus();
|
|
36
|
+
break;
|
|
37
|
+
case "End":
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
items[items.length - 1]?.focus();
|
|
40
|
+
break;
|
|
15
41
|
}
|
|
16
42
|
};
|
|
17
43
|
const toggleHandlers = client && onToggleAccordion
|
|
@@ -20,13 +46,13 @@ function IDSAccordionBase({ headline, expanded = false, level = 1, headlineSize
|
|
|
20
46
|
onKeyDown: handleKeyDown
|
|
21
47
|
}
|
|
22
48
|
: {};
|
|
23
|
-
return (jsxs("div", { ...props, className: clsx("ids-accordion", {
|
|
49
|
+
return (jsxs("div", { ...props, ref: accordionRef, className: clsx("ids-accordion", {
|
|
24
50
|
"ids-accordion--expanded": expanded,
|
|
25
51
|
"ids-accordion--no-border": noBorder,
|
|
26
52
|
"ids-accordion--lean": lean,
|
|
27
53
|
"ids-accordion--has-children": !!hasChildren,
|
|
28
54
|
"ids-accordion--is-child": level === 2
|
|
29
|
-
}, className), children: [jsx("div", { className: clsx("ids-accordion__button", `ids-accordion__button--${headlineSize}`), role: "button", tabIndex: 0, "aria-expanded": expanded, "aria-controls": contentId, ...toggleHandlers, children:
|
|
55
|
+
}, className), children: [jsx("div", { className: clsx("ids-accordion__button", `ids-accordion__button--${headlineSize}`), role: "button", tabIndex: 0, "data-accordion-header": true, "aria-expanded": expanded, "aria-controls": contentId, ...toggleHandlers, children: jsxs("div", { id: headerId, className: clsx("ids-accordion__headline", `ids-accordion__headline-${level}`, `ids-accordion__headline--${headlineSize}`, expanded && "ids-accordion__headline--expanded"), children: [headline, !!subtitle && jsx("div", { className: "ids-accordion__subtitle", children: subtitle })] }) }), jsx("div", { "aria-hidden": !expanded, id: contentId, "aria-labelledby": headerId, role: "region", className: "ids-accordion__content", children: jsx("div", { "data-accordion-root": true, children: children }) })] }));
|
|
30
56
|
}
|
|
31
57
|
IDSAccordionBase.displayName = "IDSAccordionBase";
|
|
32
58
|
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
2
|
interface IDSAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
headline: ReactNode;
|
|
4
|
+
subtitle?: string;
|
|
4
5
|
accordions?: ReactNode;
|
|
5
6
|
headlineSize?: "m" | "s" | "xs";
|
|
6
7
|
level?: 1 | 2;
|
|
7
8
|
expanded?: boolean;
|
|
9
|
+
defaultExpanded?: boolean;
|
|
8
10
|
lean?: boolean;
|
|
9
11
|
noBorder?: boolean;
|
|
10
12
|
onCollapsed?: () => void;
|
|
11
13
|
onExpanded?: () => void;
|
|
14
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
12
15
|
}
|
|
13
|
-
export declare function IDSAccordion({ headline, accordions, level, headlineSize, expanded, lean, noBorder, onCollapsed, onExpanded,
|
|
16
|
+
export declare function IDSAccordion({ headline, subtitle, accordions, level, headlineSize, expanded, defaultExpanded, lean, noBorder, onCollapsed, onExpanded, onExpandedChange, children, ...props }: IDSAccordionProps): import("react/jsx-runtime").JSX.Element;
|
|
14
17
|
export declare namespace IDSAccordion {
|
|
15
18
|
var displayName: string;
|
|
16
19
|
}
|
|
@@ -3,26 +3,29 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { useState, useRef, useEffect } from 'react';
|
|
4
4
|
import { IDSAccordionBase } from './accordion-base.js';
|
|
5
5
|
|
|
6
|
-
function IDSAccordion({ headline, accordions, level = 1, headlineSize = level === 2 ? "s" : "m", expanded = false, lean = false, noBorder = false, onCollapsed, onExpanded,
|
|
7
|
-
const
|
|
6
|
+
function IDSAccordion({ headline, subtitle, accordions, level = 1, headlineSize = level === 2 ? "s" : "m", expanded, defaultExpanded = false, lean = false, noBorder = false, onCollapsed, onExpanded, onExpandedChange, children, ...props }) {
|
|
7
|
+
const isControlled = expanded !== undefined;
|
|
8
|
+
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
8
9
|
const [isLean, setIsLean] = useState(lean);
|
|
9
10
|
const accordionRef = useRef(null);
|
|
11
|
+
const isExpanded = isControlled ? expanded : internalExpanded;
|
|
10
12
|
useEffect(() => {
|
|
11
13
|
if (level === 1 && accordionRef.current?.closest(".ids-card") && !accordions) {
|
|
12
14
|
setIsLean(true);
|
|
13
15
|
}
|
|
14
|
-
}, [level]);
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
setIsExpanded(expanded);
|
|
17
|
-
}, [expanded]);
|
|
16
|
+
}, [level, accordions]);
|
|
18
17
|
const toggleExpanded = () => {
|
|
19
|
-
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const next = !isExpanded;
|
|
19
|
+
if (!isControlled) {
|
|
20
|
+
setInternalExpanded(next);
|
|
21
|
+
}
|
|
22
|
+
onExpandedChange?.(next);
|
|
23
|
+
if (next)
|
|
23
24
|
onExpanded?.();
|
|
25
|
+
else
|
|
26
|
+
onCollapsed?.();
|
|
24
27
|
};
|
|
25
|
-
return (jsx(
|
|
28
|
+
return (jsx(IDSAccordionBase, { ...props, client: true, accordionRef: accordionRef, headline: headline, subtitle: subtitle, level: level, headlineSize: headlineSize, expanded: isExpanded, lean: isLean, noBorder: noBorder, onToggleAccordion: toggleExpanded, children: children }));
|
|
26
29
|
}
|
|
27
30
|
IDSAccordion.displayName = "IDSAccordion";
|
|
28
31
|
|
|
@@ -19,3 +19,6 @@ export interface IDSAlertBaseProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
19
19
|
client?: boolean;
|
|
20
20
|
}
|
|
21
21
|
export declare function IDSAlertBase({ collapsible, ribbon, collapsed, dismissible, headline, collapsableHeadline, compact, type, srCloseText, srCollapseText, srExpandText, noRole, onClose, onToggleCollapse, client, children, className, ...props }: IDSAlertBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare namespace IDSAlertBase {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
@@ -20,10 +20,11 @@ function IDSAlertBase({ collapsible = false, ribbon = false, collapsed = false,
|
|
|
20
20
|
"ids-alert--collapsed": collapsed,
|
|
21
21
|
"ids-alert--ribbon": ribbon,
|
|
22
22
|
"ids-alert--compact": compact,
|
|
23
|
-
"ids-alert--dismissible": dismissible
|
|
24
|
-
}, className), children: compact || ribbon ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__content", children: [jsx("span", { className: "ids-alert__content-icon", "aria-hidden": "true" }), jsx("span", { className: "ids-alert__content-text", children: children })] }), dismissible && jsx("button", { className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText })] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__header", children: [collapsible && !compact && !ribbon && (jsx("button", { className: clsx("ids-alert__expand-button", {
|
|
23
|
+
"ids-alert--dismissible": dismissible
|
|
24
|
+
}, className), children: compact || ribbon ? (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__content", children: [jsx("span", { className: "ids-alert__content-icon", "aria-hidden": "true" }), jsx("span", { className: "ids-alert__content-text", children: children })] }), dismissible && (jsx("button", { type: "button", className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "ids-alert__header", children: [collapsible && !compact && !ribbon && (jsx("button", { type: "button", className: clsx("ids-alert__expand-button", {
|
|
25
25
|
"ids-alert__expand-button--expanded": !collapsed
|
|
26
|
-
}), ...toggleHandler, "aria-controls": contentId, "aria-expanded": !collapsed, children: jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: collapsableHeadline }), jsx("span", { className: "ids-alert__sr-only", children: collapsed ? srExpandText : srCollapseText })] }) })), !collapsible && (jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: headline })] })), dismissible && !collapsible && (jsx("button", { className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] }), jsx("div", { id: contentId, children: !collapsed && jsx("div", { className: "ids-alert__content", children: children }) })] })) }));
|
|
26
|
+
}), ...toggleHandler, "aria-controls": contentId, "aria-expanded": !collapsed, children: jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: collapsableHeadline }), jsx("span", { className: "ids-alert__sr-only", children: collapsed ? srExpandText : srCollapseText })] }) })), !collapsible && (jsxs("div", { className: "ids-alert__icon_and_text", children: [jsx("span", { className: "ids-alert__state-icon", "aria-hidden": "true" }), jsx("div", { className: "ids-alert__headline", children: headline })] })), dismissible && !collapsible && (jsx("button", { type: "button", className: "ids-alert__close", ...closeHandler, "aria-label": srCloseText }))] }), jsx("div", { id: contentId, children: !collapsed && jsx("div", { className: "ids-alert__content", children: children }) })] })) }));
|
|
27
27
|
}
|
|
28
|
+
IDSAlertBase.displayName = "IDSAlertBase";
|
|
28
29
|
|
|
29
30
|
export { IDSAlertBase };
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { IDSAlertBaseProps } from "./alert-base";
|
|
2
2
|
export interface IDSAlertProps extends Omit<IDSAlertBaseProps, "contentId" | "onToggleCollapse"> {
|
|
3
|
+
collapsed?: boolean;
|
|
4
|
+
defaultCollapsed?: boolean;
|
|
3
5
|
onCollapsedChange?: (isCollapsed: boolean) => void;
|
|
4
6
|
}
|
|
5
|
-
export declare function IDSAlert({ collapsed, onCollapsedChange, onClose, children, className, ...props }: IDSAlertProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function IDSAlert({ collapsed, defaultCollapsed, onCollapsedChange, onClose, children, className, ...props }: IDSAlertProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare namespace IDSAlert {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useState
|
|
3
|
+
import { useState } from 'react';
|
|
4
4
|
import { IDSAlertBase } from './alert-base.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
// FIXME 10.0 byt till expanded och defaultExpanded?
|
|
7
|
+
function IDSAlert({ collapsed, defaultCollapsed = false, onCollapsedChange, onClose, children, className, ...props }) {
|
|
8
|
+
const isControlled = collapsed !== undefined;
|
|
9
|
+
const [internalCollapsed, setInternalCollapsed] = useState(defaultCollapsed);
|
|
10
|
+
const isCollapsed = isControlled ? collapsed : internalCollapsed;
|
|
11
11
|
const handleToggleCollapse = () => {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const next = !isCollapsed;
|
|
13
|
+
if (!isControlled) {
|
|
14
|
+
setInternalCollapsed(next);
|
|
15
|
+
}
|
|
16
|
+
onCollapsedChange?.(next);
|
|
15
17
|
};
|
|
16
18
|
const handleClose = () => {
|
|
17
19
|
onClose?.();
|
|
18
20
|
};
|
|
19
21
|
return (jsx(IDSAlertBase, { ...props, client: true, collapsed: isCollapsed, className: className, onToggleCollapse: handleToggleCollapse, onClose: handleClose, children: children }));
|
|
20
22
|
}
|
|
23
|
+
IDSAlert.displayName = "IDSAlert";
|
|
21
24
|
|
|
22
25
|
export { IDSAlert };
|
|
@@ -4,4 +4,4 @@ export interface IDSBadgeProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
4
4
|
type?: "primary" | "secondary" | "neutral" | "info" | "attention" | "success" | "error";
|
|
5
5
|
icon?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare
|
|
7
|
+
export declare const IDSBadge: React.NamedExoticComponent<IDSBadgeProps>;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
2
3
|
import clsx from 'clsx';
|
|
3
4
|
import '@inera/ids-design/components/badge/badge.css';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
6
|
+
const IDSBadge = React.memo(function IDSBadge(props) {
|
|
7
|
+
const { type = "primary", icon, children, className, ...rest } = props;
|
|
8
|
+
return (jsx("div", { ...rest, className: clsx(`ids-badge ids-badge--${type}`, className), children: jsxs("div", { className: "ids-badge__inner", children: [icon && jsx("span", { className: `ids-icon-${icon}`, "aria-hidden": "true" }), icon && children && jsx("span", { className: "ids-badge__icon" }), children] }) }));
|
|
9
|
+
});
|
|
10
|
+
IDSBadge.displayName = "IDSBadge";
|
|
8
11
|
|
|
9
12
|
export { IDSBadge };
|
|
@@ -5,4 +5,7 @@ interface IDSBreadcrumbsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
mobileLink?: React.ReactElement<React.AnchorHTMLAttributes<HTMLAnchorElement> | React.LinkHTMLAttributes<HTMLLinkElement>>;
|
|
6
6
|
}
|
|
7
7
|
export declare function IDSBreadcrumbs({ lead, mobileLink, children, className, ...props }: IDSBreadcrumbsProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare namespace IDSBreadcrumbs {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
8
11
|
export {};
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useRef } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import '@inera/ids-design/components/breadcrumbs/breadcrumbs.css';
|
|
5
5
|
|
|
6
6
|
function IDSBreadcrumbs({ lead = "Du är här", mobileLink, children, className, ...props }) {
|
|
7
|
+
const listRef = useRef(null);
|
|
8
|
+
const handleKeyDown = (e) => {
|
|
9
|
+
if (!listRef.current)
|
|
10
|
+
return;
|
|
11
|
+
const items = listRef.current.querySelectorAll("[data-crumb] a, [data-crumb] button");
|
|
12
|
+
if (!items.length)
|
|
13
|
+
return;
|
|
14
|
+
const active = document.activeElement;
|
|
15
|
+
const currentIndex = Array.from(items).indexOf(active);
|
|
16
|
+
if (currentIndex === -1)
|
|
17
|
+
return;
|
|
18
|
+
if (e.key === "ArrowRight") {
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
items[currentIndex + 1]?.focus();
|
|
21
|
+
}
|
|
22
|
+
if (e.key === "ArrowLeft") {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
items[currentIndex - 1]?.focus();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
7
27
|
const getMobileLink = () => {
|
|
8
28
|
if (mobileLink) {
|
|
9
29
|
return React.cloneElement(mobileLink, { className: "ids-breadcrumbs__mobile-link" });
|
|
@@ -17,14 +37,15 @@ function IDSBreadcrumbs({ lead = "Du är här", mobileLink, children, className,
|
|
|
17
37
|
return links.flatMap((child, index) => {
|
|
18
38
|
const isLast = index === links.length - 1;
|
|
19
39
|
if (isLast) {
|
|
20
|
-
return (jsx("li", { className: "ids-breadcrumbs__crumb ids-breadcrumbs__crumb--current", children: child }, index));
|
|
40
|
+
return (jsx("li", { className: "ids-breadcrumbs__crumb ids-breadcrumbs__crumb--current", "data-crumb": true, children: child }, index));
|
|
21
41
|
}
|
|
22
42
|
else {
|
|
23
|
-
return (jsxs("li", { className: "ids-breadcrumbs__crumb", children: [child, jsx("span", { className: "ids-breadcrumbs__crumb__separator", "aria-hidden": "true", children: "/" })] }, index));
|
|
43
|
+
return (jsxs("li", { className: "ids-breadcrumbs__crumb", "data-crumb": true, children: [child, jsx("span", { className: "ids-breadcrumbs__crumb__separator", "aria-hidden": "true", children: "/" })] }, index));
|
|
24
44
|
}
|
|
25
45
|
});
|
|
26
46
|
};
|
|
27
|
-
return (jsxs("nav", { ...props, className: clsx("ids-breadcrumbs", className), "aria-label": lead, children: [jsxs("ol", { className: "ids-breadcrumbs__desktop", children: [jsx("li", { className: "ids-breadcrumbs__lead", children: lead }), getLinks()] }), mobileLink && (jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon" }), getMobileLink()] }) }))] }));
|
|
47
|
+
return (jsxs("nav", { ...props, className: clsx("ids-breadcrumbs", className), "aria-label": lead, children: [jsxs("ol", { className: "ids-breadcrumbs__desktop", ref: listRef, onKeyDown: handleKeyDown, children: [jsx("li", { className: "ids-breadcrumbs__lead", children: lead }), getLinks()] }), mobileLink && (jsx("ol", { className: "ids-breadcrumbs__mobile", children: jsxs("li", { className: "ids-breadcrumbs__mobile-links", children: [jsx("span", { className: "ids-breadcrumbs__icon", "aria-hidden": "true" }), getMobileLink()] }) }))] }));
|
|
28
48
|
}
|
|
49
|
+
IDSBreadcrumbs.displayName = "IDSBreadcrumbs";
|
|
29
50
|
|
|
30
51
|
export { IDSBreadcrumbs };
|
|
@@ -9,4 +9,7 @@ interface IDSButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
9
9
|
break?: Break;
|
|
10
10
|
}
|
|
11
11
|
export declare function IDSButtonGroup({ rtl, justify, unresponsive, break: breakpoint, children, className, ...props }: IDSButtonGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare namespace IDSButtonGroup {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
12
15
|
export {};
|
|
@@ -4,20 +4,28 @@ import { forwardRef } from 'react';
|
|
|
4
4
|
import { IDSSpinner } from '../form/spinner/spinner.js';
|
|
5
5
|
|
|
6
6
|
const IDSButton = forwardRef(({ active = false, block = false, disabled = false, fab = false, iconButton = false, icon = "", mBlock = false, sBlock = false, loading = false, tertiary = false, secondary = false, size = "m", submit = false, toggle = false, focusAnchor = false, children, className, ...props }, ref) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
"ids-button
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"ids-button
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
let classNames;
|
|
8
|
+
if (fab) {
|
|
9
|
+
classNames = clsx("ids-button", {
|
|
10
|
+
"ids-button--fab": fab,
|
|
11
|
+
"ids-focus-anchor": focusAnchor
|
|
12
|
+
}, className);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
classNames = clsx("ids-button", !!size && `ids-button--${size}`, {
|
|
16
|
+
"ids-button--m-block": mBlock,
|
|
17
|
+
"ids-button--s-block": sBlock,
|
|
18
|
+
"ids-button--active": active,
|
|
19
|
+
"ids-button--icon": (icon && !children) || iconButton,
|
|
20
|
+
"ids-button--secondary": secondary,
|
|
21
|
+
"ids-button--tertiary": tertiary,
|
|
22
|
+
"ids-button--disabled": disabled,
|
|
23
|
+
"ids-button--block": block,
|
|
24
|
+
"ids-button--submit": submit,
|
|
25
|
+
"ids-button--loading": loading,
|
|
26
|
+
"ids-focus-anchor": focusAnchor
|
|
27
|
+
}, className);
|
|
28
|
+
}
|
|
21
29
|
return (jsxs("button", { ...props, ref: ref, className: classNames, "aria-disabled": disabled || loading, ...(toggle ? { "aria-pressed": active } : {}), tabIndex: !disabled && !loading ? 0 : -1, disabled: disabled, children: [icon && jsx("span", { className: `ids-icon-${icon}` }), loading && jsx(IDSSpinner, { variant: !secondary && !tertiary ? "3" : "2" }), !loading && children] }));
|
|
22
30
|
});
|
|
23
31
|
IDSButton.displayName = "IDSButton";
|
|
@@ -10,4 +10,7 @@ interface IDSCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
10
10
|
interactive?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare function IDSCard({ focusCard, fill, borderTop, lean, hideOnM, hideOnS, interactive, children, className, ...props }: IDSCardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare namespace IDSCard {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
13
16
|
export {};
|
package/components/card/card.js
CHANGED
|
@@ -6,12 +6,13 @@ function IDSCard({ focusCard = false, fill = false, borderTop = false, lean = fa
|
|
|
6
6
|
return (jsxs("div", { ...props, className: clsx("ids-card", {
|
|
7
7
|
"ids-card--fill": fill,
|
|
8
8
|
"ids-card--border-top": !!borderTop && !focusCard,
|
|
9
|
-
"ids-card--focus
|
|
9
|
+
"ids-card--focus": !!focusCard && !borderTop,
|
|
10
10
|
"ids-card--hide-on-m": hideOnM,
|
|
11
11
|
"ids-card--hide-on-s": hideOnS,
|
|
12
12
|
"ids-card--lean": lean,
|
|
13
13
|
"ids-card--interactive": !!interactive && !hideOnM && !hideOnS && !borderTop
|
|
14
14
|
}, className), children: [!!borderTop && !focusCard && !interactive && jsx("div", { className: "ids-card__border-top" }), jsx("div", { className: "ids-card__content", children: children })] }));
|
|
15
15
|
}
|
|
16
|
+
IDSCard.displayName = "IDSCard";
|
|
16
17
|
|
|
17
18
|
export { IDSCard };
|
|
@@ -9,3 +9,6 @@ export interface IDSCarouselItemProps extends React.HTMLAttributes<HTMLDivElemen
|
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
}
|
|
11
11
|
export declare function IDSCarouselItem({ headline, step, description, activeSlide, previousSlide, nextSlide, children, className, ...props }: IDSCarouselItemProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare namespace IDSCarouselItem {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
@@ -22,5 +22,6 @@ function IDSCarouselItem({ headline, step, description, activeSlide = false, pre
|
|
|
22
22
|
next: nextSlide
|
|
23
23
|
}, className), "aria-hidden": !activeSlide, inert: !activeSlide, children: jsxs("div", { className: clsx("ids-carousel-item"), children: [jsx("div", { className: "ids-carousel-item__image", children: image }), jsxs("div", { className: "ids-carousel-item__content", children: [headline && jsx("h2", { className: "ids-carousel-item__headline", children: headline }), otherContent, hasFooterContent && (jsxs("div", { className: "ids-carousel-item__footer", children: [description && jsx("div", { className: "ids-carousel-item__description", children: description }), step && (jsx("div", { className: "ids-carousel-item__step", children: jsx("div", { className: "ids-tag", children: step }) }))] }))] })] }) }));
|
|
24
24
|
}
|
|
25
|
+
IDSCarouselItem.displayName = "IDSCarouselItem";
|
|
25
26
|
|
|
26
27
|
export { IDSCarouselItem };
|
|
@@ -14,4 +14,7 @@ interface IDSDateLabelProps extends DetailedHTMLProps<TimeHTMLAttributes<HTMLTim
|
|
|
14
14
|
srText?: string;
|
|
15
15
|
}
|
|
16
16
|
export declare function IDSDateLabel({ date, year, month, day, monthLabel, dateTo, yearTo, monthTo, monthToLabel, srText, dayTo, children, className, ...props }: IDSDateLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare namespace IDSDateLabel {
|
|
18
|
+
var displayName: string;
|
|
19
|
+
}
|
|
17
20
|
export {};
|
|
@@ -14,5 +14,6 @@ function IDSDateLabel({ date = null, year = 0, month = 0, day = 0, monthLabel =
|
|
|
14
14
|
const getMonthToText = () => (monthToLabel ? monthToLabel : getMonthAsSweText(getMonthTo() - 1, 3));
|
|
15
15
|
return (jsxs("span", { ...props, className: clsx("ids-date-label", className), "aria-label": srText, role: "text", children: [jsxs("time", { className: "ids-date-label__time", "aria-hidden": "true", children: [jsx("span", { className: "ids-date-label__day", children: getDay() }), jsx("span", { className: "ids-date-label__month", children: getMonthText() }), jsx("span", { className: "ids-date-label__year", children: getYear() })] }), !!(dateTo || (dayTo && monthTo && yearTo)) && (jsxs("time", { className: "ids-date-label__time ids-date-label__time--separator", "aria-hidden": "true", children: [jsx("span", { className: "ids-date-label__day", children: getDayTo() }), jsx("span", { className: "ids-date-label__month", children: getMonthToText() }), jsx("span", { className: "ids-date-label__year", children: getYearTo() })] }))] }));
|
|
16
16
|
}
|
|
17
|
+
IDSDateLabel.displayName = "IDSDateLabel";
|
|
17
18
|
|
|
18
19
|
export { IDSDateLabel };
|
|
@@ -13,7 +13,6 @@ export interface IDSDialogBaseProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
13
13
|
srClose?: string;
|
|
14
14
|
noScrollAreaFocus?: boolean;
|
|
15
15
|
noOverlay?: boolean;
|
|
16
|
-
dialogRef?: React.Ref<HTMLDivElement>;
|
|
17
16
|
scrollAreaRef?: React.Ref<HTMLDivElement>;
|
|
18
17
|
onOverlayClick?: () => void;
|
|
19
18
|
client?: boolean;
|
|
@@ -3,7 +3,7 @@ import { forwardRef, useId } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import '@inera/ids-design/components/dialog/dialog.css';
|
|
5
5
|
|
|
6
|
-
const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headline, actions, dismissible, onCloseDialog, srClose = "Stäng", noScrollAreaFocus, noOverlay = false, noFocusTrap = false,
|
|
6
|
+
const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headline, actions, dismissible, onCloseDialog, srClose = "Stäng", noScrollAreaFocus, noOverlay = false, noFocusTrap = false, scrollAreaRef, onOverlayClick, client = false, children, className, ...props }, ref) => {
|
|
7
7
|
const reactId = useId();
|
|
8
8
|
const headlineId = `dialog-header-${reactId}`;
|
|
9
9
|
const overlayHandler = client && onOverlayClick
|
|
@@ -16,11 +16,11 @@ const IDSDialogBase = forwardRef(({ show = false, width, maxWidth, height, headl
|
|
|
16
16
|
onClick: onCloseDialog
|
|
17
17
|
}
|
|
18
18
|
: {};
|
|
19
|
-
return (jsxs(Fragment, { children: [!noOverlay && (jsx("div", { className: `ids-dialog-overlay ${!show ? "ids-dialog-overlay--hidden" : ""}`, ...overlayHandler })), jsxs("div", { ...props, className: clsx("ids-dialog", {
|
|
19
|
+
return (jsxs(Fragment, { children: [!noOverlay && (jsx("div", { className: `ids-dialog-overlay ${!show ? "ids-dialog-overlay--hidden" : ""}`, ...overlayHandler, "aria-hidden": "true" })), jsxs("div", { ...props, className: clsx("ids-dialog", {
|
|
20
20
|
"ids-dialog--hidden": !show,
|
|
21
21
|
"ids-focus-trap": !noFocusTrap,
|
|
22
22
|
"ids-dialog--dismissible": !!dismissible
|
|
23
|
-
}, className), ref:
|
|
23
|
+
}, className), ref: ref, role: "dialog", "aria-modal": "true", "aria-labelledby": headline ? headlineId : undefined, style: { width, maxWidth, height, maxHeight: height || undefined }, children: [dismissible && (jsx("div", { className: "ids-dialog__dismissible", children: jsx("button", { "aria-label": srClose, ...closeHandler, className: "ids-dialog__close-button" }) })), jsxs("div", { ref: scrollAreaRef, className: clsx("ids-dialog__body", {
|
|
24
24
|
"ids-dialog__body--scroll-area-focus": !noScrollAreaFocus
|
|
25
25
|
}), tabIndex: noScrollAreaFocus ? -1 : 0, children: [jsx("div", { className: "ids-dialog__body-headline", id: headlineId, children: headline }), jsx("div", { className: "ids-dialog__body-content", children: children }), actions && jsx("div", { className: "ids-dialog__footer", children: actions })] })] })] }));
|
|
26
26
|
});
|
|
@@ -18,3 +18,6 @@ export interface IDSDialogProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
18
18
|
onVisibilityChange?: (isVisible: boolean) => void;
|
|
19
19
|
}
|
|
20
20
|
export declare function IDSDialog({ show, srClose, headline, width, maxWidth, height, trigger, actions, noOverlay, dismissible, autoFocus, noFocusTrap, persistent, keepScrollbar, noScrollAreaFocus, onVisibilityChange, children, className, ...props }: IDSDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare namespace IDSDialog {
|
|
22
|
+
var displayName: string;
|
|
23
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useState, useRef,
|
|
3
|
+
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
4
4
|
import { IDSDialogBase } from './dialog-base.js';
|
|
5
5
|
import { useFocusTrap } from '../utils/hooks/useFocusTrap.js';
|
|
6
6
|
import { useEsc } from '../utils/hooks/useEsc.js';
|
|
@@ -10,8 +10,23 @@ function IDSDialog({ show = false, srClose = "Stäng", headline, width, maxWidth
|
|
|
10
10
|
const triggerRef = useRef(null);
|
|
11
11
|
const dialogRef = useRef(null);
|
|
12
12
|
const scrollAreaRef = useRef(null);
|
|
13
|
+
const closeDialog = useCallback(() => {
|
|
14
|
+
setIsVisible(false);
|
|
15
|
+
focusTrigger();
|
|
16
|
+
}, []);
|
|
13
17
|
useFocusTrap(dialogRef.current, isVisible && !noFocusTrap);
|
|
14
|
-
useEsc(
|
|
18
|
+
useEsc(closeDialog, triggerRef, dialogRef, !persistent && isVisible);
|
|
19
|
+
const focusTrigger = () => {
|
|
20
|
+
const container = triggerRef.current;
|
|
21
|
+
if (!container)
|
|
22
|
+
return;
|
|
23
|
+
const el = container.querySelector('button, [href], input, [tabindex]:not([tabindex="-1"])');
|
|
24
|
+
el?.focus();
|
|
25
|
+
};
|
|
26
|
+
const overlayClick = useCallback(() => {
|
|
27
|
+
if (!persistent)
|
|
28
|
+
setIsVisible(false);
|
|
29
|
+
}, []);
|
|
15
30
|
// Sync prop show
|
|
16
31
|
useEffect(() => {
|
|
17
32
|
setIsVisible(show);
|
|
@@ -53,23 +68,8 @@ function IDSDialog({ show = false, srClose = "Stäng", headline, width, maxWidth
|
|
|
53
68
|
}
|
|
54
69
|
}
|
|
55
70
|
}, [isVisible, autoFocus]);
|
|
56
|
-
|
|
57
|
-
const container = triggerRef.current;
|
|
58
|
-
if (!container)
|
|
59
|
-
return;
|
|
60
|
-
const focusable = container.querySelector('button, [href], input, [tabindex]:not([tabindex="-1"])');
|
|
61
|
-
focusable?.focus();
|
|
62
|
-
};
|
|
63
|
-
const overlayClick = useCallback(() => {
|
|
64
|
-
if (!persistent)
|
|
65
|
-
setIsVisible(false);
|
|
66
|
-
focusTrigger();
|
|
67
|
-
}, []);
|
|
68
|
-
const closeDialog = useCallback(() => {
|
|
69
|
-
setIsVisible(false);
|
|
70
|
-
focusTrigger();
|
|
71
|
-
}, []);
|
|
72
|
-
return (jsxs(Fragment, { children: [jsx("div", { className: "ids-dialog__trigger", "aria-haspopup": "dialog", ref: triggerRef, children: trigger }), jsx(IDSDialogBase, { ...props, client: true, className: className, show: isVisible, noOverlay: noOverlay, headline: headline, dismissible: dismissible, width: width, maxWidth: maxWidth, height: height, dialogRef: dialogRef, scrollAreaRef: scrollAreaRef, actions: actions, noFocusTrap: noFocusTrap, noScrollAreaFocus: noScrollAreaFocus, onCloseDialog: closeDialog, onOverlayClick: overlayClick, children: children })] }));
|
|
71
|
+
return (jsxs(Fragment, { children: [jsx("div", { className: "ids-dialog__trigger", "aria-haspopup": "dialog", ref: triggerRef, children: trigger }), jsx(IDSDialogBase, { ...props, client: true, className: className, show: isVisible, noOverlay: noOverlay, headline: headline, dismissible: dismissible, width: width, maxWidth: maxWidth, height: height, ref: dialogRef, scrollAreaRef: scrollAreaRef, actions: actions, noFocusTrap: noFocusTrap, noScrollAreaFocus: noScrollAreaFocus, onCloseDialog: closeDialog, onOverlayClick: overlayClick, children: children })] }));
|
|
73
72
|
}
|
|
73
|
+
IDSDialog.displayName = "IDSDialog";
|
|
74
74
|
|
|
75
75
|
export { IDSDialog };
|
|
@@ -4,7 +4,9 @@ import clsx from 'clsx';
|
|
|
4
4
|
import '@inera/ids-design/components/dropdown/dropdown.css';
|
|
5
5
|
|
|
6
6
|
function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, position, mBlock = false, sBlock = false, client = false, children, className, maxHeight, minWidth, contentRef, ...props }) {
|
|
7
|
-
const
|
|
7
|
+
const reactId = useId();
|
|
8
|
+
const triggerId = `dropdown-trigger-${reactId}`;
|
|
9
|
+
const contentId = `dropdown-trigger-${reactId}`;
|
|
8
10
|
const handleKeyPress = (e) => {
|
|
9
11
|
if (!!onTriggerClick && (e.key === "Enter" || e.key === " ")) {
|
|
10
12
|
e.preventDefault();
|
|
@@ -23,6 +25,7 @@ function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, positi
|
|
|
23
25
|
id: triggerId,
|
|
24
26
|
"aria-expanded": expanded,
|
|
25
27
|
"aria-haspopup": "dialog",
|
|
28
|
+
"aria-controls": contentId,
|
|
26
29
|
...triggerHandlers,
|
|
27
30
|
...trigger.props
|
|
28
31
|
})
|
|
@@ -31,12 +34,12 @@ function IDSDropdownBase({ expanded, trigger, triggerRef, onTriggerClick, positi
|
|
|
31
34
|
"ids-dropdown--m-block": mBlock,
|
|
32
35
|
"ids-dropdown--s-block": sBlock,
|
|
33
36
|
"ids-dropdown--expanded": expanded
|
|
34
|
-
}, className), children: [enhancedTrigger, jsx("div", { ...props, ref: contentRef, "aria-labelledby": triggerId, "aria-
|
|
37
|
+
}, className), children: [enhancedTrigger, jsx("div", { id: contentId, ...props, ref: contentRef, "aria-labelledby": triggerId, hidden: !expanded, role: "dialog", "aria-modal": "true", className: clsx(`ids-dropdown-content ids-dropdown-content--position-${position}`, "ids-focus-trap", {
|
|
35
38
|
"ids-dropdown-content--show": expanded,
|
|
36
39
|
"ids-dropdown-content--mblock": mBlock,
|
|
37
40
|
"ids-dropdown-content--sblock": sBlock,
|
|
38
41
|
"ids-dropdown-content--scrollable": !!maxHeight
|
|
39
|
-
}, className), style: { minWidth }, children: jsx("div", { className: "ids-dropdown-content__scroll-area",
|
|
42
|
+
}, className), style: { minWidth }, children: jsx("div", { className: "ids-dropdown-content__scroll-area", style: { maxHeight: maxHeight || "auto" }, tabIndex: !!maxHeight ? 0 : -1, children: children }) })] }));
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
export { IDSDropdownBase };
|
|
@@ -3,7 +3,7 @@ import { forwardRef } from 'react';
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
|
|
5
5
|
const IDSDropdownContentButton = forwardRef(({ icon, children, className, ...props }, ref) => {
|
|
6
|
-
return (jsxs("button", { ...props, ref: ref,
|
|
6
|
+
return (jsxs("button", { ...props, ref: ref, className: clsx("ids-dropdown-content__button", className), children: [icon && jsx("span", { className: `ids-icon-${icon} ids-dropdown--start-icon` }), children] }));
|
|
7
7
|
});
|
|
8
8
|
IDSDropdownContentButton.displayName = "IDSDropdownContentButton";
|
|
9
9
|
|
|
@@ -3,3 +3,6 @@ export interface IDSDropdownContentLinkProps extends Omit<HTMLAttributes<HTMLAnc
|
|
|
3
3
|
children: ReactElement;
|
|
4
4
|
}
|
|
5
5
|
export declare function IDSDropdownContentLink({ children, className, ...props }: IDSDropdownContentLinkProps): ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
6
|
+
export declare namespace IDSDropdownContentLink {
|
|
7
|
+
var displayName: string;
|
|
8
|
+
}
|
|
@@ -6,9 +6,9 @@ function IDSDropdownContentLink({ children, className, ...props }) {
|
|
|
6
6
|
return cloneElement(children, {
|
|
7
7
|
...props,
|
|
8
8
|
className: clsx("ids-dropdown-content__link", className),
|
|
9
|
-
role: "menuitem",
|
|
10
9
|
children: content
|
|
11
10
|
});
|
|
12
11
|
}
|
|
12
|
+
IDSDropdownContentLink.displayName = "IDSDropdownContentLink";
|
|
13
13
|
|
|
14
14
|
export { IDSDropdownContentLink };
|