@ultraviolet/ui 1.51.0 → 1.51.2
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/dist/components/ActionBar/index.d.ts +20 -0
- package/dist/components/ActionBar/index.js +40 -0
- package/dist/components/Alert/index.d.ts +27 -0
- package/dist/components/Alert/index.js +126 -0
- package/dist/components/Avatar/index.d.ts +43 -0
- package/dist/components/Avatar/index.js +54 -0
- package/dist/components/Badge/index.d.ts +31 -0
- package/dist/components/Badge/index.js +115 -0
- package/dist/components/Banner/assets/default-image-small.svg.js +4 -0
- package/dist/components/Banner/assets/default-image.svg.js +4 -0
- package/dist/components/Banner/index.d.ts +24 -0
- package/dist/components/Banner/index.js +191 -0
- package/dist/components/BarChart/Tooltip.d.ts +9 -0
- package/dist/components/BarChart/Tooltip.js +36 -0
- package/dist/components/BarChart/index.d.ts +27 -0
- package/dist/components/BarChart/index.js +82 -0
- package/dist/components/BarStack/index.d.ts +36 -0
- package/dist/components/BarStack/index.js +188 -0
- package/dist/components/Breadcrumbs/index.d.ts +30 -0
- package/dist/components/Breadcrumbs/index.js +76 -0
- package/dist/components/Bullet/index.d.ts +39 -0
- package/dist/components/Bullet/index.js +88 -0
- package/dist/components/Button/index.d.ts +120 -0
- package/dist/components/Button/index.js +291 -0
- package/dist/components/Card/index.d.ts +20 -0
- package/dist/components/Card/index.js +59 -0
- package/dist/components/Carousel/index.d.ts +19 -0
- package/dist/components/Carousel/index.js +147 -0
- package/dist/components/Checkbox/index.d.ts +36 -0
- package/dist/components/Checkbox/index.js +359 -0
- package/dist/components/CheckboxGroup/index.d.ts +24 -0
- package/dist/components/CheckboxGroup/index.js +112 -0
- package/dist/components/CopyButton/index.d.ts +19 -0
- package/dist/components/CopyButton/index.js +37 -0
- package/dist/components/DateInput/datepicker.css.js +4 -0
- package/dist/components/DateInput/index.d.ts +38 -0
- package/dist/components/DateInput/index.js +301 -0
- package/dist/components/Dialog/Context.d.ts +7 -0
- package/dist/components/Dialog/Context.js +15 -0
- package/dist/components/Dialog/constants.d.ts +2 -0
- package/dist/components/Dialog/index.d.ts +87 -0
- package/dist/components/Dialog/index.js +87 -0
- package/dist/components/Dialog/subComponents/Button.d.ts +7 -0
- package/dist/components/Dialog/subComponents/Button.js +24 -0
- package/dist/components/Dialog/subComponents/Buttons.d.ts +7 -0
- package/dist/components/Dialog/subComponents/Buttons.js +12 -0
- package/dist/components/Dialog/subComponents/CancelButton.d.ts +8 -0
- package/dist/components/Dialog/subComponents/CancelButton.js +9 -0
- package/dist/components/Dialog/subComponents/Stack.d.ts +6 -0
- package/dist/components/Dialog/subComponents/Stack.js +6 -0
- package/dist/components/Dialog/subComponents/Text.d.ts +6 -0
- package/dist/components/Dialog/subComponents/Text.js +6 -0
- package/dist/components/EmptyState/index.d.ts +38 -0
- package/dist/components/EmptyState/index.js +82 -0
- package/dist/components/Expandable/index.d.ts +33 -0
- package/dist/components/Expandable/index.js +79 -0
- package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +3 -0
- package/dist/components/GlobalAlert/GlobalAlertLink.js +39 -0
- package/dist/components/GlobalAlert/index.d.ts +40 -0
- package/dist/components/GlobalAlert/index.js +112 -0
- package/dist/components/LineChart/CustomLegend.d.ts +13 -0
- package/dist/components/LineChart/CustomLegend.js +109 -0
- package/dist/components/LineChart/Tooltip.d.ts +6 -0
- package/dist/components/LineChart/Tooltip.js +46 -0
- package/dist/components/LineChart/helpers.d.ts +8 -0
- package/dist/components/LineChart/helpers.js +50 -0
- package/dist/components/LineChart/index.d.ts +25 -0
- package/dist/components/LineChart/index.js +118 -0
- package/dist/components/Link/index.d.ts +33 -0
- package/dist/components/Link/index.js +167 -0
- package/dist/components/List/Body.d.ts +6 -0
- package/dist/components/List/Body.js +11 -0
- package/dist/components/List/Cell.d.ts +12 -0
- package/dist/components/List/Cell.js +38 -0
- package/dist/components/List/HeaderCell.d.ts +11 -0
- package/dist/components/List/HeaderCell.js +96 -0
- package/dist/components/List/HeaderRow.d.ts +7 -0
- package/dist/components/List/HeaderRow.js +38 -0
- package/dist/components/List/ListContext.d.ts +34 -0
- package/dist/components/List/ListContext.js +155 -0
- package/dist/components/List/Row.d.ts +23 -0
- package/dist/components/List/Row.js +194 -0
- package/dist/components/List/SelectBar.d.ts +15 -0
- package/dist/components/List/SelectBar.js +35 -0
- package/dist/components/List/SkeletonRows.d.ts +7 -0
- package/dist/components/List/SkeletonRows.js +36 -0
- package/dist/components/List/constants.d.ts +2 -0
- package/dist/{src/components → components}/List/constants.js +4 -2
- package/dist/components/List/index.d.ts +68 -0
- package/dist/components/List/index.js +80 -0
- package/dist/components/Loader/index.d.ts +22 -0
- package/dist/components/Loader/index.js +98 -0
- package/dist/components/Menu/Item.d.ts +15 -0
- package/dist/components/Menu/Item.js +101 -0
- package/dist/components/Menu/index.d.ts +49 -0
- package/dist/components/Menu/index.js +182 -0
- package/dist/components/MenuV2/Group.d.ts +7 -0
- package/dist/components/MenuV2/Group.js +23 -0
- package/dist/components/MenuV2/Item.d.ts +16 -0
- package/dist/components/MenuV2/Item.js +120 -0
- package/dist/components/MenuV2/index.d.ts +90 -0
- package/dist/components/MenuV2/index.js +124 -0
- package/dist/components/Meter/index.d.ts +26 -0
- package/dist/components/Meter/index.js +76 -0
- package/dist/components/Modal/Dialog.d.ts +3 -0
- package/dist/components/Modal/Dialog.js +197 -0
- package/dist/components/Modal/Disclosure.d.ts +3 -0
- package/dist/{src/components → components}/Modal/Disclosure.js +12 -12
- package/dist/components/Modal/constants.d.ts +3 -0
- package/dist/{src/components → components}/Modal/constants.js +8 -6
- package/dist/components/Modal/index.d.ts +42 -0
- package/dist/components/Modal/index.js +114 -0
- package/dist/components/Modal/types.d.ts +48 -0
- package/dist/components/Notice/index.d.ts +11 -0
- package/dist/components/Notice/index.js +39 -0
- package/dist/components/Notification/index.d.ts +36 -0
- package/dist/components/Notification/index.js +88 -0
- package/dist/components/Notification/react-toastify.css.js +4 -0
- package/dist/components/NumberInput/helpers.d.ts +4 -0
- package/dist/{src/components → components}/NumberInput/helpers.js +6 -2
- package/dist/components/NumberInput/index.d.ts +41 -0
- package/dist/components/NumberInput/index.js +349 -0
- package/dist/components/NumberInputV2/index.d.ts +27 -0
- package/dist/components/NumberInputV2/index.js +370 -0
- package/dist/components/Pagination/getPageNumbers.d.ts +8 -0
- package/dist/{src/components → components}/Pagination/getPageNumbers.js +4 -12
- package/dist/components/Pagination/index.d.ts +30 -0
- package/dist/components/Pagination/index.js +124 -0
- package/dist/components/PasswordCheck/index.d.ts +20 -0
- package/dist/components/PasswordCheck/index.js +29 -0
- package/dist/components/PasswordStrengthMeter/index.d.ts +39 -0
- package/dist/components/PasswordStrengthMeter/index.js +98 -0
- package/dist/components/PieChart/Legends.d.ts +9 -0
- package/dist/components/PieChart/Legends.js +120 -0
- package/dist/components/PieChart/Tooltip.d.ts +12 -0
- package/dist/components/PieChart/Tooltip.js +29 -0
- package/dist/components/PieChart/index.d.ts +20 -0
- package/dist/components/PieChart/index.js +120 -0
- package/dist/components/PieChart/types.d.ts +7 -0
- package/dist/components/Popover/index.d.ts +55 -0
- package/dist/components/Popover/index.js +149 -0
- package/dist/components/Popup/animations.d.ts +11 -0
- package/dist/{src/components → components}/Popup/animations.js +7 -6
- package/dist/components/Popup/helpers.d.ts +31 -0
- package/dist/components/Popup/helpers.js +204 -0
- package/dist/components/Popup/index.d.ts +72 -0
- package/dist/components/Popup/index.js +385 -0
- package/dist/components/ProgressBar/index.d.ts +14 -0
- package/dist/components/ProgressBar/index.js +71 -0
- package/dist/components/Radio/index.d.ts +21 -0
- package/dist/components/Radio/index.js +202 -0
- package/dist/components/RadioGroup/index.d.ts +25 -0
- package/dist/components/RadioGroup/index.js +104 -0
- package/dist/components/Row/index.d.ts +22 -0
- package/dist/components/Row/index.js +43 -0
- package/dist/components/SelectInput/index.d.ts +75 -0
- package/dist/components/SelectInput/index.js +563 -0
- package/dist/components/SelectInputV2/Dropdown.d.ts +23 -0
- package/dist/components/SelectInputV2/Dropdown.js +669 -0
- package/dist/components/SelectInputV2/DropdownOption.d.ts +8 -0
- package/dist/components/SelectInputV2/DropdownOption.js +133 -0
- package/dist/components/SelectInputV2/SearchBarDropdown.d.ts +9 -0
- package/dist/components/SelectInputV2/SearchBarDropdown.js +123 -0
- package/dist/components/SelectInputV2/SelectBar.d.ts +14 -0
- package/dist/components/SelectInputV2/SelectBar.js +327 -0
- package/dist/components/SelectInputV2/SelectInputProvider.d.ts +41 -0
- package/dist/components/SelectInputV2/SelectInputProvider.js +203 -0
- package/dist/components/SelectInputV2/findOptionInOptions.d.ts +2 -0
- package/dist/components/SelectInputV2/findOptionInOptions.js +12 -0
- package/dist/components/SelectInputV2/index.d.ts +115 -0
- package/dist/components/SelectInputV2/index.js +146 -0
- package/dist/components/SelectInputV2/types.d.ts +38 -0
- package/dist/{src/components → components}/SelectInputV2/types.js +4 -2
- package/dist/components/SelectableCard/index.d.ts +25 -0
- package/dist/components/SelectableCard/index.js +193 -0
- package/dist/components/SelectableCardGroup/index.d.ts +23 -0
- package/dist/components/SelectableCardGroup/index.js +112 -0
- package/dist/components/Separator/index.d.ts +17 -0
- package/dist/components/Separator/index.js +76 -0
- package/dist/components/Skeleton/Block.d.ts +3 -0
- package/dist/components/Skeleton/Block.js +30 -0
- package/dist/components/Skeleton/Blocks.d.ts +4 -0
- package/dist/components/Skeleton/Blocks.js +28 -0
- package/dist/components/Skeleton/BoxWithIcon.d.ts +4 -0
- package/dist/components/Skeleton/BoxWithIcon.js +29 -0
- package/dist/components/Skeleton/Donut.d.ts +1 -0
- package/dist/components/Skeleton/Donut.js +36 -0
- package/dist/components/Skeleton/IconSkeleton.d.ts +5 -0
- package/dist/components/Skeleton/IconSkeleton.js +12 -0
- package/dist/components/Skeleton/Line.d.ts +5 -0
- package/dist/components/Skeleton/Line.js +13 -0
- package/dist/components/Skeleton/List.d.ts +4 -0
- package/dist/components/Skeleton/List.js +29 -0
- package/dist/components/Skeleton/Slider.d.ts +3 -0
- package/dist/components/Skeleton/Slider.js +26 -0
- package/dist/components/Skeleton/Square.d.ts +5 -0
- package/dist/components/Skeleton/Square.js +10 -0
- package/dist/components/Skeleton/index.d.ts +47 -0
- package/dist/components/Skeleton/index.js +86 -0
- package/dist/components/Snippet/index.d.ts +23 -0
- package/dist/components/Snippet/index.js +171 -0
- package/dist/components/Stack/index.d.ts +23 -0
- package/dist/components/Stack/index.js +36 -0
- package/dist/components/Status/index.d.ts +32 -0
- package/dist/components/Status/index.js +57 -0
- package/dist/components/StepList/index.d.ts +33 -0
- package/dist/components/StepList/index.js +69 -0
- package/dist/components/Stepper/index.d.ts +15 -0
- package/dist/components/Stepper/index.js +153 -0
- package/dist/components/SwitchButton/FocusOverlay.d.ts +8 -0
- package/dist/components/SwitchButton/FocusOverlay.js +47 -0
- package/dist/components/SwitchButton/index.d.ts +26 -0
- package/dist/components/SwitchButton/index.js +140 -0
- package/dist/components/Table/Body.d.ts +6 -0
- package/dist/components/Table/Body.js +5 -0
- package/dist/components/Table/Cell.d.ts +9 -0
- package/dist/components/Table/Cell.js +10 -0
- package/dist/components/Table/Header.d.ts +6 -0
- package/dist/components/Table/Header.js +9 -0
- package/dist/components/Table/HeaderCell.d.ts +14 -0
- package/dist/components/Table/HeaderCell.js +123 -0
- package/dist/components/Table/HeaderRow.d.ts +7 -0
- package/dist/components/Table/HeaderRow.js +25 -0
- package/dist/components/Table/Row.d.ts +14 -0
- package/dist/components/Table/Row.js +85 -0
- package/dist/components/Table/SelectBar.d.ts +15 -0
- package/dist/components/Table/SelectBar.js +35 -0
- package/dist/components/Table/SkeletonRows.d.ts +7 -0
- package/dist/components/Table/SkeletonRows.js +22 -0
- package/dist/components/Table/TableContext.d.ts +27 -0
- package/dist/components/Table/TableContext.js +103 -0
- package/dist/components/Table/index.d.ts +60 -0
- package/dist/components/Table/index.js +81 -0
- package/dist/components/Tabs/Tab.d.ts +20 -0
- package/dist/components/Tabs/Tab.js +170 -0
- package/dist/components/Tabs/TabMenu.d.ts +8 -0
- package/dist/components/Tabs/TabMenu.js +63 -0
- package/dist/components/Tabs/TabMenuItem.d.ts +20 -0
- package/dist/components/Tabs/TabMenuItem.js +39 -0
- package/dist/components/Tabs/TabsContext.d.ts +8 -0
- package/dist/components/Tabs/TabsContext.js +9 -0
- package/dist/components/Tabs/index.d.ts +50 -0
- package/dist/components/Tabs/index.js +137 -0
- package/dist/components/Tag/index.d.ts +26 -0
- package/dist/components/Tag/index.js +153 -0
- package/dist/components/TagInput/index.d.ts +55 -0
- package/dist/components/TagInput/index.js +316 -0
- package/dist/components/TagList/index.d.ts +37 -0
- package/dist/components/TagList/index.js +103 -0
- package/dist/components/Text/index.d.ts +40 -0
- package/dist/components/Text/index.js +107 -0
- package/dist/components/TextArea/index.d.ts +50 -0
- package/dist/components/TextArea/index.js +226 -0
- package/dist/components/TextInput/index.d.ts +75 -0
- package/dist/components/TextInput/index.js +472 -0
- package/dist/components/TextInputV2/index.d.ts +30 -0
- package/dist/components/TextInputV2/index.js +314 -0
- package/dist/components/TimeInput/index.d.ts +25 -0
- package/dist/components/TimeInput/index.js +199 -0
- package/dist/components/Toaster/index.d.ts +46 -0
- package/dist/components/Toaster/index.js +131 -0
- package/dist/components/Toaster/react-toastify.css.js +4 -0
- package/dist/components/Toggle/index.d.ts +34 -0
- package/dist/components/Toggle/index.js +196 -0
- package/dist/components/ToggleGroup/index.d.ts +24 -0
- package/dist/components/ToggleGroup/index.js +87 -0
- package/dist/components/Tooltip/index.d.ts +9 -0
- package/dist/components/Tooltip/index.js +47 -0
- package/dist/components/VerificationCode/index.d.ts +36 -0
- package/dist/components/VerificationCode/index.js +222 -0
- package/dist/components/index.d.ts +75 -0
- package/dist/helpers/isJSON.d.ts +2 -0
- package/dist/{src/helpers → helpers}/isJSON.js +4 -3
- package/dist/helpers/jestMockMatchMedia.d.ts +6 -0
- package/dist/helpers/keycode.d.ts +3 -0
- package/dist/helpers/legend.d.ts +2 -0
- package/dist/helpers/legend.js +14 -0
- package/dist/helpers/numbers.d.ts +2 -0
- package/dist/helpers/recursivelyGetChildrenString.d.ts +3 -0
- package/dist/helpers/recursivelyGetChildrenString.js +15 -0
- package/dist/hooks/useIsOverflowing.d.ts +5 -0
- package/dist/hooks/useIsOverflowing.js +23 -0
- package/dist/index.d.ts +4 -3693
- package/dist/index.js +187 -0
- package/dist/mocks/list.d.ts +12 -0
- package/dist/theme/index.d.ts +1573 -0
- package/dist/theme/index.js +30 -0
- package/dist/types.d.ts +6 -0
- package/dist/utils/animations.d.ts +27 -0
- package/dist/{src/utils → utils}/animations.js +30 -4
- package/dist/utils/capitalize.d.ts +2 -0
- package/dist/utils/capitalize.js +4 -0
- package/dist/utils/ids.d.ts +1 -0
- package/dist/utils/ids.js +6 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/normalize.d.ts +2 -0
- package/dist/{src/utils → utils}/normalize.js +4 -3
- package/dist/utils/orderBy.d.ts +2 -0
- package/dist/utils/responsive/Breakpoint.d.ts +9 -0
- package/dist/utils/responsive/Breakpoint.js +13 -0
- package/dist/utils/responsive/index.d.ts +2 -0
- package/dist/utils/responsive/utilities.d.ts +3 -0
- package/dist/{src/utils → utils}/responsive/utilities.js +9 -6
- package/package.json +23 -13
- package/dist/react-datepicker/dist/react-datepicker.min.css.js +0 -3
- package/dist/react-toastify/dist/ReactToastify.min.css.js +0 -3
- package/dist/src/components/ActionBar/index.js +0 -40
- package/dist/src/components/Alert/index.js +0 -133
- package/dist/src/components/Avatar/index.js +0 -74
- package/dist/src/components/Badge/index.js +0 -116
- package/dist/src/components/Banner/assets/default-image-small.svg.js +0 -5
- package/dist/src/components/Banner/assets/default-image.svg.js +0 -5
- package/dist/src/components/Banner/index.js +0 -159
- package/dist/src/components/BarChart/Tooltip.js +0 -48
- package/dist/src/components/BarChart/index.js +0 -95
- package/dist/src/components/BarStack/index.js +0 -136
- package/dist/src/components/Breadcrumbs/index.js +0 -82
- package/dist/src/components/Bullet/index.js +0 -98
- package/dist/src/components/Button/index.js +0 -311
- package/dist/src/components/Card/index.js +0 -67
- package/dist/src/components/Carousel/index.js +0 -128
- package/dist/src/components/Checkbox/index.js +0 -316
- package/dist/src/components/CheckboxGroup/index.js +0 -143
- package/dist/src/components/CopyButton/index.js +0 -37
- package/dist/src/components/DateInput/index.js +0 -242
- package/dist/src/components/Dialog/Context.js +0 -12
- package/dist/src/components/Dialog/index.js +0 -88
- package/dist/src/components/Dialog/subComponents/Button.js +0 -21
- package/dist/src/components/Dialog/subComponents/Buttons.js +0 -14
- package/dist/src/components/Dialog/subComponents/CancelButton.js +0 -14
- package/dist/src/components/Dialog/subComponents/Stack.js +0 -11
- package/dist/src/components/Dialog/subComponents/Text.js +0 -12
- package/dist/src/components/EmptyState/index.js +0 -112
- package/dist/src/components/Expandable/index.js +0 -96
- package/dist/src/components/GlobalAlert/GlobalAlertLink.js +0 -38
- package/dist/src/components/GlobalAlert/index.js +0 -82
- package/dist/src/components/LineChart/CustomLegend.js +0 -138
- package/dist/src/components/LineChart/Tooltip.js +0 -43
- package/dist/src/components/LineChart/helpers.js +0 -40
- package/dist/src/components/LineChart/index.js +0 -131
- package/dist/src/components/Link/index.js +0 -147
- package/dist/src/components/List/Body.js +0 -16
- package/dist/src/components/List/Cell.js +0 -43
- package/dist/src/components/List/HeaderCell.js +0 -90
- package/dist/src/components/List/HeaderRow.js +0 -43
- package/dist/src/components/List/ListContext.js +0 -138
- package/dist/src/components/List/Row.js +0 -185
- package/dist/src/components/List/SelectBar.js +0 -48
- package/dist/src/components/List/SkeletonRows.js +0 -53
- package/dist/src/components/List/index.js +0 -75
- package/dist/src/components/Loader/index.js +0 -100
- package/dist/src/components/Menu/Item.js +0 -112
- package/dist/src/components/Menu/index.js +0 -129
- package/dist/src/components/MenuV2/Group.js +0 -25
- package/dist/src/components/MenuV2/Item.js +0 -139
- package/dist/src/components/MenuV2/index.js +0 -116
- package/dist/src/components/Meter/index.js +0 -76
- package/dist/src/components/Modal/Dialog.js +0 -182
- package/dist/src/components/Modal/index.js +0 -113
- package/dist/src/components/Notice/index.js +0 -34
- package/dist/src/components/Notification/index.js +0 -77
- package/dist/src/components/NumberInput/index.js +0 -299
- package/dist/src/components/NumberInputV2/index.js +0 -284
- package/dist/src/components/Pagination/index.js +0 -117
- package/dist/src/components/PasswordCheck/index.js +0 -41
- package/dist/src/components/PasswordStrengthMeter/index.js +0 -102
- package/dist/src/components/PieChart/Legends.js +0 -138
- package/dist/src/components/PieChart/Tooltip.js +0 -61
- package/dist/src/components/PieChart/index.js +0 -125
- package/dist/src/components/Popover/index.js +0 -144
- package/dist/src/components/Popup/helpers.js +0 -252
- package/dist/src/components/Popup/index.js +0 -363
- package/dist/src/components/ProgressBar/index.js +0 -57
- package/dist/src/components/Radio/index.js +0 -157
- package/dist/src/components/RadioGroup/index.js +0 -131
- package/dist/src/components/Row/index.js +0 -41
- package/dist/src/components/SelectInput/index.js +0 -610
- package/dist/src/components/SelectInputV2/Dropdown.js +0 -594
- package/dist/src/components/SelectInputV2/DropdownOption.js +0 -130
- package/dist/src/components/SelectInputV2/SearchBarDropdown.js +0 -128
- package/dist/src/components/SelectInputV2/SelectBar.js +0 -282
- package/dist/src/components/SelectInputV2/SelectInputProvider.js +0 -169
- package/dist/src/components/SelectInputV2/findOptionInOptions.js +0 -11
- package/dist/src/components/SelectInputV2/index.js +0 -137
- package/dist/src/components/SelectableCard/index.js +0 -175
- package/dist/src/components/SelectableCardGroup/index.js +0 -141
- package/dist/src/components/Separator/index.js +0 -73
- package/dist/src/components/Skeleton/Block.js +0 -35
- package/dist/src/components/Skeleton/Blocks.js +0 -34
- package/dist/src/components/Skeleton/BoxWithIcon.js +0 -32
- package/dist/src/components/Skeleton/Donut.js +0 -55
- package/dist/src/components/Skeleton/IconSkeleton.js +0 -19
- package/dist/src/components/Skeleton/Line.js +0 -13
- package/dist/src/components/Skeleton/List.js +0 -51
- package/dist/src/components/Skeleton/Slider.js +0 -36
- package/dist/src/components/Skeleton/Square.js +0 -9
- package/dist/src/components/Skeleton/index.js +0 -82
- package/dist/src/components/Snippet/index.js +0 -200
- package/dist/src/components/Stack/index.js +0 -29
- package/dist/src/components/Status/index.js +0 -74
- package/dist/src/components/StepList/index.js +0 -69
- package/dist/src/components/Stepper/index.js +0 -150
- package/dist/src/components/SwitchButton/FocusOverlay.js +0 -37
- package/dist/src/components/SwitchButton/index.js +0 -108
- package/dist/src/components/Table/Body.js +0 -9
- package/dist/src/components/Table/Cell.js +0 -21
- package/dist/src/components/Table/Header.js +0 -15
- package/dist/src/components/Table/HeaderCell.js +0 -103
- package/dist/src/components/Table/HeaderRow.js +0 -32
- package/dist/src/components/Table/Row.js +0 -89
- package/dist/src/components/Table/SelectBar.js +0 -48
- package/dist/src/components/Table/SkeletonRows.js +0 -51
- package/dist/src/components/Table/TableContext.js +0 -90
- package/dist/src/components/Table/index.js +0 -82
- package/dist/src/components/Tabs/Tab.js +0 -138
- package/dist/src/components/Tabs/TabMenu.js +0 -59
- package/dist/src/components/Tabs/TabMenuItem.js +0 -36
- package/dist/src/components/Tabs/TabsContext.js +0 -6
- package/dist/src/components/Tabs/index.js +0 -117
- package/dist/src/components/Tag/index.js +0 -169
- package/dist/src/components/TagInput/index.js +0 -309
- package/dist/src/components/TagList/index.js +0 -106
- package/dist/src/components/Text/index.js +0 -107
- package/dist/src/components/TextArea/index.js +0 -210
- package/dist/src/components/TextInput/index.js +0 -451
- package/dist/src/components/TextInputV2/index.js +0 -289
- package/dist/src/components/TimeInput/index.js +0 -37
- package/dist/src/components/Toaster/index.js +0 -131
- package/dist/src/components/Toggle/index.js +0 -160
- package/dist/src/components/ToggleGroup/index.js +0 -122
- package/dist/src/components/Tooltip/index.js +0 -55
- package/dist/src/components/VerificationCode/index.js +0 -222
- package/dist/src/helpers/legend.js +0 -13
- package/dist/src/helpers/recursivelyGetChildrenString.js +0 -11
- package/dist/src/hooks/useIsOverflowing.js +0 -34
- package/dist/src/index.js +0 -77
- package/dist/src/theme/index.js +0 -29
- package/dist/src/utils/capitalize.js +0 -3
- package/dist/src/utils/ids.js +0 -7
- package/dist/src/utils/responsive/Breakpoint.js +0 -12
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
import { Stack } from "../Stack/index.js";
|
|
4
|
+
import { Text } from "../Text/index.js";
|
|
5
|
+
const StyledInfo = styled.div`
|
|
6
|
+
align-content: center;
|
|
7
|
+
`;
|
|
8
|
+
const DisplayOption = ({
|
|
9
|
+
option,
|
|
10
|
+
optionalInfoPlacement,
|
|
11
|
+
descriptionDirection
|
|
12
|
+
}) => {
|
|
13
|
+
if (descriptionDirection === "row" && optionalInfoPlacement === "left") {
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
Stack,
|
|
16
|
+
{
|
|
17
|
+
gap: 0.5,
|
|
18
|
+
direction: "row",
|
|
19
|
+
justifyContent: "left",
|
|
20
|
+
"data-testid": `option-stack-${option.value}`,
|
|
21
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: 0.5, direction: "row", alignItems: "center", children: [
|
|
22
|
+
option.optionalInfo ?? null,
|
|
23
|
+
/* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: option.label }),
|
|
24
|
+
option.description ? /* @__PURE__ */ jsx(
|
|
25
|
+
Text,
|
|
26
|
+
{
|
|
27
|
+
as: "span",
|
|
28
|
+
variant: "bodySmall",
|
|
29
|
+
sentiment: "neutral",
|
|
30
|
+
placement: "left",
|
|
31
|
+
prominence: "weak",
|
|
32
|
+
children: option.description
|
|
33
|
+
}
|
|
34
|
+
) : null
|
|
35
|
+
] })
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
if (descriptionDirection === "row" && optionalInfoPlacement === "right") {
|
|
40
|
+
return /* @__PURE__ */ jsxs(
|
|
41
|
+
Stack,
|
|
42
|
+
{
|
|
43
|
+
gap: 0.5,
|
|
44
|
+
direction: "row",
|
|
45
|
+
justifyContent: "space-between",
|
|
46
|
+
alignItems: "baseline",
|
|
47
|
+
"data-testid": `option-stack-${option.value}`,
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 0.5, direction: "row", children: [
|
|
50
|
+
/* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: option.label }),
|
|
51
|
+
option.description ? /* @__PURE__ */ jsx(
|
|
52
|
+
Text,
|
|
53
|
+
{
|
|
54
|
+
as: "span",
|
|
55
|
+
variant: "bodySmall",
|
|
56
|
+
sentiment: "neutral",
|
|
57
|
+
placement: "left",
|
|
58
|
+
prominence: "weak",
|
|
59
|
+
children: option.description
|
|
60
|
+
}
|
|
61
|
+
) : null
|
|
62
|
+
] }),
|
|
63
|
+
option.optionalInfo ? /* @__PURE__ */ jsx(StyledInfo, { children: option.optionalInfo }) : null
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
if (descriptionDirection === "column" && optionalInfoPlacement === "left") {
|
|
69
|
+
return /* @__PURE__ */ jsxs(
|
|
70
|
+
Stack,
|
|
71
|
+
{
|
|
72
|
+
gap: 0.5,
|
|
73
|
+
direction: "row",
|
|
74
|
+
justifyContent: option.optionalInfo ? "left" : "space-between",
|
|
75
|
+
alignItems: "normal",
|
|
76
|
+
children: [
|
|
77
|
+
option.optionalInfo ?? null,
|
|
78
|
+
/* @__PURE__ */ jsxs(
|
|
79
|
+
Stack,
|
|
80
|
+
{
|
|
81
|
+
gap: 0.5,
|
|
82
|
+
direction: "column",
|
|
83
|
+
"data-testid": `option-stack-${option.value}`,
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: option.label }),
|
|
86
|
+
option.description ? /* @__PURE__ */ jsx(
|
|
87
|
+
Text,
|
|
88
|
+
{
|
|
89
|
+
as: "span",
|
|
90
|
+
variant: "bodySmall",
|
|
91
|
+
sentiment: "neutral",
|
|
92
|
+
placement: "left",
|
|
93
|
+
prominence: "weak",
|
|
94
|
+
children: option.description
|
|
95
|
+
}
|
|
96
|
+
) : null
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
return /* @__PURE__ */ jsxs(
|
|
105
|
+
Stack,
|
|
106
|
+
{
|
|
107
|
+
gap: 0.5,
|
|
108
|
+
direction: "column",
|
|
109
|
+
alignItems: "normal",
|
|
110
|
+
"data-testid": `option-stack-${option.value}`,
|
|
111
|
+
children: [
|
|
112
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 0.5, direction: "row", justifyContent: "space-between", children: [
|
|
113
|
+
/* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: option.label }),
|
|
114
|
+
option.optionalInfo ? /* @__PURE__ */ jsx(StyledInfo, { children: option.optionalInfo }) : null
|
|
115
|
+
] }),
|
|
116
|
+
option.description ? /* @__PURE__ */ jsx(
|
|
117
|
+
Text,
|
|
118
|
+
{
|
|
119
|
+
as: "span",
|
|
120
|
+
variant: "bodySmall",
|
|
121
|
+
sentiment: "neutral",
|
|
122
|
+
placement: "left",
|
|
123
|
+
prominence: "weak",
|
|
124
|
+
children: option.description
|
|
125
|
+
}
|
|
126
|
+
) : null
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
};
|
|
131
|
+
export {
|
|
132
|
+
DisplayOption
|
|
133
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import type { DataType } from './types';
|
|
3
|
+
type SearchBarProps = {
|
|
4
|
+
placeholder: string;
|
|
5
|
+
displayedOptions: DataType;
|
|
6
|
+
setSearchBarActive: Dispatch<SetStateAction<boolean>>;
|
|
7
|
+
};
|
|
8
|
+
export declare const SearchBarDropdown: ({ placeholder, displayedOptions, setSearchBarActive, }: SearchBarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
import { Icon } from "@ultraviolet/icons";
|
|
4
|
+
import { useRef } from "react";
|
|
5
|
+
import { TextInputV2 } from "../TextInputV2/index.js";
|
|
6
|
+
import { useSelectInput } from "./SelectInputProvider.js";
|
|
7
|
+
const StyledInput = styled(TextInputV2)`
|
|
8
|
+
padding-top: ${({ theme }) => theme.space[1.5]};
|
|
9
|
+
padding-bottom: ${({ theme }) => theme.space[1.5]};
|
|
10
|
+
padding-left: ${({ theme }) => theme.space[2]};
|
|
11
|
+
padding-right: ${({ theme }) => theme.space[2]};
|
|
12
|
+
`;
|
|
13
|
+
const findClosestOption = (options, searchInput) => {
|
|
14
|
+
if (searchInput) {
|
|
15
|
+
if (!Array.isArray(options)) {
|
|
16
|
+
const possibleOptions = { ...options };
|
|
17
|
+
Object.keys(possibleOptions).map((group) => {
|
|
18
|
+
possibleOptions[group] = possibleOptions[group].filter(
|
|
19
|
+
(option) => !option.disabled
|
|
20
|
+
);
|
|
21
|
+
return null;
|
|
22
|
+
});
|
|
23
|
+
if (Object.keys(possibleOptions).some(
|
|
24
|
+
(group) => possibleOptions[group].length > 0
|
|
25
|
+
)) {
|
|
26
|
+
const firstFit = Object.keys(possibleOptions).map((group) => possibleOptions[group][0]).filter((value) => !!value)[0];
|
|
27
|
+
return firstFit;
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
const possibleOptions = [...options].filter((option) => !option.disabled);
|
|
31
|
+
if (possibleOptions.length > 0) {
|
|
32
|
+
return possibleOptions[0];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
const SearchBarDropdown = ({
|
|
39
|
+
placeholder,
|
|
40
|
+
displayedOptions,
|
|
41
|
+
setSearchBarActive
|
|
42
|
+
}) => {
|
|
43
|
+
const searchInputRef = useRef(null);
|
|
44
|
+
const {
|
|
45
|
+
onChange,
|
|
46
|
+
onSearch,
|
|
47
|
+
setSearchInput,
|
|
48
|
+
searchInput,
|
|
49
|
+
options,
|
|
50
|
+
multiselect,
|
|
51
|
+
setSelectedData,
|
|
52
|
+
selectedData
|
|
53
|
+
} = useSelectInput();
|
|
54
|
+
const handleChange = (search) => {
|
|
55
|
+
if (search.length > 0) {
|
|
56
|
+
const regex = RegExp(search, "i");
|
|
57
|
+
if (!Array.isArray(options)) {
|
|
58
|
+
const filteredOptions = { ...options };
|
|
59
|
+
Object.keys(filteredOptions).map((group) => {
|
|
60
|
+
filteredOptions[group] = filteredOptions[group].filter(
|
|
61
|
+
(option) => option.searchText ? option.searchText.match(regex) : option.value.match(regex)
|
|
62
|
+
);
|
|
63
|
+
return null;
|
|
64
|
+
});
|
|
65
|
+
onSearch(filteredOptions);
|
|
66
|
+
} else {
|
|
67
|
+
const filteredOptions = [...options].filter(
|
|
68
|
+
(option) => option.searchText ? option.searchText.match(regex) : option.value.match(regex)
|
|
69
|
+
);
|
|
70
|
+
onSearch(filteredOptions);
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
onSearch(options);
|
|
74
|
+
}
|
|
75
|
+
setSearchInput(search);
|
|
76
|
+
};
|
|
77
|
+
const handleKeyDown = (key, search) => {
|
|
78
|
+
if (key === "Enter") {
|
|
79
|
+
const closestOption = findClosestOption(displayedOptions, search);
|
|
80
|
+
if (closestOption) {
|
|
81
|
+
if (multiselect) {
|
|
82
|
+
setSelectedData({
|
|
83
|
+
type: "selectOption",
|
|
84
|
+
clickedOption: closestOption,
|
|
85
|
+
group: !Array.isArray(options) ? Object.keys(options).filter(
|
|
86
|
+
(group) => options[group].includes(closestOption)
|
|
87
|
+
)[0] : void 0
|
|
88
|
+
});
|
|
89
|
+
onChange?.(
|
|
90
|
+
selectedData.selectedValues.includes(closestOption.value) ? selectedData.selectedValues : [...selectedData.selectedValues, closestOption.value]
|
|
91
|
+
);
|
|
92
|
+
setSearchInput(closestOption.searchText ?? closestOption.value);
|
|
93
|
+
} else {
|
|
94
|
+
setSelectedData({
|
|
95
|
+
type: "selectOption",
|
|
96
|
+
clickedOption: closestOption
|
|
97
|
+
});
|
|
98
|
+
onChange?.(selectedData.selectedValues[0] ?? "");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return /* @__PURE__ */ jsx(
|
|
104
|
+
StyledInput,
|
|
105
|
+
{
|
|
106
|
+
value: searchInput,
|
|
107
|
+
onChange: (event) => handleChange(event),
|
|
108
|
+
placeholder,
|
|
109
|
+
onFocus: () => setSearchBarActive(true),
|
|
110
|
+
onBlur: () => setSearchBarActive(false),
|
|
111
|
+
"data-testid": "search-bar",
|
|
112
|
+
prefix: /* @__PURE__ */ jsx(Icon, { name: "search", size: "small", sentiment: "neutral" }),
|
|
113
|
+
onKeyDown: (event) => handleKeyDown(event.key, searchInput),
|
|
114
|
+
size: "medium",
|
|
115
|
+
autoFocus: true,
|
|
116
|
+
"aria-label": "search-bar",
|
|
117
|
+
ref: searchInputRef
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
export {
|
|
122
|
+
SearchBarDropdown
|
|
123
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
type SelectBarProps = {
|
|
3
|
+
size: 'small' | 'medium' | 'large';
|
|
4
|
+
clearable: boolean;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
readOnly: boolean;
|
|
7
|
+
placeholder: string;
|
|
8
|
+
success?: string;
|
|
9
|
+
error?: string;
|
|
10
|
+
autoFocus?: boolean;
|
|
11
|
+
innerRef: RefObject<HTMLDivElement>;
|
|
12
|
+
};
|
|
13
|
+
export declare const SelectBar: ({ size, clearable, disabled, readOnly, placeholder, success, error, autoFocus, innerRef, }: SelectBarProps) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
import { Icon } from "@ultraviolet/icons";
|
|
4
|
+
import { useRef, useState, useMemo, useEffect } from "react";
|
|
5
|
+
import { Button } from "../Button/index.js";
|
|
6
|
+
import { Stack } from "../Stack/index.js";
|
|
7
|
+
import { Tag } from "../Tag/index.js";
|
|
8
|
+
import { Text } from "../Text/index.js";
|
|
9
|
+
import { useSelectInput } from "./SelectInputProvider.js";
|
|
10
|
+
import { findOptionInOptions } from "./findOptionInOptions.js";
|
|
11
|
+
import { INPUT_SIZE_HEIGHT, SIZES_TAG } from "./types.js";
|
|
12
|
+
const StateStack = styled(Stack)`
|
|
13
|
+
padding-right: ${({ theme }) => theme.space["2"]};
|
|
14
|
+
display: flex;
|
|
15
|
+
`;
|
|
16
|
+
const StyledInputWrapper = styled(Stack)`
|
|
17
|
+
display: flex;
|
|
18
|
+
padding: ${({ theme }) => theme.space[1]};
|
|
19
|
+
padding-right: 0;
|
|
20
|
+
padding-left: ${({ theme }) => theme.space[2]};
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
box-shadow: none;
|
|
23
|
+
background: ${({ theme }) => theme.colors.neutral.background};
|
|
24
|
+
border-radius: ${({ theme }) => theme.radii.default};
|
|
25
|
+
|
|
26
|
+
&[data-readonly='true'] {
|
|
27
|
+
background: ${({ theme }) => theme.colors.neutral.backgroundWeak};
|
|
28
|
+
border-color: ${({ theme }) => theme.colors.neutral.border};
|
|
29
|
+
cursor: default;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&[data-disabled='true'] {
|
|
33
|
+
background: ${({ theme }) => theme.colors.neutral.backgroundDisabled};
|
|
34
|
+
border-color: ${({ theme }) => theme.colors.neutral.borderDisabled};
|
|
35
|
+
cursor: not-allowed;
|
|
36
|
+
}
|
|
37
|
+
&[data-size='small'] {
|
|
38
|
+
height: ${INPUT_SIZE_HEIGHT.small}px;
|
|
39
|
+
}
|
|
40
|
+
&[data-size='medium'] {
|
|
41
|
+
height: ${INPUT_SIZE_HEIGHT.medium}px;
|
|
42
|
+
}
|
|
43
|
+
&[data-size='large'] {
|
|
44
|
+
height: ${INPUT_SIZE_HEIGHT.large}px;
|
|
45
|
+
}
|
|
46
|
+
&[data-state='neutral'] {
|
|
47
|
+
border: 1px solid ${({ theme }) => theme.colors.neutral.border};
|
|
48
|
+
}
|
|
49
|
+
&[data-state='success'] {
|
|
50
|
+
border: 1px solid ${({ theme }) => theme.colors.success.border};
|
|
51
|
+
}
|
|
52
|
+
&[data-state='danger'] {
|
|
53
|
+
border: 1px solid ${({ theme }) => theme.colors.danger.border};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&:not([data-disabled='true']):not([data-readonly]):hover {
|
|
57
|
+
border-color: ${({ theme }) => theme.colors.primary.border};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&:not([data-disabled='true']):not([data-readonly]):active {
|
|
61
|
+
box-shadow: ${({ theme }) => theme.shadows.focusPrimary};
|
|
62
|
+
}
|
|
63
|
+
&:hover,
|
|
64
|
+
:focus {
|
|
65
|
+
border-color: ${({ theme }) => theme.colors.primary.borderHover};
|
|
66
|
+
outline: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&[data-dropdownvisible='true'] {
|
|
70
|
+
box-shadow: ${({ theme }) => theme.shadows.focusPrimary};
|
|
71
|
+
border-color: ${({ theme }) => theme.colors.primary.borderHover};
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
const CustomTag = styled(Tag)`
|
|
75
|
+
height: fit-content;
|
|
76
|
+
width: fit-content;
|
|
77
|
+
`;
|
|
78
|
+
const StyledPlaceholder = styled(Text)`
|
|
79
|
+
color: ${({ theme }) => theme.colors.neutral.textWeak};
|
|
80
|
+
text-size: ${({ theme }) => theme.typography.body.fontSize};
|
|
81
|
+
display: flex;
|
|
82
|
+
flex: 1;
|
|
83
|
+
align-self: center;
|
|
84
|
+
|
|
85
|
+
&[data-disabled='true'] {
|
|
86
|
+
color: ${({ theme }) => theme.colors.neutral.textWeakDisabled};
|
|
87
|
+
}
|
|
88
|
+
`;
|
|
89
|
+
const isValidSelectedValue = (selectedValue, options) => !Array.isArray(options) ? Object.keys(options).some(
|
|
90
|
+
(group) => options[group].some(
|
|
91
|
+
(option) => option.value === selectedValue && !option.disabled
|
|
92
|
+
)
|
|
93
|
+
) : options.some((option) => option.value === selectedValue && !option.disabled);
|
|
94
|
+
const DisplayValues = ({
|
|
95
|
+
refTag,
|
|
96
|
+
nonOverflowedValues,
|
|
97
|
+
disabled,
|
|
98
|
+
readOnly,
|
|
99
|
+
overflowed,
|
|
100
|
+
overflowAmount,
|
|
101
|
+
size
|
|
102
|
+
}) => {
|
|
103
|
+
const { multiselect, selectedData, setSelectedData, options, onChange } = useSelectInput();
|
|
104
|
+
return multiselect ? /* @__PURE__ */ jsxs(
|
|
105
|
+
Stack,
|
|
106
|
+
{
|
|
107
|
+
direction: "row",
|
|
108
|
+
gap: "1",
|
|
109
|
+
wrap: "nowrap",
|
|
110
|
+
ref: refTag,
|
|
111
|
+
alignItems: "center",
|
|
112
|
+
children: [
|
|
113
|
+
nonOverflowedValues.map((option) => /* @__PURE__ */ jsx(
|
|
114
|
+
CustomTag,
|
|
115
|
+
{
|
|
116
|
+
"data-testid": "selected-options-tags",
|
|
117
|
+
sentiment: "neutral",
|
|
118
|
+
disabled,
|
|
119
|
+
onClose: !readOnly ? (event) => {
|
|
120
|
+
event.stopPropagation();
|
|
121
|
+
setSelectedData({
|
|
122
|
+
type: "selectOption",
|
|
123
|
+
clickedOption: option
|
|
124
|
+
});
|
|
125
|
+
const newSelectedValues = selectedData.selectedValues?.filter(
|
|
126
|
+
(val) => val !== option.value
|
|
127
|
+
);
|
|
128
|
+
onChange?.(newSelectedValues);
|
|
129
|
+
} : void 0,
|
|
130
|
+
children: option?.label
|
|
131
|
+
},
|
|
132
|
+
option?.value
|
|
133
|
+
)),
|
|
134
|
+
overflowed ? /* @__PURE__ */ jsxs(
|
|
135
|
+
Tag,
|
|
136
|
+
{
|
|
137
|
+
sentiment: "neutral",
|
|
138
|
+
disabled,
|
|
139
|
+
"data-testid": "plus-tag",
|
|
140
|
+
"aria-label": "Plus tag",
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ jsx(Icon, { name: "plus" }),
|
|
143
|
+
overflowAmount
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"+"
|
|
147
|
+
) : null
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
) : /* @__PURE__ */ jsx(Text, { as: "p", variant: size === "large" ? "body" : "bodySmall", children: selectedData.selectedValues[0] ? findOptionInOptions(options, selectedData.selectedValues[0])?.label : null });
|
|
151
|
+
};
|
|
152
|
+
const SelectBar = ({
|
|
153
|
+
size,
|
|
154
|
+
clearable,
|
|
155
|
+
disabled,
|
|
156
|
+
readOnly,
|
|
157
|
+
placeholder,
|
|
158
|
+
success,
|
|
159
|
+
error,
|
|
160
|
+
autoFocus,
|
|
161
|
+
innerRef
|
|
162
|
+
}) => {
|
|
163
|
+
const {
|
|
164
|
+
isDropdownVisible,
|
|
165
|
+
onChange,
|
|
166
|
+
setIsDropdownVisible,
|
|
167
|
+
options,
|
|
168
|
+
selectedData,
|
|
169
|
+
setSelectedData,
|
|
170
|
+
multiselect
|
|
171
|
+
} = useSelectInput();
|
|
172
|
+
const openable = !(readOnly || disabled);
|
|
173
|
+
const refTag = useRef(null);
|
|
174
|
+
const width = innerRef.current?.offsetWidth;
|
|
175
|
+
const [overflowed, setOverflowed] = useState(false);
|
|
176
|
+
const [overflowAmount, setOverflowAmount] = useState(0);
|
|
177
|
+
const [nonOverflowedValues, setNonOverFlowedValues] = useState(
|
|
178
|
+
() => {
|
|
179
|
+
if (selectedData.selectedValues[0]) {
|
|
180
|
+
const firstSelectOption = findOptionInOptions(
|
|
181
|
+
options,
|
|
182
|
+
selectedData.selectedValues[0]
|
|
183
|
+
);
|
|
184
|
+
return firstSelectOption ? [firstSelectOption] : [];
|
|
185
|
+
}
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
const state = useMemo(() => {
|
|
190
|
+
if (error) {
|
|
191
|
+
return "danger";
|
|
192
|
+
}
|
|
193
|
+
if (success) {
|
|
194
|
+
return "success";
|
|
195
|
+
}
|
|
196
|
+
return "neutral";
|
|
197
|
+
}, [error, success]);
|
|
198
|
+
useEffect(() => {
|
|
199
|
+
let tagsWidth = 0;
|
|
200
|
+
let computedOverflowAmount = 0;
|
|
201
|
+
let computedNonOverflowedValues = [];
|
|
202
|
+
const newSelectedValues = selectedData.selectedValues.filter(
|
|
203
|
+
(selectedValue) => isValidSelectedValue(selectedValue, options)
|
|
204
|
+
);
|
|
205
|
+
for (const selectedValue of newSelectedValues) {
|
|
206
|
+
const selectedOption = findOptionInOptions(options, selectedValue);
|
|
207
|
+
if (selectedOption?.label && width && isValidSelectedValue(selectedValue, options)) {
|
|
208
|
+
const lengthValue = selectedOption.value.length;
|
|
209
|
+
const totalTagWidth = SIZES_TAG.tagWidth + SIZES_TAG.letterWidth * lengthValue;
|
|
210
|
+
if (totalTagWidth + tagsWidth > width - 100) {
|
|
211
|
+
computedOverflowAmount += 1;
|
|
212
|
+
setOverflowAmount(computedOverflowAmount);
|
|
213
|
+
} else {
|
|
214
|
+
computedNonOverflowedValues = [
|
|
215
|
+
...computedNonOverflowedValues,
|
|
216
|
+
selectedOption
|
|
217
|
+
];
|
|
218
|
+
setNonOverFlowedValues(computedNonOverflowedValues);
|
|
219
|
+
tagsWidth += totalTagWidth;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (computedOverflowAmount === 0) {
|
|
224
|
+
setOverflowed(false);
|
|
225
|
+
} else {
|
|
226
|
+
setOverflowed(true);
|
|
227
|
+
}
|
|
228
|
+
setOverflowAmount(computedOverflowAmount);
|
|
229
|
+
}, [options, selectedData.selectedValues, width]);
|
|
230
|
+
useEffect(() => {
|
|
231
|
+
setSelectedData({ type: "update" });
|
|
232
|
+
}, [setSelectedData, options]);
|
|
233
|
+
return /* @__PURE__ */ jsxs(
|
|
234
|
+
StyledInputWrapper,
|
|
235
|
+
{
|
|
236
|
+
"data-disabled": disabled,
|
|
237
|
+
"data-readonly": readOnly,
|
|
238
|
+
"data-size": size,
|
|
239
|
+
"data-dropdownvisible": isDropdownVisible,
|
|
240
|
+
"data-state": state,
|
|
241
|
+
direction: "row",
|
|
242
|
+
wrap: "nowrap",
|
|
243
|
+
gap: "1",
|
|
244
|
+
justifyContent: "space-between",
|
|
245
|
+
alignItems: "center",
|
|
246
|
+
onClick: openable ? () => setIsDropdownVisible(!isDropdownVisible) : void 0,
|
|
247
|
+
"data-testid": "select-bar",
|
|
248
|
+
autoFocus,
|
|
249
|
+
onKeyDown: (event) => {
|
|
250
|
+
if (event.key === "ArrowDown") {
|
|
251
|
+
if (!isDropdownVisible) {
|
|
252
|
+
setIsDropdownVisible(true);
|
|
253
|
+
} else {
|
|
254
|
+
document.getElementById(`option-0`)?.focus();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return ["Enter", " "].includes(event.key) && openable ? setIsDropdownVisible(!isDropdownVisible) : null;
|
|
258
|
+
},
|
|
259
|
+
ref: innerRef,
|
|
260
|
+
"aria-labelledby": "select bar",
|
|
261
|
+
"aria-haspopup": "listbox",
|
|
262
|
+
"aria-expanded": isDropdownVisible,
|
|
263
|
+
"aria-controls": "select-dropdown",
|
|
264
|
+
tabIndex: 0,
|
|
265
|
+
children: [
|
|
266
|
+
selectedData.selectedValues.length > 0 ? /* @__PURE__ */ jsx(
|
|
267
|
+
DisplayValues,
|
|
268
|
+
{
|
|
269
|
+
refTag,
|
|
270
|
+
nonOverflowedValues,
|
|
271
|
+
disabled,
|
|
272
|
+
readOnly,
|
|
273
|
+
overflowed,
|
|
274
|
+
overflowAmount,
|
|
275
|
+
size
|
|
276
|
+
}
|
|
277
|
+
) : /* @__PURE__ */ jsx(
|
|
278
|
+
StyledPlaceholder,
|
|
279
|
+
{
|
|
280
|
+
as: "p",
|
|
281
|
+
variant: size === "large" ? "body" : "bodySmall",
|
|
282
|
+
"data-disabled": disabled,
|
|
283
|
+
children: placeholder
|
|
284
|
+
}
|
|
285
|
+
),
|
|
286
|
+
/* @__PURE__ */ jsxs(StateStack, { direction: "row", gap: 1, alignItems: "center", children: [
|
|
287
|
+
error ? /* @__PURE__ */ jsx(Icon, { name: "alert", sentiment: "danger" }) : null,
|
|
288
|
+
success && !error ? /* @__PURE__ */ jsx(Icon, { name: "checkbox-circle-outline", sentiment: "success" }) : null,
|
|
289
|
+
clearable && selectedData.selectedValues.length > 0 ? /* @__PURE__ */ jsx(
|
|
290
|
+
Button,
|
|
291
|
+
{
|
|
292
|
+
"aria-label": "clear value",
|
|
293
|
+
disabled: disabled || ![selectedData.selectedValues[0]] || readOnly,
|
|
294
|
+
variant: "ghost",
|
|
295
|
+
size: "small",
|
|
296
|
+
icon: "close",
|
|
297
|
+
onClick: (event) => {
|
|
298
|
+
event.stopPropagation();
|
|
299
|
+
setSelectedData({ type: "clearAll" });
|
|
300
|
+
if (multiselect) {
|
|
301
|
+
onChange?.([]);
|
|
302
|
+
} else {
|
|
303
|
+
onChange?.("");
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
sentiment: "neutral",
|
|
307
|
+
"data-testid": "clear-all"
|
|
308
|
+
}
|
|
309
|
+
) : null,
|
|
310
|
+
/* @__PURE__ */ jsx(
|
|
311
|
+
Icon,
|
|
312
|
+
{
|
|
313
|
+
"aria-label": "show dropdown",
|
|
314
|
+
size: "small",
|
|
315
|
+
name: "arrow-down",
|
|
316
|
+
sentiment: "neutral",
|
|
317
|
+
disabled: disabled || readOnly
|
|
318
|
+
}
|
|
319
|
+
)
|
|
320
|
+
] })
|
|
321
|
+
]
|
|
322
|
+
}
|
|
323
|
+
);
|
|
324
|
+
};
|
|
325
|
+
export {
|
|
326
|
+
SelectBar
|
|
327
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
2
|
+
import type { DataType, ReducerAction, ReducerState } from './types';
|
|
3
|
+
type ContextProps = {
|
|
4
|
+
options: DataType;
|
|
5
|
+
onSearch: Dispatch<SetStateAction<DataType>>;
|
|
6
|
+
isDropdownVisible: boolean;
|
|
7
|
+
setIsDropdownVisible: Dispatch<SetStateAction<boolean>>;
|
|
8
|
+
searchInput: string;
|
|
9
|
+
setSearchInput: Dispatch<SetStateAction<string>>;
|
|
10
|
+
selectAll?: {
|
|
11
|
+
label: ReactNode;
|
|
12
|
+
description?: string;
|
|
13
|
+
};
|
|
14
|
+
selectAllGroup: boolean;
|
|
15
|
+
numberOfOptions: number;
|
|
16
|
+
displayedOptions: DataType;
|
|
17
|
+
selectedData: ReducerState;
|
|
18
|
+
setSelectedData: Dispatch<ReducerAction>;
|
|
19
|
+
} & ({
|
|
20
|
+
multiselect: true;
|
|
21
|
+
onChange?: (value: string[]) => void;
|
|
22
|
+
} | {
|
|
23
|
+
multiselect: false;
|
|
24
|
+
onChange?: (value: string) => void;
|
|
25
|
+
});
|
|
26
|
+
export declare const useSelectInput: () => ContextProps;
|
|
27
|
+
type SelectInputProviderProps<IsMulti extends boolean> = {
|
|
28
|
+
options: DataType;
|
|
29
|
+
selectAll?: {
|
|
30
|
+
label: ReactNode;
|
|
31
|
+
description?: string;
|
|
32
|
+
};
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
value?: string | string[];
|
|
35
|
+
selectAllGroup: boolean;
|
|
36
|
+
numberOfOptions: number;
|
|
37
|
+
multiselect: IsMulti;
|
|
38
|
+
onChange?: IsMulti extends true ? (value: string[]) => void : (value: string) => void;
|
|
39
|
+
};
|
|
40
|
+
export declare const SelectInputProvider: <T extends boolean>({ options, multiselect, selectAll, value, selectAllGroup, numberOfOptions, children, onChange, }: SelectInputProviderProps<T>) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
41
|
+
export {};
|