@sproutsocial/racine 12.19.0 → 12.21.0
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 +33 -0
- package/README.md +46 -44
- package/__flow__/Avatar/index.js +26 -26
- package/__flow__/Avatar/index.stories.js +8 -8
- package/__flow__/Avatar/index.test.js +13 -13
- package/__flow__/Badge/constants.js +14 -14
- package/__flow__/Badge/index.js +18 -18
- package/__flow__/Badge/index.stories.js +8 -8
- package/__flow__/Badge/index.test.js +43 -43
- package/__flow__/Badge/styles.js +13 -9
- package/__flow__/Banner/index.js +21 -21
- package/__flow__/Banner/index.stories.js +56 -68
- package/__flow__/Banner/index.test.js +32 -34
- package/__flow__/Banner/styles.js +4 -4
- package/__flow__/Box/index.js +4 -4
- package/__flow__/Box/index.stories.js +58 -51
- package/__flow__/Box/index.test.js +7 -7
- package/__flow__/Box/styles.js +6 -6
- package/__flow__/Breadcrumb/index.js +9 -13
- package/__flow__/Breadcrumb/index.stories.js +14 -14
- package/__flow__/Breadcrumb/index.test.js +20 -20
- package/__flow__/Breadcrumb/styles.js +5 -5
- package/__flow__/Button/index.js +23 -23
- package/__flow__/Button/index.stories.js +34 -34
- package/__flow__/Button/styles.js +11 -11
- package/__flow__/Card/index.js +7 -7
- package/__flow__/Card/index.stories.js +14 -14
- package/__flow__/Card/styles.js +7 -7
- package/__flow__/CharacterCounter/index.js +7 -7
- package/__flow__/CharacterCounter/index.stories.js +25 -26
- package/__flow__/CharacterCounter/index.test.js +11 -11
- package/__flow__/CharacterCounter/styles.js +3 -3
- package/__flow__/ChartLegend/index.js +7 -7
- package/__flow__/ChartLegend/index.stories.js +22 -22
- package/__flow__/ChartLegend/index.test.js +27 -27
- package/__flow__/ChartLegend/styles.js +7 -7
- package/__flow__/Checkbox/index.js +10 -10
- package/__flow__/Checkbox/index.stories.js +24 -24
- package/__flow__/Checkbox/index.test.js +25 -25
- package/__flow__/Checkbox/styles.js +27 -28
- package/__flow__/Collapsible/index.js +15 -15
- package/__flow__/Collapsible/index.stories.js +13 -13
- package/__flow__/Collapsible/index.test.js +27 -27
- package/__flow__/Collapsible/styles.js +5 -5
- package/__flow__/DatePicker/DateRangePicker.js +5 -8
- package/__flow__/DatePicker/DateRangePicker.stories.js +19 -19
- package/__flow__/DatePicker/DateRangePicker.test.js +21 -21
- package/__flow__/DatePicker/SingleDatePicker.js +6 -9
- package/__flow__/DatePicker/SingleDatePicker.stories.js +10 -10
- package/__flow__/DatePicker/SingleDatePicker.test.js +21 -23
- package/__flow__/DatePicker/StatefulDateRangePicker.js +6 -6
- package/__flow__/DatePicker/StatefulSingleDatePicker.js +3 -3
- package/__flow__/DatePicker/common.js +13 -13
- package/__flow__/DatePicker/index.js +3 -3
- package/__flow__/DatePicker/styles.js +42 -42
- package/__flow__/Drawer/SlideTransition.js +10 -10
- package/__flow__/Drawer/index.js +29 -29
- package/__flow__/Drawer/index.stories.js +58 -141
- package/__flow__/Drawer/index.test.js +28 -28
- package/__flow__/Drawer/styles.js +4 -4
- package/__flow__/EmptyState/index.js +5 -5
- package/__flow__/EmptyState/index.stories.js +10 -10
- package/__flow__/EmptyState/index.test.js +27 -27
- package/__flow__/EnumIllustrationNames.js +1 -1
- package/__flow__/Fieldset/index.js +14 -14
- package/__flow__/Fieldset/index.stories.js +19 -20
- package/__flow__/Fieldset/index.test.js +14 -14
- package/__flow__/Fieldset/styles.js +5 -5
- package/__flow__/FormField/index.js +14 -14
- package/__flow__/FormField/index.stories.js +31 -21
- package/__flow__/FormField/index.test.js +19 -19
- package/__flow__/Icon/deprecatedIcons.js +36 -36
- package/__flow__/Icon/index.js +17 -17
- package/__flow__/Icon/index.stories.js +62 -29
- package/__flow__/Icon/index.test.js +15 -15
- package/__flow__/Icon/styles.js +12 -23
- package/__flow__/IllustrationViewBoxes.js +1 -1
- package/__flow__/Image/index.js +6 -7
- package/__flow__/Image/index.stories.js +5 -5
- package/__flow__/Image/index.test.js +24 -24
- package/__flow__/Image/styles.js +6 -5
- package/__flow__/Indicator/index.js +7 -7
- package/__flow__/Indicator/index.stories.js +8 -14
- package/__flow__/Indicator/index.test.js +6 -6
- package/__flow__/Indicator/styles.js +6 -6
- package/__flow__/Input/index.js +37 -37
- package/__flow__/Input/index.stories.js +96 -189
- package/__flow__/Input/index.test.js +117 -117
- package/__flow__/Input/styles.js +13 -13
- package/__flow__/KeyboardKey/index.js +5 -5
- package/__flow__/KeyboardKey/index.stories.js +9 -12
- package/__flow__/KeyboardKey/index.test.js +7 -7
- package/__flow__/KeyboardKey/styles.js +4 -4
- package/__flow__/Label/index.js +6 -6
- package/__flow__/Label/index.stories.js +5 -7
- package/__flow__/Label/index.test.js +8 -8
- package/__flow__/Link/constants.js +4 -4
- package/__flow__/Link/index.js +11 -11
- package/__flow__/Link/index.stories.js +61 -102
- package/__flow__/Link/index.test.js +40 -40
- package/__flow__/Link/styles.js +6 -6
- package/__flow__/Listbox/index.js +16 -16
- package/__flow__/Listbox/index.stories.js +35 -35
- package/__flow__/Listbox/index.test.js +63 -65
- package/__flow__/Loader/index.js +12 -12
- package/__flow__/Loader/index.stories.js +10 -10
- package/__flow__/Loader/index.test.js +17 -17
- package/__flow__/Loader/styles.js +9 -13
- package/__flow__/LoaderButton/index.js +36 -18
- package/__flow__/LoaderButton/index.stories.js +35 -7
- package/__flow__/LoaderButton/index.test.js +15 -15
- package/__flow__/Menu/__snapshots__/index.test.js.snap +0 -9
- package/__flow__/Menu/constants.js +8 -8
- package/__flow__/Menu/descendants.js +89 -80
- package/__flow__/Menu/hooks.js +22 -22
- package/__flow__/Menu/index.flow.js +13 -13
- package/__flow__/Menu/index.js +56 -60
- package/__flow__/Menu/index.stories.js +19 -19
- package/__flow__/Menu/index.test.js +22 -22
- package/__flow__/Menu/names.js +4945 -4945
- package/__flow__/Menu/styles.js +5 -5
- package/__flow__/Message/index.js +33 -33
- package/__flow__/Message/index.stories.js +18 -13
- package/__flow__/Message/index.test.js +6 -6
- package/__flow__/Message/styles.js +15 -15
- package/__flow__/Modal/index.js +19 -19
- package/__flow__/Modal/index.stories.js +43 -43
- package/__flow__/Modal/index.test.js +29 -29
- package/__flow__/Modal/styles.js +27 -32
- package/__flow__/Numeral/index.js +22 -22
- package/__flow__/Numeral/index.stories.js +74 -74
- package/__flow__/Numeral/styles.js +3 -3
- package/__flow__/Numeral/tests/A11y.test.js +7 -7
- package/__flow__/Numeral/tests/abbreviate.test.js +40 -40
- package/__flow__/Numeral/tests/currency.test.js +24 -24
- package/__flow__/Numeral/tests/defaults.test.js +20 -20
- package/__flow__/Numeral/tests/invalid.test.js +9 -9
- package/__flow__/Numeral/tests/locale.test.js +38 -38
- package/__flow__/Numeral/tests/precision.test.js +76 -76
- package/__flow__/Numeral/tests/testNumeral.js +11 -11
- package/__flow__/Numeral/tests/zero.test.js +8 -8
- package/__flow__/OverflowList/index.flow.js +2 -2
- package/__flow__/OverflowList/index.js +12 -12
- package/__flow__/OverflowList/index.stories.js +10 -10
- package/__flow__/OverflowList/index.test.js +25 -25
- package/__flow__/OverflowList/styles.js +5 -5
- package/__flow__/PartnerLogo/TypePartnerNames.js +37 -37
- package/__flow__/PartnerLogo/index.js +21 -27
- package/__flow__/PartnerLogo/index.stories.js +52 -52
- package/__flow__/PartnerLogo/styles.js +12 -24
- package/__flow__/Popout/index.js +66 -67
- package/__flow__/Popout/index.stories.js +101 -82
- package/__flow__/Popout/index.test.js +43 -43
- package/__flow__/Popout/styles.js +4 -5
- package/__flow__/Portal/index.js +9 -9
- package/__flow__/Portal/index.stories.js +12 -12
- package/__flow__/Radio/index.js +4 -4
- package/__flow__/Radio/index.stories.js +11 -11
- package/__flow__/Radio/index.test.js +12 -12
- package/__flow__/Radio/styles.js +15 -16
- package/__flow__/SegmentedControl/index.js +7 -7
- package/__flow__/SegmentedControl/index.stories.js +7 -7
- package/__flow__/SegmentedControl/index.test.js +29 -29
- package/__flow__/SegmentedControl/styles.js +10 -9
- package/__flow__/Select/index.js +10 -10
- package/__flow__/Select/index.stories.js +33 -69
- package/__flow__/Select/index.test.js +14 -14
- package/__flow__/Select/styles.js +16 -16
- package/__flow__/Skeleton/index.js +4 -4
- package/__flow__/Skeleton/index.stories.js +5 -5
- package/__flow__/SpotIllustration/illustrationNames.js +118 -117
- package/__flow__/SpotIllustration/index.js +15 -11
- package/__flow__/SpotIllustration/index.stories.js +18 -18
- package/__flow__/SpotIllustration/spotIllustrations/molecule.svg +14 -0
- package/__flow__/Stack/index.js +43 -33
- package/__flow__/Stack/index.stories.js +41 -91
- package/__flow__/Stack/index.test.js +16 -7
- package/__flow__/Switch/index.js +8 -8
- package/__flow__/Switch/index.stories.js +5 -5
- package/__flow__/Switch/index.test.js +25 -29
- package/__flow__/Switch/styles.js +13 -9
- package/__flow__/Table/index.js +17 -17
- package/__flow__/Table/index.stories.js +99 -99
- package/__flow__/Table/index.test.js +32 -32
- package/__flow__/Table/styles.js +4 -4
- package/__flow__/TableCell/index.js +8 -7
- package/__flow__/TableCell/index.stories.js +20 -23
- package/__flow__/TableCell/index.test.js +11 -11
- package/__flow__/TableCell/styles.js +4 -5
- package/__flow__/TableHeaderCell/index.js +14 -14
- package/__flow__/TableHeaderCell/index.stories.js +35 -30
- package/__flow__/TableHeaderCell/index.test.js +11 -11
- package/__flow__/TableHeaderCell/styles.js +4 -4
- package/__flow__/TableRowAccordion/index.js +8 -8
- package/__flow__/TableRowAccordion/index.stories.js +36 -36
- package/__flow__/TableRowAccordion/index.test.js +28 -30
- package/__flow__/TableRowAccordion/styles.js +11 -7
- package/__flow__/Tabs/index.js +11 -11
- package/__flow__/Tabs/index.stories.js +28 -54
- package/__flow__/Tabs/index.test.js +54 -54
- package/__flow__/Tabs/styles.js +6 -7
- package/__flow__/Text/index.js +14 -14
- package/__flow__/Text/index.stories.js +84 -86
- package/__flow__/Text/index.test.js +29 -33
- package/__flow__/Text/styles.js +4 -4
- package/__flow__/Textarea/index.js +5 -5
- package/__flow__/Textarea/index.stories.js +54 -93
- package/__flow__/Textarea/index.test.js +30 -30
- package/__flow__/Textarea/styles.js +6 -6
- package/__flow__/ThemeProvider/index.js +4 -4
- package/__flow__/Toast/index.js +23 -23
- package/__flow__/Toast/index.stories.js +21 -21
- package/__flow__/Toast/styles.js +6 -6
- package/__flow__/ToggleHint/index.js +8 -8
- package/__flow__/ToggleHint/index.test.js +8 -8
- package/__flow__/ToggleHint/styles.js +8 -8
- package/__flow__/Token/index.js +10 -10
- package/__flow__/Token/index.stories.js +49 -54
- package/__flow__/Token/index.test.js +28 -28
- package/__flow__/Token/styles.js +11 -11
- package/__flow__/TokenInput/index.flow.js +1 -1
- package/__flow__/TokenInput/index.js +39 -39
- package/__flow__/TokenInput/index.stories.js +121 -128
- package/__flow__/TokenInput/styles.js +5 -5
- package/__flow__/TokenInput/tests/default/clicking.test.js +13 -13
- package/__flow__/TokenInput/tests/default/deleting.test.js +39 -39
- package/__flow__/TokenInput/tests/default/focusing.test.js +18 -18
- package/__flow__/TokenInput/tests/default/inputting.test.js +23 -23
- package/__flow__/TokenInput/tests/default/pasting.test.js +52 -52
- package/__flow__/TokenInput/tests/default/rendering.test.js +54 -54
- package/__flow__/TokenInput/util.js +4 -4
- package/__flow__/Tooltip/index.js +21 -21
- package/__flow__/Tooltip/index.stories.js +18 -18
- package/__flow__/Tooltip/index.test.js +54 -54
- package/__flow__/Tooltip/styles.js +4 -5
- package/__flow__/VisuallyHidden/index.js +3 -3
- package/__flow__/building-stories.stories.mdx +121 -0
- package/__flow__/dataviz/dataviz.stories.js +4 -4
- package/__flow__/dataviz/index.js +3 -3
- package/__flow__/index.js +72 -72
- package/__flow__/overview.stories.js +60 -0
- package/__flow__/setupTests.js +5 -5
- package/__flow__/systemProps/background.js +3 -3
- package/__flow__/systemProps/border.js +3 -3
- package/__flow__/systemProps/color.js +3 -3
- package/__flow__/systemProps/custom.js +3 -3
- package/__flow__/systemProps/flexbox.js +3 -3
- package/__flow__/systemProps/grid.js +3 -3
- package/__flow__/systemProps/index.js +14 -14
- package/__flow__/systemProps/layout.js +3 -3
- package/__flow__/systemProps/position.js +3 -3
- package/__flow__/systemProps/shadow.js +3 -3
- package/__flow__/systemProps/space.js +3 -7
- package/__flow__/systemProps/systemProps.js +14 -14
- package/__flow__/systemProps/tests/background.test.js +17 -17
- package/__flow__/systemProps/tests/border.test.js +61 -61
- package/__flow__/systemProps/tests/color.test.js +15 -15
- package/__flow__/systemProps/tests/custom.test.js +12 -12
- package/__flow__/systemProps/tests/flexbox.test.js +33 -33
- package/__flow__/systemProps/tests/grid.test.js +31 -31
- package/__flow__/systemProps/tests/layout.test.js +29 -29
- package/__flow__/systemProps/tests/position.test.js +19 -19
- package/__flow__/systemProps/tests/shadow.test.js +11 -11
- package/__flow__/systemProps/tests/space.test.js +11 -11
- package/__flow__/systemProps/tests/types.flow.js +18 -18
- package/__flow__/systemProps/tests/typography.test.js +21 -21
- package/__flow__/systemProps/tests/variant.test.js +9 -9
- package/__flow__/systemProps/types.flow.js +2 -2
- package/__flow__/systemProps/typography.js +4 -4
- package/__flow__/systemProps/variant.js +5 -5
- package/__flow__/themes/dark/dataviz-palette.js +21 -21
- package/__flow__/themes/dark/decorative-palettes.js +1 -1
- package/__flow__/themes/dark/theme.js +18 -18
- package/__flow__/themes/extendedThemes/README.md +1 -1
- package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +16 -4
- package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
- package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +16 -4
- package/__flow__/themes/light/dataviz-palette.js +21 -21
- package/__flow__/themes/light/decorative-palettes.js +1 -1
- package/__flow__/themes/light/literal-colors.js +133 -133
- package/__flow__/themes/light/theme.js +53 -53
- package/__flow__/types/system-props.flow.js +5 -5
- package/__flow__/types/theme.colors.flow.js +2 -2
- package/__flow__/types/theme.flow.js +5 -5
- package/__flow__/utils/a11yTest.js +1 -1
- package/__flow__/utils/chartColors.js +1 -1
- package/__flow__/utils/constants.js +1 -1
- package/__flow__/utils/dataQaLabelQueries.js +2 -2
- package/__flow__/utils/hooks.js +17 -17
- package/__flow__/utils/index.js +4 -4
- package/__flow__/utils/innerText.js +9 -9
- package/__flow__/utils/mixins.js +6 -6
- package/__flow__/utils/react-testing-library.js +6 -6
- package/__flow__/utils/responsiveProps/index.js +3 -3
- package/__flow__/utils/responsiveProps/index.test.js +8 -8
- package/__flow__/utils/system-props.js +3 -3
- package/__flow__/utils/useInteractiveColor.js +5 -5
- package/__flow__/writing-good-stories.stories.mdx +3 -0
- package/bin/racine-codemod.js +12 -12
- package/codemods/__tests__/migrate-2.x-to-3.x.test.js +2 -2
- package/codemods/migrate-2.x-to-3.x.js +29 -30
- package/commonjs/Avatar/index.js +33 -53
- package/commonjs/Badge/constants.js +18 -15
- package/commonjs/Badge/index.js +14 -28
- package/commonjs/Badge/styles.js +3 -9
- package/commonjs/Banner/index.js +16 -37
- package/commonjs/Banner/styles.js +0 -5
- package/commonjs/Box/index.js +2 -9
- package/commonjs/Box/styles.js +0 -4
- package/commonjs/Breadcrumb/index.js +13 -29
- package/commonjs/Breadcrumb/styles.js +1 -4
- package/commonjs/Button/index.js +29 -43
- package/commonjs/Button/styles.js +6 -15
- package/commonjs/Card/index.js +16 -26
- package/commonjs/Card/styles.js +1 -5
- package/commonjs/CharacterCounter/index.js +6 -23
- package/commonjs/CharacterCounter/styles.js +0 -5
- package/commonjs/ChartLegend/index.js +5 -20
- package/commonjs/ChartLegend/styles.js +2 -11
- package/commonjs/Checkbox/index.js +30 -53
- package/commonjs/Checkbox/styles.js +14 -35
- package/commonjs/Collapsible/index.js +31 -54
- package/commonjs/Collapsible/styles.js +3 -6
- package/commonjs/DatePicker/DateRangePicker.js +4 -17
- package/commonjs/DatePicker/SingleDatePicker.js +3 -17
- package/commonjs/DatePicker/StatefulDateRangePicker.js +16 -31
- package/commonjs/DatePicker/StatefulSingleDatePicker.js +7 -20
- package/commonjs/DatePicker/common.js +8 -22
- package/commonjs/DatePicker/index.js +0 -5
- package/commonjs/DatePicker/styles.js +8 -25
- package/commonjs/Drawer/SlideTransition.js +8 -18
- package/commonjs/Drawer/index.js +51 -90
- package/commonjs/Drawer/styles.js +0 -8
- package/commonjs/EmptyState/index.js +8 -20
- package/commonjs/Fieldset/index.js +15 -32
- package/commonjs/Fieldset/styles.js +2 -7
- package/commonjs/FormField/index.js +19 -36
- package/commonjs/Icon/deprecatedIcons.js +36 -36
- package/commonjs/Icon/index.js +19 -37
- package/commonjs/Icon/styles.js +8 -19
- package/commonjs/IllustrationViewBoxes.js +1 -0
- package/commonjs/Image/index.js +13 -41
- package/commonjs/Image/styles.js +1 -7
- package/commonjs/Indicator/index.js +8 -26
- package/commonjs/Indicator/styles.js +1 -7
- package/commonjs/Input/index.js +80 -119
- package/commonjs/Input/styles.js +9 -19
- package/commonjs/KeyboardKey/index.js +3 -20
- package/commonjs/KeyboardKey/styles.js +0 -4
- package/commonjs/Label/index.js +7 -27
- package/commonjs/Link/constants.js +3 -4
- package/commonjs/Link/index.js +16 -28
- package/commonjs/Link/styles.js +1 -8
- package/commonjs/Listbox/index.js +15 -36
- package/commonjs/Loader/index.js +15 -31
- package/commonjs/Loader/styles.js +2 -13
- package/commonjs/LoaderButton/index.js +37 -39
- package/commonjs/Menu/constants.js +9 -8
- package/commonjs/Menu/descendants.js +70 -105
- package/commonjs/Menu/hooks.js +23 -41
- package/commonjs/Menu/index.flow.js +0 -7
- package/commonjs/Menu/index.js +94 -164
- package/commonjs/Menu/names.js +1 -1
- package/commonjs/Menu/styles.js +0 -6
- package/commonjs/Message/index.js +37 -70
- package/commonjs/Message/styles.js +9 -24
- package/commonjs/Modal/index.js +31 -54
- package/commonjs/Modal/styles.js +17 -36
- package/commonjs/Numeral/index.js +39 -67
- package/commonjs/Numeral/styles.js +0 -3
- package/commonjs/Numeral/tests/testNumeral.js +13 -31
- package/commonjs/OverflowList/index.flow.js +0 -2
- package/commonjs/OverflowList/index.js +27 -41
- package/commonjs/OverflowList/styles.js +0 -7
- package/commonjs/PartnerLogo/index.js +22 -37
- package/commonjs/PartnerLogo/styles.js +7 -17
- package/commonjs/Popout/index.js +95 -127
- package/commonjs/Popout/styles.js +0 -5
- package/commonjs/Portal/index.js +8 -31
- package/commonjs/Radio/index.js +18 -42
- package/commonjs/Radio/styles.js +9 -21
- package/commonjs/SegmentedControl/index.js +17 -37
- package/commonjs/SegmentedControl/styles.js +2 -12
- package/commonjs/Select/index.js +24 -47
- package/commonjs/Select/styles.js +12 -24
- package/commonjs/Skeleton/index.js +0 -5
- package/commonjs/SpotIllustration/illustrationNames.js +1 -1
- package/commonjs/SpotIllustration/index.js +5 -11
- package/commonjs/Stack/index.js +27 -42
- package/commonjs/Switch/index.js +17 -42
- package/commonjs/Switch/styles.js +3 -11
- package/commonjs/Table/index.js +26 -50
- package/commonjs/Table/styles.js +0 -4
- package/commonjs/TableCell/index.js +12 -30
- package/commonjs/TableCell/styles.js +0 -5
- package/commonjs/TableHeaderCell/index.js +27 -56
- package/commonjs/TableHeaderCell/styles.js +0 -6
- package/commonjs/TableRowAccordion/index.js +12 -37
- package/commonjs/TableRowAccordion/styles.js +2 -9
- package/commonjs/Tabs/index.js +16 -66
- package/commonjs/Tabs/styles.js +2 -11
- package/commonjs/Text/index.js +12 -25
- package/commonjs/Text/styles.js +1 -6
- package/commonjs/Textarea/index.js +31 -55
- package/commonjs/Textarea/styles.js +2 -9
- package/commonjs/ThemeProvider/index.js +1 -10
- package/commonjs/Toast/index.js +19 -42
- package/commonjs/Toast/styles.js +1 -7
- package/commonjs/ToggleHint/index.js +15 -39
- package/commonjs/ToggleHint/styles.js +2 -9
- package/commonjs/Token/index.js +15 -29
- package/commonjs/Token/styles.js +5 -12
- package/commonjs/TokenInput/index.js +70 -122
- package/commonjs/TokenInput/styles.js +1 -7
- package/commonjs/TokenInput/util.js +2 -7
- package/commonjs/Tooltip/index.js +40 -63
- package/commonjs/Tooltip/styles.js +1 -5
- package/commonjs/VisuallyHidden/index.js +0 -4
- package/commonjs/dataviz/index.js +0 -4
- package/commonjs/index.js +0 -129
- package/commonjs/systemProps/background.js +0 -1
- package/commonjs/systemProps/border.js +0 -1
- package/commonjs/systemProps/color.js +0 -1
- package/commonjs/systemProps/custom.js +0 -1
- package/commonjs/systemProps/flexbox.js +0 -1
- package/commonjs/systemProps/grid.js +0 -1
- package/commonjs/systemProps/index.js +0 -28
- package/commonjs/systemProps/layout.js +0 -1
- package/commonjs/systemProps/position.js +0 -1
- package/commonjs/systemProps/shadow.js +0 -1
- package/commonjs/systemProps/space.js +1 -2
- package/commonjs/systemProps/systemProps.js +0 -13
- package/commonjs/systemProps/tests/types.flow.js +25 -22
- package/commonjs/systemProps/typography.js +0 -1
- package/commonjs/systemProps/variant.js +2 -3
- package/commonjs/themes/dark/dataviz-palette.js +20 -22
- package/commonjs/themes/dark/decorative-palettes.js +0 -2
- package/commonjs/themes/dark/theme.js +15 -29
- package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +14 -9
- package/commonjs/themes/extendedThemes/sproutTheme/index.js +0 -5
- package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +14 -9
- package/commonjs/themes/light/dataviz-palette.js +20 -22
- package/commonjs/themes/light/decorative-palettes.js +0 -2
- package/commonjs/themes/light/literal-colors.js +132 -134
- package/commonjs/themes/light/theme.js +45 -61
- package/commonjs/types/system-props.flow.js +1 -1
- package/commonjs/types/theme.colors.flow.js +0 -2
- package/commonjs/types/theme.flow.js +0 -1
- package/commonjs/utils/a11yTest.js +3 -10
- package/commonjs/utils/chartColors.js +0 -1
- package/commonjs/utils/constants.js +1 -1
- package/commonjs/utils/dataQaLabelQueries.js +12 -21
- package/commonjs/utils/hooks.js +39 -70
- package/commonjs/utils/index.js +2 -9
- package/commonjs/utils/innerText.js +10 -14
- package/commonjs/utils/mixins.js +2 -7
- package/commonjs/utils/react-testing-library.js +4 -26
- package/commonjs/utils/responsiveProps/index.js +1 -11
- package/commonjs/utils/system-props.js +2 -5
- package/commonjs/utils/useInteractiveColor.js +6 -8
- package/dist/illustration.svg +1 -1
- package/dist/illustrationList.js +1 -1
- package/dist/themes/dark/theme.scss +2 -2
- package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +26 -2
- package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +26 -2
- package/dist/themes/light/theme.scss +2 -2
- package/lib/Avatar/index.js +40 -47
- package/lib/Badge/constants.js +19 -15
- package/lib/Badge/index.js +18 -25
- package/lib/Badge/styles.js +8 -6
- package/lib/Banner/index.js +20 -32
- package/lib/Banner/styles.js +3 -2
- package/lib/Box/index.js +4 -5
- package/lib/Box/styles.js +3 -2
- package/lib/Breadcrumb/index.js +19 -27
- package/lib/Breadcrumb/styles.js +3 -2
- package/lib/Button/index.js +31 -38
- package/lib/Button/styles.js +14 -11
- package/lib/Card/index.js +18 -24
- package/lib/Card/styles.js +5 -4
- package/lib/CharacterCounter/index.js +8 -20
- package/lib/CharacterCounter/styles.js +3 -2
- package/lib/ChartLegend/index.js +9 -17
- package/lib/ChartLegend/styles.js +5 -4
- package/lib/Checkbox/index.js +32 -51
- package/lib/Checkbox/styles.js +21 -26
- package/lib/Collapsible/index.js +36 -51
- package/lib/Collapsible/styles.js +6 -5
- package/lib/DatePicker/DateRangePicker.js +8 -14
- package/lib/DatePicker/SingleDatePicker.js +7 -13
- package/lib/DatePicker/StatefulDateRangePicker.js +19 -26
- package/lib/DatePicker/StatefulSingleDatePicker.js +9 -15
- package/lib/DatePicker/common.js +14 -13
- package/lib/DatePicker/index.js +2 -2
- package/lib/DatePicker/styles.js +12 -22
- package/lib/Drawer/SlideTransition.js +11 -14
- package/lib/Drawer/index.js +64 -88
- package/lib/Drawer/styles.js +4 -3
- package/lib/EmptyState/index.js +11 -17
- package/lib/Fieldset/index.js +19 -29
- package/lib/Fieldset/styles.js +5 -4
- package/lib/FormField/index.js +27 -33
- package/lib/Icon/deprecatedIcons.js +36 -36
- package/lib/Icon/index.js +25 -34
- package/lib/Icon/styles.js +12 -16
- package/lib/IllustrationViewBoxes.js +1 -0
- package/lib/Image/index.js +15 -38
- package/lib/Image/styles.js +4 -4
- package/lib/Indicator/index.js +11 -23
- package/lib/Indicator/styles.js +5 -5
- package/lib/Input/index.js +87 -115
- package/lib/Input/styles.js +13 -15
- package/lib/KeyboardKey/index.js +6 -17
- package/lib/KeyboardKey/styles.js +3 -2
- package/lib/Label/index.js +10 -24
- package/lib/Link/constants.js +5 -4
- package/lib/Link/index.js +18 -25
- package/lib/Link/styles.js +6 -5
- package/lib/Listbox/index.js +21 -29
- package/lib/Loader/index.js +17 -29
- package/lib/Loader/styles.js +6 -8
- package/lib/LoaderButton/index.js +45 -34
- package/lib/Menu/constants.js +10 -8
- package/lib/Menu/descendants.js +73 -94
- package/lib/Menu/hooks.js +28 -39
- package/lib/Menu/index.flow.js +6 -5
- package/lib/Menu/index.js +113 -150
- package/lib/Menu/names.js +1 -1
- package/lib/Menu/styles.js +4 -3
- package/lib/Message/index.js +42 -66
- package/lib/Message/styles.js +15 -23
- package/lib/Modal/index.js +38 -51
- package/lib/Modal/styles.js +23 -32
- package/lib/Numeral/index.js +45 -64
- package/lib/Numeral/styles.js +3 -2
- package/lib/Numeral/tests/testNumeral.js +17 -27
- package/lib/OverflowList/index.flow.js +2 -1
- package/lib/OverflowList/index.js +31 -38
- package/lib/OverflowList/styles.js +5 -4
- package/lib/PartnerLogo/index.js +26 -35
- package/lib/PartnerLogo/styles.js +11 -14
- package/lib/Popout/index.js +105 -121
- package/lib/Popout/styles.js +3 -3
- package/lib/Portal/index.js +11 -29
- package/lib/Radio/index.js +20 -40
- package/lib/Radio/styles.js +14 -14
- package/lib/SegmentedControl/index.js +21 -34
- package/lib/SegmentedControl/styles.js +7 -9
- package/lib/Select/index.js +27 -44
- package/lib/Select/styles.js +16 -20
- package/lib/Skeleton/index.js +7 -4
- package/lib/SpotIllustration/illustrationNames.js +2 -1
- package/lib/SpotIllustration/index.js +9 -10
- package/lib/Stack/index.js +31 -39
- package/lib/Switch/index.js +21 -39
- package/lib/Switch/styles.js +8 -7
- package/lib/Table/index.js +30 -40
- package/lib/Table/styles.js +3 -2
- package/lib/TableCell/index.js +14 -27
- package/lib/TableCell/styles.js +3 -3
- package/lib/TableHeaderCell/index.js +30 -52
- package/lib/TableHeaderCell/styles.js +3 -2
- package/lib/TableRowAccordion/index.js +16 -34
- package/lib/TableRowAccordion/styles.js +5 -3
- package/lib/Tabs/index.js +18 -63
- package/lib/Tabs/styles.js +6 -6
- package/lib/Text/index.js +15 -21
- package/lib/Text/styles.js +4 -3
- package/lib/Textarea/index.js +33 -53
- package/lib/Textarea/styles.js +6 -5
- package/lib/ThemeProvider/index.js +4 -7
- package/lib/Toast/index.js +26 -37
- package/lib/Toast/styles.js +5 -4
- package/lib/ToggleHint/index.js +18 -36
- package/lib/ToggleHint/styles.js +6 -5
- package/lib/Token/index.js +20 -26
- package/lib/Token/styles.js +10 -9
- package/lib/TokenInput/index.js +78 -118
- package/lib/TokenInput/styles.js +5 -4
- package/lib/TokenInput/util.js +5 -3
- package/lib/Tooltip/index.js +45 -60
- package/lib/Tooltip/styles.js +4 -4
- package/lib/VisuallyHidden/index.js +3 -2
- package/lib/dataviz/index.js +4 -3
- package/lib/index.js +66 -64
- package/lib/systemProps/background.js +3 -1
- package/lib/systemProps/border.js +3 -1
- package/lib/systemProps/color.js +3 -1
- package/lib/systemProps/custom.js +3 -1
- package/lib/systemProps/flexbox.js +3 -1
- package/lib/systemProps/grid.js +3 -1
- package/lib/systemProps/index.js +16 -14
- package/lib/systemProps/layout.js +3 -1
- package/lib/systemProps/position.js +3 -1
- package/lib/systemProps/shadow.js +3 -1
- package/lib/systemProps/space.js +2 -1
- package/lib/systemProps/systemProps.js +14 -13
- package/lib/systemProps/tests/types.flow.js +27 -22
- package/lib/systemProps/typography.js +3 -1
- package/lib/systemProps/variant.js +4 -3
- package/lib/themes/dark/dataviz-palette.js +23 -21
- package/lib/themes/dark/decorative-palettes.js +3 -1
- package/lib/themes/dark/theme.js +22 -25
- package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +16 -7
- package/lib/themes/extendedThemes/sproutTheme/index.js +3 -2
- package/lib/themes/extendedThemes/sproutTheme/light/theme.js +16 -7
- package/lib/themes/light/dataviz-palette.js +23 -21
- package/lib/themes/light/decorative-palettes.js +3 -1
- package/lib/themes/light/literal-colors.js +135 -133
- package/lib/themes/light/theme.js +56 -57
- package/lib/types/system-props.flow.js +1 -1
- package/lib/types/theme.colors.flow.js +4 -2
- package/lib/types/theme.flow.js +3 -2
- package/lib/utils/a11yTest.js +5 -8
- package/lib/utils/chartColors.js +3 -1
- package/lib/utils/constants.js +3 -1
- package/lib/utils/dataQaLabelQueries.js +13 -21
- package/lib/utils/hooks.js +41 -64
- package/lib/utils/index.js +2 -5
- package/lib/utils/innerText.js +12 -14
- package/lib/utils/mixins.js +6 -5
- package/lib/utils/react-testing-library.js +10 -20
- package/lib/utils/responsiveProps/index.js +3 -8
- package/lib/utils/system-props.js +4 -3
- package/lib/utils/useInteractiveColor.js +10 -9
- package/package.json +6 -13
package/lib/Menu/descendants.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
var _excluded = ["context", "element"],
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
_excluded2 = ["element"];
|
|
4
3
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
5
|
-
|
|
6
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
7
|
-
|
|
4
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8
5
|
/* eslint-disable */
|
|
9
|
-
import * as React from
|
|
10
|
-
import { createContext, useState, useLayoutEffect, useEffect, useContext, useCallback, useMemo, useRef } from
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import { createContext, useState, useLayoutEffect, useEffect, useContext, useCallback, useMemo, useRef } from 'react';
|
|
8
|
+
|
|
11
9
|
/**
|
|
12
10
|
* These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package
|
|
13
11
|
* pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to
|
|
@@ -15,13 +13,12 @@ import { createContext, useState, useLayoutEffect, useEffect, useContext, useCal
|
|
|
15
13
|
*/
|
|
16
14
|
|
|
17
15
|
var noop = function noop() {};
|
|
16
|
+
|
|
18
17
|
/**
|
|
19
18
|
* Returns the previous value of a reference after a component update.
|
|
20
19
|
*
|
|
21
20
|
* @param value
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
22
|
export function usePrevious(value) {
|
|
26
23
|
var ref = useRef(null);
|
|
27
24
|
useEffect(function () {
|
|
@@ -29,6 +26,7 @@ export function usePrevious(value) {
|
|
|
29
26
|
}, [value]);
|
|
30
27
|
return ref.current;
|
|
31
28
|
}
|
|
29
|
+
|
|
32
30
|
/**
|
|
33
31
|
* Wraps a lib-defined event handler and a user-defined event handler, returning
|
|
34
32
|
* a single handler that allows a user to prevent lib-defined handlers from
|
|
@@ -37,18 +35,16 @@ export function usePrevious(value) {
|
|
|
37
35
|
* @param theirHandler User-supplied event handler
|
|
38
36
|
* @param ourHandler Library-supplied event handler
|
|
39
37
|
*/
|
|
40
|
-
|
|
41
38
|
export function wrapEvent(theirHandler, ourHandler) {
|
|
42
39
|
return function (event) {
|
|
43
40
|
theirHandler && theirHandler(event);
|
|
44
|
-
|
|
45
41
|
if (!event.defaultPrevented) {
|
|
46
42
|
return ourHandler(event);
|
|
47
43
|
}
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
46
|
export function canUseDOM() {
|
|
51
|
-
return typeof window !==
|
|
47
|
+
return typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
|
|
52
48
|
}
|
|
53
49
|
var useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;
|
|
54
50
|
export function createNamedContext(name, defaultValue) {
|
|
@@ -60,13 +56,13 @@ export function createDescendantContext(name, initialValue) {
|
|
|
60
56
|
if (initialValue === void 0) {
|
|
61
57
|
initialValue = {};
|
|
62
58
|
}
|
|
63
|
-
|
|
64
59
|
return createNamedContext(name, _extends({
|
|
65
60
|
descendants: [],
|
|
66
61
|
registerDescendant: noop,
|
|
67
62
|
unregisterDescendant: noop
|
|
68
63
|
}, initialValue));
|
|
69
64
|
}
|
|
65
|
+
|
|
70
66
|
/**
|
|
71
67
|
* This hook registers our descendant by passing it into an array. We can then
|
|
72
68
|
* search that array by to find its index when registering it in the component.
|
|
@@ -90,21 +86,18 @@ export function createDescendantContext(name, initialValue) {
|
|
|
90
86
|
* composed descendants for keyboard navigation. However, in the few cases where
|
|
91
87
|
* this is not the case, we can require an explicit index from the app.
|
|
92
88
|
*/
|
|
93
|
-
|
|
94
89
|
export function useDescendant(_ref, indexProp) {
|
|
95
90
|
var context = _ref.context,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
element = _ref.element,
|
|
92
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
99
93
|
var _useState = useState(),
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
forceUpdate = _useState[1];
|
|
102
95
|
var _useContext = useContext(context),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
96
|
+
registerDescendant = _useContext.registerDescendant,
|
|
97
|
+
unregisterDescendant = _useContext.unregisterDescendant,
|
|
98
|
+
descendants = _useContext.descendants;
|
|
107
99
|
|
|
100
|
+
// Prevent any flashing
|
|
108
101
|
useIsomorphicLayoutEffect(function () {
|
|
109
102
|
if (!element) forceUpdate({});
|
|
110
103
|
registerDescendant(_extends({
|
|
@@ -123,21 +116,19 @@ export function useDescendants() {
|
|
|
123
116
|
}
|
|
124
117
|
export function DescendantProvider(_ref2) {
|
|
125
118
|
var Ctx = _ref2.context,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
children = _ref2.children,
|
|
120
|
+
items = _ref2.items,
|
|
121
|
+
set = _ref2.set;
|
|
129
122
|
var registerDescendant = useCallback(function (_ref3) {
|
|
130
123
|
var element = _ref3.element,
|
|
131
|
-
|
|
132
|
-
|
|
124
|
+
rest = _objectWithoutPropertiesLoose(_ref3, _excluded2);
|
|
133
125
|
if (!element) {
|
|
134
126
|
return;
|
|
135
127
|
}
|
|
136
|
-
|
|
137
128
|
set(function (items) {
|
|
138
129
|
var newItem;
|
|
139
|
-
var newItems;
|
|
140
|
-
|
|
130
|
+
var newItems;
|
|
131
|
+
// If there are no items, register at index 0 and bail.
|
|
141
132
|
if (items.length === 0) {
|
|
142
133
|
newItem = _extends({
|
|
143
134
|
element: element,
|
|
@@ -165,33 +156,33 @@ export function DescendantProvider(_ref2) {
|
|
|
165
156
|
var index = items.findIndex(function (item) {
|
|
166
157
|
if (!item.element || !element) {
|
|
167
158
|
return false;
|
|
168
|
-
}
|
|
159
|
+
}
|
|
160
|
+
// Does this element's DOM node appear before another item in the
|
|
169
161
|
// array in our DOM tree? If so, return true to grab the index at
|
|
170
162
|
// this point in the array so we know where to insert the new
|
|
171
163
|
// element.
|
|
172
|
-
|
|
173
|
-
|
|
174
164
|
return Boolean(item.element.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_PRECEDING);
|
|
175
165
|
});
|
|
176
166
|
newItem = _extends({
|
|
177
167
|
element: element,
|
|
178
168
|
index: index
|
|
179
|
-
}, rest);
|
|
169
|
+
}, rest);
|
|
180
170
|
|
|
171
|
+
// If an index is not found we will push the element to the end.
|
|
181
172
|
if (index === -1) {
|
|
182
173
|
newItems = [].concat(items, [newItem]);
|
|
183
174
|
} else {
|
|
184
175
|
newItems = [].concat(items.slice(0, index), [newItem], items.slice(index));
|
|
185
176
|
}
|
|
186
177
|
}
|
|
187
|
-
|
|
188
178
|
return newItems.map(function (item, index) {
|
|
189
179
|
return _extends({}, item, {
|
|
190
180
|
index: index
|
|
191
181
|
});
|
|
192
182
|
});
|
|
193
183
|
});
|
|
194
|
-
},
|
|
184
|
+
},
|
|
185
|
+
// set is a state setter initialized by the useDescendants hook.
|
|
195
186
|
// We can safely ignore the lint warning here because it will not change
|
|
196
187
|
// between renders.
|
|
197
188
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -200,13 +191,17 @@ export function DescendantProvider(_ref2) {
|
|
|
200
191
|
if (!element) {
|
|
201
192
|
return;
|
|
202
193
|
}
|
|
203
|
-
|
|
204
194
|
set(function (items) {
|
|
205
195
|
return items.filter(function (item) {
|
|
206
196
|
return element !== item.element;
|
|
197
|
+
}).map(function (item, index) {
|
|
198
|
+
return _extends({}, item, {
|
|
199
|
+
index: index
|
|
200
|
+
});
|
|
207
201
|
});
|
|
208
202
|
});
|
|
209
|
-
},
|
|
203
|
+
},
|
|
204
|
+
// set is a state setter initialized by the useDescendants hook.
|
|
210
205
|
// We can safely ignore the lint warning here because it will not change
|
|
211
206
|
// between renders.
|
|
212
207
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -224,118 +219,102 @@ export function DescendantProvider(_ref2) {
|
|
|
224
219
|
}
|
|
225
220
|
export function useDescendantKeyDown(context, options) {
|
|
226
221
|
var _useContext2 = useContext(context),
|
|
227
|
-
|
|
228
|
-
|
|
222
|
+
descendants = _useContext2.descendants;
|
|
229
223
|
var callback = options.callback,
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
224
|
+
currentIndex = options.currentIndex,
|
|
225
|
+
filter = options.filter,
|
|
226
|
+
_options$key = options.key,
|
|
227
|
+
key = _options$key === void 0 ? 'index' : _options$key,
|
|
228
|
+
_options$orientation = options.orientation,
|
|
229
|
+
orientation = _options$orientation === void 0 ? 'vertical' : _options$orientation,
|
|
230
|
+
_options$rotate = options.rotate,
|
|
231
|
+
rotate = _options$rotate === void 0 ? true : _options$rotate,
|
|
232
|
+
_options$rtl = options.rtl,
|
|
233
|
+
rtl = _options$rtl === void 0 ? false : _options$rtl;
|
|
240
234
|
var index = currentIndex ? currentIndex : -1;
|
|
241
235
|
return function handleKeyDown(event) {
|
|
242
|
-
if (![
|
|
236
|
+
if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'PageUp', 'PageDown', 'Home', 'End'].includes(event.key)) {
|
|
243
237
|
return;
|
|
244
|
-
}
|
|
245
|
-
// so that filtered descendent elements aren't selected.
|
|
238
|
+
}
|
|
246
239
|
|
|
240
|
+
// If we use a filter function, we need to re-index our descendants array
|
|
241
|
+
// so that filtered descendent elements aren't selected.
|
|
242
|
+
var selectableDescendants = filter ? descendants.filter(filter) : descendants;
|
|
247
243
|
|
|
248
|
-
|
|
244
|
+
// Current index should map to the updated array vs. the original
|
|
249
245
|
// descendants array.
|
|
250
|
-
|
|
251
246
|
if (filter) {
|
|
252
247
|
index = selectableDescendants.findIndex(function (descendant) {
|
|
253
248
|
return descendant.index === currentIndex;
|
|
254
249
|
});
|
|
255
|
-
}
|
|
256
|
-
|
|
250
|
+
}
|
|
257
251
|
|
|
252
|
+
// We need some options for any of this to work!
|
|
258
253
|
if (!selectableDescendants.length) {
|
|
259
254
|
return;
|
|
260
255
|
}
|
|
261
|
-
|
|
262
256
|
function getNextOption() {
|
|
263
257
|
var atBottom = index === selectableDescendants.length - 1;
|
|
264
258
|
return atBottom ? rotate ? getFirstOption() : selectableDescendants[index] : selectableDescendants[(index + 1) % selectableDescendants.length];
|
|
265
259
|
}
|
|
266
|
-
|
|
267
260
|
function getPreviousOption() {
|
|
268
261
|
var atTop = index === 0;
|
|
269
262
|
return atTop ? rotate ? getLastOption() : selectableDescendants[index] : selectableDescendants[(index - 1 + selectableDescendants.length) % selectableDescendants.length];
|
|
270
263
|
}
|
|
271
|
-
|
|
272
264
|
function getFirstOption() {
|
|
273
265
|
return selectableDescendants[0];
|
|
274
266
|
}
|
|
275
|
-
|
|
276
267
|
function getLastOption() {
|
|
277
268
|
return selectableDescendants[selectableDescendants.length - 1];
|
|
278
269
|
}
|
|
279
|
-
|
|
280
270
|
switch (event.key) {
|
|
281
|
-
case
|
|
282
|
-
if (orientation ===
|
|
271
|
+
case 'ArrowDown':
|
|
272
|
+
if (orientation === 'vertical' || orientation === 'both') {
|
|
283
273
|
event.preventDefault();
|
|
284
274
|
var next = getNextOption();
|
|
285
|
-
callback(key ===
|
|
275
|
+
callback(key === 'option' ? next : next[key]);
|
|
286
276
|
}
|
|
287
|
-
|
|
288
277
|
break;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
if (orientation === "vertical" || orientation === "both") {
|
|
278
|
+
case 'ArrowUp':
|
|
279
|
+
if (orientation === 'vertical' || orientation === 'both') {
|
|
292
280
|
event.preventDefault();
|
|
293
281
|
var prev = getPreviousOption();
|
|
294
|
-
callback(key ===
|
|
282
|
+
callback(key === 'option' ? prev : prev[key]);
|
|
295
283
|
}
|
|
296
|
-
|
|
297
284
|
break;
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (orientation === "horizontal" || orientation === "both") {
|
|
285
|
+
case 'ArrowLeft':
|
|
286
|
+
if (orientation === 'horizontal' || orientation === 'both') {
|
|
301
287
|
event.preventDefault();
|
|
302
288
|
var nextOrPrev = (rtl ? getNextOption : getPreviousOption)();
|
|
303
|
-
callback(key ===
|
|
289
|
+
callback(key === 'option' ? nextOrPrev : nextOrPrev[key]);
|
|
304
290
|
}
|
|
305
|
-
|
|
306
291
|
break;
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
if (orientation === "horizontal" || orientation === "both") {
|
|
292
|
+
case 'ArrowRight':
|
|
293
|
+
if (orientation === 'horizontal' || orientation === 'both') {
|
|
310
294
|
event.preventDefault();
|
|
311
295
|
var prevOrNext = (rtl ? getPreviousOption : getNextOption)();
|
|
312
|
-
callback(key ===
|
|
296
|
+
callback(key === 'option' ? prevOrNext : prevOrNext[key]);
|
|
313
297
|
}
|
|
314
|
-
|
|
315
298
|
break;
|
|
316
|
-
|
|
317
|
-
case "PageUp":
|
|
299
|
+
case 'PageUp':
|
|
318
300
|
event.preventDefault();
|
|
319
301
|
var prevOrFirst = (event.ctrlKey ? getPreviousOption : getFirstOption)();
|
|
320
|
-
callback(key ===
|
|
302
|
+
callback(key === 'option' ? prevOrFirst : prevOrFirst[key]);
|
|
321
303
|
break;
|
|
322
|
-
|
|
323
|
-
case "Home":
|
|
304
|
+
case 'Home':
|
|
324
305
|
event.preventDefault();
|
|
325
306
|
var first = getFirstOption();
|
|
326
|
-
callback(key ===
|
|
307
|
+
callback(key === 'option' ? first : first[key]);
|
|
327
308
|
break;
|
|
328
|
-
|
|
329
|
-
case "PageDown":
|
|
309
|
+
case 'PageDown':
|
|
330
310
|
event.preventDefault();
|
|
331
311
|
var nextOrLast = (event.ctrlKey ? getNextOption : getLastOption)();
|
|
332
|
-
callback(key ===
|
|
312
|
+
callback(key === 'option' ? nextOrLast : nextOrLast[key]);
|
|
333
313
|
break;
|
|
334
|
-
|
|
335
|
-
case "End":
|
|
314
|
+
case 'End':
|
|
336
315
|
event.preventDefault();
|
|
337
316
|
var last = getLastOption();
|
|
338
|
-
callback(key ===
|
|
317
|
+
callback(key === 'option' ? last : last[key]);
|
|
339
318
|
break;
|
|
340
319
|
}
|
|
341
320
|
};
|
package/lib/Menu/hooks.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
|
|
2
|
+
import { createContext, useContext, useEffect } from 'react';
|
|
3
|
+
import scrollIntoViewIfNeeded from 'scroll-into-view-if-needed';
|
|
4
|
+
import { MENU_ROLES } from './constants';
|
|
5
|
+
import { createDescendantContext, useDescendantKeyDown, usePrevious, wrapEvent } from './descendants';
|
|
5
6
|
export var MenuContext = /*#__PURE__*/createContext({
|
|
6
7
|
role: MENU_ROLES.MENU,
|
|
7
8
|
menuRef: {
|
|
@@ -12,7 +13,7 @@ export var MenuContext = /*#__PURE__*/createContext({
|
|
|
12
13
|
onChange: undefined,
|
|
13
14
|
state: {
|
|
14
15
|
selectionIndex: 0,
|
|
15
|
-
filterQuery:
|
|
16
|
+
filterQuery: '',
|
|
16
17
|
filteredItems: null,
|
|
17
18
|
isFilterInputFocused: false
|
|
18
19
|
},
|
|
@@ -25,51 +26,45 @@ export var MenuButtonContext = /*#__PURE__*/createContext({
|
|
|
25
26
|
closeOnItemClick: undefined,
|
|
26
27
|
closePopout: undefined
|
|
27
28
|
});
|
|
28
|
-
export var MenuDescendantContext = createDescendantContext(
|
|
29
|
+
export var MenuDescendantContext = createDescendantContext('MenuDescendantContext');
|
|
30
|
+
|
|
29
31
|
/**
|
|
30
32
|
* When a user's typed input matches the string displayed in a menu item, it is
|
|
31
33
|
* expected that the matching menu item is selected. This is our matching
|
|
32
34
|
* function.
|
|
33
35
|
*/
|
|
34
|
-
|
|
35
36
|
function filterItemsFromTypeahead(items, string) {
|
|
36
37
|
if (string === void 0) {
|
|
37
|
-
string =
|
|
38
|
+
string = '';
|
|
38
39
|
}
|
|
39
|
-
|
|
40
40
|
if (!string) {
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
43
|
return items.filter(function (_ref) {
|
|
45
44
|
var value = _ref.value,
|
|
46
|
-
|
|
45
|
+
label = _ref.label;
|
|
47
46
|
return (value == null ? void 0 : value.toLowerCase().includes(string.toLocaleLowerCase())) || (label == null ? void 0 : label.toLowerCase().includes(string.toLocaleLowerCase()));
|
|
48
47
|
}).map(function (_ref2) {
|
|
49
48
|
var index = _ref2.index;
|
|
50
49
|
return index;
|
|
51
50
|
});
|
|
52
51
|
}
|
|
53
|
-
|
|
54
52
|
export function useMenuKeyDown() {
|
|
55
53
|
var _useContext = useContext(MenuContext),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
54
|
+
onChange = _useContext.onChange,
|
|
55
|
+
selectCallbacks = _useContext.selectCallbacks,
|
|
56
|
+
setState = _useContext.setState,
|
|
57
|
+
multiselect = _useContext.multiselect,
|
|
58
|
+
_useContext$state = _useContext.state,
|
|
59
|
+
filterQuery = _useContext$state.filterQuery,
|
|
60
|
+
selectionIndex = _useContext$state.selectionIndex,
|
|
61
|
+
filteredItems = _useContext$state.filteredItems,
|
|
62
|
+
isFilterInputFocused = _useContext$state.isFilterInputFocused;
|
|
66
63
|
var _useContext2 = useContext(MenuButtonContext),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
closePopout = _useContext2.closePopout,
|
|
65
|
+
closeOnItemClick = _useContext2.closeOnItemClick;
|
|
70
66
|
var _useContext3 = useContext(MenuDescendantContext),
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
items = _useContext3.descendants;
|
|
73
68
|
var shouldClosePopout = closeOnItemClick && !multiselect;
|
|
74
69
|
var prevMenuItemsLength = usePrevious(items.length);
|
|
75
70
|
var prevSelected = usePrevious(items[selectionIndex]);
|
|
@@ -82,7 +77,8 @@ export function useMenuKeyDown() {
|
|
|
82
77
|
setState({
|
|
83
78
|
selectionIndex: items.length - 1
|
|
84
79
|
});
|
|
85
|
-
} else if (
|
|
80
|
+
} else if (
|
|
81
|
+
// Checks if
|
|
86
82
|
// - menu length has changed
|
|
87
83
|
// - selection index has not changed BUT selected item has changed
|
|
88
84
|
//
|
|
@@ -98,7 +94,6 @@ export function useMenuKeyDown() {
|
|
|
98
94
|
}, [setState, items, prevMenuItemsLength, prevSelected, prevSelectionIndex, selectionIndex]);
|
|
99
95
|
useEffect(function () {
|
|
100
96
|
var newFilteredItems = filterItemsFromTypeahead(items, filterQuery);
|
|
101
|
-
|
|
102
97
|
if (filterQuery && newFilteredItems && (filteredItems == null ? void 0 : filteredItems.length) !== (newFilteredItems == null ? void 0 : newFilteredItems.length)) {
|
|
103
98
|
setState({
|
|
104
99
|
filteredItems: newFilteredItems,
|
|
@@ -118,19 +113,15 @@ export function useMenuKeyDown() {
|
|
|
118
113
|
activeDescendent: items[selectionIndex],
|
|
119
114
|
handleKeyDown: wrapEvent(function (event) {
|
|
120
115
|
var key = event.key;
|
|
121
|
-
|
|
122
116
|
switch (key) {
|
|
123
|
-
case
|
|
117
|
+
case ' ':
|
|
124
118
|
if (isFilterInputFocused) {
|
|
125
119
|
return;
|
|
126
120
|
}
|
|
127
|
-
|
|
128
121
|
// falls through
|
|
129
122
|
// eslint-disable-next-line no-fallthrough
|
|
130
|
-
|
|
131
|
-
case "Enter":
|
|
123
|
+
case 'Enter':
|
|
132
124
|
var selected = items[selectionIndex];
|
|
133
|
-
|
|
134
125
|
if (selected) {
|
|
135
126
|
event.preventDefault();
|
|
136
127
|
var func = selectCallbacks.current[selected.index];
|
|
@@ -138,16 +129,14 @@ export function useMenuKeyDown() {
|
|
|
138
129
|
onChange && selected.value && onChange(selected.value);
|
|
139
130
|
shouldClosePopout && closePopout && closePopout();
|
|
140
131
|
}
|
|
141
|
-
|
|
142
132
|
return;
|
|
143
|
-
|
|
144
133
|
default:
|
|
145
134
|
return;
|
|
146
135
|
}
|
|
147
136
|
}, useDescendantKeyDown(MenuDescendantContext, {
|
|
148
137
|
currentIndex: index,
|
|
149
|
-
orientation:
|
|
150
|
-
key:
|
|
138
|
+
orientation: 'vertical',
|
|
139
|
+
key: 'option',
|
|
151
140
|
rotate: true,
|
|
152
141
|
filter: function filter(option) {
|
|
153
142
|
return !option.disabled && (!filteredItems || filteredItems.includes(option.index));
|
package/lib/Menu/index.flow.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import Box from '../Box';
|
|
4
|
+
import Button from '../Button';
|
|
5
|
+
import Popout from '../Popout';
|
|
6
|
+
import { MENU_ITEM_ROLES, MENU_ROLES } from './constants';
|