@coreui/react-pro 5.28.1 → 5.29.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 (542) hide show
  1. package/README.md +14 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -1
  3. package/dist/cjs/_virtual/index.js.map +1 -1
  4. package/dist/cjs/_virtual/index2.js.map +1 -1
  5. package/dist/cjs/_virtual/lib.js.map +1 -1
  6. package/dist/cjs/_virtual/lib2.js.map +1 -1
  7. package/dist/cjs/_virtual/ua-parser.min.js.map +1 -1
  8. package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
  9. package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
  10. package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
  11. package/dist/cjs/components/accordion/CAccordionContext.js.map +1 -1
  12. package/dist/cjs/components/accordion/CAccordionHeader.js.map +1 -1
  13. package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
  14. package/dist/cjs/components/accordion/CAccordionItemContext.js.map +1 -1
  15. package/dist/cjs/components/alert/CAlert.js.map +1 -1
  16. package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
  17. package/dist/cjs/components/alert/CAlertLink.js.map +1 -1
  18. package/dist/cjs/components/autocomplete/CAutocomplete.d.ts +1 -1
  19. package/dist/cjs/components/autocomplete/CAutocomplete.js +9 -10
  20. package/dist/cjs/components/autocomplete/CAutocomplete.js.map +1 -1
  21. package/dist/cjs/components/autocomplete/CAutocompleteOptions.js +10 -6
  22. package/dist/cjs/components/autocomplete/CAutocompleteOptions.js.map +1 -1
  23. package/dist/cjs/components/autocomplete/types.d.ts +1 -0
  24. package/dist/cjs/components/autocomplete/utils.d.ts +2 -1
  25. package/dist/cjs/components/autocomplete/utils.js +10 -0
  26. package/dist/cjs/components/autocomplete/utils.js.map +1 -1
  27. package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
  28. package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
  29. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  30. package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
  31. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  32. package/dist/cjs/components/button/CButton.js.map +1 -1
  33. package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
  34. package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
  35. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  36. package/dist/cjs/components/calendar/CCalendarNavigation.js.map +1 -1
  37. package/dist/cjs/components/calendar/CCalendarPanel.js.map +1 -1
  38. package/dist/cjs/components/calendar/utils.d.ts +10 -2
  39. package/dist/cjs/components/calendar/utils.js +63 -53
  40. package/dist/cjs/components/calendar/utils.js.map +1 -1
  41. package/dist/cjs/components/callout/CCallout.js.map +1 -1
  42. package/dist/cjs/components/card/CCard.js.map +1 -1
  43. package/dist/cjs/components/card/CCardBody.js.map +1 -1
  44. package/dist/cjs/components/card/CCardFooter.js.map +1 -1
  45. package/dist/cjs/components/card/CCardGroup.js.map +1 -1
  46. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  47. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  48. package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
  49. package/dist/cjs/components/card/CCardLink.js.map +1 -1
  50. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  51. package/dist/cjs/components/card/CCardText.js.map +1 -1
  52. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  53. package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
  54. package/dist/cjs/components/carousel/CCarouselCaption.js.map +1 -1
  55. package/dist/cjs/components/carousel/CCarouselContext.js.map +1 -1
  56. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  57. package/dist/cjs/components/chip/CChip.js.map +1 -1
  58. package/dist/cjs/components/chip/const.js.map +1 -1
  59. package/dist/cjs/components/chip-set/CChipSet.js.map +1 -1
  60. package/dist/cjs/components/chip-set/useChipSet.js.map +1 -1
  61. package/dist/cjs/components/chip-set/utils.js.map +1 -1
  62. package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
  63. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  64. package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
  65. package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
  66. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +18 -0
  67. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +20 -9
  68. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  69. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  70. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  71. package/dist/cjs/components/dropdown/CDropdownContext.js.map +1 -1
  72. package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
  73. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  74. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  75. package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
  76. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  77. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  78. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  79. package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
  80. package/dist/cjs/components/focus-trap/CFocusTrap.js.map +1 -1
  81. package/dist/cjs/components/focus-trap/utils.js.map +1 -1
  82. package/dist/cjs/components/footer/CFooter.js.map +1 -1
  83. package/dist/cjs/components/form/CChipInput.d.ts +1 -1
  84. package/dist/cjs/components/form/CChipInput.js +2 -3
  85. package/dist/cjs/components/form/CChipInput.js.map +1 -1
  86. package/dist/cjs/components/form/CForm.js.map +1 -1
  87. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  88. package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
  89. package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
  90. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  91. package/dist/cjs/components/form/CFormFloating.js.map +1 -1
  92. package/dist/cjs/components/form/CFormInput.js.map +1 -1
  93. package/dist/cjs/components/form/CFormLabel.js.map +1 -1
  94. package/dist/cjs/components/form/CFormRange.js.map +1 -1
  95. package/dist/cjs/components/form/CFormSelect.js.map +1 -1
  96. package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
  97. package/dist/cjs/components/form/CFormText.js.map +1 -1
  98. package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
  99. package/dist/cjs/components/form/CInputGroup.js.map +1 -1
  100. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  101. package/dist/cjs/components/grid/CCol.js.map +1 -1
  102. package/dist/cjs/components/grid/CContainer.js.map +1 -1
  103. package/dist/cjs/components/grid/CRow.js.map +1 -1
  104. package/dist/cjs/components/header/CHeader.js.map +1 -1
  105. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  106. package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
  107. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  108. package/dist/cjs/components/header/CHeaderText.js.map +1 -1
  109. package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
  110. package/dist/cjs/components/image/CImage.js.map +1 -1
  111. package/dist/cjs/components/link/CLink.js.map +1 -1
  112. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  113. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  114. package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
  115. package/dist/cjs/components/modal/CModal.js.map +1 -1
  116. package/dist/cjs/components/modal/CModalBody.js.map +1 -1
  117. package/dist/cjs/components/modal/CModalContent.js.map +1 -1
  118. package/dist/cjs/components/modal/CModalContext.js.map +1 -1
  119. package/dist/cjs/components/modal/CModalDialog.js.map +1 -1
  120. package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
  121. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  122. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  123. package/dist/cjs/components/multi-select/CMultiSelect.d.ts +0 -3
  124. package/dist/cjs/components/multi-select/CMultiSelect.js +43 -6
  125. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  126. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +1 -1
  127. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  128. package/dist/cjs/components/multi-select/CMultiSelectOptions.js +16 -10
  129. package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
  130. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  131. package/dist/cjs/components/multi-select/types.d.ts +1 -0
  132. package/dist/cjs/components/multi-select/utils.d.ts +2 -1
  133. package/dist/cjs/components/multi-select/utils.js +9 -5
  134. package/dist/cjs/components/multi-select/utils.js.map +1 -1
  135. package/dist/cjs/components/nav/CNav.js.map +1 -1
  136. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  137. package/dist/cjs/components/nav/CNavGroupContext.js.map +1 -1
  138. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  139. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  140. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  141. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  142. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  143. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  144. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  145. package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
  146. package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
  147. package/dist/cjs/components/offcanvas/COffcanvas.js +7 -2
  148. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  149. package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
  150. package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
  151. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  152. package/dist/cjs/components/one-time-password-input/COneTimePassword.d.ts +1 -1
  153. package/dist/cjs/components/one-time-password-input/COneTimePassword.js +5 -5
  154. package/dist/cjs/components/one-time-password-input/COneTimePassword.js.map +1 -1
  155. package/dist/cjs/components/one-time-password-input/COneTimePasswordInput.js.map +1 -1
  156. package/dist/cjs/components/one-time-password-input/utils.js.map +1 -1
  157. package/dist/cjs/components/pagination/CPagination.js.map +1 -1
  158. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  159. package/dist/cjs/components/password-input/CPasswordInput.js.map +1 -1
  160. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  161. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  162. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  163. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  164. package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
  165. package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
  166. package/dist/cjs/components/progress/CProgressStackedContext.js.map +1 -1
  167. package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -1
  168. package/dist/cjs/components/range-slider/utils.js.map +1 -1
  169. package/dist/cjs/components/rating/CRating.js.map +1 -1
  170. package/dist/cjs/components/search-button/CSearchButton.js.map +1 -1
  171. package/dist/cjs/components/search-button/utils.js.map +1 -1
  172. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  173. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  174. package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
  175. package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
  176. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  177. package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
  178. package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
  179. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  180. package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
  181. package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
  182. package/dist/cjs/components/smart-table/consts.js.map +1 -1
  183. package/dist/cjs/components/smart-table/utils.js.map +1 -1
  184. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  185. package/dist/cjs/components/stepper/CStepper.js.map +1 -1
  186. package/dist/cjs/components/table/CTable.js.map +1 -1
  187. package/dist/cjs/components/table/CTableBody.js.map +1 -1
  188. package/dist/cjs/components/table/CTableCaption.js.map +1 -1
  189. package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
  190. package/dist/cjs/components/table/CTableFoot.js.map +1 -1
  191. package/dist/cjs/components/table/CTableHead.js.map +1 -1
  192. package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
  193. package/dist/cjs/components/table/CTableResponsiveWrapper.js.map +1 -1
  194. package/dist/cjs/components/table/CTableRow.js.map +1 -1
  195. package/dist/cjs/components/table/utils.js.map +1 -1
  196. package/dist/cjs/components/tabs/CTab.js.map +1 -1
  197. package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
  198. package/dist/cjs/components/tabs/CTabList.js.map +1 -1
  199. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  200. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
  201. package/dist/cjs/components/tabs/CTabs.js.map +1 -1
  202. package/dist/cjs/components/tabs/CTabsContext.js.map +1 -1
  203. package/dist/cjs/components/time-picker/CTimePicker.d.ts +3 -3
  204. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  205. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  206. package/dist/cjs/components/time-picker/utils.d.ts +1 -1
  207. package/dist/cjs/components/time-picker/utils.js.map +1 -1
  208. package/dist/cjs/components/toast/CToast.js.map +1 -1
  209. package/dist/cjs/components/toast/CToastBody.js.map +1 -1
  210. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  211. package/dist/cjs/components/toast/CToastContext.js.map +1 -1
  212. package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
  213. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  214. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  215. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  216. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  217. package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
  218. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  219. package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
  220. package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
  221. package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
  222. package/dist/cjs/hooks/useClipboard.js.map +1 -1
  223. package/dist/cjs/hooks/useColorModes.js.map +1 -1
  224. package/dist/cjs/hooks/useDebounce.js.map +1 -1
  225. package/dist/cjs/hooks/useDebouncedCallback.js.map +1 -1
  226. package/dist/cjs/hooks/useDropdownWithPopper.js.map +1 -1
  227. package/dist/cjs/hooks/useForkedRef.js.map +1 -1
  228. package/dist/cjs/hooks/useIsVisible.js.map +1 -1
  229. package/dist/cjs/hooks/usePopper.js.map +1 -1
  230. package/dist/cjs/hooks/useStateWithCallback.js.map +1 -1
  231. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  232. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
  233. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  234. package/dist/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  235. package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
  236. package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
  237. package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
  238. package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
  239. package/dist/cjs/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
  240. package/dist/cjs/node_modules/classnames/index.js.map +1 -1
  241. package/dist/cjs/node_modules/dom-helpers/esm/addClass.js.map +1 -1
  242. package/dist/cjs/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
  243. package/dist/cjs/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  244. package/dist/cjs/node_modules/react-device-detect/dist/lib.js.map +1 -1
  245. package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  246. package/dist/cjs/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  247. package/dist/cjs/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -1
  248. package/dist/cjs/node_modules/react-transition-group/esm/config.js.map +1 -1
  249. package/dist/cjs/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
  250. package/dist/cjs/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
  251. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  252. package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
  253. package/dist/cjs/props.js.map +1 -1
  254. package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
  255. package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
  256. package/dist/cjs/utils/getNextSibling.js.map +1 -1
  257. package/dist/cjs/utils/getPreviousSibling.js.map +1 -1
  258. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  259. package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
  260. package/dist/cjs/utils/isInViewport.js.map +1 -1
  261. package/dist/cjs/utils/isObjectInArray.js.map +1 -1
  262. package/dist/cjs/utils/isRTL.js.map +1 -1
  263. package/dist/cjs/utils/swipe.js.map +1 -1
  264. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -1
  265. package/dist/esm/_virtual/index.js.map +1 -1
  266. package/dist/esm/_virtual/index2.js.map +1 -1
  267. package/dist/esm/_virtual/lib.js.map +1 -1
  268. package/dist/esm/_virtual/lib2.js.map +1 -1
  269. package/dist/esm/_virtual/ua-parser.min.js.map +1 -1
  270. package/dist/esm/components/accordion/CAccordion.js.map +1 -1
  271. package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
  272. package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
  273. package/dist/esm/components/accordion/CAccordionContext.js.map +1 -1
  274. package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
  275. package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
  276. package/dist/esm/components/accordion/CAccordionItemContext.js.map +1 -1
  277. package/dist/esm/components/alert/CAlert.js.map +1 -1
  278. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  279. package/dist/esm/components/alert/CAlertLink.js.map +1 -1
  280. package/dist/esm/components/autocomplete/CAutocomplete.d.ts +1 -1
  281. package/dist/esm/components/autocomplete/CAutocomplete.js +10 -11
  282. package/dist/esm/components/autocomplete/CAutocomplete.js.map +1 -1
  283. package/dist/esm/components/autocomplete/CAutocompleteOptions.js +7 -3
  284. package/dist/esm/components/autocomplete/CAutocompleteOptions.js.map +1 -1
  285. package/dist/esm/components/autocomplete/types.d.ts +1 -0
  286. package/dist/esm/components/autocomplete/utils.d.ts +2 -1
  287. package/dist/esm/components/autocomplete/utils.js +10 -1
  288. package/dist/esm/components/autocomplete/utils.js.map +1 -1
  289. package/dist/esm/components/avatar/CAvatar.js.map +1 -1
  290. package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
  291. package/dist/esm/components/badge/CBadge.js.map +1 -1
  292. package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
  293. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  294. package/dist/esm/components/button/CButton.js.map +1 -1
  295. package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
  296. package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
  297. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  298. package/dist/esm/components/calendar/CCalendarNavigation.js.map +1 -1
  299. package/dist/esm/components/calendar/CCalendarPanel.js.map +1 -1
  300. package/dist/esm/components/calendar/utils.d.ts +10 -2
  301. package/dist/esm/components/calendar/utils.js +63 -54
  302. package/dist/esm/components/calendar/utils.js.map +1 -1
  303. package/dist/esm/components/callout/CCallout.js.map +1 -1
  304. package/dist/esm/components/card/CCard.js.map +1 -1
  305. package/dist/esm/components/card/CCardBody.js.map +1 -1
  306. package/dist/esm/components/card/CCardFooter.js.map +1 -1
  307. package/dist/esm/components/card/CCardGroup.js.map +1 -1
  308. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  309. package/dist/esm/components/card/CCardImage.js.map +1 -1
  310. package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
  311. package/dist/esm/components/card/CCardLink.js.map +1 -1
  312. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  313. package/dist/esm/components/card/CCardText.js.map +1 -1
  314. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  315. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  316. package/dist/esm/components/carousel/CCarouselCaption.js.map +1 -1
  317. package/dist/esm/components/carousel/CCarouselContext.js.map +1 -1
  318. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  319. package/dist/esm/components/chip/CChip.js.map +1 -1
  320. package/dist/esm/components/chip/const.js.map +1 -1
  321. package/dist/esm/components/chip-set/CChipSet.js.map +1 -1
  322. package/dist/esm/components/chip-set/useChipSet.js.map +1 -1
  323. package/dist/esm/components/chip-set/utils.js.map +1 -1
  324. package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
  325. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  326. package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
  327. package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
  328. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +18 -0
  329. package/dist/esm/components/date-range-picker/CDateRangePicker.js +21 -10
  330. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  331. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  332. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  333. package/dist/esm/components/dropdown/CDropdownContext.js.map +1 -1
  334. package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
  335. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  336. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  337. package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
  338. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  339. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  340. package/dist/esm/components/dropdown/utils.js.map +1 -1
  341. package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
  342. package/dist/esm/components/focus-trap/CFocusTrap.js.map +1 -1
  343. package/dist/esm/components/focus-trap/utils.js.map +1 -1
  344. package/dist/esm/components/footer/CFooter.js.map +1 -1
  345. package/dist/esm/components/form/CChipInput.d.ts +1 -1
  346. package/dist/esm/components/form/CChipInput.js +3 -4
  347. package/dist/esm/components/form/CChipInput.js.map +1 -1
  348. package/dist/esm/components/form/CForm.js.map +1 -1
  349. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  350. package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
  351. package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
  352. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  353. package/dist/esm/components/form/CFormFloating.js.map +1 -1
  354. package/dist/esm/components/form/CFormInput.js.map +1 -1
  355. package/dist/esm/components/form/CFormLabel.js.map +1 -1
  356. package/dist/esm/components/form/CFormRange.js.map +1 -1
  357. package/dist/esm/components/form/CFormSelect.js.map +1 -1
  358. package/dist/esm/components/form/CFormSwitch.js.map +1 -1
  359. package/dist/esm/components/form/CFormText.js.map +1 -1
  360. package/dist/esm/components/form/CFormTextarea.js.map +1 -1
  361. package/dist/esm/components/form/CInputGroup.js.map +1 -1
  362. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  363. package/dist/esm/components/grid/CCol.js.map +1 -1
  364. package/dist/esm/components/grid/CContainer.js.map +1 -1
  365. package/dist/esm/components/grid/CRow.js.map +1 -1
  366. package/dist/esm/components/header/CHeader.js.map +1 -1
  367. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  368. package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
  369. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  370. package/dist/esm/components/header/CHeaderText.js.map +1 -1
  371. package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
  372. package/dist/esm/components/image/CImage.js.map +1 -1
  373. package/dist/esm/components/link/CLink.js.map +1 -1
  374. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  375. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  376. package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
  377. package/dist/esm/components/modal/CModal.js.map +1 -1
  378. package/dist/esm/components/modal/CModalBody.js.map +1 -1
  379. package/dist/esm/components/modal/CModalContent.js.map +1 -1
  380. package/dist/esm/components/modal/CModalContext.js.map +1 -1
  381. package/dist/esm/components/modal/CModalDialog.js.map +1 -1
  382. package/dist/esm/components/modal/CModalFooter.js.map +1 -1
  383. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  384. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  385. package/dist/esm/components/multi-select/CMultiSelect.d.ts +0 -3
  386. package/dist/esm/components/multi-select/CMultiSelect.js +44 -7
  387. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  388. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +1 -1
  389. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  390. package/dist/esm/components/multi-select/CMultiSelectOptions.js +16 -10
  391. package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
  392. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  393. package/dist/esm/components/multi-select/types.d.ts +1 -0
  394. package/dist/esm/components/multi-select/utils.d.ts +2 -1
  395. package/dist/esm/components/multi-select/utils.js +9 -6
  396. package/dist/esm/components/multi-select/utils.js.map +1 -1
  397. package/dist/esm/components/nav/CNav.js.map +1 -1
  398. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  399. package/dist/esm/components/nav/CNavGroupContext.js.map +1 -1
  400. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  401. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  402. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  403. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  404. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  405. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  406. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  407. package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
  408. package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
  409. package/dist/esm/components/offcanvas/COffcanvas.js +7 -2
  410. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  411. package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
  412. package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
  413. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  414. package/dist/esm/components/one-time-password-input/COneTimePassword.d.ts +1 -1
  415. package/dist/esm/components/one-time-password-input/COneTimePassword.js +5 -5
  416. package/dist/esm/components/one-time-password-input/COneTimePassword.js.map +1 -1
  417. package/dist/esm/components/one-time-password-input/COneTimePasswordInput.js.map +1 -1
  418. package/dist/esm/components/one-time-password-input/utils.js.map +1 -1
  419. package/dist/esm/components/pagination/CPagination.js.map +1 -1
  420. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  421. package/dist/esm/components/password-input/CPasswordInput.js.map +1 -1
  422. package/dist/esm/components/picker/CPicker.js.map +1 -1
  423. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  424. package/dist/esm/components/popover/CPopover.js.map +1 -1
  425. package/dist/esm/components/progress/CProgress.js.map +1 -1
  426. package/dist/esm/components/progress/CProgressBar.js.map +1 -1
  427. package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
  428. package/dist/esm/components/progress/CProgressStackedContext.js.map +1 -1
  429. package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -1
  430. package/dist/esm/components/range-slider/utils.js.map +1 -1
  431. package/dist/esm/components/rating/CRating.js.map +1 -1
  432. package/dist/esm/components/search-button/CSearchButton.js.map +1 -1
  433. package/dist/esm/components/search-button/utils.js.map +1 -1
  434. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  435. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  436. package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
  437. package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
  438. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  439. package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
  440. package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
  441. package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
  442. package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
  443. package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
  444. package/dist/esm/components/smart-table/consts.js.map +1 -1
  445. package/dist/esm/components/smart-table/utils.js.map +1 -1
  446. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  447. package/dist/esm/components/stepper/CStepper.js.map +1 -1
  448. package/dist/esm/components/table/CTable.js.map +1 -1
  449. package/dist/esm/components/table/CTableBody.js.map +1 -1
  450. package/dist/esm/components/table/CTableCaption.js.map +1 -1
  451. package/dist/esm/components/table/CTableDataCell.js.map +1 -1
  452. package/dist/esm/components/table/CTableFoot.js.map +1 -1
  453. package/dist/esm/components/table/CTableHead.js.map +1 -1
  454. package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
  455. package/dist/esm/components/table/CTableResponsiveWrapper.js.map +1 -1
  456. package/dist/esm/components/table/CTableRow.js.map +1 -1
  457. package/dist/esm/components/table/utils.js.map +1 -1
  458. package/dist/esm/components/tabs/CTab.js.map +1 -1
  459. package/dist/esm/components/tabs/CTabContent.js.map +1 -1
  460. package/dist/esm/components/tabs/CTabList.js.map +1 -1
  461. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  462. package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
  463. package/dist/esm/components/tabs/CTabs.js.map +1 -1
  464. package/dist/esm/components/tabs/CTabsContext.js.map +1 -1
  465. package/dist/esm/components/time-picker/CTimePicker.d.ts +3 -3
  466. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  467. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  468. package/dist/esm/components/time-picker/utils.d.ts +1 -1
  469. package/dist/esm/components/time-picker/utils.js.map +1 -1
  470. package/dist/esm/components/toast/CToast.js.map +1 -1
  471. package/dist/esm/components/toast/CToastBody.js.map +1 -1
  472. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  473. package/dist/esm/components/toast/CToastContext.js.map +1 -1
  474. package/dist/esm/components/toast/CToastHeader.js.map +1 -1
  475. package/dist/esm/components/toast/CToaster.js.map +1 -1
  476. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  477. package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  478. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  479. package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
  480. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  481. package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
  482. package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
  483. package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
  484. package/dist/esm/hooks/useClipboard.js.map +1 -1
  485. package/dist/esm/hooks/useColorModes.js.map +1 -1
  486. package/dist/esm/hooks/useDebounce.js.map +1 -1
  487. package/dist/esm/hooks/useDebouncedCallback.js.map +1 -1
  488. package/dist/esm/hooks/useDropdownWithPopper.js.map +1 -1
  489. package/dist/esm/hooks/useForkedRef.js.map +1 -1
  490. package/dist/esm/hooks/useIsVisible.js.map +1 -1
  491. package/dist/esm/hooks/usePopper.js.map +1 -1
  492. package/dist/esm/hooks/useStateWithCallback.js.map +1 -1
  493. package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  494. package/dist/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
  495. package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  496. package/dist/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
  497. package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
  498. package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
  499. package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
  500. package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
  501. package/dist/esm/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
  502. package/dist/esm/node_modules/classnames/index.js.map +1 -1
  503. package/dist/esm/node_modules/dom-helpers/esm/addClass.js.map +1 -1
  504. package/dist/esm/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
  505. package/dist/esm/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
  506. package/dist/esm/node_modules/react-device-detect/dist/lib.js.map +1 -1
  507. package/dist/esm/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
  508. package/dist/esm/node_modules/react-transition-group/esm/Transition.js.map +1 -1
  509. package/dist/esm/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -1
  510. package/dist/esm/node_modules/react-transition-group/esm/config.js.map +1 -1
  511. package/dist/esm/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
  512. package/dist/esm/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
  513. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  514. package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
  515. package/dist/esm/props.js.map +1 -1
  516. package/dist/esm/utils/executeAfterTransition.js.map +1 -1
  517. package/dist/esm/utils/getNextActiveElement.js.map +1 -1
  518. package/dist/esm/utils/getNextSibling.js.map +1 -1
  519. package/dist/esm/utils/getPreviousSibling.js.map +1 -1
  520. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  521. package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
  522. package/dist/esm/utils/isInViewport.js.map +1 -1
  523. package/dist/esm/utils/isObjectInArray.js.map +1 -1
  524. package/dist/esm/utils/isRTL.js.map +1 -1
  525. package/dist/esm/utils/swipe.js.map +1 -1
  526. package/package.json +14 -14
  527. package/src/components/autocomplete/CAutocomplete.tsx +15 -13
  528. package/src/components/autocomplete/CAutocompleteOptions.tsx +11 -4
  529. package/src/components/autocomplete/types.ts +1 -0
  530. package/src/components/autocomplete/utils.ts +17 -0
  531. package/src/components/calendar/utils.ts +108 -73
  532. package/src/components/date-range-picker/CDateRangePicker.tsx +60 -3
  533. package/src/components/form/CChipInput.tsx +2 -6
  534. package/src/components/multi-select/CMultiSelect.tsx +55 -9
  535. package/src/components/multi-select/CMultiSelectNativeSelect.tsx +1 -9
  536. package/src/components/multi-select/CMultiSelectOptions.tsx +22 -9
  537. package/src/components/multi-select/types.ts +1 -0
  538. package/src/components/multi-select/utils.ts +15 -8
  539. package/src/components/offcanvas/COffcanvas.tsx +8 -4
  540. package/src/components/one-time-password-input/COneTimePassword.tsx +7 -6
  541. package/src/components/time-picker/CTimePicker.tsx +3 -3
  542. package/src/components/time-picker/utils.ts +3 -3
