@sproutsocial/racine 12.24.0 → 13.1.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/CHANGELOG.md +65 -0
- package/__flow__/Avatar/index.flow.js +16 -0
- package/__flow__/Avatar/index.js +33 -77
- package/__flow__/Badge/constants.js +9 -15
- package/__flow__/Badge/index.flow.js +17 -0
- package/__flow__/Badge/index.js +12 -53
- package/__flow__/Badge/styles.js +17 -27
- package/__flow__/Banner/index.flow.js +9 -0
- package/__flow__/Banner/index.js +16 -42
- package/__flow__/Banner/styles.js +8 -14
- package/__flow__/Box/index.flow.js +7 -0
- package/__flow__/Box/index.js +7 -9
- package/__flow__/Box/styles.js +9 -25
- package/__flow__/Breadcrumb/index.flow.js +15 -0
- package/__flow__/Breadcrumb/index.js +35 -60
- package/__flow__/Breadcrumb/styles.js +11 -14
- package/__flow__/Button/index.flow.js +26 -0
- package/__flow__/Button/index.js +9 -75
- package/__flow__/Button/styles.js +27 -47
- package/__flow__/Card/index.flow.js +19 -0
- package/__flow__/Card/index.js +8 -37
- package/__flow__/Card/styles.js +8 -11
- package/__flow__/CharacterCounter/index.flow.js +10 -0
- package/__flow__/CharacterCounter/index.js +13 -15
- package/__flow__/CharacterCounter/styles.js +9 -17
- package/__flow__/ChartLegend/index.flow.js +14 -0
- package/__flow__/ChartLegend/index.js +16 -31
- package/__flow__/ChartLegend/styles.js +10 -18
- package/__flow__/Checkbox/index.flow.js +22 -0
- package/__flow__/Checkbox/index.js +16 -93
- package/__flow__/Checkbox/styles.js +48 -101
- package/__flow__/Collapsible/index.flow.js +11 -0
- package/__flow__/Collapsible/index.js +45 -72
- package/__flow__/Collapsible/styles.js +11 -12
- package/__flow__/DatePicker/DateRangePicker.flow.js +15 -0
- package/__flow__/DatePicker/DateRangePicker.js +17 -32
- package/__flow__/DatePicker/SingleDatePicker.flow.js +12 -0
- package/__flow__/DatePicker/SingleDatePicker.js +17 -26
- package/__flow__/DatePicker/StatefulDateRangePicker.js +19 -33
- package/__flow__/DatePicker/StatefulSingleDatePicker.js +10 -16
- package/__flow__/DatePicker/common.flow.js +20 -0
- package/__flow__/DatePicker/common.js +19 -41
- package/__flow__/DatePicker/index.js +3 -4
- package/__flow__/DatePicker/styles.js +87 -72
- package/__flow__/Drawer/SlideTransition.js +22 -14
- package/__flow__/Drawer/index.flow.js +38 -0
- package/__flow__/Drawer/index.js +72 -184
- package/__flow__/Drawer/styles.js +9 -13
- package/__flow__/EmptyState/index.flow.js +15 -0
- package/__flow__/EmptyState/index.js +18 -46
- package/__flow__/EnumIconNames.js +1 -1
- package/__flow__/EnumIllustrationNames.js +1 -1
- package/__flow__/EnumLogoNames.js +1 -1
- package/__flow__/Fieldset/index.flow.js +10 -0
- package/__flow__/Fieldset/index.js +23 -54
- package/__flow__/Fieldset/styles.js +6 -12
- package/__flow__/FormField/index.flow.js +28 -0
- package/__flow__/FormField/index.js +28 -72
- package/__flow__/Icon/deprecatedIcons.js +4 -3
- package/__flow__/Icon/index.flow.js +34 -0
- package/__flow__/Icon/index.js +21 -80
- package/__flow__/Icon/styles.js +9 -15
- package/__flow__/IconViewBoxes.js +378 -1
- package/__flow__/IllustrationViewBoxes.js +121 -1
- package/__flow__/Image/index.flow.js +15 -0
- package/__flow__/Image/index.js +24 -52
- package/__flow__/Image/styles.js +6 -11
- package/__flow__/Indicator/index.flow.js +6 -0
- package/__flow__/Indicator/index.js +16 -20
- package/__flow__/Indicator/styles.js +9 -12
- package/__flow__/Input/index.flow.js +60 -0
- package/__flow__/Input/index.js +50 -188
- package/__flow__/Input/styles.js +49 -70
- package/__flow__/KeyboardKey/index.flow.js +7 -0
- package/__flow__/KeyboardKey/index.js +14 -14
- package/__flow__/KeyboardKey/styles.js +10 -13
- package/__flow__/Label/index.flow.js +14 -0
- package/__flow__/Label/index.js +12 -30
- package/__flow__/Link/constants.js +4 -7
- package/__flow__/Link/index.flow.js +18 -0
- package/__flow__/Link/index.js +11 -44
- package/__flow__/Link/styles.js +15 -22
- package/__flow__/Listbox/index.flow.js +20 -0
- package/__flow__/Listbox/index.js +51 -70
- package/__flow__/Loader/index.flow.js +12 -0
- package/__flow__/Loader/index.js +19 -26
- package/__flow__/Loader/styles.js +13 -28
- package/__flow__/LoaderButton/index.flow.js +7 -0
- package/__flow__/LoaderButton/index.js +19 -47
- package/__flow__/LogoViewBoxes.js +94 -1
- package/__flow__/Menu/constants.js +3 -4
- package/__flow__/Menu/descendants.js +140 -240
- package/__flow__/Menu/hooks.js +86 -115
- package/__flow__/Menu/index.flow.js +23 -31
- package/__flow__/Menu/index.js +146 -340
- package/__flow__/Menu/names.js +1 -4947
- package/__flow__/Menu/styles.js +31 -51
- package/__flow__/Message/constants.js +9 -0
- package/__flow__/Message/index.flow.js +17 -0
- package/__flow__/Message/index.js +69 -115
- package/__flow__/Message/styles.js +62 -76
- package/__flow__/Modal/index.flow.js +46 -0
- package/__flow__/Modal/index.js +55 -129
- package/__flow__/Modal/styles.js +39 -62
- package/__flow__/Numeral/constants.js +3 -3
- package/__flow__/Numeral/index.flow.js +19 -0
- package/__flow__/Numeral/index.js +53 -71
- package/__flow__/Numeral/styles.js +4 -7
- package/__flow__/Numeral/tests/testNumeral.js +22 -30
- package/__flow__/OverflowList/index.flow.js +6 -8
- package/__flow__/OverflowList/index.js +52 -89
- package/__flow__/OverflowList/styles.js +8 -18
- package/__flow__/PartnerLogo/TypePartnerNames.js +1 -38
- package/__flow__/PartnerLogo/index.flow.js +19 -0
- package/__flow__/PartnerLogo/index.js +18 -37
- package/__flow__/PartnerLogo/styles.js +8 -12
- package/__flow__/Popout/index.flow.js +89 -0
- package/__flow__/Popout/index.js +114 -274
- package/__flow__/Popout/styles.js +4 -6
- package/__flow__/Portal/index.flow.js +10 -0
- package/__flow__/Portal/index.js +18 -25
- package/__flow__/Radio/index.flow.js +19 -0
- package/__flow__/Radio/index.js +10 -42
- package/__flow__/Radio/styles.js +27 -43
- package/__flow__/SegmentedControl/index.flow.js +20 -0
- package/__flow__/SegmentedControl/index.js +24 -73
- package/__flow__/SegmentedControl/styles.js +26 -36
- package/__flow__/Select/index.flow.js +25 -0
- package/__flow__/Select/index.js +14 -55
- package/__flow__/Select/styles.js +53 -62
- package/__flow__/Skeleton/index.js +6 -10
- package/__flow__/SpotIllustration/illustrationNames.js +1 -121
- package/__flow__/SpotIllustration/index.flow.js +9 -0
- package/__flow__/SpotIllustration/index.js +24 -41
- package/__flow__/Stack/index.flow.js +24 -0
- package/__flow__/Stack/index.js +57 -81
- package/__flow__/Switch/index.flow.js +16 -0
- package/__flow__/Switch/index.js +21 -34
- package/__flow__/Switch/styles.js +28 -34
- package/__flow__/Table/index.flow.js +30 -0
- package/__flow__/Table/index.js +44 -85
- package/__flow__/Table/styles.js +5 -8
- package/__flow__/TableCell/index.flow.js +19 -0
- package/__flow__/TableCell/index.js +18 -31
- package/__flow__/TableCell/styles.js +11 -12
- package/__flow__/TableHeaderCell/constants.js +6 -0
- package/__flow__/TableHeaderCell/index.flow.js +24 -0
- package/__flow__/TableHeaderCell/index.js +32 -59
- package/__flow__/TableHeaderCell/styles.js +10 -16
- package/__flow__/TableRowAccordion/index.flow.js +13 -0
- package/__flow__/TableRowAccordion/index.js +26 -44
- package/__flow__/TableRowAccordion/styles.js +9 -17
- package/__flow__/Tabs/index.flow.js +20 -0
- package/__flow__/Tabs/index.js +48 -78
- package/__flow__/Tabs/styles.js +21 -40
- package/__flow__/Text/index.flow.js +13 -0
- package/__flow__/Text/index.js +38 -65
- package/__flow__/Text/styles.js +8 -15
- package/__flow__/Textarea/index.flow.js +48 -0
- package/__flow__/Textarea/index.js +12 -96
- package/__flow__/Textarea/styles.js +27 -46
- package/__flow__/ThemeProvider/index.js +5 -11
- package/__flow__/Toast/index.flow.js +20 -0
- package/__flow__/Toast/index.js +45 -99
- package/__flow__/Toast/styles.js +14 -20
- package/__flow__/ToggleHint/index.flow.js +13 -0
- package/__flow__/ToggleHint/index.js +17 -31
- package/__flow__/ToggleHint/styles.js +10 -18
- package/__flow__/Token/index.flow.js +15 -0
- package/__flow__/Token/index.js +15 -44
- package/__flow__/Token/styles.js +25 -22
- package/__flow__/TokenInput/index.flow.js +67 -2
- package/__flow__/TokenInput/index.js +108 -221
- package/__flow__/TokenInput/styles.js +36 -54
- package/__flow__/TokenInput/util.js +6 -11
- package/__flow__/Tooltip/index.flow.js +22 -0
- package/__flow__/Tooltip/index.js +38 -126
- package/__flow__/Tooltip/styles.js +6 -8
- package/__flow__/VisuallyHidden/index.js +4 -6
- package/__flow__/dataviz/index.js +6 -9
- package/__flow__/index.js +152 -76
- package/__flow__/systemProps/background.js +4 -15
- package/__flow__/systemProps/border.js +4 -35
- package/__flow__/systemProps/color.js +5 -15
- package/__flow__/systemProps/custom.js +7 -14
- package/__flow__/systemProps/flexbox.js +4 -21
- package/__flow__/systemProps/grid.js +4 -22
- package/__flow__/systemProps/index.js +14 -15
- package/__flow__/systemProps/layout.js +4 -22
- package/__flow__/systemProps/position.js +4 -16
- package/__flow__/systemProps/shadow.js +4 -9
- package/__flow__/systemProps/space.js +4 -25
- package/__flow__/systemProps/systemProps.js +15 -40
- package/__flow__/systemProps/tests/types.flow.js +2 -6
- package/__flow__/systemProps/types.flow.js +6 -14
- package/__flow__/systemProps/typography.js +5 -18
- package/__flow__/systemProps/variant.js +8 -12
- package/__flow__/themes/dark/dataviz-palette.js +4 -26
- package/__flow__/themes/dark/decorative-palettes.js +12 -23
- package/__flow__/themes/dark/theme.js +60 -74
- package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +65 -70
- package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
- package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +65 -70
- package/__flow__/themes/light/dataviz-palette.js +4 -26
- package/__flow__/themes/light/decorative-palettes.js +12 -23
- package/__flow__/themes/light/literal-colors.js +13 -15
- package/__flow__/themes/light/theme.js +71 -107
- package/__flow__/types/styled-components.flow.js +1 -1
- package/__flow__/types/system-props.flow.js +5 -25
- package/__flow__/types/theme.colors.flow.js +32 -46
- package/__flow__/types/theme.flow.js +7 -25
- package/__flow__/utils/a11yTest.js +2 -3
- package/__flow__/utils/chartColors.js +6 -71
- package/__flow__/utils/constants.js +1 -1
- package/__flow__/utils/dataQaLabelQueries.js +14 -37
- package/__flow__/utils/hooks.js +77 -114
- package/__flow__/utils/index.js +6 -12
- package/__flow__/utils/innerText.js +3 -15
- package/__flow__/utils/mixins.js +5 -14
- package/__flow__/utils/react-testing-library.js +15 -42
- package/__flow__/utils/responsiveProps/index.js +6 -19
- package/__flow__/utils/system-props.js +11 -77
- package/__flow__/utils/useInteractiveColor.js +4 -7
- package/commonjs/{Stack/TypeSpaceLiterals.js → Avatar/index.flow.js} +0 -0
- package/commonjs/Avatar/index.js +31 -28
- package/commonjs/Badge/index.flow.js +6 -0
- package/commonjs/Badge/index.js +1 -1
- package/commonjs/Badge/styles.js +1 -1
- package/commonjs/Banner/index.flow.js +6 -0
- package/commonjs/Banner/index.js +15 -17
- package/commonjs/Box/index.flow.js +8 -0
- package/commonjs/Breadcrumb/index.flow.js +8 -0
- package/commonjs/Breadcrumb/index.js +21 -19
- package/commonjs/Button/index.flow.js +6 -0
- package/commonjs/Button/index.js +1 -7
- package/commonjs/Button/styles.js +1 -1
- package/commonjs/Card/index.flow.js +7 -0
- package/commonjs/Card/styles.js +1 -1
- package/commonjs/CharacterCounter/index.flow.js +1 -0
- package/commonjs/ChartLegend/index.flow.js +1 -0
- package/commonjs/ChartLegend/index.js +10 -6
- package/commonjs/Checkbox/index.flow.js +1 -0
- package/commonjs/Checkbox/index.js +27 -24
- package/commonjs/Checkbox/styles.js +1 -1
- package/commonjs/Collapsible/index.flow.js +6 -0
- package/commonjs/Collapsible/index.js +1 -1
- package/commonjs/DatePicker/DateRangePicker.flow.js +1 -0
- package/commonjs/DatePicker/SingleDatePicker.flow.js +1 -0
- package/commonjs/DatePicker/StatefulDateRangePicker.js +10 -7
- package/commonjs/DatePicker/StatefulSingleDatePicker.js +7 -4
- package/commonjs/DatePicker/common.flow.js +1 -0
- package/commonjs/DatePicker/common.js +1 -1
- package/commonjs/DatePicker/styles.js +1 -1
- package/commonjs/Drawer/index.flow.js +6 -0
- package/commonjs/Drawer/index.js +24 -20
- package/commonjs/EmptyState/index.flow.js +6 -0
- package/commonjs/EmptyState/index.js +1 -1
- package/commonjs/Fieldset/index.flow.js +6 -0
- package/commonjs/FormField/index.flow.js +9 -0
- package/commonjs/FormField/index.js +1 -1
- package/commonjs/Icon/deprecatedIcons.js +2 -2
- package/commonjs/Icon/index.flow.js +4 -0
- package/commonjs/Icon/index.js +19 -15
- package/commonjs/Icon/styles.js +1 -1
- package/commonjs/IconViewBoxes.js +3 -0
- package/commonjs/Image/index.flow.js +1 -0
- package/commonjs/Image/index.js +18 -14
- package/commonjs/Indicator/index.flow.js +1 -0
- package/commonjs/Indicator/index.js +12 -9
- package/commonjs/Indicator/styles.js +1 -1
- package/commonjs/Input/index.flow.js +6 -0
- package/commonjs/Input/index.js +52 -49
- package/commonjs/Input/styles.js +1 -1
- package/commonjs/KeyboardKey/index.flow.js +1 -0
- package/commonjs/Label/index.flow.js +8 -0
- package/commonjs/Label/index.js +9 -6
- package/commonjs/Link/index.flow.js +6 -0
- package/commonjs/Link/styles.js +1 -1
- package/commonjs/Listbox/index.flow.js +9 -0
- package/commonjs/Listbox/index.js +2 -2
- package/commonjs/Loader/index.flow.js +1 -0
- package/commonjs/Loader/index.js +13 -9
- package/commonjs/Loader/styles.js +2 -2
- package/commonjs/LoaderButton/index.flow.js +1 -0
- package/commonjs/LoaderButton/index.js +2 -6
- package/commonjs/LogoViewBoxes.js +4 -0
- package/commonjs/Menu/index.js +28 -29
- package/commonjs/Menu/styles.js +1 -1
- package/commonjs/Message/constants.js +15 -0
- package/commonjs/Message/index.flow.js +7 -0
- package/commonjs/Message/index.js +12 -17
- package/commonjs/Message/styles.js +14 -14
- package/commonjs/Modal/index.flow.js +8 -0
- package/commonjs/Modal/index.js +31 -29
- package/commonjs/Modal/styles.js +9 -6
- package/commonjs/Numeral/index.flow.js +1 -0
- package/commonjs/Numeral/index.js +9 -10
- package/commonjs/Numeral/tests/testNumeral.js +12 -14
- package/commonjs/OverflowList/index.js +2 -2
- package/commonjs/OverflowList/styles.js +1 -1
- package/commonjs/PartnerLogo/index.flow.js +1 -0
- package/commonjs/PartnerLogo/index.js +18 -15
- package/commonjs/PartnerLogo/styles.js +1 -1
- package/commonjs/Popout/index.flow.js +6 -0
- package/commonjs/Popout/index.js +25 -23
- package/commonjs/Portal/index.flow.js +6 -0
- package/commonjs/Radio/index.flow.js +1 -0
- package/commonjs/Radio/styles.js +2 -2
- package/commonjs/SegmentedControl/index.flow.js +6 -0
- package/commonjs/SegmentedControl/index.js +21 -19
- package/commonjs/SegmentedControl/styles.js +1 -1
- package/commonjs/Select/index.flow.js +6 -0
- package/commonjs/Select/index.js +1 -1
- package/commonjs/Select/styles.js +1 -1
- package/commonjs/Skeleton/index.js +1 -1
- package/commonjs/SpotIllustration/illustrationNames.js +1 -1
- package/commonjs/SpotIllustration/index.flow.js +1 -0
- package/commonjs/SpotIllustration/index.js +1 -1
- package/commonjs/Stack/index.flow.js +6 -0
- package/commonjs/Stack/index.js +1 -1
- package/commonjs/Switch/index.flow.js +1 -0
- package/commonjs/Switch/index.js +19 -15
- package/commonjs/Switch/styles.js +1 -1
- package/commonjs/Table/index.flow.js +6 -0
- package/commonjs/TableCell/index.flow.js +6 -0
- package/commonjs/TableHeaderCell/constants.js +12 -0
- package/commonjs/TableHeaderCell/index.flow.js +3 -0
- package/commonjs/TableHeaderCell/index.js +17 -9
- package/commonjs/TableRowAccordion/index.flow.js +6 -0
- package/commonjs/TableRowAccordion/index.js +1 -1
- package/commonjs/Tabs/index.flow.js +6 -0
- package/commonjs/Tabs/index.js +1 -2
- package/commonjs/Text/index.flow.js +6 -0
- package/commonjs/Text/index.js +1 -1
- package/commonjs/Textarea/index.flow.js +6 -0
- package/commonjs/Textarea/index.js +42 -38
- package/commonjs/Textarea/styles.js +1 -1
- package/commonjs/Toast/index.flow.js +6 -0
- package/commonjs/Toast/index.js +2 -2
- package/commonjs/Toast/styles.js +2 -1
- package/commonjs/ToggleHint/index.flow.js +1 -0
- package/commonjs/ToggleHint/index.js +8 -5
- package/commonjs/ToggleHint/styles.js +1 -1
- package/commonjs/Token/index.flow.js +6 -0
- package/commonjs/Token/index.js +28 -24
- package/commonjs/Token/styles.js +1 -1
- package/commonjs/TokenInput/index.flow.js +6 -1
- package/commonjs/TokenInput/index.js +42 -39
- package/commonjs/TokenInput/styles.js +1 -1
- package/commonjs/Tooltip/index.flow.js +6 -0
- package/commonjs/Tooltip/index.js +19 -15
- package/commonjs/VisuallyHidden/index.js +1 -1
- package/commonjs/dataviz/index.js +1 -1
- package/commonjs/index.js +113 -97
- package/commonjs/themes/dark/theme.js +1 -1
- package/commonjs/themes/light/theme.js +4 -9
- package/commonjs/utils/hooks.js +2 -2
- package/commonjs/utils/mixins.js +1 -1
- package/commonjs/utils/react-testing-library.js +9 -12
- package/dist/icon.svg +1 -1
- package/dist/iconList.js +1 -1
- package/dist/logo.svg +1 -1
- package/dist/logoList.js +1 -1
- package/lib/{Stack/TypeSpaceLiterals.js → Avatar/index.flow.js} +0 -0
- package/lib/Avatar/index.js +31 -28
- package/lib/Badge/index.flow.js +2 -0
- package/lib/Badge/index.js +1 -1
- package/lib/Badge/styles.js +1 -1
- package/lib/Banner/index.flow.js +2 -0
- package/lib/Banner/index.js +15 -23
- package/lib/Box/index.flow.js +3 -0
- package/lib/Breadcrumb/index.flow.js +3 -0
- package/lib/Breadcrumb/index.js +22 -21
- package/lib/Button/index.flow.js +2 -0
- package/lib/Button/index.js +1 -13
- package/lib/Button/styles.js +1 -1
- package/lib/Card/index.flow.js +3 -0
- package/lib/Card/styles.js +1 -1
- package/lib/CharacterCounter/index.flow.js +0 -0
- package/lib/ChartLegend/index.flow.js +0 -0
- package/lib/ChartLegend/index.js +10 -6
- package/lib/Checkbox/index.flow.js +0 -0
- package/lib/Checkbox/index.js +27 -24
- package/lib/Checkbox/styles.js +1 -1
- package/lib/Collapsible/index.flow.js +2 -0
- package/lib/Collapsible/index.js +1 -1
- package/lib/DatePicker/DateRangePicker.flow.js +0 -0
- package/lib/DatePicker/SingleDatePicker.flow.js +0 -0
- package/lib/DatePicker/StatefulDateRangePicker.js +10 -7
- package/lib/DatePicker/StatefulSingleDatePicker.js +7 -4
- package/lib/DatePicker/common.flow.js +0 -0
- package/lib/DatePicker/common.js +1 -1
- package/lib/DatePicker/styles.js +2 -1
- package/lib/Drawer/index.flow.js +2 -0
- package/lib/Drawer/index.js +24 -21
- package/lib/EmptyState/index.flow.js +2 -0
- package/lib/EmptyState/index.js +1 -1
- package/lib/Fieldset/index.flow.js +2 -0
- package/lib/FormField/index.flow.js +4 -0
- package/lib/FormField/index.js +1 -3
- package/lib/Icon/deprecatedIcons.js +3 -2
- package/lib/Icon/index.flow.js +3 -0
- package/lib/Icon/index.js +19 -15
- package/lib/Icon/styles.js +1 -1
- package/lib/IconViewBoxes.js +3 -0
- package/lib/Image/index.flow.js +0 -0
- package/lib/Image/index.js +18 -14
- package/lib/Indicator/index.flow.js +0 -0
- package/lib/Indicator/index.js +12 -9
- package/lib/Indicator/styles.js +1 -1
- package/lib/Input/index.flow.js +2 -0
- package/lib/Input/index.js +52 -49
- package/lib/Input/styles.js +1 -1
- package/lib/KeyboardKey/index.flow.js +0 -0
- package/lib/Label/index.flow.js +3 -0
- package/lib/Label/index.js +9 -6
- package/lib/Link/index.flow.js +2 -0
- package/lib/Link/styles.js +1 -1
- package/lib/Listbox/index.flow.js +4 -0
- package/lib/Listbox/index.js +2 -2
- package/lib/Loader/index.flow.js +0 -0
- package/lib/Loader/index.js +13 -9
- package/lib/Loader/styles.js +2 -2
- package/lib/LoaderButton/index.flow.js +0 -0
- package/lib/LoaderButton/index.js +3 -8
- package/lib/LogoViewBoxes.js +4 -0
- package/lib/Menu/index.js +29 -30
- package/lib/Menu/styles.js +1 -1
- package/lib/Message/constants.js +9 -0
- package/lib/Message/index.flow.js +3 -0
- package/lib/Message/index.js +5 -10
- package/lib/Message/styles.js +2 -2
- package/lib/Modal/index.flow.js +3 -0
- package/lib/Modal/index.js +31 -29
- package/lib/Modal/styles.js +9 -6
- package/lib/Numeral/constants.js +1 -0
- package/lib/Numeral/index.flow.js +0 -0
- package/lib/Numeral/index.js +2 -3
- package/lib/Numeral/tests/testNumeral.js +11 -13
- package/lib/OverflowList/index.js +1 -1
- package/lib/OverflowList/styles.js +1 -1
- package/lib/PartnerLogo/index.flow.js +0 -0
- package/lib/PartnerLogo/index.js +18 -15
- package/lib/PartnerLogo/styles.js +1 -1
- package/lib/Popout/index.flow.js +2 -0
- package/lib/Popout/index.js +25 -24
- package/lib/Portal/index.flow.js +2 -0
- package/lib/Radio/index.flow.js +0 -0
- package/lib/Radio/styles.js +2 -2
- package/lib/SegmentedControl/index.flow.js +2 -0
- package/lib/SegmentedControl/index.js +21 -19
- package/lib/SegmentedControl/styles.js +1 -1
- package/lib/Select/index.flow.js +2 -0
- package/lib/Select/index.js +1 -1
- package/lib/Select/styles.js +1 -1
- package/lib/Skeleton/index.js +1 -1
- package/lib/SpotIllustration/illustrationNames.js +1 -1
- package/lib/SpotIllustration/index.flow.js +0 -0
- package/lib/SpotIllustration/index.js +1 -1
- package/lib/Stack/index.flow.js +2 -0
- package/lib/Stack/index.js +1 -1
- package/lib/Switch/index.flow.js +0 -0
- package/lib/Switch/index.js +19 -15
- package/lib/Switch/styles.js +1 -1
- package/lib/Table/index.flow.js +2 -0
- package/lib/TableCell/index.flow.js +2 -0
- package/lib/TableHeaderCell/constants.js +6 -0
- package/lib/TableHeaderCell/index.flow.js +3 -0
- package/lib/TableHeaderCell/index.js +7 -5
- package/lib/TableRowAccordion/index.flow.js +2 -0
- package/lib/TableRowAccordion/index.js +1 -1
- package/lib/Tabs/index.flow.js +2 -0
- package/lib/Tabs/index.js +1 -2
- package/lib/Text/index.flow.js +2 -0
- package/lib/Text/index.js +1 -1
- package/lib/Textarea/index.flow.js +2 -0
- package/lib/Textarea/index.js +42 -38
- package/lib/Textarea/styles.js +1 -1
- package/lib/Toast/index.flow.js +2 -0
- package/lib/Toast/index.js +2 -2
- package/lib/Toast/styles.js +2 -3
- package/lib/ToggleHint/index.flow.js +0 -0
- package/lib/ToggleHint/index.js +8 -5
- package/lib/ToggleHint/styles.js +1 -1
- package/lib/Token/index.flow.js +2 -0
- package/lib/Token/index.js +28 -24
- package/lib/Token/styles.js +1 -1
- package/lib/TokenInput/index.flow.js +2 -0
- package/lib/TokenInput/index.js +41 -39
- package/lib/TokenInput/styles.js +1 -1
- package/lib/Tooltip/index.flow.js +2 -0
- package/lib/Tooltip/index.js +19 -15
- package/lib/VisuallyHidden/index.js +1 -1
- package/lib/dataviz/index.js +1 -1
- package/lib/index.js +74 -47
- package/lib/themes/dark/theme.js +4 -2
- package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +3 -0
- package/lib/themes/extendedThemes/sproutTheme/light/theme.js +3 -0
- package/lib/themes/light/theme.js +4 -10
- package/lib/utils/hooks.js +1 -1
- package/lib/utils/mixins.js +1 -1
- package/lib/utils/react-testing-library.js +8 -6
- package/package.json +14 -6
- package/__flow__/Avatar/__tests__/features.test.js +0 -98
- package/__flow__/Avatar/index.stories.js +0 -62
- package/__flow__/Badge/index.stories.js +0 -49
- package/__flow__/Badge/index.test.js +0 -67
- package/__flow__/Banner/index.stories.js +0 -108
- package/__flow__/Banner/index.test.js +0 -68
- package/__flow__/Box/index.stories.js +0 -135
- package/__flow__/Box/index.test.js +0 -12
- package/__flow__/Breadcrumb/index.stories.js +0 -76
- package/__flow__/Breadcrumb/index.test.js +0 -62
- package/__flow__/Button/index.stories.js +0 -153
- package/__flow__/Card/index.stories.js +0 -67
- package/__flow__/CharacterCounter/index.stories.js +0 -42
- package/__flow__/CharacterCounter/index.test.js +0 -24
- package/__flow__/ChartLegend/index.stories.js +0 -66
- package/__flow__/ChartLegend/index.test.js +0 -55
- package/__flow__/Checkbox/index.stories.js +0 -137
- package/__flow__/Checkbox/index.test.js +0 -91
- package/__flow__/Collapsible/index.stories.js +0 -182
- package/__flow__/Collapsible/index.test.js +0 -68
- package/__flow__/DatePicker/DateRangePicker.stories.js +0 -101
- package/__flow__/DatePicker/DateRangePicker.test.js +0 -123
- package/__flow__/DatePicker/SingleDatePicker.stories.js +0 -64
- package/__flow__/DatePicker/SingleDatePicker.test.js +0 -89
- package/__flow__/Drawer/index.stories.js +0 -336
- package/__flow__/Drawer/index.test.js +0 -158
- package/__flow__/EmptyState/index.stories.js +0 -108
- package/__flow__/EmptyState/index.test.js +0 -124
- package/__flow__/Fieldset/index.stories.js +0 -135
- package/__flow__/Fieldset/index.test.js +0 -34
- package/__flow__/FormField/index.stories.js +0 -116
- package/__flow__/FormField/index.test.js +0 -71
- package/__flow__/Icon/index.stories.js +0 -175
- package/__flow__/Icon/index.test.js +0 -25
- package/__flow__/Image/index.stories.js +0 -30
- package/__flow__/Image/index.test.js +0 -86
- package/__flow__/Indicator/index.stories.js +0 -16
- package/__flow__/Indicator/index.test.js +0 -11
- package/__flow__/Input/index.stories.js +0 -216
- package/__flow__/Input/index.test.js +0 -405
- package/__flow__/KeyboardKey/index.stories.js +0 -25
- package/__flow__/KeyboardKey/index.test.js +0 -12
- package/__flow__/Label/index.stories.js +0 -15
- package/__flow__/Label/index.test.js +0 -16
- package/__flow__/Link/index.stories.js +0 -115
- package/__flow__/Link/index.test.js +0 -110
- package/__flow__/Listbox/index.stories.js +0 -238
- package/__flow__/Listbox/index.test.js +0 -291
- package/__flow__/Loader/index.stories.js +0 -40
- package/__flow__/Loader/index.test.js +0 -26
- package/__flow__/LoaderButton/index.stories.js +0 -84
- package/__flow__/LoaderButton/index.test.js +0 -35
- package/__flow__/Menu/__snapshots__/index.test.js.snap +0 -115
- package/__flow__/Menu/index.stories.js +0 -261
- package/__flow__/Menu/index.test.js +0 -103
- package/__flow__/Message/index.stories.js +0 -73
- package/__flow__/Message/index.test.js +0 -12
- package/__flow__/Modal/index.stories.js +0 -409
- package/__flow__/Modal/index.test.js +0 -129
- package/__flow__/Numeral/index.stories.js +0 -183
- package/__flow__/Numeral/tests/A11y.test.js +0 -12
- package/__flow__/Numeral/tests/abbreviate.test.js +0 -72
- package/__flow__/Numeral/tests/currency.test.js +0 -40
- package/__flow__/Numeral/tests/defaults.test.js +0 -33
- package/__flow__/Numeral/tests/invalid.test.js +0 -12
- package/__flow__/Numeral/tests/locale.test.js +0 -83
- package/__flow__/Numeral/tests/precision.test.js +0 -126
- package/__flow__/Numeral/tests/zero.test.js +0 -11
- package/__flow__/OverflowList/index.stories.js +0 -69
- package/__flow__/OverflowList/index.test.js +0 -79
- package/__flow__/PartnerLogo/index.stories.js +0 -124
- package/__flow__/PartnerLogo/partnerLogos/bigcommerce-dark.svg +0 -5
- package/__flow__/PartnerLogo/partnerLogos/bigcommerce-lockup-dark.svg +0 -14
- package/__flow__/PartnerLogo/partnerLogos/bigcommerce-lockup.svg +0 -14
- package/__flow__/PartnerLogo/partnerLogos/bigcommerce.svg +0 -5
- package/__flow__/PartnerLogo/partnerLogos/bitly-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/bitly.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/canva-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/canva.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/dropbox-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/dropbox-lockup-dark.svg +0 -7
- package/__flow__/PartnerLogo/partnerLogos/dropbox-lockup.svg +0 -7
- package/__flow__/PartnerLogo/partnerLogos/dropbox-wordmark-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/dropbox-wordmark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/dropbox.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/facebook-audience-network-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/facebook-audience-network.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/facebook-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/facebook-groups-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/facebook-groups.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/facebook-shops-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/facebook-shops.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/facebook.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/feedly-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/feedly.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/glassdoor-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/glassdoor.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-analytics-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-analytics.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-business-messages-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-business-messages.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-drive-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-drive.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-my-business-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/google-my-business.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/hubspot-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/hubspot.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/instagram-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/instagram.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/linkedin-audience-network-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/linkedin-audience-network.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/linkedin-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/linkedin.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/marketo-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/marketo.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/messenger-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/messenger.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/microsoft-dynamics-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/microsoft-dynamics.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/pinterest-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/pinterest.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/reddit-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/reddit.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/salesforce-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/salesforce.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/shopify-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/shopify.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/slack-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/slack.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial-dark.svg +0 -7
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial-lockup-dark.svg +0 -19
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial-lockup.svg +0 -19
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial-wordmark-dark.svg +0 -14
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial-wordmark.svg +0 -14
- package/__flow__/PartnerLogo/partnerLogos/sproutsocial.svg +0 -7
- package/__flow__/PartnerLogo/partnerLogos/tiktok-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/tiktok.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/tripadvisor-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/tripadvisor.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/tumblr-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/tumblr.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/twitter-audience-network-dark.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/twitter-audience-network.svg +0 -3
- package/__flow__/PartnerLogo/partnerLogos/twitter-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/twitter.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/whatsapp-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/whatsapp.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/woocommerce-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/woocommerce.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/yelp-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/yelp.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/youtube-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/youtube.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/zendesk-dark.svg +0 -1
- package/__flow__/PartnerLogo/partnerLogos/zendesk-lockup-dark.svg +0 -28
- package/__flow__/PartnerLogo/partnerLogos/zendesk-lockup.svg +0 -28
- package/__flow__/PartnerLogo/partnerLogos/zendesk-wordmark-dark.svg +0 -9
- package/__flow__/PartnerLogo/partnerLogos/zendesk-wordmark.svg +0 -9
- package/__flow__/PartnerLogo/partnerLogos/zendesk.svg +0 -1
- package/__flow__/Popout/__snapshots__/index.test.js.snap +0 -121
- package/__flow__/Popout/index.stories.js +0 -471
- package/__flow__/Popout/index.test.js +0 -179
- package/__flow__/Portal/index.stories.js +0 -42
- package/__flow__/Radio/index.stories.js +0 -75
- package/__flow__/Radio/index.test.js +0 -47
- package/__flow__/SegmentedControl/index.stories.js +0 -44
- package/__flow__/SegmentedControl/index.test.js +0 -74
- package/__flow__/Select/index.stories.js +0 -42
- package/__flow__/Select/index.test.js +0 -44
- package/__flow__/Skeleton/index.stories.js +0 -31
- package/__flow__/SpotIllustration/index.stories.js +0 -135
- package/__flow__/SpotIllustration/spotIllustrations/abacus.svg +0 -21
- package/__flow__/SpotIllustration/spotIllustrations/analytics-offering.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/asset-cards.svg +0 -16
- package/__flow__/SpotIllustration/spotIllustrations/astronaut.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/binoculars.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/brand-keyword.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/browser-doc.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/business.svg +0 -23
- package/__flow__/SpotIllustration/spotIllustrations/calendar-event.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/calendar-reporting.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/cat-error.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/cat-no-access.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/cat.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/checkbox-alert.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/coffee-cup.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/competitors.svg +0 -29
- package/__flow__/SpotIllustration/spotIllustrations/compose-window.svg +0 -21
- package/__flow__/SpotIllustration/spotIllustrations/compose.svg +0 -5
- package/__flow__/SpotIllustration/spotIllustrations/computer-error.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/connect.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/contact.svg +0 -87
- package/__flow__/SpotIllustration/spotIllustrations/conversation.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/custom-branding.svg +0 -7
- package/__flow__/SpotIllustration/spotIllustrations/customer-service.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/dashboard.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/exclamation-mark.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/face-happy.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/find-bookmark.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/flask.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/general-topic.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/global-features.svg +0 -17
- package/__flow__/SpotIllustration/spotIllustrations/global-trend.svg +0 -5
- package/__flow__/SpotIllustration/spotIllustrations/grow-large.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/grow.svg +0 -5
- package/__flow__/SpotIllustration/spotIllustrations/hands-raised.svg +0 -8
- package/__flow__/SpotIllustration/spotIllustrations/headset.svg +0 -8
- package/__flow__/SpotIllustration/spotIllustrations/heartbeat-connection.svg +0 -14
- package/__flow__/SpotIllustration/spotIllustrations/instagram-links.svg +0 -28
- package/__flow__/SpotIllustration/spotIllustrations/invoice.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/jewel.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/keyword-tracking.svg +0 -26
- package/__flow__/SpotIllustration/spotIllustrations/lightbulb-alt.svg +0 -5
- package/__flow__/SpotIllustration/spotIllustrations/lightbulb.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/like-conversation.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/link-broken.svg +0 -18
- package/__flow__/SpotIllustration/spotIllustrations/link-messages.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/link-sections.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/link-upload.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/listening-pendo.svg +0 -14
- package/__flow__/SpotIllustration/spotIllustrations/listening-sentiment.svg +0 -27
- package/__flow__/SpotIllustration/spotIllustrations/listening-topic-templates.svg +0 -26
- package/__flow__/SpotIllustration/spotIllustrations/listening-tour.svg +0 -18
- package/__flow__/SpotIllustration/spotIllustrations/listening.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/loading.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/mailbox-empty.svg +0 -18
- package/__flow__/SpotIllustration/spotIllustrations/mailbox-full.svg +0 -8
- package/__flow__/SpotIllustration/spotIllustrations/megaphone.svg +0 -7
- package/__flow__/SpotIllustration/spotIllustrations/message.svg +0 -6
- package/__flow__/SpotIllustration/spotIllustrations/molecule.svg +0 -14
- package/__flow__/SpotIllustration/spotIllustrations/network-data.svg +0 -25
- package/__flow__/SpotIllustration/spotIllustrations/no-messages-found.svg +0 -20
- package/__flow__/SpotIllustration/spotIllustrations/no-notifications.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/note.svg +0 -6
- package/__flow__/SpotIllustration/spotIllustrations/notification.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/notifications-onboarding.svg +0 -23
- package/__flow__/SpotIllustration/spotIllustrations/organize-message.svg +0 -64
- package/__flow__/SpotIllustration/spotIllustrations/outbox-queue.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/outbox-reviews.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/pdf.svg +0 -5
- package/__flow__/SpotIllustration/spotIllustrations/planning.svg +0 -28
- package/__flow__/SpotIllustration/spotIllustrations/podium.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/pointer.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/publish-assets.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/publish-links.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/publishing.svg +0 -29
- package/__flow__/SpotIllustration/spotIllustrations/puzzle-piece.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/question-mark.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/reporting-folder.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/reporting.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/review-location.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/review.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/robot-assembly.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/robot-error.svg +0 -19
- package/__flow__/SpotIllustration/spotIllustrations/robot-happy.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/rocket.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/schedule-date.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/schedule-messages.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/search-keywords.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/search-success.svg +0 -8
- package/__flow__/SpotIllustration/spotIllustrations/search-trends.svg +0 -23
- package/__flow__/SpotIllustration/spotIllustrations/search.svg +0 -86
- package/__flow__/SpotIllustration/spotIllustrations/security.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/sentiment.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/shopping-bag.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/spark-line.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/stamp.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/storefront.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/success.svg +0 -9
- package/__flow__/SpotIllustration/spotIllustrations/tag-message.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/tag.svg +0 -6
- package/__flow__/SpotIllustration/spotIllustrations/team-roles.svg +0 -17
- package/__flow__/SpotIllustration/spotIllustrations/team.svg +0 -16
- package/__flow__/SpotIllustration/spotIllustrations/telescope.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/tha-mel.svg +0 -15
- package/__flow__/SpotIllustration/spotIllustrations/thumbs-up.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/toggle-switch.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/toolset-strength.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/tracking-time.svg +0 -6
- package/__flow__/SpotIllustration/spotIllustrations/twitter-messages.svg +0 -11
- package/__flow__/SpotIllustration/spotIllustrations/twitter-profiles.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/under-construction.svg +0 -12
- package/__flow__/SpotIllustration/spotIllustrations/unsubscribe.svg +0 -10
- package/__flow__/SpotIllustration/spotIllustrations/upward-trend.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/user-task.svg +0 -58
- package/__flow__/SpotIllustration/spotIllustrations/view-connections.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/vip-list.svg +0 -13
- package/__flow__/SpotIllustration/spotIllustrations/warning.svg +0 -4
- package/__flow__/SpotIllustration/spotIllustrations/wifi.svg +0 -6
- package/__flow__/SpotIllustration/spotIllustrations/workflow-steps.svg +0 -28
- package/__flow__/Stack/TypeSpaceLiterals.js +0 -13
- package/__flow__/Stack/index.stories.js +0 -91
- package/__flow__/Stack/index.test.js +0 -22
- package/__flow__/Switch/index.stories.js +0 -42
- package/__flow__/Switch/index.test.js +0 -44
- package/__flow__/Table/index.stories.js +0 -293
- package/__flow__/Table/index.test.js +0 -91
- package/__flow__/TableCell/index.stories.js +0 -33
- package/__flow__/TableCell/index.test.js +0 -20
- package/__flow__/TableHeaderCell/index.stories.js +0 -54
- package/__flow__/TableHeaderCell/index.test.js +0 -28
- package/__flow__/TableRowAccordion/index.stories.js +0 -129
- package/__flow__/TableRowAccordion/index.test.js +0 -82
- package/__flow__/Tabs/index.stories.js +0 -84
- package/__flow__/Tabs/index.test.js +0 -242
- package/__flow__/Text/index.stories.js +0 -132
- package/__flow__/Text/index.test.js +0 -49
- package/__flow__/Textarea/index.stories.js +0 -90
- package/__flow__/Textarea/index.test.js +0 -86
- package/__flow__/Toast/index.stories.js +0 -118
- package/__flow__/ToggleHint/index.test.js +0 -16
- package/__flow__/Token/index.stories.js +0 -89
- package/__flow__/Token/index.test.js +0 -75
- package/__flow__/TokenInput/index.stories.js +0 -242
- package/__flow__/TokenInput/tests/default/clicking.test.js +0 -38
- package/__flow__/TokenInput/tests/default/deleting.test.js +0 -101
- package/__flow__/TokenInput/tests/default/focusing.test.js +0 -39
- package/__flow__/TokenInput/tests/default/inputting.test.js +0 -57
- package/__flow__/TokenInput/tests/default/pasting.test.js +0 -216
- package/__flow__/TokenInput/tests/default/rendering.test.js +0 -140
- package/__flow__/Tooltip/index.stories.js +0 -175
- package/__flow__/Tooltip/index.test.js +0 -182
- package/__flow__/building-stories.stories.mdx +0 -121
- package/__flow__/code-guidelines.mdx +0 -244
- package/__flow__/dataviz/dataviz.stories.js +0 -13
- package/__flow__/overview.stories.js +0 -60
- package/__flow__/setupTests.js +0 -22
- package/__flow__/systemProps/tests/__snapshots__/background.test.js.snap +0 -96
- package/__flow__/systemProps/tests/__snapshots__/border.test.js.snap +0 -469
- package/__flow__/systemProps/tests/__snapshots__/color.test.js.snap +0 -55
- package/__flow__/systemProps/tests/__snapshots__/custom.test.js.snap +0 -36
- package/__flow__/systemProps/tests/__snapshots__/flexbox.test.js.snap +0 -239
- package/__flow__/systemProps/tests/__snapshots__/grid.test.js.snap +0 -166
- package/__flow__/systemProps/tests/__snapshots__/layout.test.js.snap +0 -204
- package/__flow__/systemProps/tests/__snapshots__/position.test.js.snap +0 -115
- package/__flow__/systemProps/tests/__snapshots__/shadow.test.js.snap +0 -25
- package/__flow__/systemProps/tests/__snapshots__/space.test.js.snap +0 -39
- package/__flow__/systemProps/tests/__snapshots__/typography.test.js.snap +0 -166
- package/__flow__/systemProps/tests/__snapshots__/variant.test.js.snap +0 -17
- package/__flow__/systemProps/tests/background.test.js +0 -90
- package/__flow__/systemProps/tests/border.test.js +0 -299
- package/__flow__/systemProps/tests/color.test.js +0 -49
- package/__flow__/systemProps/tests/custom.test.js +0 -38
- package/__flow__/systemProps/tests/flexbox.test.js +0 -150
- package/__flow__/systemProps/tests/grid.test.js +0 -123
- package/__flow__/systemProps/tests/layout.test.js +0 -126
- package/__flow__/systemProps/tests/position.test.js +0 -78
- package/__flow__/systemProps/tests/shadow.test.js +0 -30
- package/__flow__/systemProps/tests/space.test.js +0 -32
- package/__flow__/systemProps/tests/typography.test.js +0 -93
- package/__flow__/systemProps/tests/variant.test.js +0 -25
- package/__flow__/themes/extendedThemes/README.md +0 -6
- package/__flow__/themes/utils/_themed.scss +0 -119
- package/__flow__/utils/responsiveProps/index.test.js +0 -31
- package/__flow__/writing-good-stories.stories.mdx +0 -3
package/__flow__/Menu/index.js
CHANGED
|
@@ -1,49 +1,25 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
4
|
import styled from 'styled-components';
|
|
4
|
-
import {
|
|
5
|
-
useCallback,
|
|
6
|
-
useContext,
|
|
7
|
-
useEffect,
|
|
8
|
-
useMemo,
|
|
9
|
-
useRef,
|
|
10
|
-
useState,
|
|
11
|
-
} from 'react';
|
|
12
5
|
import uniqueId from 'lodash.uniqueid';
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
import Box from
|
|
17
|
-
import Button from
|
|
18
|
-
import Checkbox from
|
|
19
|
-
import Icon from
|
|
20
|
-
import Input from
|
|
21
|
-
import Popout from
|
|
22
|
-
import Radio from
|
|
23
|
-
import Text from
|
|
24
|
-
import {
|
|
25
|
-
import
|
|
26
|
-
|
|
27
|
-
import type
|
|
28
|
-
|
|
29
|
-
TypeMenuGroupProps,
|
|
30
|
-
TypeMenuItemProps,
|
|
31
|
-
TypeMenuItemRoles,
|
|
32
|
-
TypeMenuProps,
|
|
33
|
-
TypeMenuRoles,
|
|
34
|
-
} from './index.flow';
|
|
35
|
-
import {useTextContent} from '../utils/hooks';
|
|
36
|
-
import {DescendantProvider, useDescendant, useDescendants} from './descendants';
|
|
37
|
-
import type {TypeMenuDescendantProps} from './hooks';
|
|
38
|
-
import {
|
|
39
|
-
MenuButtonContext,
|
|
40
|
-
MenuContext,
|
|
41
|
-
MenuDescendantContext,
|
|
42
|
-
useMenuKeyDown,
|
|
43
|
-
} from './hooks';
|
|
44
|
-
|
|
6
|
+
import { useTextContent } from "../utils/hooks";
|
|
7
|
+
import innerText from "../utils/innerText";
|
|
8
|
+
import { disabled } from "../utils/mixins";
|
|
9
|
+
import Box from "../Box";
|
|
10
|
+
import Button from "../Button";
|
|
11
|
+
import Checkbox from "../Checkbox";
|
|
12
|
+
import Icon from "../Icon";
|
|
13
|
+
import Input from "../Input";
|
|
14
|
+
import Popout from "../Popout";
|
|
15
|
+
import Radio from "../Radio";
|
|
16
|
+
import Text from "../Text";
|
|
17
|
+
import type { TypeMenuButtonProps, TypeMenuGroupProps, TypeMenuItemProps, TypeMenuItemRoles, TypeMenuProps, TypeMenuRoles } from "./index.flow";
|
|
18
|
+
import { MENU_ITEM_ROLES, MENU_ROLES } from "./constants";
|
|
19
|
+
import { DescendantProvider, useDescendant, useDescendants } from "./descendants";
|
|
20
|
+
import { MenuButtonContext, MenuContext, MenuDescendantContext, useMenuKeyDown, type TypeMenuDescendantProps } from "./hooks";
|
|
21
|
+
import { MenuItemContainer, MenuItemsContainer } from "./styles";
|
|
45
22
|
const noop = () => {};
|
|
46
|
-
|
|
47
23
|
const getMenuItemRole = (menuRole: ?TypeMenuRoles): TypeMenuItemRoles => {
|
|
48
24
|
switch (menuRole) {
|
|
49
25
|
case MENU_ROLES.LIST:
|
|
@@ -55,10 +31,8 @@ const getMenuItemRole = (menuRole: ?TypeMenuRoles): TypeMenuItemRoles => {
|
|
|
55
31
|
return MENU_ITEM_ROLES.MENUITEM;
|
|
56
32
|
}
|
|
57
33
|
};
|
|
58
|
-
|
|
59
34
|
function isValueSelected(menuValue, value) {
|
|
60
35
|
if (!menuValue) return false;
|
|
61
|
-
|
|
62
36
|
if (typeof menuValue === 'string') {
|
|
63
37
|
return Boolean(menuValue && value && menuValue === value);
|
|
64
38
|
} else if (Array.isArray(menuValue)) {
|
|
@@ -66,7 +40,6 @@ function isValueSelected(menuValue, value) {
|
|
|
66
40
|
}
|
|
67
41
|
return false;
|
|
68
42
|
}
|
|
69
|
-
|
|
70
43
|
export const MenuItem = ({
|
|
71
44
|
id: idProp,
|
|
72
45
|
index: indexProp,
|
|
@@ -91,10 +64,16 @@ export const MenuItem = ({
|
|
|
91
64
|
multiselect,
|
|
92
65
|
state: menuState,
|
|
93
66
|
selectCallbacks,
|
|
94
|
-
menuRef
|
|
67
|
+
menuRef
|
|
95
68
|
} = useContext(MenuContext);
|
|
96
|
-
const {
|
|
97
|
-
|
|
69
|
+
const {
|
|
70
|
+
selectionIndex,
|
|
71
|
+
filteredItems
|
|
72
|
+
} = menuState;
|
|
73
|
+
const {
|
|
74
|
+
closePopout,
|
|
75
|
+
closeOnItemClick
|
|
76
|
+
} = useContext(MenuButtonContext);
|
|
98
77
|
const isSelected = selected || isValueSelected(value, valueProp);
|
|
99
78
|
const shouldClosePopout = closeOnItemClick && !multiselect;
|
|
100
79
|
const itemRole = roleProp || getMenuItemRole(menuRole);
|
|
@@ -102,35 +81,20 @@ export const MenuItem = ({
|
|
|
102
81
|
const textContent = useTextContent('');
|
|
103
82
|
const label = labelProp || textContent.current;
|
|
104
83
|
const ref = useRef<HTMLDivElement | null>(null);
|
|
105
|
-
const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
},
|
|
114
|
-
indexProp
|
|
115
|
-
);
|
|
84
|
+
const index = useDescendant<HTMLElement, TypeMenuDescendantProps>({
|
|
85
|
+
context: MenuDescendantContext,
|
|
86
|
+
element: ref.current,
|
|
87
|
+
value: valueProp || label,
|
|
88
|
+
label,
|
|
89
|
+
disabled,
|
|
90
|
+
id
|
|
91
|
+
}, indexProp);
|
|
116
92
|
const isHidden = filteredItems && !filteredItems.includes(index);
|
|
117
93
|
const isFocused = index === selectionIndex;
|
|
118
94
|
selectCallbacks.current[index] = onClick;
|
|
119
95
|
const [keyPressed, setKeyPressed] = useState(false);
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
MENU_ITEM_ROLES.CHECKBOX,
|
|
123
|
-
MENU_ITEM_ROLES.RADIO,
|
|
124
|
-
].includes(itemRole);
|
|
125
|
-
const interactive =
|
|
126
|
-
onClick ||
|
|
127
|
-
onKeyPress ||
|
|
128
|
-
[
|
|
129
|
-
MENU_ITEM_ROLES.OPTION,
|
|
130
|
-
MENU_ITEM_ROLES.MENUITEM,
|
|
131
|
-
MENU_ITEM_ROLES.CHECKBOX,
|
|
132
|
-
MENU_ITEM_ROLES.RADIO,
|
|
133
|
-
].includes(itemRole);
|
|
96
|
+
const isCheckboxOrRadio = [MENU_ITEM_ROLES.CHECKBOX, MENU_ITEM_ROLES.RADIO].includes(itemRole);
|
|
97
|
+
const interactive = onClick || onKeyPress || [MENU_ITEM_ROLES.OPTION, MENU_ITEM_ROLES.MENUITEM, MENU_ITEM_ROLES.CHECKBOX, MENU_ITEM_ROLES.RADIO].includes(itemRole);
|
|
134
98
|
|
|
135
99
|
/**
|
|
136
100
|
* The Checkbox/Radio component doesn't expose a tabIndex prop, so we can't set the tabIndex on the underlying input
|
|
@@ -145,7 +109,6 @@ export const MenuItem = ({
|
|
|
145
109
|
}
|
|
146
110
|
}
|
|
147
111
|
}, [ref, isCheckboxOrRadio]);
|
|
148
|
-
|
|
149
112
|
useEffect(() => {
|
|
150
113
|
if (filteredItems) {
|
|
151
114
|
setKeyPressed(true);
|
|
@@ -153,198 +116,95 @@ export const MenuItem = ({
|
|
|
153
116
|
setKeyPressed(true);
|
|
154
117
|
}
|
|
155
118
|
}, [selectionIndex, filteredItems]);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
onClick && onClick(e);
|
|
165
|
-
},
|
|
166
|
-
[
|
|
167
|
-
menuRef,
|
|
168
|
-
onChange,
|
|
169
|
-
itemRole,
|
|
170
|
-
shouldClosePopout,
|
|
171
|
-
closePopout,
|
|
172
|
-
onClick,
|
|
173
|
-
valueProp,
|
|
174
|
-
label,
|
|
175
|
-
]
|
|
176
|
-
);
|
|
177
|
-
|
|
119
|
+
const handleClick = useCallback((e: SyntheticEvent<HTMLButtonElement>) => {
|
|
120
|
+
menuRef.current?.focus();
|
|
121
|
+
if (onChange && itemRole !== MENU_ITEM_ROLES.LISTITEM) {
|
|
122
|
+
onChange(valueProp || label);
|
|
123
|
+
}
|
|
124
|
+
shouldClosePopout && closePopout && closePopout();
|
|
125
|
+
onClick && onClick(e);
|
|
126
|
+
}, [menuRef, onChange, itemRole, shouldClosePopout, closePopout, onClick, valueProp, label]);
|
|
178
127
|
const before = useMemo(() => {
|
|
179
128
|
if (elemBefore) return elemBefore;
|
|
180
|
-
|
|
181
129
|
if (itemRole === MENU_ITEM_ROLES.CHECKBOX) {
|
|
182
|
-
return
|
|
183
|
-
<Checkbox
|
|
184
|
-
id={`Checkbox-${id}`}
|
|
185
|
-
checked={isSelected}
|
|
186
|
-
aria-hidden="true"
|
|
187
|
-
onChange={noop}
|
|
188
|
-
indeterminate={indeterminate}
|
|
189
|
-
mr={300}
|
|
190
|
-
/>
|
|
191
|
-
);
|
|
130
|
+
return <Checkbox id={`Checkbox-${id}`} checked={isSelected} aria-hidden="true" onChange={noop} indeterminate={indeterminate} mr={300} />;
|
|
192
131
|
} else if (itemRole === MENU_ITEM_ROLES.RADIO) {
|
|
193
|
-
return
|
|
194
|
-
<Radio
|
|
195
|
-
id={`Radio-${id}`}
|
|
196
|
-
name={`Radio-${id}`}
|
|
197
|
-
checked={isSelected}
|
|
198
|
-
aria-hidden="true"
|
|
199
|
-
onChange={noop}
|
|
200
|
-
mr={300}
|
|
201
|
-
/>
|
|
202
|
-
);
|
|
132
|
+
return <Radio id={`Radio-${id}`} name={`Radio-${id}`} checked={isSelected} aria-hidden="true" onChange={noop} mr={300} />;
|
|
203
133
|
}
|
|
204
134
|
}, [elemBefore, id, indeterminate, isSelected, itemRole]);
|
|
205
|
-
|
|
206
135
|
const after = useMemo(() => {
|
|
207
136
|
if (elemAfter) return elemAfter;
|
|
208
137
|
if (isSelected && !isCheckboxOrRadio) {
|
|
209
138
|
return <Icon name="check" ariaHidden size="mini" ml={300} />;
|
|
210
139
|
}
|
|
211
140
|
}, [elemAfter, isCheckboxOrRadio, isSelected]);
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
id={id}
|
|
219
|
-
aria-label={labelProp}
|
|
220
|
-
value={valueProp}
|
|
221
|
-
data-value={valueProp}
|
|
222
|
-
forwardedAs={as || 'li'}
|
|
223
|
-
aria-checked={isCheckboxOrRadio ? isSelected : undefined}
|
|
224
|
-
aria-selected={
|
|
225
|
-
itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined
|
|
226
|
-
}
|
|
227
|
-
disabled={disabled}
|
|
228
|
-
aria-disabled={disabled}
|
|
229
|
-
hidden={isHidden}
|
|
230
|
-
interactive={interactive}
|
|
231
|
-
isCheckboxOrRadio={isCheckboxOrRadio}
|
|
232
|
-
onClick={!disabled ? handleClick : undefined}
|
|
233
|
-
role={itemRole}
|
|
234
|
-
selected={isSelected}
|
|
235
|
-
tabIndex={
|
|
236
|
-
itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined
|
|
237
|
-
}
|
|
238
|
-
>
|
|
239
|
-
<div
|
|
240
|
-
ref={ref}
|
|
241
|
-
style={{
|
|
242
|
-
display: 'flex',
|
|
243
|
-
alignItems: props.alignItems || 'center',
|
|
244
|
-
justifyContent: 'space-between',
|
|
245
|
-
}}
|
|
246
|
-
>
|
|
141
|
+
return <MenuItemContainer data-qa-menu-item={label} {...props} active={isFocused && keyPressed} id={id} aria-label={labelProp} value={valueProp} data-value={valueProp} forwardedAs={as || 'li'} aria-checked={isCheckboxOrRadio ? isSelected : undefined} aria-selected={itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined} disabled={disabled} aria-disabled={disabled} hidden={isHidden} interactive={interactive} isCheckboxOrRadio={isCheckboxOrRadio} onClick={!disabled ? handleClick : undefined} role={itemRole} selected={isSelected} tabIndex={itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined}>
|
|
142
|
+
<div ref={ref} style={{
|
|
143
|
+
display: 'flex',
|
|
144
|
+
alignItems: props.alignItems || 'center',
|
|
145
|
+
justifyContent: 'space-between'
|
|
146
|
+
}}>
|
|
247
147
|
{before}
|
|
248
|
-
<div
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
148
|
+
<div style={{
|
|
149
|
+
flexGrow: 1,
|
|
150
|
+
wordBreak: 'break-word',
|
|
151
|
+
minWidth: 0
|
|
152
|
+
}} ref={textContent}>
|
|
252
153
|
{children}
|
|
253
154
|
</div>
|
|
254
155
|
{after}
|
|
255
156
|
</div>
|
|
256
|
-
</MenuItemContainer
|
|
257
|
-
);
|
|
157
|
+
</MenuItemContainer>;
|
|
258
158
|
};
|
|
259
|
-
|
|
260
|
-
export const
|
|
261
|
-
<MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />
|
|
262
|
-
);
|
|
263
|
-
export const MenuRadio = (props: TypeMenuItemProps) => (
|
|
264
|
-
<MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />
|
|
265
|
-
);
|
|
266
|
-
|
|
159
|
+
export const MenuCheckbox = (props: TypeMenuItemProps) => <MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />;
|
|
160
|
+
export const MenuRadio = (props: TypeMenuItemProps) => <MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />;
|
|
267
161
|
export const MenuGroup = ({
|
|
268
162
|
children,
|
|
269
163
|
title,
|
|
270
164
|
titleAs,
|
|
271
165
|
disabled: isDisabled = false,
|
|
272
166
|
...props
|
|
273
|
-
}: TypeMenuGroupProps) =>
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
<Box
|
|
277
|
-
pl={400}
|
|
278
|
-
borderTop="1px solid"
|
|
279
|
-
borderColor="container.border.base"
|
|
280
|
-
mt="-1px"
|
|
281
|
-
>
|
|
282
|
-
<Text
|
|
283
|
-
forwardedAs={titleAs || 'div'}
|
|
284
|
-
fontSize={200}
|
|
285
|
-
fontWeight={600}
|
|
286
|
-
mt={350}
|
|
287
|
-
color="text.headline"
|
|
288
|
-
css={isDisabled && disabled}
|
|
289
|
-
>
|
|
167
|
+
}: TypeMenuGroupProps) => <>
|
|
168
|
+
{title && <Box pl={400} borderTop="1px solid" borderColor="container.border.base" mt="-1px">
|
|
169
|
+
<Text forwardedAs={titleAs || 'div'} fontSize={200} fontWeight={600} mt={350} color="text.headline" css={isDisabled && disabled}>
|
|
290
170
|
{title}
|
|
291
171
|
</Text>
|
|
292
|
-
</Box>
|
|
293
|
-
)}
|
|
172
|
+
</Box>}
|
|
294
173
|
<Box {...props} p={300} role="group">
|
|
295
174
|
{children}
|
|
296
175
|
</Box>
|
|
297
|
-
|
|
298
|
-
)
|
|
299
|
-
|
|
300
|
-
export const MenuDivider = (props: any) => (
|
|
301
|
-
<Box
|
|
302
|
-
as="li"
|
|
303
|
-
role="separator"
|
|
304
|
-
borderTop="1px solid"
|
|
305
|
-
borderColor="container.border.base"
|
|
306
|
-
{...props}
|
|
307
|
-
/>
|
|
308
|
-
);
|
|
309
|
-
|
|
176
|
+
</>;
|
|
177
|
+
export const MenuDivider = (props: any) => <Box as="li" role="separator" borderTop="1px solid" borderColor="container.border.base" {...props} />;
|
|
310
178
|
const MenuFilterInput = (props: React$ElementConfig<typeof Input>) => {
|
|
311
|
-
const {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
);
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
(
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
{...props}
|
|
340
|
-
value={state.filterQuery}
|
|
341
|
-
onChange={handleOnChange}
|
|
342
|
-
onFocus={handleOnFocus}
|
|
343
|
-
onBlur={handleOnBlur}
|
|
344
|
-
/>
|
|
345
|
-
);
|
|
179
|
+
const {
|
|
180
|
+
onChange,
|
|
181
|
+
onFocus,
|
|
182
|
+
onBlur
|
|
183
|
+
} = props;
|
|
184
|
+
const {
|
|
185
|
+
state,
|
|
186
|
+
setState
|
|
187
|
+
} = useContext(MenuContext);
|
|
188
|
+
const handleOnChange = useCallback((event, value) => {
|
|
189
|
+
onChange && onChange(event, value);
|
|
190
|
+
setState({
|
|
191
|
+
filterQuery: value
|
|
192
|
+
});
|
|
193
|
+
}, [setState, onChange]);
|
|
194
|
+
const handleOnFocus = useCallback(event => {
|
|
195
|
+
onFocus && onFocus(event);
|
|
196
|
+
setState({
|
|
197
|
+
isFilterInputFocused: true
|
|
198
|
+
});
|
|
199
|
+
}, [setState, onFocus]);
|
|
200
|
+
const handleOnBlur = useCallback(event => {
|
|
201
|
+
onBlur && onBlur(event);
|
|
202
|
+
setState({
|
|
203
|
+
isFilterInputFocused: false
|
|
204
|
+
});
|
|
205
|
+
}, [setState, onBlur]);
|
|
206
|
+
return <Input {...props} value={state.filterQuery} onChange={handleOnChange} onFocus={handleOnFocus} onBlur={handleOnBlur} />;
|
|
346
207
|
};
|
|
347
|
-
|
|
348
208
|
const MenuItems = ({
|
|
349
209
|
children,
|
|
350
210
|
role,
|
|
@@ -352,27 +212,14 @@ const MenuItems = ({
|
|
|
352
212
|
innerRef,
|
|
353
213
|
...props
|
|
354
214
|
}: TypeMenuProps) => {
|
|
355
|
-
const {
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
forwardedAs="ul"
|
|
361
|
-
ref={innerRef}
|
|
362
|
-
role={role}
|
|
363
|
-
aria-activedescendant={activeDescendent?.id}
|
|
364
|
-
aria-multiselectable={multiselect ? true : undefined}
|
|
365
|
-
tabIndex={0}
|
|
366
|
-
onKeyDown={handleKeyDown}
|
|
367
|
-
margin={0}
|
|
368
|
-
padding={0}
|
|
369
|
-
overflow="hidden"
|
|
370
|
-
>
|
|
215
|
+
const {
|
|
216
|
+
handleKeyDown,
|
|
217
|
+
activeDescendent
|
|
218
|
+
} = useMenuKeyDown();
|
|
219
|
+
return <MenuItemsContainer {...props} forwardedAs="ul" ref={innerRef} role={role} aria-activedescendant={activeDescendent?.id} aria-multiselectable={multiselect ? true : undefined} tabIndex={0} onKeyDown={handleKeyDown} margin={0} padding={0} overflow="hidden">
|
|
371
220
|
{children}
|
|
372
|
-
</MenuItemsContainer
|
|
373
|
-
);
|
|
221
|
+
</MenuItemsContainer>;
|
|
374
222
|
};
|
|
375
|
-
|
|
376
223
|
export const Menu = ({
|
|
377
224
|
role = MENU_ROLES.MENU,
|
|
378
225
|
children,
|
|
@@ -382,78 +229,58 @@ export const Menu = ({
|
|
|
382
229
|
innerRef,
|
|
383
230
|
...props
|
|
384
231
|
}: TypeMenuProps) => {
|
|
385
|
-
const [descendants, setDescendants] = useDescendants<
|
|
386
|
-
HTMLElement,
|
|
387
|
-
TypeMenuDescendantProps
|
|
388
|
-
>();
|
|
232
|
+
const [descendants, setDescendants] = useDescendants<HTMLElement, TypeMenuDescendantProps>();
|
|
389
233
|
const [state, setState] = useState({
|
|
390
234
|
selectionIndex: 0,
|
|
391
235
|
filterQuery: '',
|
|
392
236
|
filteredItems: null,
|
|
393
|
-
isFilterInputFocused: false
|
|
237
|
+
isFilterInputFocused: false
|
|
394
238
|
});
|
|
395
|
-
const selectCallbacks = useRef<(?(
|
|
239
|
+
const selectCallbacks = useRef<(?() => void)[]>([]);
|
|
396
240
|
const menuRef = useRef(null);
|
|
397
|
-
const setContextState = useCallback(
|
|
398
|
-
(
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
);
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
multiselect,
|
|
419
|
-
state,
|
|
420
|
-
setState: setContextState,
|
|
421
|
-
selectCallbacks,
|
|
422
|
-
}}
|
|
423
|
-
>
|
|
424
|
-
<MenuItems
|
|
425
|
-
{...props}
|
|
426
|
-
role={role}
|
|
427
|
-
multiselect={multiselect}
|
|
428
|
-
innerRef={menuRef}
|
|
429
|
-
>
|
|
241
|
+
const setContextState = useCallback(newState => {
|
|
242
|
+
setState({
|
|
243
|
+
...state,
|
|
244
|
+
...newState
|
|
245
|
+
});
|
|
246
|
+
}, [state]);
|
|
247
|
+
return <DescendantProvider context={MenuDescendantContext} items={
|
|
248
|
+
// $FlowIssue
|
|
249
|
+
descendants} set={setDescendants}>
|
|
250
|
+
<MenuContext.Provider value={{
|
|
251
|
+
// $FlowIssue
|
|
252
|
+
menuRef: innerRef || menuRef,
|
|
253
|
+
role,
|
|
254
|
+
onChange,
|
|
255
|
+
value,
|
|
256
|
+
multiselect,
|
|
257
|
+
state,
|
|
258
|
+
setState: setContextState,
|
|
259
|
+
selectCallbacks
|
|
260
|
+
}}>
|
|
261
|
+
<MenuItems {...props} role={role} multiselect={multiselect} innerRef={menuRef}>
|
|
430
262
|
{children}
|
|
431
263
|
</MenuItems>
|
|
432
264
|
</MenuContext.Provider>
|
|
433
|
-
</DescendantProvider
|
|
434
|
-
);
|
|
265
|
+
</DescendantProvider>;
|
|
435
266
|
};
|
|
436
|
-
|
|
437
267
|
Menu.Group = MenuGroup;
|
|
438
268
|
Menu.Item = MenuItem;
|
|
439
269
|
Menu.Checkbox = MenuCheckbox;
|
|
440
270
|
Menu.Radio = MenuRadio;
|
|
441
271
|
Menu.Divider = MenuDivider;
|
|
442
272
|
Menu.FilterInput = MenuFilterInput;
|
|
443
|
-
|
|
444
273
|
Menu.Group.displayName = 'Menu.Group';
|
|
445
274
|
Menu.Item.displayName = 'Menu.Item';
|
|
446
275
|
Menu.Checkbox.displayName = 'Menu.Checkbox';
|
|
447
276
|
Menu.Radio.displayName = 'Menu.Radio';
|
|
448
277
|
Menu.Divider.displayName = 'Menu.Divider';
|
|
449
278
|
Menu.FilterInput.displayName = 'Menu.FilterInput';
|
|
450
|
-
|
|
451
279
|
const CustomPopoutContent = styled(Popout.Content)`
|
|
452
280
|
padding: 0;
|
|
453
281
|
margin-left: 0;
|
|
454
282
|
margin-right: 0;
|
|
455
283
|
`;
|
|
456
|
-
|
|
457
284
|
export const MenuButton = ({
|
|
458
285
|
content,
|
|
459
286
|
popoutProps,
|
|
@@ -463,51 +290,30 @@ export const MenuButton = ({
|
|
|
463
290
|
id = uniqueId('MenuButton-'),
|
|
464
291
|
placement = 'bottom',
|
|
465
292
|
...props
|
|
466
|
-
}: TypeMenuButtonProps) => {
|
|
293
|
+
}: TypeMenuButtonProps): React.Node => {
|
|
467
294
|
const [isOpen, setIsOpen] = useState(false);
|
|
468
|
-
|
|
469
295
|
const closePopout = useCallback(() => setIsOpen(false), [setIsOpen]);
|
|
470
|
-
|
|
471
|
-
const
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
>
|
|
489
|
-
<Button
|
|
490
|
-
{...props}
|
|
491
|
-
id={id}
|
|
492
|
-
aria-labelledby={ariaLabelledBy?.trim()}
|
|
493
|
-
aria-label={ariaLabel?.trim()}
|
|
494
|
-
active={isOpen}
|
|
495
|
-
onKeyDown={(e) => {
|
|
496
|
-
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
497
|
-
onClick && onClick(e);
|
|
498
|
-
setIsOpen(true);
|
|
499
|
-
}
|
|
500
|
-
}}
|
|
501
|
-
onClick={(e) => {
|
|
502
|
-
onClick && onClick(e);
|
|
503
|
-
setIsOpen(!isOpen);
|
|
504
|
-
}}
|
|
505
|
-
>
|
|
296
|
+
const ariaLabelledBy = props['aria-labelledby'] ? `${props['aria-labelledby']} ${id}` : undefined;
|
|
297
|
+
const ariaLabel = props['aria-label'] ? `${props['aria-label']} ${innerText(children)}` : undefined;
|
|
298
|
+
return <MenuButtonContext.Provider value={{
|
|
299
|
+
closePopout,
|
|
300
|
+
closeOnItemClick
|
|
301
|
+
}}>
|
|
302
|
+
<Popout isOpen={isOpen} setIsOpen={setIsOpen} content={<CustomPopoutContent>{content}</CustomPopoutContent>} placement={placement} {...popoutProps} width={
|
|
303
|
+
// $FlowIssue - both types are inexact, so this should work
|
|
304
|
+
props.width}>
|
|
305
|
+
<Button {...props} id={id} aria-labelledby={ariaLabelledBy?.trim()} aria-label={ariaLabel?.trim()} active={isOpen} onKeyDown={e => {
|
|
306
|
+
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
|
|
307
|
+
onClick && onClick(e);
|
|
308
|
+
setIsOpen(true);
|
|
309
|
+
}
|
|
310
|
+
}} onClick={e => {
|
|
311
|
+
onClick && onClick(e);
|
|
312
|
+
setIsOpen(!isOpen);
|
|
313
|
+
}}>
|
|
506
314
|
{children}
|
|
507
315
|
</Button>
|
|
508
316
|
</Popout>
|
|
509
|
-
</MenuButtonContext.Provider
|
|
510
|
-
);
|
|
317
|
+
</MenuButtonContext.Provider>;
|
|
511
318
|
};
|
|
512
|
-
|
|
513
|
-
export default Menu;
|
|
319
|
+
export default Menu;
|