@coreui/react-pro 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/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.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 +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/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.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.js +3 -3
- package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
- 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/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/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/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.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 +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/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.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.js +3 -3
- package/dist/esm/components/smart-table/CSmartTable.js.map +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/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/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/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 +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/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/conditional-portal/CConditionalPortal.tsx +1 -1
- package/src/components/date-range-picker/CDateRangePicker.tsx +12 -12
- 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 +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/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/smart-table/CSmartTable.tsx +1 -1
- package/src/components/smart-table/CSmartTableHead.tsx +179 -177
- 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
- package/src/components/list-group/CListGroupItem.tsx~HEAD +0 -81
|
@@ -13,6 +13,7 @@ import { CFormCheck, CFormInput } from '../form'
|
|
|
13
13
|
import { CTableHeaderCell, CTableRow } from '../table'
|
|
14
14
|
import { CTableHead, CTableHeadProps } from '../table/CTableHead'
|
|
15
15
|
|
|
16
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
16
17
|
import type { ColumnFilter, ColumnFilterValue, Column, Item, Sorter, SorterValue } from './types'
|
|
17
18
|
import {
|
|
18
19
|
getColumnKey,
|
|
@@ -26,10 +27,10 @@ import {
|
|
|
26
27
|
} from './utils'
|
|
27
28
|
|
|
28
29
|
export interface CSmartTableHeadProps extends CTableHeadProps {
|
|
30
|
+
as?: ElementType
|
|
29
31
|
columnFilter?: boolean | ColumnFilter
|
|
30
32
|
columnFilterState?: ColumnFilterValue
|
|
31
33
|
columnSorter?: boolean | Sorter
|
|
32
|
-
component?: string | ElementType
|
|
33
34
|
columns: (Column | string)[]
|
|
34
35
|
handleOnCustomFilterChange?: (key: string, value: any) => void
|
|
35
36
|
handleFilterOnChange?: (key: string, value: string) => void
|
|
@@ -47,205 +48,206 @@ export interface CSmartTableHeadProps extends CTableHeadProps {
|
|
|
47
48
|
sortingIconDescending?: ReactNode
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
export const CSmartTableHead
|
|
51
|
-
(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
51
|
+
export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartTableHeadProps> =
|
|
52
|
+
forwardRef<HTMLTableSectionElement, CSmartTableHeadProps>(
|
|
53
|
+
(
|
|
54
|
+
{
|
|
55
|
+
as: Component = CTableHead,
|
|
56
|
+
columnFilter,
|
|
57
|
+
columnFilterState,
|
|
58
|
+
columnSorter,
|
|
59
|
+
columns,
|
|
60
|
+
handleOnCustomFilterChange,
|
|
61
|
+
handleFilterOnChange,
|
|
62
|
+
handleFilterOnInput,
|
|
63
|
+
handleSelectAllChecked,
|
|
64
|
+
handleSort,
|
|
65
|
+
items,
|
|
66
|
+
selectable,
|
|
67
|
+
selectAll,
|
|
68
|
+
selectedAll,
|
|
69
|
+
showGroups = true,
|
|
70
|
+
sorterState,
|
|
71
|
+
sortingIcon,
|
|
72
|
+
sortingIconAscending,
|
|
73
|
+
sortingIconDescending,
|
|
74
|
+
...rest
|
|
75
|
+
},
|
|
76
|
+
ref,
|
|
77
|
+
) => {
|
|
78
|
+
const selectAllcheckboxRef = useRef<HTMLInputElement>(null)
|
|
79
|
+
const [refresh, setRefresh] = useState(false)
|
|
80
|
+
|
|
81
|
+
const _columns = useMemo(() => getColumns(columns), [columns])
|
|
82
|
+
const groups = useMemo(() => getColumnGroups(columns), [columns])
|
|
78
83
|
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
if (columnFilterState && Object.keys(columnFilterState).length === 0) {
|
|
86
|
+
setRefresh(true)
|
|
87
|
+
}
|
|
88
|
+
}, [columnFilterState])
|
|
81
89
|
|
|
82
|
-
|
|
83
|
-
if (columnFilterState && Object.keys(columnFilterState).length === 0) {
|
|
90
|
+
useEffect(() => {
|
|
84
91
|
setRefresh(true)
|
|
85
|
-
}
|
|
86
|
-
}, [columnFilterState])
|
|
92
|
+
}, [items])
|
|
87
93
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
useEffect(() => {
|
|
95
|
+
if (setRefresh) {
|
|
96
|
+
setRefresh(false)
|
|
97
|
+
}
|
|
98
|
+
}, [refresh])
|
|
91
99
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, [refresh])
|
|
100
|
+
const columnSorterIcon = (column: Column | string) => {
|
|
101
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
|
|
102
|
+
return <span className="opacity-25 float-end me-1">{sortingIcon}</span>
|
|
103
|
+
}
|
|
97
104
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
105
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 'asc') {
|
|
106
|
+
return <span className="float-end me-1">{sortingIconAscending}</span>
|
|
107
|
+
}
|
|
102
108
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 'desc') {
|
|
110
|
+
return <span className="float-end me-1">{sortingIconDescending}</span>
|
|
111
|
+
}
|
|
106
112
|
|
|
107
|
-
|
|
108
|
-
return <span className="float-end me-1">{sortingIconDescending}</span>
|
|
113
|
+
return
|
|
109
114
|
}
|
|
110
115
|
|
|
111
|
-
return
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
return (
|
|
117
|
+
<Component {...rest} ref={ref}>
|
|
118
|
+
{showGroups &&
|
|
119
|
+
groups &&
|
|
120
|
+
groups.length > 0 &&
|
|
121
|
+
groups.map((row, index) => (
|
|
122
|
+
<CTableRow key={index}>
|
|
123
|
+
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
124
|
+
{row.map((cell, index) => (
|
|
125
|
+
<CTableHeaderCell
|
|
126
|
+
colSpan={cell.colspan}
|
|
127
|
+
{...getTableHeaderCellProps(cell)}
|
|
128
|
+
key={index}
|
|
129
|
+
>
|
|
130
|
+
{cell.label}
|
|
131
|
+
</CTableHeaderCell>
|
|
132
|
+
))}
|
|
133
|
+
</CTableRow>
|
|
134
|
+
))}
|
|
135
|
+
<CTableRow>
|
|
136
|
+
{selectable && (
|
|
137
|
+
<CTableHeaderCell>
|
|
138
|
+
{selectAll && (
|
|
139
|
+
<CFormCheck
|
|
140
|
+
checked={typeof selectedAll === 'boolean' ? selectedAll : false}
|
|
141
|
+
indeterminate={selectedAll === 'indeterminate' ? true : false}
|
|
142
|
+
onChange={() => handleSelectAllChecked && handleSelectAllChecked()}
|
|
143
|
+
ref={selectAllcheckboxRef}
|
|
144
|
+
/>
|
|
145
|
+
)}
|
|
146
|
+
</CTableHeaderCell>
|
|
147
|
+
)}
|
|
148
|
+
{_columns.map((column: Column | string, index: number) => {
|
|
149
|
+
const isSortable =
|
|
150
|
+
columnSorter &&
|
|
151
|
+
(typeof column === 'object'
|
|
152
|
+
? column.sorter === undefined
|
|
153
|
+
? true
|
|
154
|
+
: column.sorter
|
|
155
|
+
: true)
|
|
156
|
+
return (
|
|
123
157
|
<CTableHeaderCell
|
|
124
|
-
|
|
125
|
-
{
|
|
158
|
+
{...getTableHeaderCellProps(column)}
|
|
159
|
+
style={getTableHeaderCellStyles(column, columnSorter)}
|
|
126
160
|
key={index}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
<CTableRow>
|
|
134
|
-
{selectable && (
|
|
135
|
-
<CTableHeaderCell>
|
|
136
|
-
{selectAll && (
|
|
137
|
-
<CFormCheck
|
|
138
|
-
checked={typeof selectedAll === 'boolean' ? selectedAll : false}
|
|
139
|
-
indeterminate={selectedAll === 'indeterminate' ? true : false}
|
|
140
|
-
onChange={() => handleSelectAllChecked && handleSelectAllChecked()}
|
|
141
|
-
ref={selectAllcheckboxRef}
|
|
142
|
-
/>
|
|
143
|
-
)}
|
|
144
|
-
</CTableHeaderCell>
|
|
145
|
-
)}
|
|
146
|
-
{_columns.map((column: Column | string, index: number) => {
|
|
147
|
-
const isSortable =
|
|
148
|
-
columnSorter &&
|
|
149
|
-
(typeof column === 'object'
|
|
150
|
-
? column.sorter === undefined
|
|
151
|
-
? true
|
|
152
|
-
: column.sorter
|
|
153
|
-
: true)
|
|
154
|
-
return (
|
|
155
|
-
<CTableHeaderCell
|
|
156
|
-
{...getTableHeaderCellProps(column)}
|
|
157
|
-
style={getTableHeaderCellStyles(column, columnSorter)}
|
|
158
|
-
key={index}
|
|
159
|
-
{...(isSortable && {
|
|
160
|
-
onClick: () => handleSort && handleSort(getColumnKey(column), index),
|
|
161
|
-
onKeyDown: (event) => {
|
|
162
|
-
if (event.key === 'Enter') {
|
|
163
|
-
handleSort && handleSort(getColumnKey(column), index)
|
|
164
|
-
}
|
|
161
|
+
{...(isSortable && {
|
|
162
|
+
onClick: () => handleSort && handleSort(getColumnKey(column), index),
|
|
163
|
+
onKeyDown: (event) => {
|
|
164
|
+
if (event.key === 'Enter') {
|
|
165
|
+
handleSort && handleSort(getColumnKey(column), index)
|
|
166
|
+
}
|
|
165
167
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
if (event.key === 'ArrowUp') {
|
|
169
|
+
event.preventDefault()
|
|
170
|
+
handleSort && handleSort(getColumnKey(column), index, 'asc')
|
|
171
|
+
}
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
</CTableHeaderCell>
|
|
182
|
-
)
|
|
183
|
-
})}
|
|
184
|
-
</CTableRow>
|
|
185
|
-
{columnFilter && (
|
|
186
|
-
<CTableRow>
|
|
187
|
-
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
188
|
-
{_columns.map((column: Column | string, index: number) => {
|
|
189
|
-
return (
|
|
190
|
-
<CTableHeaderCell {...getTableHeaderCellProps(column)} key={index}>
|
|
191
|
-
{(
|
|
192
|
-
typeof column === 'object'
|
|
193
|
-
? column.filter === undefined
|
|
194
|
-
? true
|
|
195
|
-
: column.filter
|
|
196
|
-
: true
|
|
197
|
-
) ? (
|
|
198
|
-
typeof column !== 'string' && typeof column.filter === 'function' ? (
|
|
199
|
-
!refresh &&
|
|
200
|
-
column.filter(
|
|
201
|
-
getColumnValues(items, getColumnKey(column)),
|
|
202
|
-
(value: any) =>
|
|
203
|
-
handleOnCustomFilterChange &&
|
|
204
|
-
handleOnCustomFilterChange(getColumnKey(column), value),
|
|
205
|
-
)
|
|
206
|
-
) : (
|
|
207
|
-
<CFormInput
|
|
208
|
-
size="sm"
|
|
209
|
-
onInput={(event) =>
|
|
210
|
-
handleFilterOnInput &&
|
|
211
|
-
handleFilterOnInput(
|
|
212
|
-
getColumnKey(column),
|
|
213
|
-
(event.target as HTMLInputElement).value,
|
|
214
|
-
)
|
|
215
|
-
}
|
|
216
|
-
onChange={(event) =>
|
|
217
|
-
handleFilterOnChange &&
|
|
218
|
-
handleFilterOnChange(
|
|
219
|
-
getColumnKey(column),
|
|
220
|
-
(event.target as HTMLInputElement).value,
|
|
221
|
-
)
|
|
222
|
-
}
|
|
223
|
-
value={
|
|
224
|
-
columnFilterState && columnFilterState[getColumnKey(column)]
|
|
225
|
-
? columnFilterState[getColumnKey(column)]
|
|
226
|
-
: ''
|
|
227
|
-
}
|
|
228
|
-
aria-label={`column name: '${getColumnLabel(column)}' filter input`}
|
|
229
|
-
/>
|
|
230
|
-
)
|
|
231
|
-
) : (
|
|
232
|
-
''
|
|
233
|
-
)}
|
|
173
|
+
if (event.key === 'ArrowDown') {
|
|
174
|
+
event.preventDefault()
|
|
175
|
+
handleSort && handleSort(getColumnKey(column), index, 'desc')
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
tabIndex: 0,
|
|
179
|
+
})}
|
|
180
|
+
>
|
|
181
|
+
<div className="d-inline">{getColumnLabel(column)}</div>
|
|
182
|
+
{isSortable && columnSorterIcon(column)}
|
|
234
183
|
</CTableHeaderCell>
|
|
235
184
|
)
|
|
236
185
|
})}
|
|
237
186
|
</CTableRow>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
187
|
+
{columnFilter && (
|
|
188
|
+
<CTableRow>
|
|
189
|
+
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
190
|
+
{_columns.map((column: Column | string, index: number) => {
|
|
191
|
+
return (
|
|
192
|
+
<CTableHeaderCell {...getTableHeaderCellProps(column)} key={index}>
|
|
193
|
+
{(
|
|
194
|
+
typeof column === 'object'
|
|
195
|
+
? column.filter === undefined
|
|
196
|
+
? true
|
|
197
|
+
: column.filter
|
|
198
|
+
: true
|
|
199
|
+
) ? (
|
|
200
|
+
typeof column !== 'string' && typeof column.filter === 'function' ? (
|
|
201
|
+
!refresh &&
|
|
202
|
+
column.filter(
|
|
203
|
+
getColumnValues(items, getColumnKey(column)),
|
|
204
|
+
(value: any) =>
|
|
205
|
+
handleOnCustomFilterChange &&
|
|
206
|
+
handleOnCustomFilterChange(getColumnKey(column), value),
|
|
207
|
+
)
|
|
208
|
+
) : (
|
|
209
|
+
<CFormInput
|
|
210
|
+
size="sm"
|
|
211
|
+
onInput={(event) =>
|
|
212
|
+
handleFilterOnInput &&
|
|
213
|
+
handleFilterOnInput(
|
|
214
|
+
getColumnKey(column),
|
|
215
|
+
(event.target as HTMLInputElement).value,
|
|
216
|
+
)
|
|
217
|
+
}
|
|
218
|
+
onChange={(event) =>
|
|
219
|
+
handleFilterOnChange &&
|
|
220
|
+
handleFilterOnChange(
|
|
221
|
+
getColumnKey(column),
|
|
222
|
+
(event.target as HTMLInputElement).value,
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
value={
|
|
226
|
+
columnFilterState && columnFilterState[getColumnKey(column)]
|
|
227
|
+
? columnFilterState[getColumnKey(column)]
|
|
228
|
+
: ''
|
|
229
|
+
}
|
|
230
|
+
aria-label={`column name: '${getColumnLabel(column)}' filter input`}
|
|
231
|
+
/>
|
|
232
|
+
)
|
|
233
|
+
) : (
|
|
234
|
+
''
|
|
235
|
+
)}
|
|
236
|
+
</CTableHeaderCell>
|
|
237
|
+
)
|
|
238
|
+
})}
|
|
239
|
+
</CTableRow>
|
|
240
|
+
)}
|
|
241
|
+
</Component>
|
|
242
|
+
)
|
|
243
|
+
},
|
|
244
|
+
)
|
|
243
245
|
|
|
244
246
|
CSmartTableHead.propTypes = {
|
|
247
|
+
as: PropTypes.elementType,
|
|
245
248
|
columnFilter: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
|
|
246
249
|
columnFilterState: PropTypes.object,
|
|
247
250
|
columnSorter: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
|
|
248
|
-
component: PropTypes.elementType,
|
|
249
251
|
children: PropTypes.node,
|
|
250
252
|
columns: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.any, PropTypes.string])).isRequired, // TODO: improve this Prop Type,
|
|
251
253
|
handleFilterOnChange: PropTypes.func,
|
|
@@ -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'
|
|
@@ -90,9 +90,10 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
|
|
|
90
90
|
},
|
|
91
91
|
ref,
|
|
92
92
|
) => {
|
|
93
|
-
const tooltipRef = useRef(null)
|
|
93
|
+
const tooltipRef = useRef<HTMLDivElement>(null)
|
|
94
94
|
const togglerRef = useRef(null)
|
|
95
95
|
const forkedRef = useForkedRef(ref, tooltipRef)
|
|
96
|
+
const uID = useRef(`tooltip${Math.floor(Math.random() * 1_000_000)}`)
|
|
96
97
|
|
|
97
98
|
const { initPopper, destroyPopper } = usePopper()
|
|
98
99
|
const [_visible, setVisible] = useState(visible)
|
|
@@ -127,16 +128,6 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
|
|
|
127
128
|
setVisible(visible)
|
|
128
129
|
}, [visible])
|
|
129
130
|
|
|
130
|
-
useEffect(() => {
|
|
131
|
-
if (_visible && togglerRef.current && tooltipRef.current) {
|
|
132
|
-
initPopper(togglerRef.current, tooltipRef.current, popperConfig)
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return () => {
|
|
136
|
-
destroyPopper()
|
|
137
|
-
}
|
|
138
|
-
}, [_visible])
|
|
139
|
-
|
|
140
131
|
const toggleVisible = (visible: boolean) => {
|
|
141
132
|
if (visible) {
|
|
142
133
|
setTimeout(() => setVisible(true), _delay.show)
|
|
@@ -149,6 +140,9 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
|
|
|
149
140
|
return (
|
|
150
141
|
<>
|
|
151
142
|
{React.cloneElement(children as React.ReactElement<any>, {
|
|
143
|
+
...(_visible && {
|
|
144
|
+
'aria-describedby': uID.current,
|
|
145
|
+
}),
|
|
152
146
|
ref: togglerRef,
|
|
153
147
|
...((trigger === 'click' || trigger.includes('click')) && {
|
|
154
148
|
onClick: () => toggleVisible(!_visible),
|
|
@@ -167,8 +161,22 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
|
|
|
167
161
|
in={_visible}
|
|
168
162
|
mountOnEnter
|
|
169
163
|
nodeRef={tooltipRef}
|
|
170
|
-
onEnter={
|
|
164
|
+
onEnter={() => {
|
|
165
|
+
if (togglerRef.current && tooltipRef.current) {
|
|
166
|
+
initPopper(togglerRef.current, tooltipRef.current, popperConfig)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
onShow
|
|
170
|
+
}}
|
|
171
|
+
onEntering={() => {
|
|
172
|
+
if (togglerRef.current && tooltipRef.current) {
|
|
173
|
+
tooltipRef.current.style.display = 'initial'
|
|
174
|
+
}
|
|
175
|
+
}}
|
|
171
176
|
onExit={onHide}
|
|
177
|
+
onExited={() => {
|
|
178
|
+
destroyPopper()
|
|
179
|
+
}}
|
|
172
180
|
timeout={{
|
|
173
181
|
enter: 0,
|
|
174
182
|
exit: tooltipRef.current
|
|
@@ -188,8 +196,12 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
|
|
|
188
196
|
},
|
|
189
197
|
className,
|
|
190
198
|
)}
|
|
199
|
+
id={uID.current}
|
|
191
200
|
ref={forkedRef}
|
|
192
201
|
role="tooltip"
|
|
202
|
+
style={{
|
|
203
|
+
display: 'none',
|
|
204
|
+
}}
|
|
193
205
|
{...rest}
|
|
194
206
|
>
|
|
195
207
|
<div className="tooltip-arrow"></div>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ComponentPropsWithRef, ElementType, PropsWithChildren, ReactNode } from 'react'
|
|
2
|
+
|
|
3
|
+
export type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>
|
|
4
|
+
|
|
5
|
+
export type ReplaceProps<Inner extends ElementType, P> = Omit<ComponentPropsWithRef<Inner>, P> & P
|
|
6
|
+
|
|
7
|
+
export interface AsProp<As extends ElementType = ElementType> {
|
|
8
|
+
as?: As
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface Props<As extends ElementType = ElementType> extends AsProp<As> {}
|
|
12
|
+
|
|
13
|
+
export interface PolymorphicRefForwardingComponent<TInitial extends ElementType, P = unknown> {
|
|
14
|
+
<As extends ElementType = TInitial>(
|
|
15
|
+
props: PropsWithChildren<ReplaceProps<As, Props<As> & P>>,
|
|
16
|
+
context?: any, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
17
|
+
): ReactNode | null
|
|
18
|
+
propTypes?: any // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
19
|
+
defaultProps?: Partial<P>
|
|
20
|
+
displayName?: string
|
|
21
|
+
}
|