@@ -10,6 +10,7 @@ import {
10
10
  convertToDateObject,
11
11
  getDateBySelectionType,
12
12
  getLocalDateFromString,
13
+ getTimeFormatOptions,
13
14
  isDateDisabled,
14
15
  } from '../calendar/utils'
15
16
  import { CFormControlWrapper, CFormControlWrapperProps } from '../form/CFormControlWrapper'
@@ -91,6 +92,12 @@ export interface CDateRangePickerProps
91
92
  * Set the confirm button variant to an outlined button or a ghost button.
92
93
  */
93
94
  confirmButtonVariant?: 'outline' | 'ghost'
95
+ /**
96
+ * Specify a list of available hours using an array, or customize the filtering of hours through a function. Requires the `timepicker` property.
97
+ *
98
+ * @since 5.29.0
99
+ */
100
+ hours?: number[] | ((hour: number) => boolean)
94
101
  /**
95
102
  * 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.
96
103
  *
@@ -125,6 +132,12 @@ export interface CDateRangePickerProps
125
132
  * Toggle the readonly state for the component.
126
133
  */
127
134
  inputReadOnly?: boolean
135
+ /**
136
+ * Toggle the display of minutes, specify a list of available minutes using an array, or customize the filtering of minutes through a function. Requires the `timepicker` property.
137
+ *
138
+ * @since 5.29.0
139
+ */
140
+ minutes?: boolean | number[] | ((minute: number) => boolean)
128
141
  /**
129
142
  * 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.
130
143
  *
@@ -175,6 +188,12 @@ export interface CDateRangePickerProps
175
188
  * @since 4.10.0
176
189
  */
