@spaced-out/ui-design-system 0.4.13-beta.0 → 0.4.13-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/.cspell/custom-words.txt +2 -0
- package/CHANGELOG.md +7 -0
- package/cspell.json +3 -1
- package/gulpfile.js +2 -1
- package/lib/styles/index.js +535 -275
- package/package.json +2 -2
- package/lib/components/AIPromptFlow/AIPromptFlow.stories.tsx +0 -465
- package/lib/components/Accordion/Accordion.stories.tsx +0 -165
- package/lib/components/Accordion/Accordion.tsx +0 -112
- package/lib/components/Accordion/AccordionGroup.stories.tsx +0 -215
- package/lib/components/Accordion/AccordionGroup.tsx +0 -77
- package/lib/components/Accordion/index.ts +0 -2
- package/lib/components/Avatar/Avatar.stories.tsx +0 -152
- package/lib/components/Avatar/Avatar.tsx +0 -272
- package/lib/components/Avatar/index.ts +0 -1
- package/lib/components/AvatarGroup/AvatarGroup.stories.tsx +0 -138
- package/lib/components/AvatarGroup/AvatarGroup.tsx +0 -164
- package/lib/components/AvatarGroup/index.ts +0 -1
- package/lib/components/Badge/Badge.stories.tsx +0 -131
- package/lib/components/Badge/Badge.tsx +0 -149
- package/lib/components/Badge/index.ts +0 -1
- package/lib/components/BadgedIcon/BadgedIcon.stories.tsx +0 -80
- package/lib/components/BadgedIcon/BadgedIcon.tsx +0 -76
- package/lib/components/BadgedIcon/index.ts +0 -1
- package/lib/components/Banner/Banner.stories.tsx +0 -187
- package/lib/components/Banner/Banner.tsx +0 -55
- package/lib/components/Banner/index.ts +0 -1
- package/lib/components/Breadcrumbs/BreadcrumbLink/BreadcrumbLink.stories.tsx +0 -114
- package/lib/components/Breadcrumbs/BreadcrumbLink/BreadcrumbLink.tsx +0 -52
- package/lib/components/Breadcrumbs/BreadcrumbLink/index.ts +0 -1
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -189
- package/lib/components/Breadcrumbs/Breadcrumbs.tsx +0 -59
- package/lib/components/Breadcrumbs/index.ts +0 -2
- package/lib/components/Button/Button.stories.tsx +0 -220
- package/lib/components/Button/Button.tsx +0 -285
- package/lib/components/Button/index.ts +0 -8
- package/lib/components/ButtonDropdown/ButtonDropdown.stories.tsx +0 -677
- package/lib/components/ButtonDropdown/ButtonDropdown.tsx +0 -221
- package/lib/components/ButtonDropdown/SimpleButtonDropdown.stories.tsx +0 -624
- package/lib/components/ButtonDropdown/SimpleButtonDropdown.tsx +0 -167
- package/lib/components/ButtonDropdown/index.ts +0 -2
- package/lib/components/ButtonTabs/ButtonTab/ButtonTab.stories.tsx +0 -125
- package/lib/components/ButtonTabs/ButtonTab/ButtonTab.tsx +0 -76
- package/lib/components/ButtonTabs/ButtonTab/index.ts +0 -1
- package/lib/components/ButtonTabs/ButtonTabDropdown.tsx +0 -147
- package/lib/components/ButtonTabs/ButtonTabs.stories.tsx +0 -393
- package/lib/components/ButtonTabs/ButtonTabs.tsx +0 -119
- package/lib/components/ButtonTabs/index.ts +0 -2
- package/lib/components/Card/Card.stories.tsx +0 -245
- package/lib/components/Card/Card.tsx +0 -172
- package/lib/components/Card/index.ts +0 -1
- package/lib/components/Charts/ChartTooltip/index.ts +0 -13
- package/lib/components/Charts/ChartWrapper/ChartWrapper.tsx +0 -179
- package/lib/components/Charts/ChartWrapper/index.ts +0 -1
- package/lib/components/Charts/ColumnChart/ColumnChart.stories.tsx +0 -574
- package/lib/components/Charts/ColumnChart/ColumnChart.tsx +0 -125
- package/lib/components/Charts/ColumnChart/index.ts +0 -1
- package/lib/components/Charts/DonutChart/DonutChart.stories.tsx +0 -415
- package/lib/components/Charts/DonutChart/DonutChart.tsx +0 -155
- package/lib/components/Charts/DonutChart/index.ts +0 -1
- package/lib/components/Charts/FunnelChart/FunnelChart.stories.tsx +0 -510
- package/lib/components/Charts/FunnelChart/FunnelChart.tsx +0 -110
- package/lib/components/Charts/FunnelChart/index.ts +0 -1
- package/lib/components/Charts/LineChart/LineChart.stories.tsx +0 -590
- package/lib/components/Charts/LineChart/LineChart.tsx +0 -109
- package/lib/components/Charts/LineChart/index.ts +0 -1
- package/lib/components/Charts/SpiderChart/SpiderChart.stories.tsx +0 -467
- package/lib/components/Charts/SpiderChart/SpiderChart.tsx +0 -104
- package/lib/components/Charts/SpiderChart/index.ts +0 -1
- package/lib/components/Charts/index.ts +0 -11
- package/lib/components/ChatBubble/ChatAnchor.stories.tsx +0 -95
- package/lib/components/ChatBubble/ChatBubble.stories.tsx +0 -277
- package/lib/components/ChatBubble/ChatBubble.tsx +0 -232
- package/lib/components/ChatBubble/index.ts +0 -1
- package/lib/components/Checkbox/Checkbox.stories.tsx +0 -180
- package/lib/components/Checkbox/Checkbox.tsx +0 -168
- package/lib/components/Checkbox/CheckboxGroup.stories.tsx +0 -381
- package/lib/components/Checkbox/CheckboxGroup.tsx +0 -119
- package/lib/components/Checkbox/index.ts +0 -2
- package/lib/components/Chip/Chip.stories.tsx +0 -335
- package/lib/components/Chip/Chip.tsx +0 -204
- package/lib/components/Chip/index.ts +0 -2
- package/lib/components/CircularLoader/CircularLoader.stories.tsx +0 -75
- package/lib/components/CircularLoader/CircularLoader.tsx +0 -51
- package/lib/components/CircularLoader/index.ts +0 -1
- package/lib/components/CollapsibleCard/CollapsibleCard.stories.tsx +0 -311
- package/lib/components/CollapsibleCard/CollapsibleCard.tsx +0 -135
- package/lib/components/CollapsibleCard/index.ts +0 -1
- package/lib/components/Combobox/Combobox.stories.tsx +0 -306
- package/lib/components/Combobox/Combobox.tsx +0 -297
- package/lib/components/Combobox/helper.ts +0 -201
- package/lib/components/Combobox/index.ts +0 -1
- package/lib/components/ConditionalWrapper/ConditionalWrapper.stories.tsx +0 -51
- package/lib/components/ConditionalWrapper/ConditionalWrapper.ts +0 -16
- package/lib/components/ConditionalWrapper/index.ts +0 -1
- package/lib/components/DateRangePicker/Calendar.tsx +0 -110
- package/lib/components/DateRangePicker/DateRangePicker.stories.tsx +0 -397
- package/lib/components/DateRangePicker/DateRangePicker.tsx +0 -210
- package/lib/components/DateRangePicker/DateRangeWrapper.tsx +0 -386
- package/lib/components/DateRangePicker/Day.tsx +0 -74
- package/lib/components/DateRangePicker/index.ts +0 -1
- package/lib/components/Dialog/Dialog.stories.tsx +0 -254
- package/lib/components/Dialog/Dialog.tsx +0 -222
- package/lib/components/Dialog/index.ts +0 -1
- package/lib/components/Disclaimer/Disclaimer.stories.tsx +0 -148
- package/lib/components/Disclaimer/Disclaimer.tsx +0 -35
- package/lib/components/Disclaimer/index.ts +0 -1
- package/lib/components/Dropdown/Dropdown.stories.tsx +0 -785
- package/lib/components/Dropdown/Dropdown.tsx +0 -174
- package/lib/components/Dropdown/SimpleDropdown.stories.tsx +0 -534
- package/lib/components/Dropdown/SimpleDropdown.tsx +0 -167
- package/lib/components/Dropdown/index.ts +0 -2
- package/lib/components/EmptyState/EmptyImages/CalendarEmptyImage.tsx +0 -108
- package/lib/components/EmptyState/EmptyImages/ChartEmptyImage.tsx +0 -194
- package/lib/components/EmptyState/EmptyImages/DataEmptyImage.tsx +0 -116
- package/lib/components/EmptyState/EmptyImages/FileEmptyImage.tsx +0 -133
- package/lib/components/EmptyState/EmptyImages/MessageEmptyImage.tsx +0 -64
- package/lib/components/EmptyState/EmptyImages/UploadEmptyImage.tsx +0 -67
- package/lib/components/EmptyState/EmptyImages/index.ts +0 -6
- package/lib/components/EmptyState/EmptyState.stories.tsx +0 -104
- package/lib/components/EmptyState/EmptyState.tsx +0 -83
- package/lib/components/EmptyState/index.ts +0 -1
- package/lib/components/ErrorMessage/ErrorImages/ForbiddenImage.tsx +0 -85
- package/lib/components/ErrorMessage/ErrorImages/NotFoundImage.tsx +0 -117
- package/lib/components/ErrorMessage/ErrorImages/ServerErrorImage.tsx +0 -237
- package/lib/components/ErrorMessage/ErrorImages/UnauthorizedImage.tsx +0 -73
- package/lib/components/ErrorMessage/ErrorImages/index.ts +0 -4
- package/lib/components/ErrorMessage/ErrorMessage.stories.tsx +0 -112
- package/lib/components/ErrorMessage/ErrorMessage.tsx +0 -87
- package/lib/components/ErrorMessage/index.ts +0 -1
- package/lib/components/FileUpload/FileBlock/FileBlock.stories.tsx +0 -85
- package/lib/components/FileUpload/FileBlock/FileBlock.tsx +0 -136
- package/lib/components/FileUpload/FileBlock/index.ts +0 -1
- package/lib/components/FileUpload/FileUpload.stories.tsx +0 -958
- package/lib/components/FileUpload/FileUpload.tsx +0 -206
- package/lib/components/FileUpload/index.ts +0 -2
- package/lib/components/FilterButtonOverlay/FilterButtonOverlay.stories.tsx +0 -345
- package/lib/components/FilterButtonOverlay/FilterButtonOverlay.tsx +0 -163
- package/lib/components/FilterButtonOverlay/index.ts +0 -1
- package/lib/components/FocusManager/FocusManager.stories.tsx +0 -117
- package/lib/components/FocusManager/FocusManager.tsx +0 -59
- package/lib/components/FocusManager/index.ts +0 -1
- package/lib/components/FocusManagerWithArrowKeyNavigation/FocusManagerWithArrowKeyNavigation.stories.tsx +0 -557
- package/lib/components/FocusManagerWithArrowKeyNavigation/FocusManagerWithArrowKeyNavigation.tsx +0 -156
- package/lib/components/FocusManagerWithArrowKeyNavigation/index.ts +0 -1
- package/lib/components/FormTitleWrapper/FormTitleWrapper.stories.tsx +0 -173
- package/lib/components/FormTitleWrapper/FormTitleWrapper.tsx +0 -63
- package/lib/components/FormTitleWrapper/index.ts +0 -1
- package/lib/components/Grid/Col.stories.tsx +0 -114
- package/lib/components/Grid/Grid.tsx +0 -119
- package/lib/components/Grid/GridPatterns.stories.tsx +0 -420
- package/lib/components/Grid/Row.stories.tsx +0 -135
- package/lib/components/Grid/Tablist.layout.stories.tsx +0 -281
- package/lib/components/Grid/index.ts +0 -1
- package/lib/components/Icon/ClickableIcon.tsx +0 -104
- package/lib/components/Icon/Icon.docs.ts +0 -118
- package/lib/components/Icon/Icon.stories.tsx +0 -79
- package/lib/components/Icon/Icon.tsx +0 -78
- package/lib/components/Icon/SemanticIcon.stories.tsx +0 -74
- package/lib/components/Icon/SemanticIcon.tsx +0 -49
- package/lib/components/Icon/index.ts +0 -3
- package/lib/components/InContextAlert/InContextAlert.stories.tsx +0 -164
- package/lib/components/InContextAlert/InContextAlert.tsx +0 -204
- package/lib/components/InContextAlert/index.ts +0 -1
- package/lib/components/InfinitePagination/InfinitePagination.stories.tsx +0 -323
- package/lib/components/InfinitePagination/InfinitePagination.tsx +0 -121
- package/lib/components/InfinitePagination/index.ts +0 -1
- package/lib/components/InlineDropdown/InlineDropdown.stories.tsx +0 -415
- package/lib/components/InlineDropdown/InlineDropdown.tsx +0 -175
- package/lib/components/InlineDropdown/SimpleInlineDropdown.stories.tsx +0 -513
- package/lib/components/InlineDropdown/SimpleInlineDropdown.tsx +0 -165
- package/lib/components/InlineDropdown/index.ts +0 -2
- package/lib/components/Input/Input.stories.tsx +0 -590
- package/lib/components/Input/Input.tsx +0 -336
- package/lib/components/Input/NativeColorpicker.stories.tsx +0 -337
- package/lib/components/Input/NativeDatepicker.stories.tsx +0 -424
- package/lib/components/Input/index.ts +0 -1
- package/lib/components/KPIBox/KPIBox.stories.tsx +0 -321
- package/lib/components/KPIBox/KPIBox.tsx +0 -94
- package/lib/components/KPIBox/index.ts +0 -1
- package/lib/components/LinearLoader/LinearLoader.stories.tsx +0 -132
- package/lib/components/LinearLoader/LinearLoader.tsx +0 -48
- package/lib/components/LinearLoader/index.ts +0 -1
- package/lib/components/Link/Link.stories.tsx +0 -302
- package/lib/components/Link/Link.tsx +0 -231
- package/lib/components/Link/index.ts +0 -1
- package/lib/components/Menu/Menu.stories.tsx +0 -1046
- package/lib/components/Menu/Menu.tsx +0 -391
- package/lib/components/Menu/MenuOptionButton.tsx +0 -206
- package/lib/components/Menu/index.ts +0 -2
- package/lib/components/Modal/Modal.stories.tsx +0 -430
- package/lib/components/Modal/Modal.tsx +0 -379
- package/lib/components/Modal/index.ts +0 -8
- package/lib/components/Notification/Notification.stories.tsx +0 -132
- package/lib/components/Notification/Notification.tsx +0 -140
- package/lib/components/Notification/index.ts +0 -1
- package/lib/components/OptionButton/OptionButton.stories.tsx +0 -397
- package/lib/components/OptionButton/OptionButton.tsx +0 -149
- package/lib/components/OptionButton/SimpleOptionButton.stories.tsx +0 -525
- package/lib/components/OptionButton/SimpleOptionButton.tsx +0 -160
- package/lib/components/OptionButton/index.ts +0 -2
- package/lib/components/PageTitle/PageTitle.stories.tsx +0 -257
- package/lib/components/PageTitle/PageTitle.tsx +0 -276
- package/lib/components/PageTitle/index.ts +0 -1
- package/lib/components/Pagination/Pagination.stories.tsx +0 -259
- package/lib/components/Pagination/Pagination.tsx +0 -147
- package/lib/components/Pagination/PaginationItem.tsx +0 -118
- package/lib/components/Pagination/index.ts +0 -1
- package/lib/components/Panel/Panel.stories.tsx +0 -452
- package/lib/components/Panel/Panel.tsx +0 -181
- package/lib/components/Panel/index.ts +0 -2
- package/lib/components/ProgressDonut/ProgressDonut.stories.tsx +0 -97
- package/lib/components/ProgressDonut/ProgressDonut.tsx +0 -111
- package/lib/components/ProgressDonut/index.ts +0 -1
- package/lib/components/PromptChip/PromptChip.stories.tsx +0 -202
- package/lib/components/PromptChip/PromptChip.tsx +0 -166
- package/lib/components/PromptChip/index.ts +0 -1
- package/lib/components/PromptInput/PromptInput.stories.tsx +0 -349
- package/lib/components/PromptInput/PromptInput.tsx +0 -190
- package/lib/components/PromptInput/index.ts +0 -1
- package/lib/components/RadioButton/RadioButton.stories.tsx +0 -157
- package/lib/components/RadioButton/RadioButton.tsx +0 -135
- package/lib/components/RadioButton/RadioGroup.stories.tsx +0 -283
- package/lib/components/RadioButton/RadioGroup.tsx +0 -90
- package/lib/components/RadioButton/index.ts +0 -2
- package/lib/components/RadioTile/RadioTile.stories.tsx +0 -276
- package/lib/components/RadioTile/RadioTile.tsx +0 -107
- package/lib/components/RadioTile/index.ts +0 -1
- package/lib/components/RangeSlider/RangeSlider.stories.tsx +0 -342
- package/lib/components/RangeSlider/RangeSlider.tsx +0 -201
- package/lib/components/RangeSlider/index.ts +0 -1
- package/lib/components/Rating/Rating.stories.tsx +0 -257
- package/lib/components/Rating/Rating.tsx +0 -141
- package/lib/components/Rating/index.ts +0 -1
- package/lib/components/ScoreBar/ScoreBar.stories.tsx +0 -182
- package/lib/components/ScoreBar/ScoreBar.tsx +0 -133
- package/lib/components/ScoreBar/index.ts +0 -1
- package/lib/components/SearchInput/SearchInput.stories.tsx +0 -260
- package/lib/components/SearchInput/SearchInput.tsx +0 -81
- package/lib/components/SearchInput/index.ts +0 -2
- package/lib/components/Separator/Separator.stories.tsx +0 -95
- package/lib/components/Separator/Separator.tsx +0 -57
- package/lib/components/Separator/index.ts +0 -1
- package/lib/components/Shimmer/Shimmer.stories.tsx +0 -317
- package/lib/components/Shimmer/Shimmer.tsx +0 -143
- package/lib/components/Shimmer/index.ts +0 -1
- package/lib/components/SideMenuLink/SideMenuLink.stories.tsx +0 -153
- package/lib/components/SideMenuLink/SideMenuLink.tsx +0 -344
- package/lib/components/SideMenuLink/index.ts +0 -1
- package/lib/components/StatusIndicator/StatusIndicator.stories.tsx +0 -130
- package/lib/components/StatusIndicator/StatusIndicator.tsx +0 -62
- package/lib/components/StatusIndicator/index.ts +0 -1
- package/lib/components/Stepper/Step/Step.stories.tsx +0 -117
- package/lib/components/Stepper/Step/Step.tsx +0 -125
- package/lib/components/Stepper/Step/StepContent.tsx +0 -40
- package/lib/components/Stepper/Step/StepLabel.tsx +0 -40
- package/lib/components/Stepper/Step/index.ts +0 -3
- package/lib/components/Stepper/Stepper.stories.tsx +0 -422
- package/lib/components/Stepper/Stepper.tsx +0 -68
- package/lib/components/Stepper/index.ts +0 -2
- package/lib/components/StickyBar/StickyBar.stories.tsx +0 -152
- package/lib/components/StickyBar/StickyBar.tsx +0 -65
- package/lib/components/StickyBar/index.ts +0 -1
- package/lib/components/SubMenu/SubMenu.stories.tsx +0 -413
- package/lib/components/SubMenu/SubMenu.tsx +0 -96
- package/lib/components/SubMenu/SubMenuGroup.tsx +0 -161
- package/lib/components/SubMenu/SubMenuItem.tsx +0 -170
- package/lib/components/SubMenu/SubMenuLink.tsx +0 -87
- package/lib/components/SubMenu/index.ts +0 -4
- package/lib/components/Table/BasicTable.stories.tsx +0 -647
- package/lib/components/Table/BulkActions.stories.tsx +0 -267
- package/lib/components/Table/Cell.tsx +0 -125
- package/lib/components/Table/DefaultRow.tsx +0 -159
- package/lib/components/Table/DefaultTableHeader.tsx +0 -244
- package/lib/components/Table/InlineEdit.stories.tsx +0 -390
- package/lib/components/Table/StaticTable.tsx +0 -230
- package/lib/components/Table/Table.docs.ts +0 -495
- package/lib/components/Table/Table.tsx +0 -135
- package/lib/components/Table/TableActionBar.tsx +0 -55
- package/lib/components/Table/TableBottomBar.tsx +0 -25
- package/lib/components/Table/TableTopBar.tsx +0 -25
- package/lib/components/Table/dummyTableData.ts +0 -2189
- package/lib/components/Table/hooks.ts +0 -102
- package/lib/components/Table/index.ts +0 -8
- package/lib/components/Tabs/Tab/Tab.stories.tsx +0 -151
- package/lib/components/Tabs/Tab/Tab.tsx +0 -152
- package/lib/components/Tabs/Tab/index.ts +0 -1
- package/lib/components/Tabs/TabList/TabDropdown.tsx +0 -125
- package/lib/components/Tabs/TabList/TabList.stories.tsx +0 -172
- package/lib/components/Tabs/TabList/TabList.tsx +0 -178
- package/lib/components/Tabs/TabList/index.ts +0 -1
- package/lib/components/Tabs/index.ts +0 -2
- package/lib/components/Text/HighlightedText.stories.tsx +0 -122
- package/lib/components/Text/Text.stories.tsx +0 -302
- package/lib/components/Text/Text.tsx +0 -882
- package/lib/components/Text/index.ts +0 -30
- package/lib/components/TextTile/TextTile.stories.tsx +0 -89
- package/lib/components/TextTile/TextTile.tsx +0 -51
- package/lib/components/TextTile/index.ts +0 -1
- package/lib/components/Textarea/Textarea.stories.tsx +0 -324
- package/lib/components/Textarea/Textarea.tsx +0 -148
- package/lib/components/Textarea/index.ts +0 -2
- package/lib/components/Timeline/Timeline.stories.tsx +0 -272
- package/lib/components/Timeline/Timeline.tsx +0 -57
- package/lib/components/Timeline/TimelineItem/TimelineItem.stories.tsx +0 -216
- package/lib/components/Timeline/TimelineItem/TimelineItem.tsx +0 -128
- package/lib/components/Timeline/TimelineItem/index.ts +0 -1
- package/lib/components/Timeline/index.ts +0 -2
- package/lib/components/Toast/Toast.stories.tsx +0 -274
- package/lib/components/Toast/Toast.tsx +0 -264
- package/lib/components/Toast/ToastContainer.tsx +0 -123
- package/lib/components/Toast/ToastManager.ts +0 -60
- package/lib/components/Toast/index.ts +0 -10
- package/lib/components/Toggle/Toggle.stories.tsx +0 -175
- package/lib/components/Toggle/Toggle.tsx +0 -121
- package/lib/components/Toggle/index.ts +0 -1
- package/lib/components/TokenListInput/TokenListInput.stories.tsx +0 -678
- package/lib/components/TokenListInput/TokenListInput.tsx +0 -393
- package/lib/components/TokenListInput/TokenValueChips.tsx +0 -69
- package/lib/components/TokenListInput/index.ts +0 -1
- package/lib/components/Tooltip/Tooltip.stories.tsx +0 -316
- package/lib/components/Tooltip/Tooltip.tsx +0 -188
- package/lib/components/Tooltip/index.ts +0 -1
- package/lib/components/Truncate/Truncate.stories.tsx +0 -106
- package/lib/components/Truncate/Truncate.tsx +0 -80
- package/lib/components/Truncate/index.ts +0 -2
- package/lib/components/TruncatedTextWithTooltip/TruncatedTextWithTooltip.stories.tsx +0 -147
- package/lib/components/TruncatedTextWithTooltip/TruncatedTextWithTooltip.tsx +0 -109
- package/lib/components/TruncatedTextWithTooltip/index.ts +0 -1
- package/lib/components/Typeahead/SimpleTypeahead.stories.tsx +0 -567
- package/lib/components/Typeahead/SimpleTypeahead.tsx +0 -159
- package/lib/components/Typeahead/Typeahead.stories.tsx +0 -552
- package/lib/components/Typeahead/Typeahead.tsx +0 -243
- package/lib/components/Typeahead/index.ts +0 -2
- package/lib/components/WeekdayPicker/WeekdayPicker.stories.tsx +0 -263
- package/lib/components/WeekdayPicker/WeekdayPicker.tsx +0 -224
- package/lib/components/WeekdayPicker/index.ts +0 -1
- package/lib/components/index.ts +0 -77
- package/lib/hooks/index.ts +0 -16
- package/lib/hooks/useArbitraryOptionAddition/index.ts +0 -1
- package/lib/hooks/useArbitraryOptionAddition/useArbitraryOptionAddition.stories.tsx +0 -158
- package/lib/hooks/useArbitraryOptionAddition/useArbitraryOptionAddition.ts +0 -127
- package/lib/hooks/useCopyToClipboard/index.ts +0 -1
- package/lib/hooks/useCopyToClipboard/useCopyToClipboard.stories.tsx +0 -112
- package/lib/hooks/useCopyToClipboard/useCopyToClipboard.ts +0 -29
- package/lib/hooks/useDebounce/index.ts +0 -1
- package/lib/hooks/useDebounce/useDebounce.stories.tsx +0 -82
- package/lib/hooks/useDebounce/useDebounce.ts +0 -15
- package/lib/hooks/useFileUpload/index.ts +0 -1
- package/lib/hooks/useFileUpload/useFileUpload.stories.tsx +0 -468
- package/lib/hooks/useFileUpload/useFileUpload.ts +0 -326
- package/lib/hooks/useFilteredOptions/index.ts +0 -1
- package/lib/hooks/useFilteredOptions/useFilteredOptions.stories.tsx +0 -142
- package/lib/hooks/useFilteredOptions/useFilteredOptions.ts +0 -92
- package/lib/hooks/useInfiniteScroll/index.ts +0 -1
- package/lib/hooks/useInfiniteScroll/useInfiniteScroll.ts +0 -85
- package/lib/hooks/useInputState/index.ts +0 -1
- package/lib/hooks/useInputState/useInputState.stories.tsx +0 -62
- package/lib/hooks/useInputState/useInputState.ts +0 -24
- package/lib/hooks/useLockedBody/index.ts +0 -1
- package/lib/hooks/useLockedBody/useLockedBody.stories.tsx +0 -71
- package/lib/hooks/useLockedBody/useLockedBody.ts +0 -53
- package/lib/hooks/useModal/index.ts +0 -1
- package/lib/hooks/useModal/useModal.stories.tsx +0 -134
- package/lib/hooks/useModal/useModal.ts +0 -36
- package/lib/hooks/useMountTransition/index.ts +0 -25
- package/lib/hooks/useMountTransition/useMountTransition.stories.tsx +0 -64
- package/lib/hooks/usePagination/index.ts +0 -1
- package/lib/hooks/usePagination/usePagination.stories.tsx +0 -72
- package/lib/hooks/usePagination/usePagination.ts +0 -151
- package/lib/hooks/useReferenceElementWidth/index.ts +0 -1
- package/lib/hooks/useReferenceElementWidth/useReferenceElementWidth.ts +0 -19
- package/lib/hooks/useResizeObserver/index.ts +0 -1
- package/lib/hooks/useResizeObserver/useResizeObserver.ts +0 -29
- package/lib/hooks/useToastPortal/index.ts +0 -1
- package/lib/hooks/useToastPortal/useToastPortal.ts +0 -34
- package/lib/hooks/useToggle/index.ts +0 -1
- package/lib/hooks/useToggle/useToggle.stories.tsx +0 -70
- package/lib/hooks/useToggle/useToggle.ts +0 -13
- package/lib/hooks/useWindowSize/index.ts +0 -1
- package/lib/hooks/useWindowSize/useWindowSize.stories.tsx +0 -62
- package/lib/hooks/useWindowSize/useWindowSize.ts +0 -39
- package/lib/index.ts +0 -6
- package/lib/styles/index.ts +0 -533
- package/lib/styles/variables/_border.ts +0 -23
- package/lib/styles/variables/_color.ts +0 -207
- package/lib/styles/variables/_elevation.ts +0 -13
- package/lib/styles/variables/_font.ts +0 -59
- package/lib/styles/variables/_motion.ts +0 -11
- package/lib/styles/variables/_opacity.ts +0 -29
- package/lib/styles/variables/_shadow.ts +0 -47
- package/lib/styles/variables/_size.ts +0 -113
- package/lib/styles/variables/_space.ts +0 -23
- package/lib/types/charts.ts +0 -247
- package/lib/types/common.ts +0 -11
- package/lib/types/cssvariables.d.ts +0 -8
- package/lib/types/date-range-picker.ts +0 -20
- package/lib/types/flow-to-typescript-codemod.d.ts +0 -48
- package/lib/types/global.d.ts +0 -84
- package/lib/types/index.ts +0 -6
- package/lib/types/menu.ts +0 -13
- package/lib/types/toast.ts +0 -34
- package/lib/types/typography.ts +0 -17
- package/lib/utils/array/are-arrays-equal.ts +0 -12
- package/lib/utils/array/index.ts +0 -1
- package/lib/utils/charts/charts.ts +0 -110
- package/lib/utils/charts/columnChart.ts +0 -62
- package/lib/utils/charts/donutChart.ts +0 -123
- package/lib/utils/charts/funnelChart.ts +0 -97
- package/lib/utils/charts/helpers.ts +0 -65
- package/lib/utils/charts/index.ts +0 -7
- package/lib/utils/charts/lineChart.ts +0 -51
- package/lib/utils/charts/spiderChart.ts +0 -57
- package/lib/utils/charts/typography.ts +0 -52
- package/lib/utils/classify/classify.stories.tsx +0 -65
- package/lib/utils/classify/index.ts +0 -27
- package/lib/utils/click-away/ClickAway.stories.tsx +0 -248
- package/lib/utils/click-away/click-away.ts +0 -230
- package/lib/utils/click-away/index.ts +0 -1
- package/lib/utils/date-range-picker/date-range-picker.ts +0 -430
- package/lib/utils/date-range-picker/index.ts +0 -2
- package/lib/utils/date-range-picker/timezones.ts +0 -263
- package/lib/utils/dom/dom.stories.tsx +0 -59
- package/lib/utils/dom/dom.ts +0 -247
- package/lib/utils/dom/index.ts +0 -1
- package/lib/utils/helpers/helpers.stories.tsx +0 -124
- package/lib/utils/helpers/helpers.ts +0 -51
- package/lib/utils/helpers/index.ts +0 -1
- package/lib/utils/index.ts +0 -14
- package/lib/utils/makeClassNameComponent/index.ts +0 -1
- package/lib/utils/makeClassNameComponent/makeClassNameComponent.stories.tsx +0 -46
- package/lib/utils/makeClassNameComponent/makeClassNameComponent.tsx +0 -60
- package/lib/utils/menu/index.ts +0 -1
- package/lib/utils/menu/menu.ts +0 -174
- package/lib/utils/merge-refs/index.ts +0 -1
- package/lib/utils/merge-refs/merge-refs.stories.tsx +0 -92
- package/lib/utils/merge-refs/merge-refs.ts +0 -16
- package/lib/utils/rating/index.ts +0 -1
- package/lib/utils/rating/rating.ts +0 -30
- package/lib/utils/score-bar/index.ts +0 -1
- package/lib/utils/score-bar/score-bar.ts +0 -45
- package/lib/utils/string/index.ts +0 -1
- package/lib/utils/string/string.stories.tsx +0 -71
- package/lib/utils/string/string.ts +0 -26
- package/lib/utils/token-list-input/token-list-input.ts +0 -32
- package/lib/utils/tokens/index.ts +0 -1
- package/lib/utils/tokens/tokens.ts +0 -237
|
@@ -1,1046 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import {difference, union} from 'lodash';
|
|
3
|
-
|
|
4
|
-
import {getFilteredOptionsFromSearchText} from '../../utils/menu';
|
|
5
|
-
import {Avatar} from '../Avatar';
|
|
6
|
-
import {Button} from '../Button';
|
|
7
|
-
import {Icon} from '../Icon';
|
|
8
|
-
import {SearchInput} from '../SearchInput';
|
|
9
|
-
import {
|
|
10
|
-
ButtonTextMedium,
|
|
11
|
-
ButtonTextSmallUnderline,
|
|
12
|
-
FormLabelMedium,
|
|
13
|
-
FormLabelSmall,
|
|
14
|
-
SubTitleSmall,
|
|
15
|
-
} from '../Text';
|
|
16
|
-
import {Tooltip} from '../Tooltip';
|
|
17
|
-
import {Truncate} from '../Truncate';
|
|
18
|
-
|
|
19
|
-
import type {MenuGroupTitleOption, MenuOption, MenuProps} from './Menu';
|
|
20
|
-
import {Menu} from './Menu';
|
|
21
|
-
|
|
22
|
-
import css from './Menu.stories.module.css';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const textOptions: MenuOption[] = [
|
|
26
|
-
{key: '1', label: 'Option one'},
|
|
27
|
-
{key: '2', label: 'Option two with some extra words to increase length'},
|
|
28
|
-
{
|
|
29
|
-
key: '3',
|
|
30
|
-
label:
|
|
31
|
-
'Option three with more content to demonstrate truncation and test three lines wrap.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
key: '4',
|
|
35
|
-
label:
|
|
36
|
-
'Option four very long option that would truncate and now it is even longer than before to ensure truncation happens',
|
|
37
|
-
},
|
|
38
|
-
{key: '5', label: 'Option five(disabled)', disabled: true},
|
|
39
|
-
{
|
|
40
|
-
key: '6',
|
|
41
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
42
|
-
disabled: true,
|
|
43
|
-
},
|
|
44
|
-
{key: '7', label: 'Option Seven'},
|
|
45
|
-
{key: '8', label: 'Option Eight'},
|
|
46
|
-
{key: '9', label: 'Option Nine'},
|
|
47
|
-
{key: '10', label: 'Option Ten'},
|
|
48
|
-
{key: '11', label: 'Option Eleven'},
|
|
49
|
-
{key: '12', label: 'Option Twelve'},
|
|
50
|
-
{key: '13', label: 'Option Thirteen'},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const checkboxOptions: MenuOption[] = [
|
|
54
|
-
{key: '1', label: 'Option one', indeterminate: true},
|
|
55
|
-
{key: '2', label: 'Option two'},
|
|
56
|
-
{key: '3', label: 'Option three', indeterminate: true},
|
|
57
|
-
{
|
|
58
|
-
key: '4',
|
|
59
|
-
label: 'Option four very long option that would truncate',
|
|
60
|
-
},
|
|
61
|
-
{key: '5', label: 'Option five(disabled)', disabled: true},
|
|
62
|
-
{
|
|
63
|
-
key: '6',
|
|
64
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
65
|
-
disabled: true,
|
|
66
|
-
},
|
|
67
|
-
{key: '7', label: 'Option Seven'},
|
|
68
|
-
];
|
|
69
|
-
|
|
70
|
-
const textOptionsWithSecondaryLabel: MenuOption[] = [
|
|
71
|
-
{key: '1', label: 'Option one', secondaryLabel: 'Sub Text'},
|
|
72
|
-
{key: '2', label: 'Option two', secondaryLabel: 'Sub Text'},
|
|
73
|
-
{key: '3', label: 'Option three', secondaryLabel: 'Sub Text'},
|
|
74
|
-
{
|
|
75
|
-
key: '4',
|
|
76
|
-
label: 'Option four very long option that would truncate',
|
|
77
|
-
secondaryLabel: 'Option four very long option that would truncate',
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
key: '5',
|
|
81
|
-
label: 'Option five(disabled)',
|
|
82
|
-
disabled: true,
|
|
83
|
-
secondaryLabel: 'Sub Text',
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
key: '6',
|
|
87
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
88
|
-
disabled: true,
|
|
89
|
-
secondaryLabel: 'Sub Text',
|
|
90
|
-
},
|
|
91
|
-
{key: '7', label: 'Option Seven', secondaryLabel: 'Sub Text'},
|
|
92
|
-
{key: '8', label: 'Option Eight', secondaryLabel: 'Sub Text'},
|
|
93
|
-
{key: '9', label: 'Option Nine', secondaryLabel: 'Sub Text'},
|
|
94
|
-
];
|
|
95
|
-
|
|
96
|
-
const iconLeftOptions: MenuOption[] = [
|
|
97
|
-
{
|
|
98
|
-
key: '1',
|
|
99
|
-
label: 'Option one',
|
|
100
|
-
iconLeft: 'coffee',
|
|
101
|
-
},
|
|
102
|
-
{key: '2', label: 'Option two', iconLeft: 'user'},
|
|
103
|
-
{
|
|
104
|
-
key: '4',
|
|
105
|
-
label: 'Option four very long option that would truncate',
|
|
106
|
-
iconLeft: 'face-party',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
key: '5',
|
|
110
|
-
label: 'Option five(disabled)',
|
|
111
|
-
disabled: true,
|
|
112
|
-
iconLeft: 'flag',
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
key: '6',
|
|
116
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
117
|
-
disabled: true,
|
|
118
|
-
iconLeft: 'camera',
|
|
119
|
-
},
|
|
120
|
-
];
|
|
121
|
-
|
|
122
|
-
const coloredOptions: MenuOption[] = [
|
|
123
|
-
{
|
|
124
|
-
key: '1',
|
|
125
|
-
label: 'Edit',
|
|
126
|
-
iconLeft: 'pen',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
key: '2',
|
|
130
|
-
label: 'Delete',
|
|
131
|
-
iconLeft: 'trash',
|
|
132
|
-
classNames: {wrapper: css.dangerText},
|
|
133
|
-
},
|
|
134
|
-
];
|
|
135
|
-
|
|
136
|
-
const iconRightOptions: MenuOption[] = [
|
|
137
|
-
{key: '1', label: 'Option one', iconRight: 'coffee'},
|
|
138
|
-
{key: '2', label: 'Option two', iconRight: 'user'},
|
|
139
|
-
{
|
|
140
|
-
key: '4',
|
|
141
|
-
label: 'Option four very long option that would truncate',
|
|
142
|
-
iconRight: 'face-party',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
key: '5',
|
|
146
|
-
label: 'Option five(disabled)',
|
|
147
|
-
disabled: true,
|
|
148
|
-
iconRight: 'flag',
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
key: '6',
|
|
152
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
153
|
-
disabled: true,
|
|
154
|
-
iconRight: 'camera',
|
|
155
|
-
},
|
|
156
|
-
];
|
|
157
|
-
|
|
158
|
-
const iconLeftRightOptions: MenuOption[] = [
|
|
159
|
-
{key: '1', label: 'Option one', iconRight: 'coffee', iconLeft: 'coffee'},
|
|
160
|
-
{key: '2', label: 'Option two', iconRight: 'user', iconLeft: 'coffee'},
|
|
161
|
-
{
|
|
162
|
-
key: '4',
|
|
163
|
-
label: 'Option four very long option that would truncate',
|
|
164
|
-
iconRight: 'face-party',
|
|
165
|
-
iconLeft: 'coffee',
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
key: '5',
|
|
169
|
-
label: 'Option five(disabled)',
|
|
170
|
-
disabled: true,
|
|
171
|
-
iconRight: 'flag',
|
|
172
|
-
iconLeft: 'coffee',
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
key: '6',
|
|
176
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
177
|
-
disabled: true,
|
|
178
|
-
iconRight: 'camera',
|
|
179
|
-
iconLeft: 'coffee',
|
|
180
|
-
},
|
|
181
|
-
];
|
|
182
|
-
|
|
183
|
-
export default {
|
|
184
|
-
tags: ['autodocs'],
|
|
185
|
-
title: 'Components/Menu',
|
|
186
|
-
argTypes: {
|
|
187
|
-
resolveLabel: {
|
|
188
|
-
description:
|
|
189
|
-
'A function that resolves the label for a MenuOption. This is useful when you want to customize the label of an option based on some condition',
|
|
190
|
-
table: {
|
|
191
|
-
type: {
|
|
192
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
resolveSecondaryLabel: {
|
|
197
|
-
description:
|
|
198
|
-
'A function that resolves the secondary label for a MenuOption. This is useful when you want to customize the secondary label of an option based on some condition',
|
|
199
|
-
table: {
|
|
200
|
-
type: {
|
|
201
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
|
-
onSelect: {
|
|
206
|
-
description:
|
|
207
|
-
'**onSelect** handler is triggered when there is a change in selected option',
|
|
208
|
-
action: 'clicked',
|
|
209
|
-
table: {
|
|
210
|
-
type: {
|
|
211
|
-
summary:
|
|
212
|
-
'(option: MenuOption, ?SyntheticEvent<HTMLElement>) => mixed',
|
|
213
|
-
},
|
|
214
|
-
},
|
|
215
|
-
},
|
|
216
|
-
onTabOut: {
|
|
217
|
-
description:
|
|
218
|
-
'**onTabOut** callback is triggered when the user navigates outside of the menu using the tab key',
|
|
219
|
-
action: 'tabout',
|
|
220
|
-
table: {
|
|
221
|
-
type: {summary: '() => mixed'},
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
options: {
|
|
225
|
-
description: `list of Options to be displayed in the menu.
|
|
226
|
-
Menu component accepts options / composeOptions / groupTitleOptions whatever is available first and not all.`,
|
|
227
|
-
control: {
|
|
228
|
-
type: 'object',
|
|
229
|
-
},
|
|
230
|
-
table: {
|
|
231
|
-
type: {
|
|
232
|
-
summary: `Array<{
|
|
233
|
-
key?: string,
|
|
234
|
-
label: React.ReactNode,
|
|
235
|
-
customComponent?: React.ReactNode,
|
|
236
|
-
secondaryLabel?: React.ReactNode,
|
|
237
|
-
iconLeft?: string,
|
|
238
|
-
iconLeftType?: IconType,
|
|
239
|
-
iconRight?: string,
|
|
240
|
-
iconRightType?: IconType,
|
|
241
|
-
disabled?: boolean,
|
|
242
|
-
optionSize?: MenuSizeTypes,
|
|
243
|
-
indeterminate?: boolean,
|
|
244
|
-
}>`,
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
composeOptions: {
|
|
249
|
-
description: `list of list of Options are grouped and displayed in the menu.
|
|
250
|
-
Menu component accepts options / composeOptions / groupTitleOptions whatever is available first and not all.`,
|
|
251
|
-
control: {
|
|
252
|
-
type: 'object',
|
|
253
|
-
},
|
|
254
|
-
table: {
|
|
255
|
-
type: {
|
|
256
|
-
summary: `Array<Array<{
|
|
257
|
-
key?: string,
|
|
258
|
-
label: React.ReactNode,
|
|
259
|
-
customComponent?: React.ReactNode,
|
|
260
|
-
secondaryLabel?: React.ReactNode,
|
|
261
|
-
iconLeft?: string,
|
|
262
|
-
iconLeftType?: IconType,
|
|
263
|
-
iconRight?: string,
|
|
264
|
-
iconRightType?: IconType,
|
|
265
|
-
disabled?: boolean,
|
|
266
|
-
optionSize?: MenuSizeTypes,
|
|
267
|
-
indeterminate?: boolean,
|
|
268
|
-
}>>`,
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
groupTitleOptions: {
|
|
273
|
-
description: `List of Options are grouped with a title(each group contains a set of options) and displayed in the menu.
|
|
274
|
-
Menu component accepts options / composeOptions / groupTitleOptions whatever is available first and not all.`,
|
|
275
|
-
control: {
|
|
276
|
-
type: 'object',
|
|
277
|
-
},
|
|
278
|
-
table: {
|
|
279
|
-
type: {
|
|
280
|
-
summary: `Array<{
|
|
281
|
-
groupTitle?: React.ReactNode,
|
|
282
|
-
options?: Array<MenuOption>
|
|
283
|
-
}>`,
|
|
284
|
-
},
|
|
285
|
-
},
|
|
286
|
-
},
|
|
287
|
-
selectedOption: {
|
|
288
|
-
description: `Used in cases where you want to pre-select an option as soon as the component renders.
|
|
289
|
-
Selection is triggered when the selected option exactly matches one of the passed option.
|
|
290
|
-
**Note:** This prop would be deprecated soon. Please use \`selectedKeys\` instead
|
|
291
|
-
`,
|
|
292
|
-
control: {
|
|
293
|
-
type: 'object',
|
|
294
|
-
},
|
|
295
|
-
table: {
|
|
296
|
-
type: {summary: 'MenuOption'},
|
|
297
|
-
},
|
|
298
|
-
},
|
|
299
|
-
optionsVariant: {
|
|
300
|
-
description: 'Menu supports multiple options variant',
|
|
301
|
-
control: {
|
|
302
|
-
type: 'select',
|
|
303
|
-
},
|
|
304
|
-
options: ['checkbox', 'radio', 'normal'],
|
|
305
|
-
table: {
|
|
306
|
-
type: {summary: 'enum'},
|
|
307
|
-
defaultValue: {summary: 'normal'},
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
selectedKeys: {
|
|
311
|
-
description:
|
|
312
|
-
'Selected keys corresponding to options. These options are shown as selected in UI',
|
|
313
|
-
control: {
|
|
314
|
-
type: 'array',
|
|
315
|
-
},
|
|
316
|
-
table: {
|
|
317
|
-
type: {summary: 'Array<string>'},
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
classNames: {
|
|
321
|
-
description:
|
|
322
|
-
'External classnames to be applied. Wrapper gets applied to Menu wrapper and option gets applied to each option in the menu.',
|
|
323
|
-
control: {
|
|
324
|
-
type: 'object',
|
|
325
|
-
},
|
|
326
|
-
table: {
|
|
327
|
-
type: {
|
|
328
|
-
summary:
|
|
329
|
-
'{wrapper?: string, option?: string, groupTitle?: string, optionTextContainer?: string, optionTextLabel?: string, header?: string, footer?: string}',
|
|
330
|
-
},
|
|
331
|
-
},
|
|
332
|
-
},
|
|
333
|
-
size: {
|
|
334
|
-
description:
|
|
335
|
-
'Menu supports only two size variants namely small and medium. `small` < `medium`',
|
|
336
|
-
control: {
|
|
337
|
-
type: 'radio',
|
|
338
|
-
},
|
|
339
|
-
options: ['small', 'medium'],
|
|
340
|
-
table: {
|
|
341
|
-
type: {summary: 'enum'},
|
|
342
|
-
defaultValue: {summary: 'medium'},
|
|
343
|
-
},
|
|
344
|
-
},
|
|
345
|
-
width: {
|
|
346
|
-
description:
|
|
347
|
-
'Manual width control. This overrides the default width considerations of Menu',
|
|
348
|
-
control: {
|
|
349
|
-
type: 'text',
|
|
350
|
-
},
|
|
351
|
-
table: {
|
|
352
|
-
type: {summary: 'string'},
|
|
353
|
-
},
|
|
354
|
-
},
|
|
355
|
-
menuDisabled: {
|
|
356
|
-
description: 'if **true**, the option is disabled',
|
|
357
|
-
table: {
|
|
358
|
-
type: {summary: 'boolean'},
|
|
359
|
-
defaultValue: {summary: false},
|
|
360
|
-
},
|
|
361
|
-
},
|
|
362
|
-
isFluid: {
|
|
363
|
-
description:
|
|
364
|
-
'if **true**, the component would take the width of the container it is placed in',
|
|
365
|
-
control: {
|
|
366
|
-
type: 'boolean',
|
|
367
|
-
},
|
|
368
|
-
table: {
|
|
369
|
-
type: {summary: 'boolean'},
|
|
370
|
-
defaultValue: {summary: false},
|
|
371
|
-
},
|
|
372
|
-
},
|
|
373
|
-
allowSearch: {
|
|
374
|
-
description: `if **true**, the component would show a search input on top of menu.
|
|
375
|
-
This is a simple **static search**
|
|
376
|
-
which filter options by **matching search text to option label**`,
|
|
377
|
-
control: {
|
|
378
|
-
type: 'boolean',
|
|
379
|
-
},
|
|
380
|
-
table: {
|
|
381
|
-
type: {summary: 'boolean'},
|
|
382
|
-
defaultValue: {summary: false},
|
|
383
|
-
},
|
|
384
|
-
},
|
|
385
|
-
virtualization: {
|
|
386
|
-
description: `If **Enabled**, the options will only be rendered when they are within the component's viewport. **menuHeight and itemHeight** accept numerical input, interpreted as pixel values.`,
|
|
387
|
-
control: {
|
|
388
|
-
type: 'object',
|
|
389
|
-
},
|
|
390
|
-
table: {
|
|
391
|
-
type: {
|
|
392
|
-
summary:
|
|
393
|
-
'{enable: boolean, menuHeight?: number, itemHeight?: number}',
|
|
394
|
-
},
|
|
395
|
-
},
|
|
396
|
-
},
|
|
397
|
-
header: {
|
|
398
|
-
description: 'Custom Header For the Menu',
|
|
399
|
-
table: {
|
|
400
|
-
type: {
|
|
401
|
-
summary: 'React.ReactNode',
|
|
402
|
-
},
|
|
403
|
-
},
|
|
404
|
-
},
|
|
405
|
-
footer: {
|
|
406
|
-
description: 'Custom Header For the Menu',
|
|
407
|
-
table: {
|
|
408
|
-
type: {
|
|
409
|
-
summary: 'React.ReactNode',
|
|
410
|
-
},
|
|
411
|
-
},
|
|
412
|
-
},
|
|
413
|
-
showResultText: {
|
|
414
|
-
description: `if **true**, shows result text below **search input**.
|
|
415
|
-
**Note:** For the result text to be displayed below the search input, please ensure that allowSearch is set to true.`,
|
|
416
|
-
control: {
|
|
417
|
-
type: 'boolean',
|
|
418
|
-
},
|
|
419
|
-
table: {
|
|
420
|
-
type: {summary: 'boolean'},
|
|
421
|
-
defaultValue: {summary: true},
|
|
422
|
-
},
|
|
423
|
-
},
|
|
424
|
-
staticLabels: {
|
|
425
|
-
description:
|
|
426
|
-
'External labels to be assigned to static text displayed in the UI.',
|
|
427
|
-
control: {
|
|
428
|
-
type: 'object',
|
|
429
|
-
},
|
|
430
|
-
table: {
|
|
431
|
-
type: {
|
|
432
|
-
summary: '{[key: string]: string}',
|
|
433
|
-
},
|
|
434
|
-
defaultValue: {
|
|
435
|
-
summary: `{RESULT: 'result', RESULTS: 'results', SEARCH_PLACEHOLDER: 'Search...'}`,
|
|
436
|
-
},
|
|
437
|
-
},
|
|
438
|
-
},
|
|
439
|
-
showLabelTooltip: {
|
|
440
|
-
description: 'Show Tooltip on the label of the menu option if truncated',
|
|
441
|
-
control: {
|
|
442
|
-
type: 'object',
|
|
443
|
-
},
|
|
444
|
-
table: {
|
|
445
|
-
type: {summary: 'MenuLabelTooltip'},
|
|
446
|
-
},
|
|
447
|
-
},
|
|
448
|
-
allowWrap: {
|
|
449
|
-
description:
|
|
450
|
-
'Allows the label to wrap up to 3 lines. If truncated, a tooltip will display up to 10 lines.',
|
|
451
|
-
control: {
|
|
452
|
-
type: 'boolean',
|
|
453
|
-
},
|
|
454
|
-
table: {
|
|
455
|
-
type: {summary: 'boolean'},
|
|
456
|
-
defaultValue: {summary: false},
|
|
457
|
-
},
|
|
458
|
-
},
|
|
459
|
-
},
|
|
460
|
-
parameters: {
|
|
461
|
-
docs: {
|
|
462
|
-
subtitle: 'Generates a Menu component',
|
|
463
|
-
description: {
|
|
464
|
-
component: `
|
|
465
|
-
\`\`\`js
|
|
466
|
-
import { Menu } from "@spaced-out/ui-design-system/lib/components/Menu";
|
|
467
|
-
\`\`\`
|
|
468
|
-
**Menu** is a list of choices on a temporary surface. It appears on interacts with a button, or other control. This is a standalone Menu component,
|
|
469
|
-
in real world use cases Menu component would be used in conjunction with other component like Button, Input, Typeahead, etc. Each option in the Menu
|
|
470
|
-
component is implemented as an \`UnstyledButton\`.
|
|
471
|
-
- The component also supports custom **header** as \`React Component\` and this is then passed in
|
|
472
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component.
|
|
473
|
-
- The component also supports custom **footer** as \`React Component\` and this is then passed in
|
|
474
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component. This might be useful when you need
|
|
475
|
-
to save some state in the parent component.
|
|
476
|
-
`,
|
|
477
|
-
},
|
|
478
|
-
},
|
|
479
|
-
storySource: {
|
|
480
|
-
componentPath: '/src/components/Menu/Menu.jsx',
|
|
481
|
-
},
|
|
482
|
-
},
|
|
483
|
-
};
|
|
484
|
-
|
|
485
|
-
export const _TextOnly = (args: MenuProps) => <Menu {...args} />;
|
|
486
|
-
|
|
487
|
-
_TextOnly.args = {
|
|
488
|
-
isFluid: false,
|
|
489
|
-
menuDisabled: false,
|
|
490
|
-
size: 'medium',
|
|
491
|
-
options: textOptions,
|
|
492
|
-
selectedKeys: ['2'],
|
|
493
|
-
};
|
|
494
|
-
export const _TextWithTooltip = (args: MenuProps) => (<Menu {...args} />);
|
|
495
|
-
|
|
496
|
-
_TextWithTooltip.args = {
|
|
497
|
-
isFluid: false,
|
|
498
|
-
menuDisabled: false,
|
|
499
|
-
size: 'medium',
|
|
500
|
-
options: textOptions,
|
|
501
|
-
selectedKeys: ['2'],
|
|
502
|
-
showLabelTooltip: {maxLines: 2},
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
export const _MenuWithWrap = (args: MenuProps) => {
|
|
506
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
507
|
-
args.selectedKeys || [],
|
|
508
|
-
);
|
|
509
|
-
const selectKeys = (option: MenuOption) => {
|
|
510
|
-
setSelectedKeys([option.key]);
|
|
511
|
-
};
|
|
512
|
-
|
|
513
|
-
return <Menu {...args} selectedKeys={selectedKeys} onSelect={selectKeys} />;
|
|
514
|
-
};
|
|
515
|
-
|
|
516
|
-
_MenuWithWrap.args = {
|
|
517
|
-
isFluid: false,
|
|
518
|
-
menuDisabled: false,
|
|
519
|
-
size: 'medium',
|
|
520
|
-
options: textOptions,
|
|
521
|
-
selectedKeys: ['2'],
|
|
522
|
-
allowWrap: true,
|
|
523
|
-
};
|
|
524
|
-
|
|
525
|
-
export const _WithSearch = (args: MenuProps) => <Menu {...args} />;
|
|
526
|
-
|
|
527
|
-
_WithSearch.args = {
|
|
528
|
-
isFluid: false,
|
|
529
|
-
menuDisabled: false,
|
|
530
|
-
size: 'medium',
|
|
531
|
-
options: textOptions,
|
|
532
|
-
allowSearch: true,
|
|
533
|
-
};
|
|
534
|
-
|
|
535
|
-
export const _TextAndIconLeft = (args: MenuProps) => (<Menu {...args} />);
|
|
536
|
-
|
|
537
|
-
_TextAndIconLeft.args = {
|
|
538
|
-
isFluid: false,
|
|
539
|
-
menuDisabled: false,
|
|
540
|
-
size: 'medium',
|
|
541
|
-
options: iconLeftOptions,
|
|
542
|
-
selectedKeys: ['2'],
|
|
543
|
-
};
|
|
544
|
-
|
|
545
|
-
/**
|
|
546
|
-
* To make one of the options colored, you can set the classNames wrapper property in the option object.
|
|
547
|
-
* Eg:
|
|
548
|
-
* You would need to set the color of the option and manage the hover, focus and active state yourself.
|
|
549
|
-
* ### JS
|
|
550
|
-
* ```
|
|
551
|
-
* const coloredOptions: MenuOption[] = [
|
|
552
|
-
* {
|
|
553
|
-
* key: '1',
|
|
554
|
-
* label: 'Edit',
|
|
555
|
-
* iconLeft: 'coffee',
|
|
556
|
-
* },
|
|
557
|
-
* {
|
|
558
|
-
* key: '2',
|
|
559
|
-
* label: 'Delete',
|
|
560
|
-
* iconLeft: 'trash',
|
|
561
|
-
* classNames: { wrapper: css.dangerText },
|
|
562
|
-
* },
|
|
563
|
-
* ];
|
|
564
|
-
* ```
|
|
565
|
-
* ### CSS
|
|
566
|
-
* ```
|
|
567
|
-
* .dangerText:hover,
|
|
568
|
-
* .dangerText:active,
|
|
569
|
-
* .dangerText:focus {
|
|
570
|
-
* color: colorTextDanger;
|
|
571
|
-
* }
|
|
572
|
-
* ```
|
|
573
|
-
*/
|
|
574
|
-
export const _ColoredOption = (args: MenuProps) => (<Menu {...args} />);
|
|
575
|
-
|
|
576
|
-
_ColoredOption.args = {
|
|
577
|
-
isFluid: false,
|
|
578
|
-
menuDisabled: false,
|
|
579
|
-
size: 'medium',
|
|
580
|
-
options: coloredOptions,
|
|
581
|
-
};
|
|
582
|
-
|
|
583
|
-
export const _TextAndIconRight = (args: MenuProps) => (<Menu {...args} />);
|
|
584
|
-
|
|
585
|
-
_TextAndIconRight.args = {
|
|
586
|
-
isFluid: false,
|
|
587
|
-
menuDisabled: false,
|
|
588
|
-
size: 'medium',
|
|
589
|
-
options: iconRightOptions,
|
|
590
|
-
selectedKeys: ['2'],
|
|
591
|
-
};
|
|
592
|
-
|
|
593
|
-
export const _TextAndDualIcon = (args: MenuProps) => (<Menu {...args} />);
|
|
594
|
-
|
|
595
|
-
_TextAndDualIcon.args = {
|
|
596
|
-
isFluid: false,
|
|
597
|
-
menuDisabled: false,
|
|
598
|
-
size: 'medium',
|
|
599
|
-
options: iconLeftRightOptions,
|
|
600
|
-
selectedKeys: ['2'],
|
|
601
|
-
};
|
|
602
|
-
|
|
603
|
-
export const _DualText = (args: MenuProps) => <Menu {...args} />;
|
|
604
|
-
|
|
605
|
-
_DualText.args = {
|
|
606
|
-
isFluid: false,
|
|
607
|
-
menuDisabled: false,
|
|
608
|
-
size: 'medium',
|
|
609
|
-
options: textOptionsWithSecondaryLabel,
|
|
610
|
-
selectedKeys: ['2'],
|
|
611
|
-
};
|
|
612
|
-
|
|
613
|
-
export const _WithResolvers = (args: MenuProps) => {
|
|
614
|
-
const resolveLabel = (option: MenuOption) => (
|
|
615
|
-
<div className={css.customComponent}>
|
|
616
|
-
{parseInt(option.key) < 6 ? (
|
|
617
|
-
<Avatar
|
|
618
|
-
imageSrc={`https://cdn.sensehq.com/genesis/hashed/static/images/personas/${option.key}.png`}
|
|
619
|
-
/>
|
|
620
|
-
) : (
|
|
621
|
-
<Avatar iconName="user" />
|
|
622
|
-
)}
|
|
623
|
-
|
|
624
|
-
<ButtonTextMedium className={css.text} color="secondary">
|
|
625
|
-
<Truncate>{option.label}</Truncate>
|
|
626
|
-
</ButtonTextMedium>
|
|
627
|
-
</div>
|
|
628
|
-
);
|
|
629
|
-
|
|
630
|
-
return <Menu {...args} resolveLabel={resolveLabel} />;
|
|
631
|
-
};
|
|
632
|
-
|
|
633
|
-
_WithResolvers.args = {
|
|
634
|
-
isFluid: false,
|
|
635
|
-
menuDisabled: false,
|
|
636
|
-
size: 'medium',
|
|
637
|
-
options: textOptions,
|
|
638
|
-
};
|
|
639
|
-
|
|
640
|
-
const composeMenuOptions: Array<Array<MenuOption>> = [
|
|
641
|
-
[
|
|
642
|
-
{
|
|
643
|
-
key: '1',
|
|
644
|
-
label: 'Option one',
|
|
645
|
-
secondaryLabel: 'Sub Text',
|
|
646
|
-
optionSize: 'small',
|
|
647
|
-
},
|
|
648
|
-
{
|
|
649
|
-
key: '2',
|
|
650
|
-
label: 'Option two',
|
|
651
|
-
secondaryLabel: 'Sub Text',
|
|
652
|
-
optionSize: 'small',
|
|
653
|
-
},
|
|
654
|
-
{
|
|
655
|
-
key: '3',
|
|
656
|
-
label: 'Option three',
|
|
657
|
-
secondaryLabel: 'Sub Text',
|
|
658
|
-
optionSize: 'small',
|
|
659
|
-
},
|
|
660
|
-
],
|
|
661
|
-
[
|
|
662
|
-
{
|
|
663
|
-
iconLeft: 'coffee',
|
|
664
|
-
key: '4',
|
|
665
|
-
label: 'Option one',
|
|
666
|
-
optionSize: 'medium',
|
|
667
|
-
},
|
|
668
|
-
],
|
|
669
|
-
[
|
|
670
|
-
{
|
|
671
|
-
iconLeft: 'coffee',
|
|
672
|
-
key: '5',
|
|
673
|
-
label: 'Option one',
|
|
674
|
-
optionSize: 'medium',
|
|
675
|
-
},
|
|
676
|
-
],
|
|
677
|
-
];
|
|
678
|
-
|
|
679
|
-
export const _ComposeMenu = (args: MenuProps) => <Menu {...args} />;
|
|
680
|
-
|
|
681
|
-
_ComposeMenu.args = {
|
|
682
|
-
isFluid: false,
|
|
683
|
-
menuDisabled: false,
|
|
684
|
-
size: 'medium',
|
|
685
|
-
composeOptions: composeMenuOptions,
|
|
686
|
-
selectedKeys: ['2'],
|
|
687
|
-
};
|
|
688
|
-
|
|
689
|
-
const customComponentMenuOptions: Array<MenuOption> = [
|
|
690
|
-
{
|
|
691
|
-
key: '1',
|
|
692
|
-
customComponent: (
|
|
693
|
-
<div className={css.customComponent}>
|
|
694
|
-
<Avatar
|
|
695
|
-
color="blue"
|
|
696
|
-
imageSrc="https://cdn.sensehq.com/genesis/hashed/static/images/personas/1.png"
|
|
697
|
-
iconName="face-party"
|
|
698
|
-
iconType="regular"
|
|
699
|
-
size="medium"
|
|
700
|
-
/>
|
|
701
|
-
<ButtonTextMedium className={css.text}>Angelina White</ButtonTextMedium>
|
|
702
|
-
</div>
|
|
703
|
-
),
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
key: '2',
|
|
707
|
-
customComponent: (
|
|
708
|
-
<div className={css.customComponent}>
|
|
709
|
-
<Avatar
|
|
710
|
-
imageSrc="https://cdn.sensehq.com/genesis/hashed/static/images/personas/4.png"
|
|
711
|
-
color="green"
|
|
712
|
-
size="medium"
|
|
713
|
-
text="John"
|
|
714
|
-
/>
|
|
715
|
-
<ButtonTextMedium className={css.text}>John Smith</ButtonTextMedium>
|
|
716
|
-
</div>
|
|
717
|
-
),
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
key: '3',
|
|
721
|
-
|
|
722
|
-
customComponent: (
|
|
723
|
-
<div className={css.customComponent}>
|
|
724
|
-
<Avatar
|
|
725
|
-
imageSrc="https://cdn.sensehq.com/genesis/hashed/static/images/personas/6.png"
|
|
726
|
-
color="orange"
|
|
727
|
-
size="medium"
|
|
728
|
-
text="Jacobs Marley"
|
|
729
|
-
/>
|
|
730
|
-
<ButtonTextMedium className={css.text}>Sarah Parker</ButtonTextMedium>
|
|
731
|
-
</div>
|
|
732
|
-
),
|
|
733
|
-
},
|
|
734
|
-
];
|
|
735
|
-
|
|
736
|
-
export const _CustomComponentMenu = (args: MenuProps) => (<Menu {...args} />);
|
|
737
|
-
|
|
738
|
-
_CustomComponentMenu.args = {
|
|
739
|
-
isFluid: false,
|
|
740
|
-
menuDisabled: false,
|
|
741
|
-
classNames: {option: css.optionText},
|
|
742
|
-
size: 'medium',
|
|
743
|
-
options: customComponentMenuOptions,
|
|
744
|
-
selectedKeys: ['2'],
|
|
745
|
-
};
|
|
746
|
-
|
|
747
|
-
const groupTitleComponentMenuOptions: Array<MenuGroupTitleOption> = [
|
|
748
|
-
{
|
|
749
|
-
groupTitle: (
|
|
750
|
-
<div className={css.titleWrapper}>
|
|
751
|
-
<FormLabelSmall color="tertiary">Fast Food</FormLabelSmall>
|
|
752
|
-
<div className={css.infoContainer}>
|
|
753
|
-
<Tooltip title="Hello!" elevation="menu">
|
|
754
|
-
<Icon name="circle-info" size="small" color="tertiary" />
|
|
755
|
-
</Tooltip>
|
|
756
|
-
</div>
|
|
757
|
-
</div>
|
|
758
|
-
),
|
|
759
|
-
options: [
|
|
760
|
-
{
|
|
761
|
-
key: '1',
|
|
762
|
-
iconLeft: 'burger',
|
|
763
|
-
label: 'Burger',
|
|
764
|
-
},
|
|
765
|
-
{
|
|
766
|
-
key: '2',
|
|
767
|
-
iconLeft: 'pizza',
|
|
768
|
-
label: 'Pizza',
|
|
769
|
-
},
|
|
770
|
-
{
|
|
771
|
-
key: '3',
|
|
772
|
-
iconLeft: 'french-fries',
|
|
773
|
-
label: 'Fries',
|
|
774
|
-
},
|
|
775
|
-
],
|
|
776
|
-
},
|
|
777
|
-
{
|
|
778
|
-
showLineDivider: true,
|
|
779
|
-
groupTitle: (
|
|
780
|
-
<div className={css.titleWrapper}>
|
|
781
|
-
<FormLabelSmall color="tertiary">Fruits</FormLabelSmall>
|
|
782
|
-
<div className={css.infoContainer}>
|
|
783
|
-
<Tooltip title="Hello!" elevation="menu">
|
|
784
|
-
<Icon name="circle-info" size="small" color="tertiary" />
|
|
785
|
-
</Tooltip>
|
|
786
|
-
</div>
|
|
787
|
-
</div>
|
|
788
|
-
),
|
|
789
|
-
options: [
|
|
790
|
-
{
|
|
791
|
-
key: '7',
|
|
792
|
-
iconLeft: 'banana',
|
|
793
|
-
label: 'Banana',
|
|
794
|
-
},
|
|
795
|
-
{
|
|
796
|
-
key: '8',
|
|
797
|
-
iconLeft: 'pear',
|
|
798
|
-
label: 'Pear',
|
|
799
|
-
},
|
|
800
|
-
{
|
|
801
|
-
key: '9',
|
|
802
|
-
iconLeft: 'lemon',
|
|
803
|
-
label: 'Lemon',
|
|
804
|
-
},
|
|
805
|
-
],
|
|
806
|
-
},
|
|
807
|
-
];
|
|
808
|
-
|
|
809
|
-
export const _GroupTitleMenu = (args: MenuProps) => (<Menu {...args} classNames={{groupTitle: css.gpTitle}} />);
|
|
810
|
-
|
|
811
|
-
_GroupTitleMenu.args = {
|
|
812
|
-
isFluid: false,
|
|
813
|
-
menuDisabled: false,
|
|
814
|
-
classNames: {option: css.optionText},
|
|
815
|
-
size: 'medium',
|
|
816
|
-
groupTitleOptions: groupTitleComponentMenuOptions,
|
|
817
|
-
selectedKeys: ['2'],
|
|
818
|
-
};
|
|
819
|
-
|
|
820
|
-
const GroupTitleActionMenu = (args: MenuProps) => {
|
|
821
|
-
const [searchText, setSearchText] = React.useState<string>('');
|
|
822
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
823
|
-
args.selectedKeys || [],
|
|
824
|
-
);
|
|
825
|
-
const optionsFiltered = getFilteredOptionsFromSearchText(
|
|
826
|
-
textOptions,
|
|
827
|
-
searchText,
|
|
828
|
-
);
|
|
829
|
-
const optionsFilteredKeys = optionsFiltered
|
|
830
|
-
.filter(({disabled}) => !disabled)
|
|
831
|
-
.map(({key}) => key);
|
|
832
|
-
|
|
833
|
-
React.useEffect(() => {
|
|
834
|
-
setSelectedKeys(args.selectedKeys || []);
|
|
835
|
-
}, [args.selectedKeys]);
|
|
836
|
-
|
|
837
|
-
const selectKeys = (option: MenuOption) => {
|
|
838
|
-
if (selectedKeys.includes(option.key)) {
|
|
839
|
-
setSelectedKeys(difference(selectedKeys, [option.key]));
|
|
840
|
-
} else {
|
|
841
|
-
setSelectedKeys(union(selectedKeys, [option.key]));
|
|
842
|
-
}
|
|
843
|
-
};
|
|
844
|
-
|
|
845
|
-
const selectAllKeys = () => {
|
|
846
|
-
setSelectedKeys(union(selectedKeys, optionsFilteredKeys));
|
|
847
|
-
};
|
|
848
|
-
|
|
849
|
-
const clearSelectedKeys = () => {
|
|
850
|
-
setSelectedKeys(difference(selectedKeys, optionsFilteredKeys));
|
|
851
|
-
};
|
|
852
|
-
|
|
853
|
-
return (
|
|
854
|
-
<Menu
|
|
855
|
-
{...args}
|
|
856
|
-
optionsVariant="checkbox"
|
|
857
|
-
selectedKeys={selectedKeys}
|
|
858
|
-
onSelect={selectKeys}
|
|
859
|
-
classNames={{
|
|
860
|
-
header: css.groupTitleActionHeader,
|
|
861
|
-
groupTitle: css.groupTitle,
|
|
862
|
-
}}
|
|
863
|
-
header={
|
|
864
|
-
<SearchInput
|
|
865
|
-
value={searchText}
|
|
866
|
-
onChange={(e) => setSearchText(e.target.value)}
|
|
867
|
-
onClear={() => setSearchText('')}
|
|
868
|
-
size={args.size}
|
|
869
|
-
/>
|
|
870
|
-
}
|
|
871
|
-
groupTitleOptions={[
|
|
872
|
-
{
|
|
873
|
-
groupTitle: (
|
|
874
|
-
<>
|
|
875
|
-
<FormLabelMedium color="tertiary">
|
|
876
|
-
{`Values (${optionsFiltered.length})`}
|
|
877
|
-
</FormLabelMedium>
|
|
878
|
-
<div className={css.groupTitleActions}>
|
|
879
|
-
<ButtonTextSmallUnderline
|
|
880
|
-
className={css.groupTitleAction}
|
|
881
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
882
|
-
onClick={clearSelectedKeys}
|
|
883
|
-
>
|
|
884
|
-
Clear
|
|
885
|
-
</ButtonTextSmallUnderline>
|
|
886
|
-
<ButtonTextSmallUnderline
|
|
887
|
-
color="clickable"
|
|
888
|
-
className={css.groupTitleAction}
|
|
889
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
890
|
-
onClick={selectAllKeys}
|
|
891
|
-
>
|
|
892
|
-
Select All
|
|
893
|
-
</ButtonTextSmallUnderline>
|
|
894
|
-
</div>
|
|
895
|
-
</>
|
|
896
|
-
),
|
|
897
|
-
options: optionsFiltered,
|
|
898
|
-
},
|
|
899
|
-
]}
|
|
900
|
-
/>
|
|
901
|
-
);
|
|
902
|
-
};
|
|
903
|
-
|
|
904
|
-
export const _GroupTitleActionMenu = (args: MenuProps) => (<GroupTitleActionMenu {...args} />);
|
|
905
|
-
|
|
906
|
-
_GroupTitleActionMenu.args = {
|
|
907
|
-
isFluid: false,
|
|
908
|
-
menuDisabled: false,
|
|
909
|
-
classNames: {option: css.optionText},
|
|
910
|
-
size: 'medium',
|
|
911
|
-
selectedKeys: ['2'],
|
|
912
|
-
};
|
|
913
|
-
|
|
914
|
-
export const _CheckboxMenu = (args: MenuProps) => {
|
|
915
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
916
|
-
args.selectedKeys || [],
|
|
917
|
-
);
|
|
918
|
-
|
|
919
|
-
React.useEffect(() => {
|
|
920
|
-
setSelectedKeys(args.selectedKeys || []);
|
|
921
|
-
}, [args.selectedKeys]);
|
|
922
|
-
|
|
923
|
-
const selectKeys = (option: MenuOption) => {
|
|
924
|
-
if (selectedKeys.includes(option.key)) {
|
|
925
|
-
setSelectedKeys(selectedKeys.filter((item) => item !== option.key));
|
|
926
|
-
} else {
|
|
927
|
-
setSelectedKeys([...selectedKeys, option.key]);
|
|
928
|
-
}
|
|
929
|
-
};
|
|
930
|
-
|
|
931
|
-
return <Menu {...args} selectedKeys={selectedKeys} onSelect={selectKeys} />;
|
|
932
|
-
};
|
|
933
|
-
|
|
934
|
-
_CheckboxMenu.args = {
|
|
935
|
-
isFluid: false,
|
|
936
|
-
menuDisabled: false,
|
|
937
|
-
classNames: {option: css.optionText},
|
|
938
|
-
size: 'medium',
|
|
939
|
-
options: checkboxOptions,
|
|
940
|
-
optionsVariant: 'checkbox',
|
|
941
|
-
selectedKeys: ['1', '4'],
|
|
942
|
-
};
|
|
943
|
-
|
|
944
|
-
export const _RadioMenu = (args: MenuProps) => {
|
|
945
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
946
|
-
args.selectedKeys || [],
|
|
947
|
-
);
|
|
948
|
-
|
|
949
|
-
React.useEffect(() => {
|
|
950
|
-
setSelectedKeys(args.selectedKeys || []);
|
|
951
|
-
}, [args.selectedKeys]);
|
|
952
|
-
|
|
953
|
-
const selectKeys = (option: MenuOption) => {
|
|
954
|
-
setSelectedKeys([option.key]);
|
|
955
|
-
};
|
|
956
|
-
|
|
957
|
-
return <Menu {...args} selectedKeys={selectedKeys} onSelect={selectKeys} />;
|
|
958
|
-
};
|
|
959
|
-
|
|
960
|
-
_RadioMenu.args = {
|
|
961
|
-
isFluid: false,
|
|
962
|
-
menuDisabled: false,
|
|
963
|
-
classNames: {option: css.optionText},
|
|
964
|
-
size: 'medium',
|
|
965
|
-
options: textOptions,
|
|
966
|
-
optionsVariant: 'radio',
|
|
967
|
-
selectedKeys: ['1'],
|
|
968
|
-
};
|
|
969
|
-
|
|
970
|
-
export const MenuHeader = () => (<div className={css.headerComponent}>
|
|
971
|
-
<SubTitleSmall>Menu Header</SubTitleSmall>
|
|
972
|
-
</div>);
|
|
973
|
-
|
|
974
|
-
export const MenuFooter = (
|
|
975
|
-
{
|
|
976
|
-
onSave,
|
|
977
|
-
onCancel,
|
|
978
|
-
}: {
|
|
979
|
-
onSave?: () => void;
|
|
980
|
-
onCancel?: () => void;
|
|
981
|
-
},
|
|
982
|
-
) => (<div className={css.footerComponent}>
|
|
983
|
-
<Button size="small" type="ghost" onClick={onCancel}>
|
|
984
|
-
Cancel
|
|
985
|
-
</Button>
|
|
986
|
-
<Button size="small" type="secondary" onClick={onSave}>
|
|
987
|
-
Save
|
|
988
|
-
</Button>
|
|
989
|
-
</div>);
|
|
990
|
-
|
|
991
|
-
export const _WithHeader = (args: MenuProps) => (<Menu {...args} header={<MenuHeader />} />);
|
|
992
|
-
|
|
993
|
-
_WithHeader.args = {
|
|
994
|
-
isFluid: false,
|
|
995
|
-
menuDisabled: false,
|
|
996
|
-
size: 'small',
|
|
997
|
-
options: textOptions,
|
|
998
|
-
selectedKeys: ['2'],
|
|
999
|
-
};
|
|
1000
|
-
|
|
1001
|
-
export const _WithFooter = (args: MenuProps) => (<Menu {...args} footer={<MenuFooter />} />);
|
|
1002
|
-
|
|
1003
|
-
_WithFooter.args = {
|
|
1004
|
-
isFluid: false,
|
|
1005
|
-
menuDisabled: false,
|
|
1006
|
-
size: 'small',
|
|
1007
|
-
options: textOptions,
|
|
1008
|
-
selectedKeys: ['2'],
|
|
1009
|
-
};
|
|
1010
|
-
|
|
1011
|
-
export const _WithHeaderAndFooter = (args: MenuProps) => {
|
|
1012
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
1013
|
-
args.selectedKeys || [],
|
|
1014
|
-
);
|
|
1015
|
-
|
|
1016
|
-
React.useEffect(() => {
|
|
1017
|
-
setSelectedKeys(args.selectedKeys || []);
|
|
1018
|
-
}, [args.selectedKeys]);
|
|
1019
|
-
|
|
1020
|
-
const selectKeys = (option: MenuOption) => {
|
|
1021
|
-
if (selectedKeys.includes(option.key)) {
|
|
1022
|
-
setSelectedKeys(selectedKeys.filter((item) => item !== option.key));
|
|
1023
|
-
} else {
|
|
1024
|
-
setSelectedKeys([...selectedKeys, option.key]);
|
|
1025
|
-
}
|
|
1026
|
-
};
|
|
1027
|
-
|
|
1028
|
-
return (
|
|
1029
|
-
<Menu
|
|
1030
|
-
{...args}
|
|
1031
|
-
selectedKeys={selectedKeys}
|
|
1032
|
-
onSelect={selectKeys}
|
|
1033
|
-
header={<MenuHeader />}
|
|
1034
|
-
footer={<MenuFooter />}
|
|
1035
|
-
/>
|
|
1036
|
-
);
|
|
1037
|
-
};
|
|
1038
|
-
|
|
1039
|
-
_WithHeaderAndFooter.args = {
|
|
1040
|
-
isFluid: false,
|
|
1041
|
-
menuDisabled: false,
|
|
1042
|
-
classNames: {option: css.optionText},
|
|
1043
|
-
options: textOptions,
|
|
1044
|
-
optionsVariant: 'checkbox',
|
|
1045
|
-
selectedKeys: ['1', '4'],
|
|
1046
|
-
};
|