@coreui/react 5.4.1 → 5.5.0

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 (656) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/cjs/_virtual/index.js +8 -2
  4. package/dist/cjs/_virtual/index.js.map +1 -1
  5. package/dist/cjs/_virtual/index2.js +6 -0
  6. package/dist/cjs/_virtual/index2.js.map +1 -0
  7. package/dist/cjs/components/accordion/CAccordion.js +2 -2
  8. package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
  9. package/dist/cjs/components/accordion/CAccordionBody.js +3 -3
  10. package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
  11. package/dist/cjs/components/accordion/CAccordionButton.js +3 -3
  12. package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
  13. package/dist/cjs/components/accordion/CAccordionHeader.js +1 -1
  14. package/dist/cjs/components/accordion/CAccordionHeader.js.map +1 -1
  15. package/dist/cjs/components/accordion/CAccordionItem.d.ts +5 -0
  16. package/dist/cjs/components/accordion/CAccordionItem.js +8 -5
  17. package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
  18. package/dist/cjs/components/alert/CAlert.js +2 -2
  19. package/dist/cjs/components/alert/CAlert.js.map +1 -1
  20. package/dist/cjs/components/alert/CAlertHeading.js +2 -2
  21. package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
  22. package/dist/cjs/components/alert/CAlertLink.js +1 -1
  23. package/dist/cjs/components/alert/CAlertLink.js.map +1 -1
  24. package/dist/cjs/components/avatar/CAvatar.js +1 -1
  25. package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
  26. package/dist/cjs/components/backdrop/CBackdrop.js +2 -2
  27. package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
  28. package/dist/cjs/components/badge/CBadge.js +7 -7
  29. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  30. package/dist/cjs/components/breadcrumb/CBreadcrumb.js +1 -1
  31. package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
  32. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js +1 -1
  33. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  34. package/dist/cjs/components/button/CButton.js +2 -2
  35. package/dist/cjs/components/button/CButton.js.map +1 -1
  36. package/dist/cjs/components/button-group/CButtonGroup.js +1 -1
  37. package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
  38. package/dist/cjs/components/button-group/CButtonToolbar.js +1 -1
  39. package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
  40. package/dist/cjs/components/callout/CCallout.js +1 -1
  41. package/dist/cjs/components/callout/CCallout.js.map +1 -1
  42. package/dist/cjs/components/card/CCard.js +1 -1
  43. package/dist/cjs/components/card/CCard.js.map +1 -1
  44. package/dist/cjs/components/card/CCardBody.js +1 -1
  45. package/dist/cjs/components/card/CCardBody.js.map +1 -1
  46. package/dist/cjs/components/card/CCardFooter.js +1 -1
  47. package/dist/cjs/components/card/CCardFooter.js.map +1 -1
  48. package/dist/cjs/components/card/CCardGroup.js +1 -1
  49. package/dist/cjs/components/card/CCardGroup.js.map +1 -1
  50. package/dist/cjs/components/card/CCardHeader.js +2 -2
  51. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  52. package/dist/cjs/components/card/CCardImage.js +2 -2
  53. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  54. package/dist/cjs/components/card/CCardImageOverlay.js +1 -1
  55. package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
  56. package/dist/cjs/components/card/CCardLink.js +1 -1
  57. package/dist/cjs/components/card/CCardLink.js.map +1 -1
  58. package/dist/cjs/components/card/CCardSubtitle.js +2 -2
  59. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  60. package/dist/cjs/components/card/CCardText.js +2 -2
  61. package/dist/cjs/components/card/CCardText.js.map +1 -1
  62. package/dist/cjs/components/card/CCardTitle.js +2 -2
  63. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  64. package/dist/cjs/components/carousel/CCarousel.js +2 -2
  65. package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
  66. package/dist/cjs/components/carousel/CCarouselCaption.js +1 -1
  67. package/dist/cjs/components/carousel/CCarouselCaption.js.map +1 -1
  68. package/dist/cjs/components/carousel/CCarouselItem.js +7 -7
  69. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  70. package/dist/cjs/components/close-button/CCloseButton.js +1 -1
  71. package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
  72. package/dist/cjs/components/collapse/CCollapse.js +1 -1
  73. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  74. package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
  75. package/dist/cjs/components/dropdown/CDropdown.d.ts +77 -20
  76. package/dist/cjs/components/dropdown/CDropdown.js +7 -4
  77. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  78. package/dist/cjs/components/dropdown/CDropdownDivider.js +1 -1
  79. package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
  80. package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
  81. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  82. package/dist/cjs/components/dropdown/CDropdownItem.js +2 -2
  83. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  84. package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
  85. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  86. package/dist/cjs/components/dropdown/CDropdownMenu.js +4 -4
  87. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  88. package/dist/cjs/components/dropdown/CDropdownToggle.js +3 -3
  89. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  90. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  91. package/dist/cjs/components/footer/CFooter.js +1 -1
  92. package/dist/cjs/components/footer/CFooter.js.map +1 -1
  93. package/dist/cjs/components/form/CForm.js +1 -1
  94. package/dist/cjs/components/form/CForm.js.map +1 -1
  95. package/dist/cjs/components/form/CFormCheck.js +2 -2
  96. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  97. package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
  98. package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
  99. package/dist/cjs/components/form/CFormFeedback.js +2 -2
  100. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  101. package/dist/cjs/components/form/CFormFloating.js +1 -1
  102. package/dist/cjs/components/form/CFormFloating.js.map +1 -1
  103. package/dist/cjs/components/form/CFormInput.js +2 -2
  104. package/dist/cjs/components/form/CFormInput.js.map +1 -1
  105. package/dist/cjs/components/form/CFormLabel.js +2 -2
  106. package/dist/cjs/components/form/CFormLabel.js.map +1 -1
  107. package/dist/cjs/components/form/CFormRange.js +1 -1
  108. package/dist/cjs/components/form/CFormRange.js.map +1 -1
  109. package/dist/cjs/components/form/CFormSelect.js +1 -1
  110. package/dist/cjs/components/form/CFormSelect.js.map +1 -1
  111. package/dist/cjs/components/form/CFormSwitch.js +2 -2
  112. package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
  113. package/dist/cjs/components/form/CFormText.js +2 -2
  114. package/dist/cjs/components/form/CFormText.js.map +1 -1
  115. package/dist/cjs/components/form/CFormTextarea.js +1 -1
  116. package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
  117. package/dist/cjs/components/form/CInputGroup.js +1 -1
  118. package/dist/cjs/components/form/CInputGroup.js.map +1 -1
  119. package/dist/cjs/components/form/CInputGroupText.js +2 -2
  120. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  121. package/dist/cjs/components/grid/CCol.js +1 -1
  122. package/dist/cjs/components/grid/CCol.js.map +1 -1
  123. package/dist/cjs/components/grid/CContainer.js +1 -1
  124. package/dist/cjs/components/grid/CContainer.js.map +1 -1
  125. package/dist/cjs/components/grid/CRow.js +1 -1
  126. package/dist/cjs/components/grid/CRow.js.map +1 -1
  127. package/dist/cjs/components/header/CHeader.js +1 -1
  128. package/dist/cjs/components/header/CHeader.js.map +1 -1
  129. package/dist/cjs/components/header/CHeaderBrand.js +2 -2
  130. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  131. package/dist/cjs/components/header/CHeaderDivider.js +1 -1
  132. package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
  133. package/dist/cjs/components/header/CHeaderNav.js +2 -2
  134. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  135. package/dist/cjs/components/header/CHeaderText.js +1 -1
  136. package/dist/cjs/components/header/CHeaderText.js.map +1 -1
  137. package/dist/cjs/components/header/CHeaderToggler.js +2 -2
  138. package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
  139. package/dist/cjs/components/image/CImage.js +1 -1
  140. package/dist/cjs/components/image/CImage.js.map +1 -1
  141. package/dist/cjs/components/link/CLink.js +2 -2
  142. package/dist/cjs/components/link/CLink.js.map +1 -1
  143. package/dist/cjs/components/list-group/CListGroup.js +2 -2
  144. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  145. package/dist/cjs/components/list-group/CListGroupItem.js +2 -2
  146. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  147. package/dist/cjs/components/modal/CModal.js +4 -5
  148. package/dist/cjs/components/modal/CModal.js.map +1 -1
  149. package/dist/cjs/components/modal/CModalBody.js +1 -1
  150. package/dist/cjs/components/modal/CModalBody.js.map +1 -1
  151. package/dist/cjs/components/modal/CModalContent.js +1 -1
  152. package/dist/cjs/components/modal/CModalContent.js.map +1 -1
  153. package/dist/cjs/components/modal/CModalDialog.js +1 -1
  154. package/dist/cjs/components/modal/CModalDialog.js.map +1 -1
  155. package/dist/cjs/components/modal/CModalFooter.js +1 -1
  156. package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
  157. package/dist/cjs/components/modal/CModalHeader.js +2 -2
  158. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  159. package/dist/cjs/components/modal/CModalTitle.js +2 -2
  160. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  161. package/dist/cjs/components/nav/CNav.js +2 -2
  162. package/dist/cjs/components/nav/CNav.js.map +1 -1
  163. package/dist/cjs/components/nav/CNavGroup.js +5 -5
  164. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  165. package/dist/cjs/components/nav/CNavGroupItems.js +2 -2
  166. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  167. package/dist/cjs/components/nav/CNavItem.js +2 -2
  168. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  169. package/dist/cjs/components/nav/CNavLink.js +2 -2
  170. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  171. package/dist/cjs/components/nav/CNavTitle.js +2 -2
  172. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  173. package/dist/cjs/components/navbar/CNavbar.js +2 -2
  174. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  175. package/dist/cjs/components/navbar/CNavbarBrand.js +2 -2
  176. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  177. package/dist/cjs/components/navbar/CNavbarNav.js +2 -2
  178. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  179. package/dist/cjs/components/navbar/CNavbarText.js +1 -1
  180. package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
  181. package/dist/cjs/components/navbar/CNavbarToggler.js +2 -2
  182. package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
  183. package/dist/cjs/components/offcanvas/COffcanvas.js +3 -3
  184. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  185. package/dist/cjs/components/offcanvas/COffcanvasBody.js +1 -1
  186. package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
  187. package/dist/cjs/components/offcanvas/COffcanvasHeader.js +1 -1
  188. package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
  189. package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
  190. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  191. package/dist/cjs/components/pagination/CPagination.js +1 -1
  192. package/dist/cjs/components/pagination/CPagination.js.map +1 -1
  193. package/dist/cjs/components/pagination/CPaginationItem.js +2 -2
  194. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  195. package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
  196. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  197. package/dist/cjs/components/popover/CPopover.d.ts +75 -20
  198. package/dist/cjs/components/popover/CPopover.js +9 -22
  199. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  200. package/dist/cjs/components/progress/CProgress.d.ts +1 -1
  201. package/dist/cjs/components/progress/CProgress.js +1 -1
  202. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  203. package/dist/cjs/components/progress/CProgressBar.js +2 -2
  204. package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
  205. package/dist/cjs/components/progress/CProgressStacked.js +1 -1
  206. package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
  207. package/dist/cjs/components/sidebar/CSidebar.d.ts +7 -2
  208. package/dist/cjs/components/sidebar/CSidebar.js +12 -11
  209. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  210. package/dist/cjs/components/sidebar/CSidebarBrand.js +2 -2
  211. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  212. package/dist/cjs/components/sidebar/CSidebarFooter.js +1 -1
  213. package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
  214. package/dist/cjs/components/sidebar/CSidebarHeader.js +1 -1
  215. package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
  216. package/dist/cjs/components/sidebar/CSidebarNav.js +2 -2
  217. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  218. package/dist/cjs/components/sidebar/CSidebarToggler.js +1 -1
  219. package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
  220. package/dist/cjs/components/spinner/CSpinner.js +2 -2
  221. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  222. package/dist/cjs/components/table/CTable.js +1 -1
  223. package/dist/cjs/components/table/CTable.js.map +1 -1
  224. package/dist/cjs/components/table/CTableBody.js +1 -1
  225. package/dist/cjs/components/table/CTableBody.js.map +1 -1
  226. package/dist/cjs/components/table/CTableCaption.js.map +1 -1
  227. package/dist/cjs/components/table/CTableDataCell.js +1 -1
  228. package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
  229. package/dist/cjs/components/table/CTableFoot.js +1 -1
  230. package/dist/cjs/components/table/CTableFoot.js.map +1 -1
  231. package/dist/cjs/components/table/CTableHead.js +1 -1
  232. package/dist/cjs/components/table/CTableHead.js.map +1 -1
  233. package/dist/cjs/components/table/CTableHeaderCell.js +1 -1
  234. package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
  235. package/dist/cjs/components/table/CTableResponsiveWrapper.js.map +1 -1
  236. package/dist/cjs/components/table/CTableRow.js +1 -1
  237. package/dist/cjs/components/table/CTableRow.js.map +1 -1
  238. package/dist/cjs/components/table/utils.js +1 -1
  239. package/dist/cjs/components/table/utils.js.map +1 -1
  240. package/dist/cjs/components/tabs/CTab.js +1 -1
  241. package/dist/cjs/components/tabs/CTab.js.map +1 -1
  242. package/dist/cjs/components/tabs/CTabContent.js +1 -1
  243. package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
  244. package/dist/cjs/components/tabs/CTabList.js +2 -2
  245. package/dist/cjs/components/tabs/CTabList.js.map +1 -1
  246. package/dist/cjs/components/tabs/CTabPane.js +2 -2
  247. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  248. package/dist/cjs/components/tabs/CTabPanel.js +2 -2
  249. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
  250. package/dist/cjs/components/tabs/CTabs.js +1 -1
  251. package/dist/cjs/components/tabs/CTabs.js.map +1 -1
  252. package/dist/cjs/components/toast/CToast.js +3 -3
  253. package/dist/cjs/components/toast/CToast.js.map +1 -1
  254. package/dist/cjs/components/toast/CToastBody.js +1 -1
  255. package/dist/cjs/components/toast/CToastBody.js.map +1 -1
  256. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  257. package/dist/cjs/components/toast/CToastHeader.js +1 -1
  258. package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
  259. package/dist/cjs/components/toast/CToaster.js +1 -1
  260. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  261. package/dist/cjs/components/tooltip/CTooltip.d.ts +67 -15
  262. package/dist/cjs/components/tooltip/CTooltip.js +9 -22
  263. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  264. package/dist/cjs/components/widgets/CWidgetStatsA.js +1 -1
  265. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  266. package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
  267. package/dist/cjs/components/widgets/CWidgetStatsC.js +1 -1
  268. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  269. package/dist/cjs/components/widgets/CWidgetStatsD.js +1 -1
  270. package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
  271. package/dist/cjs/components/widgets/CWidgetStatsE.js +1 -1
  272. package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
  273. package/dist/cjs/components/widgets/CWidgetStatsF.js +1 -1
  274. package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
  275. package/dist/cjs/hooks/index.d.ts +2 -1
  276. package/dist/cjs/hooks/useClipboard.d.ts +12 -0
  277. package/dist/cjs/hooks/useClipboard.js +54 -0
  278. package/dist/cjs/hooks/useClipboard.js.map +1 -0
  279. package/dist/cjs/hooks/useColorModes.js +1 -1
  280. package/dist/cjs/hooks/useColorModes.js.map +1 -1
  281. package/dist/cjs/hooks/useForkedRef.js.map +1 -1
  282. package/dist/cjs/hooks/usePopper.js.map +1 -1
  283. package/dist/cjs/index.js +2 -0
  284. package/dist/cjs/index.js.map +1 -1
  285. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js +6 -11
  286. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  287. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +2 -4
  288. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
  289. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +7 -10
  290. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  291. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +4 -6
  292. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  293. package/dist/cjs/node_modules/classnames/index.js +61 -60
  294. package/dist/cjs/node_modules/classnames/index.js.map +1 -1
  295. package/dist/cjs/node_modules/dom-helpers/esm/addClass.js.map +1 -1
  296. package/dist/cjs/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
  297. package/dist/cjs/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  298. package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js +9 -9
  299. package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  300. package/dist/cjs/node_modules/react-transition-group/esm/Transition.js +2 -2
  301. package/dist/cjs/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  302. package/dist/cjs/node_modules/react-transition-group/esm/config.js.map +1 -1
  303. package/dist/cjs/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
  304. package/dist/cjs/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
  305. package/dist/cjs/node_modules/tslib/tslib.es6.js +41 -1
  306. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  307. package/dist/cjs/props.js.map +1 -1
  308. package/dist/cjs/utils/executeAfterTransition.js +1 -1
  309. package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
  310. package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
  311. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  312. package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
  313. package/dist/cjs/utils/index.d.ts +2 -1
  314. package/dist/cjs/utils/isInViewport.js.map +1 -1
  315. package/dist/cjs/utils/isRTL.js.map +1 -1
  316. package/dist/cjs/utils/mergeClassNames.d.ts +2 -0
  317. package/dist/esm/_virtual/index.js +6 -2
  318. package/dist/esm/_virtual/index.js.map +1 -1
  319. package/dist/esm/_virtual/index2.js +4 -0
  320. package/dist/esm/_virtual/index2.js.map +1 -0
  321. package/dist/esm/components/accordion/CAccordion.js +2 -2
  322. package/dist/esm/components/accordion/CAccordion.js.map +1 -1
  323. package/dist/esm/components/accordion/CAccordionBody.js +3 -3
  324. package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
  325. package/dist/esm/components/accordion/CAccordionButton.js +3 -3
  326. package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
  327. package/dist/esm/components/accordion/CAccordionHeader.js +1 -1
  328. package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
  329. package/dist/esm/components/accordion/CAccordionItem.d.ts +5 -0
  330. package/dist/esm/components/accordion/CAccordionItem.js +9 -6
  331. package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
  332. package/dist/esm/components/alert/CAlert.js +2 -2
  333. package/dist/esm/components/alert/CAlert.js.map +1 -1
  334. package/dist/esm/components/alert/CAlertHeading.js +2 -2
  335. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  336. package/dist/esm/components/alert/CAlertLink.js +1 -1
  337. package/dist/esm/components/alert/CAlertLink.js.map +1 -1
  338. package/dist/esm/components/avatar/CAvatar.js +2 -2
  339. package/dist/esm/components/avatar/CAvatar.js.map +1 -1
  340. package/dist/esm/components/backdrop/CBackdrop.js +2 -2
  341. package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
  342. package/dist/esm/components/badge/CBadge.js +8 -8
  343. package/dist/esm/components/badge/CBadge.js.map +1 -1
  344. package/dist/esm/components/breadcrumb/CBreadcrumb.js +1 -1
  345. package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
  346. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js +1 -1
  347. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  348. package/dist/esm/components/button/CButton.js +2 -2
  349. package/dist/esm/components/button/CButton.js.map +1 -1
  350. package/dist/esm/components/button-group/CButtonGroup.js +1 -1
  351. package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
  352. package/dist/esm/components/button-group/CButtonToolbar.js +1 -1
  353. package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
  354. package/dist/esm/components/callout/CCallout.js +1 -1
  355. package/dist/esm/components/callout/CCallout.js.map +1 -1
  356. package/dist/esm/components/card/CCard.js +1 -1
  357. package/dist/esm/components/card/CCard.js.map +1 -1
  358. package/dist/esm/components/card/CCardBody.js +1 -1
  359. package/dist/esm/components/card/CCardBody.js.map +1 -1
  360. package/dist/esm/components/card/CCardFooter.js +1 -1
  361. package/dist/esm/components/card/CCardFooter.js.map +1 -1
  362. package/dist/esm/components/card/CCardGroup.js +1 -1
  363. package/dist/esm/components/card/CCardGroup.js.map +1 -1
  364. package/dist/esm/components/card/CCardHeader.js +2 -2
  365. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  366. package/dist/esm/components/card/CCardImage.js +2 -2
  367. package/dist/esm/components/card/CCardImage.js.map +1 -1
  368. package/dist/esm/components/card/CCardImageOverlay.js +1 -1
  369. package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
  370. package/dist/esm/components/card/CCardLink.js +1 -1
  371. package/dist/esm/components/card/CCardLink.js.map +1 -1
  372. package/dist/esm/components/card/CCardSubtitle.js +2 -2
  373. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  374. package/dist/esm/components/card/CCardText.js +2 -2
  375. package/dist/esm/components/card/CCardText.js.map +1 -1
  376. package/dist/esm/components/card/CCardTitle.js +2 -2
  377. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  378. package/dist/esm/components/carousel/CCarousel.js +2 -2
  379. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  380. package/dist/esm/components/carousel/CCarouselCaption.js +1 -1
  381. package/dist/esm/components/carousel/CCarouselCaption.js.map +1 -1
  382. package/dist/esm/components/carousel/CCarouselItem.js +7 -7
  383. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  384. package/dist/esm/components/close-button/CCloseButton.js +1 -1
  385. package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
  386. package/dist/esm/components/collapse/CCollapse.js +1 -1
  387. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  388. package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
  389. package/dist/esm/components/dropdown/CDropdown.d.ts +77 -20
  390. package/dist/esm/components/dropdown/CDropdown.js +7 -4
  391. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  392. package/dist/esm/components/dropdown/CDropdownDivider.js +1 -1
  393. package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
  394. package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
  395. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  396. package/dist/esm/components/dropdown/CDropdownItem.js +2 -2
  397. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  398. package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
  399. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  400. package/dist/esm/components/dropdown/CDropdownMenu.js +4 -4
  401. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  402. package/dist/esm/components/dropdown/CDropdownToggle.js +3 -3
  403. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  404. package/dist/esm/components/dropdown/utils.js.map +1 -1
  405. package/dist/esm/components/footer/CFooter.js +1 -1
  406. package/dist/esm/components/footer/CFooter.js.map +1 -1
  407. package/dist/esm/components/form/CForm.js +1 -1
  408. package/dist/esm/components/form/CForm.js.map +1 -1
  409. package/dist/esm/components/form/CFormCheck.js +2 -2
  410. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  411. package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
  412. package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
  413. package/dist/esm/components/form/CFormFeedback.js +2 -2
  414. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  415. package/dist/esm/components/form/CFormFloating.js +1 -1
  416. package/dist/esm/components/form/CFormFloating.js.map +1 -1
  417. package/dist/esm/components/form/CFormInput.js +2 -2
  418. package/dist/esm/components/form/CFormInput.js.map +1 -1
  419. package/dist/esm/components/form/CFormLabel.js +2 -2
  420. package/dist/esm/components/form/CFormLabel.js.map +1 -1
  421. package/dist/esm/components/form/CFormRange.js +1 -1
  422. package/dist/esm/components/form/CFormRange.js.map +1 -1
  423. package/dist/esm/components/form/CFormSelect.js +1 -1
  424. package/dist/esm/components/form/CFormSelect.js.map +1 -1
  425. package/dist/esm/components/form/CFormSwitch.js +2 -2
  426. package/dist/esm/components/form/CFormSwitch.js.map +1 -1
  427. package/dist/esm/components/form/CFormText.js +2 -2
  428. package/dist/esm/components/form/CFormText.js.map +1 -1
  429. package/dist/esm/components/form/CFormTextarea.js +1 -1
  430. package/dist/esm/components/form/CFormTextarea.js.map +1 -1
  431. package/dist/esm/components/form/CInputGroup.js +1 -1
  432. package/dist/esm/components/form/CInputGroup.js.map +1 -1
  433. package/dist/esm/components/form/CInputGroupText.js +2 -2
  434. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  435. package/dist/esm/components/grid/CCol.js +1 -1
  436. package/dist/esm/components/grid/CCol.js.map +1 -1
  437. package/dist/esm/components/grid/CContainer.js +1 -1
  438. package/dist/esm/components/grid/CContainer.js.map +1 -1
  439. package/dist/esm/components/grid/CRow.js +1 -1
  440. package/dist/esm/components/grid/CRow.js.map +1 -1
  441. package/dist/esm/components/header/CHeader.js +1 -1
  442. package/dist/esm/components/header/CHeader.js.map +1 -1
  443. package/dist/esm/components/header/CHeaderBrand.js +2 -2
  444. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  445. package/dist/esm/components/header/CHeaderDivider.js +1 -1
  446. package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
  447. package/dist/esm/components/header/CHeaderNav.js +2 -2
  448. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  449. package/dist/esm/components/header/CHeaderText.js +1 -1
  450. package/dist/esm/components/header/CHeaderText.js.map +1 -1
  451. package/dist/esm/components/header/CHeaderToggler.js +2 -2
  452. package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
  453. package/dist/esm/components/image/CImage.js +1 -1
  454. package/dist/esm/components/image/CImage.js.map +1 -1
  455. package/dist/esm/components/link/CLink.js +2 -2
  456. package/dist/esm/components/link/CLink.js.map +1 -1
  457. package/dist/esm/components/list-group/CListGroup.js +2 -2
  458. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  459. package/dist/esm/components/list-group/CListGroupItem.js +2 -2
  460. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  461. package/dist/esm/components/modal/CModal.js +4 -5
  462. package/dist/esm/components/modal/CModal.js.map +1 -1
  463. package/dist/esm/components/modal/CModalBody.js +1 -1
  464. package/dist/esm/components/modal/CModalBody.js.map +1 -1
  465. package/dist/esm/components/modal/CModalContent.js +1 -1
  466. package/dist/esm/components/modal/CModalContent.js.map +1 -1
  467. package/dist/esm/components/modal/CModalDialog.js +1 -1
  468. package/dist/esm/components/modal/CModalDialog.js.map +1 -1
  469. package/dist/esm/components/modal/CModalFooter.js +1 -1
  470. package/dist/esm/components/modal/CModalFooter.js.map +1 -1
  471. package/dist/esm/components/modal/CModalHeader.js +2 -2
  472. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  473. package/dist/esm/components/modal/CModalTitle.js +2 -2
  474. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  475. package/dist/esm/components/nav/CNav.js +2 -2
  476. package/dist/esm/components/nav/CNav.js.map +1 -1
  477. package/dist/esm/components/nav/CNavGroup.js +5 -5
  478. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  479. package/dist/esm/components/nav/CNavGroupItems.js +2 -2
  480. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  481. package/dist/esm/components/nav/CNavItem.js +2 -2
  482. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  483. package/dist/esm/components/nav/CNavLink.js +2 -2
  484. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  485. package/dist/esm/components/nav/CNavTitle.js +2 -2
  486. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  487. package/dist/esm/components/navbar/CNavbar.js +2 -2
  488. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  489. package/dist/esm/components/navbar/CNavbarBrand.js +2 -2
  490. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  491. package/dist/esm/components/navbar/CNavbarNav.js +2 -2
  492. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  493. package/dist/esm/components/navbar/CNavbarText.js +1 -1
  494. package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
  495. package/dist/esm/components/navbar/CNavbarToggler.js +2 -2
  496. package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
  497. package/dist/esm/components/offcanvas/COffcanvas.js +3 -3
  498. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  499. package/dist/esm/components/offcanvas/COffcanvasBody.js +1 -1
  500. package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
  501. package/dist/esm/components/offcanvas/COffcanvasHeader.js +1 -1
  502. package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
  503. package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
  504. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  505. package/dist/esm/components/pagination/CPagination.js +1 -1
  506. package/dist/esm/components/pagination/CPagination.js.map +1 -1
  507. package/dist/esm/components/pagination/CPaginationItem.js +2 -2
  508. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  509. package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
  510. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  511. package/dist/esm/components/popover/CPopover.d.ts +75 -20
  512. package/dist/esm/components/popover/CPopover.js +10 -23
  513. package/dist/esm/components/popover/CPopover.js.map +1 -1
  514. package/dist/esm/components/progress/CProgress.d.ts +1 -1
  515. package/dist/esm/components/progress/CProgress.js +1 -1
  516. package/dist/esm/components/progress/CProgress.js.map +1 -1
  517. package/dist/esm/components/progress/CProgressBar.js +2 -2
  518. package/dist/esm/components/progress/CProgressBar.js.map +1 -1
  519. package/dist/esm/components/progress/CProgressStacked.js +1 -1
  520. package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
  521. package/dist/esm/components/sidebar/CSidebar.d.ts +7 -2
  522. package/dist/esm/components/sidebar/CSidebar.js +12 -11
  523. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  524. package/dist/esm/components/sidebar/CSidebarBrand.js +2 -2
  525. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  526. package/dist/esm/components/sidebar/CSidebarFooter.js +1 -1
  527. package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
  528. package/dist/esm/components/sidebar/CSidebarHeader.js +1 -1
  529. package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
  530. package/dist/esm/components/sidebar/CSidebarNav.js +2 -2
  531. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  532. package/dist/esm/components/sidebar/CSidebarToggler.js +1 -1
  533. package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
  534. package/dist/esm/components/spinner/CSpinner.js +2 -2
  535. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  536. package/dist/esm/components/table/CTable.js +1 -1
  537. package/dist/esm/components/table/CTable.js.map +1 -1
  538. package/dist/esm/components/table/CTableBody.js +1 -1
  539. package/dist/esm/components/table/CTableBody.js.map +1 -1
  540. package/dist/esm/components/table/CTableCaption.js.map +1 -1
  541. package/dist/esm/components/table/CTableDataCell.js +1 -1
  542. package/dist/esm/components/table/CTableDataCell.js.map +1 -1
  543. package/dist/esm/components/table/CTableFoot.js +1 -1
  544. package/dist/esm/components/table/CTableFoot.js.map +1 -1
  545. package/dist/esm/components/table/CTableHead.js +1 -1
  546. package/dist/esm/components/table/CTableHead.js.map +1 -1
  547. package/dist/esm/components/table/CTableHeaderCell.js +1 -1
  548. package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
  549. package/dist/esm/components/table/CTableResponsiveWrapper.js.map +1 -1
  550. package/dist/esm/components/table/CTableRow.js +1 -1
  551. package/dist/esm/components/table/CTableRow.js.map +1 -1
  552. package/dist/esm/components/table/utils.js +1 -1
  553. package/dist/esm/components/table/utils.js.map +1 -1
  554. package/dist/esm/components/tabs/CTab.js +1 -1
  555. package/dist/esm/components/tabs/CTab.js.map +1 -1
  556. package/dist/esm/components/tabs/CTabContent.js +1 -1
  557. package/dist/esm/components/tabs/CTabContent.js.map +1 -1
  558. package/dist/esm/components/tabs/CTabList.js +2 -2
  559. package/dist/esm/components/tabs/CTabList.js.map +1 -1
  560. package/dist/esm/components/tabs/CTabPane.js +2 -2
  561. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  562. package/dist/esm/components/tabs/CTabPanel.js +2 -2
  563. package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
  564. package/dist/esm/components/tabs/CTabs.js +1 -1
  565. package/dist/esm/components/tabs/CTabs.js.map +1 -1
  566. package/dist/esm/components/toast/CToast.js +3 -3
  567. package/dist/esm/components/toast/CToast.js.map +1 -1
  568. package/dist/esm/components/toast/CToastBody.js +1 -1
  569. package/dist/esm/components/toast/CToastBody.js.map +1 -1
  570. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  571. package/dist/esm/components/toast/CToastHeader.js +1 -1
  572. package/dist/esm/components/toast/CToastHeader.js.map +1 -1
  573. package/dist/esm/components/toast/CToaster.js +1 -1
  574. package/dist/esm/components/toast/CToaster.js.map +1 -1
  575. package/dist/esm/components/tooltip/CTooltip.d.ts +67 -15
  576. package/dist/esm/components/tooltip/CTooltip.js +10 -23
  577. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  578. package/dist/esm/components/widgets/CWidgetStatsA.js +1 -1
  579. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  580. package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
  581. package/dist/esm/components/widgets/CWidgetStatsC.js +1 -1
  582. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  583. package/dist/esm/components/widgets/CWidgetStatsD.js +1 -1
  584. package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
  585. package/dist/esm/components/widgets/CWidgetStatsE.js +1 -1
  586. package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
  587. package/dist/esm/components/widgets/CWidgetStatsF.js +1 -1
  588. package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
  589. package/dist/esm/hooks/index.d.ts +2 -1
  590. package/dist/esm/hooks/useClipboard.d.ts +12 -0
  591. package/dist/esm/hooks/useClipboard.js +52 -0
  592. package/dist/esm/hooks/useClipboard.js.map +1 -0
  593. package/dist/esm/hooks/useColorModes.js +1 -1
  594. package/dist/esm/hooks/useColorModes.js.map +1 -1
  595. package/dist/esm/hooks/useForkedRef.js.map +1 -1
  596. package/dist/esm/hooks/usePopper.js.map +1 -1
  597. package/dist/esm/index.js +1 -0
  598. package/dist/esm/index.js.map +1 -1
  599. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js +6 -11
  600. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  601. package/dist/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +2 -4
  602. package/dist/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
  603. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +7 -10
  604. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  605. package/dist/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +4 -6
  606. package/dist/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  607. package/dist/esm/node_modules/classnames/index.js +61 -58
  608. package/dist/esm/node_modules/classnames/index.js.map +1 -1
  609. package/dist/esm/node_modules/dom-helpers/esm/addClass.js.map +1 -1
  610. package/dist/esm/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
  611. package/dist/esm/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  612. package/dist/esm/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  613. package/dist/esm/node_modules/react-transition-group/esm/Transition.js +2 -2
  614. package/dist/esm/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  615. package/dist/esm/node_modules/react-transition-group/esm/config.js.map +1 -1
  616. package/dist/esm/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
  617. package/dist/esm/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
  618. package/dist/esm/node_modules/tslib/tslib.es6.js +40 -2
  619. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  620. package/dist/esm/props.js.map +1 -1
  621. package/dist/esm/utils/executeAfterTransition.js +1 -1
  622. package/dist/esm/utils/executeAfterTransition.js.map +1 -1
  623. package/dist/esm/utils/getNextActiveElement.js.map +1 -1
  624. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  625. package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
  626. package/dist/esm/utils/index.d.ts +2 -1
  627. package/dist/esm/utils/isInViewport.js.map +1 -1
  628. package/dist/esm/utils/isRTL.js.map +1 -1
  629. package/dist/esm/utils/mergeClassNames.d.ts +2 -0
  630. package/package.json +14 -12
  631. package/src/components/accordion/CAccordionBody.tsx +3 -3
  632. package/src/components/accordion/CAccordionButton.tsx +3 -2
  633. package/src/components/accordion/CAccordionItem.tsx +14 -5
  634. package/src/components/accordion/__tests__/__snapshots__/CAccordionButton.spec.tsx.snap +0 -2
  635. package/src/components/accordion/__tests__/__snapshots__/CAccordionHeader.spec.tsx.snap +0 -2
  636. package/src/components/badge/CBadge.tsx +1 -1
  637. package/src/components/carousel/__tests__/CCarousel.spec.tsx +1 -2
  638. package/src/components/dropdown/CDropdown.tsx +106 -26
  639. package/src/components/dropdown/CDropdownMenu.tsx +0 -1
  640. package/src/components/dropdown/CDropdownToggle.tsx +1 -1
  641. package/src/components/dropdown/__tests__/CDropdown.spec.tsx +43 -19
  642. package/src/components/modal/CModal.tsx +0 -2
  643. package/src/components/modal/__tests__/CModal.spec.tsx +33 -25
  644. package/src/components/nav/CNavGroup.tsx +5 -1
  645. package/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.tsx.snap +4 -1
  646. package/src/components/popover/CPopover.tsx +103 -43
  647. package/src/components/popover/__tests__/CPopover.spec.tsx +1 -1
  648. package/src/components/popover/__tests__/__snapshots__/CPopover.spec.tsx.snap +2 -3
  649. package/src/components/progress/CProgress.tsx +1 -1
  650. package/src/components/sidebar/CSidebar.tsx +15 -5
  651. package/src/components/tooltip/CTooltip.tsx +94 -38
  652. package/src/components/tooltip/__tests__/__snapshots__/CTooltip.spec.tsx.snap +0 -1
  653. package/src/hooks/index.ts +2 -1
  654. package/src/hooks/useClipboard.ts +38 -0
  655. package/src/utils/index.ts +2 -0
  656. package/src/utils/mergeClassNames.ts +25 -0