177
190
  required?: boolean
191
+ /**
192
+ * Toggle the display of seconds, specify a list of available seconds using an array, or customize the filtering of seconds through a function. Requires the `timepicker` property.
193
+ *
194
+ * @since 5.29.0
195
+ */
196
+ seconds?: boolean | number[] | ((second: number) => boolean)
178
197
  /**
179
198
  * Default icon or character character that separates two dates.
180
199
  */
@@ -240,6 +259,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
240
259
  feedbackValid,
241
260
  firstDayOfWeek,
242
261
  footer,
262
+ hours,
243
263
  id,
244
264
  indicator = true,
245
265
  inputDateFormat,
@@ -251,6 +271,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
251
271
  locale = 'default',
252
272
  maxDate,
253
273
  minDate,
274
+ minutes = true,
254
275
  monthFormat,
255
276
  name,
256
277
  navigation,
@@ -273,6 +294,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
273
294
  renderQuarterCell,
274
295
  renderYearCell,
275
296
  required,
297
+ seconds = true,
276
298
  separator = true,
277
299
  selectAdjacementDays,
278
300
  selectionType = 'day',
@@ -397,7 +419,16 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
397
419
  return ''
398
420
  }
399
421
 
400
- return timepicker ? _date.toLocaleString(locale) : _date.toLocaleDateString(locale)
422
+ if (!timepicker) {
423
+ return _date.toLocaleDateString(locale)
424
+ }
425
+
426
+ return _date.toLocaleString(locale, {
427
+ year: 'numeric',
428
+ month: 'numeric',
429
+ day: 'numeric',
430
+ ...getTimeFormatOptions(minutes, seconds),
431
+ })
401
432
  }
