@coreui/react-pro 5.24.1 → 5.26.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.
- package/README.md +1 -1
- package/dist/cjs/components/card/CCardImage.js.map +1 -1
- package/dist/cjs/components/carousel/CCarousel.js +44 -33
- package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js +19 -28
- package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/chip/CChip.d.ts +12 -0
- package/dist/cjs/components/chip/CChip.js +16 -63
- package/dist/cjs/components/chip/CChip.js.map +1 -1
- package/dist/cjs/components/chip/const.d.ts +1 -0
- package/dist/cjs/components/chip/const.js +8 -0
- package/dist/cjs/components/chip/const.js.map +1 -0
- package/dist/cjs/components/chip-set/CChipSet.d.ts +73 -0
- package/dist/cjs/components/chip-set/CChipSet.js +66 -0
- package/dist/cjs/components/chip-set/CChipSet.js.map +1 -0
- package/dist/cjs/components/chip-set/index.d.ts +2 -0
- package/dist/cjs/components/chip-set/useChipSet.d.ts +48 -0
- package/dist/cjs/components/chip-set/useChipSet.js +163 -0
- package/dist/cjs/components/chip-set/useChipSet.js.map +1 -0
- package/dist/cjs/components/chip-set/utils.d.ts +7 -0
- package/dist/cjs/components/chip-set/utils.js +18 -0
- package/dist/cjs/components/chip-set/utils.js.map +1 -0
- package/dist/cjs/components/collapse/CCollapse.js +14 -6
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js +3 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.d.ts +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +2 -0
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.js +23 -30
- package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/form/CChipInput.d.ts +14 -2
- package/dist/cjs/components/form/CChipInput.js +77 -49
- package/dist/cjs/components/form/CChipInput.js.map +1 -1
- package/dist/cjs/components/form/CFormCheck.js.map +1 -1
- package/dist/cjs/components/form/CFormInput.js.map +1 -1
- package/dist/cjs/components/form/CFormSelect.js.map +1 -1
- package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
- package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
- package/dist/cjs/components/grid/CContainer.js +3 -1
- package/dist/cjs/components/grid/CContainer.js.map +1 -1
- package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/link/CLink.js +4 -2
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/cjs/components/modal/CModal.js +14 -2
- package/dist/cjs/components/modal/CModal.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +73 -1
- package/dist/cjs/components/multi-select/CMultiSelect.js +157 -18
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.d.ts +3 -0
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js +45 -2
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.d.ts +1 -0
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js +4 -3
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/cjs/components/multi-select/types.d.ts +12 -0
- package/dist/cjs/components/multi-select/utils.js +1 -4
- package/dist/cjs/components/multi-select/utils.js.map +1 -1
- package/dist/cjs/components/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.d.ts +13 -6
- package/dist/cjs/components/nav/CNavGroup.js +86 -23
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupContext.d.ts +25 -0
- package/dist/cjs/components/nav/CNavGroupContext.js +13 -0
- package/dist/cjs/components/nav/CNavGroupContext.js.map +1 -0
- package/dist/cjs/components/nav/CNavLink.d.ts +1 -5
- package/dist/cjs/components/nav/CNavLink.js +21 -8
- package/dist/cjs/components/nav/CNavLink.js.map +1 -1
- package/dist/cjs/components/one-time-password-input/COneTimePassword.js +3 -3
- package/dist/cjs/components/one-time-password-input/COneTimePassword.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js +69 -24
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/progress/CProgress.js.map +1 -1
- package/dist/cjs/components/rating/CRating.d.ts +1 -1
- package/dist/cjs/components/rating/CRating.js.map +1 -1
- package/dist/cjs/components/search-button/CSearchButton.d.ts +32 -0
- package/dist/cjs/components/search-button/CSearchButton.js +77 -0
- package/dist/cjs/components/search-button/CSearchButton.js.map +1 -0
- package/dist/cjs/components/search-button/index.d.ts +2 -0
- package/dist/cjs/components/search-button/types.d.ts +10 -0
- package/dist/cjs/components/search-button/utils.d.ts +11 -0
- package/dist/cjs/components/search-button/utils.js +115 -0
- package/dist/cjs/components/search-button/utils.js.map +1 -0
- package/dist/cjs/components/sidebar/CSidebar.js +40 -23
- package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.d.ts +12 -0
- package/dist/cjs/components/sidebar/CSidebarNav.js +12 -36
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.js +2 -2
- package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableInterface.d.ts +2 -2
- package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
- package/dist/cjs/components/table/types.d.ts +2 -1
- package/dist/cjs/components/table/utils.js +4 -4
- package/dist/cjs/components/table/utils.js.map +1 -1
- package/dist/cjs/components/tabs/CTabPanel.js +3 -1
- package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.d.ts +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.js +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +69 -24
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js +11 -8
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/cjs/helpers/polymorphicComponent.d.ts +1 -2
- package/dist/cjs/hooks/useDebouncedCallback.d.ts +1 -1
- package/dist/cjs/hooks/useDebouncedCallback.js +1 -1
- package/dist/cjs/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/cjs/hooks/useForkedRef.d.ts +1 -1
- package/dist/cjs/hooks/useForkedRef.js +6 -3
- package/dist/cjs/hooks/useForkedRef.js.map +1 -1
- package/dist/cjs/hooks/usePopper.js +8 -6
- package/dist/cjs/hooks/usePopper.js.map +1 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js +4 -4
- package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -1
- package/dist/cjs/utils/swipe.d.ts +26 -0
- package/dist/cjs/utils/swipe.js +94 -0
- package/dist/cjs/utils/swipe.js.map +1 -0
- package/dist/esm/components/card/CCardImage.js.map +1 -1
- package/dist/esm/components/carousel/CCarousel.js +44 -33
- package/dist/esm/components/carousel/CCarousel.js.map +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js +19 -28
- package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/esm/components/chip/CChip.d.ts +12 -0
- package/dist/esm/components/chip/CChip.js +16 -63
- package/dist/esm/components/chip/CChip.js.map +1 -1
- package/dist/esm/components/chip/const.d.ts +1 -0
- package/dist/esm/components/chip/const.js +6 -0
- package/dist/esm/components/chip/const.js.map +1 -0
- package/dist/esm/components/chip-set/CChipSet.d.ts +73 -0
- package/dist/esm/components/chip-set/CChipSet.js +64 -0
- package/dist/esm/components/chip-set/CChipSet.js.map +1 -0
- package/dist/esm/components/chip-set/index.d.ts +2 -0
- package/dist/esm/components/chip-set/useChipSet.d.ts +48 -0
- package/dist/esm/components/chip-set/useChipSet.js +161 -0
- package/dist/esm/components/chip-set/useChipSet.js.map +1 -0
- package/dist/esm/components/chip-set/utils.d.ts +7 -0
- package/dist/esm/components/chip-set/utils.js +16 -0
- package/dist/esm/components/chip-set/utils.js.map +1 -0
- package/dist/esm/components/collapse/CCollapse.js +14 -6
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js +3 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/esm/components/date-picker/CDatePicker.d.ts +1 -1
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +2 -0
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.js +23 -30
- package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/form/CChipInput.d.ts +14 -2
- package/dist/esm/components/form/CChipInput.js +78 -50
- package/dist/esm/components/form/CChipInput.js.map +1 -1
- package/dist/esm/components/form/CFormCheck.js.map +1 -1
- package/dist/esm/components/form/CFormInput.js.map +1 -1
- package/dist/esm/components/form/CFormSelect.js.map +1 -1
- package/dist/esm/components/form/CFormTextarea.js.map +1 -1
- package/dist/esm/components/form/CInputGroupText.js.map +1 -1
- package/dist/esm/components/grid/CContainer.js +3 -1
- package/dist/esm/components/grid/CContainer.js.map +1 -1
- package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/link/CLink.js +4 -2
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/esm/components/modal/CModal.js +14 -2
- package/dist/esm/components/modal/CModal.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +73 -1
- package/dist/esm/components/multi-select/CMultiSelect.js +158 -19
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.d.ts +3 -0
- package/dist/esm/components/multi-select/CMultiSelectOptions.js +45 -2
- package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.d.ts +1 -0
- package/dist/esm/components/multi-select/CMultiSelectSelection.js +4 -3
- package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/esm/components/multi-select/types.d.ts +12 -0
- package/dist/esm/components/multi-select/utils.js +1 -4
- package/dist/esm/components/multi-select/utils.js.map +1 -1
- package/dist/esm/components/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.d.ts +13 -6
- package/dist/esm/components/nav/CNavGroup.js +87 -24
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupContext.d.ts +25 -0
- package/dist/esm/components/nav/CNavGroupContext.js +11 -0
- package/dist/esm/components/nav/CNavGroupContext.js.map +1 -0
- package/dist/esm/components/nav/CNavLink.d.ts +1 -5
- package/dist/esm/components/nav/CNavLink.js +21 -8
- package/dist/esm/components/nav/CNavLink.js.map +1 -1
- package/dist/esm/components/one-time-password-input/COneTimePassword.js +3 -3
- package/dist/esm/components/one-time-password-input/COneTimePassword.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js +69 -24
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/progress/CProgress.js.map +1 -1
- package/dist/esm/components/rating/CRating.d.ts +1 -1
- package/dist/esm/components/rating/CRating.js.map +1 -1
- package/dist/esm/components/search-button/CSearchButton.d.ts +32 -0
- package/dist/esm/components/search-button/CSearchButton.js +75 -0
- package/dist/esm/components/search-button/CSearchButton.js.map +1 -0
- package/dist/esm/components/search-button/index.d.ts +2 -0
- package/dist/esm/components/search-button/types.d.ts +10 -0
- package/dist/esm/components/search-button/utils.d.ts +11 -0
- package/dist/esm/components/search-button/utils.js +104 -0
- package/dist/esm/components/search-button/utils.js.map +1 -0
- package/dist/esm/components/sidebar/CSidebar.js +40 -23
- package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.d.ts +12 -0
- package/dist/esm/components/sidebar/CSidebarNav.js +13 -37
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.js +2 -2
- package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableInterface.d.ts +2 -2
- package/dist/esm/components/table/CTableDataCell.js.map +1 -1
- package/dist/esm/components/table/types.d.ts +2 -1
- package/dist/esm/components/table/utils.js +4 -4
- package/dist/esm/components/table/utils.js.map +1 -1
- package/dist/esm/components/tabs/CTabPanel.js +3 -1
- package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.d.ts +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +69 -24
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js +11 -8
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/esm/helpers/polymorphicComponent.d.ts +1 -2
- package/dist/esm/hooks/useDebouncedCallback.d.ts +1 -1
- package/dist/esm/hooks/useDebouncedCallback.js +1 -1
- package/dist/esm/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/esm/hooks/useForkedRef.d.ts +1 -1
- package/dist/esm/hooks/useForkedRef.js +6 -3
- package/dist/esm/hooks/useForkedRef.js.map +1 -1
- package/dist/esm/hooks/usePopper.js +9 -7
- package/dist/esm/hooks/usePopper.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js +4 -4
- package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/esm/utils/executeAfterTransition.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -1
- package/dist/esm/utils/swipe.d.ts +26 -0
- package/dist/esm/utils/swipe.js +90 -0
- package/dist/esm/utils/swipe.js.map +1 -0
- package/package.json +8 -6
- package/src/components/autocomplete/CAutocompleteOptions.tsx +1 -1
- package/src/components/autocomplete/__tests__/CAutocomplete.spec.tsx +18 -16
- package/src/components/autocomplete/__tests__/CAutocompleteOptions.spec.tsx +37 -28
- package/src/components/autocomplete/__tests__/__snapshots__/CAutocomplete.spec.tsx.snap +129 -0
- package/src/components/autocomplete/__tests__/__snapshots__/CAutocompleteOptions.spec.tsx.snap +36 -0
- package/src/components/calendar/__tests__/CCalendar.spec.tsx +40 -45
- package/src/components/calendar/__tests__/__snapshots__/CCalendar.spec.tsx.snap +99 -75
- package/src/components/calendar/__tests__/utils.spec.tsx +8 -18
- package/src/components/card/CCardImage.tsx +3 -2
- package/src/components/carousel/CCarousel.tsx +48 -51
- package/src/components/carousel/CCarouselContext.ts +1 -1
- package/src/components/carousel/CCarouselItem.tsx +25 -26
- package/src/components/carousel/__tests__/CCarousel.spec.tsx +47 -4
- package/src/components/carousel/__tests__/CCarouselItem.spec.tsx +37 -0
- package/src/components/chip/CChip.tsx +45 -78
- package/src/components/chip/__tests__/CChip.spec.tsx +26 -19
- package/src/components/chip/const.ts +3 -0
- package/src/components/chip-set/CChipSet.tsx +183 -0
- package/src/components/chip-set/__tests__/CChipSet.spec.tsx +215 -0
- package/src/components/chip-set/__tests__/__snapshots__/CChipSet.spec.tsx.snap +22 -0
- package/src/components/chip-set/index.ts +3 -0
- package/src/components/chip-set/useChipSet.ts +243 -0
- package/src/components/chip-set/utils.ts +19 -0
- package/src/components/collapse/CCollapse.tsx +18 -6
- package/src/components/conditional-portal/CConditionalPortal.tsx +4 -2
- package/src/components/date-picker/CDatePicker.tsx +12 -13
- package/src/components/date-picker/__tests__/CDatePicker.spec.tsx +1 -1
- package/src/components/date-picker/__tests__/__snapshots__/CDatePicker.spec.tsx.snap +12 -640
- package/src/components/date-range-picker/CDateRangePicker.tsx +2 -0
- package/src/components/date-range-picker/__tests__/CDateRangePicker.spec.tsx +1 -1
- package/src/components/date-range-picker/__tests__/__snapshots__/CDateRangePicker.spec.tsx.snap +21 -1259
- package/src/components/dropdown/CDropdown.tsx +29 -34
- package/src/components/dropdown/CDropdownToggle.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +56 -1
- package/src/components/dropdown/__tests__/__snapshots__/CDropdown.spec.tsx.snap +2 -2
- package/src/components/dropdown/__tests__/__snapshots__/CDropdownMenu.spec.tsx.snap +1 -1
- package/src/components/focus-trap/__tests__/CFocusTrap.spec.tsx +1 -1
- package/src/components/form/CChipInput.tsx +105 -67
- package/src/components/form/CFormCheck.tsx +1 -2
- package/src/components/form/CFormInput.tsx +1 -2
- package/src/components/form/CFormSelect.tsx +1 -2
- package/src/components/form/CFormTextarea.tsx +1 -2
- package/src/components/form/CInputGroupText.tsx +3 -2
- package/src/components/form/__tests__/CChipInput.spec.tsx +67 -1
- package/src/components/form/__tests__/CFormInput.spec.tsx +17 -20
- package/src/components/form/__tests__/__snapshots__/CChipInput.spec.tsx.snap +7 -0
- package/src/components/form/__tests__/__snapshots__/CFormInput.spec.tsx.snap +12 -3
- package/src/components/grid/CContainer.tsx +3 -1
- package/src/components/header/CHeaderBrand.tsx +3 -2
- package/src/components/index.ts +2 -0
- package/src/components/link/CLink.tsx +7 -4
- package/src/components/list-group/CListGroupItem.tsx +3 -2
- package/src/components/loading-button/__tests__/CLoadingButton.spec.tsx +1 -1
- package/src/components/loading-button/__tests__/__snapshots__/CLoadingButton.spec.tsx.snap +4 -4
- package/src/components/modal/CModal.tsx +19 -2
- package/src/components/modal/__tests__/CModal.spec.tsx +43 -0
- package/src/components/multi-select/CMultiSelect.tsx +341 -46
- package/src/components/multi-select/CMultiSelectNativeSelect.tsx +1 -1
- package/src/components/multi-select/CMultiSelectOptions.tsx +74 -3
- package/src/components/multi-select/CMultiSelectSelection.tsx +5 -1
- package/src/components/multi-select/__tests__/CMultiSelect.spec.tsx +27 -69
- package/src/components/multi-select/__tests__/CMultiSelectNativeSelect.spec.tsx +4 -5
- package/src/components/multi-select/__tests__/CMultiSelectOptions.spec.tsx +4 -4
- package/src/components/multi-select/__tests__/CMultiSelectSelection.spec.tsx +7 -24
- package/src/components/multi-select/__tests__/__snapshots__/CMultiSelect.spec.tsx.snap +108 -61
- package/src/components/multi-select/__tests__/__snapshots__/CMultiSelectNativeSelect.spec.tsx.snap +2 -4
- package/src/components/multi-select/__tests__/__snapshots__/CMultiSelectOptions.spec.tsx.snap +7 -0
- package/src/components/multi-select/__tests__/__snapshots__/CMultiSelectSelection.spec.tsx.snap +16 -9
- package/src/components/multi-select/types.ts +14 -0
- package/src/components/nav/CNav.tsx +3 -2
- package/src/components/nav/CNavGroup.tsx +196 -105
- package/src/components/nav/CNavGroupContext.ts +27 -0
- package/src/components/nav/CNavLink.tsx +26 -12
- package/src/components/nav/__tests__/CNavGroup.spec.tsx +207 -4
- package/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.tsx.snap +3 -1
- package/src/components/offcanvas/__tests__/COffcanvas.spec.tsx +1 -0
- package/src/components/one-time-password-input/COneTimePassword.tsx +10 -11
- package/src/components/picker/__tests__/CPicker.spec.tsx +1 -1
- package/src/components/picker/__tests__/__snapshots__/CPicker.spec.tsx.snap +2 -16
- package/src/components/popover/CPopover.tsx +71 -26
- package/src/components/popover/__tests__/CPopover.spec.tsx +85 -4
- package/src/components/progress/CProgress.tsx +1 -2
- package/src/components/rating/CRating.tsx +1 -0
- package/src/components/search-button/CSearchButton.tsx +195 -0
- package/src/components/search-button/__tests__/CSearchButton.spec.tsx +95 -0
- package/src/components/search-button/__tests__/__snapshots__/CSearchButton.spec.tsx.snap +87 -0
- package/src/components/search-button/index.ts +3 -0
- package/src/components/search-button/types.ts +10 -0
- package/src/components/search-button/utils.ts +140 -0
- package/src/components/sidebar/CSidebar.tsx +51 -26
- package/src/components/sidebar/CSidebarNav.tsx +39 -53
- package/src/components/sidebar/__tests__/CSidebar.spec.tsx +26 -0
- package/src/components/smart-table/CSmartTable.tsx +5 -4
- package/src/components/smart-table/CSmartTableInterface.tsx +2 -2
- package/src/components/smart-table/__tests__/CSmartTable.spec.tsx +3 -2
- package/src/components/smart-table/__tests__/__snapshots__/CSmartTable.spec.tsx.snap +7 -15
- package/src/components/stepper/__tests__/CStepper.spec.tsx +24 -21
- package/src/components/stepper/__tests__/__snapshots__/CStepper.spec.tsx.snap +295 -0
- package/src/components/table/CTableDataCell.tsx +2 -1
- package/src/components/table/types.ts +3 -1
- package/src/components/table/utils.ts +4 -4
- package/src/components/tabs/CTabPanel.tsx +3 -1
- package/src/components/tabs/CTabsContext.ts +1 -1
- package/src/components/tabs/__tests__/CTabContent.spec.tsx +1 -0
- package/src/components/tabs/__tests__/CTabPane.spec.tsx +1 -0
- package/src/components/time-picker/CTimePicker.tsx +6 -7
- package/src/components/time-picker/__tests__/CTimePicker.spec.tsx +10 -1
- package/src/components/time-picker/__tests__/__snapshots__/CTimePicker.spec.tsx.snap +599 -315
- package/src/components/tooltip/CTooltip.tsx +72 -27
- package/src/components/tooltip/__tests__/CTooltip.spec.tsx +102 -1
- package/src/components/virtual-scroller/CVirtualScroller.tsx +13 -14
- package/src/helpers/polymorphicComponent.ts +1 -1
- package/src/hooks/useColorModes.ts +2 -2
- package/src/hooks/useDebouncedCallback.ts +7 -4
- package/src/hooks/useForkedRef.ts +20 -15
- package/src/hooks/usePopper.ts +13 -9
- package/src/utils/__tests__/swipe.spec.ts +82 -0
- package/src/utils/executeAfterTransition.ts +1 -1
- package/src/utils/index.ts +2 -0
- package/src/utils/mergeClassNames.ts +1 -1
- package/src/utils/swipe.ts +114 -0
- package/dist/cjs/components/accordion/CAccordionCollapse.d.ts +0 -3
- package/dist/cjs/components/sidebar/CSidebarNavContext.d.ts +0 -5
- package/dist/cjs/components/sidebar/CSidebarNavContext.js +0 -8
- package/dist/cjs/components/sidebar/CSidebarNavContext.js.map +0 -1
- package/dist/esm/components/accordion/CAccordionCollapse.d.ts +0 -3
- package/dist/esm/components/sidebar/CSidebarNavContext.d.ts +0 -5
- package/dist/esm/components/sidebar/CSidebarNavContext.js +0 -6
- package/dist/esm/components/sidebar/CSidebarNavContext.js.map +0 -1
- package/src/components/accordion/CAccordionCollapse.tsx +0 -20
- package/src/components/accordion/__tests__/CAccordionCollapse.spec.tsx +0 -10
- package/src/components/accordion/__tests__/__snapshots__/CAccordionCollapse.spec.tsx.snap +0 -11
- package/src/components/button/__tests__/__snapshots__/CButtonClose.spec.tsx.snap +0 -26
- package/src/components/calendar/__tests__/CCalendar.accessibility.spec.tsx +0 -595
- package/src/components/calendar/__tests__/CCalendar.comprehensive.spec.tsx +0 -402
- package/src/components/calendar/__tests__/CCalendar.edge-cases.spec.tsx +0 -416
- package/src/components/calendar/__tests__/CCalendar.interactions.spec.tsx +0 -593
- package/src/components/header/CHeaderBrand.tsx~HEAD +0 -36
- package/src/components/sidebar/CSidebarNavContext.ts +0 -8
- /package/src/components/calendar/__tests__/{test-setup.ts → setup.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coreui/react-pro",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.26.0",
|
|
4
4
|
"description": "UI Components Library for React.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -41,22 +41,24 @@
|
|
|
41
41
|
"test:update": "jest --coverage --updateSnapshot"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@coreui/coreui-pro": "^5.
|
|
44
|
+
"@coreui/coreui-pro": "^5.26.0",
|
|
45
45
|
"@popperjs/core": "^2.11.8",
|
|
46
46
|
"prop-types": "^15.8.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@rollup/plugin-commonjs": "^29.0.
|
|
49
|
+
"@rollup/plugin-commonjs": "^29.0.3",
|
|
50
50
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
51
51
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
52
52
|
"@testing-library/dom": "^10.4.1",
|
|
53
53
|
"@testing-library/jest-dom": "^6.9.1",
|
|
54
54
|
"@testing-library/react": "^16.3.2",
|
|
55
|
+
"@testing-library/user-event": "^14.6.1",
|
|
55
56
|
"@types/jest": "^30.0.0",
|
|
56
57
|
"@types/prop-types": "15.7.15",
|
|
57
|
-
"@types/react": "^19.2.
|
|
58
|
+
"@types/react": "^19.2.17",
|
|
58
59
|
"@types/react-dom": "^19.2.3",
|
|
59
60
|
"@types/react-transition-group": "^4.4.12",
|
|
61
|
+
"jest-axe": "^10.0.0",
|
|
60
62
|
"classnames": "^2.5.1",
|
|
61
63
|
"cross-env": "^10.1.0",
|
|
62
64
|
"jest": "^29.7.0",
|
|
@@ -65,8 +67,8 @@
|
|
|
65
67
|
"react-device-detect": "^2.2.3",
|
|
66
68
|
"react-dom": "^18.3.1",
|
|
67
69
|
"react-transition-group": "^4.4.5",
|
|
68
|
-
"rollup": "^4.
|
|
69
|
-
"ts-jest": "^29.4.
|
|
70
|
+
"rollup": "^4.62.0",
|
|
71
|
+
"ts-jest": "^29.4.11",
|
|
70
72
|
"tslib": "^2.8.1",
|
|
71
73
|
"typescript": "^5.9.3"
|
|
72
74
|
},
|
|
@@ -57,14 +57,14 @@ test('CAutocomplete renders input with placeholder', async () => {
|
|
|
57
57
|
})
|
|
58
58
|
|
|
59
59
|
test('CAutocomplete opens dropdown on input click', async () => {
|
|
60
|
-
render(<CAutocomplete options={mockOptions} />)
|
|
60
|
+
const { container } = render(<CAutocomplete options={mockOptions} />)
|
|
61
61
|
const input = screen.getByRole('combobox')
|
|
62
62
|
|
|
63
63
|
fireEvent.click(input)
|
|
64
64
|
|
|
65
65
|
await waitFor(() => {
|
|
66
|
-
const
|
|
67
|
-
expect(
|
|
66
|
+
const dropdown = container.querySelector('.autocomplete-dropdown')
|
|
67
|
+
expect(dropdown).toBeVisible()
|
|
68
68
|
})
|
|
69
69
|
})
|
|
70
70
|
|
|
@@ -107,13 +107,13 @@ test('CAutocomplete selects option on Enter key', async () => {
|
|
|
107
107
|
})
|
|
108
108
|
|
|
109
109
|
test('CAutocomplete closes dropdown on Escape key', async () => {
|
|
110
|
-
render(<CAutocomplete options={mockOptions} />)
|
|
110
|
+
const { container } = render(<CAutocomplete options={mockOptions} />)
|
|
111
111
|
const input = screen.getByRole('combobox')
|
|
112
112
|
|
|
113
113
|
fireEvent.click(input)
|
|
114
114
|
|
|
115
115
|
await waitFor(() => {
|
|
116
|
-
expect(
|
|
116
|
+
expect(container.querySelector('.autocomplete-dropdown')).toBeVisible()
|
|
117
117
|
})
|
|
118
118
|
|
|
119
119
|
fireEvent.keyDown(input, { key: 'Escape' })
|
|
@@ -124,19 +124,21 @@ test('CAutocomplete closes dropdown on Escape key', async () => {
|
|
|
124
124
|
})
|
|
125
125
|
|
|
126
126
|
test('CAutocomplete navigates options with arrow keys', async () => {
|
|
127
|
-
render(<CAutocomplete options={mockOptions} />)
|
|
127
|
+
const { container } = render(<CAutocomplete options={mockOptions} />)
|
|
128
128
|
const input = screen.getByRole('combobox')
|
|
129
129
|
|
|
130
130
|
fireEvent.click(input)
|
|
131
131
|
|
|
132
132
|
await waitFor(() => {
|
|
133
|
-
expect(
|
|
133
|
+
expect(container.querySelector('.autocomplete-dropdown')).toBeVisible()
|
|
134
134
|
})
|
|
135
135
|
|
|
136
136
|
fireEvent.keyDown(input, { key: 'ArrowDown' })
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
await waitFor(() => {
|
|
139
|
+
const options = container.querySelectorAll('.autocomplete-option')
|
|
140
|
+
expect(options.length).toBeGreaterThan(0)
|
|
141
|
+
})
|
|
140
142
|
})
|
|
141
143
|
|
|
142
144
|
test('CAutocomplete shows cleaner button when option selected', async () => {
|
|
@@ -153,7 +155,7 @@ test('CAutocomplete clears selection when cleaner clicked', async () => {
|
|
|
153
155
|
const cleanerButton = screen.getByRole('button', { name: '' })
|
|
154
156
|
fireEvent.click(cleanerButton)
|
|
155
157
|
|
|
156
|
-
expect(onChange).toHaveBeenCalledWith(
|
|
158
|
+
expect(onChange).toHaveBeenCalledWith(null)
|
|
157
159
|
})
|
|
158
160
|
|
|
159
161
|
test('CAutocomplete shows no results message', async () => {
|
|
@@ -182,14 +184,14 @@ test('CAutocomplete renders option groups', async () => {
|
|
|
182
184
|
})
|
|
183
185
|
|
|
184
186
|
test('CAutocomplete shows hint when enabled', async () => {
|
|
185
|
-
render(<CAutocomplete options={mockOptions} showHints={true} />)
|
|
187
|
+
const { container } = render(<CAutocomplete options={mockOptions} showHints={true} />)
|
|
186
188
|
|
|
187
189
|
const input = screen.getByRole('combobox')
|
|
188
190
|
fireEvent.change(input, { target: { value: 'ap' } })
|
|
189
191
|
|
|
190
192
|
await waitFor(() => {
|
|
191
|
-
const hintInput =
|
|
192
|
-
expect(hintInput).
|
|
193
|
+
const hintInput = container.querySelector('.autocomplete-input-hint')
|
|
194
|
+
expect(hintInput).toBeInTheDocument()
|
|
193
195
|
})
|
|
194
196
|
})
|
|
195
197
|
|
|
@@ -218,14 +220,14 @@ test('CAutocomplete prevents custom values when allowOnlyDefinedOptions is true'
|
|
|
218
220
|
})
|
|
219
221
|
|
|
220
222
|
test('CAutocomplete highlights search matches', async () => {
|
|
221
|
-
render(<CAutocomplete options={mockOptions} highlightOptionsOnSearch={true} />)
|
|
223
|
+
const { container } = render(<CAutocomplete options={mockOptions} highlightOptionsOnSearch={true} />)
|
|
222
224
|
|
|
223
225
|
const input = screen.getByRole('combobox')
|
|
224
226
|
fireEvent.change(input, { target: { value: 'app' } })
|
|
225
227
|
|
|
226
228
|
await waitFor(() => {
|
|
227
|
-
const option =
|
|
228
|
-
expect(option
|
|
229
|
+
const option = container.querySelector('.autocomplete-option')
|
|
230
|
+
expect(option).toBeInTheDocument()
|
|
229
231
|
})
|
|
230
232
|
})
|
|
231
233
|
|
|
@@ -2,6 +2,7 @@ import * as React from 'react'
|
|
|
2
2
|
import { render, screen, fireEvent } from '@testing-library/react'
|
|
3
3
|
import '@testing-library/jest-dom'
|
|
4
4
|
import { CAutocompleteOptions } from '../CAutocompleteOptions'
|
|
5
|
+
import type { Option, OptionsGroup } from '../types'
|
|
5
6
|
|
|
6
7
|
const mockOptions = [
|
|
7
8
|
{ label: 'Apple', value: 1 },
|
|
@@ -28,12 +29,12 @@ const mockOptionsWithGroups = [
|
|
|
28
29
|
]
|
|
29
30
|
|
|
30
31
|
test('loads and displays CAutocompleteOptions component', async () => {
|
|
31
|
-
const { container } = render(<CAutocompleteOptions options={mockOptions} selected={
|
|
32
|
+
const { container } = render(<CAutocompleteOptions options={mockOptions} selected={null} />)
|
|
32
33
|
expect(container).toMatchSnapshot()
|
|
33
34
|
})
|
|
34
35
|
|
|
35
36
|
test('CAutocompleteOptions renders all options', async () => {
|
|
36
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
37
|
+
render(<CAutocompleteOptions options={mockOptions} selected={null} />)
|
|
37
38
|
|
|
38
39
|
expect(screen.getByText('Apple')).toBeVisible()
|
|
39
40
|
expect(screen.getByText('Banana')).toBeVisible()
|
|
@@ -42,7 +43,7 @@ test('CAutocompleteOptions renders all options', async () => {
|
|
|
42
43
|
})
|
|
43
44
|
|
|
44
45
|
test('CAutocompleteOptions renders option groups', async () => {
|
|
45
|
-
render(<CAutocompleteOptions options={mockOptionsWithGroups} selected={
|
|
46
|
+
render(<CAutocompleteOptions options={mockOptionsWithGroups} selected={null} />)
|
|
46
47
|
|
|
47
48
|
expect(screen.getByText('Fruits')).toBeVisible()
|
|
48
49
|
expect(screen.getByText('Vegetables')).toBeVisible()
|
|
@@ -51,7 +52,7 @@ test('CAutocompleteOptions renders option groups', async () => {
|
|
|
51
52
|
})
|
|
52
53
|
|
|
53
54
|
test('CAutocompleteOptions marks selected option', async () => {
|
|
54
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
55
|
+
render(<CAutocompleteOptions options={mockOptions} selected={mockOptions[0]} />)
|
|
55
56
|
|
|
56
57
|
const selectedOption = screen.getByText('Apple').closest('.autocomplete-option')
|
|
57
58
|
expect(selectedOption).toHaveClass('selected')
|
|
@@ -59,7 +60,7 @@ test('CAutocompleteOptions marks selected option', async () => {
|
|
|
59
60
|
|
|
60
61
|
test('CAutocompleteOptions calls onOptionClick when option clicked', async () => {
|
|
61
62
|
const onOptionClick = jest.fn()
|
|
62
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
63
|
+
render(<CAutocompleteOptions options={mockOptions} selected={null} onOptionClick={onOptionClick} />)
|
|
63
64
|
|
|
64
65
|
const option = screen.getByText('Apple')
|
|
65
66
|
fireEvent.click(option)
|
|
@@ -69,7 +70,7 @@ test('CAutocompleteOptions calls onOptionClick when option clicked', async () =>
|
|
|
69
70
|
|
|
70
71
|
test('CAutocompleteOptions handles Enter key press', async () => {
|
|
71
72
|
const onOptionClick = jest.fn()
|
|
72
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
73
|
+
render(<CAutocompleteOptions options={mockOptions} selected={null} onOptionClick={onOptionClick} />)
|
|
73
74
|
|
|
74
75
|
const option = screen.getByText('Apple')
|
|
75
76
|
fireEvent.keyDown(option, { key: 'Enter' })
|
|
@@ -79,7 +80,7 @@ test('CAutocompleteOptions handles Enter key press', async () => {
|
|
|
79
80
|
|
|
80
81
|
test('CAutocompleteOptions handles Space key press', async () => {
|
|
81
82
|
const onOptionClick = jest.fn()
|
|
82
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
83
|
+
render(<CAutocompleteOptions options={mockOptions} selected={null} onOptionClick={onOptionClick} />)
|
|
83
84
|
|
|
84
85
|
const option = screen.getByText('Apple')
|
|
85
86
|
fireEvent.keyDown(option, { code: 'Space' })
|
|
@@ -88,7 +89,7 @@ test('CAutocompleteOptions handles Space key press', async () => {
|
|
|
88
89
|
})
|
|
89
90
|
|
|
90
91
|
test('CAutocompleteOptions navigates with arrow keys', async () => {
|
|
91
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
92
|
+
render(<CAutocompleteOptions options={mockOptions} selected={null} />)
|
|
92
93
|
|
|
93
94
|
const firstOption = screen.getByText('Apple')
|
|
94
95
|
const secondOption = screen.getByText('Banana')
|
|
@@ -101,35 +102,39 @@ test('CAutocompleteOptions navigates with arrow keys', async () => {
|
|
|
101
102
|
|
|
102
103
|
test('CAutocompleteOptions shows no results message', async () => {
|
|
103
104
|
render(
|
|
104
|
-
<CAutocompleteOptions options={[]} selected={
|
|
105
|
+
<CAutocompleteOptions options={[]} selected={null} searchNoResultsLabel="No options found" />
|
|
105
106
|
)
|
|
106
107
|
|
|
107
108
|
expect(screen.getByText('No options found')).toBeVisible()
|
|
108
109
|
})
|
|
109
110
|
|
|
110
111
|
test('CAutocompleteOptions highlights search matches', async () => {
|
|
111
|
-
render(
|
|
112
|
+
const { container } = render(
|
|
112
113
|
<CAutocompleteOptions
|
|
113
114
|
options={mockOptions}
|
|
114
|
-
selected={
|
|
115
|
+
selected={null}
|
|
115
116
|
highlightOptionsOnSearch={true}
|
|
116
117
|
searchValue="app"
|
|
117
118
|
/>
|
|
118
119
|
)
|
|
119
120
|
|
|
120
|
-
const option =
|
|
121
|
-
expect(option).
|
|
121
|
+
const option = container.querySelector('.autocomplete-option')
|
|
122
|
+
expect(option).toBeInTheDocument()
|
|
123
|
+
expect(option?.querySelector('strong')).toHaveTextContent('App')
|
|
122
124
|
})
|
|
123
125
|
|
|
124
126
|
test('CAutocompleteOptions uses custom option template', async () => {
|
|
125
|
-
const customTemplate = (option) =>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
const customTemplate = (option: Option) => {
|
|
128
|
+
const { label, value } = option as Exclude<Option, string>
|
|
129
|
+
return (
|
|
130
|
+
<div className="custom-option">
|
|
131
|
+
{label} - {value}
|
|
132
|
+
</div>
|
|
133
|
+
)
|
|
134
|
+
}
|
|
130
135
|
|
|
131
136
|
render(
|
|
132
|
-
<CAutocompleteOptions options={mockOptions} selected={
|
|
137
|
+
<CAutocompleteOptions options={mockOptions} selected={null} optionsTemplate={customTemplate} />
|
|
133
138
|
)
|
|
134
139
|
|
|
135
140
|
expect(screen.getByText('Apple - 1')).toBeVisible()
|
|
@@ -137,14 +142,14 @@ test('CAutocompleteOptions uses custom option template', async () => {
|
|
|
137
142
|
})
|
|
138
143
|
|
|
139
144
|
test('CAutocompleteOptions uses custom group template', async () => {
|
|
140
|
-
const customGroupTemplate = (group) => (
|
|
145
|
+
const customGroupTemplate = (group: OptionsGroup) => (
|
|
141
146
|
<div className="custom-group">{group.label.toUpperCase()}</div>
|
|
142
147
|
)
|
|
143
148
|
|
|
144
149
|
render(
|
|
145
150
|
<CAutocompleteOptions
|
|
146
151
|
options={mockOptionsWithGroups}
|
|
147
|
-
selected={
|
|
152
|
+
selected={null}
|
|
148
153
|
optionsGroupsTemplate={customGroupTemplate}
|
|
149
154
|
/>
|
|
150
155
|
)
|
|
@@ -155,17 +160,21 @@ test('CAutocompleteOptions uses custom group template', async () => {
|
|
|
155
160
|
|
|
156
161
|
test('CAutocompleteOptions shows loading state', async () => {
|
|
157
162
|
const { container } = render(
|
|
158
|
-
<CAutocompleteOptions options={mockOptions} selected={
|
|
163
|
+
<CAutocompleteOptions options={mockOptions} selected={null} loading={true} />
|
|
159
164
|
)
|
|
160
165
|
|
|
161
|
-
|
|
166
|
+
// CElementCover renders a div with position styles when loading
|
|
167
|
+
const options = container.querySelector('.autocomplete-options')
|
|
168
|
+
expect(options).toBeInTheDocument()
|
|
169
|
+
// When loading, the component should render additional cover elements
|
|
170
|
+
expect(options?.children.length).toBeGreaterThan(0)
|
|
162
171
|
})
|
|
163
172
|
|
|
164
173
|
test('CAutocompleteOptions renders with virtual scroller', async () => {
|
|
165
174
|
const { container } = render(
|
|
166
175
|
<CAutocompleteOptions
|
|
167
176
|
options={mockOptions}
|
|
168
|
-
selected={
|
|
177
|
+
selected={null}
|
|
169
178
|
virtualScroller={true}
|
|
170
179
|
visibleItems={2}
|
|
171
180
|
/>
|
|
@@ -176,7 +185,7 @@ test('CAutocompleteOptions renders with virtual scroller', async () => {
|
|
|
176
185
|
|
|
177
186
|
test('CAutocompleteOptions sets max height', async () => {
|
|
178
187
|
const { container } = render(
|
|
179
|
-
<CAutocompleteOptions options={mockOptions} selected={
|
|
188
|
+
<CAutocompleteOptions options={mockOptions} selected={null} optionsMaxHeight={200} />
|
|
180
189
|
)
|
|
181
190
|
|
|
182
191
|
const optionsContainer = container.querySelector('.autocomplete-options')
|
|
@@ -189,19 +198,19 @@ test('CAutocompleteOptions marks disabled options', async () => {
|
|
|
189
198
|
{ label: 'Banana', value: 2, disabled: true },
|
|
190
199
|
]
|
|
191
200
|
|
|
192
|
-
render(<CAutocompleteOptions options={optionsWithDisabled} selected={
|
|
201
|
+
render(<CAutocompleteOptions options={optionsWithDisabled} selected={null} />)
|
|
193
202
|
|
|
194
203
|
const disabledOption = screen.getByText('Banana').closest('.autocomplete-option')
|
|
195
204
|
expect(disabledOption).toHaveClass('disabled')
|
|
196
205
|
})
|
|
197
206
|
|
|
198
207
|
test('CAutocompleteOptions has correct accessibility attributes', async () => {
|
|
199
|
-
render(<CAutocompleteOptions options={mockOptions} selected={
|
|
208
|
+
const { container } = render(<CAutocompleteOptions options={mockOptions} selected={null} />)
|
|
200
209
|
|
|
201
210
|
const listbox = screen.getByRole('listbox')
|
|
202
211
|
expect(listbox).toBeInTheDocument()
|
|
203
212
|
|
|
204
|
-
const options =
|
|
213
|
+
const options = container.querySelectorAll('.autocomplete-option')
|
|
205
214
|
expect(options).toHaveLength(4)
|
|
206
215
|
|
|
207
216
|
options.forEach((option) => {
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`CAutocomplete customize 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="autocomplete autocomplete-lg disabled bazinga"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
class="autocomplete-input-group"
|
|
10
|
+
>
|
|
11
|
+
<input
|
|
12
|
+
aria-autocomplete="list"
|
|
13
|
+
aria-haspopup="listbox"
|
|
14
|
+
autocomplete="off"
|
|
15
|
+
class="autocomplete-input"
|
|
16
|
+
disabled=""
|
|
17
|
+
id="autocomplete-:r1:"
|
|
18
|
+
name="autocomplete-:r1:"
|
|
19
|
+
placeholder="Select option"
|
|
20
|
+
role="combobox"
|
|
21
|
+
type="text"
|
|
22
|
+
/>
|
|
23
|
+
<div
|
|
24
|
+
class="autocomplete-buttons"
|
|
25
|
+
>
|
|
26
|
+
<button
|
|
27
|
+
class="autocomplete-indicator"
|
|
28
|
+
type="button"
|
|
29
|
+
/>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
<div
|
|
33
|
+
aria-labelledby="autocomplete-:r1:"
|
|
34
|
+
class="autocomplete-dropdown"
|
|
35
|
+
id="autocomplete-listbox-:r1:"
|
|
36
|
+
role="listbox"
|
|
37
|
+
>
|
|
38
|
+
<div
|
|
39
|
+
class="autocomplete-options"
|
|
40
|
+
role="listbox"
|
|
41
|
+
>
|
|
42
|
+
<div
|
|
43
|
+
class="autocomplete-option"
|
|
44
|
+
tabindex="0"
|
|
45
|
+
>
|
|
46
|
+
Apple
|
|
47
|
+
</div>
|
|
48
|
+
<div
|
|
49
|
+
class="autocomplete-option"
|
|
50
|
+
tabindex="0"
|
|
51
|
+
>
|
|
52
|
+
Banana
|
|
53
|
+
</div>
|
|
54
|
+
<div
|
|
55
|
+
class="autocomplete-option"
|
|
56
|
+
tabindex="0"
|
|
57
|
+
>
|
|
58
|
+
Cherry
|
|
59
|
+
</div>
|
|
60
|
+
<div
|
|
61
|
+
class="autocomplete-option"
|
|
62
|
+
tabindex="0"
|
|
63
|
+
>
|
|
64
|
+
Date
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
`;
|
|
71
|
+
|
|
72
|
+
exports[`loads and displays CAutocomplete component 1`] = `
|
|
73
|
+
<div>
|
|
74
|
+
<div
|
|
75
|
+
class="autocomplete"
|
|
76
|
+
>
|
|
77
|
+
<div
|
|
78
|
+
class="autocomplete-input-group"
|
|
79
|
+
>
|
|
80
|
+
<input
|
|
81
|
+
aria-autocomplete="list"
|
|
82
|
+
aria-haspopup="listbox"
|
|
83
|
+
autocomplete="off"
|
|
84
|
+
class="autocomplete-input"
|
|
85
|
+
id="autocomplete-:r0:"
|
|
86
|
+
name="autocomplete-:r0:"
|
|
87
|
+
role="combobox"
|
|
88
|
+
type="text"
|
|
89
|
+
/>
|
|
90
|
+
</div>
|
|
91
|
+
<div
|
|
92
|
+
aria-labelledby="autocomplete-:r0:"
|
|
93
|
+
class="autocomplete-dropdown"
|
|
94
|
+
id="autocomplete-listbox-:r0:"
|
|
95
|
+
role="listbox"
|
|
96
|
+
>
|
|
97
|
+
<div
|
|
98
|
+
class="autocomplete-options"
|
|
99
|
+
role="listbox"
|
|
100
|
+
>
|
|
101
|
+
<div
|
|
102
|
+
class="autocomplete-option"
|
|
103
|
+
tabindex="0"
|
|
104
|
+
>
|
|
105
|
+
Apple
|
|
106
|
+
</div>
|
|
107
|
+
<div
|
|
108
|
+
class="autocomplete-option"
|
|
109
|
+
tabindex="0"
|
|
110
|
+
>
|
|
111
|
+
Banana
|
|
112
|
+
</div>
|
|
113
|
+
<div
|
|
114
|
+
class="autocomplete-option"
|
|
115
|
+
tabindex="0"
|
|
116
|
+
>
|
|
117
|
+
Cherry
|
|
118
|
+
</div>
|
|
119
|
+
<div
|
|
120
|
+
class="autocomplete-option"
|
|
121
|
+
tabindex="0"
|
|
122
|
+
>
|
|
123
|
+
Date
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
`;
|
package/src/components/autocomplete/__tests__/__snapshots__/CAutocompleteOptions.spec.tsx.snap
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`loads and displays CAutocompleteOptions component 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="autocomplete-options"
|
|
7
|
+
role="listbox"
|
|
8
|
+
style="overflow: scroll;"
|
|
9
|
+
>
|
|
10
|
+
<div
|
|
11
|
+
class="autocomplete-option"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
Apple
|
|
15
|
+
</div>
|
|
16
|
+
<div
|
|
17
|
+
class="autocomplete-option"
|
|
18
|
+
tabindex="0"
|
|
19
|
+
>
|
|
20
|
+
Banana
|
|
21
|
+
</div>
|
|
22
|
+
<div
|
|
23
|
+
class="autocomplete-option"
|
|
24
|
+
tabindex="0"
|
|
25
|
+
>
|
|
26
|
+
Cherry
|
|
27
|
+
</div>
|
|
28
|
+
<div
|
|
29
|
+
class="autocomplete-option"
|
|
30
|
+
tabindex="0"
|
|
31
|
+
>
|
|
32
|
+
Date
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
`;
|