@coreui/react 5.6.0 → 5.7.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 (330) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
  3. package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
  4. package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
  5. package/dist/cjs/components/accordion/CAccordionHeader.js.map +1 -1
  6. package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
  7. package/dist/cjs/components/alert/CAlert.js.map +1 -1
  8. package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
  9. package/dist/cjs/components/alert/CAlertLink.js.map +1 -1
  10. package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
  11. package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
  12. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  13. package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
  14. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  15. package/dist/cjs/components/button/CButton.js +3 -2
  16. package/dist/cjs/components/button/CButton.js.map +1 -1
  17. package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
  18. package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
  19. package/dist/cjs/components/callout/CCallout.js.map +1 -1
  20. package/dist/cjs/components/card/CCard.js.map +1 -1
  21. package/dist/cjs/components/card/CCardBody.js.map +1 -1
  22. package/dist/cjs/components/card/CCardFooter.js.map +1 -1
  23. package/dist/cjs/components/card/CCardGroup.js.map +1 -1
  24. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  25. package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
  26. package/dist/cjs/components/card/CCardLink.js.map +1 -1
  27. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  28. package/dist/cjs/components/card/CCardText.js.map +1 -1
  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/CCarouselCaption.js.map +1 -1
  32. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  33. package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
  34. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  35. package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
  36. package/dist/cjs/components/dropdown/CDropdown.js +70 -56
  37. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  38. package/dist/cjs/components/dropdown/CDropdownContext.d.ts +3 -2
  39. package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
  40. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  41. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  42. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  43. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  44. package/dist/cjs/components/dropdown/CDropdownToggle.js +18 -16
  45. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  46. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  47. package/dist/cjs/components/footer/CFooter.js.map +1 -1
  48. package/dist/cjs/components/form/CForm.js.map +1 -1
  49. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  50. package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
  51. package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
  52. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  53. package/dist/cjs/components/form/CFormFloating.js.map +1 -1
  54. package/dist/cjs/components/form/CFormInput.js.map +1 -1
  55. package/dist/cjs/components/form/CFormLabel.js.map +1 -1
  56. package/dist/cjs/components/form/CFormRange.js.map +1 -1
  57. package/dist/cjs/components/form/CFormSelect.js.map +1 -1
  58. package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
  59. package/dist/cjs/components/form/CFormText.js.map +1 -1
  60. package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
  61. package/dist/cjs/components/form/CInputGroup.js.map +1 -1
  62. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  63. package/dist/cjs/components/grid/CCol.js.map +1 -1
  64. package/dist/cjs/components/grid/CContainer.js.map +1 -1
  65. package/dist/cjs/components/grid/CRow.js.map +1 -1
  66. package/dist/cjs/components/header/CHeader.js.map +1 -1
  67. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  68. package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
  69. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  70. package/dist/cjs/components/header/CHeaderText.js.map +1 -1
  71. package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
  72. package/dist/cjs/components/image/CImage.js.map +1 -1
  73. package/dist/cjs/components/link/CLink.js.map +1 -1
  74. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  75. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  76. package/dist/cjs/components/modal/CModal.js.map +1 -1
  77. package/dist/cjs/components/modal/CModalBody.js.map +1 -1
  78. package/dist/cjs/components/modal/CModalContent.js.map +1 -1
  79. package/dist/cjs/components/modal/CModalDialog.js.map +1 -1
  80. package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
  81. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  82. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  83. package/dist/cjs/components/nav/CNav.d.ts +1 -1
  84. package/dist/cjs/components/nav/CNav.js +9 -2
  85. package/dist/cjs/components/nav/CNav.js.map +1 -1
  86. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  87. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  88. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  89. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  90. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  91. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  92. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  93. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  94. package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
  95. package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
  96. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  97. package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
  98. package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
  99. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  100. package/dist/cjs/components/pagination/CPagination.js.map +1 -1
  101. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  102. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  103. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  104. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  105. package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
  106. package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
  107. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  108. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  109. package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
  110. package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
  111. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  112. package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
  113. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  114. package/dist/cjs/components/table/CTable.js.map +1 -1
  115. package/dist/cjs/components/table/CTableBody.js.map +1 -1
  116. package/dist/cjs/components/table/CTableCaption.js.map +1 -1
  117. package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
  118. package/dist/cjs/components/table/CTableFoot.js.map +1 -1
  119. package/dist/cjs/components/table/CTableHead.js.map +1 -1
  120. package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
  121. package/dist/cjs/components/table/CTableResponsiveWrapper.js.map +1 -1
  122. package/dist/cjs/components/table/CTableRow.js.map +1 -1
  123. package/dist/cjs/components/table/utils.js.map +1 -1
  124. package/dist/cjs/components/tabs/CTab.js.map +1 -1
  125. package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
  126. package/dist/cjs/components/tabs/CTabList.d.ts +1 -1
  127. package/dist/cjs/components/tabs/CTabList.js +9 -2
  128. package/dist/cjs/components/tabs/CTabList.js.map +1 -1
  129. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  130. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
  131. package/dist/cjs/components/tabs/CTabs.js.map +1 -1
  132. package/dist/cjs/components/toast/CToast.js.map +1 -1
  133. package/dist/cjs/components/toast/CToastBody.js.map +1 -1
  134. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  135. package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
  136. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  137. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  138. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  139. package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
  140. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  141. package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
  142. package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
  143. package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
  144. package/dist/cjs/hooks/useClipboard.js.map +1 -1
  145. package/dist/cjs/hooks/useColorModes.js.map +1 -1
  146. package/dist/cjs/hooks/useForkedRef.js.map +1 -1
  147. package/dist/cjs/hooks/usePopper.js.map +1 -1
  148. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  149. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  150. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  151. package/dist/cjs/node_modules/classnames/index.js.map +1 -1
  152. package/dist/cjs/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  153. package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  154. package/dist/cjs/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  155. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  156. package/dist/cjs/props.js.map +1 -1
  157. package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
  158. package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
  159. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  160. package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
  161. package/dist/cjs/utils/isInViewport.js.map +1 -1
  162. package/dist/cjs/utils/isRTL.js.map +1 -1
  163. package/dist/esm/components/accordion/CAccordion.js.map +1 -1
  164. package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
  165. package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
  166. package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
  167. package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
  168. package/dist/esm/components/alert/CAlert.js.map +1 -1
  169. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  170. package/dist/esm/components/alert/CAlertLink.js.map +1 -1
  171. package/dist/esm/components/avatar/CAvatar.js.map +1 -1
  172. package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
  173. package/dist/esm/components/badge/CBadge.js.map +1 -1
  174. package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
  175. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  176. package/dist/esm/components/button/CButton.js +3 -2
  177. package/dist/esm/components/button/CButton.js.map +1 -1
  178. package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
  179. package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
  180. package/dist/esm/components/callout/CCallout.js.map +1 -1
  181. package/dist/esm/components/card/CCard.js.map +1 -1
  182. package/dist/esm/components/card/CCardBody.js.map +1 -1
  183. package/dist/esm/components/card/CCardFooter.js.map +1 -1
  184. package/dist/esm/components/card/CCardGroup.js.map +1 -1
  185. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  186. package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
  187. package/dist/esm/components/card/CCardLink.js.map +1 -1
  188. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  189. package/dist/esm/components/card/CCardText.js.map +1 -1
  190. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  191. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  192. package/dist/esm/components/carousel/CCarouselCaption.js.map +1 -1
  193. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  194. package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
  195. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  196. package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
  197. package/dist/esm/components/dropdown/CDropdown.js +71 -57
  198. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  199. package/dist/esm/components/dropdown/CDropdownContext.d.ts +3 -2
  200. package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
  201. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  202. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  203. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  204. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  205. package/dist/esm/components/dropdown/CDropdownToggle.js +18 -16
  206. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  207. package/dist/esm/components/dropdown/utils.js.map +1 -1
  208. package/dist/esm/components/footer/CFooter.js.map +1 -1
  209. package/dist/esm/components/form/CForm.js.map +1 -1
  210. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  211. package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
  212. package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
  213. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  214. package/dist/esm/components/form/CFormFloating.js.map +1 -1
  215. package/dist/esm/components/form/CFormInput.js.map +1 -1
  216. package/dist/esm/components/form/CFormLabel.js.map +1 -1
  217. package/dist/esm/components/form/CFormRange.js.map +1 -1
  218. package/dist/esm/components/form/CFormSelect.js.map +1 -1
  219. package/dist/esm/components/form/CFormSwitch.js.map +1 -1
  220. package/dist/esm/components/form/CFormText.js.map +1 -1
  221. package/dist/esm/components/form/CFormTextarea.js.map +1 -1
  222. package/dist/esm/components/form/CInputGroup.js.map +1 -1
  223. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  224. package/dist/esm/components/grid/CCol.js.map +1 -1
  225. package/dist/esm/components/grid/CContainer.js.map +1 -1
  226. package/dist/esm/components/grid/CRow.js.map +1 -1
  227. package/dist/esm/components/header/CHeader.js.map +1 -1
  228. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  229. package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
  230. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  231. package/dist/esm/components/header/CHeaderText.js.map +1 -1
  232. package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
  233. package/dist/esm/components/image/CImage.js.map +1 -1
  234. package/dist/esm/components/link/CLink.js.map +1 -1
  235. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  236. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  237. package/dist/esm/components/modal/CModal.js.map +1 -1
  238. package/dist/esm/components/modal/CModalBody.js.map +1 -1
  239. package/dist/esm/components/modal/CModalContent.js.map +1 -1
  240. package/dist/esm/components/modal/CModalDialog.js.map +1 -1
  241. package/dist/esm/components/modal/CModalFooter.js.map +1 -1
  242. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  243. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  244. package/dist/esm/components/nav/CNav.d.ts +1 -1
  245. package/dist/esm/components/nav/CNav.js +9 -2
  246. package/dist/esm/components/nav/CNav.js.map +1 -1
  247. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  248. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  249. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  250. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  251. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  252. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  253. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  254. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  255. package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
  256. package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
  257. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  258. package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
  259. package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
  260. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  261. package/dist/esm/components/pagination/CPagination.js.map +1 -1
  262. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  263. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  264. package/dist/esm/components/popover/CPopover.js.map +1 -1
  265. package/dist/esm/components/progress/CProgress.js.map +1 -1
  266. package/dist/esm/components/progress/CProgressBar.js.map +1 -1
  267. package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
  268. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  269. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  270. package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
  271. package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
  272. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  273. package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
  274. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  275. package/dist/esm/components/table/CTable.js.map +1 -1
  276. package/dist/esm/components/table/CTableBody.js.map +1 -1
  277. package/dist/esm/components/table/CTableCaption.js.map +1 -1
  278. package/dist/esm/components/table/CTableDataCell.js.map +1 -1
  279. package/dist/esm/components/table/CTableFoot.js.map +1 -1
  280. package/dist/esm/components/table/CTableHead.js.map +1 -1
  281. package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
  282. package/dist/esm/components/table/CTableResponsiveWrapper.js.map +1 -1
  283. package/dist/esm/components/table/CTableRow.js.map +1 -1
  284. package/dist/esm/components/table/utils.js.map +1 -1
  285. package/dist/esm/components/tabs/CTab.js.map +1 -1
  286. package/dist/esm/components/tabs/CTabContent.js.map +1 -1
  287. package/dist/esm/components/tabs/CTabList.d.ts +1 -1
  288. package/dist/esm/components/tabs/CTabList.js +9 -2
  289. package/dist/esm/components/tabs/CTabList.js.map +1 -1
  290. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  291. package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
  292. package/dist/esm/components/tabs/CTabs.js.map +1 -1
  293. package/dist/esm/components/toast/CToast.js.map +1 -1
  294. package/dist/esm/components/toast/CToastBody.js.map +1 -1
  295. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  296. package/dist/esm/components/toast/CToastHeader.js.map +1 -1
  297. package/dist/esm/components/toast/CToaster.js.map +1 -1
  298. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  299. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  300. package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
  301. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  302. package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
  303. package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
  304. package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
  305. package/dist/esm/hooks/useClipboard.js.map +1 -1
  306. package/dist/esm/hooks/useColorModes.js.map +1 -1
  307. package/dist/esm/hooks/useForkedRef.js.map +1 -1
  308. package/dist/esm/hooks/usePopper.js.map +1 -1
  309. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  310. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  311. package/dist/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  312. package/dist/esm/node_modules/classnames/index.js.map +1 -1
  313. package/dist/esm/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  314. package/dist/esm/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  315. package/dist/esm/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  316. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  317. package/dist/esm/props.js.map +1 -1
  318. package/dist/esm/utils/executeAfterTransition.js.map +1 -1
  319. package/dist/esm/utils/getNextActiveElement.js.map +1 -1
  320. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  321. package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
  322. package/dist/esm/utils/isInViewport.js.map +1 -1
  323. package/dist/esm/utils/isRTL.js.map +1 -1
  324. package/package.json +9 -9
  325. package/src/components/button/CButton.tsx +6 -5
  326. package/src/components/dropdown/CDropdown.tsx +86 -60
  327. package/src/components/dropdown/CDropdownContext.ts +3 -3
  328. package/src/components/dropdown/CDropdownToggle.tsx +30 -28
  329. package/src/components/nav/CNav.tsx +11 -3
  330. package/src/components/tabs/CTabList.tsx +14 -6
