@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,124 +0,0 @@
|
|
|
1
|
-
import React, {useState} from 'react';
|
|
2
|
-
|
|
3
|
-
import {Button} from '../../components/Button';
|
|
4
|
-
import {Input} from '../../components/Input';
|
|
5
|
-
import {BodyLarge} from '../../components/Text';
|
|
6
|
-
|
|
7
|
-
import {convertFileSize, range, uuid} from './helpers';
|
|
8
|
-
|
|
9
|
-
import css from './helpers.stories.module.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
title: 'Utils/Helper Functions',
|
|
15
|
-
parameters: {
|
|
16
|
-
docs: {
|
|
17
|
-
description: {
|
|
18
|
-
component: `
|
|
19
|
-
\`\`\`js
|
|
20
|
-
import { uuid, range } from "@spaced-out/ui-design-system/lib/utils/helpers";
|
|
21
|
-
\`\`\`
|
|
22
|
-
This story showcases helper functions that can be used in different scenarios.
|
|
23
|
-
|
|
24
|
-
### Helper Functions
|
|
25
|
-
- \`uuid\`: Generates a unique identifier.
|
|
26
|
-
- \`range\`: Creates an array of numbers within a specified range.
|
|
27
|
-
- \`convertFileSize\`: Converts a file size in bytes to KB, MB, or GB.
|
|
28
|
-
|
|
29
|
-
### Usage
|
|
30
|
-
\`\`\`jsx
|
|
31
|
-
import { uuid, range } from './helpers';
|
|
32
|
-
|
|
33
|
-
const uniqueId = uuid(); // Example output: "983651f0-a7db-4f84-b0d2-4d348b5e5199"
|
|
34
|
-
|
|
35
|
-
const numbers = range(1, 5); // Example output: [1, 2, 3, 4, 5]
|
|
36
|
-
|
|
37
|
-
const fileSize = convertFileSize(1024 * 1024 * 1024); // 1 GB
|
|
38
|
-
\`\`\`
|
|
39
|
-
`,
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const Example = (): React.ReactElement<React.ComponentProps<'div'>> => {
|
|
46
|
-
const [uniqueId, setUniqueId] = useState('');
|
|
47
|
-
const [rangeStart, setRangeStart] = useState(1);
|
|
48
|
-
const [rangeEnd, setRangeEnd] = useState(5);
|
|
49
|
-
const [numbers, setNumbers] = useState([]);
|
|
50
|
-
const [fileSize, setFileSize] = useState(1024);
|
|
51
|
-
|
|
52
|
-
const generateUniqueId = () => {
|
|
53
|
-
const id = uuid();
|
|
54
|
-
setUniqueId(id);
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const generateRange = () => {
|
|
58
|
-
// @ts-ignore - TS2345 - Argument of type 'number' is not assignable to parameter of type 'string'.
|
|
59
|
-
const start = parseInt(rangeStart, 10);
|
|
60
|
-
// @ts-ignore - TS2345 - Argument of type 'number' is not assignable to parameter of type 'string'.
|
|
61
|
-
const end = parseInt(rangeEnd, 10);
|
|
62
|
-
const generatedNumbers = range(start, end);
|
|
63
|
-
// @ts-ignore - TS2345 - Argument of type 'number[]' is not assignable to parameter of type 'SetStateAction<never[]>'.
|
|
64
|
-
setNumbers(generatedNumbers);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
return (
|
|
68
|
-
<div>
|
|
69
|
-
<BodyLarge className={css.text}>
|
|
70
|
-
This story showcases helper functions that can be used in different
|
|
71
|
-
scenarios.
|
|
72
|
-
</BodyLarge>
|
|
73
|
-
<div className={css.playground}>
|
|
74
|
-
<div className={css.playgroundItem}>
|
|
75
|
-
<BodyLarge>Generated Unique ID: {uniqueId}</BodyLarge>
|
|
76
|
-
<Button onClick={generateUniqueId}>Generate Unique ID</Button>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
<div className={css.playgroundItem}>
|
|
80
|
-
<BodyLarge>Generated Range: {numbers.join(', ')}</BodyLarge>
|
|
81
|
-
<div>
|
|
82
|
-
<label htmlFor="rangeStart">Start:</label>
|
|
83
|
-
<Input
|
|
84
|
-
type="number"
|
|
85
|
-
id="rangeStart"
|
|
86
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
87
|
-
value={rangeStart}
|
|
88
|
-
// @ts-ignore - TS2345 - Argument of type 'string' is not assignable to parameter of type 'SetStateAction<number>'.
|
|
89
|
-
onChange={(event) => setRangeStart(event.target.value)}
|
|
90
|
-
/>
|
|
91
|
-
</div>
|
|
92
|
-
<div>
|
|
93
|
-
<label htmlFor="rangeEnd">End:</label>
|
|
94
|
-
<Input
|
|
95
|
-
type="number"
|
|
96
|
-
id="rangeEnd"
|
|
97
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
98
|
-
value={rangeEnd}
|
|
99
|
-
// @ts-ignore - TS2345 - Argument of type 'string' is not assignable to parameter of type 'SetStateAction<number>'.
|
|
100
|
-
onChange={(event) => setRangeEnd(event.target.value)}
|
|
101
|
-
/>
|
|
102
|
-
</div>
|
|
103
|
-
<Button onClick={generateRange}>Generate Range</Button>
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
<div className={css.playgroundItem}>
|
|
107
|
-
<BodyLarge>
|
|
108
|
-
{ /* @ts-ignore - TS2345 - Argument of type 'number' is not assignable to parameter of type 'string'. */}
|
|
109
|
-
Generated File Size: {convertFileSize(parseInt(fileSize))}
|
|
110
|
-
</BodyLarge>
|
|
111
|
-
<div>
|
|
112
|
-
<Input
|
|
113
|
-
type="number"
|
|
114
|
-
id="rangeStart"
|
|
115
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
116
|
-
value={fileSize || 0}
|
|
117
|
-
onChange={(event) => setFileSize(parseInt(event.target.value))}
|
|
118
|
-
/>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
);
|
|
124
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
export const uuid = (): string => {
|
|
2
|
-
let dt = new Date().getTime();
|
|
3
|
-
|
|
4
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
5
|
-
const r = (dt + Math.random() * 16) % 16 | 0;
|
|
6
|
-
dt = Math.floor(dt / 16);
|
|
7
|
-
return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export const range = (start: number, end: number): Array<number> => {
|
|
12
|
-
const length = end - start + 1;
|
|
13
|
-
return Array.from({length}, (_, i) => start + i);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const convertFileSize = (fileSize: number = 0): string => {
|
|
17
|
-
let sizeInBytes = fileSize;
|
|
18
|
-
// Check if the file size is less than 1024
|
|
19
|
-
if (sizeInBytes < 0) {
|
|
20
|
-
sizeInBytes = Math.abs(sizeInBytes);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Handle the case where the file size is 0 or negative
|
|
24
|
-
if (sizeInBytes <= 0) {
|
|
25
|
-
return '0 B';
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Check if the file size is less than 1024
|
|
29
|
-
if (sizeInBytes < 1024) {
|
|
30
|
-
// Return the file size in bytes
|
|
31
|
-
return sizeInBytes.toString() + ' B';
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Check if the file size is less than 1048576
|
|
35
|
-
else if (sizeInBytes < 1048576) {
|
|
36
|
-
// Return the file size in KB
|
|
37
|
-
return (sizeInBytes / 1024).toFixed(1) + ' KB';
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Check if the file size is less than 1073741824
|
|
41
|
-
else if (sizeInBytes < 1073741824) {
|
|
42
|
-
// Return the file size in MB
|
|
43
|
-
return (sizeInBytes / 1048576).toFixed(1) + ' MB';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Otherwise, the file size is greater than or equal to 1073741824
|
|
47
|
-
else {
|
|
48
|
-
// Return the file size in GB
|
|
49
|
-
return (sizeInBytes / 1073741824).toFixed(1) + ' GB';
|
|
50
|
-
}
|
|
51
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './helpers';
|
package/lib/utils/index.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export * from './array';
|
|
2
|
-
export * from './charts';
|
|
3
|
-
export * from './classify';
|
|
4
|
-
export * from './click-away';
|
|
5
|
-
export * from './date-range-picker';
|
|
6
|
-
export * from './dom';
|
|
7
|
-
export * from './helpers';
|
|
8
|
-
export * from './makeClassNameComponent';
|
|
9
|
-
export * from './menu';
|
|
10
|
-
export * from './merge-refs';
|
|
11
|
-
export * from './rating';
|
|
12
|
-
export * from './score-bar';
|
|
13
|
-
export * from './string';
|
|
14
|
-
export * from './tokens';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './makeClassNameComponent';
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import React, {useState} from 'react';
|
|
2
|
-
|
|
3
|
-
import {makeClassNameComponent} from './makeClassNameComponent';
|
|
4
|
-
|
|
5
|
-
import css from './makeClassNameComponent.stories.module.css';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
title: 'Utils/Make Class Name Component',
|
|
11
|
-
parameters: {
|
|
12
|
-
docs: {
|
|
13
|
-
description: {
|
|
14
|
-
component: `
|
|
15
|
-
\`\`\`js
|
|
16
|
-
import { makeClassNameComponent } from "@spaced-out/ui-design-system/lib/utils/makeClassNameComponent";
|
|
17
|
-
\`\`\`
|
|
18
|
-
This story showcases the utility functions \`makeClassNameComponent\` and \`makeClassNameComponentCustom\`.
|
|
19
|
-
|
|
20
|
-
### \`makeClassNameComponent\`
|
|
21
|
-
The \`makeClassNameComponent\` function creates a higher-order component (HOC) that adds a base class name and combines it with the existing class name.
|
|
22
|
-
|
|
23
|
-
### \`makeClassNameComponentCustom\`
|
|
24
|
-
The \`makeClassNameComponentCustom\` function is similar to \`makeClassNameComponent\`, but allows you to use a custom component as the base component.
|
|
25
|
-
|
|
26
|
-
### Usage
|
|
27
|
-
Please refer to the individual functions for usage examples.
|
|
28
|
-
`,
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const Example = (): React.ReactElement<React.ComponentProps<'div'>> => {
|
|
35
|
-
const [className] = useState('');
|
|
36
|
-
|
|
37
|
-
const ClassNameDiv = makeClassNameComponent(css.container, 'div');
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<div>
|
|
41
|
-
<ClassNameDiv className={className}>
|
|
42
|
-
I'm a div created with make className component
|
|
43
|
-
</ClassNameDiv>
|
|
44
|
-
</div>
|
|
45
|
-
);
|
|
46
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
import classify from '../classify';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export function nameHoc<C, T extends React.ComponentType<C>, C2>(
|
|
8
|
-
WrapperComponent: T,
|
|
9
|
-
WrappedComponent: React.ComponentType<C2>,
|
|
10
|
-
hocName: string,
|
|
11
|
-
): T {
|
|
12
|
-
const wrappedComponentName =
|
|
13
|
-
WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
14
|
-
WrapperComponent.displayName = `${hocName}(${wrappedComponentName})`;
|
|
15
|
-
return WrapperComponent;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// @ts-ignore - TS2322 - Type 'T' is not assignable to type 'ComponentType<P>'.
|
|
19
|
-
export type ClassNameComponent<T = 'div', I = React.ElementRef<T>> = Flow.AbstractComponent<ComponentProps<T>, I>;
|
|
20
|
-
// @ts-ignore - TS2322 - Type 'C' is not assignable to type 'ComponentType<P>'.
|
|
21
|
-
export function makeClassNameComponent<C extends string>(baseClassName: string, ComponentType: C = 'div', name?: string): Flow.AbstractComponent<ComponentProps<C>, React.ElementRef<C>> {
|
|
22
|
-
return React.forwardRef(
|
|
23
|
-
// @ts-ignore - TS7031 - Binding element 'className' implicitly has an 'any' type. | TS7006 - Parameter 'ref' implicitly has an 'any' type.
|
|
24
|
-
nameComponent(({className, ...props}, ref) => (
|
|
25
|
-
// @ts-ignore - TS2604 - JSX element type 'ComponentType' does not have any construct or call signatures.
|
|
26
|
-
(<ComponentType
|
|
27
|
-
{...props}
|
|
28
|
-
ref={ref}
|
|
29
|
-
className={classify(baseClassName, className)}
|
|
30
|
-
/>)
|
|
31
|
-
), `CNC(${name || ComponentType})`),
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function makeClassNameComponentCustom<C extends Readonly<{
|
|
36
|
-
className?: string;
|
|
37
|
-
}>, B>(baseClassName: string, ComponentType: Flow.AbstractComponent<C, B>): Flow.AbstractComponent<C, B> {
|
|
38
|
-
return React.forwardRef(
|
|
39
|
-
// @ts-ignore - TS2345 - Argument of type 'ComponentType<unknown>' is not assignable to parameter of type 'ForwardRefRenderFunction<B, unknown>'.
|
|
40
|
-
nameHoc(
|
|
41
|
-
// @ts-ignore - TS2345 - Argument of type '({ className, ...props }: { [x: string]: any; className: any; }, ref: any) => Element' is not assignable to parameter of type 'ComponentType<unknown>'. | TS7031 - Binding element 'className' implicitly has an 'any' type. | TS7006 - Parameter 'ref' implicitly has an 'any' type.
|
|
42
|
-
({className, ...props}, ref) => (
|
|
43
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
44
|
-
<ComponentType
|
|
45
|
-
{...props}
|
|
46
|
-
ref={ref}
|
|
47
|
-
className={classify(baseClassName, className)}
|
|
48
|
-
/>
|
|
49
|
-
),
|
|
50
|
-
ComponentType,
|
|
51
|
-
'CNC',
|
|
52
|
-
),
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// @ts-ignore - TS7006 - Parameter 'component' implicitly has an 'any' type.
|
|
57
|
-
function nameComponent(component, name: string) {
|
|
58
|
-
component.displayName = name;
|
|
59
|
-
return component;
|
|
60
|
-
}
|
package/lib/utils/menu/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './menu';
|
package/lib/utils/menu/menu.ts
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import type {MenuGroupTitleOption, MenuOption} from '../../components/Menu';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export const getSelectedKeysFromSelectedOption = (currentOption?: MenuOption, currentSelectedKeys?: Array<string>): Array<string> => {
|
|
7
|
-
if (!Array.isArray(currentSelectedKeys) || !currentOption?.key) {
|
|
8
|
-
return [];
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
let newSelectedKeys: Array<never> | Array<string> = [];
|
|
12
|
-
|
|
13
|
-
if (currentSelectedKeys.includes(currentOption.key)) {
|
|
14
|
-
newSelectedKeys = currentSelectedKeys.filter(
|
|
15
|
-
(item) => item !== currentOption.key,
|
|
16
|
-
);
|
|
17
|
-
} else {
|
|
18
|
-
newSelectedKeys = [...currentSelectedKeys, currentOption.key];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return newSelectedKeys;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const getTextLabelFromSelectedKeys = (currentSelectedKeys?: Array<string>, options?: MenuOption[]): string => {
|
|
25
|
-
if (!Array.isArray(currentSelectedKeys) || !Array.isArray(options)) {
|
|
26
|
-
return '';
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const selectedOptions = getOptionsFromKeys(options, currentSelectedKeys);
|
|
30
|
-
|
|
31
|
-
return selectedOptions.map((option) => option.label).join(', ');
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const getButtonLabelFromSelectedKeys = (currentSelectedKeys?: Array<string>, label?: React.ReactNode) => {
|
|
35
|
-
if (
|
|
36
|
-
!Array.isArray(currentSelectedKeys) ||
|
|
37
|
-
typeof label !== 'string' ||
|
|
38
|
-
!currentSelectedKeys.length
|
|
39
|
-
) {
|
|
40
|
-
return label;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return `(${currentSelectedKeys.length}) ${label}`;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export const getOptionFromKey = (options?: MenuOption[], key?: string): MenuOption | null | undefined => {
|
|
47
|
-
if (!Array.isArray(options) || !key || !options.length) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return options.find((option) => option.key === key);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const getOptionsFromKeys = (options?: MenuOption[], keys?: Array<string>): Array<MenuOption> => {
|
|
55
|
-
if (
|
|
56
|
-
!Array.isArray(options) ||
|
|
57
|
-
!Array.isArray(keys) ||
|
|
58
|
-
!options.length ||
|
|
59
|
-
!keys.length
|
|
60
|
-
) {
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return options.filter((option) => keys.includes(option.key));
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export const getFilteredOptionsFromSearchText = (options: MenuOption[], searchText: string): MenuOption[] => {
|
|
68
|
-
if (!Array.isArray(options) || !options.length || !searchText) {
|
|
69
|
-
return options;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return options.filter((option) =>
|
|
73
|
-
option.label?.toLowerCase().includes(searchText.toLowerCase()),
|
|
74
|
-
);
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
export const getFilteredOptionsResultText = (
|
|
78
|
-
options: MenuOption[],
|
|
79
|
-
staticLabels: {
|
|
80
|
-
[key: string]: string;
|
|
81
|
-
},
|
|
82
|
-
): string => {
|
|
83
|
-
let resultCount = 0;
|
|
84
|
-
|
|
85
|
-
resultCount += options.length;
|
|
86
|
-
|
|
87
|
-
const singleResultMessage = staticLabels.RESULT ?? 'result';
|
|
88
|
-
const multipleResultsMessage = staticLabels.RESULTS ?? 'results';
|
|
89
|
-
|
|
90
|
-
const generatedResultText = `${resultCount} ${
|
|
91
|
-
resultCount > 1 ? multipleResultsMessage : singleResultMessage
|
|
92
|
-
}`;
|
|
93
|
-
|
|
94
|
-
return generatedResultText;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export const getFilteredComposeOptionsFromSearchText = (composeOptions: Array<Array<MenuOption>>, searchText: string): Array<Array<MenuOption>> => {
|
|
98
|
-
if (!Array.isArray(composeOptions) || !composeOptions.length || !searchText) {
|
|
99
|
-
return composeOptions;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return composeOptions
|
|
103
|
-
.map((optionGroup) =>
|
|
104
|
-
optionGroup.filter((option) =>
|
|
105
|
-
option.label?.toLowerCase().includes(searchText.toLowerCase()),
|
|
106
|
-
),
|
|
107
|
-
)
|
|
108
|
-
.filter((group) => group.length > 0);
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export const getFilteredComposeOptionsResultText = (
|
|
112
|
-
composeOptions: Array<Array<MenuOption>>,
|
|
113
|
-
staticLabels: {
|
|
114
|
-
[key: string]: string;
|
|
115
|
-
},
|
|
116
|
-
): string => {
|
|
117
|
-
let resultCount = 0;
|
|
118
|
-
|
|
119
|
-
composeOptions.forEach((optionGroup) => {
|
|
120
|
-
resultCount += optionGroup.length;
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
const singleResultMessage = staticLabels.RESULT ?? 'result';
|
|
124
|
-
const multipleResultsMessage = staticLabels.RESULTS ?? 'results';
|
|
125
|
-
|
|
126
|
-
const generatedResultText = `${resultCount} ${
|
|
127
|
-
resultCount > 1 ? multipleResultsMessage : singleResultMessage
|
|
128
|
-
}`;
|
|
129
|
-
|
|
130
|
-
return generatedResultText;
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
export const getFilteredGroupTitleOptionsFromSearchText = (groupTitleOptions: Array<MenuGroupTitleOption>, searchText: string): Array<MenuGroupTitleOption> => {
|
|
134
|
-
if (
|
|
135
|
-
!Array.isArray(groupTitleOptions) ||
|
|
136
|
-
!groupTitleOptions.length ||
|
|
137
|
-
!searchText
|
|
138
|
-
) {
|
|
139
|
-
return groupTitleOptions;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return groupTitleOptions
|
|
143
|
-
.map((group) => ({
|
|
144
|
-
...group,
|
|
145
|
-
options: group.options?.filter((option: MenuOption) =>
|
|
146
|
-
option.label?.toLowerCase().includes(searchText.toLowerCase()),
|
|
147
|
-
),
|
|
148
|
-
}))
|
|
149
|
-
.filter((group) => group.options && group.options.length > 0);
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
export const getFilteredGroupTitleOptionsResultText = (
|
|
153
|
-
groupTitleOptions: Array<MenuGroupTitleOption>,
|
|
154
|
-
staticLabels: {
|
|
155
|
-
[key: string]: string;
|
|
156
|
-
},
|
|
157
|
-
): string => {
|
|
158
|
-
let resultCount = 0;
|
|
159
|
-
|
|
160
|
-
groupTitleOptions.forEach((group) => {
|
|
161
|
-
if (group.options) {
|
|
162
|
-
resultCount += group.options.length;
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
const singleResultMessage = staticLabels.RESULT ?? 'result';
|
|
167
|
-
const multipleResultsMessage = staticLabels.RESULTS ?? 'results';
|
|
168
|
-
|
|
169
|
-
const generatedResultText = `${resultCount} ${
|
|
170
|
-
resultCount > 1 ? multipleResultsMessage : singleResultMessage
|
|
171
|
-
}`;
|
|
172
|
-
|
|
173
|
-
return generatedResultText;
|
|
174
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './merge-refs';
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import React, {useRef, useState} from 'react';
|
|
2
|
-
|
|
3
|
-
import {Button} from '../../components/Button';
|
|
4
|
-
import {Input} from '../../components/Input';
|
|
5
|
-
import {BodyLarge} from '../../components/Text';
|
|
6
|
-
|
|
7
|
-
import {mergeRefs} from './merge-refs';
|
|
8
|
-
|
|
9
|
-
import css from './merge-refs.stories.module.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export default {
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
title: 'Utils/Merge Refs',
|
|
15
|
-
parameters: {
|
|
16
|
-
docs: {
|
|
17
|
-
description: {
|
|
18
|
-
component: `
|
|
19
|
-
\`\`\`js
|
|
20
|
-
import { mergeRefs } from "@spaced-out/ui-design-system/lib/utils/merge-refs";
|
|
21
|
-
\`\`\`
|
|
22
|
-
This story showcases the \`mergeRefs\` utility function.
|
|
23
|
-
|
|
24
|
-
### \`mergeRefs\`
|
|
25
|
-
The \`mergeRefs\` function combines multiple ref objects into a single ref function or object. It allows you to merge refs from different sources and use them together.
|
|
26
|
-
|
|
27
|
-
### Usage
|
|
28
|
-
Please refer to the function for a usage example.
|
|
29
|
-
`,
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export const Example = (): React.ReactElement<React.ComponentProps<'div'>> => {
|
|
36
|
-
const [inputValue, setInputValue] = useState('');
|
|
37
|
-
const [inputValue1, setInputValue1] = useState('');
|
|
38
|
-
const inputRef1 = useRef(null);
|
|
39
|
-
const inputRef2 = useRef(null);
|
|
40
|
-
|
|
41
|
-
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
42
|
-
setInputValue(event.target.value);
|
|
43
|
-
};
|
|
44
|
-
const handleInputChange1 = (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
45
|
-
setInputValue1(event.target.value);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const handleClearButtonClick = () => {
|
|
49
|
-
setInputValue('');
|
|
50
|
-
setInputValue1('');
|
|
51
|
-
// @ts-ignore - TS2339 - Property 'focus' does not exist on type 'never'.
|
|
52
|
-
inputRef1.current?.focus();
|
|
53
|
-
// @ts-ignore - TS2531 - Object is possibly 'null'.
|
|
54
|
-
inputRef1.current.value = '';
|
|
55
|
-
// @ts-ignore - TS2531 - Object is possibly 'null'.
|
|
56
|
-
inputRef2.current.value = '';
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const handleMergeRefs = mergeRefs([inputRef1, inputRef2]);
|
|
60
|
-
|
|
61
|
-
return (
|
|
62
|
-
<div>
|
|
63
|
-
<BodyLarge className={css.text}>
|
|
64
|
-
This story showcases the mergeRefs utility function.
|
|
65
|
-
</BodyLarge>
|
|
66
|
-
<div className={css.text}>
|
|
67
|
-
<Input
|
|
68
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
69
|
-
id="input1"
|
|
70
|
-
label="Input 1"
|
|
71
|
-
type="text"
|
|
72
|
-
value={inputValue}
|
|
73
|
-
onChange={handleInputChange}
|
|
74
|
-
ref={handleMergeRefs}
|
|
75
|
-
/>
|
|
76
|
-
<Input
|
|
77
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
78
|
-
id="input2"
|
|
79
|
-
label="Input 2"
|
|
80
|
-
type="text"
|
|
81
|
-
value={inputValue1}
|
|
82
|
-
onChange={handleInputChange1}
|
|
83
|
-
ref={handleMergeRefs}
|
|
84
|
-
/>
|
|
85
|
-
</div>
|
|
86
|
-
{ /* @ts-ignore - TS2769 - No overload matches this call. */}
|
|
87
|
-
<Button className={css.button} onClick={handleClearButtonClick}>
|
|
88
|
-
Clear Inputs
|
|
89
|
-
</Button>
|
|
90
|
-
</div>
|
|
91
|
-
);
|
|
92
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function mergeRefs(
|
|
2
|
-
refs: Array<{
|
|
3
|
-
current: HTMLElement | null | undefined;
|
|
4
|
-
}>,
|
|
5
|
-
): (value?: HTMLElement | null | undefined) => void {
|
|
6
|
-
return (value: HTMLElement | null | undefined) => {
|
|
7
|
-
refs.forEach((ref) => {
|
|
8
|
-
if (typeof ref === 'function') {
|
|
9
|
-
// @ts-ignore - TS2349 - This expression is not callable.
|
|
10
|
-
ref(value);
|
|
11
|
-
} else if (ref != null) {
|
|
12
|
-
ref.current = value;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './rating';
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export const RATING_ERRORS = Object.freeze({
|
|
2
|
-
INVALID_RANGE: {
|
|
3
|
-
type: 'INVALID_RANGE',
|
|
4
|
-
description:
|
|
5
|
-
'Given rating\'s stop value cannot come before the start value.',
|
|
6
|
-
},
|
|
7
|
-
INVALID_RATING_LABELS: {
|
|
8
|
-
type: 'INVALID_RATING_LABELS',
|
|
9
|
-
description: 'Given rating labels are invalid.',
|
|
10
|
-
},
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
export const RATINGS: Array<string> = [
|
|
14
|
-
'Not-Qualified',
|
|
15
|
-
'Proficient',
|
|
16
|
-
'Silver',
|
|
17
|
-
'Gold',
|
|
18
|
-
'Platinum',
|
|
19
|
-
'Diamond',
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
export const getRatingLabel = (rating: number, labels: Array<string>): string => {
|
|
23
|
-
if (rating <= 0) {
|
|
24
|
-
return labels[0];
|
|
25
|
-
} else if (rating >= labels.length) {
|
|
26
|
-
return labels.slice(-1)[0];
|
|
27
|
-
} else {
|
|
28
|
-
return labels[rating];
|
|
29
|
-
}
|
|
30
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './score-bar';
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type {ScoreBarColorMap, ScoreBarLabelMap} from '../../components/ScoreBar';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const getValidRange = (score: number, totalBars: number, keys: Array<string>): string => {
|
|
5
|
-
const scorePercentage = (100 * score) / totalBars;
|
|
6
|
-
for (const key of keys) {
|
|
7
|
-
if (scorePercentage <= Number(key)) {
|
|
8
|
-
return key;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return [...keys].pop() || '';
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const getColorByScorePercentage = (
|
|
16
|
-
totalBars: number,
|
|
17
|
-
score: number,
|
|
18
|
-
currentBarNumber: number,
|
|
19
|
-
colorMap: ScoreBarColorMap,
|
|
20
|
-
): string => {
|
|
21
|
-
if (score <= 0) {
|
|
22
|
-
return colorMap.inactive;
|
|
23
|
-
}
|
|
24
|
-
const validRange = getValidRange(score, totalBars, Object.keys(colorMap));
|
|
25
|
-
const validColor = colorMap[validRange];
|
|
26
|
-
|
|
27
|
-
return currentBarNumber < score ? validColor : colorMap.inactive;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const getLabelByScorePercentage = (score: number, totalBars: number, labelMap?: ScoreBarLabelMap): string => {
|
|
31
|
-
if (!labelMap) {
|
|
32
|
-
return '';
|
|
33
|
-
}
|
|
34
|
-
const validRange = getValidRange(score, totalBars, Object.keys(labelMap));
|
|
35
|
-
const validLabel = labelMap[validRange];
|
|
36
|
-
|
|
37
|
-
return validLabel || '';
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export const SCORE_BAR_ERRORS = Object.freeze({
|
|
41
|
-
INVALID_BAR_COUNT: {
|
|
42
|
-
type: 'INVALID_BAR_COUNT',
|
|
43
|
-
description: 'totalBars can not be less than 1',
|
|
44
|
-
},
|
|
45
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './string';
|