@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.
Files changed (430) 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.map +1 -1
  31. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  32. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  33. package/dist/cjs/components/conditional-portal/CConditionalPortal.js +1 -1
  34. package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
  35. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +3 -3
  36. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +2 -2
  37. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  38. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  39. package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
  40. package/dist/cjs/components/dropdown/CDropdown.js +4 -4
  41. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  42. package/dist/cjs/components/dropdown/CDropdownHeader.d.ts +7 -6
  43. package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
  44. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  45. package/dist/cjs/components/dropdown/CDropdownItem.d.ts +2 -6
  46. package/dist/cjs/components/dropdown/CDropdownItem.js +3 -3
  47. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  48. package/dist/cjs/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  49. package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
  50. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  51. package/dist/cjs/components/dropdown/CDropdownMenu.d.ts +7 -6
  52. package/dist/cjs/components/dropdown/CDropdownMenu.js +2 -2
  53. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  54. package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
  55. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  56. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  57. package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
  58. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  59. package/dist/cjs/components/form/CFormFeedback.d.ts +7 -6
  60. package/dist/cjs/components/form/CFormFeedback.js +2 -2
  61. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  62. package/dist/cjs/components/form/CFormText.d.ts +7 -6
  63. package/dist/cjs/components/form/CFormText.js +2 -2
  64. package/dist/cjs/components/form/CFormText.js.map +1 -1
  65. package/dist/cjs/components/form/CInputGroupText.d.ts +7 -6
  66. package/dist/cjs/components/form/CInputGroupText.js +2 -2
  67. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  68. package/dist/cjs/components/grid/CCol.js.map +1 -1
  69. package/dist/cjs/components/grid/CRow.js.map +1 -1
  70. package/dist/cjs/components/header/CHeaderBrand.d.ts +7 -10
  71. package/dist/cjs/components/header/CHeaderBrand.js +2 -2
  72. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  73. package/dist/cjs/components/header/CHeaderNav.d.ts +7 -6
  74. package/dist/cjs/components/header/CHeaderNav.js +2 -2
  75. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  76. package/dist/cjs/components/link/CLink.d.ts +8 -7
  77. package/dist/cjs/components/link/CLink.js +2 -2
  78. package/dist/cjs/components/link/CLink.js.map +1 -1
  79. package/dist/cjs/components/list-group/CListGroup.d.ts +7 -6
  80. package/dist/cjs/components/list-group/CListGroup.js +2 -2
  81. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  82. package/dist/cjs/components/list-group/CListGroupItem.d.ts +7 -6
  83. package/dist/cjs/components/list-group/CListGroupItem.js +6 -6
  84. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  85. package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
  86. package/dist/cjs/components/modal/CModal.js +1 -2
  87. package/dist/cjs/components/modal/CModal.js.map +1 -1
  88. package/dist/cjs/components/modal/CModalTitle.d.ts +4 -3
  89. package/dist/cjs/components/modal/CModalTitle.js +2 -2
  90. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  91. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  92. package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
  93. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  94. package/dist/cjs/components/multi-select/utils.js.map +1 -1
  95. package/dist/cjs/components/nav/CNav.d.ts +7 -6
  96. package/dist/cjs/components/nav/CNav.js +2 -2
  97. package/dist/cjs/components/nav/CNav.js.map +1 -1
  98. package/dist/cjs/components/nav/CNavGroup.d.ts +10 -4
  99. package/dist/cjs/components/nav/CNavGroup.js +11 -16
  100. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  101. package/dist/cjs/components/nav/CNavGroupItems.d.ts +10 -3
  102. package/dist/cjs/components/nav/CNavGroupItems.js +3 -2
  103. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  104. package/dist/cjs/components/nav/CNavItem.d.ts +11 -2
  105. package/dist/cjs/components/nav/CNavItem.js +3 -2
  106. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  107. package/dist/cjs/components/nav/CNavLink.d.ts +2 -18
  108. package/dist/cjs/components/nav/CNavLink.js +3 -0
  109. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  110. package/dist/cjs/components/nav/CNavTitle.d.ts +7 -2
  111. package/dist/cjs/components/nav/CNavTitle.js +3 -2
  112. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  113. package/dist/cjs/components/navbar/CNavbar.d.ts +7 -6
  114. package/dist/cjs/components/navbar/CNavbar.js +2 -2
  115. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  116. package/dist/cjs/components/navbar/CNavbarBrand.d.ts +8 -7
  117. package/dist/cjs/components/navbar/CNavbarBrand.js +3 -3
  118. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  119. package/dist/cjs/components/navbar/CNavbarNav.d.ts +7 -6
  120. package/dist/cjs/components/navbar/CNavbarNav.js +3 -3
  121. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  122. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  123. package/dist/cjs/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  124. package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
  125. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  126. package/dist/cjs/components/pagination/CPaginationItem.d.ts +4 -3
  127. package/dist/cjs/components/pagination/CPaginationItem.js +4 -4
  128. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  129. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  130. package/dist/cjs/components/placeholder/CPlaceholder.d.ts +7 -6
  131. package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
  132. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  133. package/dist/cjs/components/popover/CPopover.js +20 -13
  134. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  135. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  136. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  137. package/dist/cjs/components/sidebar/CSidebarBrand.d.ts +10 -3
  138. package/dist/cjs/components/sidebar/CSidebarBrand.js +3 -2
  139. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  140. package/dist/cjs/components/sidebar/CSidebarNav.d.ts +9 -2
  141. package/dist/cjs/components/sidebar/CSidebarNav.js +30 -12
  142. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  143. package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
  144. package/dist/cjs/components/smart-table/CSmartTable.js +3 -3
  145. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  146. package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
  147. package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +4 -3
  148. package/dist/cjs/components/smart-table/CSmartTableHead.js +3 -3
  149. package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
  150. package/dist/cjs/components/smart-table/utils.js.map +1 -1
  151. package/dist/cjs/components/spinner/CSpinner.d.ts +7 -6
  152. package/dist/cjs/components/spinner/CSpinner.js +2 -2
  153. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  154. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  155. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  156. package/dist/cjs/components/time-picker/utils.js.map +1 -1
  157. package/dist/cjs/components/toast/CToast.js.map +1 -1
  158. package/dist/cjs/components/toast/CToastClose.d.ts +5 -4
  159. package/dist/cjs/components/toast/CToastClose.js +2 -2
  160. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  161. package/dist/cjs/components/tooltip/CTooltip.js +20 -13
  162. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  163. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  164. package/dist/cjs/helpers/index.d.ts +2 -0
  165. package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
  166. package/dist/cjs/hooks/useColorModes.js.map +1 -1
  167. package/dist/cjs/hooks/useForkedRef.js.map +1 -1
  168. package/dist/cjs/hooks/usePopper.js.map +1 -1
  169. package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
  170. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  171. package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
  172. package/dist/cjs/utils/isObjectInArray.js.map +1 -1
  173. package/dist/cjs/utils/isRTL.js.map +1 -1
  174. package/dist/esm/components/alert/CAlertHeading.d.ts +7 -6
  175. package/dist/esm/components/alert/CAlertHeading.js +2 -2
  176. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  177. package/dist/esm/components/badge/CBadge.d.ts +7 -6
  178. package/dist/esm/components/badge/CBadge.js +2 -2
  179. package/dist/esm/components/badge/CBadge.js.map +1 -1
  180. package/dist/esm/components/button/CButton.d.ts +7 -6
  181. package/dist/esm/components/button/CButton.js +3 -3
  182. package/dist/esm/components/button/CButton.js.map +1 -1
  183. package/dist/esm/components/calendar/CCalendar.d.ts +3 -3
  184. package/dist/esm/components/calendar/CCalendar.js +10 -8
  185. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  186. package/dist/esm/components/calendar/utils.js.map +1 -1
  187. package/dist/esm/components/card/CCardHeader.d.ts +7 -6
  188. package/dist/esm/components/card/CCardHeader.js +2 -2
  189. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  190. package/dist/esm/components/card/CCardImage.d.ts +7 -6
  191. package/dist/esm/components/card/CCardImage.js +2 -2
  192. package/dist/esm/components/card/CCardImage.js.map +1 -1
  193. package/dist/esm/components/card/CCardSubtitle.d.ts +7 -6
  194. package/dist/esm/components/card/CCardSubtitle.js +2 -2
  195. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  196. package/dist/esm/components/card/CCardText.d.ts +7 -6
  197. package/dist/esm/components/card/CCardText.js +2 -2
  198. package/dist/esm/components/card/CCardText.js.map +1 -1
  199. package/dist/esm/components/card/CCardTitle.d.ts +7 -6
  200. package/dist/esm/components/card/CCardTitle.js +2 -2
  201. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  202. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  203. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  204. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  205. package/dist/esm/components/conditional-portal/CConditionalPortal.js +1 -1
  206. package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
  207. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +3 -3
  208. package/dist/esm/components/date-range-picker/CDateRangePicker.js +2 -2
  209. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  210. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  211. package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
  212. package/dist/esm/components/dropdown/CDropdown.js +4 -4
  213. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  214. package/dist/esm/components/dropdown/CDropdownHeader.d.ts +7 -6
  215. package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
  216. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  217. package/dist/esm/components/dropdown/CDropdownItem.d.ts +2 -6
  218. package/dist/esm/components/dropdown/CDropdownItem.js +3 -3
  219. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  220. package/dist/esm/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  221. package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
  222. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  223. package/dist/esm/components/dropdown/CDropdownMenu.d.ts +7 -6
  224. package/dist/esm/components/dropdown/CDropdownMenu.js +2 -2
  225. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  226. package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
  227. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  228. package/dist/esm/components/dropdown/utils.js.map +1 -1
  229. package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
  230. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  231. package/dist/esm/components/form/CFormFeedback.d.ts +7 -6
  232. package/dist/esm/components/form/CFormFeedback.js +2 -2
  233. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  234. package/dist/esm/components/form/CFormText.d.ts +7 -6
  235. package/dist/esm/components/form/CFormText.js +2 -2
  236. package/dist/esm/components/form/CFormText.js.map +1 -1
  237. package/dist/esm/components/form/CInputGroupText.d.ts +7 -6
  238. package/dist/esm/components/form/CInputGroupText.js +2 -2
  239. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  240. package/dist/esm/components/grid/CCol.js.map +1 -1
  241. package/dist/esm/components/grid/CRow.js.map +1 -1
  242. package/dist/esm/components/header/CHeaderBrand.d.ts +7 -10
  243. package/dist/esm/components/header/CHeaderBrand.js +2 -2
  244. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  245. package/dist/esm/components/header/CHeaderNav.d.ts +7 -6
  246. package/dist/esm/components/header/CHeaderNav.js +2 -2
  247. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  248. package/dist/esm/components/link/CLink.d.ts +8 -7
  249. package/dist/esm/components/link/CLink.js +2 -2
  250. package/dist/esm/components/link/CLink.js.map +1 -1
  251. package/dist/esm/components/list-group/CListGroup.d.ts +7 -6
  252. package/dist/esm/components/list-group/CListGroup.js +2 -2
  253. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  254. package/dist/esm/components/list-group/CListGroupItem.d.ts +7 -6
  255. package/dist/esm/components/list-group/CListGroupItem.js +6 -6
  256. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  257. package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
  258. package/dist/esm/components/modal/CModal.js +1 -2
  259. package/dist/esm/components/modal/CModal.js.map +1 -1
  260. package/dist/esm/components/modal/CModalTitle.d.ts +4 -3
  261. package/dist/esm/components/modal/CModalTitle.js +2 -2
  262. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  263. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  264. package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
  265. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  266. package/dist/esm/components/multi-select/utils.js.map +1 -1
  267. package/dist/esm/components/nav/CNav.d.ts +7 -6
  268. package/dist/esm/components/nav/CNav.js +2 -2
  269. package/dist/esm/components/nav/CNav.js.map +1 -1
  270. package/dist/esm/components/nav/CNavGroup.d.ts +10 -4
  271. package/dist/esm/components/nav/CNavGroup.js +11 -16
  272. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  273. package/dist/esm/components/nav/CNavGroupItems.d.ts +10 -3
  274. package/dist/esm/components/nav/CNavGroupItems.js +3 -2
  275. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  276. package/dist/esm/components/nav/CNavItem.d.ts +11 -2
  277. package/dist/esm/components/nav/CNavItem.js +3 -2
  278. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  279. package/dist/esm/components/nav/CNavLink.d.ts +2 -18
  280. package/dist/esm/components/nav/CNavLink.js +3 -0
  281. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  282. package/dist/esm/components/nav/CNavTitle.d.ts +7 -2
  283. package/dist/esm/components/nav/CNavTitle.js +3 -2
  284. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  285. package/dist/esm/components/navbar/CNavbar.d.ts +7 -6
  286. package/dist/esm/components/navbar/CNavbar.js +2 -2
  287. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  288. package/dist/esm/components/navbar/CNavbarBrand.d.ts +8 -7
  289. package/dist/esm/components/navbar/CNavbarBrand.js +3 -3
  290. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  291. package/dist/esm/components/navbar/CNavbarNav.d.ts +7 -6
  292. package/dist/esm/components/navbar/CNavbarNav.js +3 -3
  293. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  294. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  295. package/dist/esm/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  296. package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
  297. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  298. package/dist/esm/components/pagination/CPaginationItem.d.ts +4 -3
  299. package/dist/esm/components/pagination/CPaginationItem.js +4 -4
  300. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  301. package/dist/esm/components/picker/CPicker.js.map +1 -1
  302. package/dist/esm/components/placeholder/CPlaceholder.d.ts +7 -6
  303. package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
  304. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  305. package/dist/esm/components/popover/CPopover.js +20 -13
  306. package/dist/esm/components/popover/CPopover.js.map +1 -1
  307. package/dist/esm/components/progress/CProgress.js.map +1 -1
  308. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  309. package/dist/esm/components/sidebar/CSidebarBrand.d.ts +10 -3
  310. package/dist/esm/components/sidebar/CSidebarBrand.js +3 -2
  311. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  312. package/dist/esm/components/sidebar/CSidebarNav.d.ts +9 -2
  313. package/dist/esm/components/sidebar/CSidebarNav.js +30 -12
  314. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  315. package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
  316. package/dist/esm/components/smart-table/CSmartTable.js +3 -3
  317. package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
  318. package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
  319. package/dist/esm/components/smart-table/CSmartTableHead.d.ts +4 -3
  320. package/dist/esm/components/smart-table/CSmartTableHead.js +3 -3
  321. package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
  322. package/dist/esm/components/smart-table/utils.js.map +1 -1
  323. package/dist/esm/components/spinner/CSpinner.d.ts +7 -6
  324. package/dist/esm/components/spinner/CSpinner.js +2 -2
  325. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  326. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  327. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  328. package/dist/esm/components/time-picker/utils.js.map +1 -1
  329. package/dist/esm/components/toast/CToast.js.map +1 -1
  330. package/dist/esm/components/toast/CToastClose.d.ts +5 -4
  331. package/dist/esm/components/toast/CToastClose.js +2 -2
  332. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  333. package/dist/esm/components/tooltip/CTooltip.js +20 -13
  334. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  335. package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  336. package/dist/esm/helpers/index.d.ts +2 -0
  337. package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
  338. package/dist/esm/hooks/useColorModes.js.map +1 -1
  339. package/dist/esm/hooks/useForkedRef.js.map +1 -1
  340. package/dist/esm/hooks/usePopper.js.map +1 -1
  341. package/dist/esm/utils/executeAfterTransition.js.map +1 -1
  342. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  343. package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
  344. package/dist/esm/utils/isObjectInArray.js.map +1 -1
  345. package/dist/esm/utils/isRTL.js.map +1 -1
  346. package/package.json +10 -10
  347. package/src/components/alert/CAlertHeading.tsx +17 -14
  348. package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
  349. package/src/components/badge/CBadge.tsx +11 -7
  350. package/src/components/badge/__tests__/CBadge.spec.tsx +1 -1
  351. package/src/components/button/CButton.tsx +12 -18
  352. package/src/components/button/__tests__/CButton.spec.tsx +2 -2
  353. package/src/components/calendar/CCalendar.tsx +19 -13
  354. package/src/components/card/CCardHeader.tsx +17 -14
  355. package/src/components/card/CCardImage.tsx +9 -7
  356. package/src/components/card/CCardSubtitle.tsx +18 -14
  357. package/src/components/card/CCardText.tsx +17 -14
  358. package/src/components/card/CCardTitle.tsx +17 -14
  359. package/src/components/card/__tests__/CCardGroup.spec.tsx +1 -1
  360. package/src/components/card/__tests__/CCardHeader.spec.tsx +1 -1
  361. package/src/components/card/__tests__/CCardImage.spec.tsx +1 -3
  362. package/src/components/card/__tests__/CCardSubtitle.spec.tsx +1 -1
  363. package/src/components/card/__tests__/CCardText.spec.tsx +1 -1
  364. package/src/components/card/__tests__/CCardTitle.spec.tsx +1 -1
  365. package/src/components/conditional-portal/CConditionalPortal.tsx +1 -1
  366. package/src/components/date-range-picker/CDateRangePicker.tsx +12 -12
  367. package/src/components/dropdown/CDropdown.tsx +12 -8
  368. package/src/components/dropdown/CDropdownHeader.tsx +17 -14
  369. package/src/components/dropdown/CDropdownItem.tsx +14 -20
  370. package/src/components/dropdown/CDropdownItemPlain.tsx +12 -7
  371. package/src/components/dropdown/CDropdownMenu.tsx +43 -41
  372. package/src/components/dropdown/CDropdownToggle.tsx +1 -1
  373. package/src/components/dropdown/__tests__/CDropdown.spec.tsx +1 -1
  374. package/src/components/dropdown/__tests__/CDropdownHeader.spec.tsx +1 -1
  375. package/src/components/dropdown/__tests__/CDropdownItem.spec.tsx +1 -1
  376. package/src/components/dropdown/__tests__/CDropdownItemPlain.spec.tsx +1 -1
  377. package/src/components/dropdown/__tests__/CDropdownMenu.spec.tsx +1 -1
  378. package/src/components/dropdown/types.ts +1 -1
  379. package/src/components/form/CFormFeedback.tsx +28 -27
  380. package/src/components/form/CFormText.tsx +17 -14
  381. package/src/components/form/CInputGroupText.tsx +17 -14
  382. package/src/components/form/__tests__/CFormText.spec.tsx +1 -1
  383. package/src/components/form/__tests__/CInputGroupText.spec.tsx +1 -1
  384. package/src/components/header/CHeaderBrand.tsx +11 -13
  385. package/src/components/header/CHeaderBrand.tsx~HEAD +17 -14
  386. package/src/components/header/CHeaderNav.tsx +22 -19
  387. package/src/components/header/__tests__/CHeaderBrand.spec.tsx +1 -1
  388. package/src/components/header/__tests__/CHeaderNav.spec.tsx +1 -1
  389. package/src/components/link/CLink.tsx +33 -29
  390. package/src/components/link/__tests__/CLink.spec.tsx +2 -2
  391. package/src/components/list-group/CListGroup.tsx +27 -24
  392. package/src/components/list-group/CListGroupItem.tsx +38 -37
  393. package/src/components/list-group/__tests__/CListGroup.spec.tsx +1 -1
  394. package/src/components/list-group/__tests__/CListGroupItem.spec.tsx +1 -7
  395. package/src/components/loading-button/CLoadingButton.tsx +1 -0
  396. package/src/components/modal/CModal.tsx +1 -4
  397. package/src/components/modal/CModalTitle.tsx +14 -11
  398. package/src/components/modal/__tests__/CModalTitle.spec.tsx +1 -1
  399. package/src/components/nav/CNav.tsx +29 -26
  400. package/src/components/nav/CNavGroup.tsx +111 -100
  401. package/src/components/nav/CNavGroupItems.tsx +21 -11
  402. package/src/components/nav/CNavItem.tsx +29 -16
  403. package/src/components/nav/CNavLink.tsx +7 -19
  404. package/src/components/nav/CNavTitle.tsx +18 -10
  405. package/src/components/nav/__tests__/CNav.spec.tsx +1 -1
  406. package/src/components/nav/__tests__/CNavItem.spec.tsx +1 -1
  407. package/src/components/nav/__tests__/CNavLink.spec.tsx +1 -1
  408. package/src/components/navbar/CNavbar.tsx +11 -7
  409. package/src/components/navbar/CNavbarBrand.tsx +19 -16
  410. package/src/components/navbar/CNavbarNav.tsx +22 -19
  411. package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
  412. package/src/components/navbar/__tests__/CNavbarBrand.spec.tsx +1 -1
  413. package/src/components/navbar/__tests__/CNavbarNav.spec.tsx +1 -1
  414. package/src/components/offcanvas/COffcanvasTitle.tsx +17 -14
  415. package/src/components/offcanvas/__tests__/COffcanvasTitle.spec.tsx +1 -1
  416. package/src/components/pagination/CPaginationItem.tsx +33 -30
  417. package/src/components/pagination/__tests__/CPaginationItem.spec.tsx +1 -1
  418. package/src/components/placeholder/CPlaceholder.tsx +40 -41
  419. package/src/components/popover/CPopover.tsx +24 -13
  420. package/src/components/sidebar/CSidebarBrand.tsx +21 -11
  421. package/src/components/sidebar/CSidebarNav.tsx +68 -24
  422. package/src/components/smart-table/CSmartTable.tsx +1 -1
  423. package/src/components/smart-table/CSmartTableHead.tsx +179 -177
  424. package/src/components/spinner/CSpinner.tsx +11 -7
  425. package/src/components/spinner/__tests__/CSpinner.spec.tsx +1 -1
  426. package/src/components/toast/CToastClose.tsx +8 -7
  427. package/src/components/tooltip/CTooltip.tsx +24 -12
  428. package/src/helpers/index.ts +3 -0
  429. package/src/helpers/polymorphicComponent.ts +21 -0
  430. package/src/components/list-group/CListGroupItem.tsx~HEAD +0 -81
