@coreui/react-pro 5.1.0 → 5.3.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 (437) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/components/accordion/CAccordion.js +1 -1
  3. package/dist/cjs/components/accordion/CAccordionBody.js +1 -1
  4. package/dist/cjs/components/accordion/CAccordionButton.js +1 -1
  5. package/dist/cjs/components/accordion/CAccordionHeader.js +1 -1
  6. package/dist/cjs/components/accordion/CAccordionItem.js +1 -1
  7. package/dist/cjs/components/alert/CAlert.js +1 -1
  8. package/dist/cjs/components/alert/CAlertHeading.js +1 -1
  9. package/dist/cjs/components/alert/CAlertLink.js +1 -1
  10. package/dist/cjs/components/avatar/CAvatar.js +1 -1
  11. package/dist/cjs/components/backdrop/CBackdrop.js +1 -1
  12. package/dist/cjs/components/badge/CBadge.js +1 -1
  13. package/dist/cjs/components/breadcrumb/CBreadcrumb.js +1 -1
  14. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js +1 -1
  15. package/dist/cjs/components/button/CButton.js +6 -2
  16. package/dist/cjs/components/button/CButton.js.map +1 -1
  17. package/dist/cjs/components/button-group/CButtonGroup.js +1 -1
  18. package/dist/cjs/components/button-group/CButtonToolbar.js +1 -1
  19. package/dist/cjs/components/calendar/CCalendar.js +3 -3
  20. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  21. package/dist/cjs/components/calendar/utils.d.ts +5 -4
  22. package/dist/cjs/components/calendar/utils.js +15 -6
  23. package/dist/cjs/components/calendar/utils.js.map +1 -1
  24. package/dist/cjs/components/callout/CCallout.js +1 -1
  25. package/dist/cjs/components/card/CCard.js +1 -1
  26. package/dist/cjs/components/card/CCardBody.js +1 -1
  27. package/dist/cjs/components/card/CCardFooter.js +1 -1
  28. package/dist/cjs/components/card/CCardGroup.js +1 -1
  29. package/dist/cjs/components/card/CCardHeader.js +1 -1
  30. package/dist/cjs/components/card/CCardImage.js +1 -1
  31. package/dist/cjs/components/card/CCardImageOverlay.js +1 -1
  32. package/dist/cjs/components/card/CCardLink.js +1 -1
  33. package/dist/cjs/components/card/CCardSubtitle.js +1 -1
  34. package/dist/cjs/components/card/CCardText.js +1 -1
  35. package/dist/cjs/components/card/CCardTitle.js +1 -1
  36. package/dist/cjs/components/carousel/CCarousel.js +1 -1
  37. package/dist/cjs/components/carousel/CCarouselCaption.js +1 -1
  38. package/dist/cjs/components/carousel/CCarouselItem.js +1 -1
  39. package/dist/cjs/components/close-button/CCloseButton.js +1 -1
  40. package/dist/cjs/components/collapse/CCollapse.js +1 -1
  41. package/dist/cjs/components/date-picker/CDatePicker.d.ts +7 -1
  42. package/dist/cjs/components/date-picker/CDatePicker.js +4 -4
  43. package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
  44. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +16 -4
  45. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +10 -8
  46. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  47. package/dist/cjs/components/date-range-picker/utils.d.ts +1 -0
  48. package/dist/cjs/components/date-range-picker/utils.js +10 -0
  49. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  50. package/dist/cjs/components/dropdown/CDropdown.js +3 -2
  51. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  52. package/dist/cjs/components/dropdown/CDropdownDivider.js +1 -1
  53. package/dist/cjs/components/dropdown/CDropdownHeader.js +1 -1
  54. package/dist/cjs/components/dropdown/CDropdownItem.js +1 -1
  55. package/dist/cjs/components/dropdown/CDropdownItemPlain.js +1 -1
  56. package/dist/cjs/components/dropdown/CDropdownMenu.js +1 -1
  57. package/dist/cjs/components/dropdown/CDropdownToggle.js +1 -1
  58. package/dist/cjs/components/dropdown/utils.d.ts +0 -1
  59. package/dist/cjs/components/dropdown/utils.js +0 -13
  60. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  61. package/dist/cjs/components/element-cover/CElementCover.js +1 -1
  62. package/dist/cjs/components/footer/CFooter.js +1 -1
  63. package/dist/cjs/components/form/CForm.js +1 -1
  64. package/dist/cjs/components/form/CFormCheck.js +1 -1
  65. package/dist/cjs/components/form/CFormControlValidation.js +1 -1
  66. package/dist/cjs/components/form/CFormControlWrapper.js +1 -1
  67. package/dist/cjs/components/form/CFormFeedback.js +1 -1
  68. package/dist/cjs/components/form/CFormFloating.js +1 -1
  69. package/dist/cjs/components/form/CFormInput.js +1 -1
  70. package/dist/cjs/components/form/CFormLabel.js +1 -1
  71. package/dist/cjs/components/form/CFormRange.js +1 -1
  72. package/dist/cjs/components/form/CFormSelect.js +1 -1
  73. package/dist/cjs/components/form/CFormSwitch.js +1 -1
  74. package/dist/cjs/components/form/CFormText.js +1 -1
  75. package/dist/cjs/components/form/CFormTextarea.js +1 -1
  76. package/dist/cjs/components/form/CInputGroup.js +1 -1
  77. package/dist/cjs/components/form/CInputGroupText.js +1 -1
  78. package/dist/cjs/components/grid/CCol.js +1 -1
  79. package/dist/cjs/components/grid/CContainer.js +1 -1
  80. package/dist/cjs/components/grid/CRow.js +1 -1
  81. package/dist/cjs/components/header/CHeader.js +1 -1
  82. package/dist/cjs/components/header/CHeaderBrand.js +1 -1
  83. package/dist/cjs/components/header/CHeaderDivider.js +1 -1
  84. package/dist/cjs/components/header/CHeaderNav.js +1 -1
  85. package/dist/cjs/components/header/CHeaderText.js +1 -1
  86. package/dist/cjs/components/header/CHeaderToggler.js +1 -1
  87. package/dist/cjs/components/image/CImage.js +1 -1
  88. package/dist/cjs/components/link/CLink.js +1 -1
  89. package/dist/cjs/components/list-group/CListGroupItem.js +1 -1
  90. package/dist/cjs/components/loading-button/CLoadingButton.js +1 -1
  91. package/dist/cjs/components/modal/CModal.js +1 -1
  92. package/dist/cjs/components/modal/CModalBody.js +1 -1
  93. package/dist/cjs/components/modal/CModalContent.js +1 -1
  94. package/dist/cjs/components/modal/CModalDialog.js +1 -1
  95. package/dist/cjs/components/modal/CModalFooter.js +1 -1
  96. package/dist/cjs/components/modal/CModalHeader.js +1 -1
  97. package/dist/cjs/components/modal/CModalTitle.js +1 -1
  98. package/dist/cjs/components/multi-select/CMultiSelect.d.ts +15 -3
  99. package/dist/cjs/components/multi-select/CMultiSelect.js +18 -11
  100. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  101. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +5 -3
  102. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  103. package/dist/cjs/components/multi-select/CMultiSelectOptions.js +1 -1
  104. package/dist/cjs/components/multi-select/CMultiSelectSelection.js +1 -1
  105. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  106. package/dist/cjs/components/multi-select/utils.js +1 -1
  107. package/dist/cjs/components/nav/CNav.js +1 -1
  108. package/dist/cjs/components/nav/CNavGroup.js +1 -1
  109. package/dist/cjs/components/nav/CNavGroupItems.js +1 -1
  110. package/dist/cjs/components/nav/CNavItem.js +1 -1
  111. package/dist/cjs/components/nav/CNavLink.js +1 -1
  112. package/dist/cjs/components/nav/CNavTitle.js +1 -1
  113. package/dist/cjs/components/navbar/CNavbar.js +1 -1
  114. package/dist/cjs/components/navbar/CNavbarBrand.js +1 -1
  115. package/dist/cjs/components/navbar/CNavbarNav.js +1 -1
  116. package/dist/cjs/components/navbar/CNavbarText.js +1 -1
  117. package/dist/cjs/components/navbar/CNavbarToggler.js +1 -1
  118. package/dist/cjs/components/offcanvas/COffcanvas.js +1 -1
  119. package/dist/cjs/components/offcanvas/COffcanvasBody.js +1 -1
  120. package/dist/cjs/components/offcanvas/COffcanvasHeader.js +1 -1
  121. package/dist/cjs/components/offcanvas/COffcanvasTitle.js +1 -1
  122. package/dist/cjs/components/pagination/CPagination.js +1 -1
  123. package/dist/cjs/components/pagination/CPaginationItem.js +1 -1
  124. package/dist/cjs/components/placeholder/CPlaceholder.js +1 -1
  125. package/dist/cjs/components/popover/CPopover.js +8 -2
  126. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  127. package/dist/cjs/components/progress/CProgress.js +1 -1
  128. package/dist/cjs/components/progress/CProgressBar.js +1 -1
  129. package/dist/cjs/components/progress/CProgressStacked.js +1 -1
  130. package/dist/cjs/components/rating/CRating.js +1 -1
  131. package/dist/cjs/components/sidebar/CSidebar.js +1 -1
  132. package/dist/cjs/components/sidebar/CSidebarBrand.js +1 -1
  133. package/dist/cjs/components/sidebar/CSidebarFooter.js +1 -1
  134. package/dist/cjs/components/sidebar/CSidebarHeader.js +1 -1
  135. package/dist/cjs/components/sidebar/CSidebarNav.js +1 -1
  136. package/dist/cjs/components/sidebar/CSidebarToggler.js +1 -1
  137. package/dist/cjs/components/smart-pagination/CSmartPagination.js +1 -1
  138. package/dist/cjs/components/smart-table/CSmartTable.js +4 -4
  139. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  140. package/dist/cjs/components/smart-table/CSmartTableBody.js +1 -1
  141. package/dist/cjs/components/smart-table/CSmartTableHead.js +1 -1
  142. package/dist/cjs/components/smart-table/utils.d.ts +5 -5
  143. package/dist/cjs/components/smart-table/utils.js +1 -1
  144. package/dist/cjs/components/spinner/CSpinner.js +1 -1
  145. package/dist/cjs/components/table/CTable.js +1 -1
  146. package/dist/cjs/components/table/CTableBody.js +1 -1
  147. package/dist/cjs/components/table/CTableCaption.js +1 -1
  148. package/dist/cjs/components/table/CTableDataCell.js +1 -1
  149. package/dist/cjs/components/table/CTableFoot.js +1 -1
  150. package/dist/cjs/components/table/CTableHead.js +1 -1
  151. package/dist/cjs/components/table/CTableHeaderCell.js +1 -1
  152. package/dist/cjs/components/table/CTableResponsiveWrapper.js +1 -1
  153. package/dist/cjs/components/table/CTableRow.js +1 -1
  154. package/dist/cjs/components/tabs/CTab.d.ts +12 -0
  155. package/dist/cjs/components/tabs/CTab.js +25 -0
  156. package/dist/cjs/components/tabs/CTab.js.map +1 -0
  157. package/dist/cjs/components/tabs/CTabContent.js +1 -1
  158. package/dist/cjs/components/tabs/CTabList.d.ts +16 -0
  159. package/dist/cjs/components/tabs/CTabList.js +54 -0
  160. package/dist/cjs/components/tabs/CTabList.js.map +1 -0
  161. package/dist/cjs/components/tabs/CTabPane.d.ts +6 -0
  162. package/dist/cjs/components/tabs/CTabPane.js +5 -3
  163. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  164. package/dist/cjs/components/tabs/CTabPanel.d.ts +28 -0
  165. package/dist/cjs/components/tabs/CTabPanel.js +43 -0
  166. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -0
  167. package/dist/cjs/components/tabs/CTabs.d.ts +22 -0
  168. package/dist/cjs/components/tabs/CTabs.js +28 -0
  169. package/dist/cjs/components/tabs/CTabs.js.map +1 -0
  170. package/dist/cjs/components/tabs/index.d.ts +5 -1
  171. package/dist/cjs/components/time-picker/CTimePicker.d.ts +12 -0
  172. package/dist/cjs/components/time-picker/CTimePicker.js +6 -6
  173. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  174. package/dist/cjs/components/time-picker/utils.d.ts +4 -4
  175. package/dist/cjs/components/toast/CToast.js +1 -1
  176. package/dist/cjs/components/toast/CToastBody.js +1 -1
  177. package/dist/cjs/components/toast/CToastClose.js +1 -1
  178. package/dist/cjs/components/toast/CToastHeader.js +1 -1
  179. package/dist/cjs/components/toast/CToaster.js +1 -1
  180. package/dist/cjs/components/tooltip/CTooltip.js +8 -2
  181. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  182. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js +1 -1
  183. package/dist/cjs/components/widgets/CWidgetStatsA.js +1 -1
  184. package/dist/cjs/components/widgets/CWidgetStatsB.js +1 -1
  185. package/dist/cjs/components/widgets/CWidgetStatsC.js +1 -1
  186. package/dist/cjs/components/widgets/CWidgetStatsD.js +1 -1
  187. package/dist/cjs/components/widgets/CWidgetStatsE.js +1 -1
  188. package/dist/cjs/components/widgets/CWidgetStatsF.js +1 -1
  189. package/dist/cjs/hooks/useForkedRef.d.ts +0 -1
  190. package/dist/cjs/index.js +8 -0
  191. package/dist/cjs/index.js.map +1 -1
  192. package/dist/cjs/node_modules/@coreui/icons-react/dist/{index.es.js → index.esm.js} +93 -30
  193. package/dist/cjs/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -0
  194. package/dist/cjs/{node_modules → packages/coreui-react-pro/node_modules}/tslib/tslib.es6.js.map +1 -1
  195. package/dist/cjs/utils/getNextActiveElement.d.ts +2 -0
  196. package/dist/cjs/utils/getNextActiveElement.js +19 -0
  197. package/dist/cjs/utils/getNextActiveElement.js.map +1 -0
  198. package/dist/cjs/utils/index.d.ts +2 -1
  199. package/dist/esm/components/accordion/CAccordion.js +1 -1
  200. package/dist/esm/components/accordion/CAccordionBody.js +1 -1
  201. package/dist/esm/components/accordion/CAccordionButton.js +1 -1
  202. package/dist/esm/components/accordion/CAccordionHeader.js +1 -1
  203. package/dist/esm/components/accordion/CAccordionItem.js +1 -1
  204. package/dist/esm/components/alert/CAlert.js +1 -1
  205. package/dist/esm/components/alert/CAlertHeading.js +1 -1
  206. package/dist/esm/components/alert/CAlertLink.js +1 -1
  207. package/dist/esm/components/avatar/CAvatar.js +1 -1
  208. package/dist/esm/components/backdrop/CBackdrop.js +1 -1
  209. package/dist/esm/components/badge/CBadge.js +1 -1
  210. package/dist/esm/components/breadcrumb/CBreadcrumb.js +1 -1
  211. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js +1 -1
  212. package/dist/esm/components/button/CButton.js +6 -2
  213. package/dist/esm/components/button/CButton.js.map +1 -1
  214. package/dist/esm/components/button-group/CButtonGroup.js +1 -1
  215. package/dist/esm/components/button-group/CButtonToolbar.js +1 -1
  216. package/dist/esm/components/calendar/CCalendar.js +3 -3
  217. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  218. package/dist/esm/components/calendar/utils.d.ts +5 -4
  219. package/dist/esm/components/calendar/utils.js +15 -7
  220. package/dist/esm/components/calendar/utils.js.map +1 -1
  221. package/dist/esm/components/callout/CCallout.js +1 -1
  222. package/dist/esm/components/card/CCard.js +1 -1
  223. package/dist/esm/components/card/CCardBody.js +1 -1
  224. package/dist/esm/components/card/CCardFooter.js +1 -1
  225. package/dist/esm/components/card/CCardGroup.js +1 -1
  226. package/dist/esm/components/card/CCardHeader.js +1 -1
  227. package/dist/esm/components/card/CCardImage.js +1 -1
  228. package/dist/esm/components/card/CCardImageOverlay.js +1 -1
  229. package/dist/esm/components/card/CCardLink.js +1 -1
  230. package/dist/esm/components/card/CCardSubtitle.js +1 -1
  231. package/dist/esm/components/card/CCardText.js +1 -1
  232. package/dist/esm/components/card/CCardTitle.js +1 -1
  233. package/dist/esm/components/carousel/CCarousel.js +1 -1
  234. package/dist/esm/components/carousel/CCarouselCaption.js +1 -1
  235. package/dist/esm/components/carousel/CCarouselItem.js +1 -1
  236. package/dist/esm/components/close-button/CCloseButton.js +1 -1
  237. package/dist/esm/components/collapse/CCollapse.js +1 -1
  238. package/dist/esm/components/date-picker/CDatePicker.d.ts +7 -1
  239. package/dist/esm/components/date-picker/CDatePicker.js +4 -4
  240. package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
  241. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +16 -4
  242. package/dist/esm/components/date-range-picker/CDateRangePicker.js +11 -9
  243. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  244. package/dist/esm/components/date-range-picker/utils.d.ts +1 -0
  245. package/dist/esm/components/date-range-picker/utils.js +10 -1
  246. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  247. package/dist/esm/components/dropdown/CDropdown.js +3 -2
  248. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  249. package/dist/esm/components/dropdown/CDropdownDivider.js +1 -1
  250. package/dist/esm/components/dropdown/CDropdownHeader.js +1 -1
  251. package/dist/esm/components/dropdown/CDropdownItem.js +1 -1
  252. package/dist/esm/components/dropdown/CDropdownItemPlain.js +1 -1
  253. package/dist/esm/components/dropdown/CDropdownMenu.js +1 -1
  254. package/dist/esm/components/dropdown/CDropdownToggle.js +1 -1
  255. package/dist/esm/components/dropdown/utils.d.ts +0 -1
  256. package/dist/esm/components/dropdown/utils.js +1 -13
  257. package/dist/esm/components/dropdown/utils.js.map +1 -1
  258. package/dist/esm/components/element-cover/CElementCover.js +1 -1
  259. package/dist/esm/components/footer/CFooter.js +1 -1
  260. package/dist/esm/components/form/CForm.js +1 -1
  261. package/dist/esm/components/form/CFormCheck.js +1 -1
  262. package/dist/esm/components/form/CFormControlValidation.js +1 -1
  263. package/dist/esm/components/form/CFormControlWrapper.js +1 -1
  264. package/dist/esm/components/form/CFormFeedback.js +1 -1
  265. package/dist/esm/components/form/CFormFloating.js +1 -1
  266. package/dist/esm/components/form/CFormInput.js +1 -1
  267. package/dist/esm/components/form/CFormLabel.js +1 -1
  268. package/dist/esm/components/form/CFormRange.js +1 -1
  269. package/dist/esm/components/form/CFormSelect.js +1 -1
  270. package/dist/esm/components/form/CFormSwitch.js +1 -1
  271. package/dist/esm/components/form/CFormText.js +1 -1
  272. package/dist/esm/components/form/CFormTextarea.js +1 -1
  273. package/dist/esm/components/form/CInputGroup.js +1 -1
  274. package/dist/esm/components/form/CInputGroupText.js +1 -1
  275. package/dist/esm/components/grid/CCol.js +1 -1
  276. package/dist/esm/components/grid/CContainer.js +1 -1
  277. package/dist/esm/components/grid/CRow.js +1 -1
  278. package/dist/esm/components/header/CHeader.js +1 -1
  279. package/dist/esm/components/header/CHeaderBrand.js +1 -1
  280. package/dist/esm/components/header/CHeaderDivider.js +1 -1
  281. package/dist/esm/components/header/CHeaderNav.js +1 -1
  282. package/dist/esm/components/header/CHeaderText.js +1 -1
  283. package/dist/esm/components/header/CHeaderToggler.js +1 -1
  284. package/dist/esm/components/image/CImage.js +1 -1
  285. package/dist/esm/components/link/CLink.js +1 -1
  286. package/dist/esm/components/list-group/CListGroupItem.js +1 -1
  287. package/dist/esm/components/loading-button/CLoadingButton.js +1 -1
  288. package/dist/esm/components/modal/CModal.js +1 -1
  289. package/dist/esm/components/modal/CModalBody.js +1 -1
  290. package/dist/esm/components/modal/CModalContent.js +1 -1
  291. package/dist/esm/components/modal/CModalDialog.js +1 -1
  292. package/dist/esm/components/modal/CModalFooter.js +1 -1
  293. package/dist/esm/components/modal/CModalHeader.js +1 -1
  294. package/dist/esm/components/modal/CModalTitle.js +1 -1
  295. package/dist/esm/components/multi-select/CMultiSelect.d.ts +15 -3
  296. package/dist/esm/components/multi-select/CMultiSelect.js +18 -11
  297. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  298. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +5 -3
  299. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  300. package/dist/esm/components/multi-select/CMultiSelectOptions.js +1 -1
  301. package/dist/esm/components/multi-select/CMultiSelectSelection.js +1 -1
  302. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  303. package/dist/esm/components/multi-select/utils.js +1 -1
  304. package/dist/esm/components/nav/CNav.js +1 -1
  305. package/dist/esm/components/nav/CNavGroup.js +1 -1
  306. package/dist/esm/components/nav/CNavGroupItems.js +1 -1
  307. package/dist/esm/components/nav/CNavItem.js +1 -1
  308. package/dist/esm/components/nav/CNavLink.js +1 -1
  309. package/dist/esm/components/nav/CNavTitle.js +1 -1
  310. package/dist/esm/components/navbar/CNavbar.js +1 -1
  311. package/dist/esm/components/navbar/CNavbarBrand.js +1 -1
  312. package/dist/esm/components/navbar/CNavbarNav.js +1 -1
  313. package/dist/esm/components/navbar/CNavbarText.js +1 -1
  314. package/dist/esm/components/navbar/CNavbarToggler.js +1 -1
  315. package/dist/esm/components/offcanvas/COffcanvas.js +1 -1
  316. package/dist/esm/components/offcanvas/COffcanvasBody.js +1 -1
  317. package/dist/esm/components/offcanvas/COffcanvasHeader.js +1 -1
  318. package/dist/esm/components/offcanvas/COffcanvasTitle.js +1 -1
  319. package/dist/esm/components/pagination/CPagination.js +1 -1
  320. package/dist/esm/components/pagination/CPaginationItem.js +1 -1
  321. package/dist/esm/components/placeholder/CPlaceholder.js +1 -1
  322. package/dist/esm/components/popover/CPopover.js +8 -2
  323. package/dist/esm/components/popover/CPopover.js.map +1 -1
  324. package/dist/esm/components/progress/CProgress.js +1 -1
  325. package/dist/esm/components/progress/CProgressBar.js +1 -1
  326. package/dist/esm/components/progress/CProgressStacked.js +1 -1
  327. package/dist/esm/components/rating/CRating.js +1 -1
  328. package/dist/esm/components/sidebar/CSidebar.js +1 -1
  329. package/dist/esm/components/sidebar/CSidebarBrand.js +1 -1
  330. package/dist/esm/components/sidebar/CSidebarFooter.js +1 -1
  331. package/dist/esm/components/sidebar/CSidebarHeader.js +1 -1
  332. package/dist/esm/components/sidebar/CSidebarNav.js +1 -1
  333. package/dist/esm/components/sidebar/CSidebarToggler.js +1 -1
  334. package/dist/esm/components/smart-pagination/CSmartPagination.js +1 -1
  335. package/dist/esm/components/smart-table/CSmartTable.js +2 -2
  336. package/dist/esm/components/smart-table/CSmartTableBody.js +1 -1
  337. package/dist/esm/components/smart-table/CSmartTableHead.js +1 -1
  338. package/dist/esm/components/smart-table/utils.d.ts +5 -5
  339. package/dist/esm/components/smart-table/utils.js +1 -1
  340. package/dist/esm/components/spinner/CSpinner.js +1 -1
  341. package/dist/esm/components/table/CTable.js +1 -1
  342. package/dist/esm/components/table/CTableBody.js +1 -1
  343. package/dist/esm/components/table/CTableCaption.js +1 -1
  344. package/dist/esm/components/table/CTableDataCell.js +1 -1
  345. package/dist/esm/components/table/CTableFoot.js +1 -1
  346. package/dist/esm/components/table/CTableHead.js +1 -1
  347. package/dist/esm/components/table/CTableHeaderCell.js +1 -1
  348. package/dist/esm/components/table/CTableResponsiveWrapper.js +1 -1
  349. package/dist/esm/components/table/CTableRow.js +1 -1
  350. package/dist/esm/components/tabs/CTab.d.ts +12 -0
  351. package/dist/esm/components/tabs/CTab.js +23 -0
  352. package/dist/esm/components/tabs/CTab.js.map +1 -0
  353. package/dist/esm/components/tabs/CTabContent.js +1 -1
  354. package/dist/esm/components/tabs/CTabList.d.ts +16 -0
  355. package/dist/esm/components/tabs/CTabList.js +52 -0
  356. package/dist/esm/components/tabs/CTabList.js.map +1 -0
  357. package/dist/esm/components/tabs/CTabPane.d.ts +6 -0
  358. package/dist/esm/components/tabs/CTabPane.js +5 -3
  359. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  360. package/dist/esm/components/tabs/CTabPanel.d.ts +28 -0
  361. package/dist/esm/components/tabs/CTabPanel.js +41 -0
  362. package/dist/esm/components/tabs/CTabPanel.js.map +1 -0
  363. package/dist/esm/components/tabs/CTabs.d.ts +22 -0
  364. package/dist/esm/components/tabs/CTabs.js +25 -0
  365. package/dist/esm/components/tabs/CTabs.js.map +1 -0
  366. package/dist/esm/components/tabs/index.d.ts +5 -1
  367. package/dist/esm/components/time-picker/CTimePicker.d.ts +12 -0
  368. package/dist/esm/components/time-picker/CTimePicker.js +6 -6
  369. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  370. package/dist/esm/components/time-picker/utils.d.ts +4 -4
  371. package/dist/esm/components/toast/CToast.js +1 -1
  372. package/dist/esm/components/toast/CToastBody.js +1 -1
  373. package/dist/esm/components/toast/CToastClose.js +1 -1
  374. package/dist/esm/components/toast/CToastHeader.js +1 -1
  375. package/dist/esm/components/toast/CToaster.js +1 -1
  376. package/dist/esm/components/tooltip/CTooltip.js +8 -2
  377. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  378. package/dist/esm/components/virtual-scroller/CVirtualScroller.js +1 -1
  379. package/dist/esm/components/widgets/CWidgetStatsA.js +1 -1
  380. package/dist/esm/components/widgets/CWidgetStatsB.js +1 -1
  381. package/dist/esm/components/widgets/CWidgetStatsC.js +1 -1
  382. package/dist/esm/components/widgets/CWidgetStatsD.js +1 -1
  383. package/dist/esm/components/widgets/CWidgetStatsE.js +1 -1
  384. package/dist/esm/components/widgets/CWidgetStatsF.js +1 -1
  385. package/dist/esm/hooks/useForkedRef.d.ts +0 -1
  386. package/dist/esm/index.js +4 -0
  387. package/dist/esm/index.js.map +1 -1
  388. package/dist/esm/node_modules/@coreui/icons-react/dist/{index.es.js → index.esm.js} +93 -32
  389. package/dist/esm/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -0
  390. package/dist/esm/{node_modules → packages/coreui-react-pro/node_modules}/tslib/tslib.es6.js.map +1 -1
  391. package/dist/esm/utils/getNextActiveElement.d.ts +2 -0
  392. package/dist/esm/utils/getNextActiveElement.js +15 -0
  393. package/dist/esm/utils/getNextActiveElement.js.map +1 -0
  394. package/dist/esm/utils/index.d.ts +2 -1
  395. package/package.json +10 -10
  396. package/src/components/button/CButton.tsx +5 -2
  397. package/src/components/button/__tests__/CButton.spec.tsx +1 -1
  398. package/src/components/button-group/__tests__/CButtonGroup.spec.tsx +6 -6
  399. package/src/components/button-group/__tests__/CButtonToolbar.spec.tsx +6 -6
  400. package/src/components/calendar/CCalendar.tsx +2 -2
  401. package/src/components/calendar/utils.ts +23 -7
  402. package/src/components/date-picker/CDatePicker.tsx +11 -2
  403. package/src/components/date-range-picker/CDateRangePicker.tsx +31 -12
  404. package/src/components/date-range-picker/utils.ts +16 -0
  405. package/src/components/dropdown/CDropdown.tsx +2 -2
  406. package/src/components/dropdown/__tests__/CDropdownToggle.spec.tsx +1 -1
  407. package/src/components/dropdown/__tests__/__snapshots__/CDropdown.spec.tsx.snap +1 -1
  408. package/src/components/dropdown/__tests__/__snapshots__/CDropdownToggle.spec.tsx.snap +1 -1
  409. package/src/components/dropdown/utils.ts +0 -22
  410. package/src/components/modal/__tests__/CModal.spec.tsx +1 -1
  411. package/src/components/multi-select/CMultiSelect.tsx +31 -6
  412. package/src/components/multi-select/CMultiSelectNativeSelect.tsx +6 -4
  413. package/src/components/multi-select/CMultiSelectSelection.tsx +1 -0
  414. package/src/components/nav/__tests__/__snapshots__/CNavItem.spec.tsx.snap +12 -8
  415. package/src/components/popover/CPopover.tsx +8 -0
  416. package/src/components/popover/__tests__/CPopover.spec.tsx +2 -2
  417. package/src/components/popover/__tests__/__snapshots__/CPopover.spec.tsx.snap +22 -0
  418. package/src/components/sidebar/__tests__/__snapshots__/CSidebarBrand.spec.tsx.snap +4 -4
  419. package/src/components/sidebar/__tests__/__snapshots__/CSidebarNav.spec.tsx.snap +6 -2
  420. package/src/components/tabs/CTab.tsx +56 -0
  421. package/src/components/tabs/CTabList.tsx +92 -0
  422. package/src/components/tabs/CTabPane.tsx +9 -2
  423. package/src/components/tabs/CTabPanel.tsx +98 -0
  424. package/src/components/tabs/CTabs.tsx +54 -0
  425. package/src/components/tabs/__tests__/__snapshots__/CTabPane.spec.tsx.snap +1 -1
  426. package/src/components/tabs/index.ts +5 -1
  427. package/src/components/time-picker/CTimePicker.tsx +17 -1
  428. package/src/components/toast/__tests__/__snapshots__/CToaster.spec.tsx.snap +1 -1
  429. package/src/components/tooltip/CTooltip.tsx +8 -0
  430. package/src/components/tooltip/__tests__/__snapshots__/CTooltip.spec.tsx.snap +1 -0
  431. package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsC.spec.tsx.snap +1 -1
  432. package/src/utils/getNextActiveElement.ts +23 -0
  433. package/src/utils/index.ts +2 -0
  434. package/dist/cjs/node_modules/@coreui/icons-react/dist/index.es.js.map +0 -1
  435. package/dist/esm/node_modules/@coreui/icons-react/dist/index.es.js.map +0 -1
  436. /package/dist/cjs/{node_modules → packages/coreui-react-pro/node_modules}/tslib/tslib.es6.js +0 -0
  437. /package/dist/esm/{node_modules → packages/coreui-react-pro/node_modules}/tslib/tslib.es6.js +0 -0
