@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,677 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
getButtonLabelFromSelectedKeys,
|
|
5
|
-
getSelectedKeysFromSelectedOption,
|
|
6
|
-
} from '../../utils/menu';
|
|
7
|
-
import type {ButtonProps} from '../Button';
|
|
8
|
-
import {BUTTON_ACTION_TYPE} from '../Button';
|
|
9
|
-
import {Icon} from '../Icon';
|
|
10
|
-
import type {MenuGroupTitleOption, MenuOption, MenuProps} from '../Menu';
|
|
11
|
-
import {MenuFooter, MenuHeader} from '../Menu/Menu.stories';
|
|
12
|
-
import {FormLabelSmall} from '../Text';
|
|
13
|
-
import {ELEVATION_TYPES, Tooltip} from '../Tooltip';
|
|
14
|
-
|
|
15
|
-
import type {ButtonDropdownProps} from './ButtonDropdown';
|
|
16
|
-
import {
|
|
17
|
-
ANCHOR_POSITION_TYPE,
|
|
18
|
-
ButtonDropdown,
|
|
19
|
-
STRATEGY_TYPE,
|
|
20
|
-
} from './ButtonDropdown';
|
|
21
|
-
|
|
22
|
-
import css from './ButtonDropdown.stories.module.css';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const anchorPositionOptions: Array<unknown> = [
|
|
26
|
-
...Object.values(ANCHOR_POSITION_TYPE),
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
const positionStrategyOptions: Array<unknown> = [...Object.values(STRATEGY_TYPE)];
|
|
30
|
-
|
|
31
|
-
const actionTypeOptions: Array<unknown> = [...Object.values(BUTTON_ACTION_TYPE)];
|
|
32
|
-
|
|
33
|
-
const elevationOptions: Array<unknown> = [...Object.values(ELEVATION_TYPES)];
|
|
34
|
-
|
|
35
|
-
const textOptions: MenuOption[] = [
|
|
36
|
-
{key: '1', label: 'Option one'},
|
|
37
|
-
{key: '2', label: 'Option two'},
|
|
38
|
-
{key: '3', label: 'Option three'},
|
|
39
|
-
{
|
|
40
|
-
key: '4',
|
|
41
|
-
label:
|
|
42
|
-
'Option three this is a very long option that would truncate, and this is even longer text to further test the truncation behavior in the dropdown component, ensuring that extremely long labels are handled gracefully and do not break the layout or overflow in an undesirable way, especially when the text is much longer than what would typically be expected in a dropdown option.',
|
|
43
|
-
},
|
|
44
|
-
{key: '5', label: 'Option five(disabled)', disabled: true},
|
|
45
|
-
{
|
|
46
|
-
key: '6',
|
|
47
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
48
|
-
disabled: true,
|
|
49
|
-
},
|
|
50
|
-
{key: '7', label: 'Option Seven'},
|
|
51
|
-
{key: '8', label: 'Option Eight'},
|
|
52
|
-
{key: '9', label: 'Option Night'},
|
|
53
|
-
];
|
|
54
|
-
|
|
55
|
-
const groupTitleComponentMenuOptions: Array<MenuGroupTitleOption> = [
|
|
56
|
-
{
|
|
57
|
-
groupTitle: (
|
|
58
|
-
<div className={css.titleWrapper}>
|
|
59
|
-
<FormLabelSmall color="tertiary">Fast Food</FormLabelSmall>
|
|
60
|
-
<div className={css.infoContainer}>
|
|
61
|
-
<Tooltip body="Hello!" elevation="menu">
|
|
62
|
-
<Icon name="circle-info" size="small" color="tertiary" />
|
|
63
|
-
</Tooltip>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
),
|
|
67
|
-
options: [
|
|
68
|
-
{
|
|
69
|
-
key: '1',
|
|
70
|
-
iconLeft: 'burger',
|
|
71
|
-
label: 'Burger',
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
key: '2',
|
|
75
|
-
iconLeft: 'pizza',
|
|
76
|
-
label: 'Pizza',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
key: '3',
|
|
80
|
-
iconLeft: 'french-fries',
|
|
81
|
-
label: 'Fries',
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
groupTitle: (
|
|
87
|
-
<div className={css.titleWrapper}>
|
|
88
|
-
<FormLabelSmall color="tertiary">Fruits</FormLabelSmall>
|
|
89
|
-
<div className={css.infoContainer}>
|
|
90
|
-
<Tooltip body="Hello!" elevation="menu">
|
|
91
|
-
<Icon name="circle-info" size="small" color="tertiary" />
|
|
92
|
-
</Tooltip>
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
),
|
|
96
|
-
options: [
|
|
97
|
-
{
|
|
98
|
-
key: '7',
|
|
99
|
-
iconLeft: 'banana',
|
|
100
|
-
label: 'Banana',
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
key: '8',
|
|
104
|
-
iconLeft: 'pear',
|
|
105
|
-
label: 'Pear',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
key: '9',
|
|
109
|
-
iconLeft: 'lemon',
|
|
110
|
-
label: 'Lemon',
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
|
-
},
|
|
114
|
-
];
|
|
115
|
-
|
|
116
|
-
const menuProps: MenuProps = {
|
|
117
|
-
isFluid: false,
|
|
118
|
-
menuDisabled: false,
|
|
119
|
-
size: 'medium',
|
|
120
|
-
options: textOptions,
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
const textOnlyButtonProps: ButtonProps = {
|
|
124
|
-
children: 'Button Text',
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
const textAndIconButtonProps: ButtonProps = {
|
|
128
|
-
children: 'Long Button Text',
|
|
129
|
-
iconLeftName: 'face-party',
|
|
130
|
-
iconRightName: 'face-party',
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const iconOnlyButtonProps: ButtonProps = {
|
|
134
|
-
iconLeftName: 'face-party',
|
|
135
|
-
ariaLabel: 'Icon Button Dropdown',
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
export default {
|
|
139
|
-
tags: ['autodocs'],
|
|
140
|
-
title: 'Components/Button Dropdown/Generic Button Dropdown',
|
|
141
|
-
component: ButtonDropdown,
|
|
142
|
-
argTypes: {
|
|
143
|
-
onClick: {
|
|
144
|
-
description:
|
|
145
|
-
'**onClick** handler that is applied to the root `<button>` element',
|
|
146
|
-
action: 'clicked',
|
|
147
|
-
table: {
|
|
148
|
-
type: {summary: '(SyntheticEvent<HTMLElement>) => mixed'},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
classNames: {
|
|
152
|
-
description: 'External classNames to be applied',
|
|
153
|
-
control: {
|
|
154
|
-
type: 'object',
|
|
155
|
-
},
|
|
156
|
-
table: {
|
|
157
|
-
type: {
|
|
158
|
-
summary:
|
|
159
|
-
'{buttonWrapper?: string, dropdownContainer?: string, buttonIcon?: string}',
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
tooltip: {
|
|
164
|
-
control: {
|
|
165
|
-
type: 'object',
|
|
166
|
-
},
|
|
167
|
-
description: 'Field to set the **Tooltip** for Button Dropdown',
|
|
168
|
-
table: {
|
|
169
|
-
type: {summary: 'BaseTooltipProps'},
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
menu: {
|
|
173
|
-
description: 'Menu props to use',
|
|
174
|
-
control: {
|
|
175
|
-
type: 'object',
|
|
176
|
-
},
|
|
177
|
-
table: {
|
|
178
|
-
type: {summary: 'MenuProps'},
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
elevation: {
|
|
182
|
-
description:
|
|
183
|
-
'Elevation level for the dropdown menu. This controls the z-index stacking order. Default is set to "modal" elevation. Use higher elevation levels when rendering the dropdown above other elevated elements like Modal, Toast, etc.',
|
|
184
|
-
control: {
|
|
185
|
-
type: 'select',
|
|
186
|
-
},
|
|
187
|
-
options: elevationOptions,
|
|
188
|
-
table: {
|
|
189
|
-
type: {summary: 'enum'},
|
|
190
|
-
defaultValue: {summary: 'modal'},
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
iconLeftName: {
|
|
194
|
-
description:
|
|
195
|
-
'Left icon to be applied to the button, it internally uses the `Icon` component to render icons',
|
|
196
|
-
control: {
|
|
197
|
-
type: 'text',
|
|
198
|
-
},
|
|
199
|
-
table: {
|
|
200
|
-
type: {summary: 'string'},
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
iconLeftType: {
|
|
204
|
-
description:
|
|
205
|
-
'Type of Left Icon. Type represents 4 unique icon styles :- Solid, Regular, Duotone and Brands',
|
|
206
|
-
options: ['regular', 'solid', 'duotone', 'brands'],
|
|
207
|
-
control: {type: 'select'},
|
|
208
|
-
table: {
|
|
209
|
-
type: {summary: 'string'},
|
|
210
|
-
defaultValue: {summary: 'regular'},
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
iconRightName: {
|
|
214
|
-
description:
|
|
215
|
-
'Right icon to be applied to the button, it internally uses the `Icon` component to render icons',
|
|
216
|
-
control: {
|
|
217
|
-
type: 'text',
|
|
218
|
-
},
|
|
219
|
-
table: {
|
|
220
|
-
type: {summary: 'string'},
|
|
221
|
-
},
|
|
222
|
-
},
|
|
223
|
-
iconRightType: {
|
|
224
|
-
description:
|
|
225
|
-
'Type of Right Icon. Type represents 4 unique icon styles :- Solid, Regular, Duotone and Brands',
|
|
226
|
-
options: ['regular', 'solid', 'duotone', 'brands'],
|
|
227
|
-
control: {type: 'select'},
|
|
228
|
-
table: {
|
|
229
|
-
type: {summary: 'string'},
|
|
230
|
-
defaultValue: {summary: 'regular'},
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
type: {
|
|
234
|
-
options: ['primary', 'secondary', 'tertiary', 'ghost', 'danger'],
|
|
235
|
-
description: 'Type of Button. Supported types are listed on the dropdown',
|
|
236
|
-
control: {
|
|
237
|
-
type: 'select',
|
|
238
|
-
},
|
|
239
|
-
table: {
|
|
240
|
-
type: {summary: 'enum'},
|
|
241
|
-
defaultValue: {summary: 'primary'},
|
|
242
|
-
},
|
|
243
|
-
},
|
|
244
|
-
actionType: {
|
|
245
|
-
options: actionTypeOptions,
|
|
246
|
-
description:
|
|
247
|
-
'Action type of Button. Supported types are listed on the dropdown',
|
|
248
|
-
control: {
|
|
249
|
-
type: 'select',
|
|
250
|
-
},
|
|
251
|
-
table: {
|
|
252
|
-
type: {summary: 'enum'},
|
|
253
|
-
defaultValue: {summary: 'submit'},
|
|
254
|
-
},
|
|
255
|
-
},
|
|
256
|
-
size: {
|
|
257
|
-
description:
|
|
258
|
-
'Button supports only two size variants namely small and medium. `small` < `medium`',
|
|
259
|
-
control: {
|
|
260
|
-
type: 'radio',
|
|
261
|
-
},
|
|
262
|
-
options: ['small', 'medium'],
|
|
263
|
-
table: {
|
|
264
|
-
type: {summary: 'enum'},
|
|
265
|
-
defaultValue: {summary: 'medium'},
|
|
266
|
-
},
|
|
267
|
-
},
|
|
268
|
-
disabled: {
|
|
269
|
-
description: 'If **true**, the component is disabled',
|
|
270
|
-
control: {
|
|
271
|
-
type: 'boolean',
|
|
272
|
-
},
|
|
273
|
-
table: {
|
|
274
|
-
type: {summary: 'boolean'},
|
|
275
|
-
defaultValue: {summary: 'false'},
|
|
276
|
-
},
|
|
277
|
-
},
|
|
278
|
-
isLoading: {
|
|
279
|
-
description:
|
|
280
|
-
'If **true**, the component would show a circular loader and also preserve the current size of button so that there are no jumps',
|
|
281
|
-
control: {
|
|
282
|
-
type: 'boolean',
|
|
283
|
-
},
|
|
284
|
-
table: {
|
|
285
|
-
type: {summary: 'boolean'},
|
|
286
|
-
defaultValue: {summary: 'false'},
|
|
287
|
-
},
|
|
288
|
-
},
|
|
289
|
-
isFluid: {
|
|
290
|
-
description:
|
|
291
|
-
'If **true**, the component would take the container\'s `width`',
|
|
292
|
-
control: {
|
|
293
|
-
type: 'boolean',
|
|
294
|
-
},
|
|
295
|
-
table: {
|
|
296
|
-
type: {summary: 'boolean'},
|
|
297
|
-
defaultValue: {summary: 'false'},
|
|
298
|
-
},
|
|
299
|
-
},
|
|
300
|
-
children: {
|
|
301
|
-
description: 'The content of the Button',
|
|
302
|
-
table: {
|
|
303
|
-
type: {summary: 'React.Component | string'},
|
|
304
|
-
},
|
|
305
|
-
},
|
|
306
|
-
ariaLabel: {
|
|
307
|
-
control: {
|
|
308
|
-
type: 'text',
|
|
309
|
-
},
|
|
310
|
-
description:
|
|
311
|
-
'**aria-label** should be used where Button do not have have discernible text. This would avoid accessibility violations in screen readers',
|
|
312
|
-
table: {
|
|
313
|
-
type: {summary: 'string'},
|
|
314
|
-
},
|
|
315
|
-
},
|
|
316
|
-
onOptionSelect: {
|
|
317
|
-
description:
|
|
318
|
-
'**onOptionSelect** handler is triggered when there is a change in selected option',
|
|
319
|
-
action: 'clicked',
|
|
320
|
-
table: {
|
|
321
|
-
type: {
|
|
322
|
-
summary:
|
|
323
|
-
'(option: MenuOption, ?SyntheticEvent<HTMLElement>) => mixed',
|
|
324
|
-
},
|
|
325
|
-
},
|
|
326
|
-
},
|
|
327
|
-
onMenuOpen: {
|
|
328
|
-
description:
|
|
329
|
-
'**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.',
|
|
330
|
-
action: 'clicked',
|
|
331
|
-
table: {
|
|
332
|
-
type: {summary: '() => mixed'},
|
|
333
|
-
},
|
|
334
|
-
},
|
|
335
|
-
onMenuClose: {
|
|
336
|
-
description:
|
|
337
|
-
'**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.',
|
|
338
|
-
action: 'clicked',
|
|
339
|
-
table: {
|
|
340
|
-
type: {summary: '() => mixed'},
|
|
341
|
-
},
|
|
342
|
-
},
|
|
343
|
-
anchorPosition: {
|
|
344
|
-
options: anchorPositionOptions,
|
|
345
|
-
description:
|
|
346
|
-
'Position of Menu relative to its reference element. It can be any one value from the dropdown',
|
|
347
|
-
control: {
|
|
348
|
-
type: 'select',
|
|
349
|
-
},
|
|
350
|
-
table: {
|
|
351
|
-
type: {summary: 'enum'},
|
|
352
|
-
defaultValue: {summary: 'bottom-start'},
|
|
353
|
-
},
|
|
354
|
-
},
|
|
355
|
-
positionStrategy: {
|
|
356
|
-
options: positionStrategyOptions,
|
|
357
|
-
description:
|
|
358
|
-
'Position of Menu relative to either its nearest positioned ancestor (absolute) or its nearest containing block- usually the viewport (fixed). It can be any one value from the dropdown',
|
|
359
|
-
control: {
|
|
360
|
-
type: 'select',
|
|
361
|
-
},
|
|
362
|
-
table: {
|
|
363
|
-
type: {summary: 'enum'},
|
|
364
|
-
defaultValue: {summary: 'absolute'},
|
|
365
|
-
},
|
|
366
|
-
},
|
|
367
|
-
clickAwayRef: {
|
|
368
|
-
type: {optional: true},
|
|
369
|
-
description: 'ref that contains the functions to open or close the child',
|
|
370
|
-
table: {
|
|
371
|
-
type: {
|
|
372
|
-
summary: 'ClickAwayRefType',
|
|
373
|
-
},
|
|
374
|
-
},
|
|
375
|
-
},
|
|
376
|
-
},
|
|
377
|
-
parameters: {
|
|
378
|
-
docs: {
|
|
379
|
-
subtitle: 'Generates a ButtonDropdown component',
|
|
380
|
-
description: {
|
|
381
|
-
component: `
|
|
382
|
-
\`\`\`js
|
|
383
|
-
import { ButtonDropdown } from "@spaced-out/ui-design-system/lib/components/ButtonDropdown";
|
|
384
|
-
\`\`\`
|
|
385
|
-
Button Dropdown is a composite component that internally implements **<a href="../?path=/docs/components-menu--docs">Menu</a>** with
|
|
386
|
-
**<a href="../?path=/docs/components-button--docs">Button</a>** component. It also uses **Floating UI** to position the
|
|
387
|
-
menu component relative to empty space available, taking viewport and component position into account. This makes sure that menu is always visible
|
|
388
|
-
irrespective of the component positioning. The component has a callback to notify the parent on option selection. Button Dropdown is implemented inside a
|
|
389
|
-
\`ClickAway\` listener and thus Menu is closed automatically on outside click.
|
|
390
|
-
|
|
391
|
-
If you want to use Icon only button for button dropdown. Use IconLeftName and IconLeftType.
|
|
392
|
-
|
|
393
|
-
- Supports passing a \`clickAwayRef\` prop to the component.
|
|
394
|
-
- You can always force Open the instance from ref by using \`clickAwayRef.current?.forceOpen()\`. This might be useful when want to force Open as per you needs.
|
|
395
|
-
- You can always force Close the instance from ref by using \`clickAwayRef.current?.forceClose()\`. This might be useful when want to force Close as per you needs.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
**Note: ** Always use \`ariaLabel\` with Icon only button for accessibility
|
|
399
|
-
|
|
400
|
-
**Note: ** For checkbox type option set you can make use of \`getSelectedKeysFromSelectedOption\` and \`getButtonLabelFromSelectedKeys\` from \`utils/menu\`
|
|
401
|
-
to populate \`selectedKeys\` and \`buttonText\` respectively.
|
|
402
|
-
`,
|
|
403
|
-
},
|
|
404
|
-
},
|
|
405
|
-
storySource: {
|
|
406
|
-
componentPath: '/src/components/ButtonDropdown/ButtonDropdown.jsx',
|
|
407
|
-
},
|
|
408
|
-
},
|
|
409
|
-
};
|
|
410
|
-
|
|
411
|
-
export const _TextOnly = (args: ButtonDropdownProps) => (<div className={css.menuBtnWrapper}>
|
|
412
|
-
<ButtonDropdown {...args} />
|
|
413
|
-
</div>);
|
|
414
|
-
|
|
415
|
-
_TextOnly.args = {
|
|
416
|
-
...textOnlyButtonProps,
|
|
417
|
-
menu: menuProps,
|
|
418
|
-
size: 'medium',
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
export const _TextWithTooltip = (args: ButtonDropdownProps) => (<div className={css.menuBtnWrapper}>
|
|
422
|
-
<ButtonDropdown {...args} />
|
|
423
|
-
</div>);
|
|
424
|
-
|
|
425
|
-
_TextWithTooltip.args = {
|
|
426
|
-
...textOnlyButtonProps,
|
|
427
|
-
menu: {...menuProps, showLabelTooltip: {maxLines: 2}},
|
|
428
|
-
size: 'medium',
|
|
429
|
-
};
|
|
430
|
-
|
|
431
|
-
export const _WithSearch = (args: ButtonDropdownProps) => (<div className={css.menuBtnWrapper}>
|
|
432
|
-
<ButtonDropdown {...args} />
|
|
433
|
-
</div>);
|
|
434
|
-
|
|
435
|
-
_WithSearch.args = {
|
|
436
|
-
...textOnlyButtonProps,
|
|
437
|
-
menu: {...menuProps, allowSearch: true},
|
|
438
|
-
size: 'medium',
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
export const _TextAndIcon = (args: ButtonDropdownProps) => (<div className={css.menuBtnWrapper}>
|
|
442
|
-
<ButtonDropdown {...args} />
|
|
443
|
-
</div>);
|
|
444
|
-
|
|
445
|
-
_TextAndIcon.args = {
|
|
446
|
-
...textAndIconButtonProps,
|
|
447
|
-
menu: menuProps,
|
|
448
|
-
size: 'medium',
|
|
449
|
-
};
|
|
450
|
-
|
|
451
|
-
export const _IconOnly = (args: ButtonDropdownProps) => (<div className={css.menuBtnWrapper}>
|
|
452
|
-
<ButtonDropdown {...args} />
|
|
453
|
-
</div>);
|
|
454
|
-
|
|
455
|
-
_IconOnly.args = {
|
|
456
|
-
...iconOnlyButtonProps,
|
|
457
|
-
menu: menuProps,
|
|
458
|
-
size: 'medium',
|
|
459
|
-
tooltip: {body: 'face-party'},
|
|
460
|
-
};
|
|
461
|
-
|
|
462
|
-
export const _DynamicIcon = (args: ButtonDropdownProps) => {
|
|
463
|
-
const [iconName, setIconName] = React.useState('chevron-down');
|
|
464
|
-
return (
|
|
465
|
-
<div className={css.menuBtnWrapper}>
|
|
466
|
-
<ButtonDropdown
|
|
467
|
-
{...args}
|
|
468
|
-
iconLeftName={iconName}
|
|
469
|
-
onMenuOpen={() => setIconName('chevron-up')}
|
|
470
|
-
onMenuClose={() => setIconName('chevron-down')}
|
|
471
|
-
tooltip={{body: iconName}}
|
|
472
|
-
/>
|
|
473
|
-
</div>
|
|
474
|
-
);
|
|
475
|
-
};
|
|
476
|
-
|
|
477
|
-
_DynamicIcon.args = {
|
|
478
|
-
iconLeftName: 'chevron-down',
|
|
479
|
-
ariaLabel: 'Icon Button Dropdown',
|
|
480
|
-
menu: menuProps,
|
|
481
|
-
size: 'medium',
|
|
482
|
-
};
|
|
483
|
-
|
|
484
|
-
const complicatedMenuProps: MenuProps = {
|
|
485
|
-
isFluid: false,
|
|
486
|
-
menuDisabled: false,
|
|
487
|
-
size: 'medium',
|
|
488
|
-
groupTitleOptions: groupTitleComponentMenuOptions,
|
|
489
|
-
};
|
|
490
|
-
|
|
491
|
-
export const _TextAndDynamicIcon = (args: ButtonDropdownProps) => {
|
|
492
|
-
const [iconName, setIconName] = React.useState('chevron-down');
|
|
493
|
-
return (
|
|
494
|
-
<div className={css.menuBtnWrapper}>
|
|
495
|
-
<ButtonDropdown
|
|
496
|
-
{...args}
|
|
497
|
-
iconRightName={iconName}
|
|
498
|
-
onMenuOpen={() => setIconName('chevron-up')}
|
|
499
|
-
onMenuClose={() => setIconName('chevron-down')}
|
|
500
|
-
/>
|
|
501
|
-
</div>
|
|
502
|
-
);
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
_TextAndDynamicIcon.args = {
|
|
506
|
-
children: 'Long Button Text',
|
|
507
|
-
iconRightName: 'chevron-down',
|
|
508
|
-
iconRightType: 'regular',
|
|
509
|
-
menu: complicatedMenuProps,
|
|
510
|
-
size: 'medium',
|
|
511
|
-
type: 'ghost',
|
|
512
|
-
};
|
|
513
|
-
|
|
514
|
-
const checkboxMenuProps: MenuProps = {
|
|
515
|
-
options: textOptions,
|
|
516
|
-
optionsVariant: 'checkbox',
|
|
517
|
-
selectedKeys: ['4'],
|
|
518
|
-
isFluid: false,
|
|
519
|
-
};
|
|
520
|
-
|
|
521
|
-
export const _WithCheckboxMenu = (args: ButtonDropdownProps) => {
|
|
522
|
-
const [btnText, setBtnText] = React.useState('');
|
|
523
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
524
|
-
args.menu?.selectedKeys || [],
|
|
525
|
-
);
|
|
526
|
-
|
|
527
|
-
React.useEffect(() => {
|
|
528
|
-
setSelectedKeys(args.menu?.selectedKeys || []);
|
|
529
|
-
const newBtnText = getButtonLabelFromSelectedKeys(
|
|
530
|
-
args.menu?.selectedKeys,
|
|
531
|
-
args.children,
|
|
532
|
-
);
|
|
533
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
534
|
-
setBtnText(newBtnText);
|
|
535
|
-
}, [args.menu?.selectedKeys]);
|
|
536
|
-
|
|
537
|
-
const handleChange = (option: MenuOption) => {
|
|
538
|
-
const newSelectedKeys = getSelectedKeysFromSelectedOption(
|
|
539
|
-
option,
|
|
540
|
-
selectedKeys,
|
|
541
|
-
);
|
|
542
|
-
const newBtnText = getButtonLabelFromSelectedKeys(
|
|
543
|
-
newSelectedKeys,
|
|
544
|
-
args.children,
|
|
545
|
-
);
|
|
546
|
-
setSelectedKeys(newSelectedKeys);
|
|
547
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
548
|
-
setBtnText(newBtnText);
|
|
549
|
-
};
|
|
550
|
-
|
|
551
|
-
return (
|
|
552
|
-
<div className={css.menuBtnWrapper}>
|
|
553
|
-
<ButtonDropdown
|
|
554
|
-
{...args}
|
|
555
|
-
menu={{...args.menu, selectedKeys}}
|
|
556
|
-
onOptionSelect={handleChange}
|
|
557
|
-
>
|
|
558
|
-
{btnText}
|
|
559
|
-
</ButtonDropdown>
|
|
560
|
-
</div>
|
|
561
|
-
);
|
|
562
|
-
};
|
|
563
|
-
|
|
564
|
-
_WithCheckboxMenu.args = {
|
|
565
|
-
children: 'Long Button Text',
|
|
566
|
-
menu: checkboxMenuProps,
|
|
567
|
-
size: 'medium',
|
|
568
|
-
};
|
|
569
|
-
|
|
570
|
-
const radioMenuProps: MenuProps = {
|
|
571
|
-
options: textOptions,
|
|
572
|
-
optionsVariant: 'radio',
|
|
573
|
-
selectedKeys: ['4'],
|
|
574
|
-
isFluid: false,
|
|
575
|
-
};
|
|
576
|
-
|
|
577
|
-
export const _WithRadioMenu = (args: ButtonDropdownProps) => {
|
|
578
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
579
|
-
args.menu?.selectedKeys || [],
|
|
580
|
-
);
|
|
581
|
-
|
|
582
|
-
React.useEffect(() => {
|
|
583
|
-
setSelectedKeys(args.menu?.selectedKeys || []);
|
|
584
|
-
}, [args.menu?.selectedKeys]);
|
|
585
|
-
|
|
586
|
-
const handleChange = (option: MenuOption) => {
|
|
587
|
-
setSelectedKeys([option.key]);
|
|
588
|
-
};
|
|
589
|
-
|
|
590
|
-
return (
|
|
591
|
-
<div className={css.menuBtnWrapper}>
|
|
592
|
-
<ButtonDropdown
|
|
593
|
-
{...args}
|
|
594
|
-
menu={{...args.menu, selectedKeys}}
|
|
595
|
-
onOptionSelect={handleChange}
|
|
596
|
-
>
|
|
597
|
-
{args.children}
|
|
598
|
-
</ButtonDropdown>
|
|
599
|
-
</div>
|
|
600
|
-
);
|
|
601
|
-
};
|
|
602
|
-
|
|
603
|
-
_WithRadioMenu.args = {
|
|
604
|
-
children: 'Long Button Text',
|
|
605
|
-
menu: radioMenuProps,
|
|
606
|
-
size: 'medium',
|
|
607
|
-
};
|
|
608
|
-
export const _WithHeaderAndFooter = (args: ButtonDropdownProps) => (<WithHeaderAndFooter {...args} />);
|
|
609
|
-
|
|
610
|
-
export const WithHeaderAndFooter = (args: ButtonDropdownProps) => {
|
|
611
|
-
const clickAwayRef = React.useRef(null);
|
|
612
|
-
const [btnText, setBtnText] = React.useState('');
|
|
613
|
-
const [selectedKeys, setSelectedKeys] = React.useState(
|
|
614
|
-
args.menu?.selectedKeys || [],
|
|
615
|
-
);
|
|
616
|
-
|
|
617
|
-
React.useEffect(() => {
|
|
618
|
-
setSelectedKeys(args.menu?.selectedKeys || []);
|
|
619
|
-
const newBtnText = getButtonLabelFromSelectedKeys(
|
|
620
|
-
args.menu?.selectedKeys,
|
|
621
|
-
args.children,
|
|
622
|
-
);
|
|
623
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
624
|
-
setBtnText(newBtnText);
|
|
625
|
-
}, [args.menu?.selectedKeys]);
|
|
626
|
-
|
|
627
|
-
const handleChange = (option: MenuOption) => {
|
|
628
|
-
const newSelectedKeys = getSelectedKeysFromSelectedOption(
|
|
629
|
-
option,
|
|
630
|
-
selectedKeys,
|
|
631
|
-
);
|
|
632
|
-
const newBtnText = getButtonLabelFromSelectedKeys(
|
|
633
|
-
newSelectedKeys,
|
|
634
|
-
args.children,
|
|
635
|
-
);
|
|
636
|
-
setSelectedKeys(newSelectedKeys);
|
|
637
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
638
|
-
setBtnText(newBtnText);
|
|
639
|
-
};
|
|
640
|
-
|
|
641
|
-
const onSave = () => {
|
|
642
|
-
if (clickAwayRef.current) {
|
|
643
|
-
// @ts-ignore - TS2339 - Property 'forceClose' does not exist on type 'never'.
|
|
644
|
-
clickAwayRef.current.forceClose();
|
|
645
|
-
}
|
|
646
|
-
};
|
|
647
|
-
|
|
648
|
-
return (
|
|
649
|
-
<div className={css.menuBtnWrapper}>
|
|
650
|
-
<ButtonDropdown
|
|
651
|
-
{...args}
|
|
652
|
-
menu={{
|
|
653
|
-
...args.menu,
|
|
654
|
-
selectedKeys,
|
|
655
|
-
header: <MenuHeader />,
|
|
656
|
-
footer: <MenuFooter onSave={onSave} />,
|
|
657
|
-
}}
|
|
658
|
-
onOptionSelect={handleChange}
|
|
659
|
-
clickAwayRef={clickAwayRef}
|
|
660
|
-
>
|
|
661
|
-
{btnText}
|
|
662
|
-
</ButtonDropdown>
|
|
663
|
-
</div>
|
|
664
|
-
);
|
|
665
|
-
};
|
|
666
|
-
|
|
667
|
-
const menuPropsWithHeaderAndFooter: MenuProps = {
|
|
668
|
-
isFluid: false,
|
|
669
|
-
options: textOptions,
|
|
670
|
-
optionsVariant: 'checkbox',
|
|
671
|
-
};
|
|
672
|
-
|
|
673
|
-
_WithHeaderAndFooter.args = {
|
|
674
|
-
children: 'Long Button Text',
|
|
675
|
-
menu: menuPropsWithHeaderAndFooter,
|
|
676
|
-
size: 'medium',
|
|
677
|
-
};
|