@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,349 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import {TEXT_COLORS} from '../../types/typography';
|
|
4
|
-
import {Icon, ICON_SIZE} from '../Icon';
|
|
5
|
-
import {BodySmallBold} from '../Text';
|
|
6
|
-
import {Tooltip} from '../Tooltip';
|
|
7
|
-
|
|
8
|
-
import type {PromptInputProps} from './PromptInput';
|
|
9
|
-
import {PromptInput} from './PromptInput';
|
|
10
|
-
|
|
11
|
-
import css from './PromptInput.stories.module.css';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export default {
|
|
15
|
-
tags: ['autodocs'],
|
|
16
|
-
title: 'AI Prompt Components/Prompt Input',
|
|
17
|
-
component: PromptInput,
|
|
18
|
-
argTypes: {
|
|
19
|
-
value: {
|
|
20
|
-
description: 'The current value of the text area.',
|
|
21
|
-
control: 'text',
|
|
22
|
-
table: {
|
|
23
|
-
type: {summary: 'string'},
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
onInputChange: {
|
|
27
|
-
description: 'Handler for input change event.',
|
|
28
|
-
action: 'onInputChange',
|
|
29
|
-
table: {
|
|
30
|
-
type: {
|
|
31
|
-
summary:
|
|
32
|
-
'(evt: SyntheticInputEvent<HTMLInputElement>, isEnter?: boolean) => mixed',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
onInputFocus: {
|
|
37
|
-
description: 'Handler for input focus event.',
|
|
38
|
-
action: 'onInputFocus',
|
|
39
|
-
table: {
|
|
40
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
onInputBlur: {
|
|
44
|
-
description: 'Handler for input blur event.',
|
|
45
|
-
action: 'onInputBlur',
|
|
46
|
-
table: {
|
|
47
|
-
type: {summary: '(e: SyntheticInputEvent<HTMLInputElement>) => mixed'},
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
onInputKeyDown: {
|
|
51
|
-
description: 'Handler for key down event.',
|
|
52
|
-
action: 'onInputKeyDown',
|
|
53
|
-
table: {
|
|
54
|
-
type: {
|
|
55
|
-
summary: '(e: SyntheticKeyboardEvent<HTMLInputElement>) => mixed',
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
inputName: {
|
|
60
|
-
description: 'Name attribute for the input element.',
|
|
61
|
-
control: 'text',
|
|
62
|
-
table: {
|
|
63
|
-
type: {summary: 'string'},
|
|
64
|
-
defaultValue: {summary: 'prompt-textarea'},
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
inputDisabled: {
|
|
68
|
-
description: 'Disables the input field.',
|
|
69
|
-
control: 'boolean',
|
|
70
|
-
table: {
|
|
71
|
-
type: {summary: 'boolean'},
|
|
72
|
-
defaultValue: {summary: false},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
inputPlaceholder: {
|
|
76
|
-
description: 'Placeholder text for the input.',
|
|
77
|
-
control: 'text',
|
|
78
|
-
table: {
|
|
79
|
-
type: {summary: 'string'},
|
|
80
|
-
defaultValue: {summary: 'Ask me anything'},
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
inputLocked: {
|
|
84
|
-
description: 'Locks the input field.',
|
|
85
|
-
control: 'boolean',
|
|
86
|
-
table: {
|
|
87
|
-
type: {summary: 'boolean'},
|
|
88
|
-
defaultValue: {summary: false},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
inputError: {
|
|
92
|
-
description: 'Sets error state for the input.',
|
|
93
|
-
control: 'boolean',
|
|
94
|
-
table: {
|
|
95
|
-
type: {summary: 'boolean'},
|
|
96
|
-
defaultValue: {summary: false},
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
inputErrorText: {
|
|
100
|
-
description: 'Error message displayed below the input.',
|
|
101
|
-
control: 'text',
|
|
102
|
-
table: {
|
|
103
|
-
type: {summary: 'string'},
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
helperContent: {
|
|
107
|
-
description: 'Content displayed as helper text below the input.',
|
|
108
|
-
control: 'object',
|
|
109
|
-
table: {
|
|
110
|
-
type: {summary: 'React.ReactNode'},
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
textCountLimit: {
|
|
114
|
-
description: 'Character limit for the input field.',
|
|
115
|
-
control: 'number',
|
|
116
|
-
table: {
|
|
117
|
-
type: {summary: 'number'},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
withPadding: {
|
|
121
|
-
description: 'Adds internal padding around the component.',
|
|
122
|
-
control: 'boolean',
|
|
123
|
-
table: {
|
|
124
|
-
type: {summary: 'boolean'},
|
|
125
|
-
defaultValue: {summary: true},
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
classNames: {
|
|
129
|
-
description: 'Optional class names for various parts of the component.',
|
|
130
|
-
control: 'object',
|
|
131
|
-
},
|
|
132
|
-
buttonText: {
|
|
133
|
-
description: 'Text displayed on the button.',
|
|
134
|
-
control: 'text',
|
|
135
|
-
table: {
|
|
136
|
-
type: {summary: 'string'},
|
|
137
|
-
defaultValue: {summary: 'Generate'},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
buttonDisabled: {
|
|
141
|
-
description: 'Disables the button.',
|
|
142
|
-
control: 'boolean',
|
|
143
|
-
table: {
|
|
144
|
-
type: {summary: 'boolean'},
|
|
145
|
-
defaultValue: {summary: false},
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
onButtonClick: {
|
|
149
|
-
description: 'Handler for button click event.',
|
|
150
|
-
action: 'onButtonClick',
|
|
151
|
-
table: {
|
|
152
|
-
type: {summary: '(e: SyntheticEvent<HTMLElement>) => mixed'},
|
|
153
|
-
},
|
|
154
|
-
},
|
|
155
|
-
buttonAriaLabel: {
|
|
156
|
-
description: 'Aria label for the button.',
|
|
157
|
-
control: 'text',
|
|
158
|
-
table: {
|
|
159
|
-
type: {summary: 'string'},
|
|
160
|
-
defaultValue: {summary: 'Prompt Button'},
|
|
161
|
-
},
|
|
162
|
-
},
|
|
163
|
-
isButtonLoading: {
|
|
164
|
-
description: 'Displays a loading state for the button.',
|
|
165
|
-
control: 'boolean',
|
|
166
|
-
table: {
|
|
167
|
-
type: {summary: 'boolean'},
|
|
168
|
-
defaultValue: {summary: false},
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
buttonIconLeftName: {
|
|
172
|
-
description: 'Name of the left icon on the button.',
|
|
173
|
-
control: 'text',
|
|
174
|
-
table: {
|
|
175
|
-
type: {summary: 'string'},
|
|
176
|
-
defaultValue: {summary: 'sparkles'},
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
buttonIconLeftType: {
|
|
180
|
-
description: 'Type of the left icon (e.g., solid, outline).',
|
|
181
|
-
control: 'text',
|
|
182
|
-
table: {
|
|
183
|
-
type: {summary: 'IconType'},
|
|
184
|
-
defaultValue: {summary: 'solid'},
|
|
185
|
-
},
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
parameters: {
|
|
189
|
-
docs: {
|
|
190
|
-
subtitle:
|
|
191
|
-
'A flexible and accessible input field with button integration, helper text, and character count.',
|
|
192
|
-
description: {
|
|
193
|
-
component: `
|
|
194
|
-
\`\`\`js
|
|
195
|
-
import { PromptInput } from "@spaced-out/ui-design-system/lib/components/PromptInput";
|
|
196
|
-
\`\`\`
|
|
197
|
-
|
|
198
|
-
**PromptInput** is a versatile input and action component designed for user prompts. It includes a textarea that dynamically grows in height and a customizable action button.
|
|
199
|
-
|
|
200
|
-
### Features:
|
|
201
|
-
|
|
202
|
-
1. **Auto-Growing Textarea**
|
|
203
|
-
- The input automatically resizes its height as the user types.
|
|
204
|
-
- It grows dynamically until a maximum height of **200px**.
|
|
205
|
-
- Once the content exceeds the 200px limit, an **internal scroll bar** appears within the textarea to ensure content remains accessible.
|
|
206
|
-
|
|
207
|
-
2. **Character Count Enforcement**
|
|
208
|
-
- Supports a configurable **character limit**.
|
|
209
|
-
- If the text exceeds the limit, the component enters an error state, and an error message or helper text can be displayed.
|
|
210
|
-
|
|
211
|
-
3. **Error State Handling**
|
|
212
|
-
- Highlights the input field with an error style when in an error state.
|
|
213
|
-
- Accepts an optional \`inputErrorText\` to display a custom error message.
|
|
214
|
-
|
|
215
|
-
4. **Helper Content Display**
|
|
216
|
-
- Displays helper content below the input field.
|
|
217
|
-
- Supports both **plain text** and **React nodes** (e.g., tooltips, icons).
|
|
218
|
-
|
|
219
|
-
5. **Customizable Action Button**
|
|
220
|
-
- A button is positioned adjacent to the input field for performing actions like "Submit" or "Generate".
|
|
221
|
-
- The button supports:
|
|
222
|
-
- Custom text (e.g., "Generate")
|
|
223
|
-
- Loading state with a spinner
|
|
224
|
-
- Left-aligned icons (e.g., "sparkles")
|
|
225
|
-
- Disabled state
|
|
226
|
-
- Accessible \`aria-label\`.
|
|
227
|
-
|
|
228
|
-
6. **Padding and Layout**
|
|
229
|
-
- Optionally adds internal padding to the component for better spacing.
|
|
230
|
-
- Flexible \`classNames\` props allow overriding styles for various parts of the component.
|
|
231
|
-
|
|
232
|
-
### Accessibility:
|
|
233
|
-
- Fully supports keyboard navigation and screen readers.
|
|
234
|
-
- The button includes an \`aria-label\` for accessibility.
|
|
235
|
-
|
|
236
|
-
### Example Usage:
|
|
237
|
-
|
|
238
|
-
\`\`\`jsx
|
|
239
|
-
<PromptInput
|
|
240
|
-
value="Hello World"
|
|
241
|
-
onInputChange={(e) => console.log(e.target.value)}
|
|
242
|
-
inputPlaceholder="Ask me anything..."
|
|
243
|
-
helperContent={<span>Provide your query here</span>}
|
|
244
|
-
/>
|
|
245
|
-
\`\`\`
|
|
246
|
-
`,
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
storySource: {
|
|
250
|
-
componentPath: '/src/components/PromptInput/PromptInput.jsx',
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
const TOOLTIP_HELPER_TEXT = 'Some Help Text goes here';
|
|
256
|
-
|
|
257
|
-
const HelperText = (): React.ReactElement<React.ComponentProps<'div'>> => (<div className={css.helperContent}>
|
|
258
|
-
<BodySmallBold color={TEXT_COLORS.secondary}>Helper Text</BodySmallBold>
|
|
259
|
-
<Tooltip body={TOOLTIP_HELPER_TEXT}>
|
|
260
|
-
<Icon
|
|
261
|
-
name="info-circle"
|
|
262
|
-
color={TEXT_COLORS.secondary}
|
|
263
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
264
|
-
size={ICON_SIZE.small}
|
|
265
|
-
/>
|
|
266
|
-
</Tooltip>
|
|
267
|
-
</div>);
|
|
268
|
-
|
|
269
|
-
export const _Default = (args: PromptInputProps) => {
|
|
270
|
-
const [value, setValue] = React.useState(args.value);
|
|
271
|
-
|
|
272
|
-
React.useEffect(() => {
|
|
273
|
-
setValue(args.value);
|
|
274
|
-
}, [args.value]);
|
|
275
|
-
|
|
276
|
-
return (
|
|
277
|
-
<div className={css.container}>
|
|
278
|
-
<PromptInput
|
|
279
|
-
{...args}
|
|
280
|
-
value={value}
|
|
281
|
-
onInputChange={(e) => setValue(e.target.value)}
|
|
282
|
-
/>
|
|
283
|
-
</div>
|
|
284
|
-
);
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
export const _WithHelperText = (args: PromptInputProps) => {
|
|
288
|
-
const [value, setValue] = React.useState(args.value);
|
|
289
|
-
|
|
290
|
-
React.useEffect(() => {
|
|
291
|
-
setValue(args.value);
|
|
292
|
-
}, [args.value]);
|
|
293
|
-
|
|
294
|
-
return (
|
|
295
|
-
<div className={css.container}>
|
|
296
|
-
<PromptInput
|
|
297
|
-
{...args}
|
|
298
|
-
value={value}
|
|
299
|
-
onInputChange={(e) => setValue(e.target.value)}
|
|
300
|
-
helperContent={<HelperText />}
|
|
301
|
-
/>
|
|
302
|
-
</div>
|
|
303
|
-
);
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
export const _WithTextCounter = (args: PromptInputProps) => {
|
|
307
|
-
const [value, setValue] = React.useState(args.value);
|
|
308
|
-
|
|
309
|
-
React.useEffect(() => {
|
|
310
|
-
setValue(args.value);
|
|
311
|
-
}, [args.value]);
|
|
312
|
-
|
|
313
|
-
return (
|
|
314
|
-
<div className={css.container}>
|
|
315
|
-
<PromptInput
|
|
316
|
-
{...args}
|
|
317
|
-
value={value}
|
|
318
|
-
onInputChange={(e) => setValue(e.target.value)}
|
|
319
|
-
/>
|
|
320
|
-
</div>
|
|
321
|
-
);
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
_WithTextCounter.args = {
|
|
325
|
-
textCountLimit: 500,
|
|
326
|
-
};
|
|
327
|
-
|
|
328
|
-
export const _WithHelperTextAndTextCounter = (args: PromptInputProps) => {
|
|
329
|
-
const [value, setValue] = React.useState(args.value);
|
|
330
|
-
|
|
331
|
-
React.useEffect(() => {
|
|
332
|
-
setValue(args.value);
|
|
333
|
-
}, [args.value]);
|
|
334
|
-
|
|
335
|
-
return (
|
|
336
|
-
<div className={css.container}>
|
|
337
|
-
<PromptInput
|
|
338
|
-
{...args}
|
|
339
|
-
value={value}
|
|
340
|
-
onInputChange={(e) => setValue(e.target.value)}
|
|
341
|
-
helperContent={<HelperText />}
|
|
342
|
-
/>
|
|
343
|
-
</div>
|
|
344
|
-
);
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
_WithHelperTextAndTextCounter.args = {
|
|
348
|
-
textCountLimit: 500,
|
|
349
|
-
};
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import {Flow} from 'flow-to-typescript-codemod';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
|
|
5
|
-
import {size200} from '../../styles/variables/_size';
|
|
6
|
-
import classify from '../../utils/classify';
|
|
7
|
-
import {Button, BUTTON_TYPES} from '../Button';
|
|
8
|
-
import type {IconType} from '../Icon';
|
|
9
|
-
import {ICON_TYPE} from '../Icon';
|
|
10
|
-
import {BodySmallBold, FormLabelSmall} from '../Text';
|
|
11
|
-
import {Textarea} from '../Textarea';
|
|
12
|
-
|
|
13
|
-
import css from './PromptInput.module.css';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const CONSTANTS = {
|
|
17
|
-
DEFAULT_INPUT_PLACEHOLDER: 'Ask me anything',
|
|
18
|
-
INPUT_NAME: 'prompt-textarea',
|
|
19
|
-
BUTTON_TEXT: 'Generate',
|
|
20
|
-
BUTTON_ICON: 'sparkles',
|
|
21
|
-
BUTTON_ARIA_LABEL: 'Prompt Button',
|
|
22
|
-
TEXT_AREA_ROWS: 1,
|
|
23
|
-
} as const;
|
|
24
|
-
|
|
25
|
-
type ClassNames = Readonly<{
|
|
26
|
-
wrapper?: string;
|
|
27
|
-
inputBox?: string;
|
|
28
|
-
textarea?: string;
|
|
29
|
-
buttonWrapper?: string;
|
|
30
|
-
buttonIcon?: string;
|
|
31
|
-
buttonText?: string;
|
|
32
|
-
}>;
|
|
33
|
-
|
|
34
|
-
export type PromptInputProps = {
|
|
35
|
-
// textArea Props
|
|
36
|
-
value?: string;
|
|
37
|
-
onInputChange?: (evt: React.ChangeEvent<HTMLInputElement>, isEnter?: boolean) => unknown;
|
|
38
|
-
onInputFocus?: (e: React.ChangeEvent<HTMLInputElement>) => unknown;
|
|
39
|
-
onInputBlur?: (e: React.ChangeEvent<HTMLInputElement>) => unknown;
|
|
40
|
-
onInputKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => unknown;
|
|
41
|
-
inputName?: string;
|
|
42
|
-
inputDisabled?: boolean;
|
|
43
|
-
inputPlaceholder?: string;
|
|
44
|
-
inputLocked?: boolean;
|
|
45
|
-
inputError?: boolean;
|
|
46
|
-
inputErrorText?: string;
|
|
47
|
-
// Common props
|
|
48
|
-
helperContent?: React.ReactNode;
|
|
49
|
-
textCountLimit?: number;
|
|
50
|
-
classNames?: ClassNames;
|
|
51
|
-
withPadding?: boolean;
|
|
52
|
-
// Button Props
|
|
53
|
-
buttonText?: string;
|
|
54
|
-
buttonDisabled?: boolean;
|
|
55
|
-
onButtonClick?: ((arg1: React.SyntheticEvent<HTMLElement>) => unknown) | null | undefined;
|
|
56
|
-
buttonAriaLabel?: string;
|
|
57
|
-
isButtonLoading?: boolean;
|
|
58
|
-
buttonIconLeftName?: string;
|
|
59
|
-
buttonIconLeftType?: IconType;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const PromptInput: Flow.AbstractComponent<PromptInputProps, HTMLDivElement> = React.forwardRef<HTMLDivElement, PromptInputProps>((
|
|
63
|
-
{
|
|
64
|
-
value,
|
|
65
|
-
onInputChange,
|
|
66
|
-
onInputFocus,
|
|
67
|
-
onInputBlur,
|
|
68
|
-
onInputKeyDown,
|
|
69
|
-
inputName = CONSTANTS.INPUT_NAME,
|
|
70
|
-
inputDisabled,
|
|
71
|
-
inputPlaceholder = CONSTANTS.DEFAULT_INPUT_PLACEHOLDER,
|
|
72
|
-
inputLocked,
|
|
73
|
-
inputError,
|
|
74
|
-
inputErrorText,
|
|
75
|
-
helperContent,
|
|
76
|
-
textCountLimit,
|
|
77
|
-
classNames,
|
|
78
|
-
withPadding = true,
|
|
79
|
-
buttonText = CONSTANTS.BUTTON_TEXT,
|
|
80
|
-
buttonDisabled,
|
|
81
|
-
onButtonClick,
|
|
82
|
-
buttonAriaLabel = CONSTANTS.BUTTON_ARIA_LABEL,
|
|
83
|
-
isButtonLoading,
|
|
84
|
-
buttonIconLeftName = CONSTANTS.BUTTON_ICON,
|
|
85
|
-
// @ts-ignore - TS2322 - Type 'string' is not assignable to type '"regular" | "solid" | "duotone" | "brands"'.
|
|
86
|
-
buttonIconLeftType = ICON_TYPE.solid,
|
|
87
|
-
}: PromptInputProps,
|
|
88
|
-
ref,
|
|
89
|
-
) => {
|
|
90
|
-
const textareaRef = React.useRef(null);
|
|
91
|
-
|
|
92
|
-
const handleInput = () => {
|
|
93
|
-
const textarea = textareaRef.current;
|
|
94
|
-
if (textarea) {
|
|
95
|
-
// @ts-ignore - TS2339 - Property 'style' does not exist on type 'never'.
|
|
96
|
-
textarea.style.height = 'auto'; // Reset height to auto to shrink
|
|
97
|
-
// @ts-ignore - TS2339 - Property 'scrollHeight' does not exist on type 'never'.
|
|
98
|
-
if (textarea.scrollHeight > parseInt(size200)) {
|
|
99
|
-
// @ts-ignore - TS2339 - Property 'style' does not exist on type 'never'.
|
|
100
|
-
textarea.style.height = size200; // Limit height to size200
|
|
101
|
-
// @ts-ignore - TS2339 - Property 'style' does not exist on type 'never'.
|
|
102
|
-
textarea.style.overflowY = 'auto';
|
|
103
|
-
} else {
|
|
104
|
-
// @ts-ignore - TS2339 - Property 'style' does not exist on type 'never'. | TS2339 - Property 'scrollHeight' does not exist on type 'never'.
|
|
105
|
-
textarea.style.height = `${textarea.scrollHeight}px`; // Adjust to content height
|
|
106
|
-
// @ts-ignore - TS2339 - Property 'style' does not exist on type 'never'.
|
|
107
|
-
textarea.style.overflowY = 'hidden';
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
// Reset height on value change
|
|
113
|
-
React.useEffect(() => {
|
|
114
|
-
handleInput();
|
|
115
|
-
}, [value]);
|
|
116
|
-
|
|
117
|
-
const textCountError = React.useMemo(() => {
|
|
118
|
-
const charCount = value ? value.length : 0;
|
|
119
|
-
return textCountLimit != null && charCount > textCountLimit;
|
|
120
|
-
}, [value, textCountLimit]);
|
|
121
|
-
|
|
122
|
-
return (
|
|
123
|
-
<div
|
|
124
|
-
ref={ref}
|
|
125
|
-
data-testid="PromptInput"
|
|
126
|
-
className={classify(
|
|
127
|
-
css.wrapper,
|
|
128
|
-
{[css.styledPromptContainer]: withPadding},
|
|
129
|
-
classNames?.wrapper,
|
|
130
|
-
)}
|
|
131
|
-
>
|
|
132
|
-
<div className={css.inputActionWrapper}>
|
|
133
|
-
<Textarea
|
|
134
|
-
classNames={{
|
|
135
|
-
box: classify(css.promptInputBox, classNames?.inputBox),
|
|
136
|
-
textarea: classify(css.textarea, classNames?.textarea),
|
|
137
|
-
}}
|
|
138
|
-
ref={textareaRef}
|
|
139
|
-
value={value}
|
|
140
|
-
onChange={onInputChange}
|
|
141
|
-
onFocus={onInputFocus}
|
|
142
|
-
onBlur={onInputBlur}
|
|
143
|
-
onKeyDown={onInputKeyDown}
|
|
144
|
-
name={inputName}
|
|
145
|
-
disabled={inputDisabled}
|
|
146
|
-
placeholder={inputPlaceholder}
|
|
147
|
-
locked={inputLocked}
|
|
148
|
-
error={inputError || textCountError}
|
|
149
|
-
errorText={inputErrorText}
|
|
150
|
-
// @ts-ignore - TS2769 - No overload matches this call.
|
|
151
|
-
rows={CONSTANTS.TEXT_AREA_ROWS}
|
|
152
|
-
></Textarea>
|
|
153
|
-
<Button
|
|
154
|
-
iconLeftName={buttonIconLeftName}
|
|
155
|
-
iconLeftType={buttonIconLeftType}
|
|
156
|
-
onClick={onButtonClick}
|
|
157
|
-
type={BUTTON_TYPES.gradient}
|
|
158
|
-
disabled={buttonDisabled}
|
|
159
|
-
ariaLabel={buttonAriaLabel}
|
|
160
|
-
isLoading={isButtonLoading}
|
|
161
|
-
classNames={{
|
|
162
|
-
wrapper: classify(css.actionButton, classNames?.buttonWrapper),
|
|
163
|
-
icon: classNames?.buttonIcon,
|
|
164
|
-
text: classNames?.buttonText,
|
|
165
|
-
}}
|
|
166
|
-
>
|
|
167
|
-
{buttonText}
|
|
168
|
-
</Button>
|
|
169
|
-
</div>
|
|
170
|
-
{(!!helperContent || !!textCountLimit) && (
|
|
171
|
-
<div className={css.secondaryRow}>
|
|
172
|
-
{typeof helperContent === 'string' ? (
|
|
173
|
-
<BodySmallBold color={inputDisabled ? 'disabled' : 'secondary'}>
|
|
174
|
-
{helperContent}
|
|
175
|
-
</BodySmallBold>
|
|
176
|
-
) : (
|
|
177
|
-
helperContent
|
|
178
|
-
)}
|
|
179
|
-
<FormLabelSmall
|
|
180
|
-
color={inputError || textCountError ? 'danger' : 'secondary'}
|
|
181
|
-
className={css.textCounter}
|
|
182
|
-
>
|
|
183
|
-
{!!textCountLimit &&
|
|
184
|
-
((value && value.length) || 0) + '/' + textCountLimit}
|
|
185
|
-
</FormLabelSmall>
|
|
186
|
-
</div>
|
|
187
|
-
)}
|
|
188
|
-
</div>
|
|
189
|
-
);
|
|
190
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './PromptInput';
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import type {RadioButtonProps} from './RadioButton';
|
|
4
|
-
import {RadioButton} from './RadioButton';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export default {
|
|
8
|
-
tags: ['autodocs'],
|
|
9
|
-
title: 'Form Components/Radio Button',
|
|
10
|
-
component: RadioButton,
|
|
11
|
-
argTypes: {
|
|
12
|
-
name: {
|
|
13
|
-
description: 'Specify the name of the underlying `input` node',
|
|
14
|
-
},
|
|
15
|
-
// controlled selectedValue prop
|
|
16
|
-
selectedValue: {
|
|
17
|
-
name: 'selectedValue',
|
|
18
|
-
description:
|
|
19
|
-
'selectedValue will be compared with value of this radio to show as checked or unchecked',
|
|
20
|
-
table: {
|
|
21
|
-
type: {summary: 'string'},
|
|
22
|
-
},
|
|
23
|
-
control: {
|
|
24
|
-
disable: true,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
tabIndex: {
|
|
28
|
-
description: 'Tab index applied to input',
|
|
29
|
-
control: {
|
|
30
|
-
type: 'number',
|
|
31
|
-
},
|
|
32
|
-
table: {
|
|
33
|
-
type: {summary: 'string'},
|
|
34
|
-
defaultValue: {summary: 0},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
value: {
|
|
38
|
-
name: 'value',
|
|
39
|
-
description:
|
|
40
|
-
'Value of this radio input. It is compared with selected value, to determine whether the radio is selected',
|
|
41
|
-
table: {
|
|
42
|
-
type: {summary: 'string'},
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
disabled: {
|
|
46
|
-
name: 'disabled',
|
|
47
|
-
description: `Disabled RadioButton. When true, User can not interact with the the RadioButton.`,
|
|
48
|
-
options: [false, true],
|
|
49
|
-
control: 'boolean',
|
|
50
|
-
table: {
|
|
51
|
-
type: {summary: 'boolean'},
|
|
52
|
-
defaultValue: {summary: false},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
focused: {
|
|
56
|
-
description: `When passed true the RadioButton will be focused to start with.`,
|
|
57
|
-
name: 'focused',
|
|
58
|
-
options: [false, true],
|
|
59
|
-
control: 'boolean',
|
|
60
|
-
table: {
|
|
61
|
-
type: {summary: 'boolean'},
|
|
62
|
-
defaultValue: {summary: false},
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
error: {
|
|
66
|
-
name: 'error',
|
|
67
|
-
description:
|
|
68
|
-
'Error state, when you need to show individual RadioButton in error state then use this prop',
|
|
69
|
-
options: [false, true],
|
|
70
|
-
control: 'boolean',
|
|
71
|
-
table: {
|
|
72
|
-
type: {summary: 'boolean'},
|
|
73
|
-
defaultValue: {summary: false},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
classNames: {
|
|
77
|
-
description: 'External classNames to be applied',
|
|
78
|
-
control: {
|
|
79
|
-
type: 'object',
|
|
80
|
-
},
|
|
81
|
-
table: {
|
|
82
|
-
type: {summary: '{wrapper?: string, label?: string, radio?: string}'},
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
children: {
|
|
86
|
-
description: 'Pass label as children',
|
|
87
|
-
table: {
|
|
88
|
-
type: {summary: 'React.Component | string'},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
onChange: {
|
|
92
|
-
description:
|
|
93
|
-
'**onChange** handler that is applied to the input type=radio element',
|
|
94
|
-
action: 'value selected',
|
|
95
|
-
type: {summary: '(string) => mixed'},
|
|
96
|
-
},
|
|
97
|
-
align: {
|
|
98
|
-
description: 'To be used internally for Checkbox Group,',
|
|
99
|
-
},
|
|
100
|
-
ariaLabel: {
|
|
101
|
-
description:
|
|
102
|
-
'Pass label as ariaLabel. It is mandatory parameter for accessibility in case children is not a simple string.',
|
|
103
|
-
table: {
|
|
104
|
-
type: {summary: 'string'},
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
parameters: {
|
|
109
|
-
docs: {
|
|
110
|
-
subtitle: 'Generates a Radio Button component',
|
|
111
|
-
description: {
|
|
112
|
-
component: `
|
|
113
|
-
\`\`\`js
|
|
114
|
-
import { RadioButton } from "@spaced-out/ui-design-system/lib/components/RadioButton";
|
|
115
|
-
\`\`\`
|
|
116
|
-
RadioButtons are used when only one choice may be selected in a series of options.
|
|
117
|
-
RadioButtons component has been implemented using <code>< input type="radio" > <input type="radio" > </code>
|
|
118
|
-
It is a controlled component, meaning that, you need to pass the selectedValue, if selectedValue is same as value then radio button will shown as checked.
|
|
119
|
-
You will pass a callback function in onChange prop, if radio is clicked this function will be called and you will receive
|
|
120
|
-
the selectedValue which will the value prop of RadioButton.
|
|
121
|
-
|
|
122
|
-
RadioButton has to be only used as children to RadioGroup.
|
|
123
|
-
Refer the <a href="../?path=/docs/form-components-radio-group--docs">RadioGroup</a> documentation for details.
|
|
124
|
-
`,
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
storySource: {
|
|
128
|
-
componentPath: '/src/components/RadioButton/RadioButton.jsx',
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
export const _RadioButton = (args: RadioButtonProps) => {
|
|
134
|
-
const [selectedValue, setSelectedValue] = React.useState(args.selectedValue);
|
|
135
|
-
// @ts-ignore - TS7019 - Rest parameter 'params' implicitly has an 'any[]' type.
|
|
136
|
-
const onChangeHandler = (...params): void => {
|
|
137
|
-
// @ts-ignore - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
|
|
138
|
-
args.onChange && args.onChange(...params);
|
|
139
|
-
// @ts-ignore - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
|
|
140
|
-
setSelectedValue(...params);
|
|
141
|
-
};
|
|
142
|
-
return (
|
|
143
|
-
<RadioButton
|
|
144
|
-
{...args}
|
|
145
|
-
onChange={onChangeHandler}
|
|
146
|
-
selectedValue={selectedValue}
|
|
147
|
-
/>
|
|
148
|
-
);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
_RadioButton.args = {
|
|
152
|
-
disabled: false,
|
|
153
|
-
focused: false,
|
|
154
|
-
children: 'Radio Button Label',
|
|
155
|
-
value: 'sample',
|
|
156
|
-
error: false,
|
|
157
|
-
};
|