@loadsmart/loadsmart-ui 7.6.0 → 8.0.0-beta.1
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 +13 -1
- package/dist/DragDropFile.context-oKnUu6d3.js +33 -0
- package/dist/{DragDropFile.context-D-EBrXnw.js.map → DragDropFile.context-oKnUu6d3.js.map} +1 -1
- package/dist/components/Banner/Banner.d.ts +2 -2
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Calendar/Pickers/PickerButton.d.ts +4 -2
- package/dist/components/Card/Card.d.ts +4 -4
- package/dist/components/Card/CardTitle.d.ts +2 -2
- package/dist/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/components/DatePicker/useDatePicker.d.ts +8 -9
- package/dist/components/DatePicker/useDateRangePicker.d.ts +13 -14
- package/dist/components/Dialog/Dialog.d.ts +3 -5
- package/dist/components/DragDropFile/styles.d.ts +7 -7
- package/dist/components/Dropdown/Dropdown.d.ts +3 -3
- package/dist/components/Dropdown/DropdownMenu.d.ts +3 -3
- package/dist/components/Layout/Stack.d.ts +2 -2
- package/dist/components/Loaders/LoadingBar.d.ts +2 -2
- package/dist/components/Loaders/index.d.ts +3 -3
- package/dist/components/Modal/Modal.d.ts +1 -3
- package/dist/components/SideNavigation/Logo/Logo.d.ts +7 -2
- package/dist/components/SideNavigation/Menu/Menu.d.ts +7 -2
- package/dist/components/SideNavigation/Menu/MenuLink.d.ts +6 -1
- package/dist/components/SideNavigation/SideNavigation.d.ts +14 -4
- package/dist/components/Steps/StepsStep.d.ts +2 -2
- package/dist/components/Table/Table.d.ts +2 -1
- package/dist/components/TablePagination/TablePagination.styles.d.ts +5 -4
- package/dist/components/TablePagination/TablePaginationActions.d.ts +2 -5
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/TextField/TextField.d.ts +6 -2
- package/dist/components/ToggleGroup/Toggle.d.ts +2 -1
- package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -1
- package/dist/components/TopNavigation/Logo/Logo.d.ts +7 -2
- package/dist/components/TopNavigation/Menu/Menu.d.ts +2 -2
- package/dist/components/TopNavigation/Menu/MenuItemDropdown.d.ts +4 -4
- package/dist/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.d.ts +2 -1
- package/dist/components/TopNavigation/TopNavigation.d.ts +8 -3
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.stories.d.ts +2 -1
- package/dist/index.js +9100 -253
- package/dist/index.js.map +1 -1
- package/dist/miranda-compatibility.theme-kYNEZ7mW.js +2528 -0
- package/dist/{miranda-compatibility.theme-ChPV-BBw.js.map → miranda-compatibility.theme-kYNEZ7mW.js.map} +1 -1
- package/dist/prop-K2Z3EsyG.js +81 -0
- package/dist/{prop-BwhJNJHO.js.map → prop-K2Z3EsyG.js.map} +1 -1
- package/dist/testing/index.js +282 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/tests/renderer.d.ts +1 -1
- package/dist/theming/index.js +22 -1
- package/dist/theming/index.js.map +1 -1
- package/dist/toArray-Dxb1kUxx.js +14 -0
- package/dist/{toArray-BW3gx_gH.js.map → toArray-Dxb1kUxx.js.map} +1 -1
- package/dist/tools/index.js +6 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/toolset/flatten.d.ts +1 -1
- package/dist/utils/toolset/get.d.ts +1 -1
- package/dist/utils/toolset/isEmpty.d.ts +1 -1
- package/dist/utils/toolset/omit.d.ts +1 -1
- package/dist/utils/toolset/range.d.ts +1 -1
- package/package.json +46 -79
- package/dist/DragDropFile.context-D-EBrXnw.js +0 -2
- package/dist/DragDropFile.context-jVTIKfj5.mjs +0 -29
- package/dist/DragDropFile.context-jVTIKfj5.mjs.map +0 -1
- package/dist/index.mjs +0 -8046
- package/dist/index.mjs.map +0 -1
- package/dist/miranda-compatibility.theme-ChPV-BBw.js +0 -2
- package/dist/miranda-compatibility.theme-DQDHkWzC.mjs +0 -2469
- package/dist/miranda-compatibility.theme-DQDHkWzC.mjs.map +0 -1
- package/dist/prop-5m3D4883.mjs +0 -54
- package/dist/prop-5m3D4883.mjs.map +0 -1
- package/dist/prop-BwhJNJHO.js +0 -2
- package/dist/testing/index.mjs +0 -228
- package/dist/testing/index.mjs.map +0 -1
- package/dist/theming/index.mjs +0 -20
- package/dist/theming/index.mjs.map +0 -1
- package/dist/toArray-BW3gx_gH.js +0 -2
- package/dist/toArray-DqgeO2ua.mjs +0 -8
- package/dist/toArray-DqgeO2ua.mjs.map +0 -1
- package/dist/tools/index.mjs +0 -7
- package/dist/tools/index.mjs.map +0 -1
- package/src/@types/@loadsmart/utilsFunction.d.ts +0 -5
- package/src/@types/@loadsmart/utilsObject.d.ts +0 -5
- package/src/@types/svg.d.ts +0 -4
- package/src/addons/Theme/register.js +0 -590
- package/src/common/BackButton/BackButton.tsx +0 -18
- package/src/common/BackButton/index.ts +0 -2
- package/src/common/CloseButton/CloseButton.tsx +0 -55
- package/src/common/CloseButton/index.ts +0 -2
- package/src/common/SelectionWrapper.tsx +0 -130
- package/src/components/Accordion/Accordion.context.tsx +0 -36
- package/src/components/Accordion/Accordion.stories.tsx +0 -186
- package/src/components/Accordion/Accordion.test.tsx +0 -209
- package/src/components/Accordion/Accordion.tsx +0 -233
- package/src/components/Accordion/index.ts +0 -2
- package/src/components/Banner/Banner.stories.tsx +0 -213
- package/src/components/Banner/Banner.test.tsx +0 -118
- package/src/components/Banner/Banner.tsx +0 -418
- package/src/components/Banner/index.tsx +0 -2
- package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +0 -125
- package/src/components/Breadcrumbs/Breadcrumb.tsx +0 -92
- package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -21
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -54
- package/src/components/Breadcrumbs/index.ts +0 -4
- package/src/components/Button/Button.stories.tsx +0 -174
- package/src/components/Button/Button.test.tsx +0 -57
- package/src/components/Button/Button.tsx +0 -576
- package/src/components/Button/index.tsx +0 -2
- package/src/components/Calendar/Calendar.helpers.ts +0 -15
- package/src/components/Calendar/Calendar.stories.tsx +0 -168
- package/src/components/Calendar/Calendar.test.tsx +0 -316
- package/src/components/Calendar/Calendar.tsx +0 -130
- package/src/components/Calendar/Calendar.types.ts +0 -68
- package/src/components/Calendar/Date.helper.test.ts +0 -847
- package/src/components/Calendar/Date.helper.ts +0 -461
- package/src/components/Calendar/DateFormat.helper.test.ts +0 -171
- package/src/components/Calendar/DateFormat.helper.ts +0 -195
- package/src/components/Calendar/Month.helper.test.ts +0 -187
- package/src/components/Calendar/Month.helper.ts +0 -172
- package/src/components/Calendar/PickerModeToggle.tsx +0 -61
- package/src/components/Calendar/Pickers/DayPicker.test.tsx +0 -85
- package/src/components/Calendar/Pickers/DayPicker.tsx +0 -127
- package/src/components/Calendar/Pickers/MonthPicker.test.tsx +0 -77
- package/src/components/Calendar/Pickers/MonthPicker.tsx +0 -51
- package/src/components/Calendar/Pickers/PickerButton.tsx +0 -119
- package/src/components/Calendar/Pickers/YearPicker.test.tsx +0 -75
- package/src/components/Calendar/Pickers/YearPicker.tsx +0 -52
- package/src/components/Calendar/index.ts +0 -10
- package/src/components/Calendar/useCalendar.ts +0 -190
- package/src/components/Calendar/usePickerMode.ts +0 -48
- package/src/components/Card/Card.stories.tsx +0 -117
- package/src/components/Card/Card.test.tsx +0 -139
- package/src/components/Card/Card.tsx +0 -106
- package/src/components/Card/CardTitle.tsx +0 -43
- package/src/components/Card/index.ts +0 -2
- package/src/components/Checkbox/Checkbox.stories.tsx +0 -79
- package/src/components/Checkbox/Checkbox.test.tsx +0 -66
- package/src/components/Checkbox/Checkbox.tsx +0 -170
- package/src/components/Checkbox/index.ts +0 -2
- package/src/components/DatePicker/DatePicker.stories.tsx +0 -113
- package/src/components/DatePicker/DatePicker.test.tsx +0 -174
- package/src/components/DatePicker/DatePicker.tsx +0 -140
- package/src/components/DatePicker/DatePicker.types.ts +0 -30
- package/src/components/DatePicker/DateRangePicker.stories.tsx +0 -128
- package/src/components/DatePicker/DateRangePicker.test.tsx +0 -267
- package/src/components/DatePicker/DateRangePicker.tsx +0 -110
- package/src/components/DatePicker/index.ts +0 -3
- package/src/components/DatePicker/useDatePicker.ts +0 -201
- package/src/components/DatePicker/useDateRangePicker.ts +0 -224
- package/src/components/Dialog/Dialog.stories.tsx +0 -227
- package/src/components/Dialog/Dialog.test.tsx +0 -74
- package/src/components/Dialog/Dialog.tsx +0 -139
- package/src/components/Dialog/index.tsx +0 -4
- package/src/components/Dialog/useDialog.tsx +0 -59
- package/src/components/DragDropFile/DragDropFile.context.tsx +0 -39
- package/src/components/DragDropFile/DragDropFile.stories.tsx +0 -183
- package/src/components/DragDropFile/DragDropFile.tsx +0 -11
- package/src/components/DragDropFile/components/DropZone.test.tsx +0 -108
- package/src/components/DragDropFile/components/DropZone.tsx +0 -145
- package/src/components/DragDropFile/components/FileItem.tsx +0 -117
- package/src/components/DragDropFile/components/FileList.test.tsx +0 -119
- package/src/components/DragDropFile/components/FileList.tsx +0 -47
- package/src/components/DragDropFile/components/Wrapper.tsx +0 -22
- package/src/components/DragDropFile/index.ts +0 -9
- package/src/components/DragDropFile/mocks.ts +0 -23
- package/src/components/DragDropFile/styles.tsx +0 -81
- package/src/components/DragDropFile/types.ts +0 -85
- package/src/components/Drawer/Drawer.stories.tsx +0 -83
- package/src/components/Drawer/Drawer.test.tsx +0 -90
- package/src/components/Drawer/Drawer.tsx +0 -225
- package/src/components/Drawer/index.ts +0 -4
- package/src/components/Dropdown/Dropdown.context.ts +0 -13
- package/src/components/Dropdown/Dropdown.fixtures.ts +0 -15
- package/src/components/Dropdown/Dropdown.stories.tsx +0 -259
- package/src/components/Dropdown/Dropdown.test.tsx +0 -173
- package/src/components/Dropdown/Dropdown.tsx +0 -141
- package/src/components/Dropdown/Dropdown.types.ts +0 -59
- package/src/components/Dropdown/DropdownMenu.tsx +0 -263
- package/src/components/Dropdown/DropdownTrigger.tsx +0 -368
- package/src/components/Dropdown/index.ts +0 -15
- package/src/components/Dropdown/useDropdown.test.ts +0 -96
- package/src/components/Dropdown/useDropdown.ts +0 -65
- package/src/components/EmptyState/EmptyState.mocks.tsx +0 -60
- package/src/components/EmptyState/EmptyState.stories.tsx +0 -239
- package/src/components/EmptyState/EmptyState.test.tsx +0 -101
- package/src/components/EmptyState/EmptyState.tsx +0 -22
- package/src/components/EmptyState/EmptyState.types.ts +0 -59
- package/src/components/EmptyState/EmptyStateWithIcon.tsx +0 -42
- package/src/components/EmptyState/EmptyStateWithIllustration.tsx +0 -72
- package/src/components/EmptyState/Illustration.tsx +0 -29
- package/src/components/EmptyState/index.ts +0 -4
- package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -26
- package/src/components/ErrorMessage/ErrorMessage.test.tsx +0 -24
- package/src/components/ErrorMessage/ErrorMessage.tsx +0 -19
- package/src/components/ErrorMessage/index.ts +0 -2
- package/src/components/HighlightMatch/HighlightMatch.stories.tsx +0 -24
- package/src/components/HighlightMatch/HighlightMatch.test.tsx +0 -37
- package/src/components/HighlightMatch/HighlightMatch.tsx +0 -29
- package/src/components/HighlightMatch/index.ts +0 -2
- package/src/components/Icon/Icon.tsx +0 -55
- package/src/components/Icon/assets/back.svg +0 -4
- package/src/components/Icon/assets/burger-menu.svg +0 -3
- package/src/components/Icon/assets/calendar.svg +0 -5
- package/src/components/Icon/assets/caret-down.svg +0 -4
- package/src/components/Icon/assets/caret-left.svg +0 -4
- package/src/components/Icon/assets/caret-right-last.svg +0 -4
- package/src/components/Icon/assets/caret-right.svg +0 -4
- package/src/components/Icon/assets/check.svg +0 -4
- package/src/components/Icon/assets/chevron-down.svg +0 -3
- package/src/components/Icon/assets/circle.svg +0 -3
- package/src/components/Icon/assets/close.svg +0 -4
- package/src/components/Icon/assets/dots-horizontal.svg +0 -1
- package/src/components/Icon/assets/information.svg +0 -4
- package/src/components/Icon/assets/minus.svg +0 -4
- package/src/components/Icon/assets/plus.svg +0 -4
- package/src/components/Icon/assets/refresh.svg +0 -3
- package/src/components/Icon/assets/sort-asc.svg +0 -7
- package/src/components/Icon/assets/sort-desc.svg +0 -7
- package/src/components/Icon/assets/sort.svg +0 -7
- package/src/components/Icon/assets/upload.svg +0 -3
- package/src/components/Icon/assets/warning.svg +0 -4
- package/src/components/Icon/index.ts +0 -2
- package/src/components/IconFactory/IconFactory.fixtures.tsx +0 -31
- package/src/components/IconFactory/IconFactory.stories.tsx +0 -120
- package/src/components/IconFactory/IconFactory.test.tsx +0 -36
- package/src/components/IconFactory/IconFactory.tsx +0 -75
- package/src/components/IconFactory/index.ts +0 -2
- package/src/components/Label/Label.stories.tsx +0 -47
- package/src/components/Label/Label.test.tsx +0 -80
- package/src/components/Label/Label.tsx +0 -120
- package/src/components/Label/index.ts +0 -2
- package/src/components/Layout/Box.tsx +0 -98
- package/src/components/Layout/Grid.tsx +0 -42
- package/src/components/Layout/Group.tsx +0 -55
- package/src/components/Layout/Layout.stories.tsx +0 -412
- package/src/components/Layout/Layout.tsx +0 -19
- package/src/components/Layout/Layout.types.ts +0 -9
- package/src/components/Layout/Layout.utils.ts +0 -20
- package/src/components/Layout/Sidebar.tsx +0 -75
- package/src/components/Layout/Stack.tsx +0 -63
- package/src/components/Layout/Switcher.tsx +0 -48
- package/src/components/Layout/index.tsx +0 -8
- package/src/components/Link/Link.stories.tsx +0 -22
- package/src/components/Link/Link.test.tsx +0 -79
- package/src/components/Link/Link.tsx +0 -114
- package/src/components/Link/index.ts +0 -3
- package/src/components/Link/useSafeLink.ts +0 -49
- package/src/components/Loaders/LoadingBar.stories.tsx +0 -36
- package/src/components/Loaders/LoadingBar.test.tsx +0 -35
- package/src/components/Loaders/LoadingBar.tsx +0 -65
- package/src/components/Loaders/LoadingDots.stories.tsx +0 -69
- package/src/components/Loaders/LoadingDots.test.tsx +0 -22
- package/src/components/Loaders/LoadingDots.tsx +0 -68
- package/src/components/Loaders/Spinner.stories.tsx +0 -24
- package/src/components/Loaders/Spinner.test.tsx +0 -35
- package/src/components/Loaders/Spinner.tsx +0 -68
- package/src/components/Loaders/index.tsx +0 -3
- package/src/components/Modal/Modal.stories.tsx +0 -121
- package/src/components/Modal/Modal.test.tsx +0 -46
- package/src/components/Modal/Modal.tsx +0 -163
- package/src/components/Modal/index.tsx +0 -2
- package/src/components/Pagination/Pagination.constants.ts +0 -7
- package/src/components/Pagination/Pagination.helper.ts +0 -88
- package/src/components/Pagination/Pagination.stories.tsx +0 -29
- package/src/components/Pagination/Pagination.test.tsx +0 -102
- package/src/components/Pagination/Pagination.tsx +0 -34
- package/src/components/Pagination/Pagination.types.ts +0 -55
- package/src/components/Pagination/PaginationItem.tsx +0 -74
- package/src/components/Pagination/index.ts +0 -2
- package/src/components/Pagination/usePagination.test.ts +0 -188
- package/src/components/Pagination/usePagination.ts +0 -87
- package/src/components/Popover/Popover.stories.tsx +0 -50
- package/src/components/Popover/Popover.test.tsx +0 -22
- package/src/components/Popover/Popover.tsx +0 -110
- package/src/components/Popover/Popover.types.ts +0 -39
- package/src/components/Popover/index.ts +0 -11
- package/src/components/ProgressBar/ProgressBar.stories.tsx +0 -47
- package/src/components/ProgressBar/ProgressBar.test.tsx +0 -40
- package/src/components/ProgressBar/ProgressBar.tsx +0 -89
- package/src/components/ProgressBar/index.tsx +0 -2
- package/src/components/Radio/Radio.stories.tsx +0 -75
- package/src/components/Radio/Radio.test.tsx +0 -66
- package/src/components/Radio/Radio.tsx +0 -153
- package/src/components/Radio/index.ts +0 -2
- package/src/components/Section/Section.test.tsx +0 -35
- package/src/components/Section/Section.tsx +0 -66
- package/src/components/Section/Sections.stories.tsx +0 -56
- package/src/components/Section/index.ts +0 -2
- package/src/components/Select/Select.constants.ts +0 -12
- package/src/components/Select/Select.context.ts +0 -11
- package/src/components/Select/Select.fixtures.ts +0 -167
- package/src/components/Select/Select.stories.tsx +0 -780
- package/src/components/Select/Select.test.tsx +0 -1109
- package/src/components/Select/Select.tsx +0 -271
- package/src/components/Select/Select.types.ts +0 -148
- package/src/components/Select/SelectCreatableOption.tsx +0 -20
- package/src/components/Select/SelectEmpty.test.tsx +0 -15
- package/src/components/Select/SelectEmpty.tsx +0 -29
- package/src/components/Select/SelectOption.test.tsx +0 -78
- package/src/components/Select/SelectOption.tsx +0 -79
- package/src/components/Select/SelectTrigger.tsx +0 -83
- package/src/components/Select/components.tsx +0 -14
- package/src/components/Select/index.ts +0 -12
- package/src/components/Select/useSelect.helpers.test.ts +0 -184
- package/src/components/Select/useSelect.helpers.ts +0 -63
- package/src/components/Select/useSelect.test.ts +0 -207
- package/src/components/Select/useSelect.ts +0 -540
- package/src/components/Select/useSelectExternal.ts +0 -26
- package/src/components/SideNavigation/Logo/Logo.test.tsx +0 -19
- package/src/components/SideNavigation/Logo/Logo.tsx +0 -26
- package/src/components/SideNavigation/Logo/index.ts +0 -1
- package/src/components/SideNavigation/Menu/Menu.test.tsx +0 -65
- package/src/components/SideNavigation/Menu/Menu.tsx +0 -53
- package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +0 -64
- package/src/components/SideNavigation/Menu/MenuExpandable.tsx +0 -107
- package/src/components/SideNavigation/Menu/MenuLink.tsx +0 -37
- package/src/components/SideNavigation/Menu/index.ts +0 -1
- package/src/components/SideNavigation/Separator/Separator.test.tsx +0 -14
- package/src/components/SideNavigation/Separator/Separator.tsx +0 -20
- package/src/components/SideNavigation/Separator/index.ts +0 -1
- package/src/components/SideNavigation/SideNavigation.stories.tsx +0 -69
- package/src/components/SideNavigation/SideNavigation.test.tsx +0 -21
- package/src/components/SideNavigation/SideNavigation.tsx +0 -47
- package/src/components/SideNavigation/index.ts +0 -5
- package/src/components/SideNavigation/useSideNavigation.ts +0 -36
- package/src/components/Steps/ProgressSteps/ProgressStep.tsx +0 -163
- package/src/components/Steps/ProgressSteps/ProgressSteps.tsx +0 -37
- package/src/components/Steps/ProgressSteps/index.ts +0 -1
- package/src/components/Steps/Steps.fixtures.ts +0 -11
- package/src/components/Steps/Steps.helpers.ts +0 -11
- package/src/components/Steps/Steps.stories.tsx +0 -65
- package/src/components/Steps/Steps.test.tsx +0 -78
- package/src/components/Steps/Steps.tsx +0 -53
- package/src/components/Steps/Steps.types.ts +0 -5
- package/src/components/Steps/StepsContext.ts +0 -5
- package/src/components/Steps/StepsStep.tsx +0 -58
- package/src/components/Steps/index.ts +0 -6
- package/src/components/Steps/useStep.test.tsx +0 -217
- package/src/components/Steps/useSteps.ts +0 -131
- package/src/components/Switch/Switch.stories.tsx +0 -65
- package/src/components/Switch/Switch.test.tsx +0 -60
- package/src/components/Switch/Switch.tsx +0 -209
- package/src/components/Switch/index.ts +0 -2
- package/src/components/Table/Selection.tsx +0 -202
- package/src/components/Table/Table.fixtures.ts +0 -101
- package/src/components/Table/Table.stories.tsx +0 -568
- package/src/components/Table/Table.test.tsx +0 -310
- package/src/components/Table/Table.tsx +0 -523
- package/src/components/Table/Table.types.ts +0 -93
- package/src/components/Table/TableSortHandle.tsx +0 -31
- package/src/components/Table/index.tsx +0 -2
- package/src/components/Table/useSortBy.test.ts +0 -96
- package/src/components/Table/useSortBy.ts +0 -92
- package/src/components/Table/useSortBy.types.ts +0 -21
- package/src/components/TablePagination/RowsPerPage.tsx +0 -81
- package/src/components/TablePagination/TablePagination.stories.tsx +0 -42
- package/src/components/TablePagination/TablePagination.styles.ts +0 -13
- package/src/components/TablePagination/TablePagination.test.tsx +0 -111
- package/src/components/TablePagination/TablePagination.tsx +0 -49
- package/src/components/TablePagination/TablePagination.types.ts +0 -69
- package/src/components/TablePagination/TablePaginationActions.tsx +0 -144
- package/src/components/TablePagination/index.ts +0 -2
- package/src/components/Tabs/Tabs.stories.tsx +0 -78
- package/src/components/Tabs/Tabs.test.tsx +0 -103
- package/src/components/Tabs/Tabs.tsx +0 -287
- package/src/components/Tabs/Tabs.types.ts +0 -7
- package/src/components/Tabs/TabsContext.ts +0 -10
- package/src/components/Tabs/index.ts +0 -2
- package/src/components/Tag/Tag.stories.tsx +0 -112
- package/src/components/Tag/Tag.test.tsx +0 -19
- package/src/components/Tag/Tag.tsx +0 -393
- package/src/components/Tag/index.ts +0 -2
- package/src/components/Text/Text.stories.tsx +0 -59
- package/src/components/Text/Text.test.tsx +0 -48
- package/src/components/Text/Text.tsx +0 -14
- package/src/components/Text/index.ts +0 -2
- package/src/components/TextField/TextField.stories.tsx +0 -90
- package/src/components/TextField/TextField.test.tsx +0 -36
- package/src/components/TextField/TextField.tsx +0 -244
- package/src/components/TextField/index.ts +0 -6
- package/src/components/TextField/useTextField.tsx +0 -26
- package/src/components/Textarea/Textarea.stories.tsx +0 -101
- package/src/components/Textarea/Textarea.test.tsx +0 -14
- package/src/components/Textarea/Textarea.tsx +0 -230
- package/src/components/Textarea/index.ts +0 -2
- package/src/components/Toast/Toast.stories.tsx +0 -50
- package/src/components/Toast/Toast.test.tsx +0 -24
- package/src/components/Toast/Toast.tsx +0 -141
- package/src/components/Toast/icons/close.svg +0 -3
- package/src/components/Toast/icons/danger.svg +0 -4
- package/src/components/Toast/icons/neutral.svg +0 -4
- package/src/components/Toast/icons/success.svg +0 -3
- package/src/components/Toast/icons/warning.svg +0 -4
- package/src/components/Toast/index.tsx +0 -2
- package/src/components/ToggleGroup/Toggle.test.tsx +0 -76
- package/src/components/ToggleGroup/Toggle.tsx +0 -158
- package/src/components/ToggleGroup/ToggleGroup.constants.ts +0 -16
- package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -145
- package/src/components/ToggleGroup/ToggleGroup.test.tsx +0 -237
- package/src/components/ToggleGroup/ToggleGroup.tsx +0 -165
- package/src/components/ToggleGroup/ToggleGroup.types.ts +0 -35
- package/src/components/ToggleGroup/ToggleGroupContext.ts +0 -13
- package/src/components/ToggleGroup/index.ts +0 -3
- package/src/components/Tooltip/Tooltip.stories.tsx +0 -82
- package/src/components/Tooltip/Tooltip.test.tsx +0 -49
- package/src/components/Tooltip/Tooltip.tsx +0 -185
- package/src/components/Tooltip/index.ts +0 -2
- package/src/components/TopNavigation/Logo/Logo.test.tsx +0 -21
- package/src/components/TopNavigation/Logo/Logo.tsx +0 -20
- package/src/components/TopNavigation/Logo/index.ts +0 -1
- package/src/components/TopNavigation/Menu/Menu.test.tsx +0 -125
- package/src/components/TopNavigation/Menu/Menu.tsx +0 -62
- package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +0 -118
- package/src/components/TopNavigation/Menu/MenuItemIcon.tsx +0 -50
- package/src/components/TopNavigation/Menu/index.ts +0 -1
- package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +0 -28
- package/src/components/TopNavigation/OpenSideNavButton/index.ts +0 -1
- package/src/components/TopNavigation/TopNavigation.stories.tsx +0 -42
- package/src/components/TopNavigation/TopNavigation.tsx +0 -47
- package/src/components/TopNavigation/index.ts +0 -2
- package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -26
- package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -32
- package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +0 -18
- package/src/components/VisuallyHidden/VisuallyHidden.tsx +0 -6
- package/src/components/VisuallyHidden/index.ts +0 -1
- package/src/docs/tools/DatePickerEvent.stories.mdx +0 -108
- package/src/docs/tools/DragDropFileEvent.stories.mdx +0 -75
- package/src/docs/tools/conditional.stories.mdx +0 -251
- package/src/docs/tools/selectEvent.stories.mdx +0 -121
- package/src/hooks/useClickOutside/index.ts +0 -1
- package/src/hooks/useClickOutside/useClickOutside.test.tsx +0 -116
- package/src/hooks/useClickOutside/useClickOutside.ts +0 -65
- package/src/hooks/useDidMount/index.ts +0 -1
- package/src/hooks/useDidMount/useDidMount.test.tsx +0 -38
- package/src/hooks/useDidMount/useDidMount.ts +0 -20
- package/src/hooks/useFingerprint/index.ts +0 -1
- package/src/hooks/useFingerprint/useFingerprint.test.ts +0 -76
- package/src/hooks/useFingerprint/useFingerprint.ts +0 -94
- package/src/hooks/useFocusTrap/index.ts +0 -2
- package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +0 -87
- package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +0 -129
- package/src/hooks/useFocusTrap/useFocusTrap.ts +0 -187
- package/src/hooks/useFocusWithin/index.ts +0 -2
- package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +0 -71
- package/src/hooks/useFocusWithin/useFocusWithin.ts +0 -62
- package/src/hooks/useHeightExpansionToggler/index.ts +0 -2
- package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +0 -85
- package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +0 -54
- package/src/hooks/useID/index.ts +0 -1
- package/src/hooks/useID/useID.ts +0 -18
- package/src/hooks/useSelectable/SelectableStrategy.test.ts +0 -424
- package/src/hooks/useSelectable/SelectableStrategy.ts +0 -143
- package/src/hooks/useSelectable/index.ts +0 -8
- package/src/hooks/useSelectable/useSelectable.test.ts +0 -221
- package/src/hooks/useSelectable/useSelectable.ts +0 -156
- package/src/hooks/useSelectable/useSelectable.types.ts +0 -45
- package/src/hooks/useWindowResize/index.ts +0 -1
- package/src/hooks/useWindowResize/useWindowResize.ts +0 -27
- package/src/index.ts +0 -188
- package/src/stories/assets/code-brackets.svg +0 -1
- package/src/stories/assets/colors.svg +0 -1
- package/src/stories/assets/comments.svg +0 -1
- package/src/stories/assets/direction.svg +0 -1
- package/src/stories/assets/flow.svg +0 -1
- package/src/stories/assets/plugin.svg +0 -1
- package/src/stories/assets/repo.svg +0 -1
- package/src/stories/assets/stackalt.svg +0 -1
- package/src/stories/introduction.stories.mdx +0 -57
- package/src/stories/startPage.stories.mdx +0 -95
- package/src/styles/activatable.tsx +0 -30
- package/src/styles/disableable.tsx +0 -45
- package/src/styles/ellipsizable.tsx +0 -14
- package/src/styles/focusable.tsx +0 -32
- package/src/styles/font.test.ts +0 -31
- package/src/styles/font.tsx +0 -40
- package/src/styles/hidden.tsx +0 -29
- package/src/styles/hoverable.tsx +0 -30
- package/src/styles/transition.tsx +0 -25
- package/src/styles/typography.test.ts +0 -93
- package/src/styles/typography.ts +0 -190
- package/src/testing/DatePickerEvent/DatePickerEvent.ts +0 -117
- package/src/testing/DatePickerEvent/DateRangePickerEvent.ts +0 -83
- package/src/testing/DatePickerEvent/index.ts +0 -2
- package/src/testing/DragDropFileEvent/DragDropFileEvent.ts +0 -56
- package/src/testing/DragDropFileEvent/index.ts +0 -1
- package/src/testing/SelectEvent/SelectEvent.test.tsx +0 -192
- package/src/testing/SelectEvent/SelectEvent.ts +0 -264
- package/src/testing/SelectEvent/index.ts +0 -1
- package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +0 -25
- package/src/testing/getInterpolatedStyles/index.ts +0 -1
- package/src/testing/index.ts +0 -6
- package/src/testing/renderWithDragDropFileProvider/index.ts +0 -1
- package/src/testing/renderWithDragDropFileProvider/renderWithDragDropFileProvider.tsx +0 -28
- package/src/tests/generator.ts +0 -127
- package/src/tests/renderer.tsx +0 -39
- package/src/theming/index.ts +0 -42
- package/src/theming/themes/alice.theme.ts +0 -1022
- package/src/theming/themes/index.ts +0 -3
- package/src/theming/themes/loadsmart.theme.ts +0 -1019
- package/src/theming/themes/miranda-compatibility.theme.ts +0 -972
- package/src/theming/theming.helpers.ts +0 -95
- package/src/tools/conditional.test.ts +0 -166
- package/src/tools/conditional.ts +0 -127
- package/src/tools/index.ts +0 -2
- package/src/tools/prop.test.ts +0 -52
- package/src/tools/prop.ts +0 -36
- package/src/utils/toolset/awaitTo.ts +0 -24
- package/src/utils/toolset/flatten.ts +0 -3
- package/src/utils/toolset/formatBytes.test.ts +0 -45
- package/src/utils/toolset/formatBytes.ts +0 -18
- package/src/utils/toolset/get.ts +0 -2
- package/src/utils/toolset/getID.test.ts +0 -57
- package/src/utils/toolset/getID.ts +0 -93
- package/src/utils/toolset/getOrdinalSuffix.test.ts +0 -27
- package/src/utils/toolset/getOrdinalSuffix.ts +0 -15
- package/src/utils/toolset/highlightMatch.test.tsx +0 -32
- package/src/utils/toolset/highlightMatch.tsx +0 -32
- package/src/utils/toolset/interleave.test.ts +0 -40
- package/src/utils/toolset/interleave.ts +0 -23
- package/src/utils/toolset/isEmpty.ts +0 -2
- package/src/utils/toolset/isThenable.test.ts +0 -40
- package/src/utils/toolset/isThenable.ts +0 -14
- package/src/utils/toolset/keyboard.ts +0 -50
- package/src/utils/toolset/omit.ts +0 -2
- package/src/utils/toolset/pluralize.ts +0 -16
- package/src/utils/toolset/range.ts +0 -2
- package/src/utils/toolset/rem.ts +0 -7
- package/src/utils/toolset/styledCompounds.ts +0 -22
- package/src/utils/toolset/toArray.ts +0 -16
- package/src/utils/types/ColorScheme.ts +0 -3
- package/src/utils/types/EventLike.ts +0 -11
- package/src/utils/types/InterpolatedStyle.ts +0 -3
- package/src/utils/types/Status.ts +0 -8
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { render } from '@testing-library/react'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
FRUITS,
|
|
6
|
-
USERS,
|
|
7
|
-
useSyncFruits,
|
|
8
|
-
useAsyncUsers,
|
|
9
|
-
} from '../../components/Select/Select.fixtures'
|
|
10
|
-
import generator from '../../tests/generator'
|
|
11
|
-
import renderer, { screen } from '../../tests/renderer'
|
|
12
|
-
import Select from '../../components/Select/Select'
|
|
13
|
-
|
|
14
|
-
import selectEvent from './SelectEvent'
|
|
15
|
-
|
|
16
|
-
import type { SelectProps, Option, GenericOption } from '../../components/Select/Select.types'
|
|
17
|
-
|
|
18
|
-
const OPTIONS = [
|
|
19
|
-
...FRUITS.map((fruit) => ({
|
|
20
|
-
value: useSyncFruits().adapter.getKey(fruit),
|
|
21
|
-
label: useSyncFruits().adapter.getLabel(fruit),
|
|
22
|
-
})),
|
|
23
|
-
...USERS.map((user) => ({
|
|
24
|
-
value: useAsyncUsers().adapter.getKey(user),
|
|
25
|
-
label: useAsyncUsers().adapter.getLabel(user),
|
|
26
|
-
})),
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
function Experiment(overrides: Partial<SelectProps>) {
|
|
30
|
-
return (
|
|
31
|
-
<div>
|
|
32
|
-
<label htmlFor="select-something">Select something</label>
|
|
33
|
-
<Select
|
|
34
|
-
id="select-something"
|
|
35
|
-
name="select-something"
|
|
36
|
-
datasources={[useSyncFruits, useAsyncUsers]}
|
|
37
|
-
{...overrides}
|
|
38
|
-
/>
|
|
39
|
-
</div>
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
describe('SelectEvent', () => {
|
|
44
|
-
const setup = (overrides: Partial<SelectProps>) =>
|
|
45
|
-
renderer(<Experiment {...overrides} />).render()
|
|
46
|
-
|
|
47
|
-
describe('Single selection', () => {
|
|
48
|
-
function shouldHaveDisplayValue(input: HTMLElement, selectedValue: string) {
|
|
49
|
-
expect(input).toHaveDisplayValue(selectedValue)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function shouldHaveSelectedOption(input: HTMLElement, option: GenericOption) {
|
|
53
|
-
const selectedOptions = await selectEvent.getSelectedOptions(input)
|
|
54
|
-
expect(selectedOptions).toHaveLength(1)
|
|
55
|
-
expect(selectedOptions[0]).toHaveTextContent(option.label)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
it('initializes with a selected item', async () => {
|
|
59
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
60
|
-
|
|
61
|
-
setup({
|
|
62
|
-
value: option as Option,
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
const input = screen.getByLabelText('Select something')
|
|
66
|
-
expect(input).toHaveDisplayValue(option.label)
|
|
67
|
-
|
|
68
|
-
const selectedOptions = await selectEvent.getSelectedOptions(input)
|
|
69
|
-
expect(selectedOptions).toHaveLength(1)
|
|
70
|
-
expect(selectedOptions[0]).toHaveTextContent(option.label)
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
it('updates selected item after the initially selected item changes', async () => {
|
|
74
|
-
const initialOption = generator.pick(OPTIONS) as GenericOption
|
|
75
|
-
|
|
76
|
-
const props = {
|
|
77
|
-
value: initialOption as Option,
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
const { rerender } = render(<Experiment {...props} />)
|
|
81
|
-
|
|
82
|
-
expect(screen.getByLabelText('Select something')).toHaveDisplayValue(initialOption.label)
|
|
83
|
-
|
|
84
|
-
let selectedOptions = await selectEvent.getSelectedOptions(
|
|
85
|
-
screen.getByLabelText('Select something')
|
|
86
|
-
)
|
|
87
|
-
expect(selectedOptions).toHaveLength(1)
|
|
88
|
-
expect(selectedOptions[0]).toHaveTextContent(initialOption.label)
|
|
89
|
-
|
|
90
|
-
// Update the selected item via prop change
|
|
91
|
-
|
|
92
|
-
const newOption = generator.pick(OPTIONS) as GenericOption
|
|
93
|
-
const newProps = {
|
|
94
|
-
value: newOption as Option,
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
rerender(<Experiment {...newProps} />)
|
|
98
|
-
|
|
99
|
-
expect(screen.getByLabelText('Select something')).toHaveDisplayValue(newOption.label)
|
|
100
|
-
|
|
101
|
-
selectedOptions = await selectEvent.getSelectedOptions(
|
|
102
|
-
screen.getByLabelText('Select something')
|
|
103
|
-
)
|
|
104
|
-
expect(selectedOptions).toHaveLength(1)
|
|
105
|
-
expect(selectedOptions[0]).toHaveTextContent(newOption.label)
|
|
106
|
-
})
|
|
107
|
-
|
|
108
|
-
it('selects the clicked item', async () => {
|
|
109
|
-
const props = {
|
|
110
|
-
onChange: jest.fn(),
|
|
111
|
-
}
|
|
112
|
-
setup(props)
|
|
113
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
114
|
-
|
|
115
|
-
const input = screen.getByLabelText('Select something')
|
|
116
|
-
await selectEvent.select(option.label, input)
|
|
117
|
-
|
|
118
|
-
shouldHaveDisplayValue(input, option.label)
|
|
119
|
-
await shouldHaveSelectedOption(input, option)
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
it('selects the option when a RegExp is provided', async () => {
|
|
123
|
-
const props = {
|
|
124
|
-
onChange: jest.fn(),
|
|
125
|
-
}
|
|
126
|
-
setup(props)
|
|
127
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
128
|
-
const optionRegexp = new RegExp(option.label, 'i')
|
|
129
|
-
|
|
130
|
-
const input = screen.getByLabelText('Select something')
|
|
131
|
-
await selectEvent.select(optionRegexp, input)
|
|
132
|
-
|
|
133
|
-
shouldHaveDisplayValue(input, option.label)
|
|
134
|
-
await shouldHaveSelectedOption(input, option)
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
it('unselects the clicked item', async () => {
|
|
138
|
-
setup({})
|
|
139
|
-
|
|
140
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
141
|
-
const input = screen.getByLabelText('Select something')
|
|
142
|
-
|
|
143
|
-
// first we select
|
|
144
|
-
await selectEvent.select(option.label, input)
|
|
145
|
-
|
|
146
|
-
shouldHaveDisplayValue(input, option.label)
|
|
147
|
-
await shouldHaveSelectedOption(input, option)
|
|
148
|
-
|
|
149
|
-
// then we unselect
|
|
150
|
-
await selectEvent.unselect(option.label, input)
|
|
151
|
-
shouldHaveDisplayValue(input, '')
|
|
152
|
-
|
|
153
|
-
const selectedOptions = await selectEvent.getSelectedOptions(input)
|
|
154
|
-
expect(selectedOptions).toHaveLength(0)
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
it('clears initial selection', async () => {
|
|
158
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
159
|
-
|
|
160
|
-
setup({
|
|
161
|
-
value: option as Option,
|
|
162
|
-
})
|
|
163
|
-
|
|
164
|
-
const input = screen.getByLabelText('Select something')
|
|
165
|
-
expect(input).toHaveDisplayValue(option.label)
|
|
166
|
-
|
|
167
|
-
let selectedOptions = await selectEvent.getSelectedOptions(
|
|
168
|
-
screen.getByLabelText('Select something')
|
|
169
|
-
)
|
|
170
|
-
expect(selectedOptions).toHaveLength(1)
|
|
171
|
-
expect(selectedOptions[0]).toHaveTextContent(option.label)
|
|
172
|
-
|
|
173
|
-
await selectEvent.clear(input)
|
|
174
|
-
|
|
175
|
-
expect(input).toHaveDisplayValue('')
|
|
176
|
-
|
|
177
|
-
selectedOptions = await selectEvent.getSelectedOptions(input)
|
|
178
|
-
expect(selectedOptions).toHaveLength(0)
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
it('searches a given item', async () => {
|
|
182
|
-
setup({})
|
|
183
|
-
|
|
184
|
-
const option = generator.pick(OPTIONS) as GenericOption
|
|
185
|
-
const input = screen.getByLabelText('Select something')
|
|
186
|
-
|
|
187
|
-
await selectEvent.search(option.label, input)
|
|
188
|
-
const visibleOptions = await selectEvent.getOptions(input)
|
|
189
|
-
expect(visibleOptions.length).toBeGreaterThanOrEqual(1)
|
|
190
|
-
})
|
|
191
|
-
})
|
|
192
|
-
})
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
import { act, waitFor, within, waitForElementToBeRemoved, fireEvent } from '@testing-library/react'
|
|
2
|
-
|
|
3
|
-
// based on https://github.com/romgain/react-select-event/blob/master/src/index.ts
|
|
4
|
-
|
|
5
|
-
// find the select container from its input field 🤷
|
|
6
|
-
function getSelectContainer(input: HTMLElement): HTMLElement {
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
8
|
-
return input.parentNode!.parentNode!.parentNode as HTMLElement
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Please, make sure to call expand before trying to get the menu container
|
|
13
|
-
*/
|
|
14
|
-
function getSelectMenu(input: HTMLElement): HTMLElement {
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
16
|
-
return input.parentNode!.parentNode!.nextSibling as HTMLElement
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function getSelectTriggerHandle(input: HTMLElement): HTMLElement {
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
21
|
-
return input.parentNode!.nextSibling!.nextSibling as HTMLElement
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function getSelectSearchContainer(input: HTMLElement): HTMLElement {
|
|
25
|
-
return input.parentNode as HTMLElement
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function isSelectMenuExpanded(input: HTMLElement): boolean {
|
|
29
|
-
const selectContainer = getSelectContainer(input)
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Once the select is expanded, we have the following structure:
|
|
33
|
-
* +-------------+
|
|
34
|
-
* | Close button (visually hidden)
|
|
35
|
-
* +-------------+
|
|
36
|
-
* | DropdownTrigger
|
|
37
|
-
* +-------------+
|
|
38
|
-
* | Popover
|
|
39
|
-
* +-------------+
|
|
40
|
-
*
|
|
41
|
-
* This, if the container has 3 children, we assume the menu is expanded
|
|
42
|
-
*/
|
|
43
|
-
return selectContainer.children.length === 3
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* This is needed because some datasources might be asynchronous.
|
|
48
|
-
* To ensure that the data they retrieve will be available, we wait for the
|
|
49
|
-
* querying phase to finish.
|
|
50
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
51
|
-
*/
|
|
52
|
-
async function waitForPendingQuery(input: HTMLElement) {
|
|
53
|
-
const searchContainer = getSelectSearchContainer(input)
|
|
54
|
-
|
|
55
|
-
if (!within(searchContainer).queryByTestId('select-trigger-loading')) {
|
|
56
|
-
return
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
await waitForElementToBeRemoved(
|
|
60
|
-
() => within(searchContainer).queryByTestId('select-trigger-loading'),
|
|
61
|
-
{ timeout: 2500 }
|
|
62
|
-
)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Expand the `Select` menu, if it not already expanded.
|
|
67
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
68
|
-
* @returns {Promise<void>}
|
|
69
|
-
*/
|
|
70
|
-
async function expand(input: HTMLElement): Promise<void> {
|
|
71
|
-
await waitForPendingQuery(input)
|
|
72
|
-
|
|
73
|
-
if (isSelectMenuExpanded(input)) {
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const triggerHandle = getSelectTriggerHandle(input)
|
|
78
|
-
|
|
79
|
-
await waitFor(() => {
|
|
80
|
-
expect(triggerHandle).toBeEnabled()
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Using act and a manually dispatched event so we can account for the
|
|
85
|
-
* state changes that happen when the search input is clicked.
|
|
86
|
-
* This is mainly related to the `handleEvent` from the `useClickOutside` hook.
|
|
87
|
-
*/
|
|
88
|
-
act(() => {
|
|
89
|
-
input.dispatchEvent(new MouseEvent('click', { bubbles: true }))
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
await waitFor(() => {
|
|
93
|
-
expect(within(getSelectContainer(input)).getByRole('listbox')).toBeInTheDocument()
|
|
94
|
-
})
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Collapse the `Select` menu, if it not already collapsed.
|
|
99
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
100
|
-
* @returns {Promise<void>}
|
|
101
|
-
*/
|
|
102
|
-
async function collapse(input: HTMLElement): Promise<void> {
|
|
103
|
-
if (!isSelectMenuExpanded(input)) {
|
|
104
|
-
return
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const triggerHandle = getSelectTriggerHandle(input)
|
|
108
|
-
|
|
109
|
-
fireEvent.click(triggerHandle)
|
|
110
|
-
|
|
111
|
-
await waitFor(() => {
|
|
112
|
-
expect(within(getSelectContainer(input)).queryByRole('listbox')).not.toBeInTheDocument()
|
|
113
|
-
})
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Select the provided option(s), if they are present in the menu.
|
|
118
|
-
* Notice that we programatically expand the `Select` menu before select the item
|
|
119
|
-
* @param {string | RegExp} option - Label for the option to be selected.
|
|
120
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
121
|
-
* @returns {Promise<void>}
|
|
122
|
-
*/
|
|
123
|
-
async function select(option: string | RegExp, input: HTMLElement): Promise<void> {
|
|
124
|
-
await expand(input)
|
|
125
|
-
|
|
126
|
-
const menuContainer = getSelectMenu(input)
|
|
127
|
-
|
|
128
|
-
const optionElement = await within(menuContainer).findByLabelText(option)
|
|
129
|
-
|
|
130
|
-
// click the option if exists; Select currently closes when an item is clicked.
|
|
131
|
-
if (optionElement && optionElement.getAttribute('aria-selected') == 'false') {
|
|
132
|
-
/**
|
|
133
|
-
* This is a replacement for the `userEvent.click`.
|
|
134
|
-
* We are adopting this approach to remove the peer dep to @testing-library/user-event for
|
|
135
|
-
* applications using this helper, so they are not tied to the same user-event as this library.
|
|
136
|
-
* It follows the same sequence of event stated in the documentation available at:
|
|
137
|
-
* https://testing-library.com/docs/guide-events/#interactions-vs-events
|
|
138
|
-
*/
|
|
139
|
-
fireEvent.mouseDown(optionElement)
|
|
140
|
-
|
|
141
|
-
act(() => {
|
|
142
|
-
optionElement.focus()
|
|
143
|
-
})
|
|
144
|
-
|
|
145
|
-
fireEvent.mouseUp(optionElement)
|
|
146
|
-
fireEvent.click(optionElement)
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// we collapse in the case the option was not clicked
|
|
150
|
-
await collapse(input)
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Unselect the provided option(s), if they are present in the menu AND are selected.
|
|
155
|
-
* Notice that we programatically expand the `Select` menu before select the item
|
|
156
|
-
* @param {string} option - Label for the option to be unselected.
|
|
157
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
158
|
-
* @returns {Promise<void>}
|
|
159
|
-
*/
|
|
160
|
-
async function unselect(option: string, input: HTMLElement): Promise<void> {
|
|
161
|
-
await expand(input)
|
|
162
|
-
|
|
163
|
-
const menuContainer = getSelectMenu(input)
|
|
164
|
-
|
|
165
|
-
const optionElement = await within(menuContainer).findByLabelText(option)
|
|
166
|
-
|
|
167
|
-
// ensures that the option exists and IS selected
|
|
168
|
-
if (optionElement && optionElement.getAttribute('aria-selected') === 'true') {
|
|
169
|
-
fireEvent.click(optionElement)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// we collapse in the case the option was not clicked
|
|
173
|
-
await collapse(input)
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Clear the selection, if there are any options selected.
|
|
178
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
179
|
-
* @returns {Promise<void>}
|
|
180
|
-
*/
|
|
181
|
-
async function clear(input: HTMLElement): Promise<void> {
|
|
182
|
-
await waitForPendingQuery(input)
|
|
183
|
-
|
|
184
|
-
const searchContainer = getSelectSearchContainer(input)
|
|
185
|
-
|
|
186
|
-
const clearButton = within(searchContainer).getByTestId('select-trigger-clear')
|
|
187
|
-
|
|
188
|
-
if (clearButton) {
|
|
189
|
-
fireEvent.click(clearButton)
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Perform search based on the given `query`. It will fail if the option is not found.
|
|
195
|
-
* @param {string} query - Search term.
|
|
196
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
197
|
-
* @returns {Promise<void>}
|
|
198
|
-
*/
|
|
199
|
-
async function search(query: string, input: HTMLElement): Promise<void> {
|
|
200
|
-
fireEvent.change(input, {
|
|
201
|
-
target: { value: query },
|
|
202
|
-
})
|
|
203
|
-
|
|
204
|
-
await waitForPendingQuery(input)
|
|
205
|
-
|
|
206
|
-
const menuContainer = getSelectMenu(input)
|
|
207
|
-
|
|
208
|
-
await within(menuContainer).findAllByRole('option')
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Get options elements currently available in the `Select` menu.
|
|
213
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
214
|
-
* @returns {Promise<HTMLElement[]>}
|
|
215
|
-
*/
|
|
216
|
-
async function getOptions(input: HTMLElement): Promise<HTMLElement[]> {
|
|
217
|
-
await expand(input)
|
|
218
|
-
|
|
219
|
-
const menuContainer = getSelectMenu(input)
|
|
220
|
-
|
|
221
|
-
const options = within(menuContainer).queryAllByRole('option')
|
|
222
|
-
|
|
223
|
-
await collapse(input)
|
|
224
|
-
|
|
225
|
-
return options
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Get options elements currently selected in the `Select` menu.
|
|
230
|
-
* @param {HTMLElement} input - You can refer to this element by the label you applied to the `Select`.
|
|
231
|
-
* @returns {Promise<HTMLElement[]>}
|
|
232
|
-
*/
|
|
233
|
-
async function getSelectedOptions(input: HTMLElement): Promise<HTMLElement[]> {
|
|
234
|
-
await expand(input)
|
|
235
|
-
|
|
236
|
-
const menuContainer = getSelectMenu(input)
|
|
237
|
-
let selectedOptions: HTMLElement[] = []
|
|
238
|
-
|
|
239
|
-
try {
|
|
240
|
-
selectedOptions = await within(menuContainer).findAllByRole('option', {
|
|
241
|
-
selected: true,
|
|
242
|
-
})
|
|
243
|
-
} catch (err) {
|
|
244
|
-
selectedOptions = []
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
await collapse(input)
|
|
248
|
-
|
|
249
|
-
return selectedOptions
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export const selectEvent = {
|
|
253
|
-
select,
|
|
254
|
-
unselect,
|
|
255
|
-
clear,
|
|
256
|
-
search,
|
|
257
|
-
expand,
|
|
258
|
-
collapse,
|
|
259
|
-
getOptions,
|
|
260
|
-
getSelectedOptions,
|
|
261
|
-
isMenuExpanded: isSelectMenuExpanded,
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
export default selectEvent
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './SelectEvent'
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Interpolation, ThemeProps } from 'styled-components'
|
|
2
|
-
import { isFunction } from '@loadsmart/utils-function'
|
|
3
|
-
|
|
4
|
-
import { Alice } from '../../theming/themes'
|
|
5
|
-
import type { CustomTheme } from '../../theming'
|
|
6
|
-
import toArray from 'utils/toolset/toArray'
|
|
7
|
-
|
|
8
|
-
type ThemedInterpolation = Interpolation<ThemeProps<CustomTheme>>
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Use this function to simulate the CSS that would be generated by styled-components
|
|
12
|
-
* @param {Interpolation<ThemeProps<CustomTheme>>} styles - A `css` reference with interpolated styles
|
|
13
|
-
* @returns {string} The final CSS
|
|
14
|
-
*/
|
|
15
|
-
export default function getInterpolatedStyles(styles: ThemedInterpolation): string {
|
|
16
|
-
return toArray(styles)
|
|
17
|
-
.map((interpolation) => {
|
|
18
|
-
while (isFunction(interpolation)) {
|
|
19
|
-
interpolation = interpolation({ theme: Alice })
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return interpolation
|
|
23
|
-
})
|
|
24
|
-
.join('')
|
|
25
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default, default as getInterpolatedStyles } from './getInterpolatedStyles'
|
package/src/testing/index.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { DatePickerEvent, DateRangePickerEvent } from './DatePickerEvent'
|
|
2
|
-
export { default as DragDropFileEvent } from './DragDropFileEvent'
|
|
3
|
-
export { default as SelectEvent } from './SelectEvent'
|
|
4
|
-
|
|
5
|
-
export { default as getInterpolatedStyles } from './getInterpolatedStyles'
|
|
6
|
-
export { default as renderWithDragDropFileProvider } from './renderWithDragDropFileProvider'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './renderWithDragDropFileProvider'
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react'
|
|
2
|
-
import { render } from '@testing-library/react'
|
|
3
|
-
import type { RenderResult } from '@testing-library/react'
|
|
4
|
-
|
|
5
|
-
import type { DragDropFileContextValue } from '../../components/DragDropFile/types'
|
|
6
|
-
import { DragDropFileContext } from '../../components/DragDropFile/DragDropFile.context'
|
|
7
|
-
|
|
8
|
-
const defaultContextValueMock: DragDropFileContextValue = {
|
|
9
|
-
fileList: [],
|
|
10
|
-
onFilesAdded: jest.fn(),
|
|
11
|
-
onRetryUpload: jest.fn(),
|
|
12
|
-
onRemoveFile: jest.fn(),
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const renderWithDragDropFileProvider = (
|
|
16
|
-
ui: ReactNode,
|
|
17
|
-
customContext?: Partial<DragDropFileContextValue>
|
|
18
|
-
): RenderResult => {
|
|
19
|
-
const contextValue = { ...defaultContextValueMock, ...customContext }
|
|
20
|
-
|
|
21
|
-
const renderedUi = (children: ReactNode) => (
|
|
22
|
-
<DragDropFileContext.Provider value={contextValue}>{children}</DragDropFileContext.Provider>
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
return render(renderedUi(ui))
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export default renderWithDragDropFileProvider
|
package/src/tests/generator.ts
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import Chance from 'chance'
|
|
2
|
-
import { nanoid } from 'nanoid'
|
|
3
|
-
|
|
4
|
-
const chance = new Chance()
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Generates an array of `amount` (or random) length, based on the given
|
|
8
|
-
* template function.
|
|
9
|
-
* The template function receives as named parameter the current `index`.
|
|
10
|
-
* @param {Function} template Template function to generate one item
|
|
11
|
-
* @param {number} amount Amount of items to be generated. If none is provide,
|
|
12
|
-
* then a random amount is generated.
|
|
13
|
-
* @returns {Array} Returns an array of lenght `amount`, with items
|
|
14
|
-
* generated based on the provided `template`.
|
|
15
|
-
*/
|
|
16
|
-
function generateArray<T>(
|
|
17
|
-
template: ({ index }: { index: number }) => T,
|
|
18
|
-
amount?: number
|
|
19
|
-
): Array<T> {
|
|
20
|
-
const safeAmount = amount || chance.integer({ min: 5, max: 10 })
|
|
21
|
-
|
|
22
|
-
const data = []
|
|
23
|
-
for (let i = 0; i < safeAmount; i++) {
|
|
24
|
-
const item = template({ index: i })
|
|
25
|
-
data.push(item)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return data
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function generatePick<T>(
|
|
32
|
-
array: Array<T>,
|
|
33
|
-
options?: { amount: number; allowRepeat?: boolean }
|
|
34
|
-
): T | Array<T> {
|
|
35
|
-
const { amount = 1, allowRepeat = true } = options || {}
|
|
36
|
-
|
|
37
|
-
if (amount === 1) {
|
|
38
|
-
return chance.pickone(array)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let picked = chance.pickset(array, amount)
|
|
42
|
-
|
|
43
|
-
if (!allowRepeat) {
|
|
44
|
-
picked = Array.from(new Set(picked))
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return picked
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function generateDate(overrides: { month?: number; day?: number; year?: number } = {}): string {
|
|
51
|
-
const month = String(overrides.month ?? chance.natural({ min: 1, max: 12 })).padStart(2, '0')
|
|
52
|
-
const day = String(overrides.day ?? chance.natural({ min: 1, max: 28 })).padStart(2, '0')
|
|
53
|
-
const year = overrides.year ?? new Date().getFullYear()
|
|
54
|
-
|
|
55
|
-
return `${month}/${day}/${year}`
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function generateTime(opts?: Chance.Options): string {
|
|
59
|
-
const hour = String(chance.hour({ twentyfour: true, ...opts })).padStart(2, '0')
|
|
60
|
-
const minute = String(chance.minute()).padStart(2, '0')
|
|
61
|
-
|
|
62
|
-
return `${hour}:${minute}`
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function generateUsername(): string {
|
|
66
|
-
const name = chance.name()
|
|
67
|
-
return name.replace(/^\s+|\s+$/g, '').toLowerCase()
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function generateID(): string {
|
|
71
|
-
return nanoid()
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
interface DataGenerator {
|
|
75
|
-
animal: () => string
|
|
76
|
-
array: <T>(template: ({ index }: { index: number }) => T, amount?: number) => Array<T>
|
|
77
|
-
boolean: () => boolean
|
|
78
|
-
company: () => string
|
|
79
|
-
date: () => string
|
|
80
|
-
float: (opts?: Chance.Options) => number
|
|
81
|
-
id: () => string
|
|
82
|
-
name: (opts?: Chance.Options) => string
|
|
83
|
-
natural: (opts?: Chance.Options) => number
|
|
84
|
-
paragraph: (opts?: Chance.Options) => string
|
|
85
|
-
/**
|
|
86
|
-
* @deprecated Use pickone or pickset
|
|
87
|
-
*/
|
|
88
|
-
pick: <T>(array: Array<T>, options?: { amount: number; allowRepeat?: boolean }) => T | Array<T>
|
|
89
|
-
pickone<T>(arr: T[]): T
|
|
90
|
-
pickset<T>(arr: T[], count?: number): T[]
|
|
91
|
-
profession: () => string
|
|
92
|
-
sentence: (opts?: Chance.Options) => string
|
|
93
|
-
state: (opts?: Chance.Options) => string
|
|
94
|
-
time: (opts?: Chance.Options) => string
|
|
95
|
-
token: () => string
|
|
96
|
-
url: () => string
|
|
97
|
-
username: () => string
|
|
98
|
-
word: (opts?: Chance.Options) => string
|
|
99
|
-
dollar: () => string
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const generators: DataGenerator = {
|
|
103
|
-
animal: chance.animal.bind(chance),
|
|
104
|
-
array: generateArray,
|
|
105
|
-
boolean: chance.bool.bind(chance),
|
|
106
|
-
company: chance.company.bind(chance),
|
|
107
|
-
date: generateDate,
|
|
108
|
-
float: chance.floating.bind(chance),
|
|
109
|
-
id: generateID,
|
|
110
|
-
name: chance.name.bind(chance),
|
|
111
|
-
natural: chance.natural.bind(chance),
|
|
112
|
-
paragraph: chance.paragraph.bind(chance),
|
|
113
|
-
pick: generatePick,
|
|
114
|
-
pickone: chance.pickone.bind(chance),
|
|
115
|
-
pickset: chance.pickset.bind(chance),
|
|
116
|
-
profession: chance.profession.bind(chance),
|
|
117
|
-
sentence: chance.sentence.bind(chance),
|
|
118
|
-
state: chance.state.bind(chance),
|
|
119
|
-
time: generateTime,
|
|
120
|
-
token: chance.animal.bind(chance),
|
|
121
|
-
url: chance.url.bind(chance),
|
|
122
|
-
username: generateUsername,
|
|
123
|
-
word: chance.word.bind(chance),
|
|
124
|
-
dollar: chance.dollar.bind(chance),
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export default generators
|
package/src/tests/renderer.tsx
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
render,
|
|
3
|
-
fireEvent,
|
|
4
|
-
RenderOptions,
|
|
5
|
-
within,
|
|
6
|
-
waitFor,
|
|
7
|
-
waitForElementToBeRemoved,
|
|
8
|
-
act,
|
|
9
|
-
screen,
|
|
10
|
-
queries,
|
|
11
|
-
} from '@testing-library/react'
|
|
12
|
-
import userEvent from '@testing-library/user-event'
|
|
13
|
-
|
|
14
|
-
class Renderer {
|
|
15
|
-
result: React.ReactElement
|
|
16
|
-
|
|
17
|
-
constructor(children: React.ReactElement) {
|
|
18
|
-
this.result = children
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
render(options?: Omit<RenderOptions, 'queries'>) {
|
|
22
|
-
return render(this.result, options)
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export default function customRenderer(children: React.ReactElement): Renderer {
|
|
27
|
-
return new Renderer(children)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export {
|
|
31
|
-
act,
|
|
32
|
-
fireEvent as fire,
|
|
33
|
-
queries,
|
|
34
|
-
screen,
|
|
35
|
-
userEvent as user,
|
|
36
|
-
waitFor,
|
|
37
|
-
waitForElementToBeRemoved,
|
|
38
|
-
within,
|
|
39
|
-
}
|