@coreui/react 5.0.0-rc.0 → 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/dropdown/CDropdown.d.ts +6 -5
- package/dist/cjs/components/dropdown/CDropdown.js +3 -3
- 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/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/tooltip/CTooltip.js +19 -12
- 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/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/dropdown/CDropdown.d.ts +6 -5
- package/dist/esm/components/dropdown/CDropdown.js +3 -3
- 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/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/tooltip/CTooltip.js +19 -12
- 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/package.json +10 -10
- 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/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
|
@@ -10,7 +10,7 @@ test('loads and displays CNavbarNav component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CNavbarNav customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CNavbarNav className="bazinga"
|
|
13
|
+
<CNavbarNav className="bazinga" as="h3">
|
|
14
14
|
Test
|
|
15
15
|
</CNavbarNav>,
|
|
16
16
|
)
|
|
@@ -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 COffcanvasTitleProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
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 COffcanvasTitle
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
export const COffcanvasTitle: PolymorphicRefForwardingComponent<'h5', COffcanvasTitleProps> =
|
|
19
|
+
forwardRef<HTMLHeadingElement, COffcanvasTitleProps>(
|
|
20
|
+
({ children, as: Component = 'h5', className, ...rest }, ref) => {
|
|
21
|
+
return (
|
|
22
|
+
<Component className={classNames('offcanvas-title', className)} {...rest} ref={ref}>
|
|
23
|
+
{children}
|
|
24
|
+
</Component>
|
|
25
|
+
)
|
|
26
|
+
},
|
|
27
|
+
)
|
|
25
28
|
|
|
26
29
|
COffcanvasTitle.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
|
COffcanvasTitle.displayName = 'COffcanvasTitle'
|
|
@@ -10,7 +10,7 @@ test('loads and displays COffcanvasTitle component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('COffcanvasTitle customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<COffcanvasTitle className="bazinga"
|
|
13
|
+
<COffcanvasTitle className="bazinga" as="div">
|
|
14
14
|
Test
|
|
15
15
|
</COffcanvasTitle>,
|
|
16
16
|
)
|
|
@@ -4,6 +4,8 @@ import classNames from 'classnames'
|
|
|
4
4
|
|
|
5
5
|
import { CLink } from '../link/CLink'
|
|
6
6
|
|
|
7
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
8
|
+
|
|
7
9
|
export interface CPaginationItemProps extends HTMLAttributes<HTMLAnchorElement> {
|
|
8
10
|
/**
|
|
9
11
|
* Toggle the active state for the component.
|
|
@@ -12,47 +14,48 @@ export interface CPaginationItemProps extends HTMLAttributes<HTMLAnchorElement>
|
|
|
12
14
|
/**
|
|
13
15
|
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
14
16
|
*/
|
|
15
|
-
|
|
17
|
+
as?: string | ElementType
|
|
16
18
|
/**
|
|
17
19
|
* Toggle the disabled state for the component.
|
|
18
20
|
*/
|
|
19
21
|
disabled?: boolean
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
export const CPaginationItem
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
export const CPaginationItem: PolymorphicRefForwardingComponent<'a', CPaginationItemProps> =
|
|
25
|
+
forwardRef<HTMLAnchorElement, CPaginationItemProps>(
|
|
26
|
+
({ children, as, className, ...rest }, ref) => {
|
|
27
|
+
const Component = as ?? (rest.active ? 'span' : 'a')
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
)
|
|
29
|
+
return (
|
|
30
|
+
<li
|
|
31
|
+
className={classNames(
|
|
32
|
+
'page-item',
|
|
33
|
+
{
|
|
34
|
+
active: rest.active,
|
|
35
|
+
disabled: rest.disabled,
|
|
36
|
+
},
|
|
37
|
+
className,
|
|
38
|
+
)}
|
|
39
|
+
{...(rest.active && { 'aria-current': 'page' })}
|
|
40
|
+
>
|
|
41
|
+
{Component === 'a' ? (
|
|
42
|
+
<CLink className="page-link" as={Component} {...rest} ref={ref}>
|
|
43
|
+
{children}
|
|
44
|
+
</CLink>
|
|
45
|
+
) : (
|
|
46
|
+
<Component className="page-link" ref={ref}>
|
|
47
|
+
{children}
|
|
48
|
+
</Component>
|
|
49
|
+
)}
|
|
50
|
+
</li>
|
|
51
|
+
)
|
|
52
|
+
},
|
|
53
|
+
)
|
|
51
54
|
|
|
52
55
|
CPaginationItem.propTypes = {
|
|
56
|
+
as: PropTypes.elementType,
|
|
53
57
|
children: PropTypes.node,
|
|
54
58
|
className: PropTypes.string,
|
|
55
|
-
component: PropTypes.elementType,
|
|
56
59
|
}
|
|
57
60
|
|
|
58
61
|
CPaginationItem.displayName = 'CPaginationItem'
|
|
@@ -10,7 +10,7 @@ test('loads and displays CPaginationItem component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CPaginationItem customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CPaginationItem className="bazinga" active={true}
|
|
13
|
+
<CPaginationItem className="bazinga" active={true} as="h3" disabled={true}>
|
|
14
14
|
Test
|
|
15
15
|
</CPaginationItem>,
|
|
16
16
|
)
|
|
@@ -2,6 +2,7 @@ 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'
|
|
5
6
|
import { colorPropType } from '../../props'
|
|
6
7
|
import type { Colors } from '../../types'
|
|
7
8
|
|
|
@@ -10,6 +11,10 @@ export interface CPlaceholderProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
10
11
|
* Set animation type to better convey the perception of something being actively loaded.
|
|
11
12
|
*/
|
|
12
13
|
animation?: 'glow' | 'wave'
|
|
14
|
+
/**
|
|
15
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
16
|
+
*/
|
|
17
|
+
as?: ElementType
|
|
13
18
|
/**
|
|
14
19
|
* A string of all className you want applied to the component.
|
|
15
20
|
*/
|
|
@@ -20,10 +25,6 @@ export interface CPlaceholderProps extends HTMLAttributes<HTMLSpanElement> {
|
|
|
20
25
|
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
|
|
21
26
|
*/
|
|
22
27
|
color?: Colors
|
|
23
|
-
/**
|
|
24
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
25
|
-
*/
|
|
26
|
-
component?: string | ElementType
|
|
27
28
|
/**
|
|
28
29
|
* Size the component extra small, small, or large.
|
|
29
30
|
*/
|
|
@@ -63,54 +64,52 @@ const BREAKPOINTS = [
|
|
|
63
64
|
'xs' as const,
|
|
64
65
|
]
|
|
65
66
|
|
|
66
|
-
export const CPlaceholder
|
|
67
|
-
(
|
|
68
|
-
{ children, animation,
|
|
69
|
-
|
|
70
|
-
) => {
|
|
71
|
-
const repsonsiveClassNames: string[] = []
|
|
67
|
+
export const CPlaceholder: PolymorphicRefForwardingComponent<'span', CPlaceholderProps> =
|
|
68
|
+
forwardRef<HTMLSpanElement, CPlaceholderProps>(
|
|
69
|
+
({ children, animation, as: Component = 'span', className, color, size, ...rest }, ref) => {
|
|
70
|
+
const repsonsiveClassNames: string[] = []
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
BREAKPOINTS.forEach((bp) => {
|
|
73
|
+
const breakpoint = rest[bp]
|
|
74
|
+
delete rest[bp]
|
|
76
75
|
|
|
77
|
-
|
|
76
|
+
const infix = bp === 'xs' ? '' : `-${bp}`
|
|
78
77
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
if (typeof breakpoint === 'number') {
|
|
79
|
+
repsonsiveClassNames.push(`col${infix}-${breakpoint}`)
|
|
80
|
+
}
|
|
82
81
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
if (typeof breakpoint === 'boolean') {
|
|
83
|
+
repsonsiveClassNames.push(`col${infix}`)
|
|
84
|
+
}
|
|
85
|
+
})
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
87
|
+
return (
|
|
88
|
+
<Component
|
|
89
|
+
className={classNames(
|
|
90
|
+
animation ? `placeholder-${animation}` : 'placeholder',
|
|
91
|
+
{
|
|
92
|
+
[`bg-${color}`]: color,
|
|
93
|
+
[`placeholder-${size}`]: size,
|
|
94
|
+
},
|
|
95
|
+
repsonsiveClassNames,
|
|
96
|
+
className,
|
|
97
|
+
)}
|
|
98
|
+
{...rest}
|
|
99
|
+
ref={ref}
|
|
100
|
+
>
|
|
101
|
+
{children}
|
|
102
|
+
</Component>
|
|
103
|
+
)
|
|
104
|
+
},
|
|
105
|
+
)
|
|
107
106
|
|
|
108
107
|
CPlaceholder.propTypes = {
|
|
109
108
|
animation: PropTypes.oneOf(['glow', 'wave']),
|
|
109
|
+
as: PropTypes.elementType,
|
|
110
110
|
children: PropTypes.node,
|
|
111
111
|
className: PropTypes.string,
|
|
112
112
|
color: colorPropType,
|
|
113
|
-
component: PropTypes.elementType,
|
|
114
113
|
size: PropTypes.oneOf(['xs', 'sm', 'lg']),
|
|
115
114
|
}
|
|
116
115
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { forwardRef, HTMLAttributes, ReactNode, useRef, useEffect, useState } from 'react'
|
|
2
|
-
// import { createPortal } from 'react-dom'
|
|
3
2
|
import classNames from 'classnames'
|
|
4
3
|
import PropTypes from 'prop-types'
|
|
5
4
|
import { Transition } from 'react-transition-group'
|
|
@@ -96,9 +95,10 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
96
95
|
},
|
|
97
96
|
ref,
|
|
98
97
|
) => {
|
|
99
|
-
const popoverRef = useRef(null)
|
|
98
|
+
const popoverRef = useRef<HTMLDivElement>(null)
|
|
100
99
|
const togglerRef = useRef(null)
|
|
101
100
|
const forkedRef = useForkedRef(ref, popoverRef)
|
|
101
|
+
const uID = useRef(`popover${Math.floor(Math.random() * 1_000_000)}`)
|
|
102
102
|
|
|
103
103
|
const { initPopper, destroyPopper } = usePopper()
|
|
104
104
|
const [_visible, setVisible] = useState(visible)
|
|
@@ -133,16 +133,6 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
133
133
|
setVisible(visible)
|
|
134
134
|
}, [visible])
|
|
135
135
|
|
|
136
|
-
useEffect(() => {
|
|
137
|
-
if (_visible && togglerRef.current && popoverRef.current) {
|
|
138
|
-
initPopper(togglerRef.current, popoverRef.current, popperConfig)
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return () => {
|
|
142
|
-
destroyPopper()
|
|
143
|
-
}
|
|
144
|
-
}, [_visible])
|
|
145
|
-
|
|
146
136
|
const toggleVisible = (visible: boolean) => {
|
|
147
137
|
if (visible) {
|
|
148
138
|
setTimeout(() => setVisible(true), _delay.show)
|
|
@@ -155,6 +145,9 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
155
145
|
return (
|
|
156
146
|
<>
|
|
157
147
|
{React.cloneElement(children as React.ReactElement<any>, {
|
|
148
|
+
...(_visible && {
|
|
149
|
+
'aria-describedby': uID.current,
|
|
150
|
+
}),
|
|
158
151
|
ref: togglerRef,
|
|
159
152
|
...((trigger === 'click' || trigger.includes('click')) && {
|
|
160
153
|
onClick: () => toggleVisible(!_visible),
|
|
@@ -173,8 +166,22 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
173
166
|
in={_visible}
|
|
174
167
|
mountOnEnter
|
|
175
168
|
nodeRef={popoverRef}
|
|
176
|
-
onEnter={
|
|
169
|
+
onEnter={() => {
|
|
170
|
+
if (togglerRef.current && popoverRef.current) {
|
|
171
|
+
initPopper(togglerRef.current, popoverRef.current, popperConfig)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
onShow
|
|
175
|
+
}}
|
|
176
|
+
onEntering={() => {
|
|
177
|
+
if (togglerRef.current && popoverRef.current) {
|
|
178
|
+
popoverRef.current.style.display = 'initial'
|
|
179
|
+
}
|
|
180
|
+
}}
|
|
177
181
|
onExit={onHide}
|
|
182
|
+
onExited={() => {
|
|
183
|
+
destroyPopper()
|
|
184
|
+
}}
|
|
178
185
|
timeout={{
|
|
179
186
|
enter: 0,
|
|
180
187
|
exit: popoverRef.current
|
|
@@ -194,8 +201,12 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
194
201
|
},
|
|
195
202
|
className,
|
|
196
203
|
)}
|
|
204
|
+
id={uID.current}
|
|
197
205
|
ref={forkedRef}
|
|
198
206
|
role="tooltip"
|
|
207
|
+
style={{
|
|
208
|
+
display: 'none',
|
|
209
|
+
}}
|
|
199
210
|
{...rest}
|
|
200
211
|
>
|
|
201
212
|
<div className="popover-arrow"></div>
|
|
@@ -1,25 +1,35 @@
|
|
|
1
|
-
import React, { forwardRef, HTMLAttributes } from 'react'
|
|
1
|
+
import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
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 CSidebarBrandProps extends HTMLAttributes<HTMLAnchorElement | HTMLDivElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
10
|
+
*
|
|
11
|
+
* @since 5.0.0-rc.1
|
|
12
|
+
*/
|
|
13
|
+
as?: ElementType
|
|
6
14
|
/**
|
|
7
15
|
* A string of all className you want applied to the component.
|
|
8
16
|
*/
|
|
9
17
|
className?: string
|
|
10
18
|
}
|
|
11
19
|
|
|
12
|
-
export const CSidebarBrand
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
)
|
|
20
|
+
export const CSidebarBrand: PolymorphicRefForwardingComponent<'a', CSidebarBrandProps> = forwardRef<
|
|
21
|
+
HTMLAnchorElement | HTMLDivElement,
|
|
22
|
+
CSidebarBrandProps
|
|
23
|
+
>(({ children, as: Component = 'a', className, ...rest }, ref) => {
|
|
24
|
+
return (
|
|
25
|
+
<Component className={classNames('sidebar-brand', className)} ref={ref} {...rest}>
|
|
26
|
+
{children}
|
|
27
|
+
</Component>
|
|
28
|
+
)
|
|
29
|
+
})
|
|
21
30
|
|
|
22
31
|
CSidebarBrand.propTypes = {
|
|
32
|
+
as: PropTypes.elementType,
|
|
23
33
|
children: PropTypes.node,
|
|
24
34
|
className: PropTypes.string,
|
|
25
35
|
}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
createContext,
|
|
3
|
+
ElementType,
|
|
4
|
+
forwardRef,
|
|
5
|
+
HTMLAttributes,
|
|
6
|
+
ReactElement,
|
|
7
|
+
ReactNode,
|
|
8
|
+
useState,
|
|
9
|
+
} from 'react'
|
|
2
10
|
import PropTypes from 'prop-types'
|
|
3
11
|
import classNames from 'classnames'
|
|
4
12
|
|
|
13
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
14
|
+
|
|
5
15
|
export interface CSidebarNavProps extends HTMLAttributes<HTMLUListElement> {
|
|
16
|
+
/**
|
|
17
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
18
|
+
*
|
|
19
|
+
* @since 5.0.0-rc.1
|
|
20
|
+
*/
|
|
21
|
+
as?: ElementType
|
|
6
22
|
/**
|
|
7
23
|
* A string of all className you want applied to the component.
|
|
8
24
|
*/
|
|
@@ -16,33 +32,61 @@ interface ContextProps {
|
|
|
16
32
|
|
|
17
33
|
export const CNavContext = createContext({} as ContextProps)
|
|
18
34
|
|
|
19
|
-
|
|
20
|
-
(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
const recursiveClone = (children: ReactNode, id?: string, updateId?: boolean): ReactNode => {
|
|
36
|
+
return React.Children.map(children, (child: ReactNode, index: number) => {
|
|
37
|
+
if (
|
|
38
|
+
!React.isValidElement(child) ||
|
|
39
|
+
// @ts-expect-error the `children` exist in each component. TODO: resolve
|
|
40
|
+
(child.type.displayName !== 'CNavGroup' &&
|
|
41
|
+
// @ts-expect-error the `children` exist in each component. TODO: resolve
|
|
42
|
+
child.type.displayName !== 'CNavLink' &&
|
|
43
|
+
// @ts-expect-error the `children` exist in each component. TODO: resolve
|
|
44
|
+
child.type.displayName !== 'CNavItem')
|
|
45
|
+
) {
|
|
46
|
+
return child
|
|
25
47
|
}
|
|
26
48
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
49
|
+
const _id = id ? (updateId ? `${id}.${index}` : `${id}`) : `${index}`
|
|
50
|
+
|
|
51
|
+
if (child.props && child.props.children) {
|
|
52
|
+
return React.cloneElement(child as ReactElement<any>, {
|
|
53
|
+
idx: _id,
|
|
54
|
+
children: recursiveClone(
|
|
55
|
+
child.props.children,
|
|
56
|
+
_id,
|
|
57
|
+
// @ts-expect-error the `displayName` exist in each component. TODO: resolve
|
|
58
|
+
child.type.displayName === 'CNavItem' ? false : true,
|
|
59
|
+
),
|
|
60
|
+
})
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return React.cloneElement(child as ReactElement<any>, {
|
|
64
|
+
idx: _id,
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const CSidebarNav: PolymorphicRefForwardingComponent<'ul', CSidebarNavProps> = forwardRef<
|
|
70
|
+
HTMLUListElement,
|
|
71
|
+
CSidebarNavProps
|
|
72
|
+
>(({ children, as: Component = 'ul', className, ...rest }, ref) => {
|
|
73
|
+
const [visibleGroup, setVisibleGroup] = useState('')
|
|
74
|
+
const CNavContextValues = {
|
|
75
|
+
visibleGroup,
|
|
76
|
+
setVisibleGroup,
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<CNavContext.Provider value={CNavContextValues}>
|
|
81
|
+
<Component className={classNames('sidebar-nav', className)} ref={ref} {...rest}>
|
|
82
|
+
{recursiveClone(children)}
|
|
83
|
+
</Component>
|
|
84
|
+
</CNavContext.Provider>
|
|
85
|
+
)
|
|
86
|
+
})
|
|
44
87
|
|
|
45
88
|
CSidebarNav.propTypes = {
|
|
89
|
+
as: PropTypes.elementType,
|
|
46
90
|
children: PropTypes.node,
|
|
47
91
|
className: PropTypes.string,
|
|
48
92
|
}
|
|
@@ -2,10 +2,15 @@ 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'
|
|
5
6
|
import { colorPropType } from '../../props'
|
|
6
7
|
import type { Colors } from '../../types'
|
|
7
8
|
|
|
8
9
|
export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanElement> {
|
|
10
|
+
/**
|
|
11
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
12
|
+
*/
|
|
13
|
+
as?: ElementType
|
|
9
14
|
/**
|
|
10
15
|
* A string of all className you want applied to the component.
|
|
11
16
|
*/
|
|
@@ -16,10 +21,6 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
|
|
|
16
21
|
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
|
|
17
22
|
*/
|
|
18
23
|
color?: Colors
|
|
19
|
-
/**
|
|
20
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
21
|
-
*/
|
|
22
|
-
component?: string | ElementType
|
|
23
24
|
/**
|
|
24
25
|
* Size the component small.
|
|
25
26
|
*/
|
|
@@ -34,12 +35,15 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
|
|
|
34
35
|
visuallyHiddenLabel?: string
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
export const CSpinner
|
|
38
|
+
export const CSpinner: PolymorphicRefForwardingComponent<'div', CSpinnerProps> = forwardRef<
|
|
39
|
+
HTMLDivElement | HTMLSpanElement,
|
|
40
|
+
CSpinnerProps
|
|
41
|
+
>(
|
|
38
42
|
(
|
|
39
43
|
{
|
|
44
|
+
as: Component = 'div',
|
|
40
45
|
className,
|
|
41
46
|
color,
|
|
42
|
-
component: Component = 'div',
|
|
43
47
|
size,
|
|
44
48
|
variant = 'border',
|
|
45
49
|
visuallyHiddenLabel = 'Loading...',
|
|
@@ -68,9 +72,9 @@ export const CSpinner = forwardRef<HTMLDivElement | HTMLSpanElement, CSpinnerPro
|
|
|
68
72
|
)
|
|
69
73
|
|
|
70
74
|
CSpinner.propTypes = {
|
|
75
|
+
as: PropTypes.string,
|
|
71
76
|
className: PropTypes.string,
|
|
72
77
|
color: colorPropType,
|
|
73
|
-
component: PropTypes.string,
|
|
74
78
|
size: PropTypes.oneOf(['sm']),
|
|
75
79
|
variant: PropTypes.oneOf(['border', 'grow']),
|
|
76
80
|
visuallyHiddenLabel: PropTypes.string,
|
|
@@ -10,7 +10,7 @@ test('loads and displays CSpinner component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CSpinner customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CSpinner className="bazinga" color="warning"
|
|
13
|
+
<CSpinner className="bazinga" color="warning" as="h3" size="sm" variant="grow">
|
|
14
14
|
Test
|
|
15
15
|
</CSpinner>,
|
|
16
16
|
)
|
|
@@ -6,17 +6,19 @@ import { CCloseButton, CCloseButtonProps } from '../close-button/CCloseButton'
|
|
|
6
6
|
|
|
7
7
|
import { CToastContext } from './CToast'
|
|
8
8
|
|
|
9
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
10
|
+
|
|
9
11
|
type CombineButtonProps = CCloseButtonProps & CButtonProps
|
|
10
12
|
|
|
11
|
-
export interface CToastCloseProps extends CombineButtonProps {
|
|
13
|
+
export interface CToastCloseProps extends Omit<CombineButtonProps, 'as'> {
|
|
12
14
|
/**
|
|
13
15
|
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
14
16
|
*/
|
|
15
|
-
|
|
17
|
+
as?: string | ElementType
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
export const CToastClose
|
|
19
|
-
({ children,
|
|
20
|
+
export const CToastClose: PolymorphicRefForwardingComponent<'button', CToastCloseProps> =
|
|
21
|
+
forwardRef<HTMLButtonElement, CToastCloseProps>(({ children, as: Component, ...rest }, ref) => {
|
|
20
22
|
const { setVisible } = useContext(CToastContext)
|
|
21
23
|
return Component ? (
|
|
22
24
|
<Component onClick={() => setVisible(false)} {...rest} ref={ref}>
|
|
@@ -25,12 +27,11 @@ export const CToastClose = forwardRef<HTMLButtonElement, CToastCloseProps>(
|
|
|
25
27
|
) : (
|
|
26
28
|
<CCloseButton onClick={() => setVisible(false)} {...rest} ref={ref} />
|
|
27
29
|
)
|
|
28
|
-
}
|
|
29
|
-
)
|
|
30
|
+
})
|
|
30
31
|
|
|
31
32
|
CToastClose.propTypes = {
|
|
32
33
|
...CCloseButton.propTypes,
|
|
33
|
-
|
|
34
|
+
as: PropTypes.elementType,
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
CToastClose.displayName = 'CToastClose'
|