@coreui/react 5.0.0-rc.0 → 5.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) 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/card/CCardHeader.d.ts +7 -6
  12. package/dist/cjs/components/card/CCardHeader.js +2 -2
  13. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  14. package/dist/cjs/components/card/CCardImage.d.ts +7 -6
  15. package/dist/cjs/components/card/CCardImage.js +2 -2
  16. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  17. package/dist/cjs/components/card/CCardSubtitle.d.ts +7 -6
  18. package/dist/cjs/components/card/CCardSubtitle.js +2 -2
  19. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  20. package/dist/cjs/components/card/CCardText.d.ts +7 -6
  21. package/dist/cjs/components/card/CCardText.js +2 -2
  22. package/dist/cjs/components/card/CCardText.js.map +1 -1
  23. package/dist/cjs/components/card/CCardTitle.d.ts +7 -6
  24. package/dist/cjs/components/card/CCardTitle.js +2 -2
  25. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  26. package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
  27. package/dist/cjs/components/dropdown/CDropdown.js +3 -3
  28. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  29. package/dist/cjs/components/dropdown/CDropdownHeader.d.ts +7 -6
  30. package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
  31. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  32. package/dist/cjs/components/dropdown/CDropdownItem.d.ts +2 -6
  33. package/dist/cjs/components/dropdown/CDropdownItem.js +3 -3
  34. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  35. package/dist/cjs/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  36. package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
  37. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  38. package/dist/cjs/components/dropdown/CDropdownMenu.d.ts +7 -6
  39. package/dist/cjs/components/dropdown/CDropdownMenu.js +2 -2
  40. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  41. package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
  42. package/dist/cjs/components/form/CFormFeedback.d.ts +7 -6
  43. package/dist/cjs/components/form/CFormFeedback.js +2 -2
  44. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  45. package/dist/cjs/components/form/CFormText.d.ts +7 -6
  46. package/dist/cjs/components/form/CFormText.js +2 -2
  47. package/dist/cjs/components/form/CFormText.js.map +1 -1
  48. package/dist/cjs/components/form/CInputGroupText.d.ts +7 -6
  49. package/dist/cjs/components/form/CInputGroupText.js +2 -2
  50. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  51. package/dist/cjs/components/header/CHeaderBrand.d.ts +7 -6
  52. package/dist/cjs/components/header/CHeaderBrand.js +2 -2
  53. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  54. package/dist/cjs/components/header/CHeaderNav.d.ts +7 -6
  55. package/dist/cjs/components/header/CHeaderNav.js +2 -2
  56. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  57. package/dist/cjs/components/link/CLink.d.ts +8 -7
  58. package/dist/cjs/components/link/CLink.js +2 -2
  59. package/dist/cjs/components/link/CLink.js.map +1 -1
  60. package/dist/cjs/components/list-group/CListGroup.d.ts +7 -6
  61. package/dist/cjs/components/list-group/CListGroup.js +2 -2
  62. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  63. package/dist/cjs/components/list-group/CListGroupItem.d.ts +7 -6
  64. package/dist/cjs/components/list-group/CListGroupItem.js +6 -6
  65. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  66. package/dist/cjs/components/modal/CModal.js +1 -2
  67. package/dist/cjs/components/modal/CModal.js.map +1 -1
  68. package/dist/cjs/components/modal/CModalTitle.d.ts +4 -3
  69. package/dist/cjs/components/modal/CModalTitle.js +2 -2
  70. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  71. package/dist/cjs/components/nav/CNav.d.ts +7 -6
  72. package/dist/cjs/components/nav/CNav.js +2 -2
  73. package/dist/cjs/components/nav/CNav.js.map +1 -1
  74. package/dist/cjs/components/nav/CNavGroup.d.ts +10 -4
  75. package/dist/cjs/components/nav/CNavGroup.js +11 -16
  76. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  77. package/dist/cjs/components/nav/CNavGroupItems.d.ts +10 -3
  78. package/dist/cjs/components/nav/CNavGroupItems.js +3 -2
  79. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  80. package/dist/cjs/components/nav/CNavItem.d.ts +11 -2
  81. package/dist/cjs/components/nav/CNavItem.js +3 -2
  82. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  83. package/dist/cjs/components/nav/CNavLink.d.ts +2 -18
  84. package/dist/cjs/components/nav/CNavLink.js +3 -0
  85. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  86. package/dist/cjs/components/nav/CNavTitle.d.ts +7 -2
  87. package/dist/cjs/components/nav/CNavTitle.js +3 -2
  88. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  89. package/dist/cjs/components/navbar/CNavbar.d.ts +7 -6
  90. package/dist/cjs/components/navbar/CNavbar.js +2 -2
  91. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  92. package/dist/cjs/components/navbar/CNavbarBrand.d.ts +8 -7
  93. package/dist/cjs/components/navbar/CNavbarBrand.js +3 -3
  94. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  95. package/dist/cjs/components/navbar/CNavbarNav.d.ts +7 -6
  96. package/dist/cjs/components/navbar/CNavbarNav.js +3 -3
  97. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  98. package/dist/cjs/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  99. package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
  100. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  101. package/dist/cjs/components/pagination/CPaginationItem.d.ts +4 -3
  102. package/dist/cjs/components/pagination/CPaginationItem.js +4 -4
  103. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  104. package/dist/cjs/components/placeholder/CPlaceholder.d.ts +7 -6
  105. package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
  106. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  107. package/dist/cjs/components/popover/CPopover.js +19 -12
  108. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  109. package/dist/cjs/components/sidebar/CSidebarBrand.d.ts +10 -3
  110. package/dist/cjs/components/sidebar/CSidebarBrand.js +3 -2
  111. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  112. package/dist/cjs/components/sidebar/CSidebarNav.d.ts +9 -2
  113. package/dist/cjs/components/sidebar/CSidebarNav.js +30 -12
  114. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  115. package/dist/cjs/components/spinner/CSpinner.d.ts +7 -6
  116. package/dist/cjs/components/spinner/CSpinner.js +2 -2
  117. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  118. package/dist/cjs/components/toast/CToastClose.d.ts +5 -4
  119. package/dist/cjs/components/toast/CToastClose.js +2 -2
  120. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  121. package/dist/cjs/components/tooltip/CTooltip.js +19 -12
  122. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  123. package/dist/cjs/helpers/index.d.ts +2 -0
  124. package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
  125. package/dist/esm/components/alert/CAlertHeading.d.ts +7 -6
  126. package/dist/esm/components/alert/CAlertHeading.js +2 -2
  127. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  128. package/dist/esm/components/badge/CBadge.d.ts +7 -6
  129. package/dist/esm/components/badge/CBadge.js +2 -2
  130. package/dist/esm/components/badge/CBadge.js.map +1 -1
  131. package/dist/esm/components/button/CButton.d.ts +7 -6
  132. package/dist/esm/components/button/CButton.js +3 -3
  133. package/dist/esm/components/button/CButton.js.map +1 -1
  134. package/dist/esm/components/card/CCardHeader.d.ts +7 -6
  135. package/dist/esm/components/card/CCardHeader.js +2 -2
  136. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  137. package/dist/esm/components/card/CCardImage.d.ts +7 -6
  138. package/dist/esm/components/card/CCardImage.js +2 -2
  139. package/dist/esm/components/card/CCardImage.js.map +1 -1
  140. package/dist/esm/components/card/CCardSubtitle.d.ts +7 -6
  141. package/dist/esm/components/card/CCardSubtitle.js +2 -2
  142. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  143. package/dist/esm/components/card/CCardText.d.ts +7 -6
  144. package/dist/esm/components/card/CCardText.js +2 -2
  145. package/dist/esm/components/card/CCardText.js.map +1 -1
  146. package/dist/esm/components/card/CCardTitle.d.ts +7 -6
  147. package/dist/esm/components/card/CCardTitle.js +2 -2
  148. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  149. package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
  150. package/dist/esm/components/dropdown/CDropdown.js +3 -3
  151. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  152. package/dist/esm/components/dropdown/CDropdownHeader.d.ts +7 -6
  153. package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
  154. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  155. package/dist/esm/components/dropdown/CDropdownItem.d.ts +2 -6
  156. package/dist/esm/components/dropdown/CDropdownItem.js +3 -3
  157. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  158. package/dist/esm/components/dropdown/CDropdownItemPlain.d.ts +7 -6
  159. package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
  160. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  161. package/dist/esm/components/dropdown/CDropdownMenu.d.ts +7 -6
  162. package/dist/esm/components/dropdown/CDropdownMenu.js +2 -2
  163. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  164. package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
  165. package/dist/esm/components/form/CFormFeedback.d.ts +7 -6
  166. package/dist/esm/components/form/CFormFeedback.js +2 -2
  167. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  168. package/dist/esm/components/form/CFormText.d.ts +7 -6
  169. package/dist/esm/components/form/CFormText.js +2 -2
  170. package/dist/esm/components/form/CFormText.js.map +1 -1
  171. package/dist/esm/components/form/CInputGroupText.d.ts +7 -6
  172. package/dist/esm/components/form/CInputGroupText.js +2 -2
  173. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  174. package/dist/esm/components/header/CHeaderBrand.d.ts +7 -6
  175. package/dist/esm/components/header/CHeaderBrand.js +2 -2
  176. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  177. package/dist/esm/components/header/CHeaderNav.d.ts +7 -6
  178. package/dist/esm/components/header/CHeaderNav.js +2 -2
  179. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  180. package/dist/esm/components/link/CLink.d.ts +8 -7
  181. package/dist/esm/components/link/CLink.js +2 -2
  182. package/dist/esm/components/link/CLink.js.map +1 -1
  183. package/dist/esm/components/list-group/CListGroup.d.ts +7 -6
  184. package/dist/esm/components/list-group/CListGroup.js +2 -2
  185. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  186. package/dist/esm/components/list-group/CListGroupItem.d.ts +7 -6
  187. package/dist/esm/components/list-group/CListGroupItem.js +6 -6
  188. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  189. package/dist/esm/components/modal/CModal.js +1 -2
  190. package/dist/esm/components/modal/CModal.js.map +1 -1
  191. package/dist/esm/components/modal/CModalTitle.d.ts +4 -3
  192. package/dist/esm/components/modal/CModalTitle.js +2 -2
  193. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  194. package/dist/esm/components/nav/CNav.d.ts +7 -6
  195. package/dist/esm/components/nav/CNav.js +2 -2
  196. package/dist/esm/components/nav/CNav.js.map +1 -1
  197. package/dist/esm/components/nav/CNavGroup.d.ts +10 -4
  198. package/dist/esm/components/nav/CNavGroup.js +11 -16
  199. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  200. package/dist/esm/components/nav/CNavGroupItems.d.ts +10 -3
  201. package/dist/esm/components/nav/CNavGroupItems.js +3 -2
  202. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  203. package/dist/esm/components/nav/CNavItem.d.ts +11 -2
  204. package/dist/esm/components/nav/CNavItem.js +3 -2
  205. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  206. package/dist/esm/components/nav/CNavLink.d.ts +2 -18
  207. package/dist/esm/components/nav/CNavLink.js +3 -0
  208. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  209. package/dist/esm/components/nav/CNavTitle.d.ts +7 -2
  210. package/dist/esm/components/nav/CNavTitle.js +3 -2
  211. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  212. package/dist/esm/components/navbar/CNavbar.d.ts +7 -6
  213. package/dist/esm/components/navbar/CNavbar.js +2 -2
  214. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  215. package/dist/esm/components/navbar/CNavbarBrand.d.ts +8 -7
  216. package/dist/esm/components/navbar/CNavbarBrand.js +3 -3
  217. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  218. package/dist/esm/components/navbar/CNavbarNav.d.ts +7 -6
  219. package/dist/esm/components/navbar/CNavbarNav.js +3 -3
  220. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  221. package/dist/esm/components/offcanvas/COffcanvasTitle.d.ts +7 -6
  222. package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
  223. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  224. package/dist/esm/components/pagination/CPaginationItem.d.ts +4 -3
  225. package/dist/esm/components/pagination/CPaginationItem.js +4 -4
  226. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  227. package/dist/esm/components/placeholder/CPlaceholder.d.ts +7 -6
  228. package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
  229. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  230. package/dist/esm/components/popover/CPopover.js +19 -12
  231. package/dist/esm/components/popover/CPopover.js.map +1 -1
  232. package/dist/esm/components/sidebar/CSidebarBrand.d.ts +10 -3
  233. package/dist/esm/components/sidebar/CSidebarBrand.js +3 -2
  234. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  235. package/dist/esm/components/sidebar/CSidebarNav.d.ts +9 -2
  236. package/dist/esm/components/sidebar/CSidebarNav.js +30 -12
  237. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  238. package/dist/esm/components/spinner/CSpinner.d.ts +7 -6
  239. package/dist/esm/components/spinner/CSpinner.js +2 -2
  240. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  241. package/dist/esm/components/toast/CToastClose.d.ts +5 -4
  242. package/dist/esm/components/toast/CToastClose.js +2 -2
  243. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  244. package/dist/esm/components/tooltip/CTooltip.js +19 -12
  245. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  246. package/dist/esm/helpers/index.d.ts +2 -0
  247. package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
  248. package/package.json +10 -10
  249. package/src/components/alert/CAlertHeading.tsx +17 -14
  250. package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
  251. package/src/components/badge/CBadge.tsx +11 -7
  252. package/src/components/badge/__tests__/CBadge.spec.tsx +1 -1
  253. package/src/components/button/CButton.tsx +12 -18
  254. package/src/components/button/__tests__/CButton.spec.tsx +2 -2
  255. package/src/components/card/CCardHeader.tsx +17 -14
  256. package/src/components/card/CCardImage.tsx +9 -7
  257. package/src/components/card/CCardSubtitle.tsx +18 -14
  258. package/src/components/card/CCardText.tsx +17 -14
  259. package/src/components/card/CCardTitle.tsx +17 -14
  260. package/src/components/card/__tests__/CCardGroup.spec.tsx +1 -1
  261. package/src/components/card/__tests__/CCardHeader.spec.tsx +1 -1
  262. package/src/components/card/__tests__/CCardImage.spec.tsx +1 -3
  263. package/src/components/card/__tests__/CCardSubtitle.spec.tsx +1 -1
  264. package/src/components/card/__tests__/CCardText.spec.tsx +1 -1
  265. package/src/components/card/__tests__/CCardTitle.spec.tsx +1 -1
  266. package/src/components/conditional-portal/CConditionalPortal.tsx +1 -1
  267. package/src/components/dropdown/CDropdown.tsx +12 -8
  268. package/src/components/dropdown/CDropdownHeader.tsx +17 -14
  269. package/src/components/dropdown/CDropdownItem.tsx +14 -20
  270. package/src/components/dropdown/CDropdownItemPlain.tsx +12 -7
  271. package/src/components/dropdown/CDropdownMenu.tsx +43 -41
  272. package/src/components/dropdown/CDropdownToggle.tsx +1 -1
  273. package/src/components/dropdown/__tests__/CDropdown.spec.tsx +1 -1
  274. package/src/components/dropdown/__tests__/CDropdownHeader.spec.tsx +1 -1
  275. package/src/components/dropdown/__tests__/CDropdownItem.spec.tsx +1 -1
  276. package/src/components/dropdown/__tests__/CDropdownItemPlain.spec.tsx +1 -1
  277. package/src/components/dropdown/__tests__/CDropdownMenu.spec.tsx +1 -1
  278. package/src/components/dropdown/types.ts +1 -1
  279. package/src/components/form/CFormFeedback.tsx +28 -27
  280. package/src/components/form/CFormText.tsx +17 -14
  281. package/src/components/form/CInputGroupText.tsx +17 -14
  282. package/src/components/form/__tests__/CFormText.spec.tsx +1 -1
  283. package/src/components/form/__tests__/CInputGroupText.spec.tsx +1 -1
  284. package/src/components/header/CHeaderBrand.tsx +17 -14
  285. package/src/components/header/CHeaderNav.tsx +22 -19
  286. package/src/components/header/__tests__/CHeaderBrand.spec.tsx +1 -1
  287. package/src/components/header/__tests__/CHeaderNav.spec.tsx +1 -1
  288. package/src/components/link/CLink.tsx +33 -29
  289. package/src/components/link/__tests__/CLink.spec.tsx +2 -2
  290. package/src/components/list-group/CListGroup.tsx +27 -24
  291. package/src/components/list-group/CListGroupItem.tsx +38 -37
  292. package/src/components/list-group/__tests__/CListGroup.spec.tsx +1 -1
  293. package/src/components/list-group/__tests__/CListGroupItem.spec.tsx +1 -7
  294. package/src/components/modal/CModal.tsx +1 -4
  295. package/src/components/modal/CModalTitle.tsx +14 -11
  296. package/src/components/modal/__tests__/CModalTitle.spec.tsx +1 -1
  297. package/src/components/nav/CNav.tsx +29 -26
  298. package/src/components/nav/CNavGroup.tsx +111 -100
  299. package/src/components/nav/CNavGroupItems.tsx +21 -11
  300. package/src/components/nav/CNavItem.tsx +29 -16
  301. package/src/components/nav/CNavLink.tsx +7 -19
  302. package/src/components/nav/CNavTitle.tsx +18 -10
  303. package/src/components/nav/__tests__/CNav.spec.tsx +1 -1
  304. package/src/components/nav/__tests__/CNavItem.spec.tsx +1 -1
  305. package/src/components/nav/__tests__/CNavLink.spec.tsx +1 -1
  306. package/src/components/navbar/CNavbar.tsx +11 -7
  307. package/src/components/navbar/CNavbarBrand.tsx +19 -16
  308. package/src/components/navbar/CNavbarNav.tsx +22 -19
  309. package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
  310. package/src/components/navbar/__tests__/CNavbarBrand.spec.tsx +1 -1
  311. package/src/components/navbar/__tests__/CNavbarNav.spec.tsx +1 -1
  312. package/src/components/offcanvas/COffcanvasTitle.tsx +17 -14
  313. package/src/components/offcanvas/__tests__/COffcanvasTitle.spec.tsx +1 -1
  314. package/src/components/pagination/CPaginationItem.tsx +33 -30
  315. package/src/components/pagination/__tests__/CPaginationItem.spec.tsx +1 -1
  316. package/src/components/placeholder/CPlaceholder.tsx +40 -41
  317. package/src/components/popover/CPopover.tsx +24 -13
  318. package/src/components/sidebar/CSidebarBrand.tsx +21 -11
  319. package/src/components/sidebar/CSidebarNav.tsx +68 -24
  320. package/src/components/spinner/CSpinner.tsx +11 -7
  321. package/src/components/spinner/__tests__/CSpinner.spec.tsx +1 -1
  322. package/src/components/toast/CToastClose.tsx +8 -7
  323. package/src/components/tooltip/CTooltip.tsx +24 -12
  324. package/src/helpers/index.ts +3 -0
  325. package/src/helpers/polymorphicComponent.ts +21 -0