402
433
 
403
434
  const setInputValue = (el: HTMLInputElement | null, date: Date | string | null) => {
@@ -483,7 +514,13 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
483
514
  if (inputDateParse) {
484
515
  date = inputDateParse(value)
485
516
  } else if (selectionType === 'day') {
486
- date = getLocalDateFromString(value, locale, timepicker)
517
+ date = getLocalDateFromString(
518
+ value,
519
+ locale,
520
+ timepicker,
521
+ selectionType,
522
+ getTimeFormatOptions(minutes, seconds)
523
+ )
487
524
  } else {
488
525
  date = convertToDateObject(value, selectionType)
489
526
  }
@@ -775,16 +812,22 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
775
812
  <CTimePicker
776
813
  container="inline"
777
814
  disabled={_startDate === null ? true : false}
815
+ hours={hours}
778
816
  locale={locale}
817
+ minutes={minutes}
779
818
  onTimeChange={(_, __, date) => date && handleStartDateChange(date)}
819
+ seconds={minutes && seconds}
780
820
  time={_startDate && new Date(_startDate)}
781
821
  variant="select"
782
822
  />
783
823
  <CTimePicker
784
824
  container="inline"
785
825
  disabled={_endDate === null ? true : false}
826
+ hours={hours}
786
827
  locale={locale}
828
+ minutes={minutes}
787
829
  onTimeChange={(_, __, date) => date && handleEndDateChange(date)}
830
+ seconds={minutes && seconds}
788
831
  time={_endDate && new Date(_endDate)}
789
832
  variant="select"
790
833
  />
@@ -802,13 +845,16 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
802
845
  ? true
803
846
  : false
804
847
  }
