@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,159 +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 {getTextLabelFromSelectedKeys} from '../../utils/menu';
|
|
8
|
-
import type {InputProps} from '../Input';
|
|
9
|
-
import type {MenuOption, Virtualization} from '../Menu';
|
|
10
|
-
import type {ElevationType} from '../Tooltip';
|
|
11
|
-
|
|
12
|
-
import {Typeahead} from './Typeahead';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
type ClassNames = Readonly<{
|
|
16
|
-
wrapper?: string;
|
|
17
|
-
box?: string;
|
|
18
|
-
}>;
|
|
19
|
-
|
|
20
|
-
export type SimpleTypeaheadRef = {
|
|
21
|
-
selectedKeys?: Array<string>;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export type SimpleTypeaheadProps = (// Input props
|
|
25
|
-
(InputProps) & {
|
|
26
|
-
isLoading?: boolean;
|
|
27
|
-
menuOpenOffset?: number;
|
|
28
|
-
classNames?: ClassNames;
|
|
29
|
-
// Menu props
|
|
30
|
-
options?: Array<MenuOption>;
|
|
31
|
-
selectedKeys?: Array<string>;
|
|
32
|
-
menuVirtualization?: Virtualization;
|
|
33
|
-
header?: React.ReactNode;
|
|
34
|
-
footer?: React.ReactNode;
|
|
35
|
-
menuClassNames?: MenuClassNames;
|
|
36
|
-
showLabelTooltip?: MenuLabelTooltip;
|
|
37
|
-
allowWrap?: boolean;
|
|
38
|
-
elevation?: ElevationType;
|
|
39
|
-
// events
|
|
40
|
-
onSelect?: (
|
|
41
|
-
option: MenuOption,
|
|
42
|
-
arg2?: React.SyntheticEvent<HTMLElement> | null | undefined,
|
|
43
|
-
) => unknown;
|
|
44
|
-
onSearch?: (evt: React.ChangeEvent<HTMLInputElement>) => unknown;
|
|
45
|
-
onMenuOpen?: () => unknown;
|
|
46
|
-
onMenuClose?: () => unknown;
|
|
47
|
-
onClear?: () => void;
|
|
48
|
-
// Resolvers
|
|
49
|
-
resolveLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
50
|
-
resolveSecondaryLabel?: (option: MenuOption) => string | React.ReactNode;
|
|
51
|
-
clickAwayRef?: ClickAwayRefType;
|
|
52
|
-
allowInternalFilter?: boolean;
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
const SimpleTypeaheadBase = (props: SimpleTypeaheadProps & Omit<Omit<Flow.ComponentProps<typeof Typeahead>, 'allowInternalFilter' | 'classNames' | 'size' | 'placeholder' | 'onSelect' | 'onMenuOpen' | 'onMenuClose' | 'typeaheadInputText' | 'onSearch' | 'onClear' | 'menu' | 'clickAwayRef' | 'elevation'>, keyof SimpleTypeaheadProps>, ref: ((arg1: null | SimpleTypeaheadRef) => unknown) | {
|
|
56
|
-
current: null | SimpleTypeaheadRef;
|
|
57
|
-
}) => {
|
|
58
|
-
const {
|
|
59
|
-
size = 'medium',
|
|
60
|
-
classNames,
|
|
61
|
-
placeholder = 'Select...',
|
|
62
|
-
options,
|
|
63
|
-
selectedKeys,
|
|
64
|
-
onSelect,
|
|
65
|
-
onMenuOpen,
|
|
66
|
-
onMenuClose,
|
|
67
|
-
resolveLabel,
|
|
68
|
-
resolveSecondaryLabel,
|
|
69
|
-
onClear,
|
|
70
|
-
onSearch,
|
|
71
|
-
menuVirtualization,
|
|
72
|
-
header,
|
|
73
|
-
footer,
|
|
74
|
-
menuClassNames,
|
|
75
|
-
clickAwayRef,
|
|
76
|
-
showLabelTooltip,
|
|
77
|
-
allowInternalFilter = true,
|
|
78
|
-
allowWrap = false,
|
|
79
|
-
elevation = 'modal',
|
|
80
|
-
...inputProps
|
|
81
|
-
} = props;
|
|
82
|
-
|
|
83
|
-
const [typeaheadInputText, setTypeaheadInputText] = React.useState('');
|
|
84
|
-
const [typeaheadSelectedKeys, setTypeaheadSelectedKeys] =
|
|
85
|
-
React.useState(selectedKeys);
|
|
86
|
-
|
|
87
|
-
React.useEffect(() => {
|
|
88
|
-
const newTypeaheadText = getTextLabelFromSelectedKeys(
|
|
89
|
-
selectedKeys,
|
|
90
|
-
options,
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
setTypeaheadSelectedKeys(selectedKeys);
|
|
94
|
-
setTypeaheadInputText(newTypeaheadText);
|
|
95
|
-
}, [selectedKeys]);
|
|
96
|
-
|
|
97
|
-
const handleOptionChange = (selectedOption: MenuOption, e: React.SyntheticEvent<HTMLElement> | null | undefined) => {
|
|
98
|
-
e?.stopPropagation();
|
|
99
|
-
const newSelectedKeys = [selectedOption.key];
|
|
100
|
-
|
|
101
|
-
const newTypeaheadText = getTextLabelFromSelectedKeys(
|
|
102
|
-
newSelectedKeys,
|
|
103
|
-
options,
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
setTypeaheadSelectedKeys(newSelectedKeys);
|
|
107
|
-
setTypeaheadInputText(newTypeaheadText);
|
|
108
|
-
|
|
109
|
-
setTimeout(() => {
|
|
110
|
-
onSelect?.(selectedOption, e);
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
// @ts-ignore - TS2345 - Argument of type '{ current: SimpleTypeaheadRef | null; } | ((arg1: SimpleTypeaheadRef | null) => unknown)' is not assignable to parameter of type 'Ref<SimpleTypeaheadRef> | undefined'.
|
|
115
|
-
React.useImperativeHandle(ref, () => ({
|
|
116
|
-
selectedKeys: typeaheadSelectedKeys,
|
|
117
|
-
}));
|
|
118
|
-
|
|
119
|
-
return (
|
|
120
|
-
<Typeahead
|
|
121
|
-
{...inputProps}
|
|
122
|
-
allowInternalFilter={allowInternalFilter}
|
|
123
|
-
classNames={classNames}
|
|
124
|
-
size={size}
|
|
125
|
-
placeholder={placeholder}
|
|
126
|
-
onSelect={handleOptionChange}
|
|
127
|
-
onMenuOpen={onMenuOpen}
|
|
128
|
-
onMenuClose={onMenuClose}
|
|
129
|
-
typeaheadInputText={typeaheadInputText}
|
|
130
|
-
onSearch={(e) => {
|
|
131
|
-
setTypeaheadInputText(e.target.value);
|
|
132
|
-
onSearch?.(e);
|
|
133
|
-
}}
|
|
134
|
-
onClear={() => {
|
|
135
|
-
setTypeaheadInputText('');
|
|
136
|
-
setTypeaheadSelectedKeys([]);
|
|
137
|
-
onClear?.();
|
|
138
|
-
}}
|
|
139
|
-
menu={{
|
|
140
|
-
options,
|
|
141
|
-
selectedKeys: typeaheadSelectedKeys,
|
|
142
|
-
resolveLabel,
|
|
143
|
-
resolveSecondaryLabel,
|
|
144
|
-
size,
|
|
145
|
-
virtualization: menuVirtualization,
|
|
146
|
-
header,
|
|
147
|
-
footer,
|
|
148
|
-
classNames: menuClassNames,
|
|
149
|
-
showLabelTooltip,
|
|
150
|
-
allowWrap,
|
|
151
|
-
}}
|
|
152
|
-
clickAwayRef={clickAwayRef}
|
|
153
|
-
elevation={elevation}
|
|
154
|
-
/>
|
|
155
|
-
);
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
// @ts-ignore - TS2345 - Argument of type '(props: SimpleTypeaheadProps & Omit<Omit<Flow.ComponentProps<typeof Typeahead>, 'allowInternalFilter' | 'classNames' | 'size' | 'placeholder' | 'onSelect' | 'onMenuOpen' | 'onMenuClose' | 'typeaheadInputText' | 'onSearch' | 'onClear' | 'menu' | 'clickAwayRef' | 'elevation'>, keyof SimpleTypeaheadProps>, ref: { curre...' is not assignable to parameter of type 'ForwardRefRenderFunction<SimpleTypeaheadProps, SimpleTypeaheadRef>'.
|
|
159
|
-
export const SimpleTypeahead: Flow.AbstractComponent<SimpleTypeaheadProps, SimpleTypeaheadRef> = React.forwardRef<SimpleTypeaheadProps, SimpleTypeaheadRef>(SimpleTypeaheadBase);
|
|
@@ -1,552 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import {useDebounce} from '../../hooks/useDebounce';
|
|
4
|
-
import type {MenuOption, MenuProps} from '../Menu';
|
|
5
|
-
import {MenuFooter, MenuHeader} from '../Menu/Menu.stories';
|
|
6
|
-
import {ELEVATION_TYPES} from '../Tooltip';
|
|
7
|
-
|
|
8
|
-
import type {TypeaheadProps} from './Typeahead';
|
|
9
|
-
import {Typeahead} from './Typeahead';
|
|
10
|
-
|
|
11
|
-
import css from './Typeahead.stories.module.css';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const DEFAULT_LIMIT = 10;
|
|
15
|
-
const DEFAULT_OFFSET = 0;
|
|
16
|
-
const elevationOptions: Array<unknown> = [...Object.values(ELEVATION_TYPES)];
|
|
17
|
-
|
|
18
|
-
const options: MenuOption[] = [
|
|
19
|
-
{key: '1', label: 'Eden Porter', iconLeft: 'user'},
|
|
20
|
-
{key: '2', label: 'Verda Rodgers', iconLeft: 'user'},
|
|
21
|
-
{
|
|
22
|
-
key: '3',
|
|
23
|
-
label:
|
|
24
|
-
'Option three this is a very long option that would truncate, and it continues even further to demonstrate how the text will behave when it exceeds the typical display width of the dropdown or typeahead component, ensuring that truncation, ellipsis, or wrapping is handled gracefully by the UI.',
|
|
25
|
-
iconLeft: 'user',
|
|
26
|
-
},
|
|
27
|
-
{key: '4', label: 'Rolf Kim', iconLeft: 'user'},
|
|
28
|
-
{key: '5', label: 'Ava Clark', iconLeft: 'user'},
|
|
29
|
-
{key: '6', label: 'Geneva Rhodes', iconLeft: 'user'},
|
|
30
|
-
{key: '7', label: 'Miranda Black', iconLeft: 'user'},
|
|
31
|
-
{key: '8', label: 'Marsh Saunders', iconLeft: 'user'},
|
|
32
|
-
{key: '9', label: 'Prunella Webb', iconLeft: 'user'},
|
|
33
|
-
{key: '10', label: 'Andy Mullins', iconLeft: 'user'},
|
|
34
|
-
{key: '11', label: 'Jade Watkins', iconLeft: 'user'},
|
|
35
|
-
{key: '12', label: 'Wally Wolfe', iconLeft: 'user'},
|
|
36
|
-
{key: '13', label: 'Misty Lipsey', iconLeft: 'user'},
|
|
37
|
-
{key: '14', label: 'Dwight Gibbs', iconLeft: 'user'},
|
|
38
|
-
{key: '15', label: 'Ronald Rhodes', iconLeft: 'user'},
|
|
39
|
-
{key: '16', label: 'Sophia Evans', iconLeft: 'user'},
|
|
40
|
-
{key: '17', label: 'Liam Harris', iconLeft: 'user'},
|
|
41
|
-
{key: '18', label: 'Olivia Grant', iconLeft: 'user'},
|
|
42
|
-
{key: '19', label: 'Ethan Daniels', iconLeft: 'user'},
|
|
43
|
-
{key: '20', label: 'Chloe Thomas', iconLeft: 'user'},
|
|
44
|
-
{key: '21', label: 'Lucas Martinez', iconLeft: 'user'},
|
|
45
|
-
{key: '22', label: 'Benjamin Wright', iconLeft: 'user'},
|
|
46
|
-
{key: '23', label: 'Amelia King', iconLeft: 'user'},
|
|
47
|
-
{key: '24', label: 'James Lewis', iconLeft: 'user'},
|
|
48
|
-
{key: '25', label: 'Pamela Fennimore', iconLeft: 'user'},
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
export default {
|
|
52
|
-
tags: ['autodocs'],
|
|
53
|
-
title: 'Form Components/Typeahead/Generic Typeahead',
|
|
54
|
-
component: Typeahead,
|
|
55
|
-
argTypes: {
|
|
56
|
-
size: {
|
|
57
|
-
description:
|
|
58
|
-
'Typeahead supports only two size variants namely small and medium. `small` < `medium`',
|
|
59
|
-
options: ['medium', 'small'],
|
|
60
|
-
control: {
|
|
61
|
-
type: 'select',
|
|
62
|
-
},
|
|
63
|
-
table: {
|
|
64
|
-
type: {summary: 'enum'},
|
|
65
|
-
defaultValue: {summary: 'medium'},
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
menuSize: {
|
|
69
|
-
description:
|
|
70
|
-
'Size of the menu.If not specified menu would take the size prop of typeahead. `small` < `medium`',
|
|
71
|
-
options: ['medium', 'small'],
|
|
72
|
-
control: {
|
|
73
|
-
type: 'select',
|
|
74
|
-
},
|
|
75
|
-
table: {
|
|
76
|
-
type: {summary: 'enum'},
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
elevation: {
|
|
80
|
-
description:
|
|
81
|
-
'This is passed to Typeahead. Elevation level for the dropdown menu 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.',
|
|
82
|
-
control: {
|
|
83
|
-
type: 'select',
|
|
84
|
-
},
|
|
85
|
-
options: elevationOptions,
|
|
86
|
-
table: {
|
|
87
|
-
type: {summary: 'enum'},
|
|
88
|
-
defaultValue: {summary: 'modal'},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
name: {
|
|
92
|
-
description: 'Name of the typeahead',
|
|
93
|
-
control: {
|
|
94
|
-
type: 'text',
|
|
95
|
-
},
|
|
96
|
-
table: {
|
|
97
|
-
type: {summary: 'string'},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
options: {
|
|
101
|
-
description:
|
|
102
|
-
'Typeahead options to be displayed. Each option should atleast have `{key: string, label: string}` Each option additionally supports `iconLeft` and `iconRight`',
|
|
103
|
-
control: {
|
|
104
|
-
type: 'object',
|
|
105
|
-
},
|
|
106
|
-
table: {
|
|
107
|
-
type: {summary: 'MenuOption[]'},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
disabled: {
|
|
111
|
-
description: 'if **true**, the component is disabled',
|
|
112
|
-
control: {
|
|
113
|
-
type: 'boolean',
|
|
114
|
-
},
|
|
115
|
-
table: {
|
|
116
|
-
type: {summary: 'boolean'},
|
|
117
|
-
defaultValue: {summary: 'false'},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
isLoading: {
|
|
121
|
-
description:
|
|
122
|
-
'if **true**, the component would add a loader. The loader occupies space outside the container.',
|
|
123
|
-
control: {
|
|
124
|
-
type: 'boolean',
|
|
125
|
-
},
|
|
126
|
-
table: {
|
|
127
|
-
type: {summary: 'boolean'},
|
|
128
|
-
defaultValue: {summary: 'false'},
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
menuOpenOffset: {
|
|
132
|
-
description:
|
|
133
|
-
'A number indicating how many characters are needed to open menu',
|
|
134
|
-
control: {
|
|
135
|
-
type: 'number',
|
|
136
|
-
},
|
|
137
|
-
table: {
|
|
138
|
-
type: {summary: 'number'},
|
|
139
|
-
defaultValue: {summary: 1},
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
placeholder: {
|
|
143
|
-
description:
|
|
144
|
-
'Placeholder of typeahead. This appears inside the input box',
|
|
145
|
-
control: {
|
|
146
|
-
type: 'text',
|
|
147
|
-
},
|
|
148
|
-
table: {
|
|
149
|
-
type: {summary: 'string'},
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
locked: {
|
|
153
|
-
description:
|
|
154
|
-
'if **true**, the component is locked, Locked state is the readonly state of the typeahead',
|
|
155
|
-
control: {
|
|
156
|
-
type: 'boolean',
|
|
157
|
-
},
|
|
158
|
-
table: {
|
|
159
|
-
type: {summary: 'boolean'},
|
|
160
|
-
defaultValue: {summary: 'false'},
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
error: {
|
|
164
|
-
description:
|
|
165
|
-
'if **true**, the component is moved to error state, Error state displays a red border surrounding input',
|
|
166
|
-
control: {
|
|
167
|
-
type: 'boolean',
|
|
168
|
-
},
|
|
169
|
-
table: {
|
|
170
|
-
type: {summary: 'boolean'},
|
|
171
|
-
defaultValue: {summary: 'false'},
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
errorText: {
|
|
175
|
-
description:
|
|
176
|
-
'Error text to be displayed on the bottom of the input. This uses `colorTextDanger`',
|
|
177
|
-
control: {
|
|
178
|
-
type: 'text',
|
|
179
|
-
},
|
|
180
|
-
table: {
|
|
181
|
-
type: {summary: 'string'},
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
label: {
|
|
185
|
-
description:
|
|
186
|
-
'Primary label of the typeahead. This appears on top of typeahead input',
|
|
187
|
-
control: {
|
|
188
|
-
type: 'text',
|
|
189
|
-
},
|
|
190
|
-
table: {
|
|
191
|
-
type: {summary: 'string'},
|
|
192
|
-
},
|
|
193
|
-
},
|
|
194
|
-
helperText: {
|
|
195
|
-
description:
|
|
196
|
-
'Secondary label of the typeahead. This appears on bottom of typeahead input, if the typeahead is in `error` state the priority is given to `errorText`, in such cases secondary label wont be displayed',
|
|
197
|
-
control: {
|
|
198
|
-
type: 'text',
|
|
199
|
-
},
|
|
200
|
-
table: {
|
|
201
|
-
type: {summary: 'string'},
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
classNames: {
|
|
205
|
-
description: 'External classnames to be applied',
|
|
206
|
-
control: {
|
|
207
|
-
type: 'object',
|
|
208
|
-
},
|
|
209
|
-
table: {
|
|
210
|
-
type: {summary: '{wrapper?: string, box?: string}'},
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
onSelect: {
|
|
214
|
-
description:
|
|
215
|
-
'**onSelect** handler is triggered when there is a selection of an option from Menu',
|
|
216
|
-
action: 'Option Selected',
|
|
217
|
-
table: {
|
|
218
|
-
type: {
|
|
219
|
-
summary:
|
|
220
|
-
'(option: MenuOption, ?SyntheticEvent<HTMLElement>) => mixed',
|
|
221
|
-
},
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
iconLeftName: {
|
|
225
|
-
description:
|
|
226
|
-
'Left icon to be applied to the button, it internally uses the `Icon` component to render icons. By default Typeahead has magnifying-glass icon',
|
|
227
|
-
control: {
|
|
228
|
-
type: 'text',
|
|
229
|
-
},
|
|
230
|
-
table: {
|
|
231
|
-
type: {summary: 'string'},
|
|
232
|
-
defaultValue: {summary: 'magnifying-glass'},
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
onClear: {
|
|
236
|
-
description:
|
|
237
|
-
'**onClear** handler is triggered when clear button is clicked.',
|
|
238
|
-
action: 'cleared',
|
|
239
|
-
table: {
|
|
240
|
-
type: {summary: '() => void'},
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
onSearch: {
|
|
244
|
-
description:
|
|
245
|
-
'**onSearch** handler is triggered when there change in the input value',
|
|
246
|
-
action: 'Searched',
|
|
247
|
-
table: {
|
|
248
|
-
type: {
|
|
249
|
-
summary: '(evt: SyntheticInputEvent<HTMLInputElement>) => mixed',
|
|
250
|
-
},
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
onFocus: {
|
|
254
|
-
description:
|
|
255
|
-
'**onFocus** handler is triggered when typeahead is focussed',
|
|
256
|
-
action: 'focussed',
|
|
257
|
-
table: {
|
|
258
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
259
|
-
},
|
|
260
|
-
},
|
|
261
|
-
onBlur: {
|
|
262
|
-
description: '**onBlur** handler is triggered when typeahead is blurred',
|
|
263
|
-
action: 'blurred',
|
|
264
|
-
table: {
|
|
265
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
266
|
-
},
|
|
267
|
-
},
|
|
268
|
-
typeaheadInputText: {
|
|
269
|
-
description:
|
|
270
|
-
'Text that appears inside the top input. Since Typeahead is a controlled component, this has to be set by caller',
|
|
271
|
-
table: {
|
|
272
|
-
type: {summary: 'string'},
|
|
273
|
-
},
|
|
274
|
-
},
|
|
275
|
-
menu: {
|
|
276
|
-
description: 'Menu props to use',
|
|
277
|
-
control: {
|
|
278
|
-
type: 'object',
|
|
279
|
-
},
|
|
280
|
-
table: {
|
|
281
|
-
type: {summary: 'MenuProps'},
|
|
282
|
-
},
|
|
283
|
-
},
|
|
284
|
-
onMenuOpen: {
|
|
285
|
-
description:
|
|
286
|
-
'**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.',
|
|
287
|
-
action: 'clicked',
|
|
288
|
-
table: {
|
|
289
|
-
type: {summary: '() => mixed'},
|
|
290
|
-
},
|
|
291
|
-
},
|
|
292
|
-
onMenuClose: {
|
|
293
|
-
description:
|
|
294
|
-
'**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.',
|
|
295
|
-
action: 'clicked',
|
|
296
|
-
table: {
|
|
297
|
-
type: {summary: '() => mixed'},
|
|
298
|
-
},
|
|
299
|
-
},
|
|
300
|
-
clickAwayRef: {
|
|
301
|
-
type: {optional: true},
|
|
302
|
-
description: 'ref that contains the functions to open or close the child',
|
|
303
|
-
table: {
|
|
304
|
-
type: {
|
|
305
|
-
summary: 'ClickAwayRefType',
|
|
306
|
-
},
|
|
307
|
-
},
|
|
308
|
-
},
|
|
309
|
-
allowInternalFilter: {
|
|
310
|
-
description:
|
|
311
|
-
'Allows the **MenuOptions** to be filtered internally based on the **label** of each option. When this is set to false, the internal filtering mechanism that matches options against the search text is skipped. This means it assumes that the **MenuOptions** has already been filtered externally and will display the provided options as they are without any further processing.',
|
|
312
|
-
control: {
|
|
313
|
-
type: 'boolean',
|
|
314
|
-
},
|
|
315
|
-
table: {
|
|
316
|
-
type: {summary: 'boolean'},
|
|
317
|
-
defaultValue: {summary: true},
|
|
318
|
-
},
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
parameters: {
|
|
322
|
-
docs: {
|
|
323
|
-
subtitle: 'Generates a Typeahead component',
|
|
324
|
-
description: {
|
|
325
|
-
component: `
|
|
326
|
-
\`\`\`js
|
|
327
|
-
import { Typeahead } from "@spaced-out/ui-design-system/lib/components/Typeahead";
|
|
328
|
-
\`\`\`
|
|
329
|
-
**Typeahead** 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>**
|
|
330
|
-
components. It internally uses **Floating UI** to
|
|
331
|
-
position itself in context of DOM. Supports a bunch of callbacks listed below. Typeahead automatically filters options when a
|
|
332
|
-
substring match is found in option(s). This is done using \`label\` prop of option.
|
|
333
|
-
|
|
334
|
-
- Supports passing a \`clickAwayRef\` prop to the component.
|
|
335
|
-
- 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.
|
|
336
|
-
- 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.
|
|
337
|
-
|
|
338
|
-
**Purpose:** The Typeahead component is designed to enhance performance and user experience by initially displaying a limited set of menu options (e.g., most popular or recently used items). Once the user begins typing into the input field, the component dynamically queries the API and displays all matching results based on the input text. This approach minimizes initial load time while ensuring that users can still access the full range of options through search-driven filtering.
|
|
339
|
-
|
|
340
|
-
Currently typeahead only supports simple menu options.
|
|
341
|
-
|
|
342
|
-
\`\`\`jsx
|
|
343
|
-
export const _BasicTypeahead = (args: TypeaheadProps): React.ReactNode => {
|
|
344
|
-
const clickAwayRef = React.useRef(null);
|
|
345
|
-
const [inputText, setInputText] = React.useState('');
|
|
346
|
-
const [isLoading, setIsLoading] = React.useState(false);
|
|
347
|
-
const [menuOptions, setMenuOptions] = React.useState([]);
|
|
348
|
-
|
|
349
|
-
const debouncedInputText = useDebounce(inputText, 500);
|
|
350
|
-
|
|
351
|
-
const fetchData = async () => {
|
|
352
|
-
setIsLoading(true);
|
|
353
|
-
const newOptions = await getPaginatedData(
|
|
354
|
-
debouncedInputText,
|
|
355
|
-
DEFAULT_OFFSET,
|
|
356
|
-
DEFAULT_LIMIT,
|
|
357
|
-
);
|
|
358
|
-
setMenuOptions(newOptions);
|
|
359
|
-
setIsLoading(false);
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
React.useEffect(() => {
|
|
363
|
-
fetchData();
|
|
364
|
-
}, [debouncedInputText]);
|
|
365
|
-
|
|
366
|
-
return (
|
|
367
|
-
<div className={css.typeaheadWrapper}>
|
|
368
|
-
<Typeahead
|
|
369
|
-
{...args}
|
|
370
|
-
menu={{
|
|
371
|
-
options: menuOptions,
|
|
372
|
-
virtualization: {enable: true},
|
|
373
|
-
}}
|
|
374
|
-
onClear={() => setInputText('')}
|
|
375
|
-
onSearch={(e) => setInputText(e.target.value)}
|
|
376
|
-
onSelect={({label}) => setInputText(label || '')}
|
|
377
|
-
isLoading={isLoading}
|
|
378
|
-
clickAwayRef={clickAwayRef}
|
|
379
|
-
typeaheadInputText={inputText}
|
|
380
|
-
allowInternalFilter={false}
|
|
381
|
-
/>
|
|
382
|
-
</div>
|
|
383
|
-
);
|
|
384
|
-
}
|
|
385
|
-
\`\`\`
|
|
386
|
-
`,
|
|
387
|
-
},
|
|
388
|
-
},
|
|
389
|
-
storySource: {
|
|
390
|
-
componentPath: '/src/components/Typeahead/Typeahead.jsx',
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
};
|
|
394
|
-
|
|
395
|
-
const menuProps: MenuProps = {
|
|
396
|
-
options,
|
|
397
|
-
};
|
|
398
|
-
|
|
399
|
-
export const _Typeahead = (args: TypeaheadProps) => {
|
|
400
|
-
const [inputText, setInputText] = React.useState('');
|
|
401
|
-
return (
|
|
402
|
-
<div className={css.typeaheadWrapper}>
|
|
403
|
-
<Typeahead
|
|
404
|
-
{...args}
|
|
405
|
-
typeaheadInputText={inputText}
|
|
406
|
-
onSearch={(e) => setInputText(e.target.value)}
|
|
407
|
-
onSelect={(option) => {
|
|
408
|
-
// @ts-ignore - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
409
|
-
setInputText(option.label);
|
|
410
|
-
}}
|
|
411
|
-
onClear={() => setInputText('')}
|
|
412
|
-
/>
|
|
413
|
-
</div>
|
|
414
|
-
);
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
_Typeahead.args = {
|
|
418
|
-
label: 'Search a name',
|
|
419
|
-
menu: menuProps,
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
export const _TypeaheadWithTooltipOptions = (args: TypeaheadProps) => {
|
|
423
|
-
const [inputText, setInputText] = React.useState('');
|
|
424
|
-
return (
|
|
425
|
-
<div className={css.typeaheadWrapper}>
|
|
426
|
-
<Typeahead
|
|
427
|
-
{...args}
|
|
428
|
-
typeaheadInputText={inputText}
|
|
429
|
-
onSearch={(e) => setInputText(e.target.value)}
|
|
430
|
-
onSelect={(option) => {
|
|
431
|
-
// @ts-ignore - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
432
|
-
setInputText(option.label);
|
|
433
|
-
}}
|
|
434
|
-
onClear={() => setInputText('')}
|
|
435
|
-
/>
|
|
436
|
-
</div>
|
|
437
|
-
);
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
_TypeaheadWithTooltipOptions.args = {
|
|
441
|
-
label: 'Search a name',
|
|
442
|
-
menu: {...menuProps, showLabelTooltip: {maxLines: 10}},
|
|
443
|
-
};
|
|
444
|
-
|
|
445
|
-
export const _WithHeaderAndFooter = (args: TypeaheadProps) => (<WithHeaderAndFooter {...args} />);
|
|
446
|
-
|
|
447
|
-
export const WithHeaderAndFooter = (args: TypeaheadProps) => {
|
|
448
|
-
const clickAwayRef = React.useRef(null);
|
|
449
|
-
const [inputText, setInputText] = React.useState('');
|
|
450
|
-
|
|
451
|
-
const onSave = () => {
|
|
452
|
-
if (clickAwayRef.current) {
|
|
453
|
-
// @ts-ignore - TS2339 - Property 'forceClose' does not exist on type 'never'.
|
|
454
|
-
clickAwayRef.current.forceClose();
|
|
455
|
-
}
|
|
456
|
-
};
|
|
457
|
-
|
|
458
|
-
return (
|
|
459
|
-
<div className={css.typeaheadWrapper}>
|
|
460
|
-
<Typeahead
|
|
461
|
-
{...args}
|
|
462
|
-
typeaheadInputText={inputText}
|
|
463
|
-
onSearch={(e) => setInputText(e.target.value)}
|
|
464
|
-
onSelect={(option) => {
|
|
465
|
-
// @ts-ignore - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'SetStateAction<string>'.
|
|
466
|
-
setInputText(option.label);
|
|
467
|
-
}}
|
|
468
|
-
menu={{
|
|
469
|
-
options,
|
|
470
|
-
header: <MenuHeader />,
|
|
471
|
-
footer: <MenuFooter onSave={onSave} />,
|
|
472
|
-
}}
|
|
473
|
-
onClear={() => setInputText('')}
|
|
474
|
-
clickAwayRef={clickAwayRef}
|
|
475
|
-
/>
|
|
476
|
-
</div>
|
|
477
|
-
);
|
|
478
|
-
};
|
|
479
|
-
|
|
480
|
-
_WithHeaderAndFooter.args = {
|
|
481
|
-
label: 'Search a name',
|
|
482
|
-
};
|
|
483
|
-
|
|
484
|
-
const getPaginatedData = ({
|
|
485
|
-
limit,
|
|
486
|
-
offset,
|
|
487
|
-
searchText,
|
|
488
|
-
}: {
|
|
489
|
-
limit: number;
|
|
490
|
-
offset: number;
|
|
491
|
-
searchText: string;
|
|
492
|
-
}) =>
|
|
493
|
-
new Promise((resolve: (result: Promise<Array<MenuOption>> | Array<MenuOption>) => void) =>
|
|
494
|
-
setTimeout(() => {
|
|
495
|
-
const filteredOptions = options.filter((option) =>
|
|
496
|
-
option.label
|
|
497
|
-
? option.label.toLowerCase().includes(searchText.toLowerCase())
|
|
498
|
-
: true,
|
|
499
|
-
);
|
|
500
|
-
|
|
501
|
-
resolve(filteredOptions.slice(offset, offset + limit));
|
|
502
|
-
}, 1000),
|
|
503
|
-
);
|
|
504
|
-
|
|
505
|
-
export const _WithPaginationAndVirtualization = (args: TypeaheadProps) => {
|
|
506
|
-
const clickAwayRef = React.useRef(null);
|
|
507
|
-
const [inputText, setInputText] = React.useState('');
|
|
508
|
-
const [isLoading, setIsLoading] = React.useState(false);
|
|
509
|
-
const [menuOptions, setMenuOptions] = React.useState([]);
|
|
510
|
-
|
|
511
|
-
const debouncedInputText = useDebounce(inputText, 500);
|
|
512
|
-
|
|
513
|
-
const fetchData = async () => {
|
|
514
|
-
setIsLoading(true);
|
|
515
|
-
const newOptions = await getPaginatedData({
|
|
516
|
-
limit: DEFAULT_LIMIT,
|
|
517
|
-
offset: DEFAULT_OFFSET,
|
|
518
|
-
searchText: debouncedInputText,
|
|
519
|
-
});
|
|
520
|
-
// @ts-ignore - TS2345 - Argument of type 'MenuOption[]' is not assignable to parameter of type 'SetStateAction<never[]>'.
|
|
521
|
-
setMenuOptions(newOptions);
|
|
522
|
-
setIsLoading(false);
|
|
523
|
-
};
|
|
524
|
-
|
|
525
|
-
React.useEffect(() => {
|
|
526
|
-
fetchData();
|
|
527
|
-
}, [debouncedInputText]);
|
|
528
|
-
|
|
529
|
-
return (
|
|
530
|
-
<div className={css.typeaheadWrapper}>
|
|
531
|
-
<Typeahead
|
|
532
|
-
{...args}
|
|
533
|
-
menu={{
|
|
534
|
-
options: menuOptions,
|
|
535
|
-
virtualization: {enable: true},
|
|
536
|
-
}}
|
|
537
|
-
onClear={() => setInputText('')}
|
|
538
|
-
onSearch={(e) => setInputText(e.target.value)}
|
|
539
|
-
onSelect={({label}) => setInputText(label || '')}
|
|
540
|
-
isLoading={isLoading}
|
|
541
|
-
clickAwayRef={clickAwayRef}
|
|
542
|
-
typeaheadInputText={inputText}
|
|
543
|
-
allowInternalFilter={false}
|
|
544
|
-
/>
|
|
545
|
-
</div>
|
|
546
|
-
);
|
|
547
|
-
};
|
|
548
|
-
|
|
549
|
-
_WithPaginationAndVirtualization.args = {
|
|
550
|
-
label: 'Search a name',
|
|
551
|
-
menuOpenOffset: 0,
|
|
552
|
-
};
|