@coreui/react 5.0.0-rc.0 → 5.0.0-rc.2
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/LICENSE +1 -1
- package/README.md +2 -2
- 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 +3 -3
- 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.map +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/cjs/components/dropdown/CDropdown.js +4 -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/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/dropdown/utils.js.map +1 -1
- package/dist/cjs/components/form/CFormCheck.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/grid/CCol.js.map +1 -1
- package/dist/cjs/components/grid/CRow.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/COffcanvas.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 +20 -13
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/progress/CProgress.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebar.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/CToast.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/tooltip/CTooltip.js +20 -13
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/helpers/index.d.ts +2 -0
- package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
- package/dist/cjs/hooks/useColorModes.js.map +1 -1
- package/dist/cjs/hooks/useForkedRef.js.map +1 -1
- package/dist/cjs/hooks/usePopper.js.map +1 -1
- package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
- package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
- package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
- package/dist/cjs/utils/isRTL.js.map +1 -1
- 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 +3 -3
- 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.map +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/esm/components/dropdown/CDropdown.js +4 -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/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/dropdown/utils.js.map +1 -1
- package/dist/esm/components/form/CFormCheck.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/grid/CCol.js.map +1 -1
- package/dist/esm/components/grid/CRow.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/COffcanvas.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 +20 -13
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/progress/CProgress.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebar.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/CToast.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/tooltip/CTooltip.js +20 -13
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
- package/dist/esm/hooks/useColorModes.js.map +1 -1
- package/dist/esm/hooks/useForkedRef.js.map +1 -1
- package/dist/esm/hooks/usePopper.js.map +1 -1
- package/dist/esm/utils/executeAfterTransition.js.map +1 -1
- package/dist/esm/utils/getRTLPlacement.js.map +1 -1
- package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
- package/dist/esm/utils/isRTL.js.map +1 -1
- package/package.json +13 -13
- package/src/components/alert/CAlertHeading.tsx +17 -14
- package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
- package/src/components/badge/CBadge.tsx +12 -8
- 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/conditional-portal/CConditionalPortal.tsx +1 -1
- package/src/components/dropdown/CDropdown.tsx +12 -8
- 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 -41
- package/src/components/dropdown/CDropdownToggle.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +1 -1
- 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/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/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/tooltip/CTooltip.tsx +24 -12
- package/src/helpers/index.ts +3 -0
- package/src/helpers/polymorphicComponent.ts +21 -0
|
@@ -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',
|
|
@@ -4,6 +4,7 @@ import classNames from 'classnames'
|
|
|
4
4
|
|
|
5
5
|
import { CLink } from '../link/CLink'
|
|
6
6
|
|
|
7
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
7
8
|
import { colorPropType } from '../../props'
|
|
8
9
|
import type { Colors } from '../../types'
|
|
9
10
|
|
|
@@ -13,6 +14,10 @@ export interface CListGroupItemProps
|
|
|
13
14
|
* Toggle the active state for the component.
|
|
14
15
|
*/
|
|
15
16
|
active?: boolean
|
|
17
|
+
/**
|
|
18
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
19
|
+
*/
|
|
20
|
+
as?: ElementType
|
|
16
21
|
/**
|
|
17
22
|
* A string of all className you want applied to the component.
|
|
18
23
|
*/
|
|
@@ -27,55 +32,51 @@ export interface CListGroupItemProps
|
|
|
27
32
|
* Toggle the disabled state for the component.
|
|
28
33
|
*/
|
|
29
34
|
disabled?: boolean
|
|
30
|
-
/**
|
|
31
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
32
|
-
*/
|
|
33
|
-
component?: string | ElementType
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
export const CListGroupItem =
|
|
37
|
-
HTMLLIElement | HTMLAnchorElement | HTMLButtonElement,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const Component = component === 'a' || component === 'button' ? CLink : component
|
|
37
|
+
export const CListGroupItem: PolymorphicRefForwardingComponent<'li', CListGroupItemProps> =
|
|
38
|
+
forwardRef<HTMLLIElement | HTMLAnchorElement | HTMLButtonElement, CListGroupItemProps>(
|
|
39
|
+
({ children, active, as = 'li', className, disabled, color, ...rest }, ref) => {
|
|
40
|
+
const Component = as === 'a' || as === 'button' ? CLink : as
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
active,
|
|
45
|
-
disabled,
|
|
46
|
-
component,
|
|
47
|
-
ref: ref,
|
|
48
|
-
}),
|
|
49
|
-
...(active && { 'aria-current': true }),
|
|
50
|
-
...(disabled && { 'aria-disabled': true }),
|
|
51
|
-
...rest,
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<Component
|
|
56
|
-
className={classNames(
|
|
57
|
-
'list-group-item',
|
|
58
|
-
{
|
|
59
|
-
[`list-group-item-${color}`]: color,
|
|
60
|
-
'list-group-item-action': component === 'a' || component === 'button',
|
|
42
|
+
rest = {
|
|
43
|
+
...((as === 'a' || as === 'button') && {
|
|
61
44
|
active,
|
|
62
45
|
disabled,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
46
|
+
as,
|
|
47
|
+
ref: ref,
|
|
48
|
+
}),
|
|
49
|
+
...(active && { 'aria-current': true }),
|
|
50
|
+
...(disabled && { 'aria-disabled': true }),
|
|
51
|
+
...rest,
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<Component
|
|
56
|
+
className={classNames(
|
|
57
|
+
'list-group-item',
|
|
58
|
+
{
|
|
59
|
+
[`list-group-item-${color}`]: color,
|
|
60
|
+
'list-group-item-action': as === 'a' || as === 'button',
|
|
61
|
+
active,
|
|
62
|
+
disabled,
|
|
63
|
+
},
|
|
64
|
+
className,
|
|
65
|
+
)}
|
|
66
|
+
{...rest}
|
|
67
|
+
>
|
|
68
|
+
{children}
|
|
69
|
+
</Component>
|
|
70
|
+
)
|
|
71
|
+
},
|
|
70
72
|
)
|
|
71
|
-
})
|
|
72
73
|
|
|
73
74
|
CListGroupItem.propTypes = {
|
|
74
75
|
active: PropTypes.bool,
|
|
76
|
+
as: PropTypes.elementType,
|
|
75
77
|
children: PropTypes.node,
|
|
76
78
|
className: PropTypes.string,
|
|
77
79
|
color: colorPropType,
|
|
78
|
-
component: PropTypes.elementType,
|
|
79
80
|
disabled: PropTypes.bool,
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -10,7 +10,7 @@ test('loads and displays CListGroup component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CListGroup customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CListGroup className="bazinga"
|
|
13
|
+
<CListGroup className="bazinga" as="h3" flush={true} layout="horizontal-xl">
|
|
14
14
|
Test
|
|
15
15
|
</CListGroup>,
|
|
16
16
|
)
|
|
@@ -10,13 +10,7 @@ test('loads and displays CListGroupItem component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CListGroupItem customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CListGroupItem
|
|
14
|
-
className="bazinga"
|
|
15
|
-
active={true}
|
|
16
|
-
color="warning"
|
|
17
|
-
disabled={true}
|
|
18
|
-
component="button"
|
|
19
|
-
>
|
|
13
|
+
<CListGroupItem className="bazinga" active={true} color="warning" disabled={true} as="button">
|
|
20
14
|
Test
|
|
21
15
|
</CListGroupItem>,
|
|
22
16
|
)
|