848
+ hours={hours}
805
849
  key={index}
806
850
  locale={locale}
851
+ minutes={minutes}
807
852
  onTimeChange={(_, __, date) =>
808
853
  index === 0
809
854
  ? date && handleStartDateChange(date)
810
855
  : date && handleEndDateChange(date)
811
856
  }
857
+ seconds={minutes && seconds}
812
858
  time={
813
859
  index === 0
814
860
  ? _startDate && new Date(_startDate)
@@ -833,11 +879,11 @@ CDateRangePicker.propTypes = {
833
879
  ...CCalendar.propTypes,
834
880
  ...CFormControlWrapper.propTypes,
835
881
  ...CPicker.propTypes,
882
+ calendars: PropTypes.number,
836
883
  cancelButton: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
837
884
  cancelButtonColor: CButton.propTypes?.color,
838
885
  cancelButtonSize: CButton.propTypes?.size,
839
886
  cancelButtonVariant: CButton.propTypes?.variant,
840
- calendars: PropTypes.number,
841
887
  className: PropTypes.string,
842
888
  cleaner: PropTypes.bool,
843
889
  closeOnSelect: PropTypes.bool,
@@ -845,12 +891,18 @@ CDateRangePicker.propTypes = {
845
891
  confirmButtonColor: CButton.propTypes?.color,
846
892
  confirmButtonSize: CButton.propTypes?.size,
847
893
  confirmButtonVariant: CButton.propTypes?.variant,
894
+ hours: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number.isRequired), PropTypes.func]),
848
895
  id: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
849
896
  indicator: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
850
897
  inputDateFormat: PropTypes.func,
851
898
  inputDateParse: PropTypes.func,
852
899
  inputOnChangeDelay: PropTypes.number,
853
900
  inputReadOnly: PropTypes.bool,
901
+ minutes: PropTypes.oneOfType([
902
+ PropTypes.bool,
903
+ PropTypes.arrayOf(PropTypes.number.isRequired),
904
+ PropTypes.func,
905
+ ]),
854
906
  name: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