@@ -1,4 +1,13 @@
1
- import React, { ElementType, forwardRef, HTMLAttributes, useEffect, useRef, useState } from 'react'
1
+ import React, {
2
+ ElementType,
3
+ forwardRef,
4
+ HTMLAttributes,
5
+ useCallback,
6
+ useEffect,
7
+ useMemo,
8
+ useRef,
9
+ useState,
10
+ } from 'react'
2
11
  import PropTypes from 'prop-types'
3
12
  import classNames from 'classnames'
4
13
  import type { Options } from '@popperjs/core'
@@ -190,59 +199,64 @@ export const CDropdown: PolymorphicRefForwardingComponent<'div', CDropdownProps>
190
199
  ref
191
200
  ) => {
192
201
  const dropdownRef = useRef<HTMLDivElement>(null)
193
- const dropdownToggleRef = useRef<HTMLElement>(null)
194
202
  const dropdownMenuRef = useRef<HTMLDivElement | HTMLUListElement>(null)
195
203
  const forkedRef = useForkedRef(ref, dropdownRef)
204
+ const [dropdownToggleElement, setDropdownToggleElement] = useState<HTMLElement | null>(null)
196
205
  const [_visible, setVisible] = useState(visible)
197
206
  const { initPopper, destroyPopper } = usePopper()
198
207
 
199
- const Component = variant === 'nav-item' ? 'li' : as
200
-
201
- // Disable popper if responsive aligment is set.
202
- if (typeof alignment === 'object') {
203
- popper = false
204
- }
208
+ const dropdownToggleRef = useCallback((node: HTMLElement | null) => {
209
+ if (node) {
210
+ setDropdownToggleElement(node)
211
+ }
212
+ }, [])
205
213
 
206
- const contextValues = {
207
- alignment,
208
- container,
209
- dark,
210
- dropdownToggleRef,
211
- dropdownMenuRef,
212
- popper,
213
- portal,
214
- variant,
215
- visible: _visible,
216
- setVisible,
217
- }
214
+ const allowPopperUse = popper && typeof alignment !== 'object'
215
+ const Component = variant === 'nav-item' ? 'li' : as
218
216
 
219
- const defaultPopperConfig = {
220
- modifiers: [
221
- {
222
- name: 'offset',
223
- options: {
224
- offset: offset,
217
+ const computedPopperConfig: Partial<Options> = useMemo(() => {
218
+ const defaultPopperConfig = {
219
+ modifiers: [
220
+ {
221
+ name: 'offset',
222
+ options: {
223
+ offset,
224
+ },
225
225
  },
226
- },
227
- ],
228
- placement: getPlacement(placement, direction, alignment, isRTL(dropdownMenuRef.current)),
229
- }
226
+ ],
227
+ placement: getPlacement(placement, direction, alignment, isRTL(dropdownMenuRef.current)),
228
+ }
230
229
 
231
- const computedPopperConfig: Partial<Options> = {
232
- ...defaultPopperConfig,
233
- ...(typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig),
234
- }
230
+ return {
231
+ ...defaultPopperConfig,
232
+ ...(typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig),
233
+ }
234
+ }, [offset, placement, direction, alignment, popperConfig])
235
235
 
236
236
  useEffect(() => {
237
- setVisible(visible)
237
+ if (visible) {
238
+ handleShow()
239
+ } else {
240
+ handleHide()
241
+ }
238
242
  }, [visible])
239
243
 
240
244
  useEffect(() => {
241
- const toggleElement = dropdownToggleRef.current
245
+ const toggleElement = dropdownToggleElement
246
+ const menuElement = dropdownMenuRef.current
247
+ if (allowPopperUse && menuElement && toggleElement && _visible) {
248
+ initPopper(toggleElement, menuElement, computedPopperConfig)
249
+ }
250
+ }, [dropdownToggleElement])
251
+
252
+ const handleShow = () => {
253
+ const toggleElement = dropdownToggleElement
242
254
  const menuElement = dropdownMenuRef.current
243
255
 
244
- if (_visible && toggleElement && menuElement) {
245
- if (popper) {
256
+ if (toggleElement && menuElement) {
257
+ setVisible(true)
258
+
259
+ if (allowPopperUse) {
246
260
  initPopper(toggleElement, menuElement, computedPopperConfig)
247
261
  }
248
262
 
@@ -255,28 +269,26 @@ export const CDropdown: PolymorphicRefForwardingComponent<'div', CDropdownProps>
255
269
 
256
270
  onShow?.()
257
271
  }
272
+ }
258
273
 
259
- return () => {
260
- if (popper) {
261
- destroyPopper()
262
- }
263
-
264
- toggleElement?.removeEventListener('keydown', handleKeydown)
265
- menuElement?.removeEventListener('keydown', handleKeydown)
274
+ const handleHide = () => {
275
+ setVisible(false)
266
276
 
267
- window.removeEventListener('mouseup', handleMouseUp)
268
- window.removeEventListener('keyup', handleKeyup)
277
+ const toggleElement = dropdownToggleElement
278
+ const menuElement = dropdownMenuRef.current
269
279
 
270
- onHide?.()
280
+ if (allowPopperUse) {
281
+ destroyPopper()
271
282
  }
272
- }, [
273
- computedPopperConfig,
274
- destroyPopper,
275
- dropdownMenuRef,
276
- dropdownToggleRef,
277
- initPopper,
278
- _visible,
279
- ])
283
+
284
+ toggleElement?.removeEventListener('keydown', handleKeydown)
285
+ menuElement?.removeEventListener('keydown', handleKeydown)
286
+
287
+ window.removeEventListener('mouseup', handleMouseUp)
288
+ window.removeEventListener('keyup', handleKeyup)
289
+
290
+ onHide?.()
291
+ }
280
292
 
281
293
  const handleKeydown = (event: KeyboardEvent) => {
282
294
  if (
@@ -299,16 +311,16 @@ export const CDropdown: PolymorphicRefForwardingComponent<'div', CDropdownProps>
299
311
  }
300
312
 
301
313
  if (event.key === 'Escape') {
302
- setVisible(false)
314
+ handleHide()
303
315
  }
304
316
  }
305
317
 
306
318
  const handleMouseUp = (event: Event) => {
307
- if (!dropdownToggleRef.current || !dropdownMenuRef.current) {
319
+ if (!dropdownToggleElement || !dropdownMenuRef.current) {
308
320
  return
309
321
  }
310
322
 
311
- if (dropdownToggleRef.current.contains(event.target as HTMLElement)) {
323
+ if (dropdownToggleElement.contains(event.target as HTMLElement)) {
312
324
  return
313
325
  }
314
326
 
@@ -317,11 +329,25 @@ export const CDropdown: PolymorphicRefForwardingComponent<'div', CDropdownProps>
317
329
  (autoClose === 'inside' && dropdownMenuRef.current.contains(event.target as HTMLElement)) ||
318
330
  (autoClose === 'outside' && !dropdownMenuRef.current.contains(event.target as HTMLElement))
319
331
  ) {
320
- setTimeout(() => setVisible(false), 1)
332
+ setTimeout(() => handleHide(), 1)
321
333
  return
322
334
  }
323
335
  }
324
336
 
337
+ const contextValues = {
338
+ alignment,
339
+ container,
340
+ dark,
341
+ dropdownMenuRef,
342
+ dropdownToggleRef,
343
+ handleHide,
344
+ handleShow,
345
+ popper: allowPopperUse,
346
+ portal,
347
+ variant,
348
+ visible: _visible,
349
+ }
350
+
325
351
  return (
326
352
  <CDropdownContext.Provider value={contextValues}>
327
353
  {variant === 'input-group' ? (
@@ -5,10 +5,10 @@ export interface CDropdownContextProps {
5
5
  alignment?: Alignments
6
6
  container?: DocumentFragment | Element | (() => DocumentFragment | Element | null) | null
7
7
  dark?: boolean
8
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- dropdownToggleRef: RefObject<any | null>
10
8
  dropdownMenuRef: RefObject<HTMLDivElement | HTMLUListElement | null>
11
- setVisible: React.Dispatch<React.SetStateAction<boolean | undefined>>
9
+ dropdownToggleRef: (node: HTMLElement | null) => void
10
+ handleHide?: () => void
11
+ handleShow?: () => void
12
12
  popper?: boolean
13
13
  portal?: boolean
14
14
  variant?: 'btn-group' | 'dropdown' | 'input-group' | 'nav-item'
@@ -45,18 +45,24 @@ export const CDropdownToggle: FC<CDropdownToggleProps> = ({
45
45
  trigger = 'click',
46
46
  ...rest
47
47
  }) => {
48
- const { dropdownToggleRef, variant, visible, setVisible } = useContext(CDropdownContext)
48
+ const { dropdownToggleRef, handleHide, handleShow, variant, visible } =
49
+ useContext(CDropdownContext)
49
50
 
50
51
  const triggers = {
51
52
  ...((trigger === 'click' || trigger.includes('click')) && {
52
53
  onClick: (event: React.MouseEvent<HTMLElement>) => {
53
54
  event.preventDefault()
54
- setVisible(!visible)
55
+
56
+ if (visible) {
57
+ handleHide?.()
58
+ } else {
59
+ handleShow?.()
60
+ }
55
61
  },
56
62
  }),
57
63
  ...((trigger === 'focus' || trigger.includes('focus')) && {
58
- onFocus: () => setVisible(true),
59
- onBlur: () => setVisible(false),
64
+ onFocus: () => handleShow?.(),
65
+ onBlur: () => handleHide?.(),
60
66
  }),
61
67
  }
62
68
 
@@ -74,36 +80,32 @@ export const CDropdownToggle: FC<CDropdownToggleProps> = ({
74
80
  ...(!rest.disabled && { ...triggers }),
75
81
  }
76
82
 
77
- const Toggler = () => {
78
- if (custom && React.isValidElement(children)) {
79
- return (
80
- <>
81
- {React.cloneElement(children as React.ReactElement<any>, {
82
- 'aria-expanded': visible,
83
- ...(!rest.disabled && { ...triggers }),
84
- ref: dropdownToggleRef,
85
- })}
86
- </>
87
- )
88
- }
89
-
90
- if (variant === 'nav-item' && navLink) {
91
- return (
92
- <a href="#" {...togglerProps} role="button" {...rest} ref={dropdownToggleRef}>
93
- {children}
94
- </a>
95
- )
96
- }
83
+ if (custom && React.isValidElement(children)) {
84
+ return (
85
+ <>
86
+ {React.cloneElement(children as React.ReactElement<any>, {
87
+ 'aria-expanded': visible,
88
+ ...(!rest.disabled && { ...triggers }),
89
+ ref: dropdownToggleRef,
90
+ })}
91
+ </>
92
+ )
93
+ }
97
94
 
95
+ if (variant === 'nav-item' && navLink) {
98
96
  return (
99
- <CButton {...togglerProps} tabIndex={0} {...rest} ref={dropdownToggleRef}>
97
+ <a href="#" {...togglerProps} role="button" {...rest} ref={dropdownToggleRef}>
100
98
  {children}
101
- {split && <span className="visually-hidden">Toggle Dropdown</span>}
102
- </CButton>
99
+ </a>
103
100
  )
104
101
  }
105
102
 
106
- return <Toggler />
103
+ return (
104
+ <CButton {...togglerProps} tabIndex={0} {...rest} ref={dropdownToggleRef}>
105
+ {children}
106
+ {split && <span className="visually-hidden">Toggle Dropdown</span>}
107
+ </CButton>
108
+ )
107
109
  }
108
110
 
109
111
  CDropdownToggle.propTypes = {
@@ -21,7 +21,7 @@ export interface CNavProps
21
21
  /**
22
22
  * Set the nav variant to tabs or pills.
23
23
  */
24
- variant?: 'pills' | 'tabs' | 'underline' | 'underline-border'
24
+ variant?: 'enclosed' | 'enclosed-pills' | 'pills' | 'tabs' | 'underline' | 'underline-border'
25
25
  }
26
26
 
27
27
  export const CNav: PolymorphicRefForwardingComponent<'ul', CNavProps> = forwardRef<
@@ -32,11 +32,12 @@ export const CNav: PolymorphicRefForwardingComponent<'ul', CNavProps> = forwardR
32
32
  <Component
33
33
  className={classNames(
34
34
  'nav',
35
+ variant === 'enclosed-pills' && 'nav-enclosed', // Enclosed pills variant required for `.nav-enclosed` class
35
36
  {
36
37
  [`nav-${layout}`]: layout,
37
38
  [`nav-${variant}`]: variant,
38
39
  },
39
- className,
40
+ className
40
41
  )}
41
42
  role="navigation"
42
43
  {...rest}
@@ -52,7 +53,14 @@ CNav.propTypes = {
52
53
  children: PropTypes.node,
53
54
  className: PropTypes.string,
54
55
  layout: PropTypes.oneOf(['fill', 'justified']),
55
- variant: PropTypes.oneOf(['pills', 'tabs', 'underline', 'underline-border']),
56
+ variant: PropTypes.oneOf([
57
+ 'enclosed',
58
+ 'enclosed-pills',
59
+ 'pills',
60
+ 'tabs',
61
+ 'underline',
62
+ 'underline-border',
63
+ ]),
56
64
  }
57
65
 
58
66
  CNav.displayName = 'CNav'
@@ -17,7 +17,7 @@ export interface CTabListProps extends HTMLAttributes<HTMLDivElement> {
17
17
  /**
18
18
  * Set the nav variant to tabs or pills.
19
19
  */
20
- variant?: 'pills' | 'tabs' | 'underline' | 'underline-border'
20
+ variant?: 'enclosed' | 'enclosed-pills' | 'pills' | 'tabs' | 'underline' | 'underline-border'
21
21
  }
22
22
 
23
23
  export const CTabList = forwardRef<HTMLDivElement, CTabListProps>(
@@ -39,7 +39,7 @@ export const CTabList = forwardRef<HTMLDivElement, CTabListProps>(
39
39
  const target = event.target as HTMLElement
40
40
  // eslint-disable-next-line unicorn/prefer-spread
41
41
  const items: HTMLElement[] = Array.from(
42
- tabListRef.current.querySelectorAll('.nav-link:not(.disabled):not(:disabled)'),
42
+ tabListRef.current.querySelectorAll('.nav-link:not(.disabled):not(:disabled)')
43
43
  )
44
44
 
45
45
  let nextActiveElement
@@ -51,7 +51,7 @@ export const CTabList = forwardRef<HTMLDivElement, CTabListProps>(
51
51
  items,
52
52
  target,
53
53
  event.key === 'ArrowDown' || event.key === 'ArrowRight',
54
- true,
54
+ true
55
55
  )
56
56
  }
57
57
 
@@ -65,11 +65,12 @@ export const CTabList = forwardRef<HTMLDivElement, CTabListProps>(
65
65
  <div
66
66
  className={classNames(
67
67
  'nav',
68
+ variant === 'enclosed-pills' && 'nav-enclosed', // Enclosed pills variant required for `.nav-enclosed` class
68
69
  {
69
70
  [`nav-${layout}`]: layout,
70
71
  [`nav-${variant}`]: variant,
71
72
  },
72
- className,
73
+ className
73
74
  )}
74
75
  role="tablist"
75
76
  onKeyDown={handleKeydown}
@@ -79,14 +80,21 @@ export const CTabList = forwardRef<HTMLDivElement, CTabListProps>(
79
80
  {children}
80
81
  </div>
81
82
  )
82
- },
83
+ }
83
84
  )
84
85
 
85
86
  CTabList.propTypes = {
86
87
  children: PropTypes.node,
87
88
  className: PropTypes.string,
88
89
  layout: PropTypes.oneOf(['fill', 'justified']),
89
- variant: PropTypes.oneOf(['pills', 'tabs', 'underline', 'underline-border']),
90
+ variant: PropTypes.oneOf([
91
+ 'enclosed',
92
+ 'enclosed-pills',
93
+ 'pills',
94
+ 'tabs',
95
+ 'underline',
96
+ 'underline-border',
97
+ ]),
90
98
  }
91
99
 
92
100
  CTabList.displayName = 'CTabList'