@coreui/vue-pro 5.6.0 → 5.8.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 (553) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
  3. package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
  4. package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
  5. package/dist/cjs/components/accordion/CAccordionHeader.js.map +1 -1
  6. package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
  7. package/dist/cjs/components/accordion/index.js.map +1 -1
  8. package/dist/cjs/components/alert/CAlert.js.map +1 -1
  9. package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
  10. package/dist/cjs/components/alert/CAlertLink.js.map +1 -1
  11. package/dist/cjs/components/alert/index.js.map +1 -1
  12. package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
  13. package/dist/cjs/components/avatar/index.js.map +1 -1
  14. package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
  15. package/dist/cjs/components/backdrop/index.js.map +1 -1
  16. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  17. package/dist/cjs/components/badge/index.js.map +1 -1
  18. package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
  19. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  20. package/dist/cjs/components/breadcrumb/index.js.map +1 -1
  21. package/dist/cjs/components/button/CButton.js.map +1 -1
  22. package/dist/cjs/components/button/index.js.map +1 -1
  23. package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
  24. package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
  25. package/dist/cjs/components/button-group/index.js.map +1 -1
  26. package/dist/cjs/components/calendar/CCalendar.js +2 -2
  27. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  28. package/dist/cjs/components/calendar/index.js.map +1 -1
  29. package/dist/cjs/components/calendar/utils.js +5 -0
  30. package/dist/cjs/components/calendar/utils.js.map +1 -1
  31. package/dist/cjs/components/callout/CCallout.js.map +1 -1
  32. package/dist/cjs/components/callout/index.js.map +1 -1
  33. package/dist/cjs/components/card/CCard.js.map +1 -1
  34. package/dist/cjs/components/card/CCardBody.js.map +1 -1
  35. package/dist/cjs/components/card/CCardFooter.js.map +1 -1
  36. package/dist/cjs/components/card/CCardGroup.js.map +1 -1
  37. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  38. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  39. package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
  40. package/dist/cjs/components/card/CCardLink.js.map +1 -1
  41. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  42. package/dist/cjs/components/card/CCardText.js.map +1 -1
  43. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  44. package/dist/cjs/components/card/index.js.map +1 -1
  45. package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
  46. package/dist/cjs/components/carousel/CCarouselCaption.js.map +1 -1
  47. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  48. package/dist/cjs/components/carousel/index.js.map +1 -1
  49. package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
  50. package/dist/cjs/components/close-button/index.js.map +1 -1
  51. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  52. package/dist/cjs/components/collapse/index.js.map +1 -1
  53. package/dist/cjs/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
  54. package/dist/cjs/components/conditional-teleport/index.js.map +1 -1
  55. package/dist/cjs/components/date-picker/CDatePicker.d.ts +19 -0
  56. package/dist/cjs/components/date-picker/CDatePicker.js +9 -0
  57. package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
  58. package/dist/cjs/components/date-picker/index.js.map +1 -1
  59. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +19 -0
  60. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +26 -1
  61. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  62. package/dist/cjs/components/date-range-picker/index.js.map +1 -1
  63. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  64. package/dist/cjs/components/dropdown/CDropdown.d.ts +1 -1
  65. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  66. package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
  67. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  68. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  69. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  70. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  71. package/dist/cjs/components/dropdown/index.js.map +1 -1
  72. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  73. package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
  74. package/dist/cjs/components/element-cover/index.js.map +1 -1
  75. package/dist/cjs/components/footer/CFooter.js.map +1 -1
  76. package/dist/cjs/components/footer/index.js.map +1 -1
  77. package/dist/cjs/components/form/CForm.js.map +1 -1
  78. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  79. package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
  80. package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
  81. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  82. package/dist/cjs/components/form/CFormFloating.js.map +1 -1
  83. package/dist/cjs/components/form/CFormInput.js.map +1 -1
  84. package/dist/cjs/components/form/CFormLabel.js.map +1 -1
  85. package/dist/cjs/components/form/CFormRange.js.map +1 -1
  86. package/dist/cjs/components/form/CFormSelect.js.map +1 -1
  87. package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
  88. package/dist/cjs/components/form/CFormText.js.map +1 -1
  89. package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
  90. package/dist/cjs/components/form/CInputGroup.js.map +1 -1
  91. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  92. package/dist/cjs/components/form/index.js.map +1 -1
  93. package/dist/cjs/components/grid/CCol.js.map +1 -1
  94. package/dist/cjs/components/grid/CContainer.js.map +1 -1
  95. package/dist/cjs/components/grid/CRow.js.map +1 -1
  96. package/dist/cjs/components/grid/index.js.map +1 -1
  97. package/dist/cjs/components/header/CHeader.js.map +1 -1
  98. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  99. package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
  100. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  101. package/dist/cjs/components/header/CHeaderText.js.map +1 -1
  102. package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
  103. package/dist/cjs/components/header/index.js.map +1 -1
  104. package/dist/cjs/components/image/CImage.js.map +1 -1
  105. package/dist/cjs/components/image/index.js.map +1 -1
  106. package/dist/cjs/components/index.d.ts +1 -0
  107. package/dist/cjs/components/index.js +28 -24
  108. package/dist/cjs/components/index.js.map +1 -1
  109. package/dist/cjs/components/link/CLink.js.map +1 -1
  110. package/dist/cjs/components/link/index.js.map +1 -1
  111. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  112. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  113. package/dist/cjs/components/list-group/index.js.map +1 -1
  114. package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
  115. package/dist/cjs/components/loading-button/index.js.map +1 -1
  116. package/dist/cjs/components/modal/CModal.js.map +1 -1
  117. package/dist/cjs/components/modal/CModalBody.js.map +1 -1
  118. package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
  119. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  120. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  121. package/dist/cjs/components/modal/index.js.map +1 -1
  122. package/dist/cjs/components/multi-select/CMultiSelect.d.ts +75 -8
  123. package/dist/cjs/components/multi-select/CMultiSelect.js +176 -124
  124. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  125. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  126. package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
  127. package/dist/cjs/components/multi-select/CMultiSelectSelection.d.ts +12 -3
  128. package/dist/cjs/components/multi-select/CMultiSelectSelection.js +23 -1
  129. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  130. package/dist/cjs/components/multi-select/index.js.map +1 -1
  131. package/dist/cjs/components/multi-select/types.d.ts +4 -0
  132. package/dist/cjs/components/multi-select/utils.d.ts +5 -2
  133. package/dist/cjs/components/multi-select/utils.js +18 -1
  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/CNavGroupItems.js.map +1 -1
  138. package/dist/cjs/components/nav/CNavItem.d.ts +4 -2
  139. package/dist/cjs/components/nav/CNavItem.js +12 -1
  140. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  141. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  142. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  143. package/dist/cjs/components/nav/index.js.map +1 -1
  144. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  145. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  146. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  147. package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
  148. package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
  149. package/dist/cjs/components/navbar/index.js.map +1 -1
  150. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  151. package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
  152. package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
  153. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  154. package/dist/cjs/components/offcanvas/index.js.map +1 -1
  155. package/dist/cjs/components/pagination/CPagination.js.map +1 -1
  156. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  157. package/dist/cjs/components/pagination/index.js.map +1 -1
  158. package/dist/cjs/components/picker/CPicker.d.ts +19 -0
  159. package/dist/cjs/components/picker/CPicker.js +32 -7
  160. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  161. package/dist/cjs/components/picker/index.js.map +1 -1
  162. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  163. package/dist/cjs/components/placeholder/index.js.map +1 -1
  164. package/dist/cjs/components/popover/CPopover.js +1 -1
  165. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  166. package/dist/cjs/components/popover/index.js.map +1 -1
  167. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  168. package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
  169. package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
  170. package/dist/cjs/components/progress/index.js.map +1 -1
  171. package/dist/cjs/components/props.js.map +1 -1
  172. package/dist/cjs/components/range-slider/CRangeSlider.d.ts +241 -0
  173. package/dist/cjs/components/range-slider/CRangeSlider.js +311 -0
  174. package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -0
  175. package/dist/cjs/components/range-slider/index.d.ts +6 -0
  176. package/dist/cjs/components/range-slider/index.js +13 -0
  177. package/dist/cjs/components/range-slider/index.js.map +1 -0
  178. package/dist/cjs/components/range-slider/types.d.ts +11 -0
  179. package/dist/cjs/components/range-slider/utils.d.ts +38 -0
  180. package/dist/cjs/components/range-slider/utils.js +172 -0
  181. package/dist/cjs/components/range-slider/utils.js.map +1 -0
  182. package/dist/cjs/components/rating/CRating.js.map +1 -1
  183. package/dist/cjs/components/rating/index.js.map +1 -1
  184. package/dist/cjs/components/sidebar/CSidebar.js +0 -1
  185. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  186. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  187. package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
  188. package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
  189. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  190. package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
  191. package/dist/cjs/components/sidebar/index.js.map +1 -1
  192. package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
  193. package/dist/cjs/components/smart-pagination/index.js.map +1 -1
  194. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  195. package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
  196. package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
  197. package/dist/cjs/components/smart-table/index.js.map +1 -1
  198. package/dist/cjs/components/smart-table/utils.js.map +1 -1
  199. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  200. package/dist/cjs/components/spinner/index.js.map +1 -1
  201. package/dist/cjs/components/table/CTable.js.map +1 -1
  202. package/dist/cjs/components/table/CTableBody.js.map +1 -1
  203. package/dist/cjs/components/table/CTableCaption.js.map +1 -1
  204. package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
  205. package/dist/cjs/components/table/CTableFoot.js.map +1 -1
  206. package/dist/cjs/components/table/CTableHead.js.map +1 -1
  207. package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
  208. package/dist/cjs/components/table/CTableRow.js.map +1 -1
  209. package/dist/cjs/components/table/index.js.map +1 -1
  210. package/dist/cjs/components/table/utils.js.map +1 -1
  211. package/dist/cjs/components/tabs/CTab.js.map +1 -1
  212. package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
  213. package/dist/cjs/components/tabs/CTabList.js.map +1 -1
  214. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  215. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
  216. package/dist/cjs/components/tabs/CTabs.js.map +1 -1
  217. package/dist/cjs/components/tabs/index.js.map +1 -1
  218. package/dist/cjs/components/time-picker/CTimePicker.d.ts +19 -0
  219. package/dist/cjs/components/time-picker/CTimePicker.js +26 -1
  220. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  221. package/dist/cjs/components/time-picker/CTimePickerRollCol.js +1 -1
  222. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  223. package/dist/cjs/components/time-picker/index.js.map +1 -1
  224. package/dist/cjs/components/time-picker/utils.js.map +1 -1
  225. package/dist/cjs/components/toast/CToast.js.map +1 -1
  226. package/dist/cjs/components/toast/CToastBody.js.map +1 -1
  227. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  228. package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
  229. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  230. package/dist/cjs/components/toast/index.js.map +1 -1
  231. package/dist/cjs/components/tooltip/CTooltip.js +1 -1
  232. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  233. package/dist/cjs/components/tooltip/index.js.map +1 -1
  234. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  235. package/dist/cjs/components/virtual-scroller/index.js.map +1 -1
  236. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  237. package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
  238. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  239. package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
  240. package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
  241. package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
  242. package/dist/cjs/components/widgets/index.js.map +1 -1
  243. package/dist/cjs/composables/index.d.ts +2 -1
  244. package/dist/cjs/composables/useColorModes.js.map +1 -1
  245. package/dist/cjs/composables/useDebouncedCallback.js.map +1 -1
  246. package/dist/cjs/composables/useDropdownWithPopper.d.ts +10 -0
  247. package/dist/cjs/composables/useDropdownWithPopper.js +110 -0
  248. package/dist/cjs/composables/useDropdownWithPopper.js.map +1 -0
  249. package/dist/cjs/composables/useIsVisible.js.map +1 -1
  250. package/dist/cjs/composables/usePopper.js.map +1 -1
  251. package/dist/cjs/composables/useUniqueId.js.map +1 -1
  252. package/dist/cjs/directives/v-c-placeholder.js.map +1 -1
  253. package/dist/cjs/directives/v-c-popover.js.map +1 -1
  254. package/dist/cjs/directives/v-c-tooltip.js.map +1 -1
  255. package/dist/cjs/directives/v-c-visible.js.map +1 -1
  256. package/dist/cjs/index.js +36 -30
  257. package/dist/cjs/index.js.map +1 -1
  258. package/dist/cjs/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
  259. package/dist/cjs/node_modules/is-plain-object/dist/is-plain-object.js.map +1 -1
  260. package/dist/cjs/props.js.map +1 -1
  261. package/dist/cjs/utils/getNextActiveElement.js +1 -1
  262. package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
  263. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  264. package/dist/cjs/utils/isInViewport.js.map +1 -1
  265. package/dist/cjs/utils/isObjectInArray.js.map +1 -1
  266. package/dist/cjs/utils/isRTL.js.map +1 -1
  267. package/dist/cjs/utils/transition.js.map +1 -1
  268. package/dist/esm/components/accordion/CAccordion.js.map +1 -1
  269. package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
  270. package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
  271. package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
  272. package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
  273. package/dist/esm/components/accordion/index.js.map +1 -1
  274. package/dist/esm/components/alert/CAlert.js.map +1 -1
  275. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  276. package/dist/esm/components/alert/CAlertLink.js.map +1 -1
  277. package/dist/esm/components/alert/index.js.map +1 -1
  278. package/dist/esm/components/avatar/CAvatar.js.map +1 -1
  279. package/dist/esm/components/avatar/index.js.map +1 -1
  280. package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
  281. package/dist/esm/components/backdrop/index.js.map +1 -1
  282. package/dist/esm/components/badge/CBadge.js.map +1 -1
  283. package/dist/esm/components/badge/index.js.map +1 -1
  284. package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
  285. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  286. package/dist/esm/components/breadcrumb/index.js.map +1 -1
  287. package/dist/esm/components/button/CButton.js.map +1 -1
  288. package/dist/esm/components/button/index.js.map +1 -1
  289. package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
  290. package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
  291. package/dist/esm/components/button-group/index.js.map +1 -1
  292. package/dist/esm/components/calendar/CCalendar.js +2 -2
  293. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  294. package/dist/esm/components/calendar/index.js.map +1 -1
  295. package/dist/esm/components/calendar/utils.js +5 -0
  296. package/dist/esm/components/calendar/utils.js.map +1 -1
  297. package/dist/esm/components/callout/CCallout.js.map +1 -1
  298. package/dist/esm/components/callout/index.js.map +1 -1
  299. package/dist/esm/components/card/CCard.js.map +1 -1
  300. package/dist/esm/components/card/CCardBody.js.map +1 -1
  301. package/dist/esm/components/card/CCardFooter.js.map +1 -1
  302. package/dist/esm/components/card/CCardGroup.js.map +1 -1
  303. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  304. package/dist/esm/components/card/CCardImage.js.map +1 -1
  305. package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
  306. package/dist/esm/components/card/CCardLink.js.map +1 -1
  307. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  308. package/dist/esm/components/card/CCardText.js.map +1 -1
  309. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  310. package/dist/esm/components/card/index.js.map +1 -1
  311. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  312. package/dist/esm/components/carousel/CCarouselCaption.js.map +1 -1
  313. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  314. package/dist/esm/components/carousel/index.js.map +1 -1
  315. package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
  316. package/dist/esm/components/close-button/index.js.map +1 -1
  317. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  318. package/dist/esm/components/collapse/index.js.map +1 -1
  319. package/dist/esm/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
  320. package/dist/esm/components/conditional-teleport/index.js.map +1 -1
  321. package/dist/esm/components/date-picker/CDatePicker.d.ts +19 -0
  322. package/dist/esm/components/date-picker/CDatePicker.js +9 -0
  323. package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
  324. package/dist/esm/components/date-picker/index.js.map +1 -1
  325. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +19 -0
  326. package/dist/esm/components/date-range-picker/CDateRangePicker.js +26 -1
  327. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  328. package/dist/esm/components/date-range-picker/index.js.map +1 -1
  329. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  330. package/dist/esm/components/dropdown/CDropdown.d.ts +1 -1
  331. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  332. package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
  333. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  334. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  335. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  336. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  337. package/dist/esm/components/dropdown/index.js.map +1 -1
  338. package/dist/esm/components/dropdown/utils.js.map +1 -1
  339. package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
  340. package/dist/esm/components/element-cover/index.js.map +1 -1
  341. package/dist/esm/components/footer/CFooter.js.map +1 -1
  342. package/dist/esm/components/footer/index.js.map +1 -1
  343. package/dist/esm/components/form/CForm.js.map +1 -1
  344. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  345. package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
  346. package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
  347. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  348. package/dist/esm/components/form/CFormFloating.js.map +1 -1
  349. package/dist/esm/components/form/CFormInput.js.map +1 -1
  350. package/dist/esm/components/form/CFormLabel.js.map +1 -1
  351. package/dist/esm/components/form/CFormRange.js.map +1 -1
  352. package/dist/esm/components/form/CFormSelect.js.map +1 -1
  353. package/dist/esm/components/form/CFormSwitch.js.map +1 -1
  354. package/dist/esm/components/form/CFormText.js.map +1 -1
  355. package/dist/esm/components/form/CFormTextarea.js.map +1 -1
  356. package/dist/esm/components/form/CInputGroup.js.map +1 -1
  357. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  358. package/dist/esm/components/form/index.js.map +1 -1
  359. package/dist/esm/components/grid/CCol.js.map +1 -1
  360. package/dist/esm/components/grid/CContainer.js.map +1 -1
  361. package/dist/esm/components/grid/CRow.js.map +1 -1
  362. package/dist/esm/components/grid/index.js.map +1 -1
  363. package/dist/esm/components/header/CHeader.js.map +1 -1
  364. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  365. package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
  366. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  367. package/dist/esm/components/header/CHeaderText.js.map +1 -1
  368. package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
  369. package/dist/esm/components/header/index.js.map +1 -1
  370. package/dist/esm/components/image/CImage.js.map +1 -1
  371. package/dist/esm/components/image/index.js.map +1 -1
  372. package/dist/esm/components/index.d.ts +1 -0
  373. package/dist/esm/components/index.js +2 -0
  374. package/dist/esm/components/index.js.map +1 -1
  375. package/dist/esm/components/link/CLink.js.map +1 -1
  376. package/dist/esm/components/link/index.js.map +1 -1
  377. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  378. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  379. package/dist/esm/components/list-group/index.js.map +1 -1
  380. package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
  381. package/dist/esm/components/loading-button/index.js.map +1 -1
  382. package/dist/esm/components/modal/CModal.js.map +1 -1
  383. package/dist/esm/components/modal/CModalBody.js.map +1 -1
  384. package/dist/esm/components/modal/CModalFooter.js.map +1 -1
  385. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  386. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  387. package/dist/esm/components/modal/index.js.map +1 -1
  388. package/dist/esm/components/multi-select/CMultiSelect.d.ts +75 -8
  389. package/dist/esm/components/multi-select/CMultiSelect.js +178 -126
  390. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  391. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  392. package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
  393. package/dist/esm/components/multi-select/CMultiSelectSelection.d.ts +12 -3
  394. package/dist/esm/components/multi-select/CMultiSelectSelection.js +23 -1
  395. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  396. package/dist/esm/components/multi-select/index.js.map +1 -1
  397. package/dist/esm/components/multi-select/types.d.ts +4 -0
  398. package/dist/esm/components/multi-select/utils.d.ts +5 -2
  399. package/dist/esm/components/multi-select/utils.js +16 -2
  400. package/dist/esm/components/multi-select/utils.js.map +1 -1
  401. package/dist/esm/components/nav/CNav.js.map +1 -1
  402. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  403. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  404. package/dist/esm/components/nav/CNavItem.d.ts +4 -2
  405. package/dist/esm/components/nav/CNavItem.js +12 -1
  406. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  407. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  408. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  409. package/dist/esm/components/nav/index.js.map +1 -1
  410. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  411. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  412. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  413. package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
  414. package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
  415. package/dist/esm/components/navbar/index.js.map +1 -1
  416. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  417. package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
  418. package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
  419. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  420. package/dist/esm/components/offcanvas/index.js.map +1 -1
  421. package/dist/esm/components/pagination/CPagination.js.map +1 -1
  422. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  423. package/dist/esm/components/pagination/index.js.map +1 -1
  424. package/dist/esm/components/picker/CPicker.d.ts +19 -0
  425. package/dist/esm/components/picker/CPicker.js +32 -7
  426. package/dist/esm/components/picker/CPicker.js.map +1 -1
  427. package/dist/esm/components/picker/index.js.map +1 -1
  428. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  429. package/dist/esm/components/placeholder/index.js.map +1 -1
  430. package/dist/esm/components/popover/CPopover.js +1 -1
  431. package/dist/esm/components/popover/CPopover.js.map +1 -1
  432. package/dist/esm/components/popover/index.js.map +1 -1
  433. package/dist/esm/components/progress/CProgress.js.map +1 -1
  434. package/dist/esm/components/progress/CProgressBar.js.map +1 -1
  435. package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
  436. package/dist/esm/components/progress/index.js.map +1 -1
  437. package/dist/esm/components/props.js.map +1 -1
  438. package/dist/esm/components/range-slider/CRangeSlider.d.ts +241 -0
  439. package/dist/esm/components/range-slider/CRangeSlider.js +309 -0
  440. package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -0
  441. package/dist/esm/components/range-slider/index.d.ts +6 -0
  442. package/dist/esm/components/range-slider/index.js +10 -0
  443. package/dist/esm/components/range-slider/index.js.map +1 -0
  444. package/dist/esm/components/range-slider/types.d.ts +11 -0
  445. package/dist/esm/components/range-slider/utils.d.ts +38 -0
  446. package/dist/esm/components/range-slider/utils.js +157 -0
  447. package/dist/esm/components/range-slider/utils.js.map +1 -0
  448. package/dist/esm/components/rating/CRating.js.map +1 -1
  449. package/dist/esm/components/rating/index.js.map +1 -1
  450. package/dist/esm/components/sidebar/CSidebar.js +0 -1
  451. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  452. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  453. package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
  454. package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
  455. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  456. package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
  457. package/dist/esm/components/sidebar/index.js.map +1 -1
  458. package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
  459. package/dist/esm/components/smart-pagination/index.js.map +1 -1
  460. package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
  461. package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
  462. package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
  463. package/dist/esm/components/smart-table/index.js.map +1 -1
  464. package/dist/esm/components/smart-table/utils.js.map +1 -1
  465. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  466. package/dist/esm/components/spinner/index.js.map +1 -1
  467. package/dist/esm/components/table/CTable.js.map +1 -1
  468. package/dist/esm/components/table/CTableBody.js.map +1 -1
  469. package/dist/esm/components/table/CTableCaption.js.map +1 -1
  470. package/dist/esm/components/table/CTableDataCell.js.map +1 -1
  471. package/dist/esm/components/table/CTableFoot.js.map +1 -1
  472. package/dist/esm/components/table/CTableHead.js.map +1 -1
  473. package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
  474. package/dist/esm/components/table/CTableRow.js.map +1 -1
  475. package/dist/esm/components/table/index.js.map +1 -1
  476. package/dist/esm/components/table/utils.js.map +1 -1
  477. package/dist/esm/components/tabs/CTab.js.map +1 -1
  478. package/dist/esm/components/tabs/CTabContent.js.map +1 -1
  479. package/dist/esm/components/tabs/CTabList.js.map +1 -1
  480. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  481. package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
  482. package/dist/esm/components/tabs/CTabs.js.map +1 -1
  483. package/dist/esm/components/tabs/index.js.map +1 -1
  484. package/dist/esm/components/time-picker/CTimePicker.d.ts +19 -0
  485. package/dist/esm/components/time-picker/CTimePicker.js +26 -1
  486. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  487. package/dist/esm/components/time-picker/CTimePickerRollCol.js +1 -1
  488. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  489. package/dist/esm/components/time-picker/index.js.map +1 -1
  490. package/dist/esm/components/time-picker/utils.js.map +1 -1
  491. package/dist/esm/components/toast/CToast.js.map +1 -1
  492. package/dist/esm/components/toast/CToastBody.js.map +1 -1
  493. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  494. package/dist/esm/components/toast/CToastHeader.js.map +1 -1
  495. package/dist/esm/components/toast/CToaster.js.map +1 -1
  496. package/dist/esm/components/toast/index.js.map +1 -1
  497. package/dist/esm/components/tooltip/CTooltip.js +1 -1
  498. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  499. package/dist/esm/components/tooltip/index.js.map +1 -1
  500. package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  501. package/dist/esm/components/virtual-scroller/index.js.map +1 -1
  502. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  503. package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
  504. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  505. package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
  506. package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
  507. package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
  508. package/dist/esm/components/widgets/index.js.map +1 -1
  509. package/dist/esm/composables/index.d.ts +2 -1
  510. package/dist/esm/composables/useColorModes.js.map +1 -1
  511. package/dist/esm/composables/useDebouncedCallback.js.map +1 -1
  512. package/dist/esm/composables/useDropdownWithPopper.d.ts +10 -0
  513. package/dist/esm/composables/useDropdownWithPopper.js +108 -0
  514. package/dist/esm/composables/useDropdownWithPopper.js.map +1 -0
  515. package/dist/esm/composables/useIsVisible.js.map +1 -1
  516. package/dist/esm/composables/usePopper.js.map +1 -1
  517. package/dist/esm/composables/useUniqueId.js.map +1 -1
  518. package/dist/esm/directives/v-c-placeholder.js.map +1 -1
  519. package/dist/esm/directives/v-c-popover.js.map +1 -1
  520. package/dist/esm/directives/v-c-tooltip.js.map +1 -1
  521. package/dist/esm/directives/v-c-visible.js.map +1 -1
  522. package/dist/esm/index.js +3 -0
  523. package/dist/esm/index.js.map +1 -1
  524. package/dist/esm/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
  525. package/dist/esm/node_modules/is-plain-object/dist/is-plain-object.js.map +1 -1
  526. package/dist/esm/props.js.map +1 -1
  527. package/dist/esm/utils/getNextActiveElement.js +1 -1
  528. package/dist/esm/utils/getNextActiveElement.js.map +1 -1
  529. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  530. package/dist/esm/utils/isInViewport.js.map +1 -1
  531. package/dist/esm/utils/isObjectInArray.js.map +1 -1
  532. package/dist/esm/utils/isRTL.js.map +1 -1
  533. package/dist/esm/utils/transition.js.map +1 -1
  534. package/package.json +8 -8
  535. package/src/components/calendar/CCalendar.ts +2 -2
  536. package/src/components/calendar/utils.ts +6 -0
  537. package/src/components/date-picker/CDatePicker.ts +9 -0
  538. package/src/components/date-range-picker/CDateRangePicker.ts +26 -2
  539. package/src/components/index.ts +1 -0
  540. package/src/components/multi-select/CMultiSelect.ts +271 -175
  541. package/src/components/multi-select/CMultiSelectSelection.ts +29 -2
  542. package/src/components/multi-select/types.ts +9 -0
  543. package/src/components/multi-select/utils.ts +26 -1
  544. package/src/components/nav/CNavItem.ts +12 -1
  545. package/src/components/picker/CPicker.ts +43 -7
  546. package/src/components/range-slider/CRangeSlider.ts +420 -0
  547. package/src/components/range-slider/index.ts +10 -0
  548. package/src/components/range-slider/types.ts +16 -0
  549. package/src/components/range-slider/utils.ts +241 -0
  550. package/src/components/sidebar/CSidebar.ts +0 -1
  551. package/src/components/time-picker/CTimePicker.ts +26 -1
  552. package/src/composables/index.ts +9 -1
  553. package/src/composables/useDropdownWithPopper.ts +130 -0
