@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,302 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import {TEXT_COLORS} from '../../types/typography';
|
|
4
|
-
import {ICON_SIZE, ICON_TYPE} from '../Icon';
|
|
5
|
-
|
|
6
|
-
import type {LinkProps} from './';
|
|
7
|
-
import {ANCHOR_REL, ANCHOR_TARGET, Link, LINK_AS} from './Link';
|
|
8
|
-
|
|
9
|
-
import css from './Link.stories.module.css';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const colorOptions: Array<unknown> = [...Object.values(TEXT_COLORS)];
|
|
13
|
-
const typographyOptions: Array<unknown> = [...Object.values(LINK_AS)];
|
|
14
|
-
const anchorRelOptions: Array<unknown> = [...Object.values(ANCHOR_REL)];
|
|
15
|
-
const anchorTargetOptions: Array<unknown> = [...Object.values(ANCHOR_TARGET)];
|
|
16
|
-
const iconSizeOptions: Array<unknown> = [...Object.values(ICON_SIZE)];
|
|
17
|
-
const iconTypeOptions: Array<unknown> = [...Object.values(ICON_TYPE)];
|
|
18
|
-
|
|
19
|
-
export default {
|
|
20
|
-
tags: ['autodocs'],
|
|
21
|
-
title: 'Components/Link',
|
|
22
|
-
component: Link,
|
|
23
|
-
argTypes: {
|
|
24
|
-
color: {
|
|
25
|
-
options: colorOptions,
|
|
26
|
-
description:
|
|
27
|
-
'Color of the anchor. Should be one of the predefined color string',
|
|
28
|
-
control: {
|
|
29
|
-
type: 'select',
|
|
30
|
-
},
|
|
31
|
-
table: {
|
|
32
|
-
type: {summary: 'enum'},
|
|
33
|
-
defaultValue: {summary: 'clickable'},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
iconLeftName: {
|
|
37
|
-
description:
|
|
38
|
-
'Left icon to be applied to the button, it internally uses the `Icon` component to render icons',
|
|
39
|
-
control: {
|
|
40
|
-
type: 'text',
|
|
41
|
-
},
|
|
42
|
-
table: {
|
|
43
|
-
type: {summary: 'string'},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
iconLeftType: {
|
|
47
|
-
description:
|
|
48
|
-
'Type of Left Icon. Type represents 4 unique icon styles :- Solid, Regular, Duotone and Brands',
|
|
49
|
-
options: iconTypeOptions,
|
|
50
|
-
control: {type: 'select'},
|
|
51
|
-
table: {
|
|
52
|
-
type: {summary: 'string'},
|
|
53
|
-
defaultValue: {summary: 'regular'},
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
iconLeftSize: {
|
|
57
|
-
description:
|
|
58
|
-
'Icon supports three size variants namely small and medium. `small` < `medium` < `large`. [Only available in `<IconBadge />`]',
|
|
59
|
-
options: iconSizeOptions,
|
|
60
|
-
control: {type: 'select'},
|
|
61
|
-
table: {
|
|
62
|
-
type: {summary: 'string'},
|
|
63
|
-
defaultValue: {summary: 'small'},
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
iconRightName: {
|
|
67
|
-
description:
|
|
68
|
-
'Right icon to be applied to the button, it internally uses the `Icon` component to render icons',
|
|
69
|
-
control: {
|
|
70
|
-
type: 'text',
|
|
71
|
-
},
|
|
72
|
-
table: {
|
|
73
|
-
type: {summary: 'string'},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
iconRightSize: {
|
|
77
|
-
description:
|
|
78
|
-
'Icon supports three size variants namely small and medium. `small` < `medium` < `large`. [Only available in `<IconBadge />`]',
|
|
79
|
-
options: iconSizeOptions,
|
|
80
|
-
control: {type: 'select'},
|
|
81
|
-
table: {
|
|
82
|
-
type: {summary: 'string'},
|
|
83
|
-
defaultValue: {summary: 'small'},
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
iconRightType: {
|
|
87
|
-
description:
|
|
88
|
-
'Type of Right Icon. Type represents 4 unique icon styles :- Solid, Regular, Duotone and Brands',
|
|
89
|
-
options: iconTypeOptions,
|
|
90
|
-
control: {type: 'select'},
|
|
91
|
-
table: {
|
|
92
|
-
type: {summary: 'string'},
|
|
93
|
-
defaultValue: {summary: 'regular'},
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
as: {
|
|
97
|
-
options: typographyOptions,
|
|
98
|
-
description:
|
|
99
|
-
'Typography of the anchor. Should be one of the predefined typography options',
|
|
100
|
-
control: {
|
|
101
|
-
type: 'select',
|
|
102
|
-
},
|
|
103
|
-
table: {
|
|
104
|
-
type: {summary: 'enum'},
|
|
105
|
-
defaultValue: {summary: 'buttonTextExtraSmall'},
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
linkComponent: {
|
|
109
|
-
description: `
|
|
110
|
-
Custom component to be used as the root element
|
|
111
|
-
|
|
112
|
-
**IMPORTANT:** If you are using \`to\` make sure to provide link component from your router
|
|
113
|
-
if you want to prevent full page reloads in a Single Page Application (SPA).
|
|
114
|
-
`,
|
|
115
|
-
table: {
|
|
116
|
-
type: {summary: 'React.Component'},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
rel: {
|
|
120
|
-
options: anchorRelOptions,
|
|
121
|
-
description:
|
|
122
|
-
'The rel attribute specifies the relationship between the current document and the linked document. Only used if the href attribute is present.',
|
|
123
|
-
control: {
|
|
124
|
-
type: 'select',
|
|
125
|
-
},
|
|
126
|
-
table: {
|
|
127
|
-
type: {summary: 'enum'},
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
target: {
|
|
131
|
-
options: anchorTargetOptions,
|
|
132
|
-
description:
|
|
133
|
-
'The target property sets or returns the value of the target attribute of a link. The target attribute specifies where to open the linked document.',
|
|
134
|
-
control: {
|
|
135
|
-
type: 'select',
|
|
136
|
-
},
|
|
137
|
-
table: {
|
|
138
|
-
type: {summary: 'enum'},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
to: {
|
|
142
|
-
description:
|
|
143
|
-
'Link to anchor to. Use this when you pass a router\'s Link component to the this',
|
|
144
|
-
control: {
|
|
145
|
-
type: 'text',
|
|
146
|
-
},
|
|
147
|
-
table: {
|
|
148
|
-
type: {summary: 'string'},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
href: {
|
|
152
|
-
description:
|
|
153
|
-
'Link to anchor to. Don\'t use this if you don\'t want page reloads on route',
|
|
154
|
-
control: {
|
|
155
|
-
type: 'text',
|
|
156
|
-
},
|
|
157
|
-
table: {
|
|
158
|
-
type: {summary: 'string'},
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
onClick: {
|
|
162
|
-
description:
|
|
163
|
-
'**onClick** handler that is applied to the root `<a>` element',
|
|
164
|
-
action: 'clicked',
|
|
165
|
-
table: {
|
|
166
|
-
type: {summary: '(SyntheticEvent<HTMLElement>) => mixed'},
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
tabIndex: {
|
|
170
|
-
description: 'Tab index applied to input',
|
|
171
|
-
control: {
|
|
172
|
-
type: 'number',
|
|
173
|
-
},
|
|
174
|
-
table: {
|
|
175
|
-
type: {summary: 'string'},
|
|
176
|
-
defaultValue: {summary: 0},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
disabled: {
|
|
180
|
-
description: 'If **true**, the component is disabled',
|
|
181
|
-
control: {
|
|
182
|
-
type: 'boolean',
|
|
183
|
-
},
|
|
184
|
-
table: {
|
|
185
|
-
type: {summary: 'boolean'},
|
|
186
|
-
defaultValue: {summary: 'false'},
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
underline: {
|
|
190
|
-
description: 'Controls the default underline text decoration',
|
|
191
|
-
control: {
|
|
192
|
-
type: 'boolean',
|
|
193
|
-
},
|
|
194
|
-
table: {
|
|
195
|
-
type: {summary: 'string'},
|
|
196
|
-
defaultValue: {summary: 'true'},
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
children: {
|
|
200
|
-
description:
|
|
201
|
-
'Content to be displayed. If you are using react nodes here, this should only have inline elements since Link renders children inside `<a></a>`',
|
|
202
|
-
control: {
|
|
203
|
-
type: 'text',
|
|
204
|
-
},
|
|
205
|
-
type: {required: true},
|
|
206
|
-
table: {
|
|
207
|
-
type: {summary: 'React.Component | string'},
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
className: {
|
|
211
|
-
description: 'Provide an optional className to be applied to the wrapper',
|
|
212
|
-
control: {
|
|
213
|
-
type: 'text',
|
|
214
|
-
},
|
|
215
|
-
table: {
|
|
216
|
-
type: {
|
|
217
|
-
summary: 'string',
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
},
|
|
221
|
-
},
|
|
222
|
-
parameters: {
|
|
223
|
-
docs: {
|
|
224
|
-
subtitle: 'Generates a Link component.',
|
|
225
|
-
description: {
|
|
226
|
-
component: `
|
|
227
|
-
\`\`\`js
|
|
228
|
-
import { Link } from "@spaced-out/ui-design-system/lib/components/Link";
|
|
229
|
-
\`\`\`
|
|
230
|
-
The Link component enables developers to effortlessly customize anchor elements with their desired color schemes and typography.
|
|
231
|
-
Furthermore, the Link component provides a simple and accessible way to implement hyperlinks in web pages.
|
|
232
|
-
It offers various accessibility features, such as keyboard navigation, focus states, and screen reader support.
|
|
233
|
-
|
|
234
|
-
The component uses \`React.forwardRef\` to pass the ref prop to the inner anchor element.
|
|
235
|
-
|
|
236
|
-
**IMPORTANT**: If you are using \`href\` or \`to\` make sure to provide link component from your router
|
|
237
|
-
if you want to prevent full page reloads in a Single Page Application (SPA).
|
|
238
|
-
|
|
239
|
-
Using \`href\` in anchor tags causes the browser to navigate to a new URL,
|
|
240
|
-
resulting in a full page reload. However, in a Single Page Application (SPA), we aim to provide a seamless
|
|
241
|
-
user experience without such reloads.
|
|
242
|
-
|
|
243
|
-
To achieve client-side navigation and prevent page reloads, use client-side routing libraries
|
|
244
|
-
(e.g., React Router) and their navigation components (e.g., <Link> or <a> with an onClick handler)
|
|
245
|
-
to handle navigation within your SPA. These components work without triggering full page reloads
|
|
246
|
-
and maintain the SPA's performance and user experience.
|
|
247
|
-
|
|
248
|
-
**Usage**
|
|
249
|
-
|
|
250
|
-
\`\`\`jsx
|
|
251
|
-
import {Link} from '@spaced-out/ui-design-system/lib/components/Link';
|
|
252
|
-
|
|
253
|
-
<Link onClick={routeHandler}>Go to Pages</Link>
|
|
254
|
-
\`\`\`
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
**Usage with Routing Library**
|
|
258
|
-
|
|
259
|
-
To use the \`Link\` with a routing Library, you would need to pass the \`linkComponent\` prop to the \`<Link>\` component.
|
|
260
|
-
|
|
261
|
-
\`\`\`jsx
|
|
262
|
-
import {Link} from 'src/rerouter';
|
|
263
|
-
import {Link as GenesisLink} from '@spaced-out/ui-design-system/lib/components/Link';
|
|
264
|
-
|
|
265
|
-
<GenesisLink linkComponent={Link} to="/pages">Go to Pages</GenesisLink>
|
|
266
|
-
\`\`\`
|
|
267
|
-
|
|
268
|
-
It'll replace the rendered a tag with routing library's Link.
|
|
269
|
-
`,
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
storySource: {
|
|
273
|
-
componentPath: '/src/components/Link/Link.jsx',
|
|
274
|
-
},
|
|
275
|
-
},
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
export const _Link = (args: LinkProps) => (<div className={css.container}>
|
|
279
|
-
<Link {...args} />
|
|
280
|
-
</div>);
|
|
281
|
-
|
|
282
|
-
_Link.args = {
|
|
283
|
-
children: 'Hello World!',
|
|
284
|
-
};
|
|
285
|
-
|
|
286
|
-
export const _WithLeftIcon = (args: LinkProps) => (<div className={css.container}>
|
|
287
|
-
<Link {...args} />
|
|
288
|
-
</div>);
|
|
289
|
-
|
|
290
|
-
_WithLeftIcon.args = {
|
|
291
|
-
children: 'Hello World!',
|
|
292
|
-
iconLeftName: 'link',
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
export const _WithRightIcon = (args: LinkProps) => (<div className={css.container}>
|
|
296
|
-
<Link {...args} />
|
|
297
|
-
</div>);
|
|
298
|
-
|
|
299
|
-
_WithRightIcon.args = {
|
|
300
|
-
children: 'Hello World!',
|
|
301
|
-
iconRightName: 'arrow-up-right-from-square',
|
|
302
|
-
};
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
import type {ColorTypes} from '../../types/typography';
|
|
6
|
-
import {TEXT_COLORS} from '../../types/typography';
|
|
7
|
-
import classify from '../../utils/classify';
|
|
8
|
-
import {ConditionalWrapper} from '../ConditionalWrapper';
|
|
9
|
-
import type {IconSize, IconType} from '../Icon';
|
|
10
|
-
import {Icon, ICON_SIZE} from '../Icon';
|
|
11
|
-
|
|
12
|
-
import css from '../../styles/typography.module.css';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export const LINK_AS = Object.freeze({
|
|
16
|
-
bodyLarge: 'bodyLarge',
|
|
17
|
-
bodyMedium: 'bodyMedium',
|
|
18
|
-
bodySmall: 'bodySmall',
|
|
19
|
-
buttonTextExtraSmall: 'buttonTextExtraSmall',
|
|
20
|
-
buttonTextMedium: 'buttonTextMedium',
|
|
21
|
-
buttonTextSmall: 'buttonTextSmall',
|
|
22
|
-
formInputMedium: 'formInputMedium',
|
|
23
|
-
formInputSmall: 'formInputSmall',
|
|
24
|
-
formLabelMedium: 'formLabelMedium',
|
|
25
|
-
formLabelSmall: 'formLabelSmall',
|
|
26
|
-
jumboMedium: 'jumboMedium',
|
|
27
|
-
subTitleExtraSmall: 'subTitleExtraSmall',
|
|
28
|
-
subTitleLarge: 'subTitleLarge',
|
|
29
|
-
subTitleMedium: 'subTitleMedium',
|
|
30
|
-
subTitleSmall: 'subTitleSmall',
|
|
31
|
-
titleMedium: 'titleMedium',
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export type LinkAs = typeof LINK_AS[keyof typeof LINK_AS];
|
|
35
|
-
|
|
36
|
-
export const ANCHOR_REL = Object.freeze({
|
|
37
|
-
alternate: 'alternate',
|
|
38
|
-
author: 'author',
|
|
39
|
-
bookmark: 'bookmark',
|
|
40
|
-
external: 'external',
|
|
41
|
-
help: 'help',
|
|
42
|
-
license: 'license',
|
|
43
|
-
next: 'next',
|
|
44
|
-
nofollow: 'nofollow',
|
|
45
|
-
noopener: 'noopener',
|
|
46
|
-
noreferrer: 'noreferrer',
|
|
47
|
-
search: 'search',
|
|
48
|
-
tag: 'tag',
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
export type AnchorRel = typeof ANCHOR_REL[keyof typeof ANCHOR_REL];
|
|
52
|
-
|
|
53
|
-
export const ANCHOR_TARGET = Object.freeze({
|
|
54
|
-
_blank: '_blank',
|
|
55
|
-
_self: '_self',
|
|
56
|
-
_parent: '_parent',
|
|
57
|
-
_top: '_top',
|
|
58
|
-
framename: 'framename',
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
export type AnchorTarget = typeof ANCHOR_TARGET[keyof typeof ANCHOR_TARGET];
|
|
62
|
-
|
|
63
|
-
export type BaseLinkProps = {
|
|
64
|
-
children: React.ReactNode;
|
|
65
|
-
onClick?: ((arg1: React.SyntheticEvent<HTMLElement>) => unknown) | null | undefined;
|
|
66
|
-
tabIndex?: number;
|
|
67
|
-
disabled?: boolean;
|
|
68
|
-
className?: string;
|
|
69
|
-
as?: LinkAs;
|
|
70
|
-
rel?: AnchorRel;
|
|
71
|
-
target?: AnchorTarget;
|
|
72
|
-
iconLeftName?: string;
|
|
73
|
-
iconLeftSize?: IconSize;
|
|
74
|
-
iconLeftType?: IconType;
|
|
75
|
-
iconRightName?: string;
|
|
76
|
-
iconRightSize?: IconSize;
|
|
77
|
-
iconRightType?: IconType;
|
|
78
|
-
/**
|
|
79
|
-
* IMPORTANT: If you are using `to` make sure to provide link component from your router
|
|
80
|
-
* if you want to prevent full page reloads in a Single Page Application (SPA).
|
|
81
|
-
*
|
|
82
|
-
* Using `href` in anchor tags causes the browser to navigate to a new URL,
|
|
83
|
-
* resulting in a full page reload. However, in a Single Page Application (SPA), we aim to provide a seamless
|
|
84
|
-
* user experience without such reloads.
|
|
85
|
-
*
|
|
86
|
-
* To achieve client-side navigation and prevent page reloads, use client-side routing libraries
|
|
87
|
-
* (e.g., React Router) and their navigation components (e.g., <Link> or <a> with an onClick handler)
|
|
88
|
-
* to handle navigation within your SPA. These components work without triggering full page reloads
|
|
89
|
-
* and maintain the SPA's performance and user experience.
|
|
90
|
-
*
|
|
91
|
-
*/
|
|
92
|
-
to?: string;
|
|
93
|
-
href?: string;
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
export type LinkProps = ((BaseLinkProps) & {
|
|
97
|
-
color?: ColorTypes;
|
|
98
|
-
underline?: boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Provide your router's link component
|
|
101
|
-
*
|
|
102
|
-
* import {Link} from 'src/rerouter';
|
|
103
|
-
* import {Link as GenesisLink} from '@spaced-out/ui-design-system/lib/components/Link';
|
|
104
|
-
*
|
|
105
|
-
* <GenesisLink linkComponent={Link} to="/pages" />
|
|
106
|
-
*/
|
|
107
|
-
linkComponent?: Flow.AbstractComponent<BaseLinkProps, HTMLAnchorElement | null | undefined>;
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
export const Link: Flow.AbstractComponent<LinkProps, HTMLAnchorElement | null | undefined> =
|
|
111
|
-
React.forwardRef<HTMLAnchorElement | null | undefined, LinkProps>((
|
|
112
|
-
{
|
|
113
|
-
color = TEXT_COLORS.clickable,
|
|
114
|
-
children,
|
|
115
|
-
className,
|
|
116
|
-
as = 'buttonTextExtraSmall',
|
|
117
|
-
underline = true,
|
|
118
|
-
tabIndex = 0,
|
|
119
|
-
disabled,
|
|
120
|
-
onClick,
|
|
121
|
-
// @ts-ignore - TS2322 - Type 'ForwardRefExoticComponent<BaseLinkProps & RefAttributes<HTMLAnchorElement>>' is not assignable to type 'AbstractComponent<BaseLinkProps, HTMLAnchorElement | null | undefined>'.
|
|
122
|
-
linkComponent: LinkComponent = DefaultLink,
|
|
123
|
-
iconLeftName,
|
|
124
|
-
// @ts-ignore - TS2322 - Type 'string' is not assignable to type '"small" | "large" | "medium"'.
|
|
125
|
-
iconLeftSize = ICON_SIZE.small,
|
|
126
|
-
iconLeftType,
|
|
127
|
-
iconRightName,
|
|
128
|
-
// @ts-ignore - TS2322 - Type 'string' is not assignable to type '"small" | "large" | "medium"'.
|
|
129
|
-
iconRightSize = ICON_SIZE.small,
|
|
130
|
-
iconRightType,
|
|
131
|
-
...props
|
|
132
|
-
}: LinkProps,
|
|
133
|
-
ref,
|
|
134
|
-
) => {
|
|
135
|
-
const linkRef = React.useRef(null);
|
|
136
|
-
// @ts-ignore - TS2322 - Type 'null' is not assignable to type 'HTMLAnchorElement | undefined'.
|
|
137
|
-
React.useImperativeHandle(ref, () => linkRef.current);
|
|
138
|
-
React.useEffect(() => {
|
|
139
|
-
if (disabled) {
|
|
140
|
-
// @ts-ignore - TS2339 - Property 'blur' does not exist on type 'never'.
|
|
141
|
-
linkRef.current?.blur();
|
|
142
|
-
}
|
|
143
|
-
}, [disabled]);
|
|
144
|
-
|
|
145
|
-
const handleClick = (event: React.SyntheticEvent<HTMLElement>) => {
|
|
146
|
-
if (disabled) {
|
|
147
|
-
event.preventDefault();
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
onClick?.(event);
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* By spec anchor tag wont call onClick on enter key press when the element is focussed
|
|
156
|
-
* as a workaround we would need to listen to key press event and call onClick
|
|
157
|
-
* manually, one workaround to avoid this is to have empty href along with onClick
|
|
158
|
-
* but that would break accessibility
|
|
159
|
-
*/
|
|
160
|
-
const handleKeyPress = (event: any) => {
|
|
161
|
-
if (event.key === 'Enter' && onClick) {
|
|
162
|
-
handleClick(event);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
return (
|
|
167
|
-
<LinkComponent
|
|
168
|
-
{...props}
|
|
169
|
-
tabIndex={disabled ? -1 : tabIndex}
|
|
170
|
-
ref={linkRef}
|
|
171
|
-
data-testid="Link"
|
|
172
|
-
className={classify(
|
|
173
|
-
css.link,
|
|
174
|
-
css[as],
|
|
175
|
-
css[color],
|
|
176
|
-
{
|
|
177
|
-
[css.underline]: underline && !(iconLeftName || iconRightName),
|
|
178
|
-
[css.disabled]: disabled,
|
|
179
|
-
},
|
|
180
|
-
className,
|
|
181
|
-
)}
|
|
182
|
-
onClick={handleClick}
|
|
183
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
184
|
-
onKeyPress={handleKeyPress}
|
|
185
|
-
>
|
|
186
|
-
{!!iconLeftName && (
|
|
187
|
-
<Icon
|
|
188
|
-
name={iconLeftName}
|
|
189
|
-
size={iconLeftSize}
|
|
190
|
-
type={iconLeftType}
|
|
191
|
-
className={classify(css[color], {[css.disabled]: disabled})}
|
|
192
|
-
/>
|
|
193
|
-
)}
|
|
194
|
-
|
|
195
|
-
<ConditionalWrapper
|
|
196
|
-
condition={Boolean(iconLeftName || iconRightName)}
|
|
197
|
-
wrapper={(children) => (
|
|
198
|
-
<span
|
|
199
|
-
className={classify({
|
|
200
|
-
[css.underline]: underline,
|
|
201
|
-
})}
|
|
202
|
-
>
|
|
203
|
-
{children}
|
|
204
|
-
</span>
|
|
205
|
-
)}
|
|
206
|
-
>
|
|
207
|
-
{children}
|
|
208
|
-
</ConditionalWrapper>
|
|
209
|
-
|
|
210
|
-
{!!iconRightName && (
|
|
211
|
-
<Icon
|
|
212
|
-
name={iconRightName}
|
|
213
|
-
size={iconRightSize}
|
|
214
|
-
type={iconRightType}
|
|
215
|
-
className={css[color]}
|
|
216
|
-
/>
|
|
217
|
-
)}
|
|
218
|
-
</LinkComponent>
|
|
219
|
-
);
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
const DefaultLink = React.forwardRef<HTMLAnchorElement, BaseLinkProps>(({children, href, to, ...props}, ref) => {
|
|
223
|
-
const resolvedHref = to ?? href;
|
|
224
|
-
|
|
225
|
-
return (
|
|
226
|
-
// @ts-ignore - TS2322 - Type '{ children: React.ReactNode; href: string | undefined; ref: ForwardedRef<HTMLAnchorElement>; onClick?: ((arg1: SyntheticEvent<HTMLElement, Event>) => unknown) | null | undefined; ... 11 more ...; iconRightType?: "regular" | ... 3 more ... | undefined; }' is not assignable to type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>'.
|
|
227
|
-
<a {...props} href={resolvedHref} ref={ref}>
|
|
228
|
-
{children}
|
|
229
|
-
</a>
|
|
230
|
-
);
|
|
231
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Link';
|