@@ -22,10 +22,16 @@ export interface CDatePickerProps
22
22
  /**
23
23
  * The id global attribute defines an identifier (ID) that must be unique in the whole document.
24
24
  *
25
- * The name attribute for the input element is generated based on the `id` property:
25
+ * **[Deprecated since v5.3.0]** The name attributes for input element is generated based on this property until you define name prop ex.:
26
26
  * - \{id\}-date
27
27
  */
28
28
  id?: string
29
+ /**
30
+ * The name attribute for the input element.
31
+ *
32
+ * @since 5.3.0
33
+ */
34
+ name?: string
29
35
  /**
30
36
  * Callback fired when the date changed.
31
37
  */
@@ -33,11 +39,12 @@ export interface CDatePickerProps
33
39
  }
34
40
 
35
41
  export const CDatePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDatePickerProps>(
36
- ({ date, id, onDateChange, placeholder = 'Select date', ...rest }, ref) => {
42
+ ({ date, id, name, onDateChange, placeholder = 'Select date', ...rest }, ref) => {
37
43
  return (
38
44
  <CDateRangePicker
39
45
  calendars={1}
40
46
  id={id}
47
+ name={name}
41
48
  startDate={date}
42
49
  onStartDateChange={onDateChange}
43
50
  placeholder={placeholder}
@@ -54,5 +61,7 @@ CDatePicker.displayName = 'CDatePicker'
54
61
  CDatePicker.propTypes = {
55
62
  ...CDateRangePicker.propTypes,
56
63
  date: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),
64
+ id: PropTypes.string,
65
+ name: PropTypes.string,
57
66
  onDateChange: PropTypes.func,
58
67
  }
@@ -12,11 +12,11 @@ import { CTimePicker } from '../time-picker/CTimePicker'
12
12
 
13
13
  import { useDebouncedCallback } from '../../hooks'
14
14
  import { Colors } from '../../types'
15
- import { getLocalDateFromString } from './utils'
15
+ import { getInputIdOrName, getLocalDateFromString } from './utils'
16
16
 
17
17
  export interface CDateRangePickerProps
18
- extends Omit<CFormControlWrapperProps, 'floatingLabel'>,
19
- Omit<CPickerProps, 'placeholder'>,
18
+ extends Omit<CFormControlWrapperProps, 'floatingLabel' | 'id'>,
19
+ Omit<CPickerProps, 'placeholder' | 'id'>,
20
20
  Omit<CCalendarProps, 'onDayHover' | 'onCalendarDateChange'> {
21
21
  /**
22
22
  * The number of calendars that render on desktop devices.
@@ -85,13 +85,13 @@ export interface CDateRangePickerProps
85
85
  */
86
86
  confirmButtonVariant?: 'outline' | 'ghost'
87
87
  /**
88
- * The id global attribute defines an identifier (ID) that must be unique in the whole document.
88
+ * The id attribute for the input elements. It can be a single string for both the start and end dates. If a single string is used, the postfix "-start-date" and "-end-date" will be automatically added to make the IDs unique. Alternatively, you can use an array of two strings for start and end dates separately.
89
89
  *
90
- * The name attributes for input elements are generated based on the `id` property:
90
+ * **[Deprecated since v5.3.0]** If the property is a type of string, the name attributes for input elements are generated based on this property until you define name prop ex.:
91
91
  * - \{id\}-start-date
92
92
  * - \{id\}-end-date
93
93
  */
94
- id?: string
94
+ id?: string | [string, string]
95
95
  /**
96
96
  * Toggle visibility or set the content of the input indicator.
97
97
  */
@@ -118,6 +118,18 @@ export interface CDateRangePickerProps
118
118
  * Toggle the readonly state for the component.
119
119
  */
120
120
  inputReadOnly?: boolean
121
+ /**
122
+ * The name attribute for the input elements. It can be a single string for both the start and end dates. If a single string is used, the postfix "-start-date" and "-end-date" will be automatically added to make the names unique. Alternatively, you can use an array of two strings for start and end dates separately.
123
+ *
124
+ * Example for single string: 'date-input'
125
+ * Result: 'date-input-start-date', 'date-input-end-date'
126
+ *
127
+ * Example for array: ['start-date-input', 'end-date-input']
128
+ * Result: 'start-date-input', 'end-date-input'
129
+ *
130
+ * @since 5.3.0
131
+ */
132
+ name?: string | [string, string]
121
133
  /**
122
134
  * Specifies short hints that are visible in start date and end date inputs.
123
135
  */
@@ -223,6 +235,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
223
235
  locale = 'default',
224
236
  maxDate,
225
237
  minDate,
238
+ name,
226
239
  navigation,
227
240
  navYearFirst,
228
241
  onEndDateChange,
@@ -430,7 +443,11 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
430
443
  hover: inputStartHoverValue,
431
444
  })}
432
445
  disabled={disabled}
433
- {...(id && { name: range ? `${id}-start-date` : `${id}-date` })}
446
+ {...(id && { id: getInputIdOrName(id, range, 'start') })}
447
+ {...(name && { name: getInputIdOrName(name, range, 'start') })}
448
+ {...(id &&
449
+ !Array.isArray(id) &&
450
+ !name && { name: range ? `${id}-start-date` : `${id}-date` })} // TODO: remove in v6
434
451
  placeholder={Array.isArray(placeholder) ? placeholder[0] : placeholder}
435
452
  readOnly={inputReadOnly}
436
453
  required={required}
@@ -448,7 +465,9 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
448
465
  hover: inputEndHoverValue,
449
466
  })}