@@ -9,6 +9,7 @@ import React, {
9
9
  } from 'react'
10
10
  import classNames from 'classnames'
11
11
  import PropTypes from 'prop-types'
12
+ import type { Options } from '@popperjs/core'
12
13
 
13
14
  import { CConditionalPortal } from '../conditional-portal'
14
15
  import { useForkedRef, usePopper } from '../../hooks'
@@ -18,65 +19,132 @@ import { executeAfterTransition, getRTLPlacement } from '../../utils'
18
19
 
19
20
  export interface CPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'content'> {
20
21
  /**
21
- * Apply a CSS fade transition to the popover.
22
+ * Adds a fade transition animation to the React Popover.
22
23
  *
23
24
  * @since 4.9.0
24
25
  */
25
26
  animation?: boolean
27
+
26
28
  /**
27
- * A string of all className you want applied to the component.
29
+ * Custom class name(s) for additional styling.
28
30
  */
29
31
  className?: string
32
+
30
33
  /**
31
- * Appends the react popover to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`.
34
+ * Defines the container element to which the React Popover is appended.
35
+ * Accepts:
36
+ * - A DOM element (`HTMLElement` or `DocumentFragment`)
37
+ * - A function that returns a single element
38
+ * - `null` (defaults to `document.body`)
39
+ *
40
+ * @example
41
+ * <CPopover container={document.getElementById('my-container')}>...</CPopover>
32
42
  *
43
+ * @default document.body
33
44
  * @since 4.11.0
34
45
  */
35
46
  container?: DocumentFragment | Element | (() => DocumentFragment | Element | null) | null
47
+
36
48
  /**
37
- * Content node for your component.
49
+ * Main content of the React Popover. It can be a string or any valid React node.
38
50
  */
39
51
  content: ReactNode | string
52
+
40
53
  /**
41
- * Offset of the popover relative to its target.
42
- */
43
- offset?: [number, number]
44
- /**
45
- * The delay for displaying and hiding the popover (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`.
54
+ * Delay (in milliseconds) before showing or hiding the React Popover.
55
+ * - If a number is provided, that delay applies to both "show" and "hide".
56
+ * - If an object is provided, use separate values for "show" and "hide".
57
+ *
58
+ * @example
59
+ * // Delays 300ms on both show and hide
60
+ * <CPopover delay={300}>...</CPopover>
61
+ *
62
+ * // Delays 500ms on show and 100ms on hide
63
+ * <CPopover delay={{ show: 500, hide: 100 }}>...</CPopover>
46
64
  *
47
65
  * @since 4.9.0
48
66
  */
49
67
  delay?: number | { show: number; hide: number }
68
+
50
69
  /**
51
- * Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference.
70
+ * Specifies the fallback placements when the preferred `placement` cannot be met.
52
71
  *
72
+ * @type 'top', 'right', 'bottom', 'left' | ('top', 'right', 'bottom', 'left')[]
53
73
  * @since 4.9.0
54
74
  */
55
75
  fallbackPlacements?: Placements | Placements[]
76
+
56
77
  /**
57
- * Callback fired when the component requests to be hidden.
78
+ * Offset of the React Popover relative to its toggle element, in the form `[x, y]`.
79
+ *
80
+ * @example
81
+ * // Offset the menu 0px in X and 10px in Y direction
82
+ * <CPopover offset={[0, 10]}>...</CPopover>
83
+ *
84
+ * // Offset the menu 5px in both X and Y direction
85
+ * <CPopover offset={[5, 5]}>...</CPopover>
86
+ */
87
+ offset?: [number, number]
88
+
89
+ /**
90
+ * Invoked when the React Popover is about to hide.
58
91
  */
59
92
  onHide?: () => void
93
+
60
94
  /**
61
- * Callback fired when the component requests to be shown.
95
+ * Invoked when the React Popover is about to show.
62
96
  */
63
97
  onShow?: () => void
98
+
64
99
  /**
65
- * Title node for your component.
100
+ * Placement of the React Popover. Popper.js may override this based on available space.
66
101
  */
67
- title?: ReactNode | string
102
+ placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left'
103
+
68
104
  /**
69
- * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
105
+ * Allows customization of the Popper.js configuration for the React Popover.
106
+ * Can be an object or a function returning a modified configuration.
107
+ * [Learn more](https://popper.js.org/docs/v2/constructors/#options)
108
+ *
109
+ * @example
110
+ * <CPopover
111
+ * popperConfig={(defaultConfig) => ({
112
+ * ...defaultConfig,
113
+ * strategy: 'fixed',
114
+ * modifiers: [
115
+ * ...defaultConfig.modifiers,
116
+ * { name: 'computeStyles', options: { adaptive: false } },
117
+ * ],
118
+ * })}
119
+ * >...</CPopover>
70
120
  *
71
- * @type 'hover' | 'focus' | 'click'
121
+ * @since 5.5.0
72
122
  */
73
- trigger?: Triggers | Triggers[]
123
+ popperConfig?: Partial<Options> | ((defaultPopperConfig: Partial<Options>) => Partial<Options>)
124
+
74
125
  /**
75
- * Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.
126
+ * Title for the React Popover header. Can be a string or any valid React node.
76
127
  */
77
- placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left'
128
+ title?: ReactNode | string
129
+
78
130
  /**
79
- * Toggle the visibility of popover component.
131
+ * Determines which events trigger the visibility of the React Popover. Can be a single trigger or an array of triggers.
132
+ *
133
+ * @example
134
+ * // Hover-only popover
135
+ * <CPopover trigger="hover">...</CPopover>
136
+ *
137
+ * // Hover + click combined
138
+ * <CPopover trigger={['hover', 'click']}>...</CPopover>
139
+ *
140
+ * @type 'hover' | 'focus' | 'click' | ('hover' | 'focus' | 'click')[]
141
+ */
142
+ trigger?: Triggers | Triggers[]
143
+
144
+ /**
145
+ * Controls the visibility of the React Popover.
146
+ * - `true` shows the popover.
147
+ * - `false` hides the popover.
80
148
  */
81
149
  visible?: boolean
82
150
  }
