@coreui/vue-pro 5.11.0 → 5.13.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 (600) 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/autocomplete/CAutocomplete.d.ts +594 -0
  13. package/dist/cjs/components/autocomplete/CAutocomplete.js +724 -0
  14. package/dist/cjs/components/autocomplete/CAutocomplete.js.map +1 -0
  15. package/dist/cjs/components/autocomplete/CAutocompleteOptions.d.ts +50 -0
  16. package/dist/cjs/components/autocomplete/CAutocompleteOptions.js +116 -0
  17. package/dist/cjs/components/autocomplete/CAutocompleteOptions.js.map +1 -0
  18. package/dist/cjs/components/autocomplete/index.d.ts +6 -0
  19. package/dist/cjs/components/autocomplete/index.js +13 -0
  20. package/dist/cjs/components/autocomplete/index.js.map +1 -0
  21. package/dist/cjs/components/autocomplete/types.d.ts +18 -0
  22. package/dist/cjs/components/autocomplete/utils.d.ts +11 -0
  23. package/dist/cjs/components/autocomplete/utils.js +98 -0
  24. package/dist/cjs/components/autocomplete/utils.js.map +1 -0
  25. package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
  26. package/dist/cjs/components/avatar/index.js.map +1 -1
  27. package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
  28. package/dist/cjs/components/backdrop/index.js.map +1 -1
  29. package/dist/cjs/components/badge/CBadge.js.map +1 -1
  30. package/dist/cjs/components/badge/index.js.map +1 -1
  31. package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
  32. package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  33. package/dist/cjs/components/breadcrumb/index.js.map +1 -1
  34. package/dist/cjs/components/button/CButton.js +2 -1
  35. package/dist/cjs/components/button/CButton.js.map +1 -1
  36. package/dist/cjs/components/button/index.js.map +1 -1
  37. package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
  38. package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
  39. package/dist/cjs/components/button-group/index.js.map +1 -1
  40. package/dist/cjs/components/calendar/CCalendar.js +5 -7
  41. package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
  42. package/dist/cjs/components/calendar/index.js.map +1 -1
  43. package/dist/cjs/components/calendar/utils.d.ts +20 -6
  44. package/dist/cjs/components/calendar/utils.js +23 -9
  45. package/dist/cjs/components/calendar/utils.js.map +1 -1
  46. package/dist/cjs/components/callout/CCallout.js.map +1 -1
  47. package/dist/cjs/components/callout/index.js.map +1 -1
  48. package/dist/cjs/components/card/CCard.js.map +1 -1
  49. package/dist/cjs/components/card/CCardBody.js.map +1 -1
  50. package/dist/cjs/components/card/CCardFooter.js.map +1 -1
  51. package/dist/cjs/components/card/CCardGroup.js.map +1 -1
  52. package/dist/cjs/components/card/CCardHeader.js.map +1 -1
  53. package/dist/cjs/components/card/CCardImage.js.map +1 -1
  54. package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
  55. package/dist/cjs/components/card/CCardLink.js.map +1 -1
  56. package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
  57. package/dist/cjs/components/card/CCardText.js.map +1 -1
  58. package/dist/cjs/components/card/CCardTitle.js.map +1 -1
  59. package/dist/cjs/components/card/index.js.map +1 -1
  60. package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
  61. package/dist/cjs/components/carousel/CCarouselCaption.js.map +1 -1
  62. package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
  63. package/dist/cjs/components/carousel/index.js.map +1 -1
  64. package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
  65. package/dist/cjs/components/close-button/index.js.map +1 -1
  66. package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
  67. package/dist/cjs/components/collapse/index.js.map +1 -1
  68. package/dist/cjs/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
  69. package/dist/cjs/components/conditional-teleport/index.js.map +1 -1
  70. package/dist/cjs/components/date-picker/CDatePicker.d.ts +4 -4
  71. package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
  72. package/dist/cjs/components/date-picker/index.js.map +1 -1
  73. package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +7 -7
  74. package/dist/cjs/components/date-range-picker/CDateRangePicker.js +10 -6
  75. package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
  76. package/dist/cjs/components/date-range-picker/index.js.map +1 -1
  77. package/dist/cjs/components/date-range-picker/utils.d.ts +16 -0
  78. package/dist/cjs/components/date-range-picker/utils.js +18 -5
  79. package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
  80. package/dist/cjs/components/dropdown/CDropdown.d.ts +1 -1
  81. package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
  82. package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
  83. package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
  84. package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
  85. package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
  86. package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
  87. package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
  88. package/dist/cjs/components/dropdown/index.js.map +1 -1
  89. package/dist/cjs/components/dropdown/utils.js.map +1 -1
  90. package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
  91. package/dist/cjs/components/element-cover/index.js.map +1 -1
  92. package/dist/cjs/components/footer/CFooter.js.map +1 -1
  93. package/dist/cjs/components/footer/index.js.map +1 -1
  94. package/dist/cjs/components/form/CForm.js.map +1 -1
  95. package/dist/cjs/components/form/CFormCheck.js.map +1 -1
  96. package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
  97. package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
  98. package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
  99. package/dist/cjs/components/form/CFormFloating.js.map +1 -1
  100. package/dist/cjs/components/form/CFormInput.js.map +1 -1
  101. package/dist/cjs/components/form/CFormLabel.js.map +1 -1
  102. package/dist/cjs/components/form/CFormRange.js.map +1 -1
  103. package/dist/cjs/components/form/CFormSelect.js.map +1 -1
  104. package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
  105. package/dist/cjs/components/form/CFormText.js.map +1 -1
  106. package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
  107. package/dist/cjs/components/form/CInputGroup.js.map +1 -1
  108. package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
  109. package/dist/cjs/components/form/index.js.map +1 -1
  110. package/dist/cjs/components/grid/CCol.js.map +1 -1
  111. package/dist/cjs/components/grid/CContainer.d.ts +1 -1
  112. package/dist/cjs/components/grid/CContainer.js.map +1 -1
  113. package/dist/cjs/components/grid/CRow.js.map +1 -1
  114. package/dist/cjs/components/grid/index.js.map +1 -1
  115. package/dist/cjs/components/header/CHeader.js.map +1 -1
  116. package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
  117. package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
  118. package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
  119. package/dist/cjs/components/header/CHeaderText.js.map +1 -1
  120. package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
  121. package/dist/cjs/components/header/index.js.map +1 -1
  122. package/dist/cjs/components/image/CImage.js.map +1 -1
  123. package/dist/cjs/components/image/index.js.map +1 -1
  124. package/dist/cjs/components/index.d.ts +1 -0
  125. package/dist/cjs/components/index.js +104 -100
  126. package/dist/cjs/components/index.js.map +1 -1
  127. package/dist/cjs/components/link/CLink.js.map +1 -1
  128. package/dist/cjs/components/link/index.js.map +1 -1
  129. package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
  130. package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
  131. package/dist/cjs/components/list-group/index.js.map +1 -1
  132. package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
  133. package/dist/cjs/components/loading-button/index.js.map +1 -1
  134. package/dist/cjs/components/modal/CModal.js.map +1 -1
  135. package/dist/cjs/components/modal/CModalBody.js.map +1 -1
  136. package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
  137. package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
  138. package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
  139. package/dist/cjs/components/modal/index.js.map +1 -1
  140. package/dist/cjs/components/multi-select/CMultiSelect.d.ts +30 -11
  141. package/dist/cjs/components/multi-select/CMultiSelect.js +164 -143
  142. package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
  143. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.d.ts +1 -1
  144. package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  145. package/dist/cjs/components/multi-select/CMultiSelectOptions.d.ts +2 -2
  146. package/dist/cjs/components/multi-select/CMultiSelectOptions.js +6 -3
  147. package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
  148. package/dist/cjs/components/multi-select/CMultiSelectSelection.d.ts +1 -1
  149. package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
  150. package/dist/cjs/components/multi-select/index.js.map +1 -1
  151. package/dist/cjs/components/multi-select/utils.d.ts +0 -2
  152. package/dist/cjs/components/multi-select/utils.js +0 -26
  153. package/dist/cjs/components/multi-select/utils.js.map +1 -1
  154. package/dist/cjs/components/nav/CNav.js.map +1 -1
  155. package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
  156. package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
  157. package/dist/cjs/components/nav/CNavItem.js.map +1 -1
  158. package/dist/cjs/components/nav/CNavLink.js.map +1 -1
  159. package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
  160. package/dist/cjs/components/nav/index.js.map +1 -1
  161. package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
  162. package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
  163. package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
  164. package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
  165. package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
  166. package/dist/cjs/components/navbar/index.js.map +1 -1
  167. package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
  168. package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
  169. package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
  170. package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
  171. package/dist/cjs/components/offcanvas/index.js.map +1 -1
  172. package/dist/cjs/components/pagination/CPagination.js.map +1 -1
  173. package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
  174. package/dist/cjs/components/pagination/index.js.map +1 -1
  175. package/dist/cjs/components/password-input/CPasswordInput.js.map +1 -1
  176. package/dist/cjs/components/password-input/index.js.map +1 -1
  177. package/dist/cjs/components/picker/CPicker.js.map +1 -1
  178. package/dist/cjs/components/picker/index.js.map +1 -1
  179. package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
  180. package/dist/cjs/components/placeholder/index.js.map +1 -1
  181. package/dist/cjs/components/popover/CPopover.d.ts +1 -1
  182. package/dist/cjs/components/popover/CPopover.js.map +1 -1
  183. package/dist/cjs/components/popover/index.js.map +1 -1
  184. package/dist/cjs/components/progress/CProgress.js.map +1 -1
  185. package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
  186. package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
  187. package/dist/cjs/components/progress/index.js.map +1 -1
  188. package/dist/cjs/components/props.js.map +1 -1
  189. package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -1
  190. package/dist/cjs/components/range-slider/index.js.map +1 -1
  191. package/dist/cjs/components/range-slider/utils.js.map +1 -1
  192. package/dist/cjs/components/rating/CRating.d.ts +1 -1
  193. package/dist/cjs/components/rating/CRating.js.map +1 -1
  194. package/dist/cjs/components/rating/index.js.map +1 -1
  195. package/dist/cjs/components/sidebar/CSidebar.d.ts +1 -1
  196. package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
  197. package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
  198. package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
  199. package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
  200. package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
  201. package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
  202. package/dist/cjs/components/sidebar/index.js.map +1 -1
  203. package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
  204. package/dist/cjs/components/smart-pagination/index.js.map +1 -1
  205. package/dist/cjs/components/smart-table/CSmartTable.d.ts +3 -2
  206. package/dist/cjs/components/smart-table/CSmartTable.js +10 -0
  207. package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
  208. package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
  209. package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +2 -0
  210. package/dist/cjs/components/smart-table/CSmartTableHead.js +8 -1
  211. package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
  212. package/dist/cjs/components/smart-table/index.js.map +1 -1
  213. package/dist/cjs/components/smart-table/utils.js.map +1 -1
  214. package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
  215. package/dist/cjs/components/spinner/index.js.map +1 -1
  216. package/dist/cjs/components/stepper/CStepper.js +0 -1
  217. package/dist/cjs/components/stepper/CStepper.js.map +1 -1
  218. package/dist/cjs/components/stepper/index.js.map +1 -1
  219. package/dist/cjs/components/table/CTable.js.map +1 -1
  220. package/dist/cjs/components/table/CTableBody.js.map +1 -1
  221. package/dist/cjs/components/table/CTableCaption.js.map +1 -1
  222. package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
  223. package/dist/cjs/components/table/CTableFoot.js.map +1 -1
  224. package/dist/cjs/components/table/CTableHead.js.map +1 -1
  225. package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
  226. package/dist/cjs/components/table/CTableRow.js.map +1 -1
  227. package/dist/cjs/components/table/index.js.map +1 -1
  228. package/dist/cjs/components/table/utils.js.map +1 -1
  229. package/dist/cjs/components/tabs/CTab.js.map +1 -1
  230. package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
  231. package/dist/cjs/components/tabs/CTabList.js.map +1 -1
  232. package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
  233. package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
  234. package/dist/cjs/components/tabs/CTabs.js.map +1 -1
  235. package/dist/cjs/components/tabs/index.js.map +1 -1
  236. package/dist/cjs/components/time-picker/CTimePicker.d.ts +5 -5
  237. package/dist/cjs/components/time-picker/CTimePicker.js +14 -1
  238. package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
  239. package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
  240. package/dist/cjs/components/time-picker/index.js.map +1 -1
  241. package/dist/cjs/components/time-picker/utils.js.map +1 -1
  242. package/dist/cjs/components/toast/CToast.js.map +1 -1
  243. package/dist/cjs/components/toast/CToastBody.js.map +1 -1
  244. package/dist/cjs/components/toast/CToastClose.js.map +1 -1
  245. package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
  246. package/dist/cjs/components/toast/CToaster.js.map +1 -1
  247. package/dist/cjs/components/toast/index.js.map +1 -1
  248. package/dist/cjs/components/tooltip/CTooltip.d.ts +1 -1
  249. package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
  250. package/dist/cjs/components/tooltip/index.js.map +1 -1
  251. package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  252. package/dist/cjs/components/virtual-scroller/index.js.map +1 -1
  253. package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
  254. package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
  255. package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
  256. package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
  257. package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
  258. package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
  259. package/dist/cjs/components/widgets/index.js.map +1 -1
  260. package/dist/cjs/composables/useColorModes.js.map +1 -1
  261. package/dist/cjs/composables/useDebouncedCallback.js.map +1 -1
  262. package/dist/cjs/composables/useDropdownWithPopper.js.map +1 -1
  263. package/dist/cjs/composables/useIsVisible.js.map +1 -1
  264. package/dist/cjs/composables/usePopper.js.map +1 -1
  265. package/dist/cjs/composables/useUniqueId.js.map +1 -1
  266. package/dist/cjs/directives/v-c-placeholder.js.map +1 -1
  267. package/dist/cjs/directives/v-c-popover.js.map +1 -1
  268. package/dist/cjs/directives/v-c-tooltip.js.map +1 -1
  269. package/dist/cjs/directives/v-c-visible.js.map +1 -1
  270. package/dist/cjs/index.js +110 -106
  271. package/dist/cjs/index.js.map +1 -1
  272. package/dist/cjs/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
  273. package/dist/cjs/node_modules/vue-types/dist/index.js.map +1 -1
  274. package/dist/cjs/node_modules/vue-types/dist/shared/vue-types.8139b772.js.map +1 -1
  275. package/dist/cjs/props.js.map +1 -1
  276. package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
  277. package/dist/cjs/utils/getNextSibling.d.ts +2 -0
  278. package/dist/cjs/utils/getNextSibling.js +23 -0
  279. package/dist/cjs/utils/getNextSibling.js.map +1 -0
  280. package/dist/cjs/utils/getPreviousSibling.d.ts +2 -0
  281. package/dist/cjs/utils/getPreviousSibling.js +22 -0
  282. package/dist/cjs/utils/getPreviousSibling.js.map +1 -0
  283. package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
  284. package/dist/cjs/utils/index.d.ts +3 -1
  285. package/dist/cjs/utils/isEqual.js.map +1 -1
  286. package/dist/cjs/utils/isObjectInArray.js.map +1 -1
  287. package/dist/cjs/utils/isRTL.js.map +1 -1
  288. package/dist/cjs/utils/transition.js.map +1 -1
  289. package/dist/esm/components/accordion/CAccordion.js.map +1 -1
  290. package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
  291. package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
  292. package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
  293. package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
  294. package/dist/esm/components/accordion/index.js.map +1 -1
  295. package/dist/esm/components/alert/CAlert.js.map +1 -1
  296. package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
  297. package/dist/esm/components/alert/CAlertLink.js.map +1 -1
  298. package/dist/esm/components/alert/index.js.map +1 -1
  299. package/dist/esm/components/autocomplete/CAutocomplete.d.ts +594 -0
  300. package/dist/esm/components/autocomplete/CAutocomplete.js +722 -0
  301. package/dist/esm/components/autocomplete/CAutocomplete.js.map +1 -0
  302. package/dist/esm/components/autocomplete/CAutocompleteOptions.d.ts +50 -0
  303. package/dist/esm/components/autocomplete/CAutocompleteOptions.js +114 -0
  304. package/dist/esm/components/autocomplete/CAutocompleteOptions.js.map +1 -0
  305. package/dist/esm/components/autocomplete/index.d.ts +6 -0
  306. package/dist/esm/components/autocomplete/index.js +10 -0
  307. package/dist/esm/components/autocomplete/index.js.map +1 -0
  308. package/dist/esm/components/autocomplete/types.d.ts +18 -0
  309. package/dist/esm/components/autocomplete/utils.d.ts +11 -0
  310. package/dist/esm/components/autocomplete/utils.js +87 -0
  311. package/dist/esm/components/autocomplete/utils.js.map +1 -0
  312. package/dist/esm/components/avatar/CAvatar.js.map +1 -1
  313. package/dist/esm/components/avatar/index.js.map +1 -1
  314. package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
  315. package/dist/esm/components/backdrop/index.js.map +1 -1
  316. package/dist/esm/components/badge/CBadge.js.map +1 -1
  317. package/dist/esm/components/badge/index.js.map +1 -1
  318. package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
  319. package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
  320. package/dist/esm/components/breadcrumb/index.js.map +1 -1
  321. package/dist/esm/components/button/CButton.js +2 -1
  322. package/dist/esm/components/button/CButton.js.map +1 -1
  323. package/dist/esm/components/button/index.js.map +1 -1
  324. package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
  325. package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
  326. package/dist/esm/components/button-group/index.js.map +1 -1
  327. package/dist/esm/components/calendar/CCalendar.js +5 -7
  328. package/dist/esm/components/calendar/CCalendar.js.map +1 -1
  329. package/dist/esm/components/calendar/index.js.map +1 -1
  330. package/dist/esm/components/calendar/utils.d.ts +20 -6
  331. package/dist/esm/components/calendar/utils.js +23 -9
  332. package/dist/esm/components/calendar/utils.js.map +1 -1
  333. package/dist/esm/components/callout/CCallout.js.map +1 -1
  334. package/dist/esm/components/callout/index.js.map +1 -1
  335. package/dist/esm/components/card/CCard.js.map +1 -1
  336. package/dist/esm/components/card/CCardBody.js.map +1 -1
  337. package/dist/esm/components/card/CCardFooter.js.map +1 -1
  338. package/dist/esm/components/card/CCardGroup.js.map +1 -1
  339. package/dist/esm/components/card/CCardHeader.js.map +1 -1
  340. package/dist/esm/components/card/CCardImage.js.map +1 -1
  341. package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
  342. package/dist/esm/components/card/CCardLink.js.map +1 -1
  343. package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
  344. package/dist/esm/components/card/CCardText.js.map +1 -1
  345. package/dist/esm/components/card/CCardTitle.js.map +1 -1
  346. package/dist/esm/components/card/index.js.map +1 -1
  347. package/dist/esm/components/carousel/CCarousel.js.map +1 -1
  348. package/dist/esm/components/carousel/CCarouselCaption.js.map +1 -1
  349. package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
  350. package/dist/esm/components/carousel/index.js.map +1 -1
  351. package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
  352. package/dist/esm/components/close-button/index.js.map +1 -1
  353. package/dist/esm/components/collapse/CCollapse.js.map +1 -1
  354. package/dist/esm/components/collapse/index.js.map +1 -1
  355. package/dist/esm/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
  356. package/dist/esm/components/conditional-teleport/index.js.map +1 -1
  357. package/dist/esm/components/date-picker/CDatePicker.d.ts +4 -4
  358. package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
  359. package/dist/esm/components/date-picker/index.js.map +1 -1
  360. package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +7 -7
  361. package/dist/esm/components/date-range-picker/CDateRangePicker.js +10 -6
  362. package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
  363. package/dist/esm/components/date-range-picker/index.js.map +1 -1
  364. package/dist/esm/components/date-range-picker/utils.d.ts +16 -0
  365. package/dist/esm/components/date-range-picker/utils.js +18 -5
  366. package/dist/esm/components/date-range-picker/utils.js.map +1 -1
  367. package/dist/esm/components/dropdown/CDropdown.d.ts +1 -1
  368. package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
  369. package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
  370. package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
  371. package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
  372. package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
  373. package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
  374. package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
  375. package/dist/esm/components/dropdown/index.js.map +1 -1
  376. package/dist/esm/components/dropdown/utils.js.map +1 -1
  377. package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
  378. package/dist/esm/components/element-cover/index.js.map +1 -1
  379. package/dist/esm/components/footer/CFooter.js.map +1 -1
  380. package/dist/esm/components/footer/index.js.map +1 -1
  381. package/dist/esm/components/form/CForm.js.map +1 -1
  382. package/dist/esm/components/form/CFormCheck.js.map +1 -1
  383. package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
  384. package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
  385. package/dist/esm/components/form/CFormFeedback.js.map +1 -1
  386. package/dist/esm/components/form/CFormFloating.js.map +1 -1
  387. package/dist/esm/components/form/CFormInput.js.map +1 -1
  388. package/dist/esm/components/form/CFormLabel.js.map +1 -1
  389. package/dist/esm/components/form/CFormRange.js.map +1 -1
  390. package/dist/esm/components/form/CFormSelect.js.map +1 -1
  391. package/dist/esm/components/form/CFormSwitch.js.map +1 -1
  392. package/dist/esm/components/form/CFormText.js.map +1 -1
  393. package/dist/esm/components/form/CFormTextarea.js.map +1 -1
  394. package/dist/esm/components/form/CInputGroup.js.map +1 -1
  395. package/dist/esm/components/form/CInputGroupText.js.map +1 -1
  396. package/dist/esm/components/form/index.js.map +1 -1
  397. package/dist/esm/components/grid/CCol.js.map +1 -1
  398. package/dist/esm/components/grid/CContainer.d.ts +1 -1
  399. package/dist/esm/components/grid/CContainer.js.map +1 -1
  400. package/dist/esm/components/grid/CRow.js.map +1 -1
  401. package/dist/esm/components/grid/index.js.map +1 -1
  402. package/dist/esm/components/header/CHeader.js.map +1 -1
  403. package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
  404. package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
  405. package/dist/esm/components/header/CHeaderNav.js.map +1 -1
  406. package/dist/esm/components/header/CHeaderText.js.map +1 -1
  407. package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
  408. package/dist/esm/components/header/index.js.map +1 -1
  409. package/dist/esm/components/image/CImage.js.map +1 -1
  410. package/dist/esm/components/image/index.js.map +1 -1
  411. package/dist/esm/components/index.d.ts +1 -0
  412. package/dist/esm/components/index.js +2 -0
  413. package/dist/esm/components/index.js.map +1 -1
  414. package/dist/esm/components/link/CLink.js.map +1 -1
  415. package/dist/esm/components/link/index.js.map +1 -1
  416. package/dist/esm/components/list-group/CListGroup.js.map +1 -1
  417. package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
  418. package/dist/esm/components/list-group/index.js.map +1 -1
  419. package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
  420. package/dist/esm/components/loading-button/index.js.map +1 -1
  421. package/dist/esm/components/modal/CModal.js.map +1 -1
  422. package/dist/esm/components/modal/CModalBody.js.map +1 -1
  423. package/dist/esm/components/modal/CModalFooter.js.map +1 -1
  424. package/dist/esm/components/modal/CModalHeader.js.map +1 -1
  425. package/dist/esm/components/modal/CModalTitle.js.map +1 -1
  426. package/dist/esm/components/modal/index.js.map +1 -1
  427. package/dist/esm/components/multi-select/CMultiSelect.d.ts +30 -11
  428. package/dist/esm/components/multi-select/CMultiSelect.js +165 -144
  429. package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
  430. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.d.ts +1 -1
  431. package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
  432. package/dist/esm/components/multi-select/CMultiSelectOptions.d.ts +2 -2
  433. package/dist/esm/components/multi-select/CMultiSelectOptions.js +4 -1
  434. package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
  435. package/dist/esm/components/multi-select/CMultiSelectSelection.d.ts +1 -1
  436. package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
  437. package/dist/esm/components/multi-select/index.js.map +1 -1
  438. package/dist/esm/components/multi-select/utils.d.ts +0 -2
  439. package/dist/esm/components/multi-select/utils.js +1 -25
  440. package/dist/esm/components/multi-select/utils.js.map +1 -1
  441. package/dist/esm/components/nav/CNav.js.map +1 -1
  442. package/dist/esm/components/nav/CNavGroup.js.map +1 -1
  443. package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
  444. package/dist/esm/components/nav/CNavItem.js.map +1 -1
  445. package/dist/esm/components/nav/CNavLink.js.map +1 -1
  446. package/dist/esm/components/nav/CNavTitle.js.map +1 -1
  447. package/dist/esm/components/nav/index.js.map +1 -1
  448. package/dist/esm/components/navbar/CNavbar.js.map +1 -1
  449. package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
  450. package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
  451. package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
  452. package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
  453. package/dist/esm/components/navbar/index.js.map +1 -1
  454. package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
  455. package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
  456. package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
  457. package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
  458. package/dist/esm/components/offcanvas/index.js.map +1 -1
  459. package/dist/esm/components/pagination/CPagination.js.map +1 -1
  460. package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
  461. package/dist/esm/components/pagination/index.js.map +1 -1
  462. package/dist/esm/components/password-input/CPasswordInput.js.map +1 -1
  463. package/dist/esm/components/password-input/index.js.map +1 -1
  464. package/dist/esm/components/picker/CPicker.js.map +1 -1
  465. package/dist/esm/components/picker/index.js.map +1 -1
  466. package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
  467. package/dist/esm/components/placeholder/index.js.map +1 -1
  468. package/dist/esm/components/popover/CPopover.d.ts +1 -1
  469. package/dist/esm/components/popover/CPopover.js.map +1 -1
  470. package/dist/esm/components/popover/index.js.map +1 -1
  471. package/dist/esm/components/progress/CProgress.js.map +1 -1
  472. package/dist/esm/components/progress/CProgressBar.js.map +1 -1
  473. package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
  474. package/dist/esm/components/progress/index.js.map +1 -1
  475. package/dist/esm/components/props.js.map +1 -1
  476. package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -1
  477. package/dist/esm/components/range-slider/index.js.map +1 -1
  478. package/dist/esm/components/range-slider/utils.js.map +1 -1
  479. package/dist/esm/components/rating/CRating.d.ts +1 -1
  480. package/dist/esm/components/rating/CRating.js.map +1 -1
  481. package/dist/esm/components/rating/index.js.map +1 -1
  482. package/dist/esm/components/sidebar/CSidebar.d.ts +1 -1
  483. package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
  484. package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
  485. package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
  486. package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
  487. package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
  488. package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
  489. package/dist/esm/components/sidebar/index.js.map +1 -1
  490. package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
  491. package/dist/esm/components/smart-pagination/index.js.map +1 -1
  492. package/dist/esm/components/smart-table/CSmartTable.d.ts +3 -2
  493. package/dist/esm/components/smart-table/CSmartTable.js +10 -0
  494. package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
  495. package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
  496. package/dist/esm/components/smart-table/CSmartTableHead.d.ts +2 -0
  497. package/dist/esm/components/smart-table/CSmartTableHead.js +8 -1
  498. package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
  499. package/dist/esm/components/smart-table/index.js.map +1 -1
  500. package/dist/esm/components/smart-table/utils.js.map +1 -1
  501. package/dist/esm/components/spinner/CSpinner.js.map +1 -1
  502. package/dist/esm/components/spinner/index.js.map +1 -1
  503. package/dist/esm/components/stepper/CStepper.js +0 -1
  504. package/dist/esm/components/stepper/CStepper.js.map +1 -1
  505. package/dist/esm/components/stepper/index.js.map +1 -1
  506. package/dist/esm/components/table/CTable.js.map +1 -1
  507. package/dist/esm/components/table/CTableBody.js.map +1 -1
  508. package/dist/esm/components/table/CTableCaption.js.map +1 -1
  509. package/dist/esm/components/table/CTableDataCell.js.map +1 -1
  510. package/dist/esm/components/table/CTableFoot.js.map +1 -1
  511. package/dist/esm/components/table/CTableHead.js.map +1 -1
  512. package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
  513. package/dist/esm/components/table/CTableRow.js.map +1 -1
  514. package/dist/esm/components/table/index.js.map +1 -1
  515. package/dist/esm/components/table/utils.js.map +1 -1
  516. package/dist/esm/components/tabs/CTab.js.map +1 -1
  517. package/dist/esm/components/tabs/CTabContent.js.map +1 -1
  518. package/dist/esm/components/tabs/CTabList.js.map +1 -1
  519. package/dist/esm/components/tabs/CTabPane.js.map +1 -1
  520. package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
  521. package/dist/esm/components/tabs/CTabs.js.map +1 -1
  522. package/dist/esm/components/tabs/index.js.map +1 -1
  523. package/dist/esm/components/time-picker/CTimePicker.d.ts +5 -5
  524. package/dist/esm/components/time-picker/CTimePicker.js +14 -1
  525. package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
  526. package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
  527. package/dist/esm/components/time-picker/index.js.map +1 -1
  528. package/dist/esm/components/time-picker/utils.js.map +1 -1
  529. package/dist/esm/components/toast/CToast.js.map +1 -1
  530. package/dist/esm/components/toast/CToastBody.js.map +1 -1
  531. package/dist/esm/components/toast/CToastClose.js.map +1 -1
  532. package/dist/esm/components/toast/CToastHeader.js.map +1 -1
  533. package/dist/esm/components/toast/CToaster.js.map +1 -1
  534. package/dist/esm/components/toast/index.js.map +1 -1
  535. package/dist/esm/components/tooltip/CTooltip.d.ts +1 -1
  536. package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
  537. package/dist/esm/components/tooltip/index.js.map +1 -1
  538. package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
  539. package/dist/esm/components/virtual-scroller/index.js.map +1 -1
  540. package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
  541. package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
  542. package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
  543. package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
  544. package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
  545. package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
  546. package/dist/esm/components/widgets/index.js.map +1 -1
  547. package/dist/esm/composables/useColorModes.js.map +1 -1
  548. package/dist/esm/composables/useDebouncedCallback.js.map +1 -1
  549. package/dist/esm/composables/useDropdownWithPopper.js.map +1 -1
  550. package/dist/esm/composables/useIsVisible.js.map +1 -1
  551. package/dist/esm/composables/usePopper.js.map +1 -1
  552. package/dist/esm/composables/useUniqueId.js.map +1 -1
  553. package/dist/esm/directives/v-c-placeholder.js.map +1 -1
  554. package/dist/esm/directives/v-c-popover.js.map +1 -1
  555. package/dist/esm/directives/v-c-tooltip.js.map +1 -1
  556. package/dist/esm/directives/v-c-visible.js.map +1 -1
  557. package/dist/esm/index.js +2 -0
  558. package/dist/esm/index.js.map +1 -1
  559. package/dist/esm/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
  560. package/dist/esm/node_modules/vue-types/dist/index.js.map +1 -1
  561. package/dist/esm/node_modules/vue-types/dist/shared/vue-types.8139b772.js.map +1 -1
  562. package/dist/esm/props.js.map +1 -1
  563. package/dist/esm/utils/getNextActiveElement.js.map +1 -1
  564. package/dist/esm/utils/getNextSibling.d.ts +2 -0
  565. package/dist/esm/utils/getNextSibling.js +18 -0
  566. package/dist/esm/utils/getNextSibling.js.map +1 -0
  567. package/dist/esm/utils/getPreviousSibling.d.ts +2 -0
  568. package/dist/esm/utils/getPreviousSibling.js +18 -0
  569. package/dist/esm/utils/getPreviousSibling.js.map +1 -0
  570. package/dist/esm/utils/getRTLPlacement.js.map +1 -1
  571. package/dist/esm/utils/index.d.ts +3 -1
  572. package/dist/esm/utils/isEqual.js.map +1 -1
  573. package/dist/esm/utils/isObjectInArray.js.map +1 -1
  574. package/dist/esm/utils/isRTL.js.map +1 -1
  575. package/dist/esm/utils/transition.js.map +1 -1
  576. package/package.json +8 -8
  577. package/src/components/autocomplete/CAutocomplete.ts +855 -0
  578. package/src/components/autocomplete/CAutocompleteOptions.ts +144 -0
  579. package/src/components/autocomplete/__tests__/CAutocomplete.spec.ts +429 -0
  580. package/src/components/autocomplete/__tests__/CAutocompleteOptions.spec.ts +368 -0
  581. package/src/components/autocomplete/__tests__/__snapshots__/CAutocomplete.spec.ts.snap +39 -0
  582. package/src/components/autocomplete/index.ts +10 -0
  583. package/src/components/autocomplete/types.ts +25 -0
  584. package/src/components/autocomplete/utils.ts +131 -0
  585. package/src/components/button/CButton.ts +2 -1
  586. package/src/components/calendar/CCalendar.ts +6 -11
  587. package/src/components/calendar/utils.ts +29 -11
  588. package/src/components/date-range-picker/CDateRangePicker.ts +33 -28
  589. package/src/components/date-range-picker/utils.ts +26 -10
  590. package/src/components/index.ts +1 -0
  591. package/src/components/multi-select/CMultiSelect.ts +36 -16
  592. package/src/components/multi-select/CMultiSelectOptions.ts +5 -1
  593. package/src/components/multi-select/utils.ts +0 -34
  594. package/src/components/smart-table/CSmartTable.ts +61 -50
  595. package/src/components/smart-table/CSmartTableHead.ts +24 -17
  596. package/src/components/stepper/CStepper.ts +0 -2
  597. package/src/components/time-picker/CTimePicker.ts +13 -1
  598. package/src/utils/getNextSibling.ts +18 -0
  599. package/src/utils/getPreviousSibling.ts +18 -0
  600. package/src/utils/index.ts +4 -0
