@coreui/react 5.0.0-beta.1 → 5.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/components/alert/CAlertHeading.d.ts +7 -6
- package/dist/cjs/components/alert/CAlertHeading.js +2 -2
- package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
- package/dist/cjs/components/badge/CBadge.d.ts +7 -6
- package/dist/cjs/components/badge/CBadge.js +2 -2
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/button/CButton.d.ts +7 -6
- package/dist/cjs/components/button/CButton.js +3 -3
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/card/CCardHeader.d.ts +7 -6
- package/dist/cjs/components/card/CCardHeader.js +2 -2
- package/dist/cjs/components/card/CCardHeader.js.map +1 -1
- package/dist/cjs/components/card/CCardImage.d.ts +7 -6
- package/dist/cjs/components/card/CCardImage.js +2 -2
- package/dist/cjs/components/card/CCardImage.js.map +1 -1
- package/dist/cjs/components/card/CCardSubtitle.d.ts +7 -6
- package/dist/cjs/components/card/CCardSubtitle.js +2 -2
- package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
- package/dist/cjs/components/card/CCardText.d.ts +7 -6
- package/dist/cjs/components/card/CCardText.js +2 -2
- package/dist/cjs/components/card/CCardText.js.map +1 -1
- package/dist/cjs/components/card/CCardTitle.d.ts +7 -6
- package/dist/cjs/components/card/CCardTitle.js +2 -2
- package/dist/cjs/components/card/CCardTitle.js.map +1 -1
- package/dist/cjs/components/carousel/CCarousel.js +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/cjs/components/dropdown/CDropdown.js +6 -4
- package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownHeader.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItem.d.ts +2 -6
- package/dist/cjs/components/dropdown/CDropdownItem.js +3 -3
- package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItemPlain.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownMenu.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownMenu.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
- package/dist/cjs/components/dropdown/utils.js.map +1 -1
- package/dist/cjs/components/form/CFormFeedback.d.ts +7 -6
- package/dist/cjs/components/form/CFormFeedback.js +2 -2
- package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
- package/dist/cjs/components/form/CFormText.d.ts +7 -6
- package/dist/cjs/components/form/CFormText.js +2 -2
- package/dist/cjs/components/form/CFormText.js.map +1 -1
- package/dist/cjs/components/form/CInputGroupText.d.ts +7 -6
- package/dist/cjs/components/form/CInputGroupText.js +2 -2
- package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
- package/dist/cjs/components/header/CHeaderBrand.d.ts +7 -6
- package/dist/cjs/components/header/CHeaderBrand.js +2 -2
- package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
- package/dist/cjs/components/header/CHeaderNav.d.ts +7 -6
- package/dist/cjs/components/header/CHeaderNav.js +2 -2
- package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
- package/dist/cjs/components/link/CLink.d.ts +8 -7
- package/dist/cjs/components/link/CLink.js +2 -2
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroup.d.ts +7 -6
- package/dist/cjs/components/list-group/CListGroup.js +2 -2
- package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroupItem.d.ts +7 -6
- package/dist/cjs/components/list-group/CListGroupItem.js +6 -6
- package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/cjs/components/modal/CModal.js +1 -2
- package/dist/cjs/components/modal/CModal.js.map +1 -1
- package/dist/cjs/components/modal/CModalTitle.d.ts +4 -3
- package/dist/cjs/components/modal/CModalTitle.js +2 -2
- package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
- package/dist/cjs/components/nav/CNav.d.ts +7 -6
- package/dist/cjs/components/nav/CNav.js +2 -2
- package/dist/cjs/components/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.d.ts +10 -4
- package/dist/cjs/components/nav/CNavGroup.js +11 -16
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupItems.d.ts +10 -3
- package/dist/cjs/components/nav/CNavGroupItems.js +3 -2
- package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/cjs/components/nav/CNavItem.d.ts +11 -2
- package/dist/cjs/components/nav/CNavItem.js +3 -2
- package/dist/cjs/components/nav/CNavItem.js.map +1 -1
- package/dist/cjs/components/nav/CNavLink.d.ts +2 -18
- package/dist/cjs/components/nav/CNavLink.js +3 -0
- package/dist/cjs/components/nav/CNavLink.js.map +1 -1
- package/dist/cjs/components/nav/CNavTitle.d.ts +7 -2
- package/dist/cjs/components/nav/CNavTitle.js +3 -2
- package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbar.d.ts +7 -6
- package/dist/cjs/components/navbar/CNavbar.js +2 -2
- package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarBrand.d.ts +8 -7
- package/dist/cjs/components/navbar/CNavbarBrand.js +3 -3
- package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarNav.d.ts +7 -6
- package/dist/cjs/components/navbar/CNavbarNav.js +3 -3
- package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasTitle.d.ts +7 -6
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.d.ts +4 -3
- package/dist/cjs/components/pagination/CPaginationItem.js +4 -4
- package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/cjs/components/placeholder/CPlaceholder.d.ts +7 -6
- package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
- package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js +19 -12
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarBrand.d.ts +10 -3
- package/dist/cjs/components/sidebar/CSidebarBrand.js +3 -2
- package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.d.ts +9 -2
- package/dist/cjs/components/sidebar/CSidebarNav.js +30 -12
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/spinner/CSpinner.d.ts +7 -6
- package/dist/cjs/components/spinner/CSpinner.js +2 -2
- package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
- package/dist/cjs/components/toast/CToastClose.d.ts +5 -4
- package/dist/cjs/components/toast/CToastClose.js +2 -2
- package/dist/cjs/components/toast/CToastClose.js.map +1 -1
- package/dist/cjs/components/toast/CToaster.js +1 -1
- package/dist/cjs/components/toast/CToaster.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +19 -12
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsC.js +2 -1
- package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/cjs/helpers/index.d.ts +2 -0
- package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
- package/dist/esm/components/alert/CAlertHeading.d.ts +7 -6
- package/dist/esm/components/alert/CAlertHeading.js +2 -2
- package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
- package/dist/esm/components/badge/CBadge.d.ts +7 -6
- package/dist/esm/components/badge/CBadge.js +2 -2
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/button/CButton.d.ts +7 -6
- package/dist/esm/components/button/CButton.js +3 -3
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/card/CCardHeader.d.ts +7 -6
- package/dist/esm/components/card/CCardHeader.js +2 -2
- package/dist/esm/components/card/CCardHeader.js.map +1 -1
- package/dist/esm/components/card/CCardImage.d.ts +7 -6
- package/dist/esm/components/card/CCardImage.js +2 -2
- package/dist/esm/components/card/CCardImage.js.map +1 -1
- package/dist/esm/components/card/CCardSubtitle.d.ts +7 -6
- package/dist/esm/components/card/CCardSubtitle.js +2 -2
- package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
- package/dist/esm/components/card/CCardText.d.ts +7 -6
- package/dist/esm/components/card/CCardText.js +2 -2
- package/dist/esm/components/card/CCardText.js.map +1 -1
- package/dist/esm/components/card/CCardTitle.d.ts +7 -6
- package/dist/esm/components/card/CCardTitle.js +2 -2
- package/dist/esm/components/card/CCardTitle.js.map +1 -1
- package/dist/esm/components/carousel/CCarousel.js +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/esm/components/dropdown/CDropdown.js +6 -4
- package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownHeader.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
- package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItem.d.ts +2 -6
- package/dist/esm/components/dropdown/CDropdownItem.js +3 -3
- package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItemPlain.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
- package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownMenu.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownMenu.js +2 -2
- package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
- package/dist/esm/components/dropdown/utils.js.map +1 -1
- package/dist/esm/components/form/CFormFeedback.d.ts +7 -6
- package/dist/esm/components/form/CFormFeedback.js +2 -2
- package/dist/esm/components/form/CFormFeedback.js.map +1 -1
- package/dist/esm/components/form/CFormText.d.ts +7 -6
- package/dist/esm/components/form/CFormText.js +2 -2
- package/dist/esm/components/form/CFormText.js.map +1 -1
- package/dist/esm/components/form/CInputGroupText.d.ts +7 -6
- package/dist/esm/components/form/CInputGroupText.js +2 -2
- package/dist/esm/components/form/CInputGroupText.js.map +1 -1
- package/dist/esm/components/header/CHeaderBrand.d.ts +7 -6
- package/dist/esm/components/header/CHeaderBrand.js +2 -2
- package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
- package/dist/esm/components/header/CHeaderNav.d.ts +7 -6
- package/dist/esm/components/header/CHeaderNav.js +2 -2
- package/dist/esm/components/header/CHeaderNav.js.map +1 -1
- package/dist/esm/components/link/CLink.d.ts +8 -7
- package/dist/esm/components/link/CLink.js +2 -2
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/list-group/CListGroup.d.ts +7 -6
- package/dist/esm/components/list-group/CListGroup.js +2 -2
- package/dist/esm/components/list-group/CListGroup.js.map +1 -1
- package/dist/esm/components/list-group/CListGroupItem.d.ts +7 -6
- package/dist/esm/components/list-group/CListGroupItem.js +6 -6
- package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/esm/components/modal/CModal.js +1 -2
- package/dist/esm/components/modal/CModal.js.map +1 -1
- package/dist/esm/components/modal/CModalTitle.d.ts +4 -3
- package/dist/esm/components/modal/CModalTitle.js +2 -2
- package/dist/esm/components/modal/CModalTitle.js.map +1 -1
- package/dist/esm/components/nav/CNav.d.ts +7 -6
- package/dist/esm/components/nav/CNav.js +2 -2
- package/dist/esm/components/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.d.ts +10 -4
- package/dist/esm/components/nav/CNavGroup.js +11 -16
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupItems.d.ts +10 -3
- package/dist/esm/components/nav/CNavGroupItems.js +3 -2
- package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/esm/components/nav/CNavItem.d.ts +11 -2
- package/dist/esm/components/nav/CNavItem.js +3 -2
- package/dist/esm/components/nav/CNavItem.js.map +1 -1
- package/dist/esm/components/nav/CNavLink.d.ts +2 -18
- package/dist/esm/components/nav/CNavLink.js +3 -0
- package/dist/esm/components/nav/CNavLink.js.map +1 -1
- package/dist/esm/components/nav/CNavTitle.d.ts +7 -2
- package/dist/esm/components/nav/CNavTitle.js +3 -2
- package/dist/esm/components/nav/CNavTitle.js.map +1 -1
- package/dist/esm/components/navbar/CNavbar.d.ts +7 -6
- package/dist/esm/components/navbar/CNavbar.js +2 -2
- package/dist/esm/components/navbar/CNavbar.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarBrand.d.ts +8 -7
- package/dist/esm/components/navbar/CNavbarBrand.js +3 -3
- package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarNav.d.ts +7 -6
- package/dist/esm/components/navbar/CNavbarNav.js +3 -3
- package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasTitle.d.ts +7 -6
- package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
- package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/esm/components/pagination/CPaginationItem.d.ts +4 -3
- package/dist/esm/components/pagination/CPaginationItem.js +4 -4
- package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/esm/components/placeholder/CPlaceholder.d.ts +7 -6
- package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
- package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js +19 -12
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarBrand.d.ts +10 -3
- package/dist/esm/components/sidebar/CSidebarBrand.js +3 -2
- package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.d.ts +9 -2
- package/dist/esm/components/sidebar/CSidebarNav.js +30 -12
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/spinner/CSpinner.d.ts +7 -6
- package/dist/esm/components/spinner/CSpinner.js +2 -2
- package/dist/esm/components/spinner/CSpinner.js.map +1 -1
- package/dist/esm/components/toast/CToastClose.d.ts +5 -4
- package/dist/esm/components/toast/CToastClose.js +2 -2
- package/dist/esm/components/toast/CToastClose.js.map +1 -1
- package/dist/esm/components/toast/CToaster.js +1 -1
- package/dist/esm/components/toast/CToaster.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +19 -12
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsC.js +2 -1
- package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
- package/package.json +14 -16
- package/src/components/alert/CAlertHeading.tsx +17 -14
- package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
- package/src/components/badge/CBadge.tsx +11 -7
- package/src/components/badge/__tests__/CBadge.spec.tsx +1 -1
- package/src/components/button/CButton.tsx +12 -18
- package/src/components/button/__tests__/CButton.spec.tsx +2 -2
- package/src/components/card/CCardHeader.tsx +17 -14
- package/src/components/card/CCardImage.tsx +9 -7
- package/src/components/card/CCardSubtitle.tsx +18 -14
- package/src/components/card/CCardText.tsx +17 -14
- package/src/components/card/CCardTitle.tsx +17 -14
- package/src/components/card/__tests__/CCardGroup.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardHeader.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardImage.spec.tsx +1 -3
- package/src/components/card/__tests__/CCardSubtitle.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardText.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardTitle.spec.tsx +1 -1
- package/src/components/carousel/CCarousel.tsx +1 -1
- package/src/components/close-button/CCloseButton.tsx +1 -1
- package/src/components/conditional-portal/CConditionalPortal.tsx +1 -1
- package/src/components/dropdown/CDropdown.tsx +20 -10
- package/src/components/dropdown/CDropdownHeader.tsx +17 -14
- package/src/components/dropdown/CDropdownItem.tsx +14 -20
- package/src/components/dropdown/CDropdownItemPlain.tsx +12 -7
- package/src/components/dropdown/CDropdownMenu.tsx +43 -42
- package/src/components/dropdown/CDropdownToggle.tsx +2 -2
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +13 -13
- package/src/components/dropdown/__tests__/CDropdownHeader.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownItem.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownItemPlain.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownMenu.spec.tsx +1 -1
- package/src/components/dropdown/types.ts +1 -1
- package/src/components/dropdown/utils.ts +5 -4
- package/src/components/form/CFormFeedback.tsx +28 -27
- package/src/components/form/CFormText.tsx +17 -14
- package/src/components/form/CInputGroupText.tsx +17 -14
- package/src/components/form/__tests__/CFormText.spec.tsx +1 -1
- package/src/components/form/__tests__/CInputGroupText.spec.tsx +1 -1
- package/src/components/header/CHeaderBrand.tsx +17 -14
- package/src/components/header/CHeaderNav.tsx +22 -19
- package/src/components/header/__tests__/CHeaderBrand.spec.tsx +1 -1
- package/src/components/header/__tests__/CHeaderNav.spec.tsx +1 -1
- package/src/components/link/CLink.tsx +33 -29
- package/src/components/link/__tests__/CLink.spec.tsx +2 -2
- package/src/components/list-group/CListGroup.tsx +27 -24
- package/src/components/list-group/CListGroupItem.tsx +38 -37
- package/src/components/list-group/__tests__/CListGroup.spec.tsx +1 -1
- package/src/components/list-group/__tests__/CListGroupItem.spec.tsx +1 -7
- package/src/components/modal/CModal.tsx +1 -4
- package/src/components/modal/CModalTitle.tsx +14 -11
- package/src/components/modal/__tests__/CModalTitle.spec.tsx +1 -1
- package/src/components/nav/CNav.tsx +29 -26
- package/src/components/nav/CNavGroup.tsx +111 -100
- package/src/components/nav/CNavGroupItems.tsx +21 -11
- package/src/components/nav/CNavItem.tsx +29 -16
- package/src/components/nav/CNavLink.tsx +7 -19
- package/src/components/nav/CNavTitle.tsx +18 -10
- package/src/components/nav/__tests__/CNav.spec.tsx +1 -1
- package/src/components/nav/__tests__/CNavItem.spec.tsx +1 -1
- package/src/components/nav/__tests__/CNavLink.spec.tsx +1 -1
- package/src/components/navbar/CNavbar.tsx +11 -7
- package/src/components/navbar/CNavbarBrand.tsx +19 -16
- package/src/components/navbar/CNavbarNav.tsx +22 -19
- package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
- package/src/components/navbar/__tests__/CNavbarBrand.spec.tsx +1 -1
- package/src/components/navbar/__tests__/CNavbarNav.spec.tsx +1 -1
- package/src/components/offcanvas/COffcanvasTitle.tsx +17 -14
- package/src/components/offcanvas/__tests__/COffcanvasTitle.spec.tsx +1 -1
- package/src/components/pagination/CPaginationItem.tsx +33 -30
- package/src/components/pagination/__tests__/CPaginationItem.spec.tsx +1 -1
- package/src/components/placeholder/CPlaceholder.tsx +40 -41
- package/src/components/popover/CPopover.tsx +24 -13
- package/src/components/sidebar/CSidebarBrand.tsx +21 -11
- package/src/components/sidebar/CSidebarNav.tsx +68 -24
- package/src/components/sidebar/__tests__/__snapshots__/CSidebar.spec.tsx.snap +1 -1
- package/src/components/spinner/CSpinner.tsx +11 -7
- package/src/components/spinner/__tests__/CSpinner.spec.tsx +1 -1
- package/src/components/toast/CToastClose.tsx +8 -7
- package/src/components/toast/CToaster.tsx +1 -1
- package/src/components/toast/__tests__/__snapshots__/CToaster.spec.tsx.snap +2 -2
- package/src/components/tooltip/CTooltip.tsx +24 -12
- package/src/components/tooltip/__tests__/CTooltip.spec.tsx +7 -12
- package/src/components/widgets/CWidgetStatsA.tsx +1 -4
- package/src/components/widgets/CWidgetStatsC.tsx +11 -1
- package/src/components/widgets/__tests__/CWidgetStatsD.spec.tsx +1 -3
- package/src/helpers/index.ts +3 -0
- package/src/helpers/polymorphicComponent.ts +21 -0
- package/src/utils/getTransitionDurationFromElement.ts +1 -1
|
@@ -20,8 +20,8 @@ export interface CDropdownToggleProps extends Omit<CButtonProps, 'type'> {
|
|
|
20
20
|
custom?: boolean
|
|
21
21
|
/**
|
|
22
22
|
* If a dropdown `variant` is set to `nav-item` then render the toggler as a link instead of a button.
|
|
23
|
-
*
|
|
24
|
-
* @since v5.0.0-
|
|
23
|
+
*
|
|
24
|
+
* @since v5.0.0-rc.1
|
|
25
25
|
*/
|
|
26
26
|
navLink?: boolean
|
|
27
27
|
/**
|
|
@@ -21,7 +21,7 @@ test('CDropdown customize', async () => {
|
|
|
21
21
|
<CDropdown
|
|
22
22
|
alignment={{ lg: 'start' }}
|
|
23
23
|
className="bazinga"
|
|
24
|
-
|
|
24
|
+
as="h3"
|
|
25
25
|
dark={true}
|
|
26
26
|
direction="dropstart"
|
|
27
27
|
placement="right-end"
|
|
@@ -39,18 +39,18 @@ test('CDropdown customize', async () => {
|
|
|
39
39
|
expect(container.firstChild).toHaveClass('dropstart')
|
|
40
40
|
})
|
|
41
41
|
|
|
42
|
-
test('CDropdown change visible prop', async () => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
})
|
|
42
|
+
// test('CDropdown change visible prop', async () => {
|
|
43
|
+
// jest.useFakeTimers()
|
|
44
|
+
// const { rerender } = render(<CDropdown visible={false}>Test</CDropdown>)
|
|
45
|
+
// expect(screen.getByText('Test')).not.toHaveClass('show')
|
|
46
|
+
// rerender(<CDropdown visible={true}>Test</CDropdown>)
|
|
47
|
+
// jest.runAllTimers()
|
|
48
|
+
// expect(screen.getByText('Test')).toHaveClass('show')
|
|
49
|
+
// rerender(<CDropdown visible={false}>Test</CDropdown>)
|
|
50
|
+
// expect(screen.getByText('Test')).not.toHaveClass('show')
|
|
51
|
+
// jest.runAllTimers()
|
|
52
|
+
// jest.useRealTimers()
|
|
53
|
+
// })
|
|
54
54
|
|
|
55
55
|
test('CDropdown click', async () => {
|
|
56
56
|
render(
|
|
@@ -10,7 +10,7 @@ test('loads and displays CDropdownHeader component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CDropdownHeader customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CDropdownHeader className="bazinga"
|
|
13
|
+
<CDropdownHeader className="bazinga" as="h3">
|
|
14
14
|
Test
|
|
15
15
|
</CDropdownHeader>,
|
|
16
16
|
)
|
|
@@ -10,7 +10,7 @@ test('loads and displays CDropdownItem component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CDropdownItem customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CDropdownItem className="bazinga"
|
|
13
|
+
<CDropdownItem className="bazinga" as="div">
|
|
14
14
|
Test
|
|
15
15
|
</CDropdownItem>,
|
|
16
16
|
)
|
|
@@ -10,7 +10,7 @@ test('loads and displays CDropdownItemPlain component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CDropdownItemPlain customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CDropdownItemPlain className="bazinga"
|
|
13
|
+
<CDropdownItemPlain className="bazinga" as="div">
|
|
14
14
|
Test
|
|
15
15
|
</CDropdownItemPlain>,
|
|
16
16
|
)
|
|
@@ -11,7 +11,7 @@ test('loads and displays CDropdownMenu component', async () => {
|
|
|
11
11
|
test('CDropdownMenu customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
13
|
<CDropdown visible={true}>
|
|
14
|
-
<CDropdownMenu className="bazinga"
|
|
14
|
+
<CDropdownMenu className="bazinga" as="div">
|
|
15
15
|
Test
|
|
16
16
|
</CDropdownMenu>
|
|
17
17
|
</CDropdown>,
|
|
@@ -5,16 +5,17 @@ import type { Alignments, Breakpoints } from './types'
|
|
|
5
5
|
export const getAlignmentClassNames = (alignment: Alignments) => {
|
|
6
6
|
const classNames: string[] = []
|
|
7
7
|
if (typeof alignment === 'object') {
|
|
8
|
-
|
|
9
8
|
for (const key in alignment) {
|
|
10
|
-
classNames.push(
|
|
9
|
+
classNames.push(
|
|
10
|
+
`dropdown-menu${key === 'xs' ? '' : `-${key}`}-${alignment[key as keyof Breakpoints]}`,
|
|
11
|
+
)
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
if (typeof alignment === 'string') {
|
|
15
16
|
classNames.push(`dropdown-menu-${alignment}`)
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
|
|
18
19
|
return classNames
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -69,4 +70,4 @@ export const getPlacement = (
|
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
return _placement
|
|
72
|
-
}
|
|
73
|
+
}
|
|
@@ -2,15 +2,18 @@ import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CFormFeedbackProps extends HTMLAttributes<HTMLDivElement | HTMLSpanElement> {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
10
|
*/
|
|
9
|
-
|
|
11
|
+
as?: ElementType
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* A string of all className you want applied to the component.
|
|
12
14
|
*/
|
|
13
|
-
|
|
15
|
+
className?: string
|
|
16
|
+
|
|
14
17
|
/**
|
|
15
18
|
* Method called immediately after the `value` prop changes.
|
|
16
19
|
*/
|
|
@@ -25,33 +28,31 @@ export interface CFormFeedbackProps extends HTMLAttributes<HTMLDivElement | HTML
|
|
|
25
28
|
valid?: boolean
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
export const CFormFeedback
|
|
29
|
-
(
|
|
30
|
-
{ children,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
)
|
|
31
|
+
export const CFormFeedback: PolymorphicRefForwardingComponent<'div', CFormFeedbackProps> =
|
|
32
|
+
forwardRef<HTMLDivElement | HTMLSpanElement, CFormFeedbackProps>(
|
|
33
|
+
({ children, as: Component = 'div', className, invalid, tooltip, valid, ...rest }, ref) => {
|
|
34
|
+
return (
|
|
35
|
+
<Component
|
|
36
|
+
className={classNames(
|
|
37
|
+
{
|
|
38
|
+
[`invalid-${tooltip ? 'tooltip' : 'feedback'}`]: invalid,
|
|
39
|
+
[`valid-${tooltip ? 'tooltip' : 'feedback'}`]: valid,
|
|
40
|
+
},
|
|
41
|
+
className,
|
|
42
|
+
)}
|
|
43
|
+
{...rest}
|
|
44
|
+
ref={ref}
|
|
45
|
+
>
|
|
46
|
+
{children}
|
|
47
|
+
</Component>
|
|
48
|
+
)
|
|
49
|
+
},
|
|
50
|
+
)
|
|
50
51
|
|
|
51
52
|
CFormFeedback.propTypes = {
|
|
53
|
+
as: PropTypes.elementType,
|
|
52
54
|
children: PropTypes.node,
|
|
53
55
|
className: PropTypes.string,
|
|
54
|
-
component: PropTypes.elementType,
|
|
55
56
|
invalid: PropTypes.bool,
|
|
56
57
|
tooltip: PropTypes.bool,
|
|
57
58
|
valid: PropTypes.bool,
|
|
@@ -2,31 +2,34 @@ import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CFormTextProps extends HTMLAttributes<HTMLDivElement | HTMLSpanElement> {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
10
|
*/
|
|
9
|
-
|
|
11
|
+
as?: ElementType
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* A string of all className you want applied to the component.
|
|
12
14
|
*/
|
|
13
|
-
|
|
15
|
+
className?: string
|
|
14
16
|
}
|
|
15
17
|
|
|
16
|
-
export const CFormText
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
)
|
|
18
|
+
export const CFormText: PolymorphicRefForwardingComponent<'div', CFormTextProps> = forwardRef<
|
|
19
|
+
HTMLDivElement | HTMLSpanElement,
|
|
20
|
+
CFormTextProps
|
|
21
|
+
>(({ children, as: Component = 'div', className, ...rest }, ref) => {
|
|
22
|
+
return (
|
|
23
|
+
<Component className={classNames('form-text', className)} {...rest} ref={ref}>
|
|
24
|
+
{children}
|
|
25
|
+
</Component>
|
|
26
|
+
)
|
|
27
|
+
})
|
|
25
28
|
|
|
26
29
|
CFormText.propTypes = {
|
|
30
|
+
as: PropTypes.elementType,
|
|
27
31
|
children: PropTypes.node,
|
|
28
32
|
className: PropTypes.string,
|
|
29
|
-
component: PropTypes.elementType,
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
CFormText.displayName = 'CFormText'
|
|
@@ -2,32 +2,35 @@ import React, { ElementType, forwardRef, LabelHTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CInputGroupTextProps
|
|
6
8
|
extends LabelHTMLAttributes<HTMLLabelElement | HTMLSpanElement> {
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
as?: ElementType
|
|
11
13
|
/**
|
|
12
|
-
*
|
|
14
|
+
* A string of all className you want applied to the component.
|
|
13
15
|
*/
|
|
14
|
-
|
|
16
|
+
className?: string
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
export const CInputGroupText
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
export const CInputGroupText: PolymorphicRefForwardingComponent<'span', CInputGroupTextProps> =
|
|
20
|
+
forwardRef<HTMLLabelElement | HTMLSpanElement, CInputGroupTextProps>(
|
|
21
|
+
({ children, as: Component = 'span', className, ...rest }, ref) => {
|
|
22
|
+
return (
|
|
23
|
+
<Component className={classNames('input-group-text', className)} {...rest} ref={ref}>
|
|
24
|
+
{children}
|
|
25
|
+
</Component>
|
|
26
|
+
)
|
|
27
|
+
},
|
|
28
|
+
)
|
|
26
29
|
|
|
27
30
|
CInputGroupText.propTypes = {
|
|
31
|
+
as: PropTypes.elementType,
|
|
28
32
|
children: PropTypes.node,
|
|
29
33
|
className: PropTypes.string,
|
|
30
|
-
component: PropTypes.elementType,
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
CInputGroupText.displayName = 'CInputGroupText'
|
|
@@ -10,7 +10,7 @@ test('loads and displays CFormText component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CFormText customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CFormText className="bazinga"
|
|
13
|
+
<CFormText className="bazinga" as="h3">
|
|
14
14
|
Test
|
|
15
15
|
</CFormText>,
|
|
16
16
|
)
|
|
@@ -10,7 +10,7 @@ test('loads and displays CInputGroupText component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('renders CInputGroupText component as a label', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CInputGroupText
|
|
13
|
+
<CInputGroupText as="label" htmlFor="input">
|
|
14
14
|
Test
|
|
15
15
|
</CInputGroupText>,
|
|
16
16
|
)
|
|
@@ -2,32 +2,35 @@ import React, { ElementType, forwardRef, AnchorHTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CHeaderBrandProps
|
|
6
8
|
extends AnchorHTMLAttributes<HTMLAnchorElement | HTMLSpanElement> {
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
9
11
|
*/
|
|
10
|
-
|
|
12
|
+
as?: ElementType
|
|
11
13
|
/**
|
|
12
|
-
*
|
|
14
|
+
* A string of all className you want applied to the component.
|
|
13
15
|
*/
|
|
14
|
-
|
|
16
|
+
className?: string
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
export const CHeaderBrand
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
)
|
|
19
|
+
export const CHeaderBrand: PolymorphicRefForwardingComponent<'a', CHeaderBrandProps> = forwardRef<
|
|
20
|
+
HTMLAnchorElement | HTMLSpanElement,
|
|
21
|
+
CHeaderBrandProps
|
|
22
|
+
>(({ children, as: Component = 'a', className, ...rest }, ref) => {
|
|
23
|
+
return (
|
|
24
|
+
<Component className={classNames('header-brand', className)} {...rest} ref={ref}>
|
|
25
|
+
{children}
|
|
26
|
+
</Component>
|
|
27
|
+
)
|
|
28
|
+
})
|
|
26
29
|
|
|
27
30
|
CHeaderBrand.propTypes = {
|
|
31
|
+
as: PropTypes.elementType,
|
|
28
32
|
children: PropTypes.node,
|
|
29
33
|
className: PropTypes.string,
|
|
30
|
-
component: PropTypes.elementType,
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
CHeaderBrand.displayName = 'CHeaderBrand'
|
|
@@ -2,36 +2,39 @@ import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CHeaderNavProps extends HTMLAttributes<HTMLDivElement | HTMLUListElement> {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
10
|
*/
|
|
9
|
-
|
|
11
|
+
as?: ElementType
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* A string of all className you want applied to the component.
|
|
12
14
|
*/
|
|
13
|
-
|
|
15
|
+
className?: string
|
|
14
16
|
}
|
|
15
17
|
|
|
16
|
-
export const CHeaderNav
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
)
|
|
18
|
+
export const CHeaderNav: PolymorphicRefForwardingComponent<'ul', CHeaderNavProps> = forwardRef<
|
|
19
|
+
HTMLDivElement | HTMLUListElement,
|
|
20
|
+
CHeaderNavProps
|
|
21
|
+
>(({ children, as: Component = 'ul', className, ...rest }, ref) => {
|
|
22
|
+
return (
|
|
23
|
+
<Component
|
|
24
|
+
className={classNames('header-nav', className)}
|
|
25
|
+
role="navigation"
|
|
26
|
+
{...rest}
|
|
27
|
+
ref={ref}
|
|
28
|
+
>
|
|
29
|
+
{children}
|
|
30
|
+
</Component>
|
|
31
|
+
)
|
|
32
|
+
})
|
|
30
33
|
|
|
31
34
|
CHeaderNav.propTypes = {
|
|
35
|
+
as: PropTypes.elementType,
|
|
32
36
|
children: PropTypes.node,
|
|
33
37
|
className: PropTypes.string,
|
|
34
|
-
component: PropTypes.elementType,
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
CHeaderNav.displayName = 'CHeaderNav'
|
|
@@ -10,7 +10,7 @@ test('loads and displays CHeaderBrand component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CHeaderBrand customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CHeaderBrand className="bazinga"
|
|
13
|
+
<CHeaderBrand className="bazinga" as="h3">
|
|
14
14
|
Test
|
|
15
15
|
</CHeaderBrand>,
|
|
16
16
|
)
|
|
@@ -10,7 +10,7 @@ test('loads and displays CHeaderNav component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CHeaderNav customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CHeaderNav className="bazinga"
|
|
13
|
+
<CHeaderNav className="bazinga" as="h3">
|
|
14
14
|
Test
|
|
15
15
|
</CHeaderNav>,
|
|
16
16
|
)
|
|
@@ -2,19 +2,22 @@ import React, { AllHTMLAttributes, ElementType, forwardRef, MouseEvent } from 'r
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
7
|
+
export interface CLinkProps
|
|
8
|
+
extends Omit<AllHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'as'> {
|
|
6
9
|
/**
|
|
7
10
|
* Toggle the active state for the component.
|
|
8
11
|
*/
|
|
9
12
|
active?: boolean
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
12
15
|
*/
|
|
13
|
-
|
|
16
|
+
as?: ElementType
|
|
14
17
|
/**
|
|
15
|
-
*
|
|
18
|
+
* A string of all className you want applied to the component.
|
|
16
19
|
*/
|
|
17
|
-
|
|
20
|
+
className?: string
|
|
18
21
|
/**
|
|
19
22
|
* Toggle the disabled state for the component.
|
|
20
23
|
*/
|
|
@@ -25,35 +28,36 @@ export interface CLinkProps extends AllHTMLAttributes<HTMLButtonElement | HTMLAn
|
|
|
25
28
|
href?: string
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
export const CLink
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
)
|
|
31
|
+
export const CLink: PolymorphicRefForwardingComponent<'a', CLinkProps> = forwardRef<
|
|
32
|
+
HTMLButtonElement | HTMLAnchorElement,
|
|
33
|
+
CLinkProps
|
|
34
|
+
>(({ children, active, as: Component = 'a', className, disabled, ...rest }, ref) => {
|
|
35
|
+
return (
|
|
36
|
+
<Component
|
|
37
|
+
// TODO: remove duplicated classes ex. `active active` in `<CListGroupItem>`
|
|
38
|
+
className={classNames(className, { active, disabled })}
|
|
39
|
+
{...(active && { 'aria-current': 'page' })}
|
|
40
|
+
{...(Component === 'a' && disabled && { 'aria-disabled': true, tabIndex: -1 })}
|
|
41
|
+
{...((Component === 'a' || Component === 'button') && {
|
|
42
|
+
onClick: (event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {
|
|
43
|
+
event.preventDefault
|
|
44
|
+
!disabled && rest.onClick && rest.onClick(event)
|
|
45
|
+
},
|
|
46
|
+
})}
|
|
47
|
+
disabled={disabled}
|
|
48
|
+
{...rest}
|
|
49
|
+
ref={ref}
|
|
50
|
+
>
|
|
51
|
+
{children}
|
|
52
|
+
</Component>
|
|
53
|
+
)
|
|
54
|
+
})
|
|
51
55
|
|
|
52
56
|
CLink.propTypes = {
|
|
53
57
|
active: PropTypes.bool,
|
|
58
|
+
as: PropTypes.elementType,
|
|
54
59
|
children: PropTypes.node,
|
|
55
60
|
className: PropTypes.string,
|
|
56
|
-
component: PropTypes.elementType,
|
|
57
61
|
disabled: PropTypes.bool,
|
|
58
62
|
}
|
|
59
63
|
|
|
@@ -10,7 +10,7 @@ test('loads and displays CLink component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CLink customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CLink className="bazinga" active={true}
|
|
13
|
+
<CLink className="bazinga" active={true} as="button" disabled type="submit">
|
|
14
14
|
Test
|
|
15
15
|
</CLink>,
|
|
16
16
|
)
|
|
@@ -38,7 +38,7 @@ test('CLink click on button', async () => {
|
|
|
38
38
|
test('CLink click on disabled button', async () => {
|
|
39
39
|
const click = jest.fn()
|
|
40
40
|
render(
|
|
41
|
-
<CLink onClick={click} className="bazinga"
|
|
41
|
+
<CLink onClick={click} className="bazinga" as="button" disabled>
|
|
42
42
|
Test
|
|
43
43
|
</CLink>,
|
|
44
44
|
)
|
|
@@ -2,15 +2,17 @@ import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
6
|
+
|
|
5
7
|
export interface CListGroupProps extends HTMLAttributes<HTMLDivElement | HTMLUListElement> {
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
9
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
10
|
*/
|
|
9
|
-
|
|
11
|
+
as?: ElementType
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* A string of all className you want applied to the component.
|
|
12
14
|
*/
|
|
13
|
-
|
|
15
|
+
className?: string
|
|
14
16
|
/**
|
|
15
17
|
* Remove some borders and rounded corners to render list group items edge-to-edge in a parent component (e.g., `<CCard>`).
|
|
16
18
|
*/
|
|
@@ -27,30 +29,31 @@ export interface CListGroupProps extends HTMLAttributes<HTMLDivElement | HTMLULi
|
|
|
27
29
|
| 'horizontal-xxl'
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
export const CListGroup
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
)
|
|
32
|
+
export const CListGroup: PolymorphicRefForwardingComponent<'ul', CListGroupProps> = forwardRef<
|
|
33
|
+
HTMLDivElement | HTMLUListElement,
|
|
34
|
+
CListGroupProps
|
|
35
|
+
>(({ children, as: Component = 'ul', className, flush, layout }, ref) => {
|
|
36
|
+
return (
|
|
37
|
+
<Component
|
|
38
|
+
className={classNames(
|
|
39
|
+
'list-group',
|
|
40
|
+
{
|
|
41
|
+
'list-group-flush': flush,
|
|
42
|
+
[`list-group-${layout}`]: layout,
|
|
43
|
+
},
|
|
44
|
+
className,
|
|
45
|
+
)}
|
|
46
|
+
ref={ref}
|
|
47
|
+
>
|
|
48
|
+
{children}
|
|
49
|
+
</Component>
|
|
50
|
+
)
|
|
51
|
+
})
|
|
49
52
|
|
|
50
53
|
CListGroup.propTypes = {
|
|
54
|
+
as: PropTypes.elementType,
|
|
51
55
|
children: PropTypes.node,
|
|
52
56
|
className: PropTypes.string,
|
|
53
|
-
component: PropTypes.elementType,
|
|
54
57
|
flush: PropTypes.bool,
|
|
55
58
|
layout: PropTypes.oneOf([
|
|
56
59
|
'horizontal',
|