@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.
Files changed (470) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/alert/CAlertHeading.d.ts +7 -6
  3. package/dist/cjs/components/alert/CAlertHeading.js +2 -2
  4. package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
  5. package/dist/cjs/components/badge/CBadge.d.ts +7 -6
  6. package/dist/cjs/components/badge/CBadge.js +2 -2
  7. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  8. package/dist/cjs/components/button/CButton.d.ts +7 -6
  9. package/dist/cjs/components/button/CButton.js +3 -3
  10. package/dist/cjs/components/button/CButton.js.map +1 -1
  11. package/dist/cjs/components/calendar/CCalendar.d.ts +3 -3
  12. package/dist/cjs/components/calendar/CCalendar.js +10 -8
  13. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  14. package/dist/cjs/components/calendar/utils.js.map +1 -1
  15. package/dist/cjs/components/card/CCardHeader.d.ts +7 -6
  16. package/dist/cjs/components/card/CCardHeader.js +2 -2
  17. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  18. package/dist/cjs/components/card/CCardImage.d.ts +7 -6
  19. package/dist/cjs/components/card/CCardImage.js +2 -2
  20. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  21. package/dist/cjs/components/card/CCardSubtitle.d.ts +7 -6
  22. package/dist/cjs/components/card/CCardSubtitle.js +2 -2
  23. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  24. package/dist/cjs/components/card/CCardText.d.ts +7 -6
  25. package/dist/cjs/components/card/CCardText.js +2 -2
  26. package/dist/cjs/components/card/CCardText.js.map +1 -1
  27. package/dist/cjs/components/card/CCardTitle.d.ts +7 -6
  28. package/dist/cjs/components/card/CCardTitle.js +2 -2
  29. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  30. package/dist/cjs/components/carousel/CCarousel.js +1 -1
  31. package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
  32. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  33. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  34. package/dist/cjs/components/conditional-portal/CConditionalPortal.js +1 -1
  35. package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
  36. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +3 -3
  37. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +2 -2
  38. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  39. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  40. package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
  41. package/dist/cjs/components/dropdown/CDropdown.js +7 -5
  42. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  43. package/dist/cjs/components/dropdown/CDropdownHeader.d.ts +7 -6
  44. package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
  45. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  46. package/dist/cjs/components/dropdown/CDropdownItem.d.ts +2 -6
  47. package/dist/cjs/components/dropdown/CDropdownItem.js +3 -3
  48. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  49. package/dist/cjs/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  50. package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
  51. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  52. package/dist/cjs/components/dropdown/CDropdownMenu.d.ts +7 -6
  53. package/dist/cjs/components/dropdown/CDropdownMenu.js +2 -2
  54. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  55. package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
  56. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  57. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  58. package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
  59. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  60. package/dist/cjs/components/form/CFormFeedback.d.ts +7 -6
  61. package/dist/cjs/components/form/CFormFeedback.js +2 -2
  62. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  63. package/dist/cjs/components/form/CFormText.d.ts +7 -6
  64. package/dist/cjs/components/form/CFormText.js +2 -2
  65. package/dist/cjs/components/form/CFormText.js.map +1 -1
  66. package/dist/cjs/components/form/CInputGroupText.d.ts +7 -6
  67. package/dist/cjs/components/form/CInputGroupText.js +2 -2
  68. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  69. package/dist/cjs/components/grid/CCol.js.map +1 -1
  70. package/dist/cjs/components/grid/CRow.js.map +1 -1
  71. package/dist/cjs/components/header/CHeaderBrand.d.ts +7 -10
  72. package/dist/cjs/components/header/CHeaderBrand.js +2 -2
  73. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  74. package/dist/cjs/components/header/CHeaderNav.d.ts +7 -6
  75. package/dist/cjs/components/header/CHeaderNav.js +2 -2
  76. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  77. package/dist/cjs/components/link/CLink.d.ts +8 -7
  78. package/dist/cjs/components/link/CLink.js +2 -2
  79. package/dist/cjs/components/link/CLink.js.map +1 -1
  80. package/dist/cjs/components/list-group/CListGroup.d.ts +7 -6
  81. package/dist/cjs/components/list-group/CListGroup.js +2 -2
  82. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  83. package/dist/cjs/components/list-group/CListGroupItem.d.ts +7 -6
  84. package/dist/cjs/components/list-group/CListGroupItem.js +6 -6
  85. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  86. package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
  87. package/dist/cjs/components/modal/CModal.js +1 -2
  88. package/dist/cjs/components/modal/CModal.js.map +1 -1
  89. package/dist/cjs/components/modal/CModalTitle.d.ts +4 -3
  90. package/dist/cjs/components/modal/CModalTitle.js +2 -2
  91. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  92. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  93. package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
  94. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  95. package/dist/cjs/components/multi-select/utils.js.map +1 -1
  96. package/dist/cjs/components/nav/CNav.d.ts +7 -6
  97. package/dist/cjs/components/nav/CNav.js +2 -2
  98. package/dist/cjs/components/nav/CNav.js.map +1 -1
  99. package/dist/cjs/components/nav/CNavGroup.d.ts +10 -4
  100. package/dist/cjs/components/nav/CNavGroup.js +11 -16
  101. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  102. package/dist/cjs/components/nav/CNavGroupItems.d.ts +10 -3
  103. package/dist/cjs/components/nav/CNavGroupItems.js +3 -2
  104. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  105. package/dist/cjs/components/nav/CNavItem.d.ts +11 -2
  106. package/dist/cjs/components/nav/CNavItem.js +3 -2
  107. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  108. package/dist/cjs/components/nav/CNavLink.d.ts +2 -18
  109. package/dist/cjs/components/nav/CNavLink.js +3 -0
  110. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  111. package/dist/cjs/components/nav/CNavTitle.d.ts +7 -2
  112. package/dist/cjs/components/nav/CNavTitle.js +3 -2
  113. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  114. package/dist/cjs/components/navbar/CNavbar.d.ts +7 -6
  115. package/dist/cjs/components/navbar/CNavbar.js +2 -2
  116. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  117. package/dist/cjs/components/navbar/CNavbarBrand.d.ts +8 -7
  118. package/dist/cjs/components/navbar/CNavbarBrand.js +3 -3
  119. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  120. package/dist/cjs/components/navbar/CNavbarNav.d.ts +7 -6
  121. package/dist/cjs/components/navbar/CNavbarNav.js +3 -3
  122. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  123. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  124. package/dist/cjs/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  125. package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
  126. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  127. package/dist/cjs/components/pagination/CPaginationItem.d.ts +4 -3
  128. package/dist/cjs/components/pagination/CPaginationItem.js +4 -4
  129. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  130. package/dist/cjs/components/picker/CPicker.d.ts +2 -2
  131. package/dist/cjs/components/picker/CPicker.js +1 -1
  132. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  133. package/dist/cjs/components/placeholder/CPlaceholder.d.ts +7 -6
  134. package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
  135. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  136. package/dist/cjs/components/popover/CPopover.js +20 -13
  137. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  138. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  139. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  140. package/dist/cjs/components/sidebar/CSidebarBrand.d.ts +10 -3
  141. package/dist/cjs/components/sidebar/CSidebarBrand.js +3 -2
  142. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  143. package/dist/cjs/components/sidebar/CSidebarNav.d.ts +9 -2
  144. package/dist/cjs/components/sidebar/CSidebarNav.js +30 -12
  145. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  146. package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
  147. package/dist/cjs/components/smart-table/CSmartTable.d.ts +0 -1
  148. package/dist/cjs/components/smart-table/CSmartTable.js +8 -9
  149. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  150. package/dist/cjs/components/smart-table/CSmartTableBody.js +3 -3
  151. package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
  152. package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +4 -3
  153. package/dist/cjs/components/smart-table/CSmartTableHead.js +3 -3
  154. package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
  155. package/dist/cjs/components/smart-table/consts.d.ts +1 -0
  156. package/dist/cjs/components/smart-table/consts.js +6 -0
  157. package/dist/cjs/components/smart-table/consts.js.map +1 -0
  158. package/dist/cjs/components/smart-table/utils.js.map +1 -1
  159. package/dist/cjs/components/spinner/CSpinner.d.ts +7 -6
  160. package/dist/cjs/components/spinner/CSpinner.js +2 -2
  161. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  162. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  163. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  164. package/dist/cjs/components/time-picker/utils.js.map +1 -1
  165. package/dist/cjs/components/toast/CToast.js.map +1 -1
  166. package/dist/cjs/components/toast/CToastClose.d.ts +5 -4
  167. package/dist/cjs/components/toast/CToastClose.js +2 -2
  168. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  169. package/dist/cjs/components/toast/CToaster.js +1 -1
  170. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  171. package/dist/cjs/components/tooltip/CTooltip.js +20 -13
  172. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  173. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  174. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  175. package/dist/cjs/components/widgets/CWidgetStatsC.js +2 -1
  176. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  177. package/dist/cjs/helpers/index.d.ts +2 -0
  178. package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
  179. package/dist/cjs/hooks/useColorModes.js.map +1 -1
  180. package/dist/cjs/hooks/useForkedRef.js.map +1 -1
  181. package/dist/cjs/hooks/usePopper.js.map +1 -1
  182. package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
  183. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  184. package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
  185. package/dist/cjs/utils/isObjectInArray.js.map +1 -1
  186. package/dist/cjs/utils/isRTL.js.map +1 -1
  187. package/dist/esm/components/alert/CAlertHeading.d.ts +7 -6
  188. package/dist/esm/components/alert/CAlertHeading.js +2 -2
  189. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  190. package/dist/esm/components/badge/CBadge.d.ts +7 -6
  191. package/dist/esm/components/badge/CBadge.js +2 -2
  192. package/dist/esm/components/badge/CBadge.js.map +1 -1
  193. package/dist/esm/components/button/CButton.d.ts +7 -6
  194. package/dist/esm/components/button/CButton.js +3 -3
  195. package/dist/esm/components/button/CButton.js.map +1 -1
  196. package/dist/esm/components/calendar/CCalendar.d.ts +3 -3
  197. package/dist/esm/components/calendar/CCalendar.js +10 -8
  198. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  199. package/dist/esm/components/calendar/utils.js.map +1 -1
  200. package/dist/esm/components/card/CCardHeader.d.ts +7 -6
  201. package/dist/esm/components/card/CCardHeader.js +2 -2
  202. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  203. package/dist/esm/components/card/CCardImage.d.ts +7 -6
  204. package/dist/esm/components/card/CCardImage.js +2 -2
  205. package/dist/esm/components/card/CCardImage.js.map +1 -1
  206. package/dist/esm/components/card/CCardSubtitle.d.ts +7 -6
  207. package/dist/esm/components/card/CCardSubtitle.js +2 -2
  208. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  209. package/dist/esm/components/card/CCardText.d.ts +7 -6
  210. package/dist/esm/components/card/CCardText.js +2 -2
  211. package/dist/esm/components/card/CCardText.js.map +1 -1
  212. package/dist/esm/components/card/CCardTitle.d.ts +7 -6
  213. package/dist/esm/components/card/CCardTitle.js +2 -2
  214. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  215. package/dist/esm/components/carousel/CCarousel.js +1 -1
  216. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  217. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  218. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  219. package/dist/esm/components/conditional-portal/CConditionalPortal.js +1 -1
  220. package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
  221. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +3 -3
  222. package/dist/esm/components/date-range-picker/CDateRangePicker.js +2 -2
  223. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  224. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  225. package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
  226. package/dist/esm/components/dropdown/CDropdown.js +7 -5
  227. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  228. package/dist/esm/components/dropdown/CDropdownHeader.d.ts +7 -6
  229. package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
  230. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  231. package/dist/esm/components/dropdown/CDropdownItem.d.ts +2 -6
  232. package/dist/esm/components/dropdown/CDropdownItem.js +3 -3
  233. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  234. package/dist/esm/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  235. package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
  236. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  237. package/dist/esm/components/dropdown/CDropdownMenu.d.ts +7 -6
  238. package/dist/esm/components/dropdown/CDropdownMenu.js +2 -2
  239. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  240. package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
  241. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  242. package/dist/esm/components/dropdown/utils.js.map +1 -1
  243. package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
  244. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  245. package/dist/esm/components/form/CFormFeedback.d.ts +7 -6
  246. package/dist/esm/components/form/CFormFeedback.js +2 -2
  247. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  248. package/dist/esm/components/form/CFormText.d.ts +7 -6
  249. package/dist/esm/components/form/CFormText.js +2 -2
  250. package/dist/esm/components/form/CFormText.js.map +1 -1
  251. package/dist/esm/components/form/CInputGroupText.d.ts +7 -6
  252. package/dist/esm/components/form/CInputGroupText.js +2 -2
  253. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  254. package/dist/esm/components/grid/CCol.js.map +1 -1
  255. package/dist/esm/components/grid/CRow.js.map +1 -1
  256. package/dist/esm/components/header/CHeaderBrand.d.ts +7 -10
  257. package/dist/esm/components/header/CHeaderBrand.js +2 -2
  258. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  259. package/dist/esm/components/header/CHeaderNav.d.ts +7 -6
  260. package/dist/esm/components/header/CHeaderNav.js +2 -2
  261. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  262. package/dist/esm/components/link/CLink.d.ts +8 -7
  263. package/dist/esm/components/link/CLink.js +2 -2
  264. package/dist/esm/components/link/CLink.js.map +1 -1
  265. package/dist/esm/components/list-group/CListGroup.d.ts +7 -6
  266. package/dist/esm/components/list-group/CListGroup.js +2 -2
  267. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  268. package/dist/esm/components/list-group/CListGroupItem.d.ts +7 -6
  269. package/dist/esm/components/list-group/CListGroupItem.js +6 -6
  270. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  271. package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
  272. package/dist/esm/components/modal/CModal.js +1 -2
  273. package/dist/esm/components/modal/CModal.js.map +1 -1
  274. package/dist/esm/components/modal/CModalTitle.d.ts +4 -3
  275. package/dist/esm/components/modal/CModalTitle.js +2 -2
  276. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  277. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  278. package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
  279. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  280. package/dist/esm/components/multi-select/utils.js.map +1 -1
  281. package/dist/esm/components/nav/CNav.d.ts +7 -6
  282. package/dist/esm/components/nav/CNav.js +2 -2
  283. package/dist/esm/components/nav/CNav.js.map +1 -1
  284. package/dist/esm/components/nav/CNavGroup.d.ts +10 -4
  285. package/dist/esm/components/nav/CNavGroup.js +11 -16
  286. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  287. package/dist/esm/components/nav/CNavGroupItems.d.ts +10 -3
  288. package/dist/esm/components/nav/CNavGroupItems.js +3 -2
  289. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  290. package/dist/esm/components/nav/CNavItem.d.ts +11 -2
  291. package/dist/esm/components/nav/CNavItem.js +3 -2
  292. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  293. package/dist/esm/components/nav/CNavLink.d.ts +2 -18
  294. package/dist/esm/components/nav/CNavLink.js +3 -0
  295. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  296. package/dist/esm/components/nav/CNavTitle.d.ts +7 -2
  297. package/dist/esm/components/nav/CNavTitle.js +3 -2
  298. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  299. package/dist/esm/components/navbar/CNavbar.d.ts +7 -6
  300. package/dist/esm/components/navbar/CNavbar.js +2 -2
  301. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  302. package/dist/esm/components/navbar/CNavbarBrand.d.ts +8 -7
  303. package/dist/esm/components/navbar/CNavbarBrand.js +3 -3
  304. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  305. package/dist/esm/components/navbar/CNavbarNav.d.ts +7 -6
  306. package/dist/esm/components/navbar/CNavbarNav.js +3 -3
  307. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  308. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  309. package/dist/esm/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  310. package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
  311. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  312. package/dist/esm/components/pagination/CPaginationItem.d.ts +4 -3
  313. package/dist/esm/components/pagination/CPaginationItem.js +4 -4
  314. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  315. package/dist/esm/components/picker/CPicker.d.ts +2 -2
  316. package/dist/esm/components/picker/CPicker.js +1 -1
  317. package/dist/esm/components/picker/CPicker.js.map +1 -1
  318. package/dist/esm/components/placeholder/CPlaceholder.d.ts +7 -6
  319. package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
  320. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  321. package/dist/esm/components/popover/CPopover.js +20 -13
  322. package/dist/esm/components/popover/CPopover.js.map +1 -1
  323. package/dist/esm/components/progress/CProgress.js.map +1 -1
  324. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  325. package/dist/esm/components/sidebar/CSidebarBrand.d.ts +10 -3
  326. package/dist/esm/components/sidebar/CSidebarBrand.js +3 -2
  327. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  328. package/dist/esm/components/sidebar/CSidebarNav.d.ts +9 -2
  329. package/dist/esm/components/sidebar/CSidebarNav.js +30 -12
  330. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  331. package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
  332. package/dist/esm/components/smart-table/CSmartTable.d.ts +0 -1
  333. package/dist/esm/components/smart-table/CSmartTable.js +5 -5
  334. package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
  335. package/dist/esm/components/smart-table/CSmartTableBody.js +1 -1
  336. package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
  337. package/dist/esm/components/smart-table/CSmartTableHead.d.ts +4 -3
  338. package/dist/esm/components/smart-table/CSmartTableHead.js +3 -3
  339. package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
  340. package/dist/esm/components/smart-table/consts.d.ts +1 -0
  341. package/dist/esm/components/smart-table/consts.js +4 -0
  342. package/dist/esm/components/smart-table/consts.js.map +1 -0
  343. package/dist/esm/components/smart-table/utils.js.map +1 -1
  344. package/dist/esm/components/spinner/CSpinner.d.ts +7 -6
  345. package/dist/esm/components/spinner/CSpinner.js +2 -2
  346. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  347. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  348. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  349. package/dist/esm/components/time-picker/utils.js.map +1 -1
  350. package/dist/esm/components/toast/CToast.js.map +1 -1
  351. package/dist/esm/components/toast/CToastClose.d.ts +5 -4
  352. package/dist/esm/components/toast/CToastClose.js +2 -2
  353. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  354. package/dist/esm/components/toast/CToaster.js +1 -1
  355. package/dist/esm/components/toast/CToaster.js.map +1 -1
  356. package/dist/esm/components/tooltip/CTooltip.js +20 -13
  357. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  358. package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  359. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  360. package/dist/esm/components/widgets/CWidgetStatsC.js +2 -1
  361. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  362. package/dist/esm/helpers/index.d.ts +2 -0
  363. package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
  364. package/dist/esm/hooks/useColorModes.js.map +1 -1
  365. package/dist/esm/hooks/useForkedRef.js.map +1 -1
  366. package/dist/esm/hooks/usePopper.js.map +1 -1
  367. package/dist/esm/utils/executeAfterTransition.js.map +1 -1
  368. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  369. package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
  370. package/dist/esm/utils/isObjectInArray.js.map +1 -1
  371. package/dist/esm/utils/isRTL.js.map +1 -1
  372. package/package.json +14 -18
  373. package/src/components/alert/CAlertHeading.tsx +17 -14
  374. package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
  375. package/src/components/badge/CBadge.tsx +11 -7
  376. package/src/components/badge/__tests__/CBadge.spec.tsx +1 -1
  377. package/src/components/button/CButton.tsx +12 -18
  378. package/src/components/button/__tests__/CButton.spec.tsx +2 -2
  379. package/src/components/calendar/CCalendar.tsx +19 -13
  380. package/src/components/card/CCardHeader.tsx +17 -14
  381. package/src/components/card/CCardImage.tsx +9 -7
  382. package/src/components/card/CCardSubtitle.tsx +18 -14
  383. package/src/components/card/CCardText.tsx +17 -14
  384. package/src/components/card/CCardTitle.tsx +17 -14
  385. package/src/components/card/__tests__/CCardGroup.spec.tsx +1 -1
  386. package/src/components/card/__tests__/CCardHeader.spec.tsx +1 -1
  387. package/src/components/card/__tests__/CCardImage.spec.tsx +1 -3
  388. package/src/components/card/__tests__/CCardSubtitle.spec.tsx +1 -1
  389. package/src/components/card/__tests__/CCardText.spec.tsx +1 -1
  390. package/src/components/card/__tests__/CCardTitle.spec.tsx +1 -1
  391. package/src/components/carousel/CCarousel.tsx +1 -1
  392. package/src/components/close-button/CCloseButton.tsx +1 -1
  393. package/src/components/conditional-portal/CConditionalPortal.tsx +1 -1
  394. package/src/components/date-range-picker/CDateRangePicker.tsx +12 -12
  395. package/src/components/dropdown/CDropdown.tsx +20 -10
  396. package/src/components/dropdown/CDropdownHeader.tsx +17 -14
  397. package/src/components/dropdown/CDropdownItem.tsx +14 -20
  398. package/src/components/dropdown/CDropdownItemPlain.tsx +12 -7
  399. package/src/components/dropdown/CDropdownMenu.tsx +43 -42
  400. package/src/components/dropdown/CDropdownToggle.tsx +2 -2
  401. package/src/components/dropdown/__tests__/CDropdown.spec.tsx +13 -13
  402. package/src/components/dropdown/__tests__/CDropdownHeader.spec.tsx +1 -1
  403. package/src/components/dropdown/__tests__/CDropdownItem.spec.tsx +1 -1
  404. package/src/components/dropdown/__tests__/CDropdownItemPlain.spec.tsx +1 -1
  405. package/src/components/dropdown/__tests__/CDropdownMenu.spec.tsx +1 -1
  406. package/src/components/dropdown/types.ts +1 -1
  407. package/src/components/dropdown/utils.ts +5 -4
  408. package/src/components/form/CFormFeedback.tsx +28 -27
  409. package/src/components/form/CFormText.tsx +17 -14
  410. package/src/components/form/CInputGroupText.tsx +17 -14
  411. package/src/components/form/__tests__/CFormText.spec.tsx +1 -1
  412. package/src/components/form/__tests__/CInputGroupText.spec.tsx +1 -1
  413. package/src/components/header/CHeaderBrand.tsx +11 -13
  414. package/src/components/header/CHeaderBrand.tsx~HEAD +17 -14
  415. package/src/components/header/CHeaderNav.tsx +22 -19
  416. package/src/components/header/__tests__/CHeaderBrand.spec.tsx +1 -1
  417. package/src/components/header/__tests__/CHeaderNav.spec.tsx +1 -1
  418. package/src/components/link/CLink.tsx +33 -29
  419. package/src/components/link/__tests__/CLink.spec.tsx +2 -2
  420. package/src/components/list-group/CListGroup.tsx +27 -24
  421. package/src/components/list-group/CListGroupItem.tsx +38 -37
  422. package/src/components/list-group/__tests__/CListGroup.spec.tsx +1 -1
  423. package/src/components/list-group/__tests__/CListGroupItem.spec.tsx +1 -7
  424. package/src/components/loading-button/CLoadingButton.tsx +1 -0
  425. package/src/components/modal/CModal.tsx +1 -4
  426. package/src/components/modal/CModalTitle.tsx +14 -11
  427. package/src/components/modal/__tests__/CModalTitle.spec.tsx +1 -1
  428. package/src/components/nav/CNav.tsx +29 -26
  429. package/src/components/nav/CNavGroup.tsx +111 -100
  430. package/src/components/nav/CNavGroupItems.tsx +21 -11
  431. package/src/components/nav/CNavItem.tsx +29 -16
  432. package/src/components/nav/CNavLink.tsx +7 -19
  433. package/src/components/nav/CNavTitle.tsx +18 -10
  434. package/src/components/nav/__tests__/CNav.spec.tsx +1 -1
  435. package/src/components/nav/__tests__/CNavItem.spec.tsx +1 -1
  436. package/src/components/nav/__tests__/CNavLink.spec.tsx +1 -1
  437. package/src/components/navbar/CNavbar.tsx +11 -7
  438. package/src/components/navbar/CNavbarBrand.tsx +19 -16
  439. package/src/components/navbar/CNavbarNav.tsx +22 -19
  440. package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
  441. package/src/components/navbar/__tests__/CNavbarBrand.spec.tsx +1 -1
  442. package/src/components/navbar/__tests__/CNavbarNav.spec.tsx +1 -1
  443. package/src/components/offcanvas/COffcanvasTitle.tsx +17 -14
  444. package/src/components/offcanvas/__tests__/COffcanvasTitle.spec.tsx +1 -1
  445. package/src/components/pagination/CPaginationItem.tsx +33 -30
  446. package/src/components/pagination/__tests__/CPaginationItem.spec.tsx +1 -1
  447. package/src/components/picker/CPicker.tsx +3 -3
  448. package/src/components/placeholder/CPlaceholder.tsx +40 -41
  449. package/src/components/popover/CPopover.tsx +24 -13
  450. package/src/components/sidebar/CSidebarBrand.tsx +21 -11
  451. package/src/components/sidebar/CSidebarNav.tsx +68 -24
  452. package/src/components/sidebar/__tests__/__snapshots__/CSidebar.spec.tsx.snap +1 -1
  453. package/src/components/smart-table/CSmartTable.tsx +2 -3
  454. package/src/components/smart-table/CSmartTableBody.tsx +1 -1
  455. package/src/components/smart-table/CSmartTableHead.tsx +179 -177
  456. package/src/components/smart-table/consts.ts +1 -0
  457. package/src/components/spinner/CSpinner.tsx +11 -7
  458. package/src/components/spinner/__tests__/CSpinner.spec.tsx +1 -1
  459. package/src/components/toast/CToastClose.tsx +8 -7
  460. package/src/components/toast/CToaster.tsx +1 -1
  461. package/src/components/toast/__tests__/__snapshots__/CToaster.spec.tsx.snap +2 -2
  462. package/src/components/tooltip/CTooltip.tsx +24 -12
  463. package/src/components/tooltip/__tests__/CTooltip.spec.tsx +7 -12
  464. package/src/components/widgets/CWidgetStatsA.tsx +1 -4
  465. package/src/components/widgets/CWidgetStatsC.tsx +11 -1
  466. package/src/components/widgets/__tests__/CWidgetStatsD.spec.tsx +1 -3
  467. package/src/helpers/index.ts +3 -0
  468. package/src/helpers/polymorphicComponent.ts +21 -0
  469. package/src/utils/getTransitionDurationFromElement.ts +1 -1
  470. package/src/components/list-group/CListGroupItem.tsx~HEAD +0 -81