855
907
  placeholder: PropTypes.oneOfType([
856
908
  PropTypes.string,
@@ -863,6 +915,11 @@ CDateRangePicker.propTypes = {
863
915
  rangesButtonsSize: CButton.propTypes?.size,
864
916
  rangesButtonsVariant: CButton.propTypes?.variant,
865
917
  required: PropTypes.bool,
918
+ seconds: PropTypes.oneOfType([
919
+ PropTypes.bool,
920
+ PropTypes.arrayOf(PropTypes.number.isRequired),
921
+ PropTypes.func,
922
+ ]),
866
923
  separator: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
867
924
  size: PropTypes.oneOf(['sm', 'lg']),
868
925
  timepicker: PropTypes.bool,
@@ -6,7 +6,6 @@ import React, {
6
6
  ReactNode,
7
7
  forwardRef,
8
8
  isValidElement,
9
- useId,
10
9
  useMemo,
11
10
  useRef,
12
11
  useState,
@@ -65,7 +64,7 @@ export interface CChipInputProps extends Omit<
65
64
  */
66
65
  maxChips?: number | null
67
66
  /**
68
- * Sets the name of the hidden input used by the React Chip Input component for form submission.
67
+ * Sets the name of the hidden input the component renders. Without it the hidden input carries the values but is not submitted with the form.
69
68
  */
70
69
  name?: string
71
70
  /**
@@ -199,7 +198,6 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
199
198
  )
200
199
  const [inputValue, setInputValue] = useState('')
201
200
  const inputRef = useRef<HTMLInputElement>(null)
202
- const generatedName = useId()
203
201
 
204
202
  const values = useMemo(
205
203
  () => uniqueValues(isControlled ? (value as string[]) : _values),
@@ -440,8 +438,6 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
440
438
  },
441
439
  className
442
440
  )}
443
- aria-disabled={disabled ? true : undefined}
444
- aria-readonly={readOnly ? true : undefined}
445
441
  onClick={handleContainerClick}
446
442
  onKeyDown={handleContainerKeyDown}
447
443
  {...rest}
@@ -479,7 +475,7 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
479
475
  ref={inputRef}
480
476
  />
481
477
 
482
- <input type="hidden" name={name ?? generatedName} value={values.join(',')} />
478
+ <input type="hidden" name={name} value={values.join(',')} />
483
479
  </div>
484
480
  )
485
481
  }
@@ -28,6 +28,7 @@ import {
28
28
  getOptionsList,
29
29
  isExternalSearch,
30
30
  isGlobalSearch,
31
+ propagateGroupDisabled,
31
32
  selectOptions,
32
33
  } from './utils'
33
34
  import type {
@@ -111,9 +112,6 @@ export interface CMultiSelectProps
111
112
  hideSelectAllOnSearchNoResults?: boolean
112
113
  /**
113
114
  * Set the id attribute for the native select element.
114
- *
115
- * **[Deprecated since v5.3.0]** The name attribute for the native select element is generated based on the `id` property:
116
- * - `<select name="\{id\}-multi-select" />`
117
115
  */
118
116
  id?: string
119
117
  /**
@@ -311,7 +309,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
311
309
  allowCreateOptions,
312
310
  ariaCleanerLabel = 'Clear all selections',
313
311
  ariaIndicatorLabel = 'Toggle visibility of options menu',
314
- ariaSearchLabel = 'Search',
312
+ ariaSearchLabel = 'Search options',
315
313
  ariaTagDeleteLabel = 'Remove',
316
314
  className,
317
315
  cleaner = true,
@@ -336,7 +334,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
336
334
  onHide,
337
335
  onSelectionLimit,
338
336
  onShow,
339
- options,
337
+ options: optionsProp,
340
338
  optionsMaxHeight = 'auto',
341
339
  optionsStyle = 'checkbox',
342
340
  optionsTemplate,
@@ -381,12 +379,16 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
381
379
  const nativeSelectRef = useRef<HTMLSelectElement>(null)
382
380
  const searchRef = useRef<HTMLInputElement>(null)
383
381
  const isInitialMount = useRef(true)
382
+ const wasOpen = useRef(false)
384
383
  const uniqueId = useId()
385
384
 
385
+ const [labelledBy, setLabelledBy] = useState<string>()
386
386
  const [searchValue, setSearchValue] = useState('')
387
387
  const [selected, setSelected] = useState<SelectedOption[]>([])
388
388
  const [userOptions, setUserOptions] = useState<Option[]>([])
389
389
 
390
+ const options = useMemo(() => propagateGroupDisabled(optionsProp), [optionsProp])
391
+
390
392
  const filteredOptions = useMemo(() => {
391
393
  const source = isExternalSearch(search)
392
394
  ? [...options, ...filterOptionsList(searchValue, userOptions)]
@@ -523,6 +525,35 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
523
525
  filteredSelected: countSelected(filteredSelectableOptions),
524
526
  }
525
527
 
528
+ useEffect(() => {
529
+ if (rest['aria-label'] || rest['aria-labelledby']) {
530
+ setLabelledBy(undefined)
531
+ return
532
+ }
533
+
534
+ const label = nativeSelectRef.current?.labels?.[0]
535
+
536
+ if (!label || label.contains(dropdownRefElement.current)) {
537
+ setLabelledBy(undefined)
538
+ return
539
+ }
540
+
541
+ if (label.id) {
542
+ setLabelledBy(label.id)
543
+ return
544
+ }
545
+
546
+ const generated = id ? `${id}-label` : `multi-select-label-${uniqueId.replaceAll(':', '')}`
547
+ label.id = generated
548
+ setLabelledBy(generated)
549
+
550
+ return () => {
551
+ if (label.id === generated) {
552
+ label.removeAttribute('id')
553
+ }
554
+ }
555
+ }, [id, uniqueId, rest['aria-label'], rest['aria-labelledby']])
556
+
526
557
  useEffect(() => {
527
558
  if (!isInitialMount.current && resetSelectionOnOptionsChange) {
528
559
  return setSelected([])
@@ -567,11 +598,13 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
567
598
  }
568
599
 
569
600
  searchRef.current?.focus()
601
+ } else if (wasOpen.current && onHide) {
602
+ onHide()
570
603
  }
571
604
 
572
- return () => {
573
- if (onHide) onHide()
605
+ wasOpen.current = isOpen
574
606
 
607
+ return () => {
575
608
  if (isOpen) {
576
609
  const active = document.activeElement
577
610
  const menu = dropdownMenuElement.current as HTMLElement | null
@@ -618,6 +651,11 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
618
651
  event.preventDefault()
619
652
 
620
653
  const items = getOptionsList(dropdownMenuElement.current)
654
+
655
+ if (items.length === 0) {
656
+ return
657
+ }
658
+
621
659
  const target = event.target as HTMLDivElement
622
660
 
623
661
  getNextActiveElement(
@@ -677,6 +715,11 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
677
715
  if (isOpen && dropdownMenuElement.current && event.key === 'ArrowDown') {
678
716
  event.preventDefault()
679
717
  const items = getOptionsList(dropdownMenuElement.current)
718
+
719
+ if (items.length === 0) {
720
+ return
721
+ }
722
+
680
723
  const target = event.target as HTMLDivElement
681
724
 
682
725
  getNextActiveElement(
@@ -842,7 +885,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
842
885
  <CMultiSelectNativeSelect
843
886
  id={id ?? uniqueId}
844
887
  multiple={multiple}
845
- name={name ?? uniqueId}
888
+ name={name}
846
889
  options={selected}
847
890
  required={required}
848
891
  value={
@@ -862,6 +905,10 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
862
905
  role="combobox"
863
906
  aria-haspopup="listbox"
864
907
  aria-expanded={isOpen}
908
+ {...(rest['aria-label'] && { 'aria-label': rest['aria-label'] })}
909
+ {...((rest['aria-labelledby'] || labelledBy) && {
910
+ 'aria-labelledby': rest['aria-labelledby'] || labelledBy,
911
+ })}
865
912
  aria-controls={`multiselect-listbox-${uniqueId}`}
866
913
  {...(portal && { 'aria-owns': `multiselect-listbox-${uniqueId}` })}
867
914
  {...(disabled && { 'aria-disabled': true })}
@@ -884,7 +931,6 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
884
931
  className="form-multi-select-search"
885
932
  disabled={disabled}
886
933
  id={`search${id ?? uniqueId}`}
887
- name={`search${name ?? uniqueId}`}
888
934
  autoComplete="off"
889
935
  aria-label={ariaSearchLabel}
890
936
  aria-autocomplete="list"
@@ -30,15 +30,7 @@ export const CMultiSelectNativeSelect = forwardRef<
30
30
  CMultiSelectNativeSelectProps
31
31
  >(({ id, name, options, ...rest }, ref) => {
32
32
  return (
33
- <select
34
- className="form-multi-select"
35
- id={id}
36
- {...(id && !name && { name: `${id}-multi-select` })} // TODO: remove in v6
37
- {...(name && { name: name })}
38
- tabIndex={-1}
39
- {...rest}
40
- ref={ref}
41
- >
33
+ <select className="form-multi-select" id={id} name={name} tabIndex={-1} {...rest} ref={ref}>
42
34
  {options && createNativeOptions(options)}
43
35
  </select>
44
36
  )
@@ -85,13 +85,16 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
85
85
  const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>, option: Option) => {
86
86
  if (event.code === 'Space' || event.key === 'Enter') {
87
87
  event.preventDefault()
88
- onOptionOnClick?.(option)
88
+
89
+ if (!option.disabled) {
90
+ onOptionOnClick?.(option)
91
+ }
89
92
  }
90
93
 
91
94
  if (event.key === 'Down' || event.key === 'ArrowDown') {
92
95
  event.preventDefault()
93
96
  const target = event.target as HTMLElement
94
- const next = getNextSibling(target, '.form-multi-select-option')
97
+ const next = getNextSibling(target, '.form-multi-select-option:not(.disabled)')
95
98
 
96
99
  next && (next as HTMLElement).focus()
97
100
  }
@@ -99,7 +102,7 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
99
102
  if (event.key === 'Up' || event.key === 'ArrowUp') {
100
103
  event.preventDefault()
101
104
  const target = event.target as HTMLElement
102
- const prev = getPreviousSibling(target, '.form-multi-select-option')
105
+ const prev = getPreviousSibling(target, '.form-multi-select-option:not(.disabled)')
103
106
 
104
107
  prev && (prev as HTMLElement).focus()
105
108
  }
@@ -119,14 +122,20 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
119
122
 
120
123
  if (event.key === 'Down' || event.key === 'ArrowDown') {
121
124
  event.preventDefault()
122
- const next = getNextSibling(event.target as HTMLElement, '.form-multi-select-option')
125
+ const next = getNextSibling(
126
+ event.target as HTMLElement,
127
+ '.form-multi-select-option:not(.disabled)'
128
+ )
123
129
 
124
130
  next && (next as HTMLElement).focus()
125
131
  }
126
132
 
127
133
  if (event.key === 'Up' || event.key === 'ArrowUp') {
128
134
  event.preventDefault()
129
- const prev = getPreviousSibling(event.target as HTMLElement, '.form-multi-select-option')
135
+ const prev = getPreviousSibling(
136
+ event.target as HTMLElement,
137
+ '.form-multi-select-option:not(.disabled)'
138
+ )
130
139
 
131
140
  prev && (prev as HTMLElement).focus()
132
141
  }
@@ -158,9 +167,9 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
158
167
  disabled: option.disabled,
159
168
  })}
160
169
  key={index}
161
- onClick={() => onOptionOnClick && onOptionOnClick(option as Option)}
170
+ onClick={() => !option.disabled && onOptionOnClick?.(option as Option)}
162
171
  onKeyDown={(event) => handleKeyDown(event, option as Option)}
163
- tabIndex={0}
172
+ tabIndex={option.disabled ? -1 : 0}
164
173
  role="option"
165
174
  aria-selected={selected.some((_option) => _option.value === option.value)}
166
175
  aria-disabled={Boolean(option.disabled)}
@@ -170,19 +179,23 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
170
179
  ) : (
171
180
  <div
172
181
  className={classNames('form-multi-select-optgroup-label', {
182
+ disabled: option.disabled,
173
183
  'form-multi-select-optgroup-label-with-checkbox':
174
- optionsGroupsSelectable && optionsGroupsStyle === 'checkbox',
184
+ !option.disabled && optionsGroupsSelectable && optionsGroupsStyle === 'checkbox',
175
185
  'form-multi-selected':
186
+ !option.disabled &&
176
187
  optionsGroupsSelectable &&
177
188
  optionsGroupsStyle === 'checkbox' &&
178
189
  getGroupCheckboxState(option as OptionsGroup) === 'all',
179
190
  'form-multi-select-indeterminate':
191
+ !option.disabled &&
180
192
  optionsGroupsSelectable &&
181
193
  optionsGroupsStyle === 'checkbox' &&
182
194
  getGroupCheckboxState(option as OptionsGroup) === 'indeterminate',
183
195
  })}
184
196
  key={index}
185
- {...(optionsGroupsSelectable &&
197
+ {...(!option.disabled &&
198
+ optionsGroupsSelectable &&
186
199
  optionsGroupsStyle === 'checkbox' && {
187
200
  onClick: () => onGroupOnClick?.(option as OptionsGroup),
188
201
  onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) =>
@@ -9,6 +9,7 @@ export type Option = {
9
9
  }
10
10
 
11
11
  export type OptionsGroup = {
12
+ disabled?: boolean
12
13
  label: string
13
14
  options?: Option[]
14
15
  [key: string]: unknown
@@ -45,19 +45,13 @@ export const filterOptionsList = (search: string, _options: (Option | OptionsGro
45
45
  }
46
46
 
47
47
  export const flattenOptionsArray = (
48
- options: (Option | OptionsGroup)[],
49
- keepGroupLabel?: boolean
48
+ options: (Option | OptionsGroup)[]
50
49
  ): (Option | OptionsGroup)[] => {
51
50
  const optionsList: (Option | OptionsGroup)[] = []
52
51
 
53
52
  for (const option of options) {
54
53
  if (Array.isArray(option.options)) {
55
- const { options, ...rest } = option
56
- if (keepGroupLabel) {
57
- optionsList.push(rest)
58
- }
59
-
60
- optionsList.push(...options)
54
+ optionsList.push(...option.options)
61
55
  } else {
62
56
  optionsList.push(option)
63
57
  }
@@ -86,6 +80,19 @@ export const isGlobalSearch = (search: Search): boolean => {
86
80
  )
87
81
  }
88
82
 
83
+ export const propagateGroupDisabled = (
84
+ options: (Option | OptionsGroup)[],
85
+ disabled = false
86
+ ): (Option | OptionsGroup)[] =>
87
+ (Array.isArray(options) ? options : []).map((option) => {
88
+ const isDisabled = disabled || Boolean(option.disabled)
89
+ const resolved = isDisabled ? { ...option, disabled: true } : option
90
+
91
+ return Array.isArray(option.options)
92
+ ? { ...resolved, options: propagateGroupDisabled(option.options, isDisabled) as Option[] }
93
+ : resolved
94
+ })
95
+
89
96
  export const selectOptions = (
90
97
  multiple: boolean,
91
98
  options: (Option | OptionsGroup)[],
@@ -89,13 +89,17 @@ export const COffcanvas = forwardRef<HTMLDivElement, COffcanvasProps>(
89
89
  if (_visible && !scroll) {
90
90
  document.body.style.overflow = 'hidden'
91
91
  document.body.style.paddingRight = '0px'
92
- return
93
- }
94
-
95
- if (!scroll) {
92
+ } else if (!scroll) {
96
93
  document.body.style.removeProperty('overflow')
97
94
  document.body.style.removeProperty('padding-right')
98
95
  }
96
+
97
+ return () => {
98
+ if (!scroll) {
99
+ document.body.style.removeProperty('overflow')
100
+ document.body.style.removeProperty('padding-right')
101
+ }
102
+ }
99
103
  }, [_visible])
100
104
 
101
105
  const handleDismiss = () => {
@@ -71,7 +71,7 @@ export interface COneTimePasswordProps
71
71
  masked?: boolean
72
72
 
73
73
  /**
74
- * Name attribute for the hidden input field.
74
+ * Name attribute for the hidden input field. The visible slots are not named, so the code is submitted once, under this name; without it the component is not submitted at all.
75
75
  */
76
76
  name?: string
77
77
 
@@ -160,17 +160,17 @@ export const COneTimePassword = forwardRef<HTMLDivElement, COneTimePasswordProps
160
160
  }, [children])
161
161
 
162
162
  const [inputValues, setInputValues] = useState<string[]>(() => {
163
- const initialValue = String(value ?? defaultValue ?? '')
163
+ const initialValue = extractValidChars(String(value ?? defaultValue ?? ''), type)
164
164
  return Array.from({ length: inputCount }, (_, i) => initialValue[i] || '')
165
165
  })
166
166
 
167
167
  // Update input values when value prop changes (controlled mode)
168
168
  useEffect(() => {
169
169
  if (value !== undefined) {
170
- const valueString = String(value)
170
+ const valueString = extractValidChars(String(value), type)
171
171
  setInputValues(Array.from({ length: inputCount }, (_, i) => valueString[i] || ''))
172
172
  }
173
- }, [value, inputCount])
173
+ }, [type, value, inputCount])
174
174
 
