@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,525 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import type {ButtonProps} from '../Button';
|
|
4
|
-
import {BUTTON_ACTION_TYPE} from '../Button';
|
|
5
|
-
import {ANCHOR_POSITION_TYPE} from '../ButtonDropdown';
|
|
6
|
-
import type {MenuOption} from '../Menu';
|
|
7
|
-
import {MenuFooter, MenuHeader} from '../Menu/Menu.stories';
|
|
8
|
-
|
|
9
|
-
import type {SimpleOptionButtonProps} from './SimpleOptionButton';
|
|
10
|
-
import {SimpleOptionButton} from './SimpleOptionButton';
|
|
11
|
-
|
|
12
|
-
import css from './OptionButton.stories.module.css';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const anchorPositionOptions: Array<unknown> = [
|
|
16
|
-
...Object.values(ANCHOR_POSITION_TYPE),
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
const actionTypeOptions: Array<unknown> = [...Object.values(BUTTON_ACTION_TYPE)];
|
|
20
|
-
|
|
21
|
-
export default {
|
|
22
|
-
tags: ['autodocs'],
|
|
23
|
-
title: 'Components/Option Button/Simple Option Button',
|
|
24
|
-
component: SimpleOptionButton,
|
|
25
|
-
argTypes: {
|
|
26
|
-
onButtonClick: {
|
|
27
|
-
description:
|
|
28
|
-
'**onButtonClick** handler that is applied to the root `<button>` element',
|
|
29
|
-
action: 'clicked',
|
|
30
|
-
table: {
|
|
31
|
-
type: {summary: '(SyntheticEvent<HTMLElement>) => mixed'},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
iconLeftName: {
|
|
35
|
-
description:
|
|
36
|
-
'Left icon to be applied to the button, it internally uses the `Icon` component to render icons',
|
|
37
|
-
control: {
|
|
38
|
-
type: 'text',
|
|
39
|
-
},
|
|
40
|
-
table: {
|
|
41
|
-
type: {summary: 'string'},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
iconLeftType: {
|
|
45
|
-
description:
|
|
46
|
-
'Type of Left Icon. Type represents 4 unique icon styles :- Solid, Regular, Duotone and Brands',
|
|
47
|
-
options: ['regular', 'solid', 'duotone', 'brands'],
|
|
48
|
-
control: {type: 'select'},
|
|
49
|
-
table: {
|
|
50
|
-
type: {summary: 'string'},
|
|
51
|
-
defaultValue: {summary: 'regular'},
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
type: {
|
|
55
|
-
options: ['primary', 'secondary', 'tertiary', 'ghost', 'danger'],
|
|
56
|
-
description: 'Type of Button. Supported types are listed on the dropdown',
|
|
57
|
-
control: {
|
|
58
|
-
type: 'select',
|
|
59
|
-
},
|
|
60
|
-
table: {
|
|
61
|
-
type: {summary: 'enum'},
|
|
62
|
-
defaultValue: {summary: 'primary'},
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
actionType: {
|
|
66
|
-
options: actionTypeOptions,
|
|
67
|
-
description:
|
|
68
|
-
'Action type of Button. Supported types are listed on the dropdown',
|
|
69
|
-
control: {
|
|
70
|
-
type: 'select',
|
|
71
|
-
},
|
|
72
|
-
table: {
|
|
73
|
-
type: {summary: 'enum'},
|
|
74
|
-
defaultValue: {summary: 'submit'},
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
size: {
|
|
78
|
-
description:
|
|
79
|
-
'Option Button supports only two size variants namely small and medium. `small` < `medium`',
|
|
80
|
-
control: {
|
|
81
|
-
type: 'radio',
|
|
82
|
-
},
|
|
83
|
-
options: ['small', 'medium'],
|
|
84
|
-
table: {
|
|
85
|
-
type: {summary: 'enum'},
|
|
86
|
-
defaultValue: {summary: 'small'},
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
menuSize: {
|
|
90
|
-
description: 'Size of Menu',
|
|
91
|
-
control: {
|
|
92
|
-
type: 'radio',
|
|
93
|
-
},
|
|
94
|
-
options: ['small', 'medium'],
|
|
95
|
-
table: {
|
|
96
|
-
type: {summary: 'enum'},
|
|
97
|
-
defaultValue: {summary: 'small'},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
disabled: {
|
|
101
|
-
description: 'If **true**, the component is disabled',
|
|
102
|
-
control: {
|
|
103
|
-
type: 'boolean',
|
|
104
|
-
},
|
|
105
|
-
table: {
|
|
106
|
-
type: {summary: 'boolean'},
|
|
107
|
-
defaultValue: {summary: 'false'},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
isLoading: {
|
|
111
|
-
description:
|
|
112
|
-
'If **true**, the component would show a circular loader and also preserve the current size of button so that there are no jumps',
|
|
113
|
-
control: {
|
|
114
|
-
type: 'boolean',
|
|
115
|
-
},
|
|
116
|
-
table: {
|
|
117
|
-
type: {summary: 'boolean'},
|
|
118
|
-
defaultValue: {summary: 'false'},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
isFluid: {
|
|
122
|
-
description:
|
|
123
|
-
'If **true**, the component would take the container\'s `width`',
|
|
124
|
-
control: {
|
|
125
|
-
type: 'boolean',
|
|
126
|
-
},
|
|
127
|
-
table: {
|
|
128
|
-
type: {summary: 'boolean'},
|
|
129
|
-
defaultValue: {summary: 'false'},
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
children: {
|
|
133
|
-
description: 'The content of the Button',
|
|
134
|
-
table: {
|
|
135
|
-
type: {summary: 'React.Component | string'},
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
ariaLabel: {
|
|
139
|
-
control: {
|
|
140
|
-
type: 'text',
|
|
141
|
-
},
|
|
142
|
-
description:
|
|
143
|
-
'**aria-label** should be used where Option Button do not have have discernible text. This would avoid accessibility violations in screen readers',
|
|
144
|
-
table: {
|
|
145
|
-
type: {summary: 'string'},
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
onOptionSelect: {
|
|
149
|
-
description:
|
|
150
|
-
'**onOptionSelect** handler is triggered when there is a change in selected option',
|
|
151
|
-
action: 'clicked',
|
|
152
|
-
table: {
|
|
153
|
-
type: {
|
|
154
|
-
summary:
|
|
155
|
-
'(option: MenuOption, ?SyntheticEvent<HTMLElement>) => mixed',
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
|
-
onMenuOpen: {
|
|
160
|
-
description:
|
|
161
|
-
'**onMenuOpen** handler is triggered when menu is opened. This should be helpful in cases where you want to change Button icon / text on this trigger.',
|
|
162
|
-
action: 'clicked',
|
|
163
|
-
table: {
|
|
164
|
-
type: {summary: '() => mixed'},
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
onMenuClose: {
|
|
168
|
-
description:
|
|
169
|
-
'**onMenuClose** handler is triggered when menu is closed. This should be helpful in cases where you want to change Button icon / text on this trigger.',
|
|
170
|
-
action: 'clicked',
|
|
171
|
-
table: {
|
|
172
|
-
type: {summary: '() => mixed'},
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
anchorPosition: {
|
|
176
|
-
options: anchorPositionOptions,
|
|
177
|
-
description:
|
|
178
|
-
'Position of Menu. It can be any one value from the dropdown',
|
|
179
|
-
control: {
|
|
180
|
-
type: 'select',
|
|
181
|
-
},
|
|
182
|
-
table: {
|
|
183
|
-
type: {summary: 'enum'},
|
|
184
|
-
defaultValue: {summary: 'bottom-start'},
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
classNames: {
|
|
188
|
-
description: 'External classNames to be applied',
|
|
189
|
-
control: {
|
|
190
|
-
type: 'object',
|
|
191
|
-
},
|
|
192
|
-
table: {
|
|
193
|
-
type: {
|
|
194
|
-
summary:
|
|
195
|
-
'{wrapper?: string, baseButtonWrapper?: string, baseButtonIcon?: string, optionsButtonWrapper?: string, optionsButtonIcon?: string, dropdownContainer?: string,}',
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
menuClassNames: {
|
|
200
|
-
description:
|
|
201
|
-
'External classnames to be applied to the menu. Wrapper gets applied to Menu wrapper and option gets applied to each option in the menu.',
|
|
202
|
-
control: {
|
|
203
|
-
type: 'object',
|
|
204
|
-
},
|
|
205
|
-
table: {
|
|
206
|
-
type: {
|
|
207
|
-
summary:
|
|
208
|
-
'{wrapper?: string, option?: string, groupTitle?: string, optionTextContainer?: string, optionTextLabel?: string}',
|
|
209
|
-
},
|
|
210
|
-
},
|
|
211
|
-
},
|
|
212
|
-
tooltip: {
|
|
213
|
-
control: {
|
|
214
|
-
type: 'object',
|
|
215
|
-
},
|
|
216
|
-
description:
|
|
217
|
-
'Field to set the **Tooltip** for Base Button and Options Button',
|
|
218
|
-
table: {
|
|
219
|
-
type: {summary: 'OptionButtonTooltipProps'},
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
options: {
|
|
223
|
-
description: 'Options to be displayed in buttonOptionButton',
|
|
224
|
-
control: {
|
|
225
|
-
type: 'object',
|
|
226
|
-
},
|
|
227
|
-
table: {
|
|
228
|
-
type: {summary: 'Array<MenuOption>'},
|
|
229
|
-
},
|
|
230
|
-
},
|
|
231
|
-
optionsVariant: {
|
|
232
|
-
description: 'Menu supports multiple options variant',
|
|
233
|
-
control: {
|
|
234
|
-
type: 'select',
|
|
235
|
-
},
|
|
236
|
-
options: ['checkbox', 'radio', 'normal'],
|
|
237
|
-
table: {
|
|
238
|
-
type: {summary: 'enum'},
|
|
239
|
-
defaultValue: {summary: 'normal'},
|
|
240
|
-
},
|
|
241
|
-
},
|
|
242
|
-
allowSearch: {
|
|
243
|
-
description: `if **true**, the component would show a search input on top of menu.
|
|
244
|
-
This is a simple **static search**
|
|
245
|
-
which filter options by **matching search text to option label**`,
|
|
246
|
-
control: {
|
|
247
|
-
type: 'boolean',
|
|
248
|
-
},
|
|
249
|
-
table: {
|
|
250
|
-
type: {summary: 'boolean'},
|
|
251
|
-
defaultValue: {summary: false},
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
selectedKeys: {
|
|
255
|
-
description:
|
|
256
|
-
'Selected keys corresponding to options. These options are shown as selected in UI',
|
|
257
|
-
control: {
|
|
258
|
-
type: 'array',
|
|
259
|
-
},
|
|
260
|
-
table: {
|
|
261
|
-
type: {summary: 'Array<string>'},
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
resolveLabel: {
|
|
265
|
-
description:
|
|
266
|
-
'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',
|
|
267
|
-
table: {
|
|
268
|
-
type: {
|
|
269
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
resolveSecondaryLabel: {
|
|
274
|
-
description:
|
|
275
|
-
'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',
|
|
276
|
-
table: {
|
|
277
|
-
type: {
|
|
278
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
279
|
-
},
|
|
280
|
-
},
|
|
281
|
-
},
|
|
282
|
-
menuVirtualization: {
|
|
283
|
-
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.`,
|
|
284
|
-
control: {
|
|
285
|
-
type: 'object',
|
|
286
|
-
},
|
|
287
|
-
table: {
|
|
288
|
-
type: {
|
|
289
|
-
summary:
|
|
290
|
-
'{enable: boolean, menuHeight?: number, itemHeight?: number}',
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
header: {
|
|
295
|
-
description: 'Custom Header For the Menu',
|
|
296
|
-
table: {
|
|
297
|
-
type: {
|
|
298
|
-
summary: 'React.ReactNode',
|
|
299
|
-
},
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
footer: {
|
|
303
|
-
description: 'Custom Header For the Menu',
|
|
304
|
-
table: {
|
|
305
|
-
type: {
|
|
306
|
-
summary: 'React.ReactNode',
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
clickAwayRef: {
|
|
311
|
-
type: {optional: true},
|
|
312
|
-
description: 'ref that contains the functions to open or close the child',
|
|
313
|
-
table: {
|
|
314
|
-
type: {
|
|
315
|
-
summary: 'ClickAwayRefType',
|
|
316
|
-
},
|
|
317
|
-
},
|
|
318
|
-
},
|
|
319
|
-
showLabelTooltip: {
|
|
320
|
-
description: 'Show Tooltip on the label of the menu option if truncated',
|
|
321
|
-
control: {
|
|
322
|
-
type: 'object',
|
|
323
|
-
},
|
|
324
|
-
table: {
|
|
325
|
-
type: {summary: 'MenuLabelTooltip'},
|
|
326
|
-
},
|
|
327
|
-
},
|
|
328
|
-
allowWrap: {
|
|
329
|
-
description:
|
|
330
|
-
'Allows the label to wrap up to 3 lines. If truncated, a tooltip will display up to 10 lines.',
|
|
331
|
-
control: {
|
|
332
|
-
type: 'boolean',
|
|
333
|
-
},
|
|
334
|
-
table: {
|
|
335
|
-
type: {summary: 'boolean'},
|
|
336
|
-
defaultValue: {summary: false},
|
|
337
|
-
},
|
|
338
|
-
},
|
|
339
|
-
},
|
|
340
|
-
parameters: {
|
|
341
|
-
docs: {
|
|
342
|
-
subtitle: 'Generates a OptionButton component',
|
|
343
|
-
description: {
|
|
344
|
-
component: `
|
|
345
|
-
\`\`\`js
|
|
346
|
-
import { SimpleOptionButton } from "@spaced-out/ui-design-system/lib/components/OptionButton";
|
|
347
|
-
\`\`\`
|
|
348
|
-
Simple Option Button allow users to take the main action, and also provides with multiple options related to the main action.
|
|
349
|
-
SimpleOptionButton comes with multiple variants and has various states(hover, focus, etc). There are two parts of SimpleOptionButton,
|
|
350
|
-
left button to perform main action, right button to select any further options related to main action.
|
|
351
|
-
|
|
352
|
-
**Note: ** Always use \`ariaLabel\` with Icon only option button to avoid accessibility violation
|
|
353
|
-
|
|
354
|
-
- **SimpleOptionButton** serially spreads out BaseMenuProps, meaning it would accept options as a prop instead of whole Menu.
|
|
355
|
-
- **SimpleOptionButton** would have implicit label selection behavior built in, meaning if you select an option the
|
|
356
|
-
label would get auto populated for the component itself.
|
|
357
|
-
- The component maintains an internal state for selections. You can always override it with explicit **selectedKeys**
|
|
358
|
-
prop which changes on **onOptionSelect** callback.
|
|
359
|
-
- You can always get the most recent instance of selected options from ref by using \`ref.current?.selectedKeys\`. This might be useful when you have
|
|
360
|
-
options which are multi-select.
|
|
361
|
-
- The component also supports custom **header** as \`React Component\` and this is then passed in
|
|
362
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component.
|
|
363
|
-
- The component also supports custom **footer** as \`React Component\` and this is then passed in
|
|
364
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component. This might be useful when you need
|
|
365
|
-
to save some state in the parent component.
|
|
366
|
-
- You can always force Open the options instance from ref by using \`clickAwayRef.current?.forceOpen\`. This might be useful when want to force Open as per you needs.
|
|
367
|
-
- You can always force Close the options instance from ref by using \`clickAwayRef.current?.forceClose\`. This might be useful when want to force Close as per you needs.
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
`,
|
|
371
|
-
},
|
|
372
|
-
},
|
|
373
|
-
storySource: {
|
|
374
|
-
componentPath: '/src/components/OptionButton/OptionButton.jsx',
|
|
375
|
-
},
|
|
376
|
-
},
|
|
377
|
-
};
|
|
378
|
-
|
|
379
|
-
const options: MenuOption[] = [
|
|
380
|
-
{
|
|
381
|
-
key: '1',
|
|
382
|
-
label: 'Option one',
|
|
383
|
-
iconLeft: 'coffee',
|
|
384
|
-
},
|
|
385
|
-
{key: '2', label: 'Option two', iconLeft: 'user'},
|
|
386
|
-
{
|
|
387
|
-
key: '4',
|
|
388
|
-
label: 'Option three this is a very long option that would truncate',
|
|
389
|
-
iconLeft: 'face-party',
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
key: '5',
|
|
393
|
-
label: 'Option five(disabled)',
|
|
394
|
-
disabled: true,
|
|
395
|
-
iconLeft: 'flag',
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
key: '6',
|
|
399
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
400
|
-
disabled: true,
|
|
401
|
-
iconLeft: 'camera',
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
key: '7',
|
|
405
|
-
label: 'Option seven',
|
|
406
|
-
iconLeft: 'coffee',
|
|
407
|
-
},
|
|
408
|
-
{key: '8', label: 'Option eight', iconLeft: 'user'},
|
|
409
|
-
{
|
|
410
|
-
key: '9',
|
|
411
|
-
label: 'Option nine',
|
|
412
|
-
iconLeft: 'face-party',
|
|
413
|
-
},
|
|
414
|
-
];
|
|
415
|
-
|
|
416
|
-
const textOnlyButtonProps: ButtonProps = {
|
|
417
|
-
children: 'Button Text',
|
|
418
|
-
};
|
|
419
|
-
|
|
420
|
-
const commonMenuProps = {
|
|
421
|
-
options,
|
|
422
|
-
size: 'small',
|
|
423
|
-
isFluid: false,
|
|
424
|
-
} as const;
|
|
425
|
-
|
|
426
|
-
export const _TextOnly = (args: SimpleOptionButtonProps) => {
|
|
427
|
-
const [selectedKeys, setSelectedKeys] = React.useState([]);
|
|
428
|
-
|
|
429
|
-
return (
|
|
430
|
-
<div className={css.optionBtnWrapper}>
|
|
431
|
-
<SimpleOptionButton
|
|
432
|
-
{...args}
|
|
433
|
-
selectedKeys={selectedKeys}
|
|
434
|
-
onOptionSelect={() => setSelectedKeys([])}
|
|
435
|
-
/>
|
|
436
|
-
</div>
|
|
437
|
-
);
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
_TextOnly.args = {
|
|
441
|
-
...textOnlyButtonProps,
|
|
442
|
-
...commonMenuProps,
|
|
443
|
-
};
|
|
444
|
-
|
|
445
|
-
export const _TextWithTooltip = (args: SimpleOptionButtonProps) => {
|
|
446
|
-
const [selectedKeys, setSelectedKeys] = React.useState([]);
|
|
447
|
-
|
|
448
|
-
return (
|
|
449
|
-
<div className={css.optionBtnWrapper}>
|
|
450
|
-
<SimpleOptionButton
|
|
451
|
-
{...args}
|
|
452
|
-
selectedKeys={selectedKeys}
|
|
453
|
-
onOptionSelect={() => setSelectedKeys([])}
|
|
454
|
-
/>
|
|
455
|
-
</div>
|
|
456
|
-
);
|
|
457
|
-
};
|
|
458
|
-
|
|
459
|
-
_TextWithTooltip.args = {
|
|
460
|
-
...textOnlyButtonProps,
|
|
461
|
-
...commonMenuProps,
|
|
462
|
-
showLabelTooltip: {maxLines: 2},
|
|
463
|
-
};
|
|
464
|
-
|
|
465
|
-
export const _WithTooltip = (args: SimpleOptionButtonProps) => (<div className={css.optionBtnWrapper}>
|
|
466
|
-
<SimpleOptionButton {...args} />
|
|
467
|
-
</div>);
|
|
468
|
-
|
|
469
|
-
_WithTooltip.args = {
|
|
470
|
-
...textOnlyButtonProps,
|
|
471
|
-
...commonMenuProps,
|
|
472
|
-
tooltip: {
|
|
473
|
-
baseButton: {
|
|
474
|
-
body: 'Send now',
|
|
475
|
-
placement: 'top-start',
|
|
476
|
-
},
|
|
477
|
-
optionsButton: {
|
|
478
|
-
body: 'Schedule for later',
|
|
479
|
-
placement: 'top-end',
|
|
480
|
-
},
|
|
481
|
-
},
|
|
482
|
-
};
|
|
483
|
-
|
|
484
|
-
export const _WithHeaderAndFooter = (args: SimpleOptionButtonProps) => {
|
|
485
|
-
const clickAwayRef = React.useRef(null);
|
|
486
|
-
const [selectedKeys, setSelectedKeys] = React.useState([]);
|
|
487
|
-
|
|
488
|
-
const handleOptionSelect = (key: string) => {
|
|
489
|
-
// @ts-ignore - TS2345 - Argument of type 'string' is not assignable to parameter of type 'never'.
|
|
490
|
-
if (selectedKeys.includes(key)) {
|
|
491
|
-
setSelectedKeys((currentKeys) =>
|
|
492
|
-
currentKeys.filter((currKey) => currKey !== key),
|
|
493
|
-
);
|
|
494
|
-
} else {
|
|
495
|
-
// @ts-ignore - TS2345 - Argument of type '(currentKeys: never[]) => string[]' is not assignable to parameter of type 'SetStateAction<never[]>'.
|
|
496
|
-
setSelectedKeys((currentKeys) => [...currentKeys, key]);
|
|
497
|
-
}
|
|
498
|
-
};
|
|
499
|
-
|
|
500
|
-
const onSave = () => {
|
|
501
|
-
if (clickAwayRef.current) {
|
|
502
|
-
// @ts-ignore - TS2339 - Property 'forceClose' does not exist on type 'never'.
|
|
503
|
-
clickAwayRef.current.forceClose();
|
|
504
|
-
}
|
|
505
|
-
};
|
|
506
|
-
|
|
507
|
-
return (
|
|
508
|
-
<div className={css.optionBtnWrapper}>
|
|
509
|
-
<SimpleOptionButton
|
|
510
|
-
{...args}
|
|
511
|
-
selectedKeys={selectedKeys}
|
|
512
|
-
onOptionSelect={(option) => handleOptionSelect(option.key)}
|
|
513
|
-
header={<MenuHeader />}
|
|
514
|
-
footer={<MenuFooter onSave={onSave} />}
|
|
515
|
-
clickAwayRef={clickAwayRef}
|
|
516
|
-
/>
|
|
517
|
-
</div>
|
|
518
|
-
);
|
|
519
|
-
};
|
|
520
|
-
|
|
521
|
-
_WithHeaderAndFooter.args = {
|
|
522
|
-
...textOnlyButtonProps,
|
|
523
|
-
...commonMenuProps,
|
|
524
|
-
optionsVariant: 'checkbox',
|
|
525
|
-
};
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
import type {MenuClassNames, MenuLabelTooltip} from '../../types/menu';
|
|
6
|
-
import type {ClickAwayRefType} from '../../utils/click-away';
|
|
7
|
-
import {getSelectedKeysFromSelectedOption} from '../../utils/menu';
|
|
8
|
-
import type {ButtonProps} from '../Button';
|
|
9
|
-
import type {AnchorType} from '../ButtonDropdown';
|
|
10
|
-
import type {MenuOption, MenuOptionsVariant, Virtualization} from '../Menu';
|
|
11
|
-
|
|
12
|
-
import type {OptionButtonTooltipProps} from './OptionButton';
|
|
13
|
-
import {OptionButton} from './OptionButton';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
type ClassNames = Readonly<{
|
|
17
|
-
wrapper?: string;
|
|
18
|
-
baseButtonWrapper?: string;
|
|
19
|
-
baseButtonIcon?: string;
|
|
20
|
-
optionsButtonWrapper?: string;
|
|
21
|
-
optionsButtonIcon?: string;
|
|
22
|
-
dropdownContainer?: string;
|
|
23
|
-
}>;
|
|
24
|
-
|
|
25
|
-
export type SimpleOptionButtonRef = {
|
|
26
|
-
selectedKeys?: Array<string>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export type SimpleOptionButtonProps = (// Input props
|
|
30
|
-
(ButtonProps) & {
|
|
31
|
-
classNames?: ClassNames;
|
|
32
|
-
// @ts-ignore - TS2300 - Duplicate identifier 'tooltip'.
|
|
33
|
-
tooltip?: OptionButtonTooltipProps;
|
|
34
|
-
anchorPosition?: AnchorType;
|
|
35
|
-
// @ts-ignore - TS2300 - Duplicate identifier 'tooltip'.
|
|
36
|
-
tooltip?: OptionButtonTooltipProps;
|
|
37
|
-
menuSize?: 'small' | 'medium';
|
|
38
|
-
// Menu props
|
|
39
|
-
options?: Array<MenuOption>;
|
|
40
|
-
optionsVariant?: MenuOptionsVariant;
|
|
41
|
-
allowSearch?: boolean;
|
|
42
|
-
selectedKeys?: Array<string>;
|
|
43
|
-
menuVirtualization?: Virtualization;
|
|
44
|
-
header?: React.ReactNode;
|
|
45
|
-
footer?: React.ReactNode;
|
|
46
|
-
menuClassNames?: MenuClassNames;
|
|
47
|
-
showLabelTooltip?: MenuLabelTooltip;
|
|
48
|
-
allowWrap?: boolean;
|
|
49
|
-
// events
|
|
50
|
-
onOptionSelect?: (
|
|
51
|
-
option: MenuOption,
|
|
52
|
-
arg2?: React.SyntheticEvent<HTMLElement> | null | undefined,
|
|
53
|
-
) => unknown;
|
|
54
|
-
onButtonClick?: ((arg1: React.SyntheticEvent<HTMLElement>) => unknown) | null | undefined;
|
|
55
|
-
onMenuOpen?: () => unknown;
|
|
56
|
-
onMenuClose?: () => unknown;
|
|
57
|
-
// Resolvers
|
|
58
|
-
resolveLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
59
|
-
resolveSecondaryLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
60
|
-
clickAwayRef?: ClickAwayRefType;
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
const SimpleOptionButtonBase = (props: SimpleOptionButtonProps & Omit<Omit<Flow.ComponentProps<typeof OptionButton>, 'tooltip' | 'onButtonClick' | 'anchorPosition' | 'classNames' | 'size' | 'onOptionSelect' | 'onMenuOpen' | 'onMenuClose' | 'clickAwayRef' | 'menu'>, keyof SimpleOptionButtonProps>, ref: ((arg1: null | SimpleOptionButtonRef) => unknown) | {
|
|
64
|
-
current: null | SimpleOptionButtonRef;
|
|
65
|
-
}) => {
|
|
66
|
-
const {
|
|
67
|
-
size = 'small',
|
|
68
|
-
classNames,
|
|
69
|
-
tooltip,
|
|
70
|
-
anchorPosition,
|
|
71
|
-
options,
|
|
72
|
-
optionsVariant,
|
|
73
|
-
allowSearch,
|
|
74
|
-
selectedKeys,
|
|
75
|
-
onOptionSelect,
|
|
76
|
-
onButtonClick,
|
|
77
|
-
onMenuOpen,
|
|
78
|
-
onMenuClose,
|
|
79
|
-
resolveLabel,
|
|
80
|
-
resolveSecondaryLabel,
|
|
81
|
-
children,
|
|
82
|
-
menuSize = 'small',
|
|
83
|
-
menuVirtualization,
|
|
84
|
-
header,
|
|
85
|
-
footer,
|
|
86
|
-
menuClassNames,
|
|
87
|
-
showLabelTooltip,
|
|
88
|
-
clickAwayRef,
|
|
89
|
-
allowWrap = false,
|
|
90
|
-
...buttonProps
|
|
91
|
-
} = props;
|
|
92
|
-
|
|
93
|
-
const [optionButtonSelectedKeys, setOptionButtonSelectedKeys] =
|
|
94
|
-
React.useState(selectedKeys);
|
|
95
|
-
|
|
96
|
-
React.useEffect(() => {
|
|
97
|
-
setOptionButtonSelectedKeys(selectedKeys);
|
|
98
|
-
}, [selectedKeys]);
|
|
99
|
-
|
|
100
|
-
const handleOptionChange = (selectedOption: MenuOption, e: React.SyntheticEvent<HTMLElement> | null | undefined) => {
|
|
101
|
-
e?.stopPropagation();
|
|
102
|
-
let newSelectedKeys = [selectedOption.key];
|
|
103
|
-
|
|
104
|
-
if (optionsVariant === 'checkbox') {
|
|
105
|
-
newSelectedKeys = getSelectedKeysFromSelectedOption(
|
|
106
|
-
selectedOption,
|
|
107
|
-
optionButtonSelectedKeys,
|
|
108
|
-
);
|
|
109
|
-
} else {
|
|
110
|
-
newSelectedKeys = [selectedOption.key];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
setOptionButtonSelectedKeys(newSelectedKeys);
|
|
114
|
-
|
|
115
|
-
setTimeout(() => {
|
|
116
|
-
onOptionSelect?.(selectedOption, e);
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// @ts-ignore - TS2345 - Argument of type '{ current: SimpleOptionButtonRef | null; } | ((arg1: SimpleOptionButtonRef | null) => unknown)' is not assignable to parameter of type 'Ref<SimpleOptionButtonRef> | undefined'.
|
|
121
|
-
React.useImperativeHandle(ref, () => ({
|
|
122
|
-
selectedKeys: optionButtonSelectedKeys,
|
|
123
|
-
}));
|
|
124
|
-
|
|
125
|
-
return (
|
|
126
|
-
<OptionButton
|
|
127
|
-
{...buttonProps}
|
|
128
|
-
tooltip={tooltip}
|
|
129
|
-
onButtonClick={onButtonClick}
|
|
130
|
-
anchorPosition={anchorPosition}
|
|
131
|
-
classNames={classNames}
|
|
132
|
-
size={size}
|
|
133
|
-
onOptionSelect={handleOptionChange}
|
|
134
|
-
onMenuOpen={onMenuOpen}
|
|
135
|
-
onMenuClose={onMenuClose}
|
|
136
|
-
clickAwayRef={clickAwayRef}
|
|
137
|
-
menu={{
|
|
138
|
-
isFluid: false,
|
|
139
|
-
options,
|
|
140
|
-
selectedKeys: optionButtonSelectedKeys,
|
|
141
|
-
optionsVariant,
|
|
142
|
-
allowSearch,
|
|
143
|
-
resolveLabel,
|
|
144
|
-
resolveSecondaryLabel,
|
|
145
|
-
size: menuSize,
|
|
146
|
-
virtualization: menuVirtualization,
|
|
147
|
-
header,
|
|
148
|
-
footer,
|
|
149
|
-
classNames: menuClassNames,
|
|
150
|
-
showLabelTooltip,
|
|
151
|
-
allowWrap,
|
|
152
|
-
}}
|
|
153
|
-
>
|
|
154
|
-
{children}
|
|
155
|
-
</OptionButton>
|
|
156
|
-
);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
// @ts-ignore - TS2345 - Argument of type '(props: SimpleOptionButtonProps & Omit<Omit<Flow.ComponentProps<typeof OptionButton>, 'tooltip' | 'onButtonClick' | 'anchorPosition' | 'classNames' | 'size' | 'onOptionSelect' | 'onMenuOpen' | 'onMenuClose' | 'clickAwayRef' | 'menu'>, keyof SimpleOptionButtonProps>, ref: { current: null | SimpleOptionButtonRef; } | ...' is not assignable to parameter of type 'ForwardRefRenderFunction<SimpleOptionButtonProps, SimpleOptionButtonRef>'.
|
|
160
|
-
export const SimpleOptionButton: Flow.AbstractComponent<SimpleOptionButtonProps, SimpleOptionButtonRef> = React.forwardRef<SimpleOptionButtonProps, SimpleOptionButtonRef>(SimpleOptionButtonBase);
|