@@ -4,6 +4,7 @@ import classNames from 'classnames'
4
4
 
5
5
  import { CLink, CLinkProps } from '../link/CLink'
6
6
 
7
+ import { PolymorphicRefForwardingComponent } from '../../helpers'
7
8
  import { colorPropType } from '../../props'
8
9
  import type { Colors, Shapes } from '../../types'
9
10
 
@@ -12,6 +13,10 @@ export interface CButtonProps extends Omit<CLinkProps, 'size'> {
12
13
  * Toggle the active state for the component.
13
14
  */
14
15
  active?: boolean
16
+ /**
17
+ * Component used for the root node. Either a string to use a HTML element or a component.
18
+ */
19
+ as?: ElementType
15
20
  /**
16
21
  * A string of all className you want applied to the base component.
17
22
  */
@@ -22,10 +27,6 @@ export interface CButtonProps extends Omit<CLinkProps, 'size'> {
22
27
  * @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
23
28
  */
24
29
  color?: Colors
25
- /**
26
- * Component used for the root node. Either a string to use a HTML element or a component.
27
- */
28
- component?: string | ElementType
29
30
  /**
30
31
  * Toggle the disabled state for the component.
31
32
  */
@@ -59,24 +60,17 @@ export interface CButtonProps extends Omit<CLinkProps, 'size'> {
59
60
  variant?: 'outline' | 'ghost'
60
61
  }
61
62
 
62
- export const CButton = forwardRef<HTMLButtonElement | HTMLAnchorElement, CButtonProps>(
63
+ export const CButton: PolymorphicRefForwardingComponent<'button', CButtonProps> = forwardRef<
64
+ HTMLButtonElement | HTMLAnchorElement,
65
+ CButtonProps
66
+ >(
63
67
  (
64
- {
65
- children,
66
- className,
67
- color = 'primary',
68
- component = 'button',
69
- shape,
70
- size,
71
- type = 'button',
72
- variant,
73
- ...rest
74
- },
68
+ { children, as = 'button', className, color, shape, size, type = 'button', variant, ...rest },
75
69
  ref,
76
70
  ) => {
77
71
  return (
78
72
  <CLink
79
- component={rest.href ? 'a' : component}
73
+ as={rest.href ? 'a' : as}
80
74
  {...(!rest.href && { type: type })}
81
75
  className={classNames(
82
76
  'btn',
@@ -95,10 +89,10 @@ export const CButton = forwardRef<HTMLButtonElement | HTMLAnchorElement, CButton
95
89
  )
96
90
 
97
91
  CButton.propTypes = {
92
+ as: PropTypes.elementType,
98
93
  children: PropTypes.node,
99
94
  className: PropTypes.string,
100
95
  color: colorPropType,
101
- component: PropTypes.elementType,
102
96
  shape: PropTypes.string,
103
97
  size: PropTypes.oneOf(['sm', 'lg']),
104
98
  type: PropTypes.oneOf(['button', 'submit', 'reset']),
@@ -10,7 +10,7 @@ test('loads and displays CButton component', async () => {
10
10
 
11
11
  test('CButton customize witch href', async () => {
12
12
  const { container } = render(
13
- <CButton color="primary" component="span" href="/bazinga">
13
+ <CButton color="primary" as="span" href="/bazinga">
14
14
  Test
15
15
  </CButton>,
16
16
  )
@@ -23,7 +23,7 @@ test('CButton customize', async () => {
23
23
  active={true}
24
24
  className="bazinga"
25
25
  color="warning"
26
- component="span"
26
+ as="span"
27
27
  disabled={true}
28
28
  role="bazinga"
29
29
  shape="rounded"
@@ -122,7 +122,7 @@ export interface CCalendarProps {
122
122
  /**
123
123
  * Set whether to display week numbers in the calendar.
124
124
  *
125
- * @since 5.0.0-alpha.1
125
+ * @since 5.0.0-rc.1
126
126
  */
127
127
  showWeekNumber?: boolean
128
128
  /**
@@ -132,7 +132,7 @@ export interface CCalendarProps {
132
132
  /**
133
133
  * Specify the type of date selection as day, week, month, or year.
134
134
  *
135
- * @since 5.0.0-alpha.1
135
+ * @since 5.0.0-rc.1
136
136
  */
137
137
  selectionType?: 'day' | 'week' | 'month' | 'year'
138
138
  /**
@@ -148,7 +148,7 @@ export interface CCalendarProps {
148
148
  /**
149
149
  * Label displayed over week numbers in the calendar.
150
150
  *
151
- * @since 5.0.0-alpha.1
151
+ * @since 5.0.0-rc.1
152
152
  */
153
153
  weekNumbersLabel?: string
154
154
  /**
@@ -256,8 +256,10 @@ const Calendar = (props: {
256
256
  {typeof weekdayFormat === 'function'
257
257
  ? weekdayFormat(date)
258
258
  : typeof weekdayFormat === 'string'
259
- ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
260
- : date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat)}
259
+ ? date.toLocaleDateString(locale, { weekday: weekdayFormat })
260
+ : date
261
+ .toLocaleDateString(locale, { weekday: 'long' })
262
+ .slice(0, weekdayFormat)}
261
263
  </div>
262
264
  </th>
263
265
  ))}
@@ -379,7 +381,7 @@ const Calendar = (props: {
379
381
  range: isDateInRange(date, startDate, endDate),
380
382
  })}
381
383
  key={idx}
382
- tabIndex={!isDisabled ? 0 : -1}
384
+ tabIndex={isDisabled ? -1 : 0}
383
385
  {...(!isDisabled && {
384
386
  onBlur: () => onCalendarMouseLeave(),
385
387
  onClick: () => onCalendarClick(date),
@@ -416,7 +418,7 @@ const Calendar = (props: {
416
418
  range: isDateInRange(date, startDate, endDate),
417
419
  })}
418
420
  key={idx}
419
- tabIndex={!isDisabled ? 0 : -1}
421
+ tabIndex={isDisabled ? -1 : 0}
420
422
  {...(!isDisabled && {
421
423
  onBlur: () => onCalendarMouseLeave(),
422
424
  onClick: () => onCalendarClick(date),
@@ -777,7 +779,7 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
777
779
  const list: HTMLElement[] = [].concat(
778
780
  ...Element.prototype.querySelectorAll.call(
779
781
  calendarRef.current,
780
- selectionType === 'week' ? 'tr[tabindex="0"]' : 'td.current',
782
+ selectionType === 'week' ? 'tr[tabindex="0"]' : 'td[tabindex="0"]',
781
783
  ),
782
784
  )
783
785
 
@@ -823,19 +825,19 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
823
825
  ),
824
826
  )
825
827
 
826
- if (_list.length && event.key === 'ArrowRight') {
828
+ if (_list.length > 0 && event.key === 'ArrowRight') {
827
829
  _list[0].focus()
828
830
  }
829
831
 
830
- if (_list.length && event.key === 'ArrowLeft') {
832
+ if (_list.length > 0 && event.key === 'ArrowLeft') {
831
833
  _list[_list.length - 1].focus()
832
834
  }
833
835
 
834
- if (_list.length && event.key === 'ArrowDown') {
836
+ if (_list.length > 0 && event.key === 'ArrowDown') {
835
837
  _list[gap['ArrowDown'] - (list.length - index)].focus()
836
838
  }
837
839
 
838
- if (_list.length && event.key === 'ArrowUp') {
840
+ if (_list.length > 0 && event.key === 'ArrowUp') {
839
841
  _list[_list.length - (Math.abs(gap['ArrowUp']) + 1 - (index + 1))].focus()
840
842
  }
841
843
  }, 1)
@@ -848,7 +850,11 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
848
850
  return
849
851
  }
850
852
 
851
- for (let i = index; i < list.length; event.key === 'ArrowRight' || event.key === 'ArrowDown'? i++ : i--) {
853
+ for (
854
+ let i = index;
855
+ i < list.length;
856
+ event.key === 'ArrowRight' || event.key === 'ArrowDown' ? i++ : i--
857
+ ) {
852
858
  if (list[i + gap[event.key]].tabIndex === 0) {
853
859
  list[i + gap[event.key]].focus()
854
860
  break
@@ -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 CCardHeaderProps extends HTMLAttributes<HTMLDivElement> {
6
8
  /**
7
- * A string of all className you want applied to the base component.
9
+ * Component used for the root node. Either a string to use a HTML element or a component.
8
10
  */
9
- className?: string
11
+ as?: ElementType
10
12
  /**
11
- * Component used for the root node. Either a string to use a HTML element or a component.
13
+ * A string of all className you want applied to the base component.
12
14
  */
13
- component?: string | ElementType
15
+ className?: string
14
16
  }
15
17
 
16
- export const CCardHeader = forwardRef<HTMLDivElement, CCardHeaderProps>(
17
- ({ children, component: Component = 'div', className, ...rest }, ref) => {
18
- return (
19
- <Component className={classNames('card-header', className)} {...rest} ref={ref}>
20
- {children}
21
- </Component>
22
- )
23
- },
24
- )
18
+ export const CCardHeader: PolymorphicRefForwardingComponent<'div', CCardHeaderProps> = forwardRef<
19
+ HTMLDivElement,
20
+ CCardHeaderProps
21
+ >(({ children, as: Component = 'div', className, ...rest }, ref) => {
22
+ return (
23
+ <Component className={classNames('card-header', className)} {...rest} ref={ref}>
24
+ {children}
25
+ </Component>
26
+ )
27
+ })
25
28
 
26
29
  CCardHeader.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
  CCardHeader.displayName = 'CCardHeader'
@@ -2,26 +2,28 @@ import React, { ElementType, forwardRef, ImgHTMLAttributes } 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 CCardImageProps
6
8
  extends ImgHTMLAttributes<HTMLImageElement | HTMLOrSVGElement | HTMLOrSVGImageElement> {
7
9
  /**
8
- * A string of all className you want applied to the base component.
10
+ * Component used for the root node. Either a string to use a HTML element or a component.
9
11
  */
10
- className?: string
12
+ as?: ElementType
11
13
  /**
12
- * Component used for the root node. Either a string to use a HTML element or a component.
14
+ * A string of all className you want applied to the base component.
13
15
  */
14
- component?: string | ElementType
16
+ className?: string
15
17
  /**
16
18
  * Optionally orientate the image to the top, bottom, or make it overlaid across the card.
17
19
  */
18
20
  orientation?: 'top' | 'bottom'
19
21
  }
20
22
 
21
- export const CCardImage = forwardRef<
23
+ export const CCardImage: PolymorphicRefForwardingComponent<'img', CCardImageProps> = forwardRef<
22
24
  HTMLImageElement | HTMLOrSVGElement | HTMLOrSVGImageElement,
23
25
  CCardImageProps
24
- >(({ children, className, component: Component = 'img', orientation, ...rest }, ref) => {
26
+ >(({ children, as: Component = 'img', className, orientation, ...rest }, ref) => {
25
27
  return (
26
28
  <Component
27
29
  className={classNames(orientation ? `card-img-${orientation}` : 'card-img', className)}
@@ -34,9 +36,9 @@ export const CCardImage = forwardRef<
34
36
  })
35
37
 
36
38
  CCardImage.propTypes = {
39
+ as: PropTypes.elementType,
37
40
  children: PropTypes.node,
38
41
  className: PropTypes.string,
39
- component: PropTypes.elementType,
40
42
  orientation: PropTypes.oneOf(['top', 'bottom']),
41
43
  }
42
44
 
@@ -2,30 +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 CCardSubtitleProps extends HTMLAttributes<HTMLHeadingElement> {
6
8
  /**
7
- * A string of all className you want applied to the component.
9
+ * Component used for the root node. Either a string to use a HTML element or a component.
8
10
  */
9
- className?: string
11
+ as?: ElementType
10
12
  /**
11
- * Component used for the root node. Either a string to use a HTML element or a component.
13
+ * A string of all className you want applied to the component.
12
14
  */
13
- component?: string | ElementType
15
+ className?: string
14
16
  }
15
- export const CCardSubtitle = forwardRef<HTMLHeadingElement, CCardSubtitleProps>(
16
- ({ children, component: Component = 'h6', className, ...rest }, ref) => {
17
- return (
18
- <Component className={classNames('card-subtitle', className)} {...rest} ref={ref}>
19
- {children}
20
- </Component>
21
- )
22
- },
23
- )
17
+
18
+ export const CCardSubtitle: PolymorphicRefForwardingComponent<'h6', CCardSubtitleProps> =
19
+ forwardRef<HTMLHeadingElement, CCardSubtitleProps>(
20
+ ({ children, as: Component = 'h6', className, ...rest }, ref) => {
21
+ return (
22
+ <Component className={classNames('card-subtitle', className)} {...rest} ref={ref}>
23
+ {children}
24
+ </Component>
25
+ )
26
+ },
27
+ )
24
28
 
25
29
  CCardSubtitle.propTypes = {
30
+ as: PropTypes.elementType,
26
31
  children: PropTypes.node,
27
32
  className: PropTypes.string,
28
- component: PropTypes.elementType,
29
33
  }
30
34
 
31
35
  CCardSubtitle.displayName = 'CCardSubtitle'
@@ -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 CCardTextProps extends HTMLAttributes<HTMLParagraphElement> {
6
8
  /**
7
- * A string of all className you want applied to the component.
9
+ * Component used for the root node. Either a string to use a HTML element or a component.
8
10
  */
9
- className?: string
11
+ as?: ElementType
10
12
  /**
11
- * Component used for the root node. Either a string to use a HTML element or a component.
13
+ * A string of all className you want applied to the component.
12
14
  */
13
- component?: string | ElementType
15
+ className?: string
14
16
  }
15
17
 
16
- export const CCardText = forwardRef<HTMLParagraphElement, CCardTextProps>(
17
- ({ children, component: Component = 'p', className, ...rest }, ref) => {
18
- return (
19
- <Component className={classNames('card-text', className)} {...rest} ref={ref}>
20
- {children}
21
- </Component>
22
- )
23
- },
24
- )
18
+ export const CCardText: PolymorphicRefForwardingComponent<'p', CCardTextProps> = forwardRef<
19
+ HTMLParagraphElement,
20
+ CCardTextProps
21
+ >(({ children, as: Component = 'p', className, ...rest }, ref) => {
22
+ return (
23
+ <Component className={classNames('card-text', className)} {...rest} ref={ref}>
24
+ {children}
25
+ </Component>
26
+ )
27
+ })
25
28
 
26
29
  CCardText.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
  CCardText.displayName = 'CCardText'
@@ -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 CCardTitleProps extends HTMLAttributes<HTMLHeadingElement> {
6
8
  /**
7
- * A string of all className you want applied to the component.
9
+ * Component used for the root node. Either a string to use a HTML element or a component.
8
10
  */
9
- className?: string
11
+ as?: ElementType
10
12
  /**
11
- * Component used for the root node. Either a string to use a HTML element or a component.
13
+ * A string of all className you want applied to the component.
12
14
  */
13
- component?: string | ElementType
15
+ className?: string
14
16
  }
15
17
 
16
- export const CCardTitle = forwardRef<HTMLHeadingElement, CCardTitleProps>(
17
- ({ children, component: Component = 'h5', className, ...rest }, ref) => {
18
- return (
19
- <Component className={classNames('card-title', className)} {...rest} ref={ref}>
20
- {children}
21
- </Component>
22
- )
23
- },
24
- )
18
+ export const CCardTitle: PolymorphicRefForwardingComponent<'h5', CCardTitleProps> = forwardRef<
19
+ HTMLHeadingElement,
20
+ CCardTitleProps
21
+ >(({ children, as: Component = 'h5', className, ...rest }, ref) => {
22
+ return (
23
+ <Component className={classNames('card-title', className)} {...rest} ref={ref}>
24
+ {children}
25
+ </Component>
26
+ )
27
+ })
25
28
 
26
29
  CCardTitle.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
  CCardTitle.displayName = 'CCardTitle'
@@ -30,7 +30,7 @@ test('CCardGroup full example', async () => {
30
30
  const { container } = render(
31
31
  <CCardGroup className="bazinga">
32
32
  <CCard>
33
- <CCardImage component="svg">Image</CCardImage>
33
+ <CCardImage as="svg">Image</CCardImage>
34
34
  <CCardHeader>Header</CCardHeader>
35
35
  <CCardBody>
36
36
  <CCardTitle>Title</CCardTitle>
@@ -10,7 +10,7 @@ test('loads and displays CCardHeader component', async () => {
10
10
 
11
11
  test('CCardHeader customize', async () => {
12
12
  const { container } = render(
13
- <CCardHeader className="bazinga" component="h3">
13
+ <CCardHeader className="bazinga" as="h3">
14
14
  Test
15
15
  </CCardHeader>,
16
16
  )
@@ -9,9 +9,7 @@ test('loads and displays CCardImage component', async () => {
9
9
  })
10
10
 
11
11
  test('CCardImage customize', async () => {
12
- const { container } = render(
13
- <CCardImage className="bazinga" component="div" orientation="bottom" />,
14
- )
12
+ const { container } = render(<CCardImage className="bazinga" as="div" orientation="bottom" />)
15
13
  expect(container).toMatchSnapshot()
16
14
  expect(container.firstChild).toHaveClass('bazinga')
17
15
  expect(container.firstChild).toHaveClass('card-img-bottom')
@@ -10,7 +10,7 @@ test('loads and displays CCardSubtitle component', async () => {
10
10
 
11
11
  test('CCardSubtitle customize', async () => {
12
12
  const { container } = render(
13
- <CCardSubtitle className="bazinga" component="h3">
13
+ <CCardSubtitle className="bazinga" as="h3">
14
14
  Test
15
15
  </CCardSubtitle>,
16
16
  )
@@ -10,7 +10,7 @@ test('loads and displays CCardText component', async () => {
10
10
 
11
11
  test('CCardText customize', async () => {
12
12
  const { container } = render(
13
- <CCardText className="bazinga" component="h3">
13
+ <CCardText className="bazinga" as="h3">
14
14
  Test
15
15
  </CCardText>,
16
16
  )
@@ -10,7 +10,7 @@ test('loads and displays CCardTitle component', async () => {
10
10
 
11
11
  test('CCardTitle customize', async () => {
12
12
  const { container } = render(
13
- <CCardTitle className="bazinga" component="h3">
13
+ <CCardTitle className="bazinga" as="h3">
14
14
  Test
15
15
  </CCardTitle>,
16
16
  )
@@ -253,7 +253,7 @@ export const CCarousel = forwardRef<HTMLDivElement, CCarouselProps>(
253
253
  !animating && handleIndicatorClick(index)
254
254
  }}
255
255
  className={classNames({
256
- active: active === index
256
+ active: active === index,
257
257
  })}
258
258
  data-coreui-target=""
259
259
  {...(active === index && { 'aria-current': true })}
@@ -17,7 +17,7 @@ export interface CCloseButtonProps extends HTMLAttributes<HTMLButtonElement> {
17
17
  disabled?: boolean
18
18
  /**
19
19
  * Change the default color to white.
20
- *
20
+ *
21
21
  * @deprecated 5.0.0
22
22
  */
23
23
  white?: boolean
@@ -17,7 +17,7 @@ export interface CConditionalPortalProps {
17
17
  children: ReactNode
18
18
  /**
19
19
  * An HTML element or function that returns a single element, with `document.body` as the default.
20
- *
20
+ *
21
21
  * @since v4.11.0
22
22
  */
23
23
  container?: Element | (() => Element | null) | null
@@ -98,20 +98,20 @@ export interface CDateRangePickerProps
98
98
  indicator?: ReactNode | boolean
99
99
  /**
100
100
  * Custom function to format the selected date into a string according to a custom format.
101
- *
102
- * @since v5.0.0-alpha.4
101
+ *
102
+ * @since v5.0.0-rc.1
103
103
  */
104
104
  inputDateFormat?: (date: Date) => string
105
105
  /**
106
106
  * Custom function to parse the input value into a valid Date object.
107
- *
108
- * @since v5.0.0-alpha.4
107
+ *
108
+ * @since v5.0.0-rc.1
109
109
  */
110
110
  inputDateParse?: (date: string | Date) => Date
111
111
  /**
112
112
  * Defines the delay (in milliseconds) for the input field's onChange event.
113
- *
114
- * @since v5.0.0-alpha.4
113
+ *
114
+ * @since v5.0.0-rc.1
115
115
  */
116
116
  inputOnChangeDelay?: number
117
117
  /**
@@ -345,8 +345,8 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
345
345
  return inputDateFormat
346
346
  ? inputDateFormat(_date)
347
347
  : timepicker
348
- ? _date.toLocaleString(locale)
349
- : _date.toLocaleDateString(locale)
348
+ ? _date.toLocaleString(locale)
349
+ : _date.toLocaleDateString(locale)
350
350
  }
351
351
 
352
352
  const setInputValue = (el: HTMLInputElement | null, date: Date | string | null) => {
@@ -512,7 +512,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
512
512
  onClick={() => {
513
513
  const date = new Date()
514
514
  handleStartDateChange(date)
515
- handleEndDateChange(date)
515
+ range && handleEndDateChange(date)
516
516
  setCalendarDate(date)
517
517
  }}
518
518
  >
@@ -526,7 +526,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
526
526
  variant={cancelButtonVariant}
527
527
  onClick={() => {
528
528
  handleStartDateChange(initialStartDate)
529
- handleEndDateChange(initialEndDate)
529
+ range && handleEndDateChange(initialEndDate)
530
530
  setVisible(false)
531
531
  }}
532
532
  >
@@ -641,8 +641,8 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
641
641
  ? true
642
642
  : false
643
643
  : _endDate === null
644
- ? true
645
- : false
644
+ ? true
645
+ : false
646
646
  }
647
647
  key={index}
648
648
  locale={locale}