175
175
  // Update hidden input and trigger events
176
176
  const updateValue = useCallback(
@@ -414,14 +414,15 @@ export const COneTimePassword = forwardRef<HTMLDivElement, COneTimePasswordProps
414
414
  inputChild.props.className
415
415
  ),
416
416
  id: inputChild.props.id || (id ? `${id}-${currentInputIndex}` : undefined),
417
- name: inputChild.props.name || (name ? `${name}-${currentInputIndex}` : undefined),
417
+ name: inputChild.props.name,
418
418
  placeholder:
419
419
  inputChild.props.placeholder ||
420
420
  (placeholder && placeholder.length > 1
421
421
  ? placeholder[currentInputIndex]
422
422
  : placeholder),
423
423
  value: inputValues[currentInputIndex] || '',
424
- tabIndex: currentInputIndex === 0 ? 0 : inputValues[currentInputIndex - 1] ? 0 : -1,
424
+ tabIndex:
425
+ !linear || currentInputIndex === 0 || inputValues[currentInputIndex - 1] ? 0 : -1,
425
426
  disabled: disabled || inputChild.props.disabled,
426
427
  readOnly: readOnly || inputChild.props.readOnly,
427
428
  required: required || inputChild.props.required,
@@ -106,7 +106,7 @@ export interface CTimePickerProps
106
106
  *
