@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,167 +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 {
|
|
8
|
-
getButtonLabelFromSelectedKeys,
|
|
9
|
-
getSelectedKeysFromSelectedOption,
|
|
10
|
-
} from '../../utils/menu';
|
|
11
|
-
import type {ButtonProps} from '../Button';
|
|
12
|
-
import type {MenuOption, MenuOptionsVariant, Virtualization} from '../Menu';
|
|
13
|
-
import type {BaseTooltipProps, ElevationType} from '../Tooltip';
|
|
14
|
-
|
|
15
|
-
import type {AnchorType} from './ButtonDropdown';
|
|
16
|
-
import {ButtonDropdown} from './ButtonDropdown';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
type ClassNames = Readonly<{
|
|
20
|
-
buttonWrapper?: string;
|
|
21
|
-
dropdownContainer?: string;
|
|
22
|
-
buttonIcon?: string;
|
|
23
|
-
}>;
|
|
24
|
-
|
|
25
|
-
export type SimpleButtonDropdownRef = {
|
|
26
|
-
selectedKeys?: Array<string>;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export type SimpleButtonDropdownProps = (// Input props
|
|
30
|
-
(ButtonProps) & {
|
|
31
|
-
elevation?: ElevationType;
|
|
32
|
-
classNames?: ClassNames;
|
|
33
|
-
anchorPosition?: AnchorType;
|
|
34
|
-
tooltip?: BaseTooltipProps;
|
|
35
|
-
// Menu props
|
|
36
|
-
options?: Array<MenuOption>;
|
|
37
|
-
optionsVariant?: MenuOptionsVariant;
|
|
38
|
-
allowSearch?: boolean;
|
|
39
|
-
selectedKeys?: Array<string>;
|
|
40
|
-
menuVirtualization?: Virtualization;
|
|
41
|
-
header?: React.ReactNode;
|
|
42
|
-
footer?: React.ReactNode;
|
|
43
|
-
menuClassNames?: MenuClassNames;
|
|
44
|
-
showLabelTooltip?: MenuLabelTooltip;
|
|
45
|
-
allowWrap?: boolean;
|
|
46
|
-
// events
|
|
47
|
-
onOptionSelect?: (
|
|
48
|
-
option: MenuOption,
|
|
49
|
-
arg2?: React.SyntheticEvent<HTMLElement> | null | undefined,
|
|
50
|
-
) => unknown;
|
|
51
|
-
onMenuOpen?: () => unknown;
|
|
52
|
-
onMenuClose?: () => unknown;
|
|
53
|
-
// Resolvers
|
|
54
|
-
resolveLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
55
|
-
resolveSecondaryLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
56
|
-
clickAwayRef?: ClickAwayRefType;
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
const SimpleButtonDropdownBase = (props: SimpleButtonDropdownProps & Omit<Omit<Flow.ComponentProps<typeof ButtonDropdown>, 'anchorPosition' | 'classNames' | 'size' | 'onOptionSelect' | 'onMenuOpen' | 'elevation' | 'onMenuClose' | 'clickAwayRef' | 'menu'>, keyof SimpleButtonDropdownProps>, ref: ((arg1: null | SimpleButtonDropdownRef) => unknown) | {
|
|
60
|
-
current: null | SimpleButtonDropdownRef;
|
|
61
|
-
}) => {
|
|
62
|
-
const {
|
|
63
|
-
size = 'medium',
|
|
64
|
-
classNames,
|
|
65
|
-
anchorPosition,
|
|
66
|
-
options,
|
|
67
|
-
optionsVariant,
|
|
68
|
-
allowSearch,
|
|
69
|
-
selectedKeys,
|
|
70
|
-
onOptionSelect,
|
|
71
|
-
onMenuOpen,
|
|
72
|
-
onMenuClose,
|
|
73
|
-
resolveLabel,
|
|
74
|
-
resolveSecondaryLabel,
|
|
75
|
-
children,
|
|
76
|
-
isFluid,
|
|
77
|
-
menuVirtualization,
|
|
78
|
-
header,
|
|
79
|
-
footer,
|
|
80
|
-
menuClassNames,
|
|
81
|
-
showLabelTooltip,
|
|
82
|
-
allowWrap = false,
|
|
83
|
-
clickAwayRef,
|
|
84
|
-
elevation = 'modal',
|
|
85
|
-
...buttonProps
|
|
86
|
-
} = props;
|
|
87
|
-
|
|
88
|
-
const [btnText, setBtnText] = React.useState('');
|
|
89
|
-
const [buttonDropdownSelectedKeys, setButtonDropdownSelectedKeys] =
|
|
90
|
-
React.useState(selectedKeys);
|
|
91
|
-
|
|
92
|
-
React.useEffect(() => {
|
|
93
|
-
const newBtnText = getButtonLabelFromSelectedKeys(selectedKeys, children);
|
|
94
|
-
|
|
95
|
-
setButtonDropdownSelectedKeys(selectedKeys);
|
|
96
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
97
|
-
setBtnText(newBtnText);
|
|
98
|
-
}, [selectedKeys]);
|
|
99
|
-
|
|
100
|
-
const handleOptionChange = (selectedOption: MenuOption, e: React.SyntheticEvent<HTMLElement> | null | undefined) => {
|
|
101
|
-
e?.stopPropagation();
|
|
102
|
-
let newSelectedKeys: Array<never> | Array<string> = [];
|
|
103
|
-
|
|
104
|
-
if (optionsVariant === 'checkbox') {
|
|
105
|
-
newSelectedKeys = getSelectedKeysFromSelectedOption(
|
|
106
|
-
selectedOption,
|
|
107
|
-
buttonDropdownSelectedKeys,
|
|
108
|
-
);
|
|
109
|
-
} else {
|
|
110
|
-
newSelectedKeys = [selectedOption.key];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
const newBtnText = getButtonLabelFromSelectedKeys(
|
|
114
|
-
newSelectedKeys,
|
|
115
|
-
children,
|
|
116
|
-
);
|
|
117
|
-
|
|
118
|
-
setButtonDropdownSelectedKeys(newSelectedKeys);
|
|
119
|
-
// @ts-ignore - TS2345 - Argument of type 'React.ReactNode' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
120
|
-
setBtnText(newBtnText);
|
|
121
|
-
|
|
122
|
-
setTimeout(() => {
|
|
123
|
-
onOptionSelect?.(selectedOption, e);
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
// @ts-ignore - TS2345 - Argument of type '{ current: SimpleButtonDropdownRef | null; } | ((arg1: SimpleButtonDropdownRef | null) => unknown)' is not assignable to parameter of type 'Ref<SimpleButtonDropdownRef> | undefined'.
|
|
128
|
-
React.useImperativeHandle(ref, () => ({
|
|
129
|
-
selectedKeys: buttonDropdownSelectedKeys,
|
|
130
|
-
}));
|
|
131
|
-
|
|
132
|
-
return (
|
|
133
|
-
<ButtonDropdown
|
|
134
|
-
{...buttonProps}
|
|
135
|
-
anchorPosition={anchorPosition}
|
|
136
|
-
classNames={classNames}
|
|
137
|
-
size={size}
|
|
138
|
-
onOptionSelect={handleOptionChange}
|
|
139
|
-
onMenuOpen={onMenuOpen}
|
|
140
|
-
elevation={elevation}
|
|
141
|
-
onMenuClose={onMenuClose}
|
|
142
|
-
clickAwayRef={clickAwayRef}
|
|
143
|
-
menu={{
|
|
144
|
-
// TODO (Sharad): The isFluid prop here controls menu width unlike ButtonDropdown, and is independent from the isFluid prop in ButtonDropdown. There should be a way to set the isFluid prop of ButtonDropdown.
|
|
145
|
-
isFluid,
|
|
146
|
-
options,
|
|
147
|
-
selectedKeys: buttonDropdownSelectedKeys,
|
|
148
|
-
optionsVariant,
|
|
149
|
-
allowSearch,
|
|
150
|
-
resolveLabel,
|
|
151
|
-
resolveSecondaryLabel,
|
|
152
|
-
size,
|
|
153
|
-
virtualization: menuVirtualization,
|
|
154
|
-
header,
|
|
155
|
-
footer,
|
|
156
|
-
classNames: menuClassNames,
|
|
157
|
-
showLabelTooltip,
|
|
158
|
-
allowWrap,
|
|
159
|
-
}}
|
|
160
|
-
>
|
|
161
|
-
{optionsVariant === 'checkbox' ? btnText : children}
|
|
162
|
-
</ButtonDropdown>
|
|
163
|
-
);
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
// @ts-ignore - TS2345 - Argument of type '(props: SimpleButtonDropdownProps & Omit<Omit<Flow.ComponentProps<typeof ButtonDropdown>, 'anchorPosition' | 'classNames' | 'size' | 'onOptionSelect' | 'onMenuOpen' | 'elevation' | 'onMenuClose' | 'clickAwayRef' | 'menu'>, keyof SimpleButtonDropdownProps>, ref: { current: null | SimpleButtonDropdownRef; } | ((arg1: ...' is not assignable to parameter of type 'ForwardRefRenderFunction<SimpleButtonDropdownProps, SimpleButtonDropdownRef>'.
|
|
167
|
-
export const SimpleButtonDropdown: Flow.AbstractComponent<SimpleButtonDropdownProps, SimpleButtonDropdownRef> = React.forwardRef<SimpleButtonDropdownProps, SimpleButtonDropdownRef>(SimpleButtonDropdownBase);
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import type {ButtonTabProps} from './ButtonTab';
|
|
4
|
-
import {ButtonTab} from './ButtonTab';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
tags: ['autodocs'],
|
|
9
|
-
title: 'Components/Button Tabs/Anatomy',
|
|
10
|
-
component: ButtonTab,
|
|
11
|
-
argTypes: {
|
|
12
|
-
id: {
|
|
13
|
-
description: 'Id of the Button Tab',
|
|
14
|
-
control: {
|
|
15
|
-
type: 'text',
|
|
16
|
-
},
|
|
17
|
-
type: {required: true},
|
|
18
|
-
table: {
|
|
19
|
-
type: {summary: 'string'},
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
selectedButtonTabId: {
|
|
23
|
-
description:
|
|
24
|
-
'Selected Id of the Button Tab, when the selectedId is same as id, Button Tab is updated to the selected state. This is passed by the parent `ButtonTabs`.',
|
|
25
|
-
control: {
|
|
26
|
-
type: 'text',
|
|
27
|
-
},
|
|
28
|
-
table: {
|
|
29
|
-
type: {summary: 'string'},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
classNames: {
|
|
33
|
-
description: 'External classNames to be applied',
|
|
34
|
-
control: {
|
|
35
|
-
type: 'object',
|
|
36
|
-
},
|
|
37
|
-
table: {
|
|
38
|
-
type: {summary: '{wrapper?: string}'},
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
iconName: {
|
|
42
|
-
description:
|
|
43
|
-
'Left icon to be applied to the Button Tab, it internally uses the `Icon` component to render icons',
|
|
44
|
-
control: {
|
|
45
|
-
type: 'text',
|
|
46
|
-
},
|
|
47
|
-
table: {
|
|
48
|
-
type: {summary: 'string'},
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
iconType: {
|
|
52
|
-
description:
|
|
53
|
-
'Type represents 4 unique left icon styles :- Solid, Regular, Duotone and Brands',
|
|
54
|
-
options: ['regular', 'solid', 'duotone', 'brands'],
|
|
55
|
-
control: {type: 'select'},
|
|
56
|
-
table: {
|
|
57
|
-
type: {summary: 'string'},
|
|
58
|
-
defaultValue: {summary: 'regular'},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
children: {
|
|
62
|
-
type: {required: true},
|
|
63
|
-
description: 'The content of the Button Tab',
|
|
64
|
-
table: {
|
|
65
|
-
type: {summary: 'React.Component | string'},
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
ariaLabel: {
|
|
69
|
-
control: {
|
|
70
|
-
type: 'text',
|
|
71
|
-
},
|
|
72
|
-
description:
|
|
73
|
-
'**aria-label** should be used where Button Tab do not have have discernible text. This would avoid accessibility violations in screen readers',
|
|
74
|
-
table: {
|
|
75
|
-
type: {summary: 'string'},
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
disabled: {
|
|
79
|
-
description: 'If **true**, the component is disabled',
|
|
80
|
-
control: {
|
|
81
|
-
type: 'boolean',
|
|
82
|
-
},
|
|
83
|
-
table: {
|
|
84
|
-
type: {summary: 'boolean'},
|
|
85
|
-
defaultValue: {summary: 'false'},
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
isLoading: {
|
|
89
|
-
description:
|
|
90
|
-
'If **true**, the component would show a circular loader and also preserve the current size of button so that there are no jumps',
|
|
91
|
-
control: {
|
|
92
|
-
type: 'boolean',
|
|
93
|
-
},
|
|
94
|
-
table: {
|
|
95
|
-
type: {summary: 'boolean'},
|
|
96
|
-
defaultValue: {summary: 'false'},
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
parameters: {
|
|
101
|
-
docs: {
|
|
102
|
-
subtitle: 'ButtonTab Anatomy component.',
|
|
103
|
-
description: {
|
|
104
|
-
component: `
|
|
105
|
-
\`\`\`js
|
|
106
|
-
import { ButtonTab } from "@spaced-out/ui-design-system/lib/components/ButtonTabs";
|
|
107
|
-
\`\`\`
|
|
108
|
-
This anatomy component should not be use in a standalone manner. This should always be used inside <a href="../?path=/docs/components-button-tabs-button-tabs--docs">\`<ButtonTabs></ButtonTabs>\`</a>. Anatomy is just to showcase
|
|
109
|
-
what feature set an elemental \`ButtonTab\` supports. Only use props which are mentioned in the documentation.
|
|
110
|
-
`,
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
storySource: {
|
|
114
|
-
componentPath: '/src/components/ButtonTabs/ButtonTab/ButtonTab.jsx',
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
export const _Anatomy = (args: ButtonTabProps) => (<ButtonTab {...args} />);
|
|
120
|
-
|
|
121
|
-
_Anatomy.args = {
|
|
122
|
-
id: '1',
|
|
123
|
-
iconName: 'face-party',
|
|
124
|
-
children: 'Button Text',
|
|
125
|
-
};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
import classify from '../../../utils/classify';
|
|
6
|
-
import {Button} from '../../Button';
|
|
7
|
-
import type {IconType} from '../../Icon';
|
|
8
|
-
|
|
9
|
-
import css from './ButtonTab.module.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
type ClassNames = Readonly<{
|
|
13
|
-
wrapper?: string;
|
|
14
|
-
}>;
|
|
15
|
-
|
|
16
|
-
export type ButtonTabProps = {
|
|
17
|
-
classNames?: ClassNames;
|
|
18
|
-
children?: React.ReactNode;
|
|
19
|
-
disabled?: boolean;
|
|
20
|
-
onButtonTabSelect?: ((id: string, e?: React.SyntheticEvent<HTMLElement> | null | undefined) => unknown) | null | undefined;
|
|
21
|
-
iconName?: string;
|
|
22
|
-
iconType?: IconType;
|
|
23
|
-
size?: 'medium' | 'small';
|
|
24
|
-
isFluid?: boolean;
|
|
25
|
-
ariaLabel?: string;
|
|
26
|
-
id: string;
|
|
27
|
-
selectedButtonTabId?: string;
|
|
28
|
-
isLoading?: boolean;
|
|
29
|
-
isLeftCurved?: boolean;
|
|
30
|
-
isRightCurved?: boolean;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const ButtonTab: Flow.AbstractComponent<ButtonTabProps, HTMLButtonElement> = React.forwardRef<HTMLButtonElement, ButtonTabProps>((
|
|
34
|
-
{
|
|
35
|
-
classNames,
|
|
36
|
-
children,
|
|
37
|
-
iconName,
|
|
38
|
-
iconType = 'regular',
|
|
39
|
-
size,
|
|
40
|
-
onButtonTabSelect,
|
|
41
|
-
id,
|
|
42
|
-
selectedButtonTabId,
|
|
43
|
-
disabled,
|
|
44
|
-
isLeftCurved,
|
|
45
|
-
isRightCurved,
|
|
46
|
-
...props
|
|
47
|
-
}: ButtonTabProps,
|
|
48
|
-
ref,
|
|
49
|
-
) => (<Button
|
|
50
|
-
{...props}
|
|
51
|
-
disabled={disabled}
|
|
52
|
-
size={size}
|
|
53
|
-
type="tertiary"
|
|
54
|
-
ref={ref}
|
|
55
|
-
classNames={{
|
|
56
|
-
wrapper: classify(
|
|
57
|
-
css.buttonTabWrapper,
|
|
58
|
-
{
|
|
59
|
-
[css.mediumButtonTab]: size === 'medium',
|
|
60
|
-
[css.smallButtonTab]: size === 'small',
|
|
61
|
-
[css.onlyIcon]: iconName && !children,
|
|
62
|
-
[css.isSelected]: id === selectedButtonTabId,
|
|
63
|
-
[css.disabled]: disabled,
|
|
64
|
-
[css.leftCurved]: isLeftCurved,
|
|
65
|
-
[css.rightCurved]: isRightCurved,
|
|
66
|
-
},
|
|
67
|
-
classNames?.wrapper,
|
|
68
|
-
),
|
|
69
|
-
icon: css.icon,
|
|
70
|
-
}}
|
|
71
|
-
iconLeftName={iconName}
|
|
72
|
-
iconLeftType={iconType}
|
|
73
|
-
onClick={(e) => onButtonTabSelect && onButtonTabSelect(id, e)}
|
|
74
|
-
>
|
|
75
|
-
{children}
|
|
76
|
-
</Button>));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ButtonTab';
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
autoUpdate,
|
|
4
|
-
flip,
|
|
5
|
-
FloatingFocusManager,
|
|
6
|
-
FloatingPortal,
|
|
7
|
-
offset,
|
|
8
|
-
shift,
|
|
9
|
-
useFloating,
|
|
10
|
-
} from '@floating-ui/react';
|
|
11
|
-
import {includes} from 'lodash';
|
|
12
|
-
|
|
13
|
-
import {spaceNone, spaceXXSmall} from '../../styles/variables/_space';
|
|
14
|
-
import classify from '../../utils/classify';
|
|
15
|
-
import {ClickAway} from '../../utils/click-away';
|
|
16
|
-
import {mergeRefs} from '../../utils/merge-refs';
|
|
17
|
-
import type {AnchorType} from '../ButtonDropdown';
|
|
18
|
-
import {Menu} from '../Menu';
|
|
19
|
-
import type {ElevationType} from '../Tooltip';
|
|
20
|
-
import {getElevationValue} from '../Tooltip';
|
|
21
|
-
|
|
22
|
-
import type {ButtonTabProps} from './ButtonTab';
|
|
23
|
-
import {ButtonTab} from './ButtonTab';
|
|
24
|
-
|
|
25
|
-
import css from './ButtonTabDropdown.module.css';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export type ButtonTabDropdownProps = ((ButtonTabProps) & {
|
|
29
|
-
title: string;
|
|
30
|
-
elevation?: ElevationType;
|
|
31
|
-
dropdownClass?: string;
|
|
32
|
-
anchorPosition?: AnchorType;
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export const ButtonTabDropdown = (
|
|
36
|
-
{
|
|
37
|
-
title,
|
|
38
|
-
elevation = 'modal',
|
|
39
|
-
anchorPosition = 'bottom-end',
|
|
40
|
-
...buttonTabProps
|
|
41
|
-
}: ButtonTabDropdownProps,
|
|
42
|
-
) => {
|
|
43
|
-
const {
|
|
44
|
-
size,
|
|
45
|
-
children,
|
|
46
|
-
selectedButtonTabId,
|
|
47
|
-
onButtonTabSelect: onTabSelect,
|
|
48
|
-
dropdownClass,
|
|
49
|
-
} = buttonTabProps;
|
|
50
|
-
const childrenArray = React.Children.toArray(children);
|
|
51
|
-
const menuOptions = childrenArray.map((child) => {
|
|
52
|
-
const {
|
|
53
|
-
id,
|
|
54
|
-
children,
|
|
55
|
-
disabled,
|
|
56
|
-
iconName,
|
|
57
|
-
iconType,
|
|
58
|
-
classNames,
|
|
59
|
-
size: buttonSize,
|
|
60
|
-
// @ts-ignore - TS2339 - Property 'props' does not exist on type 'string | number | bigint | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<React.ReactNode> | ReactPortal | Promise<...>'.
|
|
61
|
-
} = child.props;
|
|
62
|
-
return {
|
|
63
|
-
key: id,
|
|
64
|
-
disabled,
|
|
65
|
-
classNames,
|
|
66
|
-
label: children,
|
|
67
|
-
iconLeft: iconName,
|
|
68
|
-
iconLeftType: iconType,
|
|
69
|
-
customComponent: children,
|
|
70
|
-
optionSize: buttonSize ?? size,
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
const moreTabSelectedId = includes(
|
|
74
|
-
menuOptions.map(({key}) => key),
|
|
75
|
-
selectedButtonTabId,
|
|
76
|
-
)
|
|
77
|
-
? 'more-tab'
|
|
78
|
-
: selectedButtonTabId;
|
|
79
|
-
|
|
80
|
-
const {x, y, refs, strategy, context} = useFloating({
|
|
81
|
-
open: true,
|
|
82
|
-
strategy: 'absolute',
|
|
83
|
-
// @ts-ignore - TS2322 - Type 'string' is not assignable to type 'Placement | undefined'.
|
|
84
|
-
placement: anchorPosition,
|
|
85
|
-
whileElementsMounted: autoUpdate,
|
|
86
|
-
middleware: [shift(), flip(), offset(parseInt(spaceXXSmall))],
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
return (
|
|
90
|
-
<ClickAway>
|
|
91
|
-
{({isOpen, onOpen, clickAway, boundaryRef, triggerRef}) => (
|
|
92
|
-
<div
|
|
93
|
-
data-testid="ButtonTabDropdown"
|
|
94
|
-
className={classify(css.buttonTabDropDownWrapper, dropdownClass)}
|
|
95
|
-
>
|
|
96
|
-
<ButtonTab
|
|
97
|
-
{...buttonTabProps}
|
|
98
|
-
// @ts-ignore - TS2322 - Type '((node: ReferenceType | null) => void) & ((node: ReferenceType | null) => void)' is not assignable to type '{ current: HTMLElement | null | undefined; }'.
|
|
99
|
-
ref={mergeRefs([refs.setReference, triggerRef])}
|
|
100
|
-
selectedButtonTabId={moreTabSelectedId}
|
|
101
|
-
// @ts-ignore - TS6133 - 'id' is declared but its value is never read.
|
|
102
|
-
onButtonTabSelect={(id, e) => {
|
|
103
|
-
e?.stopPropagation();
|
|
104
|
-
onOpen();
|
|
105
|
-
}}
|
|
106
|
-
>
|
|
107
|
-
{title}
|
|
108
|
-
</ButtonTab>
|
|
109
|
-
{isOpen && (
|
|
110
|
-
<FloatingPortal>
|
|
111
|
-
<FloatingFocusManager
|
|
112
|
-
modal={false}
|
|
113
|
-
context={context}
|
|
114
|
-
// @ts-ignore - TS2322 - Type 'MutableRefObject<ReferenceType | null> & MutableRefObject<ReferenceType | null>' is not assignable to type 'number | MutableRefObject<HTMLElement | null> | undefined'.
|
|
115
|
-
initialFocus={refs.reference}
|
|
116
|
-
>
|
|
117
|
-
<div
|
|
118
|
-
className={css.menuWrapper}
|
|
119
|
-
// @ts-ignore - TS2322 - Type '((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void)' is not assignable to type '{ current: HTMLElement | null | undefined; }'.
|
|
120
|
-
ref={mergeRefs([refs.setFloating, boundaryRef])}
|
|
121
|
-
style={{
|
|
122
|
-
display: 'flex',
|
|
123
|
-
position: strategy,
|
|
124
|
-
top: y ?? spaceNone,
|
|
125
|
-
left: x ?? spaceNone,
|
|
126
|
-
'--menu-elevation': getElevationValue(elevation),
|
|
127
|
-
}}
|
|
128
|
-
>
|
|
129
|
-
<Menu
|
|
130
|
-
onSelect={(option, e) => {
|
|
131
|
-
onTabSelect && onTabSelect(option.key, e);
|
|
132
|
-
clickAway();
|
|
133
|
-
}}
|
|
134
|
-
size={size}
|
|
135
|
-
options={menuOptions}
|
|
136
|
-
onTabOut={clickAway}
|
|
137
|
-
selectedKeys={[selectedButtonTabId ?? '']}
|
|
138
|
-
/>
|
|
139
|
-
</div>
|
|
140
|
-
</FloatingFocusManager>
|
|
141
|
-
</FloatingPortal>
|
|
142
|
-
)}
|
|
143
|
-
</div>
|
|
144
|
-
)}
|
|
145
|
-
</ClickAway>
|
|
146
|
-
);
|
|
147
|
-
};
|