@@ -0,0 +1,241 @@
1
+ import type { Label, ThumbSize } from './types'
2
+
3
+ export const calculateClickValue = (
4
+ event: MouseEvent,
5
+ container: HTMLDivElement,
6
+ min: number,
7
+ max: number,
8
+ step: number,
9
+ vertical: boolean,
10
+ rtl: boolean,
11
+ ) => {
12
+ const clickPosition = getClickPosition(event, container, vertical, rtl)
13
+ const value = min + clickPosition * (max - min)
14
+ return roundToStep(value, step)
15
+ }
16
+
17
+ export const calculateMoveValue = (
18
+ event: MouseEvent,
19
+ container: HTMLDivElement,
20
+ min: number,
21
+ max: number,
22
+ step: number,
23
+ vertical: boolean,
24
+ rtl: boolean,
25
+ ) => {
26
+ const rect = container.getBoundingClientRect()
27
+ const position = vertical
28
+ ? calculateVerticalPosition(event.clientY, rect)
29
+ : calculateHorizontalPosition(event.clientX, rect, rtl)
30
+
31
+ if (typeof position === 'string') {
32
+ return position === 'max' ? max : min
33
+ }
34
+
35
+ const value = min + position * (max - min)
36
+
37
+ return roundToStep(value, step)
38
+ }
39
+
40
+ export const calculateVerticalPosition = (mouseY: number, rect: DOMRect) => {
41
+ if (mouseY < rect.top) {
42
+ return 'max'
43
+ }
44
+
45
+ if (mouseY > rect.bottom) {
46
+ return 'min'
47
+ }
48
+
49
+ return Math.min(Math.max((rect.bottom - mouseY) / rect.height, 0), 1)
50
+ }
51
+
52
+ export const calculateHorizontalPosition = (mouseX: number, rect: DOMRect, rtl: boolean) => {
53
+ if (mouseX < rect.left) {
54
+ return rtl ? 'max' : 'min'
55
+ }
56
+
57
+ if (mouseX > rect.right) {
58
+ return rtl ? 'min' : 'max'
59
+ }
60
+
61
+ const relativeX = rtl ? rect.right - mouseX : mouseX - rect.left
62
+ return Math.min(Math.max(relativeX / rect.width, 0), 1)
63
+ }
64
+
65
+ export const calculateLabelPosition = (
66
+ min: number,
67
+ max: number,
68
+ labels: Label[],
69
+ label: Label,
70
+ index: number,
71
+ ) => {
72
+ if (typeof label === 'object' && 'value' in label) {
73
+ return `${((label.value - min) / (max - min)) * 100}%`
74
+ }
75
+
76
+ return `${(index / (labels.length - 1)) * 100}%`
77
+ }
78
+
79
+ export const calculateTooltipPosition = (
80
+ min: number,
81
+ max: number,
82
+ value: number,
83
+ thumbSize: ThumbSize,
84
+ vertical: boolean,
85
+ rtl: boolean,
86
+ ) => {
87
+ const percent = (value - min) / (max - min)
88
+ const margin =
89
+ percent > 0.5
90
+ ? `-${(percent - 0.5) * thumbSize.value}${thumbSize.unit}`
91
+ : `${(0.5 - percent) * thumbSize.value}${thumbSize.unit}`
92
+
93
+ if (vertical) {
94
+ return {
95
+ bottom: `${percent * 100}%`,
96
+ marginBottom: margin,
97
+ }
98
+ }
99
+
100
+ return rtl
101
+ ? { right: `${percent * 100}%`, marginRight: margin }
102
+ : { left: `${percent * 100}%`, marginLeft: margin }
103
+ }
104
+
105
+ export const getClickPosition = (
106
+ event: MouseEvent,
107
+ container: HTMLDivElement,
108
+ vertical: boolean,
109
+ rtl: boolean,
110
+ ) => {
111
+ const { offsetX, offsetY } = event
112
+ const { offsetWidth, offsetHeight } = container
113
+
114
+ if (vertical) {
115
+ return 1 - offsetY / offsetHeight
116
+ }
117
+
118
+ return rtl ? 1 - offsetX / offsetWidth : offsetX / offsetWidth
119
+ }
120
+
121
+ export const getLabelValue = (
122
+ min: number,
123
+ max: number,
124
+ labels: Label[],
125
+ label: Label,
126
+ index: number,
127
+ ) =>
128
+ typeof label === 'object' && 'value' in label
129
+ ? label.value
130
+ : min + (index / (labels.length - 1)) * (max - min)
131
+
132
+ export const getNearestValueIndex = (value: number, values: number[]) => {
133
+ const valuesLength = values.length
134
+
135
+ if (value < values[0]) {
136
+ return 0
137
+ }
138
+
139
+ if (value > values[valuesLength - 1]) {
140
+ return valuesLength - 1
141
+ }
142
+
143
+ const distances = values.map((v) => Math.abs(v - value))
144
+ const min = Math.min(...distances)
145
+ const firstIndex = distances.indexOf(min)
146
+
147
+ return value < values[firstIndex] ? firstIndex : distances.lastIndexOf(min)
148
+ }
149
+
150
+ export const getThumbSize = (element: HTMLDivElement, vertical: boolean): ThumbSize | null => {
151
+ const value = globalThis
152
+ .getComputedStyle(element, null)
153
+ .getPropertyValue(
154
+ vertical ? '--cui-range-slider-thumb-height' : '--cui-range-slider-thumb-width',
155
+ )
156
+
157
+ const regex = /^(\d+\.?\d*)([%a-z]*)$/i
158
+ const match = value.match(regex)
159
+
160
+ if (match) {
161
+ return {
162
+ value: Number.parseFloat(match[1]),
163
+ unit: match[2] || null,
164
+ }
165
+ }
166
+
167
+ return null
168
+ }
169
+
170
+ export const roundToStep = (number: number, step: number) => {
171
+ const _step = step === 0 ? 1 : step
172
+ return Math.round(number / _step) * _step
173
+ }
174
+
175
+ export const updateGradient = (min: number, max: number, values: number[], vertical: boolean) => {
176
+ const minVal = Math.min(...values)
177
+ const maxVal = Math.max(...values)
178
+
179
+ const from = ((minVal - min) / (max - min)) * 100
180
+ const to = ((maxVal - min) / (max - min)) * 100
181
+
182
+ const direction = vertical ? 'to top' : 'to right'
183
+
184
+ return {
185
+ backgroundImage:
186
+ values.length === 1
187
+ ? `linear-gradient(
188
+ ${direction},
189
+ var(--cui-range-slider-track-in-range-bg) 0%,
190
+ var(--cui-range-slider-track-in-range-bg) ${to}%,
191
+ transparent ${to}%,
192
+ transparent 100%
193
+ )`
194
+ : `linear-gradient(
195
+ ${direction},
196
+ transparent 0%,
197
+ transparent ${from}%,
198
+ var(--cui-range-slider-track-in-range-bg) ${from}%,
199
+ var(--cui-range-slider-track-in-range-bg) ${to}%,
200
+ transparent ${to}%,
201
+ transparent 100%
202
+ )`,
203
+ }
204
+ }
205
+
206
+ export const updateValue = (value: number, values: number[], distance: number, index: number) => {
207
+ const newValue = [...values]
208
+ newValue[index] = validateValue(value, values, distance, index)
209
+ return newValue
210
+ }
211
+
212
+ export const validateValue = (value: number, values: number[], distance: number, index: number) => {
213
+ // If there's only one value, return it as is
214
+ if (values.length === 1) {
215
+ return value
216
+ }
217
+
218
+ // Determine previous and next values if they exist
219
+ const prevValue: number | undefined = index > 0 ? values[index - 1] : undefined
220
+ const nextValue: number | undefined = index < values.length - 1 ? values[index + 1] : undefined
221
+
222
+ // If it's the first element, ensure it's not too close to the next value
223
+ if (index === 0 && nextValue !== undefined) {
224
+ return Math.min(value, nextValue - distance)
225
+ }
226
+
227
+ // If it's the last element, ensure it's not too close to the previous value
228
+ if (index === values.length - 1 && prevValue !== undefined) {
229
+ return Math.max(value, prevValue + distance)
230
+ }
231
+
232
+ // For middle elements, ensure the value is within the allowed distance from both neighbors
233
+ if (prevValue !== undefined && nextValue !== undefined) {
234
+ const minVal = prevValue + distance
235
+ const maxVal = nextValue - distance
236
+ return Math.min(Math.max(value, minVal), maxVal)
237
+ }
238
+
239
+ // Fallback: If for some reason prevValue or nextValue is undefined, return the original value
240
+ return value
241
+ }
@@ -111,7 +111,6 @@ const CSidebar = defineComponent({
111
111
 
112
112
  watch(mobile, () => {
113
113
  if (mobile.value) {
114
- console.log('mobile')
115
114
  visibleMobile.value = false
116
115
  }
117
116
  })
@@ -265,6 +265,15 @@ const CTimePicker = defineComponent({
265
265
  return ['sm', 'lg'].includes(value)
266
266
  },
267
267
  },
268
+ /**
269
+ * Generates dropdown menu using Teleport.
270
+ *
271
+ * @since 5.8.0
272
+ */
273
+ teleport: {
274
+ type: [Boolean],
275
+ default: false,
276
+ },
268
277
  /**
269
278
  * Add helper text to the component.
270
279
  *
@@ -473,7 +482,22 @@ const CTimePicker = defineComponent({
473
482
  })
474
483
  : '',
475
484
  }),
476
- props.indicator && h('div', { class: 'time-picker-indicator' }),
485
+ props.indicator &&
486
+ h('div', {
487
+ class: 'time-picker-indicator',
488
+ ...(!props.disabled && {
489
+ onClick: (event: Event) => {
490
+ event.stopPropagation()
491
+ visible.value = !visible.value
492
+ },
493
+ onKeydown: (event: KeyboardEvent) => {
494
+ if (event.key === 'Enter') {
495
+ visible.value = !visible.value
496
+ }
497
+ },
498
+ tabIndex: 0,
499
+ }),
500
+ }),
477
501
  props.cleaner &&
478
502
  date.value &&
479
503
  h('div', {
@@ -655,6 +679,7 @@ const CTimePicker = defineComponent({
655
679
  visible.value = true
656
680
  emit('show')
657
681
  },
682
+ teleport: props.teleport,
658
683
  visible: visible.value,
659
684
  },
660
685
  {
@@ -1,7 +1,15 @@
1
1
  import { useColorModes } from './useColorModes'
2
2
  import { useDebouncedCallback } from './useDebouncedCallback'
3
+ import { useDropdownWithPopper } from './useDropdownWithPopper'
3
4
  import { useIsVisible } from './useIsVisible'
4
5
  import { usePopper } from './usePopper'
5
6
  import { useUniqueId } from './useUniqueId'
6
7
 
7
- export { useColorModes, useDebouncedCallback, useIsVisible, usePopper, useUniqueId }
8
+ export {
9
+ useColorModes,
10
+ useDebouncedCallback,
11
+ useDropdownWithPopper,
12
+ useIsVisible,
13
+ usePopper,
14
+ useUniqueId,
15
+ }
@@ -0,0 +1,130 @@
1
+ import { ref, computed, watch, onUnmounted } from 'vue'
2
+ import type { Options, Placement } from '@popperjs/core'
3
+
4
+ import { usePopper } from './usePopper'
5
+ import { isRTL } from '../utils'
6
+
7
+ export const useDropdownWithPopper = <T extends HTMLElement = never>(
8
+ popperConfig?: Partial<Options>,
9
+ ) => {
10
+ // References to the dropdown elements
11
+ const dropdownRefElement = ref<T | null>(null)
12
+ const dropdownMenuElement = ref<HTMLDivElement | null>(null)
13
+
14
+ // Reactive state to control dropdown visibility
15
+ const isOpen = ref<boolean>(false)
16
+
17
+ // Popper.js integration
18
+ const { popper, initPopper, destroyPopper } = usePopper()
19
+
20
+ // Computed Popper configuration based on RTL and user-provided settings
21
+ const _popperConfig = computed(() => ({
22
+ placement: (isRTL(dropdownRefElement.value) ? 'bottom-end' : 'bottom-start') as Placement,
23
+ modifiers: [
24
+ {
25
+ name: 'preventOverflow',
26
+ options: {
27
+ boundary: 'clippingParents',
28
+ },
29
+ },
30
+ {
31
+ name: 'offset',
32
+ options: {
33
+ offset: [0, 2],
34
+ },
35
+ },
36
+ ],
37
+ ...popperConfig,
38
+ }))
39
+
40
+ // Methods to control dropdown state
41
+ const closeDropdown = () => {
42
+ isOpen.value = false
43
+ }
44
+
45
+ const openDropdown = () => {
46
+ isOpen.value = true
47
+ }
48
+
49
+ const toggleDropdown = () => {
50
+ isOpen.value = !isOpen.value
51
+ }
52
+
53
+ const updatePopper = () => {
54
+ if (popper) {
55
+ popper.update()
56
+ }
57
+ }
58
+
59
+ // Event handlers
60
+ const handleKeyUp = (event: KeyboardEvent) => {
61
+ if (event.key === 'Escape') {
62
+ isOpen.value = false
63
+ return
64
+ }
65
+
66
+ if (event.key === 'Tab') {
67
+ const activeElement = document.activeElement as HTMLElement
68
+
69
+ if (
70
+ dropdownRefElement.value?.contains(activeElement) ||
71
+ dropdownMenuElement.value?.contains(activeElement)
72
+ ) {
73
+ return
74
+ }
75
+
76
+ isOpen.value = false
77
+ }
78
+ }
79
+
80
+ const handleMouseUp = (event: Event) => {
81
+ const target = event.target as HTMLElement
82
+
83
+ if (dropdownMenuElement.value?.contains(target) || dropdownRefElement.value?.contains(target)) {
84
+ return
85
+ }
86
+
87
+ isOpen.value = false
88
+ }
89
+
90
+ // Utility functions to manage event listeners
91
+ const addEventListeners = () => {
92
+ window.addEventListener('mouseup', handleMouseUp)
93
+ window.addEventListener('keyup', handleKeyUp)
94
+ }
95
+
96
+ const removeEventListeners = () => {
97
+ window.removeEventListener('mouseup', handleMouseUp)
98
+ window.removeEventListener('keyup', handleKeyUp)
99
+ }
100
+
101
+ // Watcher to handle side effects when `isOpen` changes
102
+ watch(isOpen, (open) => {
103
+ if (open) {
104
+ addEventListeners()
105
+
106
+ if (dropdownRefElement.value && dropdownMenuElement.value) {
107
+ initPopper(dropdownRefElement.value, dropdownMenuElement.value, _popperConfig.value)
108
+ }
109
+ } else {
110
+ removeEventListeners()
111
+ destroyPopper()
112
+ }
113
+ })
114
+
115
+ // Cleanup on component unmount
116
+ onUnmounted(() => {
117
+ removeEventListeners()
118
+ destroyPopper()
119
+ })
120
+
121
+ return {
122
+ dropdownRefElement,
123
+ dropdownMenuElement,
124
+ isOpen,
125
+ closeDropdown,
126
+ openDropdown,
127
+ toggleDropdown,
128
+ updatePopper,
129
+ }
130
+ }