@coreui/react-pro 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/calendar/CCalendar.d.ts +3 -3
- package/dist/cjs/components/calendar/CCalendar.js +10 -8
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/utils.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/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/date-range-picker/CDateRangePicker.d.ts +3 -3
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +2 -2
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/cjs/components/dropdown/CDropdown.js +7 -5
- 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/element-cover/CElementCover.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 -10
- 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/loading-button/CLoadingButton.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/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/cjs/components/multi-select/utils.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/picker/CPicker.d.ts +2 -2
- package/dist/cjs/components/picker/CPicker.js +1 -1
- package/dist/cjs/components/picker/CPicker.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/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.d.ts +0 -1
- package/dist/cjs/components/smart-table/CSmartTable.js +8 -9
- package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableBody.js +3 -3
- package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +4 -3
- package/dist/cjs/components/smart-table/CSmartTableHead.js +3 -3
- package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/cjs/components/smart-table/consts.d.ts +1 -0
- package/dist/cjs/components/smart-table/consts.js +6 -0
- package/dist/cjs/components/smart-table/consts.js.map +1 -0
- package/dist/cjs/components/smart-table/utils.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/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/cjs/components/time-picker/utils.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/toast/CToaster.js +1 -1
- package/dist/cjs/components/toast/CToaster.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/components/virtual-scroller/CVirtualScroller.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/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/isObjectInArray.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 +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/calendar/CCalendar.d.ts +3 -3
- package/dist/esm/components/calendar/CCalendar.js +10 -8
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/utils.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/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/date-range-picker/CDateRangePicker.d.ts +3 -3
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +2 -2
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/utils.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/esm/components/dropdown/CDropdown.js +7 -5
- 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/element-cover/CElementCover.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 -10
- 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/loading-button/CLoadingButton.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/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/esm/components/multi-select/utils.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/picker/CPicker.d.ts +2 -2
- package/dist/esm/components/picker/CPicker.js +1 -1
- package/dist/esm/components/picker/CPicker.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/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.d.ts +0 -1
- package/dist/esm/components/smart-table/CSmartTable.js +5 -5
- package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.js +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.d.ts +4 -3
- package/dist/esm/components/smart-table/CSmartTableHead.js +3 -3
- package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/esm/components/smart-table/consts.d.ts +1 -0
- package/dist/esm/components/smart-table/consts.js +4 -0
- package/dist/esm/components/smart-table/consts.js.map +1 -0
- package/dist/esm/components/smart-table/utils.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/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/esm/components/time-picker/utils.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/toast/CToaster.js +1 -1
- package/dist/esm/components/toast/CToaster.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/components/virtual-scroller/CVirtualScroller.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/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/isObjectInArray.js.map +1 -1
- package/dist/esm/utils/isRTL.js.map +1 -1
- package/package.json +14 -18
- 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/calendar/CCalendar.tsx +19 -13
- 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/date-range-picker/CDateRangePicker.tsx +12 -12
- 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 +11 -13
- package/src/components/header/CHeaderBrand.tsx~HEAD +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/loading-button/CLoadingButton.tsx +1 -0
- 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/picker/CPicker.tsx +3 -3
- 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/smart-table/CSmartTable.tsx +2 -3
- package/src/components/smart-table/CSmartTableBody.tsx +1 -1
- package/src/components/smart-table/CSmartTableHead.tsx +179 -177
- package/src/components/smart-table/consts.ts +1 -0
- 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
- package/src/components/list-group/CListGroupItem.tsx~HEAD +0 -81
|
@@ -11,6 +11,7 @@ import React, {
|
|
|
11
11
|
import PropTypes from 'prop-types'
|
|
12
12
|
import classNames from 'classnames'
|
|
13
13
|
|
|
14
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
14
15
|
import { useForkedRef, usePopper } from '../../hooks'
|
|
15
16
|
import { placementPropType } from '../../props'
|
|
16
17
|
import type { Placements } from '../../types'
|
|
@@ -26,6 +27,10 @@ export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
|
|
|
26
27
|
* @type 'start' | 'end' | { xs: 'start' | 'end' } | { sm: 'start' | 'end' } | { md: 'start' | 'end' } | { lg: 'start' | 'end' } | { xl: 'start' | 'end'} | { xxl: 'start' | 'end'}
|
|
27
28
|
*/
|
|
28
29
|
alignment?: Alignments
|
|
30
|
+
/**
|
|
31
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
32
|
+
*/
|
|
33
|
+
as?: ElementType
|
|
29
34
|
/**
|
|
30
35
|
* Configure the auto close behavior of the dropdown:
|
|
31
36
|
* - `true` - the dropdown will be closed by clicking outside or inside the dropdown menu.
|
|
@@ -38,10 +43,6 @@ export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
|
|
|
38
43
|
* A string of all className you want applied to the base component.
|
|
39
44
|
*/
|
|
40
45
|
className?: string
|
|
41
|
-
/**
|
|
42
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
43
|
-
*/
|
|
44
|
-
component?: string | ElementType
|
|
45
46
|
/**
|
|
46
47
|
* Appends the react dropdown menu to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`.
|
|
47
48
|
*
|
|
@@ -106,11 +107,15 @@ interface ContextProps extends CDropdownProps {
|
|
|
106
107
|
|
|
107
108
|
export const CDropdownContext = createContext({} as ContextProps)
|
|
108
109
|
|
|
109
|
-
export const CDropdown
|
|
110
|
+
export const CDropdown: PolymorphicRefForwardingComponent<'div', CDropdownProps> = forwardRef<
|
|
111
|
+
HTMLDivElement | HTMLLIElement,
|
|
112
|
+
CDropdownProps
|
|
113
|
+
>(
|
|
110
114
|
(
|
|
111
115
|
{
|
|
112
116
|
children,
|
|
113
117
|
alignment,
|
|
118
|
+
as = 'div',
|
|
114
119
|
autoClose = true,
|
|
115
120
|
className,
|
|
116
121
|
container,
|
|
@@ -123,7 +128,6 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
|
|
|
123
128
|
popper = true,
|
|
124
129
|
portal = false,
|
|
125
130
|
variant = 'btn-group',
|
|
126
|
-
component = 'div',
|
|
127
131
|
visible = false,
|
|
128
132
|
...rest
|
|
129
133
|
},
|
|
@@ -137,7 +141,7 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
|
|
|
137
141
|
const [_visible, setVisible] = useState(visible)
|
|
138
142
|
const { initPopper, destroyPopper } = usePopper()
|
|
139
143
|
|
|
140
|
-
const Component = variant === 'nav-item' ? 'li' :
|
|
144
|
+
const Component = variant === 'nav-item' ? 'li' : as
|
|
141
145
|
|
|
142
146
|
// Disable popper if responsive aligment is set.
|
|
143
147
|
if (typeof alignment === 'object') {
|
|
@@ -197,10 +201,16 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
|
|
|
197
201
|
}, [_visible])
|
|
198
202
|
|
|
199
203
|
const handleKeydown = (event: KeyboardEvent) => {
|
|
200
|
-
if (
|
|
204
|
+
if (
|
|
205
|
+
_visible &&
|
|
206
|
+
dropdownMenuRef.current &&
|
|
207
|
+
(event.key === 'ArrowDown' || event.key === 'ArrowUp')
|
|
208
|
+
) {
|
|
201
209
|
event.preventDefault()
|
|
202
210
|
const target = event.target as HTMLElement
|
|
203
|
-
const items: HTMLElement[] = Array.from(
|
|
211
|
+
const items: HTMLElement[] = Array.from(
|
|
212
|
+
dropdownMenuRef.current.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)'),
|
|
213
|
+
)
|
|
204
214
|
getNextActiveElement(items, target, event.key === 'ArrowDown', true).focus()
|
|
205
215
|
}
|
|
206
216
|
}
|
|
@@ -273,13 +283,13 @@ CDropdown.propTypes = {
|
|
|
273
283
|
PropTypes.shape({ xl: alignmentDirection.isRequired }),
|
|
274
284
|
PropTypes.shape({ xxl: alignmentDirection.isRequired }),
|
|
275
285
|
]),
|
|
286
|
+
as: PropTypes.elementType,
|
|
276
287
|
autoClose: PropTypes.oneOfType([
|
|
277
288
|
PropTypes.bool,
|
|
278
289
|
PropTypes.oneOf<'inside' | 'outside'>(['inside', 'outside']),
|
|
279
290
|
]),
|
|
280
291
|
children: PropTypes.node,
|
|
281
292
|
className: PropTypes.string,
|
|
282
|
-
component: PropTypes.elementType,
|
|
283
293
|
dark: PropTypes.bool,
|
|
284
294
|
direction: PropTypes.oneOf(['center', 'dropup', 'dropup-center', 'dropend', 'dropstart']),
|
|
285
295
|
offset: PropTypes.any, // TODO: find good proptype
|
|
@@ -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 CDropdownHeaderProps 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 CDropdownHeader
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
export const CDropdownHeader: PolymorphicRefForwardingComponent<'h6', CDropdownHeaderProps> =
|
|
19
|
+
forwardRef<HTMLHeadingElement, CDropdownHeaderProps>(
|
|
20
|
+
({ children, as: Component = 'h6', className, ...rest }, ref) => {
|
|
21
|
+
return (
|
|
22
|
+
<Component className={classNames('dropdown-header', className)} {...rest} ref={ref}>
|
|
23
|
+
{children}
|
|
24
|
+
</Component>
|
|
25
|
+
)
|
|
26
|
+
},
|
|
27
|
+
)
|
|
25
28
|
|
|
26
29
|
CDropdownHeader.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
|
CDropdownHeader.displayName = 'CDropdownHeader'
|
|
@@ -1,39 +1,33 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { forwardRef } from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
5
|
import { CLink, CLinkProps } from '../link/CLink'
|
|
6
6
|
|
|
7
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
8
|
+
|
|
7
9
|
export interface CDropdownItemProps extends CLinkProps {
|
|
8
10
|
/**
|
|
9
11
|
* A string of all className you want applied to the component.
|
|
10
12
|
*/
|
|
11
13
|
className?: string
|
|
12
|
-
/**
|
|
13
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
14
|
-
*/
|
|
15
|
-
component?: string | ElementType
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
export const CDropdownItem
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
</CLink>
|
|
29
|
-
)
|
|
30
|
-
},
|
|
31
|
-
)
|
|
16
|
+
export const CDropdownItem: PolymorphicRefForwardingComponent<'a', CDropdownItemProps> = forwardRef<
|
|
17
|
+
HTMLButtonElement | HTMLAnchorElement,
|
|
18
|
+
CDropdownItemProps
|
|
19
|
+
>(({ children, as = 'a', className, ...rest }, ref) => {
|
|
20
|
+
return (
|
|
21
|
+
<CLink className={classNames('dropdown-item', className)} as={as} {...rest} ref={ref}>
|
|
22
|
+
{children}
|
|
23
|
+
</CLink>
|
|
24
|
+
)
|
|
25
|
+
})
|
|
32
26
|
|
|
33
27
|
CDropdownItem.propTypes = {
|
|
28
|
+
as: PropTypes.elementType,
|
|
34
29
|
children: PropTypes.node,
|
|
35
30
|
className: PropTypes.string,
|
|
36
|
-
component: PropTypes.elementType,
|
|
37
31
|
}
|
|
38
32
|
|
|
39
33
|
CDropdownItem.displayName = 'CDropdownItem'
|
|
@@ -2,19 +2,24 @@ 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 CDropdownItemPlainProps extends HTMLAttributes<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 CDropdownItemPlain
|
|
17
|
-
|
|
18
|
+
export const CDropdownItemPlain: PolymorphicRefForwardingComponent<
|
|
19
|
+
'span',
|
|
20
|
+
CDropdownItemPlainProps
|
|
21
|
+
> = forwardRef<HTMLSpanElement, CDropdownItemPlainProps>(
|
|
22
|
+
({ children, as: Component = 'span', className, ...rest }, ref) => {
|
|
18
23
|
return (
|
|
19
24
|
<Component className={classNames('dropdown-item-text', className)} {...rest} ref={ref}>
|
|
20
25
|
{children}
|
|
@@ -24,9 +29,9 @@ export const CDropdownItemPlain = forwardRef<HTMLSpanElement, CDropdownItemPlain
|
|
|
24
29
|
)
|
|
25
30
|
|
|
26
31
|
CDropdownItemPlain.propTypes = {
|
|
32
|
+
as: PropTypes.elementType,
|
|
27
33
|
children: PropTypes.node,
|
|
28
34
|
className: PropTypes.string,
|
|
29
|
-
component: PropTypes.elementType,
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
CDropdownItemPlain.displayName = 'CDropdownItemPlain'
|
|
@@ -5,65 +5,66 @@ import classNames from 'classnames'
|
|
|
5
5
|
import { CDropdownContext } from './CDropdown'
|
|
6
6
|
import { CConditionalPortal } from '../conditional-portal'
|
|
7
7
|
|
|
8
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
8
9
|
import { useForkedRef } from '../../hooks'
|
|
9
10
|
|
|
10
11
|
import { getAlignmentClassNames } from './utils'
|
|
11
12
|
|
|
12
|
-
|
|
13
13
|
export interface CDropdownMenuProps extends HTMLAttributes<HTMLDivElement | HTMLUListElement> {
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
as?: ElementType
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* A string of all className you want applied to the base component.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
className?: string
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
export const CDropdownMenu
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
export const CDropdownMenu: PolymorphicRefForwardingComponent<'ul', CDropdownMenuProps> =
|
|
25
|
+
forwardRef<HTMLDivElement | HTMLUListElement, CDropdownMenuProps>(
|
|
26
|
+
({ children, as: Component = 'ul', className, ...rest }, ref) => {
|
|
27
|
+
const { alignment, container, dark, dropdownMenuRef, popper, portal, visible } =
|
|
28
|
+
useContext(CDropdownContext)
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
const forkedRef = useForkedRef(ref, dropdownMenuRef)
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
)
|
|
32
|
+
return (
|
|
33
|
+
<CConditionalPortal container={container} portal={portal ?? false}>
|
|
34
|
+
<Component
|
|
35
|
+
className={classNames(
|
|
36
|
+
'dropdown-menu',
|
|
37
|
+
{
|
|
38
|
+
show: visible,
|
|
39
|
+
},
|
|
40
|
+
alignment && getAlignmentClassNames(alignment),
|
|
41
|
+
className,
|
|
42
|
+
)}
|
|
43
|
+
ref={forkedRef}
|
|
44
|
+
role="menu"
|
|
45
|
+
aria-hidden={!visible}
|
|
46
|
+
{...(!popper && { 'data-coreui-popper': 'static' })}
|
|
47
|
+
{...(dark && { 'data-coreui-theme': 'dark' })}
|
|
48
|
+
{...rest}
|
|
49
|
+
>
|
|
50
|
+
{Component === 'ul'
|
|
51
|
+
? React.Children.map(children, (child, index) => {
|
|
52
|
+
if (React.isValidElement(child)) {
|
|
53
|
+
return <li key={index}>{React.cloneElement(child)}</li>
|
|
54
|
+
}
|
|
55
|
+
return
|
|
56
|
+
})
|
|
57
|
+
: children}
|
|
58
|
+
</Component>
|
|
59
|
+
</CConditionalPortal>
|
|
60
|
+
)
|
|
61
|
+
},
|
|
62
|
+
)
|
|
62
63
|
|
|
63
64
|
CDropdownMenu.propTypes = {
|
|
65
|
+
as: PropTypes.elementType,
|
|
64
66
|
children: PropTypes.node,
|
|
65
67
|
className: PropTypes.string,
|
|
66
|
-
component: PropTypes.elementType,
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
CDropdownMenu.displayName = 'CDropdownMenu'
|
|
@@ -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
|
|
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'
|