@@ -95,12 +163,13 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
95
163
  onHide,
96
164
  onShow,
97
165
  placement = 'top',
166
+ popperConfig,
98
167
  title,
99
168
  trigger = 'click',
100
169
  visible,
101
170
  ...rest
102
171
  },
103
- ref,
172
+ ref
104
173
  ) => {
105
174
  const popoverRef = useRef<HTMLDivElement>(null)
106
175
  const togglerRef = useRef(null)
@@ -114,30 +183,20 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
114
183
 
115
184
  const _delay = typeof delay === 'number' ? { show: delay, hide: delay } : delay
116
185
 
117
- const popperConfig = {
186
+ const defaultPopperConfig: Partial<Options> = {
118
187
  modifiers: [
119
- {
120
- name: 'arrow',
121
- options: {
122
- element: '.popover-arrow',
123
- },
124
- },
125
- {
126
- name: 'flip',
127
- options: {
128
- fallbackPlacements: fallbackPlacements,
129
- },
130
- },
131
- {
132
- name: 'offset',
133
- options: {
134
- offset: offset,
135
- },
136
- },
188
+ { name: 'arrow', options: { element: '.popover-arrow' } },
189
+ { name: 'flip', options: { fallbackPlacements } },
190
+ { name: 'offset', options: { offset } },
137
191
  ],
138
192
  placement: getRTLPlacement(placement, togglerRef.current),
139
193
  }
140
194
 
195
+ const computedPopperConfig: Partial<Options> = {
196
+ ...defaultPopperConfig,
197
+ ...(typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig),
198
+ }
199
+
141
200
  useEffect(() => {
142
201
  if (visible) {
143
202
  handleShow()
@@ -149,7 +208,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
149
208
 
150
209
  useEffect(() => {
151
210
  if (mounted && togglerRef.current && popoverRef.current) {
152
- initPopper(togglerRef.current, popoverRef.current, popperConfig)
211
+ initPopper(togglerRef.current, popoverRef.current, computedPopperConfig)
153
212
  setTimeout(() => {
154
213
  setVisible(true)
155
214
  }, _delay.show)
@@ -215,7 +274,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
215
274
  fade: animation,
216
275
  show: _visible,
217
276
  },
218
- className,
277
+ className
219
278
  )}
220
279
  id={id}
221
280
  ref={forkedRef}
@@ -230,7 +289,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
230
289
  </CConditionalPortal>
231
290
  </>
232
291
  )
233
- },
292
+ }
234
293
  )
235
294
 
236
295
  CPopover.propTypes = {
@@ -251,6 +310,7 @@ CPopover.propTypes = {
251
310
  onHide: PropTypes.func,
252
311
  onShow: PropTypes.func,
253
312
  placement: PropTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),
313
+ popperConfig: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
254
314
  title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
255
315
  trigger: triggerPropType,
256
316
  visible: PropTypes.bool,
@@ -31,7 +31,7 @@ test('CPopover customize', async () => {
31
31
  expect(container).toMatchSnapshot()
32
32
  let arrLength = container.getElementsByClassName('popover').length
33
33
  expect(arrLength).toBe(1)
34
- arrLength = container.getElementsByClassName('bs-popover-end').length
34
+ arrLength = container.getElementsByClassName('bs-popover-auto').length
35
35
  expect(arrLength).toBe(1)
36
36
  arrLength = container.getElementsByClassName('popover-arrow').length
37
37
  expect(arrLength).toBe(1)
@@ -3,15 +3,14 @@
3
3
  exports[`CPopover customize 1`] = `
4
4
  <body>
5
5
  <button
6
- aria-describedby="popover744956"
7
6
  class="btn btn-primary"
8
7
  type="button"
9
8
  >
10
9
  Test
11
10
  </button>
12
11
  <div
13
- class="popover bs-popover-auto fade show"
14
- id="popover744956"
12
+ class="popover bs-popover-auto fade"
13
+ id="popover:r1:"
15
14
  role="tooltip"
16
15
  style="position: absolute; left: 0px; top: 0px; margin: 0px;"
17
16
  >
@@ -17,7 +17,7 @@ export interface CProgressProps
17
17
  */
18
18
  height?: number
19
19
  /**
20
- * A string of all className you want applied to the <CProgressBar/> component.
20
+ * A string of all className you want applied to the `<CProgressBar/>` component.
21
21
  *
22
22
  * @since 4.9.0
23
23
  */
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, HTMLAttributes, useEffect, useRef, useState } from 'react'
1
+ import React, { ElementType, forwardRef, HTMLAttributes, useEffect, useRef, useState } from 'react'
2
2
  import { createPortal } from 'react-dom'
3
3
  import PropTypes from 'prop-types'
4
4
  import classNames from 'classnames'
@@ -7,8 +7,13 @@ import { CBackdrop } from '../backdrop'
7
7
 
8
8
  import { isInViewport } from '../../utils'
9
9
  import { useForkedRef } from '../../hooks'
10
+ import { PolymorphicRefForwardingComponent } from '../../helpers'
10
11
 
11
12
  export interface CSidebarProps extends HTMLAttributes<HTMLDivElement> {
13
+ /**
14
+ * Component used for the root node. Either a string to use a HTML element or a component.
15
+ */
16
+ as?: ElementType
12
17
  /**
13
18
  * A string of all className you want applied to the component.
14
19
  */
@@ -65,10 +70,14 @@ export interface CSidebarProps extends HTMLAttributes<HTMLDivElement> {
65
70
  const isOnMobile = (element: HTMLDivElement) =>
66
71
  Boolean(getComputedStyle(element).getPropertyValue('--cui-is-mobile'))
67
72
 
68
- export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
73
+ export const CSidebar: PolymorphicRefForwardingComponent<'div', CSidebarProps> = forwardRef<
74
+ HTMLDivElement,
75
+ CSidebarProps
76
+ >(
69
77
  (
70
78
  {
71
79
  children,
80
+ as: Component = 'div',
72
81
  className,
73
82
  colorScheme,
74
83
  narrow,
@@ -183,7 +192,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
183
192
 
184
193
  return (
185
194
  <>
186
- <div
195
+ <Component
187
196
  className={classNames(
188
197
  'sidebar',
189
198
  {
@@ -203,7 +212,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
203
212
  ref={forkedRef}
204
213
  >
205
214
  {children}
206
- </div>
215
+ </Component>
207
216
  {typeof window !== 'undefined' &&
208
217
  mobile &&
209
218
  createPortal(
@@ -216,6 +225,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
216
225
  )
217
226
 
218
227
  CSidebar.propTypes = {
228
+ as: PropTypes.elementType,
219
229
  children: PropTypes.node,
220
230
  className: PropTypes.string,
221
231
  colorScheme: PropTypes.oneOf(['dark', 'light']),
@@ -231,4 +241,4 @@ CSidebar.propTypes = {
231
241
  visible: PropTypes.bool,
232
242
  }
233
243
 
234
- CSidebar.displayName = 'CSidebar'
244
+ CSidebar.displayName = 'CSidebar'
@@ -9,6 +9,7 @@ import React, {
9
9
  } from 'react'
10
10
  import classNames from 'classnames'
11
11
  import PropTypes from 'prop-types'
12
+ import type { Options } from '@popperjs/core'
12
13
 
13
14
  import { CConditionalPortal } from '../conditional-portal'
14
15
  import { useForkedRef, usePopper } from '../../hooks'
@@ -18,61 +19,124 @@ import { executeAfterTransition, getRTLPlacement } from '../../utils'
18
19
 
19
20
  export interface CTooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'> {
20
21
  /**
21
- * Apply a CSS fade transition to the tooltip.
22
+ * Enables or disables the CSS fade transition for the React Tooltip.
22
23
  *
23
24
  * @since 4.9.0
24
25
  */
25
26
  animation?: boolean
27
+
26
28
  /**
27
- * A string of all className you want applied to the component.
29
+ * Adds a custom class name to the React Tooltip container. Useful for overriding default styles or applying additional design choices.
28
30
  */
29
31
  className?: string
32
+
30
33
  /**
31
- * Appends the react tooltip to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`.
34
+ * Appends the React Tooltip to a specific element instead of the default `document.body`. You may pass:
35
+ * - A DOM element (`HTMLElement` or `DocumentFragment`)
36
+ * - A function that returns a single element
37
+ * - `null`
32
38
  *
39
+ * @example
40
+ * <CTooltip container={document.getElementById('my-container')}>...</CTooltip>
41
+ *
42
+ * @default document.body
33
43
  * @since 4.11.0
34
44
  */
35
45
  container?: DocumentFragment | Element | (() => DocumentFragment | Element | null) | null
46
+
36
47
  /**
37
- * Content node for your component.
48
+ * Content to be displayed within the React Tooltip. Can be a string or any valid React node.
38
49
  */
39
50
  content: ReactNode | string
51
+
40
52
  /**
41
- * The delay for displaying and hiding the tooltip (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`.
53
+ * The delay (in milliseconds) before showing or hiding the React Tooltip.
54
+ * - If provided as a number, the delay is applied to both "show" and "hide".
55
+ * - If provided as an object, it should have distinct "show" and "hide" values.
56
+ *
57
+ * @example
58
+ * // Delays 300ms on both show and hide
59
+ * <CTooltip delay={300}>...</CTooltip>
60
+ *
61
+ * // Delays 500ms on show and 100ms on hide
62
+ * <CTooltip delay={{ show: 500, hide: 100 }}>...</CTooltip>
42
63
  *
43
64
  * @since 4.9.0
44
65
  */
45
66
  delay?: number | { show: number; hide: number }
67
+
46
68
  /**
47
- * Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference.
69
+ * Array of fallback placements for the React Tooltip to use when the preferred placement cannot be achieved. These placements are tried in order.
48
70
  *
71
+ * @type 'top', 'right', 'bottom', 'left' | ('top', 'right', 'bottom', 'left')[]
49
72
  * @since 4.9.0
50
73
  */
51
74
  fallbackPlacements?: Placements | Placements[]
75
+
52
76
  /**
53
- * Offset of the tooltip relative to its target.
77
+ * Adjusts the offset of the React Tooltip relative to its target. Expects a tuple `[x-axis, y-axis]`.
78
+ *
79
+ * @example
80
+ * // Offset the menu 0px in X and 10px in Y direction
81
+ * <CTooltip offset={[0, 10]}>...</CTooltip>
82
+ *
83
+ * // Offset the menu 5px in both X and Y direction
84
+ * <CTooltip offset={[5, 5]}>...</CTooltip>
54
85
  */
55
86
  offset?: [number, number]
87
+
56
88
  /**
57
- * Callback fired when the component requests to be hidden.
89
+ * Callback fired immediately after the React Tooltip is hidden.
58
90
  */
59
91
  onHide?: () => void
92
+
60
93
  /**
61
- * Callback fired when the component requests to be shown.
94
+ * Callback fired immediately after the React Tooltip is shown.
62
95
  */
63
96
  onShow?: () => void
97
+
64
98
  /**
65
- * Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them.
99
+ * Initial placement of the React Tooltip. Note that Popper.js modifiers may alter this placement automatically if there's insufficient space in the chosen position.
100
+ */
101
+ placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left'
102
+
103
+ /**
104
+ * Customize the Popper.js configuration used to position the React Tooltip. Pass either an object or a function returning a modified config. [Learn more](https://popper.js.org/docs/v2/constructors/#options)
105
+ *
106
+ * @example
107
+ * <CTooltip
108
+ * popperConfig={(defaultConfig) => ({
109
+ * ...defaultConfig,
110
+ * strategy: 'fixed',
111
+ * modifiers: [
112
+ * ...defaultConfig.modifiers,
113
+ * { name: 'computeStyles', options: { adaptive: false } },
114
+ * ],
115
+ * })}
116
+ * >...</CTooltip>
66
117
  *
67
- * @type 'hover' | 'focus' | 'click'
118
+ * @since 5.5.0
68
119
  */
69
- trigger?: Triggers | Triggers[]
120
+ popperConfig?: Partial<Options> | ((defaultPopperConfig: Partial<Options>) => Partial<Options>)
121
+
70
122
  /**
71
- * Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.
123
+ * Determines the events that toggle the visibility of the React Tooltip. Can be a single trigger or an array of triggers.
124
+ *
125
+ * @example
126
+ * // Hover-only tooltip
127
+ * <CTooltip trigger="hover">...</CTooltip>
128
+ *
129
+ * // Hover + click combined
130
+ * <CTooltip trigger={['hover', 'click']}>...</CTooltip>
131
+ *
132
+ * @type 'hover' | 'focus' | 'click' | ('hover' | 'focus' | 'click')[]
72
133
  */
73
- placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left'
134
+ trigger?: Triggers | Triggers[]
135
+
74
136
  /**
75
- * Toggle the visibility of tooltip component.
137
+ * Controls the visibility of the React Tooltip.
138
+ * - `true` to show the tooltip.
139
+ * - `false` to hide the tooltip.
76
140
  */
77
141
  visible?: boolean
78
142
  }
@@ -91,11 +155,12 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
91
155
  onHide,
92
156
  onShow,
93
157
  placement = 'top',
158
+ popperConfig,
94
159
  trigger = ['hover', 'focus'],
95
160
  visible,
96
161
  ...rest
97
162
  },
98
- ref,
163
+ ref
99
164
  ) => {
100
165
  const tooltipRef = useRef<HTMLDivElement>(null)
101
166
  const togglerRef = useRef(null)
@@ -109,30 +174,20 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
109
174
 
110
175
  const _delay = typeof delay === 'number' ? { show: delay, hide: delay } : delay
111
176
 
112
- const popperConfig = {
177
+ const defaultPopperConfig: Partial<Options> = {
113
178
  modifiers: [
114
- {
115
- name: 'arrow',
116
- options: {
117
- element: '.tooltip-arrow',
118
- },
119
- },
120
- {
121
- name: 'flip',
122
- options: {
123
- fallbackPlacements: fallbackPlacements,
124
- },
125
- },
126
- {
127
- name: 'offset',
128
- options: {
129
- offset: offset,
130
- },
131
- },
179
+ { name: 'arrow', options: { element: '.tooltip-arrow' } },
180
+ { name: 'flip', options: { fallbackPlacements } },
181
+ { name: 'offset', options: { offset } },
132
182
  ],
133
183
  placement: getRTLPlacement(placement, togglerRef.current),
134
184
  }
135
185
 
186
+ const computedPopperConfig: Partial<Options> = {
187
+ ...defaultPopperConfig,
188
+ ...(typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig),
189
+ }
190
+
136
191
  useEffect(() => {
137
192
  if (visible) {
138
193
  handleShow()
@@ -144,7 +199,7 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
144
199
 
145
200
  useEffect(() => {
146
201
  if (mounted && togglerRef.current && tooltipRef.current) {
147
- initPopper(togglerRef.current, tooltipRef.current, popperConfig)
202
+ initPopper(togglerRef.current, tooltipRef.current, computedPopperConfig)
148
203
  setTimeout(() => {
149
204
  setVisible(true)
150
205
  }, _delay.show)
@@ -214,7 +269,7 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
214
269
  fade: animation,
215
270
  show: _visible,
216
271
  },
217
- className,
272
+ className
218
273
  )}
219
274
  id={id}
220
275
  ref={forkedRef}
@@ -228,7 +283,7 @@ export const CTooltip = forwardRef<HTMLDivElement, CTooltipProps>(
228
283
  </CConditionalPortal>
229
284
  </>
230
285
  )
231
- },
286
+ }
232
287
  )
233
288
 
234
289
  CTooltip.propTypes = {
@@ -248,6 +303,7 @@ CTooltip.propTypes = {
248
303
  onHide: PropTypes.func,
249
304
  onShow: PropTypes.func,
250
305
  placement: PropTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),
306
+ popperConfig: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
251
307
  trigger: triggerPropType,
252
308
  visible: PropTypes.bool,
253
309
  }
@@ -3,7 +3,6 @@
3
3
  exports[`CTooltip customize 1`] = `
4
4
  <div>
5
5
  <a
6
- aria-describedby="tooltip97108"
7
6
  class="link"
8
7
  >
9
8
  Test
@@ -1,5 +1,6 @@
1
+ import { useClipboard } from './useClipboard'
1
2
  import { useColorModes } from './useColorModes'
2
3
  import { useForkedRef } from './useForkedRef'
3
4
  import { usePopper } from './usePopper'
4
5
 
5
- export { useColorModes, useForkedRef, usePopper }
6
+ export { useClipboard, useColorModes, useForkedRef, usePopper }
@@ -0,0 +1,38 @@
1
+ import { useState, useCallback } from 'react'
2
+
3
+ /**
4
+ * useClipboard Hook
5
+ *
6
+ * Provides functionality to copy text to the clipboard and track the copy status.
7
+ *
8
+ * @returns An object containing the copy function, copy status, and any error encountered.
9
+ */
10
+ export const useClipboard = () => {
11
+ const [isCopied, setIsCopied] = useState<boolean>(false)
12
+ const [error, setError] = useState<Error | null>(null)
13
+
14
+ /**
15
+ * Copies the provided text to the clipboard.
16
+ *
17
+ * @param text - The text to be copied to the clipboard.
18
+ */
19
+ const copy = useCallback(async (text: string) => {
20
+ if (!navigator?.clipboard) {
21
+ setError(new Error('Clipboard API is not available'))
22
+ return
23
+ }
24
+
25
+ try {
26
+ await navigator.clipboard.writeText(text)
27
+ setIsCopied(true)
28
+ setError(null)
29
+ // Reset the isCopied state after 2 seconds
30
+ setTimeout(() => setIsCopied(false), 2000)
31
+ } catch (_error) {
32
+ setError(_error as Error)
33
+ setIsCopied(false)
34
+ }
35
+ }, [])
36
+
37
+ return { copy, isCopied, error }
38
+ }
@@ -4,6 +4,7 @@ import getRTLPlacement from './getRTLPlacement'
4
4
  import getTransitionDurationFromElement from './getTransitionDurationFromElement'
5
5
  import isInViewport from './isInViewport'
6
6
  import isRTL from './isRTL'
7
+ import mergeClassNames from './mergeClassNames'
7
8
 
8
9
  export {
9
10
  executeAfterTransition,
@@ -12,4 +13,5 @@ export {
12
13
  getTransitionDurationFromElement,
13
14
  isInViewport,
14
15
  isRTL,
16
+ mergeClassNames,
15
17
  }