450
467
  disabled={disabled}
451
- {...(id && { name: `${id}-end-date` })}
468
+ {...(id && { id: getInputIdOrName(id, range, 'end') })}
469
+ {...(name && { name: getInputIdOrName(name, range, 'end') })}
470
+ {...(id && !Array.isArray(id) && !name && { name: `${id}-end-date` })} // TODO: remove in v6
452
471
  placeholder={placeholder[1]}
453
472
  readOnly={inputReadOnly}
454
473
  required={required}
@@ -480,7 +499,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
480
499
  feedback={feedback}
481
500
  feedbackInvalid={feedbackInvalid}
482
501
  feedbackValid={feedbackValid}
483
- id={id}
502
+ {...(id && !Array.isArray(id) && { id: id })}
484
503
  invalid={isValid === false ? true : false}
485
504
  label={label}
486
505
  text={text}
@@ -547,7 +566,6 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
547
566
  )}
548
567
  </div>
549
568
  }
550
- id={id}
551
569
  toggler={toggler ?? InputGroup()}
552
570
  onHide={() => {
553
571
  setVisible(false)
@@ -612,7 +630,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
612
630
  />
613
631
  {timepicker && (
614
632
  <div className="date-picker-timepickers">
615
- {isMobile || (range && calendars === 1) ? (
633
+ {(isMobile && range) || (range && calendars === 1) ? (
616
634
  <>
617
635
  <CTimePicker
618
636
  container="inline"
@@ -687,12 +705,13 @@ CDateRangePicker.propTypes = {
687
705
  confirmButtonColor: CButton.propTypes?.color,
688
706
  confirmButtonSize: CButton.propTypes?.size,
689
707
  confirmButtonVariant: CButton.propTypes?.variant,
690
- id: PropTypes.string,
708
+ id: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
691
709
  indicator: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
692
710
  inputDateFormat: PropTypes.func,
693
711
  inputDateParse: PropTypes.func,
694
712
  inputOnChangeDelay: PropTypes.number,
695
713
  inputReadOnly: PropTypes.bool,
714
+ name: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
696
715
  placeholder: PropTypes.oneOfType([
697
716
  PropTypes.string,
698
717
  PropTypes.arrayOf(PropTypes.string.isRequired),
@@ -1,3 +1,19 @@
1
+ export const getInputIdOrName = (
2
+ attribute: string | [string, string],
3
+ range: boolean,
4
+ position?: 'start' | 'end',
5
+ ): string => {
6
+ if (range && !Array.isArray(attribute)) {
7
+ return `${attribute}-${position}-date`
8
+ }
9
+
10
+ if (Array.isArray(attribute)) {
11
+ return position === 'start' ? attribute[0] : attribute[1]
12
+ }
13
+
14
+ return attribute
15
+ }
16
+
1
17
  export const getLocalDateFromString = (string: string, locale: string, time?: boolean) => {
2
18
  if (!Number.isNaN(Date.parse(string))) {
3
19
  return new Date(Date.parse(string))
@@ -15,10 +15,10 @@ import { PolymorphicRefForwardingComponent } from '../../helpers'
15
15
  import { useForkedRef, usePopper } from '../../hooks'
16
16
  import { placementPropType } from '../../props'
17
17
  import type { Placements } from '../../types'
18
- import { isRTL } from '../../utils'
18
+ import { getNextActiveElement, isRTL } from '../../utils'
19
19
 
20
20
  import type { Alignments, Directions } from './types'
21
- import { getNextActiveElement, getPlacement } from './utils'
21
+ import { getPlacement } from './utils'
22
22
 
23
23
  export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIElement> {
24
24
  /**
@@ -10,7 +10,7 @@ test('loads and displays CDropdownToggle component', async () => {
10
10
 
11
11
  test('CDropdownToggle customize', async () => {
12
12
  const { container } = render(
13
- <CDropdownToggle caret={true} split={true} trigger="focus">
13
+ <CDropdownToggle caret={true} color="primary" split={true} trigger="focus">
14
14
  Test
15
15
  </CDropdownToggle>,
16
16
  )
@@ -17,7 +17,7 @@ exports[`CDropdown example 1`] = `
17
17
  >
18
18
  <button
19
19
  aria-expanded="false"
20
- class="btn btn-primary dropdown-toggle"
20
+ class="btn dropdown-toggle"
21
21
  tabindex="0"
22
22
  type="button"
23
23
  >
@@ -20,7 +20,7 @@ exports[`CDropdownToggle customize 1`] = `
20
20
  exports[`loads and displays CDropdownToggle component 1`] = `
21
21
  <div>
22
22
  <button
23
- class="btn btn-primary dropdown-toggle"
23
+ class="btn dropdown-toggle"
24
24
  tabindex="0"
25
25
  type="button"
26
26
  >
@@ -19,28 +19,6 @@ export const getAlignmentClassNames = (alignment: Alignments) => {
19
19
  return classNames
20
20
  }
21
21
 
22
- export const getNextActiveElement = (
23
- list: HTMLElement[],
24
- activeElement: HTMLElement,
25
- shouldGetNext: boolean,
26
- isCycleAllowed: boolean,
27
- ) => {
28
- const listLength = list.length
29
- let index = list.indexOf(activeElement)
30
-
31
- if (index === -1) {
32
- return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]
33
- }
34
-
35
- index += shouldGetNext ? 1 : -1
36
-
37
- if (isCycleAllowed) {
38
- index = (index + listLength) % listLength
39
- }
40
-
41
- return list[Math.max(0, Math.min(index, listLength - 1))]
42
- }
43
-
44
22
  export const getPlacement = (
45
23
  placement: Placement,
46
24
  direction: string | undefined,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react'
2
2
  import { render, fireEvent } from '@testing-library/react'
3
- import '@testing-library/jest-dom/extend-expect'
3
+ import '@testing-library/jest-dom'
4
4
  import { CModal } from '../../../index'
5
5
 
6
6
  test('loads and displays CModal component', async () => {
@@ -53,10 +53,10 @@ export interface CMultiSelectProps
53
53
  */
54
54
  disabled?: boolean
55
55
  /**
56
- * The id global attribute defines an identifier (ID) that must be unique in the whole document.
56
+ * Set the id attribute for the native select element.
57
57
  *
58
- * The name and id attributes for the native select element are generated based on the `id` property:
59
- * - <select id="\{id\}-multi-select" name="\{id\}-multi-select" />
58
+ * **[Deprecated since v5.3.0]** The name attribute for the native select element is generated based on the `id` property:
59
+ * - `<select name="\{id\}-multi-select" />`
60
60
  */
61
61
  id?: string
62
62
  /**
@@ -69,6 +69,12 @@ export interface CMultiSelectProps
69
69
  * It specifies that multiple options can be selected at once.
70
70
  */
71
71
  multiple?: boolean
72
+ /**
73
+ * The name attribute for the select element.
74
+ *
75
+ * @since 5.3.0
76
+ */
77
+ name?: string
72
78
  /**
73
79
  * Execute a function when a user changes the selected option.
74
80
  */
@@ -119,6 +125,12 @@ export interface CMultiSelectProps
119
125
  * When it is present, it indicates that the user must choose a value before submitting the form.
120
126
  */
121
127
  required?: boolean
128
+ /**
129
+ * Determines whether the selected options should be cleared when the options list is updated. When set to true, any previously selected options will be reset whenever the options list undergoes a change. This ensures that outdated selections are not retained when new options are provided.
130
+ *
131
+ * @since 5.3.0
132
+ */
133
+ resetSelectionOnOptionsChange?: boolean
122
134
  /**
123
135
  * Enables search input element.
124
136
  */
@@ -176,11 +188,12 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
176
188
  feedback,
177
189
  feedbackInvalid,
178
190
  feedbackValid,
179
- loading,
180
- multiple = true,
181
191
  id,
182
192
  invalid,
183
193
  label,
194
+ loading,
195
+ multiple = true,
196
+ name,
184
197
  onChange,
185
198
  onFilterChange,
186
199
  onHide,
@@ -192,6 +205,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
192
205
  optionsGroupsTemplate,
193
206
  placeholder = 'Select...',
194
207
  required,
208
+ resetSelectionOnOptionsChange = false,
195
209
  search = true,
196
210
  searchNoResultsLabel = 'No results found',
197
211
  selectAll = true,
@@ -273,6 +287,10 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
273
287
  useEffect(() => {
274
288
  setOptions(options)
275
289
 
290
+ if (resetSelectionOnOptionsChange) {
291
+ return setSelected([])
292
+ }
293
+
276
294
  const _selected = flattenedOptions.filter((option: Option) => option.selected === true)
277
295
  const deselected = flattenedOptions.filter(
278
296
  (option: Option) => option.selected === false,
@@ -311,6 +329,11 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
311
329
  return () => {
312
330
  onHide && onHide()
313
331
 
332
+ setSearchValue('')
333
+ if (searchRef.current) {
334
+ searchRef.current.value = ''
335
+ }
336
+
314
337
  window.removeEventListener('mouseup', handleMouseUp)
315
338
  window.removeEventListener('keyup', handleKeyUp)
316
339
 
@@ -437,6 +460,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
437
460
  <CMultiSelectNativeSelect
438
461
  id={id}
439
462
  multiple={multiple}
463
+ name={name}
440
464
  options={selected}
441
465
  required={required}
442
466
  value={
@@ -460,7 +484,6 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
460
484
  className,
461
485
  )}
462
486
  aria-expanded={_visible}
463
- id={id}
464
487
  ref={multiSelectForkedRef}
465
488
  >
466
489
  <div
@@ -559,6 +582,7 @@ CMultiSelect.propTypes = {
559
582
  disabled: PropTypes.bool,
560
583
  loading: PropTypes.bool,
561
584
  multiple: PropTypes.bool,
585
+ name: PropTypes.string,
562
586
  onChange: PropTypes.func,
563
587
  onFilterChange: PropTypes.func,
564
588
  onHide: PropTypes.func,
@@ -570,6 +594,7 @@ CMultiSelect.propTypes = {
570
594
  optionsGroupsTemplate: PropTypes.func,
571
595
  placeholder: PropTypes.string,
572
596
  required: PropTypes.bool,
597
+ resetSelectionOnOptionsChange: PropTypes.bool,
573
598
  search: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf<'external'>(['external'])]),
574
599
  searchNoResultsLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
575
600
  selectAll: PropTypes.bool,
@@ -26,12 +26,12 @@ const createNativeOptions = (options: Option[]) =>
26
26
  export const CMultiSelectNativeSelect = forwardRef<
27
27
  HTMLSelectElement,
28
28
  CMultiSelectNativeSelectProps
29
- >(({ id, options, ...rest }, ref) => {
29
+ >(({ id, name, options, ...rest }, ref) => {
30
30
  return (
31
31
  <select
32
- className="multi-select-new"
33
- {...(id && { id: `${id}-multi-select` })}
34
- {...(id && { name: `${id}-multi-select` })}
32
+ id={id}
33
+ {...(id && !name && { name: `${id}-multi-select` })} // TODO: remove in v6
34
+ {...(name && { name: name })}
35
35
  tabIndex={-1}
36
36
  style={{ display: 'none' }}
37
37
  {...rest}
@@ -43,6 +43,8 @@ export const CMultiSelectNativeSelect = forwardRef<
43
43
  })
44
44
 
45
45
  CMultiSelectNativeSelect.propTypes = {
46
+ id: PropTypes.string,
47
+ name: PropTypes.string,
46
48
  options: PropTypes.array,
47
49
  value: PropTypes.oneOfType([
48
50
  PropTypes.number,
@@ -52,6 +52,7 @@ export const CMultiSelectSelection = forwardRef<HTMLSpanElement, CMultiSelectSel
52
52
  {!option.disabled && (
53
53
  <button
54
54
  className="form-multi-select-tag-delete"
55
+ type="button"
55
56
  aria-label="Close"
56
57
  onClick={() => onRemove && onRemove(option)}
57
58
  />
@@ -2,35 +2,39 @@
2
2
 
3
3
  exports[`CNavItem customize 1`] = `
4
4
  <div>
5
- <li
5
+ <h3
6
6
  class="nav-item bazinga"
7
7
  >
8
- <h3
8
+ <a
9
9
  aria-current="page"
10
+ aria-disabled="true"
10
11
  class="nav-link bazinga active disabled"
11
12
  disabled=""
12
13
  href="/bazinga"
14
+ tabindex="-1"
13
15
  >
14
16
  Test
15
- </h3>
16
- </li>
17
+ </a>
18
+ </h3>
17
19
  </div>
18
20
  `;
19
21
 
20
22
  exports[`CNavItem customize 2`] = `
21
23
  <div>
22
- <li
24
+ <h3
23
25
  class="nav-item bazinga"
24
26
  >
25
- <h3
27
+ <a
26
28
  aria-current="page"
29
+ aria-disabled="true"
27
30
  class="nav-link bazinga active disabled"
28
31
  disabled=""
29
32
  href="/bazinga"
33
+ tabindex="-1"
30
34
  >
31
35
  Test
32
- </h3>
33
- </li>
36
+ </a>
37
+ </h3>
34
38
  </div>
35
39
  `;
36
40
 
@@ -149,6 +149,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
149
149
  }
150
150
 
151
151
  initPopper(togglerRef.current, popoverRef.current, popperConfig)
152
+ popoverRef.current.style.removeProperty('display')
152
153
  popoverRef.current.classList.add('show')
153
154
  onShow && onShow()
154
155
  }
@@ -160,6 +161,10 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
160
161
  popoverRef.current.classList.remove('show')
161
162
  onHide && onHide()
162
163
  executeAfterTransition(() => {
164
+ if (popoverRef.current) {
165
+ popoverRef.current.style.display = 'none'
166
+ }
167
+
163
168
  destroyPopper()
164
169
  setMounted(false)
165
170
  }, popoverRef.current)
@@ -193,6 +198,9 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
193
198
  id={uID.current}
194
199
  ref={forkedRef}
195
200
  role="tooltip"
201
+ style={{
202
+ display: 'none',
203
+ }}
196
204
  {...rest}
197
205
  >
198
206
  <div className="popover-arrow"></div>
@@ -6,7 +6,7 @@ import { CPopover, CButton } from '../../../index'
6
6
  test('loads and displays CPopover component', async () => {
7
7
  const { container } = render(
8
8
  <CPopover content="A">
9
- <CButton>Test</CButton>
9
+ <CButton color="primary">Test</CButton>
10
10
  </CPopover>,
11
11
  )
12
12
  expect(container).toMatchSnapshot()
@@ -17,7 +17,7 @@ test('CPopover customize', async () => {
17
17
  let arr, element
18
18
  const { container } = render(
19
19
  <CPopover content="content" title="title" trigger="click" placement="right">
20
- <CButton>Test</CButton>
20
+ <CButton color="primary">Test</CButton>
21
21
  </CPopover>,
22
22
  { container: document.body },
23
23
  )
@@ -3,11 +3,33 @@
3
3
  exports[`CPopover customize 1`] = `
4
4
  <body>
5
5
  <button
6
+ aria-describedby="popover744956"
6
7
  class="btn btn-primary"
7
8
  type="button"
8
9
  >
9
10
  Test
10
11
  </button>
12
+ <div
13
+ class="popover bs-popover-auto fade show"
14
+ id="popover744956"
15
+ role="tooltip"
16
+ style="position: absolute; left: 0px; top: 0px; margin: 0px;"
17
+ >
18
+ <div
19
+ class="popover-arrow"
20
+ style="position: absolute;"
21
+ />
22
+ <div
23
+ class="popover-header"
24
+ >
25
+ title
26
+ </div>
27
+ <div
28
+ class="popover-body"
29
+ >
30
+ content
31
+ </div>
32
+ </div>
11
33
  </body>
12
34
  `;
13
35
 
@@ -2,21 +2,21 @@
2
2
 
3
3
  exports[`CSidebarBrand customize 1`] = `
4
4
  <div>
5
- <div
5
+ <a
6
6
  class="sidebar-brand bazinga"
7
7
  >
8
8
  Test
9
- </div>
9
+ </a>
10
10
  </div>
11
11
  `;
12
12
 
13
13
  exports[`loads and displays CSidebarBrand component 1`] = `
14
14
  <div>
15
- <div
15
+ <a
16
16
  class="sidebar-brand"
17
17
  color="primary"
18
18
  >
19
19
  Test
20
- </div>
20
+ </a>
21
21
  </div>
22
22
  `;
@@ -4,7 +4,9 @@ exports[`CSidebarNav customize 1`] = `
4
4
  <div>
5
5
  <ul
6
6
  class="sidebar-nav bazinga"
7
- />
7
+ >
8
+ Test
9
+ </ul>
8
10
  </div>
9
11
  `;
10
12
 
@@ -12,6 +14,8 @@ exports[`loads and displays CSidebarNav component 1`] = `
12
14
  <div>
13
15
  <ul
14
16
  class="sidebar-nav"
15
- />
17
+ >
18
+ Test
19
+ </ul>
16
20
  </div>
17
21
  `;
@@ -0,0 +1,56 @@
1
+ import React, { forwardRef, HTMLAttributes, useContext } from 'react'
2
+ import PropTypes from 'prop-types'
3
+ import classNames from 'classnames'
4
+
5
+ import { TabsContext } from './CTabs'
6
+
7
+ export interface CTabProps extends HTMLAttributes<HTMLButtonElement> {
8
+ /**
9
+ * A string of all className you want applied to the base component.
10
+ */
11
+ className?: string
12
+ /**
13
+ * Item key.
14
+ */
15
+ itemKey: number | string
16
+ }
17
+
18
+ export const CTab = forwardRef<HTMLButtonElement, CTabProps>(
19
+ ({ children, className, itemKey, ...rest }, ref) => {
20
+ const { _activeItemKey, setActiveItemKey, id } = useContext(TabsContext)
21
+
22
+ const isActive = () => itemKey === _activeItemKey
23
+
24
+ return (
25
+ <button
26
+ className={classNames(
27
+ 'nav-link',
28
+ {
29
+ active: isActive(),
30
+ },
31
+ className,
32
+ )}
33
+ id={`${id}${itemKey}-tab`}
34
+ onClick={() => setActiveItemKey(itemKey)}
35
+ onFocus={() => setActiveItemKey(itemKey)}
36
+ role="tab"
37
+ tabIndex={isActive() ? 0 : -1}
38
+ type="button"
39
+ aria-controls={`${id}${itemKey}-tab-pane`}
40
+ aria-selected={isActive()}
41
+ ref={ref}
42
+ {...rest}
43
+ >
44
+ {children}
45
+ </button>
46
+ )
47
+ },
48
+ )
49
+
50
+ CTab.propTypes = {
51
+ children: PropTypes.node,
52
+ className: PropTypes.string,
53
+ itemKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
54
+ }
55
+
56
+ CTab.displayName = 'CTab'