@@ -1 +1 @@
1
- {"version":3,"file":"isObjectInArray.js","sources":["../../../src/utils/isObjectInArray.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,IAAM,eAAe,GAAG,UAAI,KAAU,EAAE,IAAO,EAAE,MAAqB,EAAA;AAArB,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAqB,GAAA,EAAA,CAAA,EAAA;AACpE,IAAA,OAAA,KAAK,CAAC,IAAI,CAAC,UAAC,KAAQ,EAAA;QAClB,IAAI,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE;gBACrD,MAAM,GAAG,KAAK,CAAA;gBACd,MAAK;AACN,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAA;AACf,KAAC,CAAC,CAAA;AAVF;;;;"}
1
+ {"version":3,"file":"isObjectInArray.js","sources":["../../../src/utils/isObjectInArray.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,IAAM,eAAe,GAAG,UAAI,KAAU,EAAE,IAAO,EAAE,MAAqB,EAAA;AAArB,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAqB,GAAA,EAAA,CAAA,EAAA;AACpE,IAAA,OAAA,KAAK,CAAC,IAAI,CAAC,UAAC,KAAQ,EAAA;QAClB,IAAI,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE;gBACrD,MAAM,GAAG,KAAK,CAAA;gBACd,MAAK;aACN;SACF;AAED,QAAA,OAAO,MAAM,CAAA;AACf,KAAC,CAAC,CAAA;AAVF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"isRTL.js","sources":["../../../src/utils/isRTL.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,IAAA,KAAK,GAAG,UAAC,OAA6C,EAAA;AAC1D,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,KAAK,EAAE;AAC7E,QAAA,OAAO,IAAI,CAAA;AACZ,KAAA;AAED,IAAA,IAAI,OAAO,EAAE;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;AAC/C,KAAA;AAED,IAAA,OAAO,KAAK,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"isRTL.js","sources":["../../../src/utils/isRTL.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,IAAA,KAAK,GAAG,UAAC,OAA6C,EAAA;AAC1D,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,KAAK,EAAE;AAC7E,QAAA,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,OAAO,EAAE;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;KAC/C;AAED,IAAA,OAAO,KAAK,CAAA;AACd;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coreui/react-pro",
3
- "version": "5.0.0-rc.0",
3
+ "version": "5.0.0-rc.1",
4
4
  "description": "UI Components Library for React.js",
5
5
  "keywords": [
6
6
  "react",
@@ -41,7 +41,7 @@
41
41
  "test:update": "jest --coverage --updateSnapshot"
42
42
  },
43
43
  "dependencies": {
44
- "@coreui/coreui-pro": "^5.0.0-rc.0",
44
+ "@coreui/coreui-pro": "^5.0.0-rc.1",
45
45
  "@popperjs/core": "^2.11.8",
46
46
  "prop-types": "^15.8.1"
47
47
  },
@@ -49,12 +49,12 @@
49
49
  "@rollup/plugin-commonjs": "^25.0.7",
50
50
  "@rollup/plugin-node-resolve": "^15.2.3",
51
51
  "@rollup/plugin-typescript": "^11.1.5",
52
- "@testing-library/jest-dom": "^6.1.4",
53
- "@testing-library/react": "^14.1.0",
54
- "@types/jest": "^29.5.8",
55
- "@types/react": "18.2.37",
56
- "@types/react-dom": "^18.2.15",
57
- "@types/react-transition-group": "^4.4.9",
52
+ "@testing-library/jest-dom": "^6.1.5",
53
+ "@testing-library/react": "^14.1.2",
54
+ "@types/jest": "^29.5.11",
55
+ "@types/react": "18.2.45",
56
+ "@types/react-dom": "^18.2.18",
57
+ "@types/react-transition-group": "^4.4.10",
58
58
  "classnames": "^2.3.2",
59
59
  "cross-env": "^7.0.3",
60
60
  "jest": "^29.7.0",
@@ -63,10 +63,10 @@
63
63
  "react-device-detect": "^2.2.3",
64
64
  "react-dom": "^18.2.0",
65
65
  "react-transition-group": "^4.4.5",
66
- "rollup": "^4.4.1",
66
+ "rollup": "^4.9.1",
67
67
  "ts-jest": "^29.1.1",
68
68
  "tslib": "^2.6.2",
69
- "typescript": "^5.2.2"
69
+ "typescript": "^5.3.3"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "react": ">=17",
@@ -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 CAlertHeadingProps extends HTMLAttributes<HTMLHeadingElement> {
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 CAlertHeading = forwardRef<HTMLHeadingElement, CAlertHeadingProps>(
17
- ({ children, className, component: Component = 'h4', ...rest }, ref) => {
18
- return (
19
- <Component className={classNames('alert-heading', className)} {...rest} ref={ref}>
20
- {children}
21
- </Component>
22
- )
23
- },
24
- )
18
+ export const CAlertHeading: PolymorphicRefForwardingComponent<'h4', CAlertHeadingProps> =
19
+ forwardRef<HTMLHeadingElement, CAlertHeadingProps>(
20
+ ({ children, as: Component = 'h4', className, ...rest }, ref) => {
21
+ return (
22
+ <Component className={classNames('alert-heading', className)} {...rest} ref={ref}>
23
+ {children}
24
+ </Component>
25
+ )
26
+ },
27
+ )
25
28
 
26
29
  CAlertHeading.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
  CAlertHeading.displayName = 'CAlertHeading'
@@ -10,7 +10,7 @@ test('loads and displays CAlertHeading component', async () => {
10
10
 
11
11
  test('CAlertHeading customize', async () => {
12
12
  const { container } = render(
13
- <CAlertHeading component="h3" className="bazinga">
13
+ <CAlertHeading as="h3" className="bazinga">
14
14
  Test
15
15
  </CAlertHeading>,
16
16
  )
@@ -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, gradientsPropType, shapePropType, textColorsPropType } from '../../props'
6
7
  import type { Colors, Gradients, Shapes, TextColors } from '../../types'
7
8
 
8
9
  export interface CBadgeProps 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 CBadgeProps extends HTMLAttributes<HTMLDivElement | HTMLSpanEle
16
21
  * @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | 'primary-gradient' | 'secondary-gradient' | 'success-gradient' | 'danger-gradient' | 'warning-gradient' | 'info-gradient' | 'dark-gradient' | 'light-gradient' | string
17
22
  */
18
23
  color?: Colors | Gradients
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
  * Position badge in one of the corners of a link or button.
25
26
  */
@@ -41,13 +42,16 @@ export interface CBadgeProps extends HTMLAttributes<HTMLDivElement | HTMLSpanEle
41
42
  */
42
43
  textColor?: TextColors
43
44
  }
44
- export const CBadge = forwardRef<HTMLDivElement | HTMLSpanElement, CBadgeProps>(
45
+ export const CBadge: PolymorphicRefForwardingComponent<'span', CBadgeProps> = forwardRef<
46
+ HTMLDivElement | HTMLSpanElement,
47
+ CBadgeProps
48
+ >(
45
49
  (
46
50
  {
47
51
  children,
52
+ as: Component = 'span',
48
53
  className,
49
54
  color,
50
- component: Component = 'span',
51
55
  position,
52
56
  shape,
53
57
  size,
@@ -83,10 +87,10 @@ export const CBadge = forwardRef<HTMLDivElement | HTMLSpanElement, CBadgeProps>(
83
87
  )
84
88
 
85
89
  CBadge.propTypes = {
90
+ as: PropTypes.string,
86
91
  children: PropTypes.node,
87
92
  className: PropTypes.string,
88
93
  color: PropTypes.oneOfType([colorPropType, gradientsPropType]),
89
- component: PropTypes.string,
90
94
  position: PropTypes.oneOf(['top-start', 'top-end', 'bottom-end', 'bottom-start']),
91
95
  shape: shapePropType,
92
96
  size: PropTypes.oneOf(['sm']),
@@ -10,7 +10,7 @@ test('loads and displays CBadge component', async () => {
10
10
 
11
11
  test('CBadge customize', async () => {
12
12
  const { container } = render(
13
- <CBadge className="bazinga" color="warning" component="div" shape="rounded" textColor="white">
13
+ <CBadge className="bazinga" color="warning" as="div" shape="rounded" textColor="white">
14
14
  Test
15
15
  </CBadge>,
16
16
  )
@@ -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,
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-rc.0
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-rc.0
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-rc.0
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
  )