@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,174 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import {
|
|
5
|
-
autoUpdate,
|
|
6
|
-
flip,
|
|
7
|
-
FloatingFocusManager,
|
|
8
|
-
FloatingPortal,
|
|
9
|
-
offset,
|
|
10
|
-
useFloating,
|
|
11
|
-
} from '@floating-ui/react';
|
|
12
|
-
|
|
13
|
-
import {useReferenceElementWidth} from '../../hooks';
|
|
14
|
-
import {spaceNone, spaceXXSmall} from '../../styles/variables/_space';
|
|
15
|
-
import {classify} from '../../utils/classify';
|
|
16
|
-
import {ClickAwayRefType, ClickAway} from '../../utils/click-away';
|
|
17
|
-
import {mergeRefs} from '../../utils/merge-refs';
|
|
18
|
-
import type {InputProps} from '../Input';
|
|
19
|
-
import {Input} from '../Input';
|
|
20
|
-
import type {MenuOption, MenuProps} from '../Menu';
|
|
21
|
-
import {Menu} from '../Menu';
|
|
22
|
-
import {ElevationType, getElevationValue} from '../Tooltip';
|
|
23
|
-
|
|
24
|
-
import css from './Dropdown.module.css';
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
type ClassNames = Readonly<{
|
|
28
|
-
wrapper?: string;
|
|
29
|
-
box?: string;
|
|
30
|
-
iconRight?: string;
|
|
31
|
-
}>;
|
|
32
|
-
|
|
33
|
-
export type DropdownProps = ((InputProps) & {
|
|
34
|
-
classNames?: ClassNames;
|
|
35
|
-
onChange?: (
|
|
36
|
-
option: MenuOption,
|
|
37
|
-
arg2?: React.SyntheticEvent<HTMLElement> | null | undefined,
|
|
38
|
-
) => unknown;
|
|
39
|
-
onMenuOpen?: () => unknown;
|
|
40
|
-
onMenuClose?: () => unknown;
|
|
41
|
-
scrollMenuToBottom?: boolean;
|
|
42
|
-
dropdownInputText?: string;
|
|
43
|
-
menu?: MenuProps;
|
|
44
|
-
elevation?: ElevationType;
|
|
45
|
-
clickAwayRef?: ClickAwayRefType;
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
export const Dropdown: Flow.AbstractComponent<DropdownProps, HTMLInputElement> = React.forwardRef<HTMLInputElement, DropdownProps>((
|
|
49
|
-
{
|
|
50
|
-
size = 'medium',
|
|
51
|
-
classNames,
|
|
52
|
-
placeholder = 'Select...',
|
|
53
|
-
onChange,
|
|
54
|
-
menu,
|
|
55
|
-
onMenuOpen,
|
|
56
|
-
onMenuClose,
|
|
57
|
-
scrollMenuToBottom = false,
|
|
58
|
-
dropdownInputText = '',
|
|
59
|
-
clickAwayRef,
|
|
60
|
-
elevation = 'modal',
|
|
61
|
-
...inputProps
|
|
62
|
-
}: DropdownProps,
|
|
63
|
-
ref,
|
|
64
|
-
) => {
|
|
65
|
-
// @ts-ignore - TS2554 - Expected 1 arguments, but got 0.
|
|
66
|
-
const menuRef = React.useRef();
|
|
67
|
-
|
|
68
|
-
const {x, y, refs, strategy, context} = useFloating({
|
|
69
|
-
open: true,
|
|
70
|
-
strategy: 'absolute',
|
|
71
|
-
placement: 'bottom-start',
|
|
72
|
-
whileElementsMounted: autoUpdate,
|
|
73
|
-
middleware: [flip(), offset(parseInt(spaceXXSmall))],
|
|
74
|
-
});
|
|
75
|
-
// @ts-ignore - TS2345 - Argument of type '(ReferenceType & ReferenceType) | null' is not assignable to parameter of type 'HTMLElement | null | undefined'.
|
|
76
|
-
const dropdownWidth = useReferenceElementWidth(refs.reference?.current);
|
|
77
|
-
|
|
78
|
-
const onMenuToggle = (isOpen: boolean) => {
|
|
79
|
-
isOpen ? onMenuOpen && onMenuOpen() : onMenuClose && onMenuClose();
|
|
80
|
-
if (scrollMenuToBottom && menuRef.current && isOpen) {
|
|
81
|
-
// @ts-ignore - TS2571 - Object is of type 'unknown'. | TS2571 - Object is of type 'unknown'.
|
|
82
|
-
menuRef.current.scrollTop = isOpen ? menuRef.current.scrollHeight : 0;
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
return (
|
|
87
|
-
<ClickAway onChange={onMenuToggle} clickAwayRef={clickAwayRef}>
|
|
88
|
-
{({isOpen, onOpen, clickAway, boundaryRef, triggerRef}) => (
|
|
89
|
-
<div
|
|
90
|
-
className={classify(css.dropdownContainer, classNames?.wrapper)}
|
|
91
|
-
data-testid="Dropdown"
|
|
92
|
-
>
|
|
93
|
-
<Input
|
|
94
|
-
{...inputProps}
|
|
95
|
-
onKeyDown={(e) => {
|
|
96
|
-
if (e.keyCode === 32) {
|
|
97
|
-
e.preventDefault();
|
|
98
|
-
isOpen ? clickAway() : onOpen();
|
|
99
|
-
}
|
|
100
|
-
}}
|
|
101
|
-
// @ts-ignore - TS2741 - Property 'current' is missing in type '((node: ReferenceType | null) => void) & ((node: ReferenceType | null) => void)' but required in type '{ current: HTMLElement | null | undefined; }'.
|
|
102
|
-
boxRef={mergeRefs([refs.setReference, triggerRef])}
|
|
103
|
-
size={size}
|
|
104
|
-
placeholder={placeholder}
|
|
105
|
-
value={dropdownInputText}
|
|
106
|
-
classNames={{
|
|
107
|
-
box: classify(css.inputBox, classNames?.box),
|
|
108
|
-
iconRight: classNames?.iconRight,
|
|
109
|
-
}}
|
|
110
|
-
iconRightName={isOpen ? 'angle-up' : 'angle-down'}
|
|
111
|
-
readOnly
|
|
112
|
-
onContainerClick={(e) => {
|
|
113
|
-
e.stopPropagation();
|
|
114
|
-
onOpen();
|
|
115
|
-
}}
|
|
116
|
-
ref={ref}
|
|
117
|
-
/>
|
|
118
|
-
|
|
119
|
-
{isOpen && menu && (
|
|
120
|
-
<FloatingPortal>
|
|
121
|
-
<FloatingFocusManager
|
|
122
|
-
modal={false}
|
|
123
|
-
context={context}
|
|
124
|
-
// @ts-ignore - TS2322 - Type 'MutableRefObject<ReferenceType | null> & MutableRefObject<ReferenceType | null>' is not assignable to type 'number | MutableRefObject<HTMLElement | null> | undefined'.
|
|
125
|
-
initialFocus={refs.reference}
|
|
126
|
-
>
|
|
127
|
-
<div
|
|
128
|
-
// @ts-ignore - TS2741 - Property 'current' is missing in type '((node: HTMLElement | null) => void) & ((node: HTMLElement | null) => void)' but required in type '{ current: HTMLElement | null | undefined; }'.
|
|
129
|
-
ref={mergeRefs([refs.setFloating, boundaryRef])}
|
|
130
|
-
className={css.menuWrapper}
|
|
131
|
-
style={{
|
|
132
|
-
position: strategy,
|
|
133
|
-
top: y ?? spaceNone,
|
|
134
|
-
left: x ?? spaceNone,
|
|
135
|
-
/* NOTE(Sharad): The FloatingPortal renders the menu outside the normal DOM structure,
|
|
136
|
-
so its parent is effectively the <body> element. This means the menu
|
|
137
|
-
would otherwise default to the body's width. To support fluid width,
|
|
138
|
-
we must manually set the dropdown width here; otherwise, it uses a fixed width.
|
|
139
|
-
Also, Only treat menu as non-fluid if isFluid is strictly false, since default is true in menu and undefined means fluid. */
|
|
140
|
-
...(menu.isFluid !== false && {
|
|
141
|
-
'--dropdown-width': dropdownWidth,
|
|
142
|
-
}),
|
|
143
|
-
'--menu-elevation': getElevationValue(elevation),
|
|
144
|
-
}}
|
|
145
|
-
>
|
|
146
|
-
<Menu
|
|
147
|
-
{...menu}
|
|
148
|
-
onSelect={(option, e) => {
|
|
149
|
-
onChange && onChange(option, e);
|
|
150
|
-
if (
|
|
151
|
-
// option.keepMenuOpenOnOptionSelect - to allow the menu persist its open stat upon option selection in normal variant
|
|
152
|
-
!option.keepMenuOpenOnOptionSelect &&
|
|
153
|
-
(!menu.optionsVariant ||
|
|
154
|
-
menu.optionsVariant === 'normal')
|
|
155
|
-
) {
|
|
156
|
-
clickAway();
|
|
157
|
-
// @ts-ignore - TS2531 - Object is possibly 'null'. | TS2339 - Property 'querySelector' does not exist on type 'ReferenceType & ReferenceType'.
|
|
158
|
-
refs.reference.current.querySelector('input').focus();
|
|
159
|
-
}
|
|
160
|
-
}}
|
|
161
|
-
size={menu.size || size}
|
|
162
|
-
onTabOut={clickAway}
|
|
163
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
164
|
-
ref={menuRef}
|
|
165
|
-
/>
|
|
166
|
-
</div>
|
|
167
|
-
</FloatingFocusManager>
|
|
168
|
-
</FloatingPortal>
|
|
169
|
-
)}
|
|
170
|
-
</div>
|
|
171
|
-
)}
|
|
172
|
-
</ClickAway>
|
|
173
|
-
);
|
|
174
|
-
});
|
|
@@ -1,534 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import type {MenuOption} from '../Menu';
|
|
4
|
-
import {MenuFooter, MenuHeader} from '../Menu/Menu.stories';
|
|
5
|
-
import {ELEVATION_TYPES} from '../Tooltip';
|
|
6
|
-
|
|
7
|
-
import type {SimpleDropdownProps} from './SimpleDropdown';
|
|
8
|
-
import {SimpleDropdown} from './SimpleDropdown';
|
|
9
|
-
|
|
10
|
-
import css from './Dropdown.stories.module.css';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const elevationOptions: Array<unknown> = [...Object.values(ELEVATION_TYPES)];
|
|
14
|
-
|
|
15
|
-
export default {
|
|
16
|
-
tags: ['autodocs'],
|
|
17
|
-
title: 'Form Components/Dropdown/Simple Dropdown',
|
|
18
|
-
component: SimpleDropdown,
|
|
19
|
-
argTypes: {
|
|
20
|
-
size: {
|
|
21
|
-
description:
|
|
22
|
-
'Dropdown supports only two size variants namely small and medium. `small` < `medium`',
|
|
23
|
-
options: ['medium', 'small'],
|
|
24
|
-
control: {
|
|
25
|
-
type: 'select',
|
|
26
|
-
},
|
|
27
|
-
table: {
|
|
28
|
-
type: {summary: 'enum'},
|
|
29
|
-
defaultValue: {summary: 'medium'},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
required: {
|
|
33
|
-
description: 'if **true**, a red star would be added to the label',
|
|
34
|
-
control: {
|
|
35
|
-
type: 'boolean',
|
|
36
|
-
},
|
|
37
|
-
table: {
|
|
38
|
-
type: {summary: 'boolean'},
|
|
39
|
-
defaultValue: {summary: 'false'},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
options: {
|
|
43
|
-
description: 'Options to be displayed in dropdown',
|
|
44
|
-
control: {
|
|
45
|
-
type: 'object',
|
|
46
|
-
},
|
|
47
|
-
table: {
|
|
48
|
-
type: {summary: 'Array<MenuOption>'},
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
name: {
|
|
52
|
-
description: 'Name of the Dropdown',
|
|
53
|
-
control: {
|
|
54
|
-
type: 'text',
|
|
55
|
-
},
|
|
56
|
-
table: {
|
|
57
|
-
type: {summary: 'string'},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
disabled: {
|
|
61
|
-
description: 'if **true**, the component is disabled',
|
|
62
|
-
control: {
|
|
63
|
-
type: 'boolean',
|
|
64
|
-
},
|
|
65
|
-
table: {
|
|
66
|
-
type: {summary: 'boolean'},
|
|
67
|
-
defaultValue: {summary: 'false'},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
placeholder: {
|
|
71
|
-
description: 'Placeholder of dropdown. This appears inside the input box',
|
|
72
|
-
control: {
|
|
73
|
-
type: 'text',
|
|
74
|
-
},
|
|
75
|
-
table: {
|
|
76
|
-
type: {summary: 'string'},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
locked: {
|
|
80
|
-
description:
|
|
81
|
-
'if **true**, the component is locked, Locked state is the readonly state of the dropdown',
|
|
82
|
-
control: {
|
|
83
|
-
type: 'boolean',
|
|
84
|
-
},
|
|
85
|
-
table: {
|
|
86
|
-
type: {summary: 'boolean'},
|
|
87
|
-
defaultValue: {summary: 'false'},
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
error: {
|
|
91
|
-
description:
|
|
92
|
-
'if **true**, the component is moved to error state, Error state displays a red border surrounding input',
|
|
93
|
-
control: {
|
|
94
|
-
type: 'boolean',
|
|
95
|
-
},
|
|
96
|
-
table: {
|
|
97
|
-
type: {summary: 'boolean'},
|
|
98
|
-
defaultValue: {summary: 'false'},
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
errorText: {
|
|
102
|
-
description:
|
|
103
|
-
'Error text to be displayed on the bottom of the input. This uses `colorTextDanger`',
|
|
104
|
-
control: {
|
|
105
|
-
type: 'text',
|
|
106
|
-
},
|
|
107
|
-
table: {
|
|
108
|
-
type: {summary: 'string'},
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
label: {
|
|
112
|
-
description:
|
|
113
|
-
'Primary label of the dropdown. This appears on top of dropdown input',
|
|
114
|
-
control: {
|
|
115
|
-
type: 'text',
|
|
116
|
-
},
|
|
117
|
-
table: {
|
|
118
|
-
type: {summary: 'string'},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
helperText: {
|
|
122
|
-
description:
|
|
123
|
-
'Secondary label of the dropdown. This appears on bottom of dropdown input, if the dropdown is in `error` state the priority is given to `errorText`, in such cases secondary label wont be displayed',
|
|
124
|
-
control: {
|
|
125
|
-
type: 'text',
|
|
126
|
-
},
|
|
127
|
-
table: {
|
|
128
|
-
type: {summary: 'string'},
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
elevation: {
|
|
132
|
-
description:
|
|
133
|
-
'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.',
|
|
134
|
-
control: {
|
|
135
|
-
type: 'select',
|
|
136
|
-
},
|
|
137
|
-
options: elevationOptions,
|
|
138
|
-
table: {
|
|
139
|
-
type: {summary: 'enum'},
|
|
140
|
-
defaultValue: {summary: 'modal'},
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
classNames: {
|
|
144
|
-
description: 'External classnames to be applied',
|
|
145
|
-
control: {
|
|
146
|
-
type: 'object',
|
|
147
|
-
},
|
|
148
|
-
table: {
|
|
149
|
-
type: {summary: '{wrapper?: string, box?: string}'},
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
menuClassNames: {
|
|
153
|
-
description:
|
|
154
|
-
'External classnames to be applied to the menu. Wrapper gets applied to Menu wrapper and option gets applied to each option in the menu.',
|
|
155
|
-
control: {
|
|
156
|
-
type: 'object',
|
|
157
|
-
},
|
|
158
|
-
table: {
|
|
159
|
-
type: {
|
|
160
|
-
summary:
|
|
161
|
-
'{wrapper?: string, option?: string, groupTitle?: string, optionTextContainer?: string, optionTextLabel?: string}',
|
|
162
|
-
},
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
onChange: {
|
|
166
|
-
description:
|
|
167
|
-
'**onChange** handler is triggered when there is a selection of an option from dropdown',
|
|
168
|
-
action: 'changed',
|
|
169
|
-
table: {
|
|
170
|
-
type: {
|
|
171
|
-
summary:
|
|
172
|
-
'(option: MenuOption, ?SyntheticEvent<HTMLElement>) => mixed',
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
onMenuOpen: {
|
|
177
|
-
description:
|
|
178
|
-
'**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.',
|
|
179
|
-
action: 'clicked',
|
|
180
|
-
table: {
|
|
181
|
-
type: {summary: '() => mixed'},
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
onMenuClose: {
|
|
185
|
-
description:
|
|
186
|
-
'**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.',
|
|
187
|
-
action: 'clicked',
|
|
188
|
-
table: {
|
|
189
|
-
type: {summary: '() => mixed'},
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
onFocus: {
|
|
193
|
-
description: '**onFocus** handler is triggered when dropdown is focussed',
|
|
194
|
-
action: 'focussed',
|
|
195
|
-
table: {
|
|
196
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
onBlur: {
|
|
200
|
-
description: '**onBlur** handler is triggered when dropdown is blurred',
|
|
201
|
-
action: 'blurred',
|
|
202
|
-
table: {
|
|
203
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
optionsVariant: {
|
|
207
|
-
description: 'Menu supports multiple options variant',
|
|
208
|
-
control: {
|
|
209
|
-
type: 'select',
|
|
210
|
-
},
|
|
211
|
-
options: ['checkbox', 'radio', 'normal'],
|
|
212
|
-
table: {
|
|
213
|
-
type: {summary: 'enum'},
|
|
214
|
-
defaultValue: {summary: 'normal'},
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
allowSearch: {
|
|
218
|
-
description: `if **true**, the component would show a search input on top of menu.
|
|
219
|
-
This is a simple **static search**
|
|
220
|
-
which filter options by **matching search text to option label**`,
|
|
221
|
-
control: {
|
|
222
|
-
type: 'boolean',
|
|
223
|
-
},
|
|
224
|
-
table: {
|
|
225
|
-
type: {summary: 'boolean'},
|
|
226
|
-
defaultValue: {summary: false},
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
|
-
selectedKeys: {
|
|
230
|
-
description:
|
|
231
|
-
'Selected keys corresponding to options. These options are shown as selected in UI',
|
|
232
|
-
control: {
|
|
233
|
-
type: 'array',
|
|
234
|
-
},
|
|
235
|
-
table: {
|
|
236
|
-
type: {summary: 'Array<string>'},
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
resolveLabel: {
|
|
240
|
-
description:
|
|
241
|
-
'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',
|
|
242
|
-
table: {
|
|
243
|
-
type: {
|
|
244
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
resolveSecondaryLabel: {
|
|
249
|
-
description:
|
|
250
|
-
'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',
|
|
251
|
-
table: {
|
|
252
|
-
type: {
|
|
253
|
-
summary: '(option: MenuOption) => string | React.ReactNode',
|
|
254
|
-
},
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
menuVirtualization: {
|
|
258
|
-
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.`,
|
|
259
|
-
control: {
|
|
260
|
-
type: 'object',
|
|
261
|
-
},
|
|
262
|
-
table: {
|
|
263
|
-
type: {
|
|
264
|
-
summary:
|
|
265
|
-
'{enable: boolean, menuHeight?: number, itemHeight?: number}',
|
|
266
|
-
},
|
|
267
|
-
},
|
|
268
|
-
},
|
|
269
|
-
header: {
|
|
270
|
-
description: 'Custom Header For the Menu',
|
|
271
|
-
table: {
|
|
272
|
-
type: {
|
|
273
|
-
summary: 'React.ReactNode',
|
|
274
|
-
},
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
footer: {
|
|
278
|
-
description: 'Custom Header For the Menu',
|
|
279
|
-
table: {
|
|
280
|
-
type: {
|
|
281
|
-
summary: 'React.ReactNode',
|
|
282
|
-
},
|
|
283
|
-
},
|
|
284
|
-
},
|
|
285
|
-
clickAwayRef: {
|
|
286
|
-
type: {optional: true},
|
|
287
|
-
description: 'ref that contains the functions to open or close the child',
|
|
288
|
-
table: {
|
|
289
|
-
type: {
|
|
290
|
-
summary: 'ClickAwayRefType',
|
|
291
|
-
},
|
|
292
|
-
},
|
|
293
|
-
},
|
|
294
|
-
showLabelTooltip: {
|
|
295
|
-
description: 'Show Tooltip on the label of the menu option if truncated',
|
|
296
|
-
control: {
|
|
297
|
-
type: 'object',
|
|
298
|
-
},
|
|
299
|
-
table: {
|
|
300
|
-
type: {summary: 'MenuLabelTooltip'},
|
|
301
|
-
},
|
|
302
|
-
},
|
|
303
|
-
allowWrap: {
|
|
304
|
-
description:
|
|
305
|
-
'Allows the label to wrap up to 3 lines. If truncated, a tooltip will display up to 10 lines.',
|
|
306
|
-
control: {
|
|
307
|
-
type: 'boolean',
|
|
308
|
-
},
|
|
309
|
-
table: {
|
|
310
|
-
type: {summary: 'boolean'},
|
|
311
|
-
defaultValue: {summary: false},
|
|
312
|
-
},
|
|
313
|
-
},
|
|
314
|
-
staticLabels: {
|
|
315
|
-
description:
|
|
316
|
-
'Static labels to be displayed in the dropdown with search input',
|
|
317
|
-
control: {
|
|
318
|
-
type: 'object',
|
|
319
|
-
},
|
|
320
|
-
table: {
|
|
321
|
-
type: {
|
|
322
|
-
summary:
|
|
323
|
-
'{RESULT?: string, RESULTS?: string, SEARCH_PLACEHOLDER?: string}',
|
|
324
|
-
},
|
|
325
|
-
},
|
|
326
|
-
},
|
|
327
|
-
},
|
|
328
|
-
parameters: {
|
|
329
|
-
docs: {
|
|
330
|
-
subtitle: 'Generates a Dropdown component',
|
|
331
|
-
description: {
|
|
332
|
-
component: `
|
|
333
|
-
\`\`\`js
|
|
334
|
-
import { SimpleDropdown } from "@spaced-out/ui-design-system/lib/components/Dropdown";
|
|
335
|
-
\`\`\`
|
|
336
|
-
**SimpleDropdown** is implemented as a combination of **<a href="../?path=/docs/form-components-input--docs">Input</a>** and **<a href="../?path=/docs/components-menu--docs">Menu</a>**
|
|
337
|
-
components. It internally uses **Floating UI** to
|
|
338
|
-
position itself in context of DOM. Supports a bunch of callbacks listed below.
|
|
339
|
-
|
|
340
|
-
- **SimpleDropdown** serially spreads out BaseMenuProps, meaning it would accept options as a prop instead of whole Menu.
|
|
341
|
-
- **SimpleDropdown** would have implicit label selection behavior built in, meaning if you select an option the
|
|
342
|
-
label would get auto populated for the component itself.
|
|
343
|
-
- The component maintains an internal state for selections. You can always override it with explicit **selectedKeys**
|
|
344
|
-
prop which changes on **onChange** callback.
|
|
345
|
-
- 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
|
|
346
|
-
options which are multi-select.
|
|
347
|
-
- The component also supports custom **header** as \`React Component\` and this is then passed in
|
|
348
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component.
|
|
349
|
-
- The component also supports custom **footer** as \`React Component\` and this is then passed in
|
|
350
|
-
the **<a href="../?path=/docs/components-menu--docs">Menu</a>** Component. This might be useful when you need
|
|
351
|
-
to save some state in the parent component.
|
|
352
|
-
- Supports passing a \`clickAwayRef\` prop to the component.
|
|
353
|
-
- You can always force Open the instance from ref by using \`clickAwayRef.current?.forceOpen()\`. This might be useful when want to force Open as per you needs.
|
|
354
|
-
- You can always force Close the instance from ref by using \`clickAwayRef.current?.forceClose()\`. This might be useful when want to force Close as per you needs.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
For checkbox type options you can get the latest instance of selected Keys from the component itself:
|
|
359
|
-
|
|
360
|
-
\`\`\`jsx
|
|
361
|
-
export const _WithCheckboxOptions = (args: SimpleDropdownProps): React.ReactNode => {
|
|
362
|
-
const ref = React.useRef(null);
|
|
363
|
-
const clickAwayRef = React.useRef(null);
|
|
364
|
-
|
|
365
|
-
const handleChange = () => {
|
|
366
|
-
// Get your current instance of selected keys from ref
|
|
367
|
-
// const selectedKeys = ref.current?.selectedKeys;
|
|
368
|
-
};
|
|
369
|
-
|
|
370
|
-
return (
|
|
371
|
-
<div className={css.dropdownWrapper}>
|
|
372
|
-
<div className={css.content}>
|
|
373
|
-
<SimpleDropdown
|
|
374
|
-
label="Form Label"
|
|
375
|
-
options={options}
|
|
376
|
-
optionsVariant={'checkbox'}
|
|
377
|
-
selectedKeys={['4']}
|
|
378
|
-
onChange={handleChange}
|
|
379
|
-
ref={ref}
|
|
380
|
-
clickAwayRef={clickAwayRef}
|
|
381
|
-
/>
|
|
382
|
-
</div>
|
|
383
|
-
</div>
|
|
384
|
-
);
|
|
385
|
-
};
|
|
386
|
-
\`\`\`
|
|
387
|
-
`,
|
|
388
|
-
},
|
|
389
|
-
},
|
|
390
|
-
storySource: {
|
|
391
|
-
componentPath: '/src/components/Dropdown/Dropdown.jsx',
|
|
392
|
-
},
|
|
393
|
-
},
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
const options: MenuOption[] = [
|
|
397
|
-
{
|
|
398
|
-
key: '1',
|
|
399
|
-
label: 'Option one',
|
|
400
|
-
iconLeft: 'coffee',
|
|
401
|
-
},
|
|
402
|
-
{key: '2', label: 'Option two', iconLeft: 'user'},
|
|
403
|
-
{
|
|
404
|
-
key: '4',
|
|
405
|
-
label:
|
|
406
|
-
'Option three is a very long option that would truncate and keep going to make it even longer than before. You can hover over the label to see the full text. ShowLabelTooltip maxLines is used to define the number of lines to show in the tooltip.',
|
|
407
|
-
iconLeft: 'face-party',
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
key: '5',
|
|
411
|
-
label: 'Option five(disabled)',
|
|
412
|
-
disabled: true,
|
|
413
|
-
iconLeft: 'flag',
|
|
414
|
-
},
|
|
415
|
-
{
|
|
416
|
-
key: '6',
|
|
417
|
-
label: 'Option six(disabled) very long option that would truncate',
|
|
418
|
-
disabled: true,
|
|
419
|
-
iconLeft: 'camera',
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
key: '7',
|
|
423
|
-
label: 'Option seven',
|
|
424
|
-
iconLeft: 'coffee',
|
|
425
|
-
},
|
|
426
|
-
{key: '8', label: 'Option eight', iconLeft: 'user'},
|
|
427
|
-
{
|
|
428
|
-
key: '9',
|
|
429
|
-
label: 'Option nine',
|
|
430
|
-
iconLeft: 'face-party',
|
|
431
|
-
},
|
|
432
|
-
];
|
|
433
|
-
|
|
434
|
-
export const _WithSimpleOptions = (args: SimpleDropdownProps) => (<div className={css.dropdownWrapper}>
|
|
435
|
-
<div className={css.content}>
|
|
436
|
-
<SimpleDropdown {...args} />
|
|
437
|
-
</div>
|
|
438
|
-
</div>);
|
|
439
|
-
|
|
440
|
-
_WithSimpleOptions.args = {
|
|
441
|
-
label: 'Form Label',
|
|
442
|
-
options,
|
|
443
|
-
};
|
|
444
|
-
|
|
445
|
-
export const _WithSimpleOptionsTooltip = (args: SimpleDropdownProps) => (<div className={css.dropdownWrapper}>
|
|
446
|
-
<div className={css.content}>
|
|
447
|
-
<SimpleDropdown {...args} />
|
|
448
|
-
</div>
|
|
449
|
-
</div>);
|
|
450
|
-
|
|
451
|
-
_WithSimpleOptionsTooltip.args = {
|
|
452
|
-
label: 'Form Label',
|
|
453
|
-
options,
|
|
454
|
-
showLabelTooltip: {maxLines: 6},
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
export const _WithSearch = (args: SimpleDropdownProps) => (<div className={css.dropdownWrapper}>
|
|
458
|
-
<div className={css.content}>
|
|
459
|
-
<SimpleDropdown {...args} />
|
|
460
|
-
</div>
|
|
461
|
-
</div>);
|
|
462
|
-
|
|
463
|
-
_WithSearch.args = {
|
|
464
|
-
label: 'Form Label',
|
|
465
|
-
options,
|
|
466
|
-
allowSearch: true,
|
|
467
|
-
};
|
|
468
|
-
|
|
469
|
-
export const _WithCheckboxOptions = (args: SimpleDropdownProps) => {
|
|
470
|
-
const ref = React.useRef(null);
|
|
471
|
-
|
|
472
|
-
const handleChange = () => {
|
|
473
|
-
// Get your current instance of selected keys from ref
|
|
474
|
-
// const selectedKeys = ref.current?.selectedKeys;
|
|
475
|
-
};
|
|
476
|
-
|
|
477
|
-
return (
|
|
478
|
-
<div className={css.dropdownWrapper}>
|
|
479
|
-
<div className={css.content}>
|
|
480
|
-
<SimpleDropdown {...args} onChange={handleChange} ref={ref} />
|
|
481
|
-
</div>
|
|
482
|
-
</div>
|
|
483
|
-
);
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
_WithCheckboxOptions.args = {
|
|
487
|
-
label: 'Form Label',
|
|
488
|
-
options,
|
|
489
|
-
optionsVariant: 'checkbox',
|
|
490
|
-
selectedKeys: ['4'],
|
|
491
|
-
};
|
|
492
|
-
|
|
493
|
-
export const _WithRadioOptions = (args: SimpleDropdownProps) => (<div className={css.dropdownWrapper}>
|
|
494
|
-
<div className={css.content}>
|
|
495
|
-
<SimpleDropdown {...args} />
|
|
496
|
-
</div>
|
|
497
|
-
</div>);
|
|
498
|
-
|
|
499
|
-
_WithRadioOptions.args = {
|
|
500
|
-
label: 'Form Label',
|
|
501
|
-
options,
|
|
502
|
-
optionsVariant: 'radio',
|
|
503
|
-
selectedKeys: ['2'],
|
|
504
|
-
};
|
|
505
|
-
|
|
506
|
-
export const _WithHeaderAndFooter = (args: SimpleDropdownProps) => {
|
|
507
|
-
const clickAwayRef = React.useRef(null);
|
|
508
|
-
const onSave = () => {
|
|
509
|
-
if (clickAwayRef.current) {
|
|
510
|
-
// @ts-ignore - TS2339 - Property 'forceClose' does not exist on type 'never'.
|
|
511
|
-
clickAwayRef.current.forceClose();
|
|
512
|
-
}
|
|
513
|
-
};
|
|
514
|
-
|
|
515
|
-
return (
|
|
516
|
-
<div className={css.dropdownWrapper}>
|
|
517
|
-
<div className={css.content}>
|
|
518
|
-
<SimpleDropdown
|
|
519
|
-
{...args}
|
|
520
|
-
clickAwayRef={clickAwayRef}
|
|
521
|
-
header={<MenuHeader />}
|
|
522
|
-
footer={<MenuFooter onSave={onSave} />}
|
|
523
|
-
/>
|
|
524
|
-
</div>
|
|
525
|
-
</div>
|
|
526
|
-
);
|
|
527
|
-
};
|
|
528
|
-
|
|
529
|
-
_WithHeaderAndFooter.args = {
|
|
530
|
-
label: 'Form Label',
|
|
531
|
-
options,
|
|
532
|
-
optionsVariant: 'checkbox',
|
|
533
|
-
selectedKeys: ['4'],
|
|
534
|
-
};
|