@@ -87,7 +87,8 @@ export const getDateBySelectionType = (
87
87
  }
88
88
 
89
89
  if (selectionType === 'week') {
90
- return `${date.getFullYear()}W${getWeekNumber(date)}`
90
+ const { year, weekNumber } = getISOWeekNumberAndYear(date)
91
+ return `${year}W${weekNumber.toString().padStart(2, '0')}`
91
92
  }
92
93
 
93
94
  if (selectionType === 'month') {
@@ -254,12 +255,20 @@ const getTrailingDays = (
254
255
  }
255
256
 
256
257
  /**
257
- * Calculates the ISO week number for a given date.
258
- * @param date - The date to calculate the week number for.
259
- * @returns The ISO week number.
258
+ * Calculates the ISO 8601 week number and year for a given date.
259
+ *
260
+ * In the ISO 8601 standard:
261
+ * - Weeks start on Monday.
262
+ * - The first week of the year is the one that contains January 4th.
263
+ * - The year of the week may differ from the calendar year (e.g., Dec 29, 2025 is in ISO year 2026).
264
+ *
265
+ * @param {Date} date - The date for which to calculate the ISO week number and year.
266
+ * @returns {{ weekNumber: number, year: number }} An object containing:
267
+ * - `weekNumber`: the ISO week number (1–53),
268
+ * - `year`: the ISO year (may differ from the calendar year of the date).
260
269
  */
261
- export const getWeekNumber = (date: Date): number => {
262
- const tempDate = new Date(date.getTime())
270
+ export const getISOWeekNumberAndYear = (date: Date): { weekNumber: number; year: number } => {
271
+ const tempDate = new Date(date)
263
272
  tempDate.setHours(0, 0, 0, 0)
264
273
 
265
274
  // Thursday in current week decides the year
@@ -270,7 +279,7 @@ export const getWeekNumber = (date: Date): number => {
270
279
  // Calculate full weeks to the date
271
280
  const weekNumber = 1 + Math.round((tempDate.getTime() - week1.getTime()) / 86_400_000 / 7)
272
281
 
273
- return weekNumber
282
+ return { weekNumber, year: tempDate.getFullYear() }
274
283
  }
275
284
 
276
285
  /**
@@ -284,22 +293,27 @@ export const getMonthDetails = (
284
293
  year: number,
285
294
  month: number,
286
295
  firstDayOfWeek: number
287
- ): { weekNumber?: number; days: { date: Date; month: string }[] }[] => {
296
+ ): { week: { number: number; year: number }; days: { date: Date; month: string }[] }[] => {
288
297
  const daysPrevMonth = getLeadingDays(year, month, firstDayOfWeek)
289
298
  const daysThisMonth = getMonthDays(year, month)
290
299
  const daysNextMonth = getTrailingDays(year, month, daysPrevMonth, daysThisMonth)
291
300
  const days = [...daysPrevMonth, ...daysThisMonth, ...daysNextMonth]
292
- const weeks: { weekNumber?: number; days: { date: Date; month: string }[] }[] = []
301
+ const weeks: {
302
+ week: { number: number; year: number }
303
+ days: { date: Date; month: string }[]
304
+ }[] = []
293
305
 
294
306
  days.forEach((day, index) => {
295
307
  if (index % 7 === 0 || weeks.length === 0) {
296
308
  weeks.push({
309
+ week: { number: 0, year: 0 },
297
310
  days: [],
298
311
  })
299
312
  }
300
313
 
301
314
  if ((index + 1) % 7 === 0) {
302
- weeks[weeks.length - 1].weekNumber = getWeekNumber(day.date)
315
+ const { weekNumber, year } = getISOWeekNumberAndYear(day.date)
316
+ weeks[weeks.length - 1].week = { number: weekNumber, year }
303
317
  }
304
318
 
305
319
  weeks[weeks.length - 1].days.push(day)
@@ -646,7 +660,11 @@ export const removeTimeFromDate = (date: Date): Date => {
646
660
  * @param {Date | null} source - The date to copy the time from.
647
661
  * @returns {Date} A new Date instance with the date from `target` and time from `source`.
648
662
  */
649
- export const setTimeFromDate = (target: Date, source: Date | null): Date => {
663
+ export const setTimeFromDate = (target: Date | null, source: Date | null): Date | null => {
664
+ if (target === null) {
665
+ return null
666
+ }
667
+
650
668
  if (!(source instanceof Date)) {
651
669
  return target
652
670
  }
@@ -576,7 +576,7 @@ const CDateRangePicker = defineComponent({
576
576
  const inputStartHoverValue = ref<Date | string | null>(null)
577
577
  const inputEndHoverValue = ref<Date | string | null>(null)
578
578
  const isValid = ref<boolean | undefined>(
579
- props.valid ?? (props.invalid === true ? false : undefined),
579
+ props.valid ?? (props.invalid === true ? false : undefined)
580
580
  )
581
581
  const isMobile = ref(false)
582
582
  const selectEndDate = ref(false)
@@ -589,7 +589,7 @@ const CDateRangePicker = defineComponent({
589
589
  () => [props.valid, props.invalid],
590
590
  () => {
591
591
  isValid.value = props.valid ?? (props.invalid === true ? false : undefined)
592
- },
592
+ }
593
593
  )
594
594
 
595
595
  watch(
@@ -597,7 +597,7 @@ const CDateRangePicker = defineComponent({
597
597
  () => {
598
598
  calendarDate.value = props.startDate ? props.startDate : null
599
599
  startDate.value = props.startDate ? props.startDate : null
600
- },
600
+ }
601
601
  )
602
602
 
603
603
  watch(
@@ -605,21 +605,21 @@ const CDateRangePicker = defineComponent({
605
605
  () => {
606
606
  calendarDate.value = props.endDate ? props.endDate : null
607
607
  endDate.value = props.endDate ? props.endDate : null
608
- },
608
+ }
609
609
  )
610
610
 
611
611
  watch(
612
612
  () => props.maxDate,
613
613
  () => {
614
614
  maxDate.value = props.maxDate ? props.maxDate : null
615
- },
615
+ }
616
616
  )
617
617
 
618
618
  watch(
619
619
  () => props.minDate,
620
620
  () => {
621
621
  minDate.value = props.minDate ? props.minDate : null
622
- },
622
+ }
623
623
  )
624
624
 
625
625
  watch(inputStartRef, () => {
@@ -641,7 +641,7 @@ const CDateRangePicker = defineComponent({
641
641
  const formatDate = (date: Date | string) => {
642
642
  if (props.inputDateFormat) {
643
643
  return props.inputDateFormat(
644
- date instanceof Date ? new Date(date) : convertToDateObject(date, props.selectionType),
644
+ date instanceof Date ? new Date(date) : convertToDateObject(date, props.selectionType)
645
645
  )
646
646
  }
647
647
 
@@ -742,11 +742,16 @@ const CDateRangePicker = defineComponent({
742
742
  : getLocalDateFromString(value, props.locale, props.timepicker)
743
743
  if (date instanceof Date && date.getTime()) {
744
744
  calendarDate.value = date
745
- if (input === 'start') {
746
- startDate.value = date
747
- } else {
748
- endDate.value = date
749
- }
745
+ }
746
+
747
+ if (input === 'start') {
748
+ startDate.value = date ?? null
749
+ emit('start-date-change', date ?? null)
750
+ emit('update:start-date', date ?? null)
751
+ } else {
752
+ endDate.value = date ?? null
753
+ emit('end-date-change', date ?? null)
754
+ emit('update:end-date', date ?? null)
750
755
  }
751
756
  }
752
757
 
@@ -779,7 +784,7 @@ const CDateRangePicker = defineComponent({
779
784
  onInput: (event: Event) =>
780
785
  useDebouncedCallback(
781
786
  () => handleOnChange((event.target as HTMLInputElement).value, 'start'),
782
- props.inputOnChangeDelay,
787
+ props.inputOnChangeDelay
783
788
  ),
784
789
  placeholder: Array.isArray(props.placeholder)
785
790
  ? props.placeholder[0]
@@ -815,7 +820,7 @@ const CDateRangePicker = defineComponent({
815
820
  onInput: (event: Event) =>
816
821
  useDebouncedCallback(
817
822
  () => handleOnChange((event.target as HTMLInputElement).value, 'end'),
818
- props.inputOnChangeDelay,
823
+ props.inputOnChangeDelay
819
824
  ),
820
825
  placeholder: props.placeholder[1],
821
826
  readonly: props.inputReadOnly || typeof props.format === 'string',
@@ -847,7 +852,7 @@ const CDateRangePicker = defineComponent({
847
852
  class: 'date-picker-cleaner',
848
853
  onClick: (event: Event) => handleClear(event),
849
854
  }),
850
- ],
855
+ ]
851
856
  )
852
857
 
853
858
  return () =>
@@ -925,7 +930,7 @@ const CDateRangePicker = defineComponent({
925
930
  calendarDate.value = date
926
931
  },
927
932
  },
928
- () => props.todayButton,
933
+ () => props.todayButton
929
934
  ),
930
935
  props.cancelButton &&
931
936
  h(
@@ -943,7 +948,7 @@ const CDateRangePicker = defineComponent({
943
948
  size: props.cancelButtonSize,
944
949
  variant: props.cancelButtonVariant,
945
950
  },
946
- () => props.cancelButton,
951
+ () => props.cancelButton
947
952
  ),
948
953
  props.confirmButton &&
949
954
  h(
@@ -956,7 +961,7 @@ const CDateRangePicker = defineComponent({
956
961
  size: props.confirmButtonSize,
957
962
  variant: props.confirmButtonVariant,
958
963
  },
959
- () => props.confirmButton,
964
+ () => props.confirmButton
960
965
  ),
961
966
  ]),
962
967
  default: () =>
@@ -983,9 +988,9 @@ const CDateRangePicker = defineComponent({
983
988
  },
984
989
  variant: 'ghost',
985
990
  },
986
- () => key,
987
- ),
988
- ),
991
+ () => key
992
+ )
993
+ )
989
994
  ),
990
995
  h(
991
996
  'div',
@@ -1055,8 +1060,8 @@ const CDateRangePicker = defineComponent({
1055
1060
  navPrevDoubleIcon: () =>
1056
1061
  slots.navPrevDoubleIcon && slots.navPrevDoubleIcon(),
1057
1062
  }),
1058
- },
1059
- ),
1063
+ }
1064
+ )
1060
1065
  ),
1061
1066
  props.timepicker &&
1062
1067
  h(
@@ -1105,14 +1110,14 @@ const CDateRangePicker = defineComponent({
1105
1110
  ? startDate.value && new Date(startDate.value)
1106
1111
  : endDate.value && new Date(endDate.value),
1107
1112
  variant: 'select',
1108
- }),
1109
- ),
1113
+ })
1114
+ )
1110
1115
  ),
