@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,125 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { ThemeProvider } from 'styled-components'
|
|
3
|
-
import renderer, { screen, user } from '../../../tests/renderer'
|
|
4
|
-
import { Menu } from './'
|
|
5
|
-
import type { MenuProps } from './Menu'
|
|
6
|
-
import { Alice } from '../../../theming/themes'
|
|
7
|
-
|
|
8
|
-
function setup(props: MenuProps) {
|
|
9
|
-
return renderer(
|
|
10
|
-
<ThemeProvider theme={Alice}>
|
|
11
|
-
<Menu {...props} />
|
|
12
|
-
</ThemeProvider>
|
|
13
|
-
).render()
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
describe('Menu', () => {
|
|
17
|
-
it('renders correctly navigation bar', () => {
|
|
18
|
-
setup({ children: null })
|
|
19
|
-
|
|
20
|
-
expect(screen.getByRole('navigation')).toBeInTheDocument()
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
it('renders a text link when only label is provided', () => {
|
|
24
|
-
setup({ children: <Menu.Item url="/check" label="Check" /> })
|
|
25
|
-
|
|
26
|
-
expect(screen.getByText('Check')).toBeInTheDocument()
|
|
27
|
-
expect(screen.getByRole('link', { name: 'Check' })).toHaveAttribute('href', '/check')
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
it('accepts onClick and calls it when performing an action', () => {
|
|
31
|
-
const onClick = jest.fn()
|
|
32
|
-
|
|
33
|
-
setup({ children: <Menu.Item onClick={onClick} label="Check" /> })
|
|
34
|
-
|
|
35
|
-
user.click(screen.getByRole('link', { name: 'Check' }))
|
|
36
|
-
|
|
37
|
-
expect(onClick).toHaveBeenCalledTimes(1)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
it('renders an icon link when icon is provided', () => {
|
|
41
|
-
setup({
|
|
42
|
-
children: <Menu.Item icon={<span data-testid="icon" />} url="/schedule" label="Schedule" />,
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
expect(screen.getByTestId('icon')).toBeInTheDocument()
|
|
46
|
-
|
|
47
|
-
expect(screen.queryByText('Schedule')).not.toBeInTheDocument()
|
|
48
|
-
|
|
49
|
-
user.tab()
|
|
50
|
-
|
|
51
|
-
expect(document.activeElement as Element).toEqual(
|
|
52
|
-
screen.getByRole('link', { name: 'Schedule' })
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
expect(screen.getByRole('link', { name: 'Schedule' })).toHaveAttribute('href', '/schedule')
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
it('renders dropdown menu when subitems are provided', () => {
|
|
59
|
-
const username = 'Username'
|
|
60
|
-
const link = { label: 'Link', url: '/url' }
|
|
61
|
-
const action = { label: 'Logout', click: jest.fn() }
|
|
62
|
-
|
|
63
|
-
setup({
|
|
64
|
-
children: (
|
|
65
|
-
<Menu.Item label={username}>
|
|
66
|
-
<Menu.SubItem label={link.label} url={link.url} />
|
|
67
|
-
<Menu.SubItem label={action.label} onClick={action.click} />
|
|
68
|
-
</Menu.Item>
|
|
69
|
-
),
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
expect(screen.getByText(username)).toBeInTheDocument()
|
|
73
|
-
expect(screen.queryByText(link.label)).not.toBeInTheDocument()
|
|
74
|
-
expect(screen.queryByText(action.label)).not.toBeInTheDocument()
|
|
75
|
-
|
|
76
|
-
user.click(screen.getByRole('button', { name: username }))
|
|
77
|
-
|
|
78
|
-
const linkSubItem = screen.getByRole('link', { name: link.label })
|
|
79
|
-
const buttonSubItem = screen.getByRole('menuitem', { name: action.label })
|
|
80
|
-
|
|
81
|
-
expect(linkSubItem).toBeVisible()
|
|
82
|
-
expect(linkSubItem).toHaveAttribute('href', link.url)
|
|
83
|
-
|
|
84
|
-
expect(buttonSubItem).toBeVisible()
|
|
85
|
-
|
|
86
|
-
user.click(buttonSubItem)
|
|
87
|
-
|
|
88
|
-
expect(action.click).toBeCalled()
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
// FIXME: Skipping as it's preventing test pipeline from being finished
|
|
92
|
-
it.skip('renders an accessible dropdown menu when children are provided', () => {
|
|
93
|
-
const username = 'Username'
|
|
94
|
-
const action = 'Log Out'
|
|
95
|
-
|
|
96
|
-
setup({
|
|
97
|
-
children: (
|
|
98
|
-
<Menu.Item label={username}>
|
|
99
|
-
<Menu.SubItem label={action} url="/logout" />
|
|
100
|
-
</Menu.Item>
|
|
101
|
-
),
|
|
102
|
-
})
|
|
103
|
-
|
|
104
|
-
expect(screen.getByText(username)).toBeInTheDocument()
|
|
105
|
-
expect(screen.queryByText(action)).not.toBeInTheDocument()
|
|
106
|
-
|
|
107
|
-
user.tab()
|
|
108
|
-
|
|
109
|
-
expect(document.activeElement as Element).toEqual(
|
|
110
|
-
screen.getByRole('button', { name: username })
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
user.keyboard('{Enter}')
|
|
114
|
-
|
|
115
|
-
const subItem = screen.getByRole('link')
|
|
116
|
-
|
|
117
|
-
expect(subItem).toBeVisible()
|
|
118
|
-
|
|
119
|
-
user.tab()
|
|
120
|
-
|
|
121
|
-
expect(document.activeElement as Element).toEqual(subItem)
|
|
122
|
-
|
|
123
|
-
expect(subItem).toHaveAttribute('href', '/logout')
|
|
124
|
-
})
|
|
125
|
-
})
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { PropsWithChildren, ReactNode, HTMLAttributes } from 'react'
|
|
3
|
-
import styled from 'styled-components'
|
|
4
|
-
|
|
5
|
-
import { getToken as token } from 'theming'
|
|
6
|
-
import {
|
|
7
|
-
MenuItemDropdown,
|
|
8
|
-
MenuDropdown,
|
|
9
|
-
MenuDropdownSubItem,
|
|
10
|
-
MenuDropdownSeparator,
|
|
11
|
-
} from './MenuItemDropdown'
|
|
12
|
-
import { MenuItemIcon } from './MenuItemIcon'
|
|
13
|
-
import conditional, { whenProps } from 'tools/conditional'
|
|
14
|
-
|
|
15
|
-
type MenuItemProps = HTMLAttributes<HTMLElement> &
|
|
16
|
-
PropsWithChildren<{
|
|
17
|
-
label: string
|
|
18
|
-
icon?: ReactNode
|
|
19
|
-
url?: string
|
|
20
|
-
}>
|
|
21
|
-
|
|
22
|
-
export type MenuProps = PropsWithChildren<{
|
|
23
|
-
align?: 'left' | 'right'
|
|
24
|
-
}>
|
|
25
|
-
|
|
26
|
-
const MenuContainer = styled.nav<{ $align: MenuProps['align'] }>`
|
|
27
|
-
${conditional({
|
|
28
|
-
'margin-left: auto;': whenProps({ $align: 'right' }),
|
|
29
|
-
})}
|
|
30
|
-
|
|
31
|
-
display: flex;
|
|
32
|
-
flex-direction: row;
|
|
33
|
-
align-items: center;
|
|
34
|
-
|
|
35
|
-
& > * + * {
|
|
36
|
-
margin-left: ${token('space-m')};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
& > * + ${MenuDropdown} {
|
|
40
|
-
margin-left: ${token('space-xl')};
|
|
41
|
-
}
|
|
42
|
-
`
|
|
43
|
-
|
|
44
|
-
function MenuItem(props: MenuItemProps): JSX.Element {
|
|
45
|
-
if (props.children) {
|
|
46
|
-
return <MenuItemDropdown {...props} />
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return <MenuItemIcon {...props} />
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function Menu(props: MenuProps): JSX.Element {
|
|
53
|
-
const { align = 'left' } = props
|
|
54
|
-
|
|
55
|
-
return <MenuContainer $align={align}>{props.children}</MenuContainer>
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
Menu.Item = MenuItem
|
|
59
|
-
Menu.SubItem = MenuDropdownSubItem
|
|
60
|
-
Menu.Separator = MenuDropdownSeparator
|
|
61
|
-
|
|
62
|
-
export default Menu
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { PropsWithChildren, ReactNode, HTMLAttributes } from 'react'
|
|
3
|
-
import styled from 'styled-components'
|
|
4
|
-
|
|
5
|
-
import { getToken as token } from 'theming'
|
|
6
|
-
import focusable from 'styles/focusable'
|
|
7
|
-
import hoverable from 'styles/hoverable'
|
|
8
|
-
import transition from 'styles/transition'
|
|
9
|
-
import { Dropdown, DropdownMenu, DropdownMenuItem, DropdownTrigger } from 'components/Dropdown'
|
|
10
|
-
import { BaseLink } from 'components/Link'
|
|
11
|
-
import useID from 'hooks/useID'
|
|
12
|
-
import ellipsizable from 'styles/ellipsizable'
|
|
13
|
-
import typography from 'styles/typography'
|
|
14
|
-
import { Popover } from 'components/Popover'
|
|
15
|
-
|
|
16
|
-
export const MenuDropdown = styled(Dropdown)({})
|
|
17
|
-
|
|
18
|
-
export const MenuDropdownSeparator = styled.hr`
|
|
19
|
-
margin: ${token('space-s')} ${token('space-m')};
|
|
20
|
-
|
|
21
|
-
color: ${token('top-navigation-dropdown-separator-color')};
|
|
22
|
-
`
|
|
23
|
-
|
|
24
|
-
const MenuDropdownTrigger = styled(DropdownTrigger.Handle)`
|
|
25
|
-
color: ${token('top-navigation-dropdown-trigger-color')};
|
|
26
|
-
`
|
|
27
|
-
|
|
28
|
-
export const MenuDropdownLabel = styled.label`
|
|
29
|
-
${transition()}
|
|
30
|
-
|
|
31
|
-
align-items: center;
|
|
32
|
-
display: flex;
|
|
33
|
-
|
|
34
|
-
${typography('body-bold', { color: 'top-navigation-item-color' })}
|
|
35
|
-
|
|
36
|
-
cursor: pointer;
|
|
37
|
-
|
|
38
|
-
${focusable`
|
|
39
|
-
color: ${token('top-navigation-item-color--hover')};
|
|
40
|
-
`}
|
|
41
|
-
`
|
|
42
|
-
|
|
43
|
-
const Ellipsizable = styled.span<{ $max: number }>`
|
|
44
|
-
${ellipsizable()}
|
|
45
|
-
|
|
46
|
-
max-width: ${(props) => props.$max}px;
|
|
47
|
-
`
|
|
48
|
-
|
|
49
|
-
const IconWrapper = styled.div`
|
|
50
|
-
width: ${token('space-m')};
|
|
51
|
-
`
|
|
52
|
-
|
|
53
|
-
const MenuDropdownSubItemLink = styled(BaseLink)`
|
|
54
|
-
align-items: stretch;
|
|
55
|
-
${typography('body', { color: 'top-navigation-dropdown-subitem-color' })}
|
|
56
|
-
|
|
57
|
-
${hoverable`
|
|
58
|
-
text-decoration: none;
|
|
59
|
-
font-weight: inherit;
|
|
60
|
-
`}
|
|
61
|
-
|
|
62
|
-
${focusable`
|
|
63
|
-
> * {
|
|
64
|
-
background-color: ${token('color-neutral-lighter')}
|
|
65
|
-
}
|
|
66
|
-
`}
|
|
67
|
-
`
|
|
68
|
-
|
|
69
|
-
type MenuDropdownSubItemProps = HTMLAttributes<HTMLElement> & {
|
|
70
|
-
label: string
|
|
71
|
-
url?: string
|
|
72
|
-
icon?: ReactNode
|
|
73
|
-
separator?: boolean
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function MenuDropdownSubItem({
|
|
77
|
-
icon,
|
|
78
|
-
label,
|
|
79
|
-
url,
|
|
80
|
-
...rest
|
|
81
|
-
}: MenuDropdownSubItemProps): JSX.Element {
|
|
82
|
-
return url ? (
|
|
83
|
-
<MenuDropdownSubItemLink {...rest} href={url}>
|
|
84
|
-
<DropdownMenuItem tabIndex={-1} leading={<IconWrapper>{icon}</IconWrapper>}>
|
|
85
|
-
{label}
|
|
86
|
-
</DropdownMenuItem>
|
|
87
|
-
</MenuDropdownSubItemLink>
|
|
88
|
-
) : (
|
|
89
|
-
<DropdownMenuItem leading={<IconWrapper>{icon}</IconWrapper>} {...rest}>
|
|
90
|
-
{label}
|
|
91
|
-
</DropdownMenuItem>
|
|
92
|
-
)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export type MenuItemDropdownProps = PropsWithChildren<{
|
|
96
|
-
label: string
|
|
97
|
-
}>
|
|
98
|
-
|
|
99
|
-
function MenuItemDropdown(props: MenuItemDropdownProps): JSX.Element {
|
|
100
|
-
const { label, children, ...rest } = props
|
|
101
|
-
const labelId = useID()
|
|
102
|
-
|
|
103
|
-
return (
|
|
104
|
-
<MenuDropdown align="end" key={label}>
|
|
105
|
-
<Popover.Reference>
|
|
106
|
-
<MenuDropdownLabel>
|
|
107
|
-
<Ellipsizable $max={120} id={labelId}>
|
|
108
|
-
{label}
|
|
109
|
-
</Ellipsizable>
|
|
110
|
-
<MenuDropdownTrigger {...rest} tabIndex={0} aria-labelledby={labelId} />
|
|
111
|
-
</MenuDropdownLabel>
|
|
112
|
-
</Popover.Reference>
|
|
113
|
-
<DropdownMenu>{children}</DropdownMenu>
|
|
114
|
-
</MenuDropdown>
|
|
115
|
-
)
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export { MenuItemDropdown }
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { ReactNode } from 'react'
|
|
3
|
-
import styled from 'styled-components'
|
|
4
|
-
|
|
5
|
-
import { getToken as token } from 'theming'
|
|
6
|
-
import focusable from 'styles/focusable'
|
|
7
|
-
import hoverable from 'styles/hoverable'
|
|
8
|
-
import { BaseLink } from 'components/Link'
|
|
9
|
-
import conditional, { whenProps } from 'tools/conditional'
|
|
10
|
-
import typography from 'styles/typography'
|
|
11
|
-
|
|
12
|
-
const MenuLink = styled(BaseLink)<{ hasIcon?: boolean }>`
|
|
13
|
-
${typography('body-bold')}
|
|
14
|
-
|
|
15
|
-
color: ${conditional({
|
|
16
|
-
'top-navigation-item-icon-color': whenProps({ hasIcon: true }),
|
|
17
|
-
'top-navigation-item-color': whenProps({ hasIcon: false }),
|
|
18
|
-
})};
|
|
19
|
-
|
|
20
|
-
${hoverable`
|
|
21
|
-
text-decoration: none;
|
|
22
|
-
color: ${token('top-navigation-item-color--hover')};
|
|
23
|
-
`}
|
|
24
|
-
|
|
25
|
-
${focusable`
|
|
26
|
-
color: ${token('top-navigation-item-color--hover')};
|
|
27
|
-
`}
|
|
28
|
-
`
|
|
29
|
-
|
|
30
|
-
type MenuItemIconProps = {
|
|
31
|
-
label: string
|
|
32
|
-
icon?: ReactNode
|
|
33
|
-
url?: string
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function MenuItemIcon({ url, icon, label, ...rest }: MenuItemIconProps): JSX.Element {
|
|
37
|
-
if (icon) {
|
|
38
|
-
return (
|
|
39
|
-
<MenuLink {...rest} href={url} hasIcon title={label}>
|
|
40
|
-
{icon}
|
|
41
|
-
</MenuLink>
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<MenuLink {...rest} href={url}>
|
|
47
|
-
{label}
|
|
48
|
-
</MenuLink>
|
|
49
|
-
)
|
|
50
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as Menu } from './Menu'
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import styled from 'styled-components'
|
|
3
|
-
|
|
4
|
-
import { getToken as token } from 'theming'
|
|
5
|
-
import { Icon } from 'components/Icon'
|
|
6
|
-
|
|
7
|
-
export type OpenSideNavButtonProps = {
|
|
8
|
-
className?: string
|
|
9
|
-
onClick: () => void
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const Container = styled.button`
|
|
13
|
-
margin-right: ${token('space-2xl')};
|
|
14
|
-
|
|
15
|
-
background: none;
|
|
16
|
-
border: none;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
`
|
|
19
|
-
|
|
20
|
-
function OpenSideNavButton({ className, onClick }: OpenSideNavButtonProps): JSX.Element {
|
|
21
|
-
return (
|
|
22
|
-
<Container className={className} onClick={onClick}>
|
|
23
|
-
<Icon name="burguer-menu" size={24} data-testid="toggle-sidenav" />
|
|
24
|
-
</Container>
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export default styled(OpenSideNavButton)<OpenSideNavButtonProps>({})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as OpenSideNavButton } from './OpenSideNavButton'
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import { Icon } from 'components/Icon'
|
|
4
|
-
import { TopNavigation } from './'
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: 'Components/TopNavigation',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function Playground(): JSX.Element {
|
|
11
|
-
return (
|
|
12
|
-
<TopNavigation>
|
|
13
|
-
<TopNavigation.Logo url="#">
|
|
14
|
-
<img src="logo.svg" alt="The Logo" />
|
|
15
|
-
</TopNavigation.Logo>
|
|
16
|
-
|
|
17
|
-
<TopNavigation.Menu align="right">
|
|
18
|
-
<TopNavigation.Menu.Item label="Add Note" url="#" />
|
|
19
|
-
|
|
20
|
-
<TopNavigation.Menu.Item
|
|
21
|
-
icon={<Icon name="warning" size={20} />}
|
|
22
|
-
label="Schedule"
|
|
23
|
-
url="#"
|
|
24
|
-
/>
|
|
25
|
-
|
|
26
|
-
<TopNavigation.Menu.Item label="Michael Scott Regional Manager">
|
|
27
|
-
<TopNavigation.Menu.SubItem label="Account" url="#" />
|
|
28
|
-
<TopNavigation.Menu.SubItem
|
|
29
|
-
label="Help Center"
|
|
30
|
-
icon={<Icon name="warning" size={20} />}
|
|
31
|
-
url="#"
|
|
32
|
-
/>
|
|
33
|
-
<TopNavigation.Menu.Separator />
|
|
34
|
-
<TopNavigation.Menu.SubItem
|
|
35
|
-
label="Logout"
|
|
36
|
-
onClick={() => alert('Logout button clicked')}
|
|
37
|
-
/>
|
|
38
|
-
</TopNavigation.Menu.Item>
|
|
39
|
-
</TopNavigation.Menu>
|
|
40
|
-
</TopNavigation>
|
|
41
|
-
)
|
|
42
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { ReactNode } from 'react'
|
|
3
|
-
import styled, { css } from 'styled-components'
|
|
4
|
-
|
|
5
|
-
import { getToken as token } from 'theming'
|
|
6
|
-
import { Logo } from './Logo'
|
|
7
|
-
import { Menu } from './Menu'
|
|
8
|
-
import { MenuDropdownLabel } from './Menu/MenuItemDropdown'
|
|
9
|
-
import { OpenSideNavButton } from './OpenSideNavButton'
|
|
10
|
-
|
|
11
|
-
/* We need to remove the 8px padding-right that DropdownTrigger adds (because of
|
|
12
|
-
BaseStyledButton), in order to keep it always 40px to the right, but only when
|
|
13
|
-
it's the last child. DropdownTigger isn't a StyledComponent so we need to use
|
|
14
|
-
MenuDropdownLabel here since it's the one that wraps DropdownTigger */
|
|
15
|
-
const removeRightPadding = css`
|
|
16
|
-
> :last-child ${MenuDropdownLabel} {
|
|
17
|
-
margin-right: -${token('space-m')};
|
|
18
|
-
}
|
|
19
|
-
`
|
|
20
|
-
|
|
21
|
-
const Container = styled.div`
|
|
22
|
-
display: flex;
|
|
23
|
-
flex-direction: row;
|
|
24
|
-
align-items: center;
|
|
25
|
-
width: 100%;
|
|
26
|
-
height: ${token('top-navigation-height')};
|
|
27
|
-
padding: 0 ${token('space-2xl')};
|
|
28
|
-
|
|
29
|
-
background-color: ${token('top-navigation-background-color')};
|
|
30
|
-
border-bottom: solid 1px ${token('top-navigation-border-color')};
|
|
31
|
-
|
|
32
|
-
${removeRightPadding}
|
|
33
|
-
`
|
|
34
|
-
|
|
35
|
-
export interface TopNavigationProps {
|
|
36
|
-
children?: ReactNode
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function TopNavigation({ children }: TopNavigationProps): JSX.Element {
|
|
40
|
-
return <Container>{children}</Container>
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
TopNavigation.Logo = Logo
|
|
44
|
-
TopNavigation.Menu = Menu
|
|
45
|
-
TopNavigation.OpenSideNavButton = OpenSideNavButton
|
|
46
|
-
|
|
47
|
-
export default TopNavigation
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# VisuallyHidden
|
|
2
|
-
|
|
3
|
-
Use this component to visually hide elements but keep them accessible to assistive technologies.
|
|
4
|
-
|
|
5
|
-
Visually hide an element while still allowing it to be exposed to assistive technologies (such as screen readers) with `VisuallyHidden`.
|
|
6
|
-
This would typically be used when you want to take advantage of the behavior and semantics of a native element like a checkbox or radio button, but replace it with a custom styled element visually.
|
|
7
|
-
|
|
8
|
-
## Usage
|
|
9
|
-
|
|
10
|
-
```tsx
|
|
11
|
-
import { VisuallyHidden } from '@loadsmart/loadsmart-ui'
|
|
12
|
-
|
|
13
|
-
const Example = () => (
|
|
14
|
-
<Layout.Stack>
|
|
15
|
-
<Text as="p">
|
|
16
|
-
Bellow you can't see the text, but assistive technologies can. Try to use devtools to
|
|
17
|
-
inspect this element.
|
|
18
|
-
</Text>
|
|
19
|
-
<Text as="p">
|
|
20
|
-
<VisuallyHidden>
|
|
21
|
-
This text is invisible but accessible by assistive technologies
|
|
22
|
-
</VisuallyHidden>
|
|
23
|
-
</Text>
|
|
24
|
-
</Layout.Stack>
|
|
25
|
-
)
|
|
26
|
-
```
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Layout } from 'components/Layout'
|
|
2
|
-
import { Text } from 'components/Text'
|
|
3
|
-
import React from 'react'
|
|
4
|
-
|
|
5
|
-
import { VisuallyHidden } from '.'
|
|
6
|
-
import Docs from './VisuallyHidden.mdx'
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
title: 'Components/VisuallyHidden',
|
|
10
|
-
component: VisuallyHidden,
|
|
11
|
-
parameters: {
|
|
12
|
-
docs: {
|
|
13
|
-
page: Docs,
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export function Playground(): JSX.Element {
|
|
19
|
-
return (
|
|
20
|
-
<Layout.Stack className="p-10 bg-neutral-dark w-60 text-center">
|
|
21
|
-
<Text color="color-neutral-white" as="p">
|
|
22
|
-
Bellow you can't see the text, but assistive technologies can. Try to use devtools to
|
|
23
|
-
inspect this element.
|
|
24
|
-
</Text>
|
|
25
|
-
<Text color="color-neutral-white" as="p">
|
|
26
|
-
<VisuallyHidden>
|
|
27
|
-
This text is invisible but accessible by assistive technologies
|
|
28
|
-
</VisuallyHidden>
|
|
29
|
-
</Text>
|
|
30
|
-
</Layout.Stack>
|
|
31
|
-
)
|
|
32
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { screen } from '@testing-library/react'
|
|
3
|
-
|
|
4
|
-
import renderer from '../../tests/renderer'
|
|
5
|
-
|
|
6
|
-
import hiddenStyle from 'styles/hidden'
|
|
7
|
-
import { VisuallyHidden } from './VisuallyHidden'
|
|
8
|
-
|
|
9
|
-
describe('VisuallyHidden', () => {
|
|
10
|
-
it('should render children accessibly', () => {
|
|
11
|
-
const children = 'Should not be visible'
|
|
12
|
-
const expectedHiddenStyle = hiddenStyle(true).replace(/!important/g, '')
|
|
13
|
-
|
|
14
|
-
renderer(<VisuallyHidden>{children}</VisuallyHidden>).render()
|
|
15
|
-
|
|
16
|
-
expect(screen.getByText(children)).toHaveStyle(expectedHiddenStyle)
|
|
17
|
-
})
|
|
18
|
-
})
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { VisuallyHidden } from './VisuallyHidden'
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Meta } from '@storybook/blocks'
|
|
2
|
-
|
|
3
|
-
<Meta title="Tools/Tests/Date Picker Event" />
|
|
4
|
-
|
|
5
|
-
# Date Picker Event
|
|
6
|
-
|
|
7
|
-
Our [`DateRangePicker`](/?path=/story/components-date-datepicker--playground) component is fully tailored for the needs of our Design System. For that reason, writing unit tests for it would require prior knowledge about its inner structure. To prevent that and help with performing the main date selection features, we have exposed a few helper functions.
|
|
8
|
-
|
|
9
|
-
The following functions descriptions consider this example:
|
|
10
|
-
|
|
11
|
-
```jsx
|
|
12
|
-
<div>
|
|
13
|
-
<Label htmlFor="my-date-picker">Select the date</Label>
|
|
14
|
-
<DatePicker id="my-date-picker" {...args} />
|
|
15
|
-
</div>
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## `expand`
|
|
19
|
-
|
|
20
|
-
This asynchronous function will expand (show) the calendar if it's not already expanded.
|
|
21
|
-
|
|
22
|
-
Example:
|
|
23
|
-
|
|
24
|
-
```js
|
|
25
|
-
const datePicker = screen.getByLabelText('Select the date')
|
|
26
|
-
await DatePickerEvent.expand(datePicker)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## `collapse`
|
|
30
|
-
|
|
31
|
-
This asynchronous function will collapse the calendar if it's not already collapsed.
|
|
32
|
-
|
|
33
|
-
Example:
|
|
34
|
-
|
|
35
|
-
```js
|
|
36
|
-
const datePicker = screen.getByLabelText('Select the date')
|
|
37
|
-
await DatePickerEvent.collapse(datePicker)
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## `pick`
|
|
41
|
-
|
|
42
|
-
This asynchronous function will select the provided date, formatted as `mm/dd/yyyy`.
|
|
43
|
-
|
|
44
|
-
We collapse the calendar after selecting the date.
|
|
45
|
-
|
|
46
|
-
If the provided date is already selected, nothing will happen.
|
|
47
|
-
|
|
48
|
-
Example:
|
|
49
|
-
|
|
50
|
-
```js
|
|
51
|
-
const datePicker = screen.getByLabelText('Select the date')
|
|
52
|
-
await DatePickerEvent.pick('02/28/2022', datePicker)
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## `clear`
|
|
56
|
-
|
|
57
|
-
This asynchronous function will clear the current date selection.
|
|
58
|
-
|
|
59
|
-
If no date is selected, nothing will happen.
|
|
60
|
-
|
|
61
|
-
Example:
|
|
62
|
-
|
|
63
|
-
```js
|
|
64
|
-
const datePicker = screen.getByLabelText('Select the date')
|
|
65
|
-
await DatePickerEvent.clear(datePicker)
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## `getSelectedDates`
|
|
69
|
-
|
|
70
|
-
This asynchronous function will return the button elements that represent the selected dates.
|
|
71
|
-
|
|
72
|
-
Example:
|
|
73
|
-
|
|
74
|
-
```js
|
|
75
|
-
const datePicker = screen.getByLabelText('Select the date')
|
|
76
|
-
const selectedDateElements = await DatePickerEvent.getSelectedOptions(datePicker)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
# Date Range Picker Event
|
|
80
|
-
|
|
81
|
-
Our [`DateRangePickerEvent`](/?path=/story/components-date-daterangepicker--playground) testing utility follows the same API as the [`DatePickerEvent`](#date-picker-event), except for the `pick` function.
|
|
82
|
-
|
|
83
|
-
It is important to notice that, since the date range selector has two inputs, you won't be able to refer to them specifically, as with the date picker. Internally, we get the `id` and `name` you provided as props and assign them to the start and end input elements, appending a `-start` or `-end` respectively.
|
|
84
|
-
|
|
85
|
-
Consider this example:
|
|
86
|
-
|
|
87
|
-
```jsx
|
|
88
|
-
<div>
|
|
89
|
-
{/* Notice the `htmlFor` prop; it has to point to any of the `id`s */}
|
|
90
|
-
<Label htmlFor="my-date-picker-id-start">Select the date range</Label>
|
|
91
|
-
<DatePicker id="my-date-picker-id" name="my-date-picker-name" {...args} />
|
|
92
|
-
</div>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
The range start input will have `id: 'my-date-picker-id-start', name: 'my-date-picker-name-start'`, and the range end input will have `id: 'my-date-picker-id-end', name: 'my-date-picker-name-end'`.
|
|
96
|
-
|
|
97
|
-
## `pick`
|
|
98
|
-
|
|
99
|
-
This asynchronous function will select the provided date range `[string | null, string | null]`, with dates formatted as `mm/dd/yyyy`.
|
|
100
|
-
|
|
101
|
-
We collapse the calendar after selecting the date range.
|
|
102
|
-
|
|
103
|
-
Example:
|
|
104
|
-
|
|
105
|
-
```js
|
|
106
|
-
const datePicker = screen.getByLabelText('Select the date range')
|
|
107
|
-
await DatePickerEvent.pick(['02/14/2022', '02/28/2022'], datePicker)
|
|
108
|
-
```
|