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