@@ -90,9 +90,10 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
90
90
  },
91
91
  ref,
92
92
  ) => {
93
- const tooltipRef = useRef(null)
93
+ const tooltipRef = useRef<HTMLDivElement>(null)
94
94
  const togglerRef = useRef(null)
95
95
  const forkedRef = useForkedRef(ref, tooltipRef)
96
+ const uID = useRef(`tooltip${Math.floor(Math.random() * 1_000_000)}`)
96
97
 
97
98
  const { initPopper, destroyPopper } = usePopper()
98
99
  const [_visible, setVisible] = useState(visible)
@@ -127,16 +128,6 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
127
128
  setVisible(visible)
128
129
  }, [visible])
129
130
 
130
- useEffect(() => {
131
- if (_visible && togglerRef.current && tooltipRef.current) {
132
- initPopper(togglerRef.current, tooltipRef.current, popperConfig)
133
- }
134
-
135
- return () => {
136
- destroyPopper()
137
- }
138
- }, [_visible])
139
-
140
131
  const toggleVisible = (visible: boolean) => {
141
132
  if (visible) {
142
133
  setTimeout(() => setVisible(true), _delay.show)
@@ -149,6 +140,9 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
149
140
  return (
150
141
  <>
151
142
  {React.cloneElement(children as React.ReactElement<any>, {
143
+ ...(_visible && {
144
+ 'aria-describedby': uID.current,
145
+ }),
152
146
  ref: togglerRef,
153
147
  ...((trigger === 'click' || trigger.includes('click')) && {
154
148
  onClick: () => toggleVisible(!_visible),
@@ -167,8 +161,22 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
167
161
  in={_visible}
168
162
  mountOnEnter
169
163
  nodeRef={tooltipRef}
170
- onEnter={onShow}
164
+ onEnter={() => {
165
+ if (togglerRef.current && tooltipRef.current) {
166
+ initPopper(togglerRef.current, tooltipRef.current, popperConfig)
167
+ }
168
+
169
+ onShow
170
+ }}
171
+ onEntering={() => {
172
+ if (togglerRef.current && tooltipRef.current) {
173
+ tooltipRef.current.style.display = 'initial'
174
+ }
175
+ }}
171
176
  onExit={onHide}
177
+ onExited={() => {
178
+ destroyPopper()
179
+ }}
172
180
  timeout={{
173
181
  enter: 0,
174
182
  exit: tooltipRef.current
@@ -188,8 +196,12 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
188
196
  },
189
197
  className,
190
198
  )}
199
+ id={uID.current}
191
200
  ref={forkedRef}
192
201
  role="tooltip"
202
+ style={{
203
+ display: 'none',
204
+ }}
193
205
  {...rest}
194
206
  >
195
207
  <div className="tooltip-arrow"></div>
@@ -0,0 +1,3 @@
1
+ import { PolymorphicRefForwardingComponent } from './polymorphicComponent'
2
+
3
+ export { PolymorphicRefForwardingComponent }
@@ -0,0 +1,21 @@
1
+ import { ComponentPropsWithRef, ElementType, PropsWithChildren, ReactNode } from 'react'
2
+
3
+ export type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>
4
+
5
+ export type ReplaceProps<Inner extends ElementType, P> = Omit<ComponentPropsWithRef<Inner>, P> & P
6
+
7
+ export interface AsProp<As extends ElementType = ElementType> {
8
+ as?: As
9
+ }
10
+
11
+ export interface Props<As extends ElementType = ElementType> extends AsProp<As> {}
12
+
13
+ export interface PolymorphicRefForwardingComponent<TInitial extends ElementType, P = unknown> {
14
+ <As extends ElementType = TInitial>(
15
+ props: PropsWithChildren<ReplaceProps<As, Props<As> & P>>,
16
+ context?: any, // eslint-disable-line @typescript-eslint/no-explicit-any
17
+ ): ReactNode | null
18
+ propTypes?: any // eslint-disable-line @typescript-eslint/no-explicit-any
19
+ defaultProps?: Partial<P>
20
+ displayName?: string
21
+ }