107
107
  * @since 5.0.0
108
108
  */
109
- hours?: number[] | ((hour: number) => number[])
109
+ hours?: number[] | ((hour: number) => boolean)
110
110
  /**
111
111
  * Set the id attribute for the input element.
112
112
  *
@@ -136,7 +136,7 @@ export interface CTimePickerProps
136
136
  *
137
137
  * @since 5.0.0
138
138
  */
139
- minutes?: boolean | number[] | ((minute: number) => number[])
139
+ minutes?: boolean | number[] | ((minute: number) => boolean)
140
140
  /**
141
141
  * Set the name attribute for the input element.
142
142
  *
@@ -162,7 +162,7 @@ export interface CTimePickerProps
162
162
  *
163
163
  * @since 4.8.0
164
164
  */
165
- seconds?: boolean | number[] | ((second: number) => number[])
165
+ seconds?: boolean | number[] | ((second: number) => boolean)
166
166
  /**
167
167
  * Size the component small or large.
168
168
  */
@@ -114,9 +114,9 @@ export const formatTimePartials = (
114
114
  export const getLocalizedTimePartials = (
115
115
  locale: string,
116
116
  ampm: 'auto' | boolean = 'auto',
117
- hours: boolean | number[] | ((hour: number) => number[]) = [],
118
- minutes: boolean | number[] | ((minute: number) => number[]) = [],
119
- seconds: boolean | number[] | ((second: number) => number[]) = []
117
+ hours: boolean | number[] | ((hour: number) => boolean) = [],
118
+ minutes: boolean | number[] | ((minute: number) => boolean) = [],
119
+ seconds: boolean | number[] | ((second: number) => boolean) = []
120
120
  ): LocalizedTimePartials => {
121
121
  const hour12 = (ampm === 'auto' && isAmPm(locale)) || ampm === true
122
122