1111
- ],
1116
+ ]
1112
1117
  ),
1113
- },
1118
+ }
1114
1119
  ),
1115
- },
1120
+ }
1116
1121
  )
1117
1122
  },
1118
1123
  })
@@ -1,7 +1,15 @@
1
+ /**
2
+ * Generates input IDs or names based on the provided attributes, range, and position.
3
+ *
4
+ * @param attribute - A single string or a tuple of two strings representing the attribute names.
5
+ * @param range - A boolean indicating whether the input is part of a range.
6
+ * @param position - Optional. Specifies the position ('start' or 'end') when `range` is true.
7
+ * @returns A string representing the input ID or name.
8
+ */
1
9
  export const getInputIdOrName = (
2
10
  attribute: string | [string, string],
3
11
  range: boolean,
4
- position?: 'start' | 'end',
12
+ position?: 'start' | 'end'
5
13
  ): string => {
6
14
  if (range && !Array.isArray(attribute)) {
7
15
  return `${attribute}-${position}-date`
@@ -14,11 +22,19 @@ export const getInputIdOrName = (
14
22
  return attribute
15
23
  }
16
24
 
17
- export const getLocalDateFromString = (string: string, locale: string, time?: boolean) => {
18
- if (!Number.isNaN(Date.parse(string))) {
19
- return new Date(Date.parse(string))
20
- }
21
-
25
+ /**
26
+ * Parses a date string into a Date object based on the provided locale and time inclusion.
27
+ *
28
+ * @param dateString - The date string to parse.
29
+ * @param locale - The locale to use for parsing the date string.
30
+ * @param includeTime - Optional. Determines whether to include time in the parsed Date object.
31
+ * @returns A Date object representing the parsed date and time, or `undefined` if parsing fails.
32
+ */
33
+ export const getLocalDateFromString = (
34
+ string: string,
35
+ locale: string,
36
+ time?: boolean
37
+ ): Date | undefined => {
22
38
  const date = new Date(2013, 11, 31, 17, 19, 22)
23
39
  let regex = time ? date.toLocaleString(locale) : date.toLocaleDateString(locale)
24
40
  regex = regex
@@ -48,17 +64,17 @@ export const getLocalDateFromString = (string: string, locale: string, time?: bo
48
64
  Number(partials.groups['month']) - 1,
49
65
  Number(partials.groups['day']),
50
66
  partials.groups['ampm']
51
- ? (partials.groups['ampm'] === 'PM'
67
+ ? partials.groups['ampm'] === 'PM'
52
68
  ? Number(partials.groups['hour']) + 12
53
- : Number(partials.groups['hour']))
69
+ : Number(partials.groups['hour'])
54
70
  : Number(partials.groups['hour']),
55
71
  Number(partials.groups['minute']),
56
- Number(partials.groups['second']),
72
+ Number(partials.groups['second'])
57
73
  )
58
74
  : new Date(
59
75
  Number(partials.groups['year']),
60
76
  Number(partials.groups['month']) - 1,
61
- Number(partials.groups['day']),
77
+ Number(partials.groups['day'])
62
78
  ))
63
79
 
64
80
  return newDate
@@ -1,5 +1,6 @@
1
1
  export * from './accordion'
2
2
  export * from './alert'
3
+ export * from './autocomplete'
3
4
  export * from './avatar'
4
5
  export * from './backdrop'
5
6
  export * from './badge'
@@ -1,4 +1,4 @@
1
- import { computed, defineComponent, h, PropType, provide, ref, watch } from 'vue'
1
+ import { computed, defineComponent, h, PropType, provide, ref, useId, watch } from 'vue'
2
2
 
3
3
  import { CFormControlWrapper } from './../form/CFormControlWrapper'
4
4
  import { CConditionalTeleport } from '../conditional-teleport'
@@ -33,12 +33,21 @@ const CMultiSelect = defineComponent({
33
33
  /**
34
34
  * A string that provides an accessible label for the cleaner button. This label is read by screen readers to describe the action associated with the button.
35
35
  *
36
- * @since 5.7.0
36
+ * @since 5.13.0
37
37
  */
38
38
  ariaCleanerLabel: {
39
39
  type: String,
40
40
  default: 'Clear all selections',
41
41
  },
42
+ /**
43
+ * A string that provides an accessible label for the indicator button. This label is read by screen readers to describe the action associated with the button.
44
+ *
45
+ * @since 5.7.0
46
+ */
47
+ ariaIndicatorLabel: {
48
+ type: String,
49
+ default: 'Toggle dropdown',
50
+ },
42
51
  /**
43
52
  * Enables selection cleaner element.
44
53
  *
@@ -353,6 +362,7 @@ const CMultiSelect = defineComponent({
353
362
  const searchValue = ref('')
354
363
  const selected = ref<SelectedOption[]>([])
355
364
  const userOptions = ref<Option[]>([])
365
+ const uniqueId = useId()
356
366
 
357
367
  const {
358
368
  dropdownMenuElement,
@@ -626,17 +636,6 @@ const CMultiSelect = defineComponent({
626
636
  }
627
637
 
628
638
  return () => [
629
- h(CMultiSelectNativeSelect, {
630
- id: props.id,
631
- multiple: props.multiple,
632
- name: props.name,
633
- options: selected.value,
634
- required: props.required,
635
- value: props.multiple
636
- ? selected.value.map((option: SelectedOption) => option.value.toString())
637
- : selected.value.map((option: SelectedOption) => option.value)[0],
638
- onChange: () => emit('change', selected.value),
639
- }),
640
639
  h(
641
640
  CFormControlWrapper,
642
641
  {
@@ -646,7 +645,7 @@ const CMultiSelect = defineComponent({
646
645
  feedback: props.feedback,
647
646
  feedbackInvalid: props.feedbackInvalid,
648
647
  feedbackValid: props.feedbackValid,
649
- id: props.id,
648
+ id: props.id ?? uniqueId,
650
649
  invalid: props.invalid,
651
650
  label: props.label,
652
651
  text: props.text,
@@ -654,7 +653,18 @@ const CMultiSelect = defineComponent({
654
653
  valid: props.valid,
655
654
  },
656
655
  {
657
- default: () =>
656
+ default: () => [
657
+ h(CMultiSelectNativeSelect, {
658
+ id: props.id ?? uniqueId,
659
+ multiple: props.multiple,
660
+ name: props.name ?? uniqueId,
661
+ options: selected.value,
662
+ required: props.required,
663
+ value: props.multiple
664
+ ? selected.value.map((option: SelectedOption) => option.value.toString())
665
+ : selected.value.map((option: SelectedOption) => option.value)[0],
666
+ onChange: () => emit('change', selected.value),
667
+ }),
658
668
  h(
659
669
  'div',
660
670
  {
@@ -669,7 +679,10 @@ const CMultiSelect = defineComponent({
669
679
  },
670
680
  ],
671
681
  onKeydown: handleGlobalSearch,
682
+ role: 'combobox',
683
+ 'aria-haspopup': 'listbox',
672
684
  'aria-expanded': isOpen.value,
685
+ ...(props.teleport && { 'aria-owns': `multi-select-listbox-${uniqueId}` }),
673
686
  ref: multiSelectRef,
674
687
  },
675
688
  {
@@ -709,6 +722,8 @@ const CMultiSelect = defineComponent({
709
722
  type: 'text',
710
723
  class: 'form-multi-select-search',
711
724
  disabled: props.disabled,
725
+ id: `search-${props.id ?? uniqueId}`,
726
+ name: `search-${props.name ?? uniqueId}`,
712
727
  autocomplete: 'off',
713
728
  onInput: (event: InputEvent) => handleSearchChange(event),
714
729
  onKeydown: (event: KeyboardEvent) => handleSearchKeyDown(event),
@@ -769,6 +784,7 @@ const CMultiSelect = defineComponent({
769
784
  }
770
785
  },
771
786
  type: 'button',
787
+ 'aria-label': props.ariaIndicatorLabel,
772
788
  ...(props.disabled && { tabIndex: -1 }),
773
789
  }),
774
790
  ],
@@ -794,8 +810,11 @@ const CMultiSelect = defineComponent({
794
810
  show: props.teleport && isOpen.value,
795
811
  },
796
812
  ],
813
+ id: `multi-select-listbox-${uniqueId}`,
797
814
  onKeydown: handleGlobalSearch,
798
- role: 'menu',
815
+ role: 'listbox',
816
+ 'aria-labelledby': props.id ?? uniqueId,
817
+ 'aria-multiselectable': props.multiple,
799
818
  ref: dropdownMenuElement,
800
819
  },
801
820
  {
@@ -834,6 +853,7 @@ const CMultiSelect = defineComponent({
834
853
  ],
835
854
  }
836
855
  ),
856
+ ],
837
857
  }
838
858
  ),
839
859
  ]
@@ -3,7 +3,7 @@ import { defineComponent, h, PropType, VNode } from 'vue'
3
3
  import { CElementCover } from '../element-cover'
4
4
  import { CVirtualScroller } from '../virtual-scroller'
5
5
 
6
- import { getNextSibling, getPreviousSibling } from './utils'
6
+ import { getNextSibling, getPreviousSibling } from '../../utils'
7
7
  import type { Option, OptionsGroup } from './types'
8
8
 
9
9
  const CMultiSelectOptions = defineComponent({
@@ -91,6 +91,10 @@ const CMultiSelectOptions = defineComponent({
91
91
  onClick: () => handleOptionClick(option as Option),
92
92
  onKeydown: (event: any) => handleKeyDown(event, option as Option),
93
93
  tabindex: 0,
94
+ role: 'option',
95
+ 'aria-selected': props.selected.some(
96
+ (_option) => _option.value === option.value,
97
+ ),
94
98
  },
95
99
  props.scopedSlots && props.scopedSlots['options']
96
100
  ? h(props.scopedSlots['options'], { option: option })
@@ -66,46 +66,12 @@ export const flattenOptionsArray = (
66
66
  return optionsList
67
67
  }
68
68
 
69
- export const getNextSibling = (elem: HTMLElement, selector?: string) => {
70
- // Get the next sibling element
71
- let sibling = elem.nextElementSibling
72
-
73
- // If there's no selector, return the first sibling
74
- if (!selector) return sibling
75
-
76
- // If the sibling matches our selector, use it
77
- // If not, jump to the next sibling and continue the loop
78
- while (sibling) {
79
- if (sibling.matches(selector)) return sibling
80
- sibling = sibling.nextElementSibling
81
- }
82
-
83
- return
84
- }
85
-
86
69
  export const getOptionsList = (container: HTMLElement): HTMLElement[] => {
87
70
  return Array.from(
88
71
  container.querySelectorAll('.form-multi-select-option:not(.disabled):not(:disabled)'),
89
72
  )
90
73
  }
91
74
 
92
- export const getPreviousSibling = (elem: HTMLElement, selector?: string) => {
93
- // Get the next sibling element
94
- let sibling = elem.previousElementSibling
95
-
96
- // If there's no selector, return the first sibling
97
- if (!selector) return sibling
98
-
99
- // If the sibling matches our selector, use it
100
- // If not, jump to the next sibling and continue the loop
101
- while (sibling) {
102
- if (sibling.matches(selector)) return sibling
103
- sibling = sibling.previousElementSibling
104
- }
105
-
106
- return
107
- }
108
-
109
75
  export const isExternalSearch = (search: Search): boolean => {
110
76
  return (
111
77
  (typeof search === 'string' && search === 'external') ||