@sproutsocial/racine 12.20.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 +20 -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 +30 -30
- package/__flow__/Icon/index.test.js +15 -15
- package/__flow__/Icon/styles.js +12 -12
- 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 +25 -25
- package/__flow__/LoaderButton/index.stories.js +7 -7
- package/__flow__/LoaderButton/index.test.js +15 -15
- 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 +20 -20
- package/__flow__/PartnerLogo/index.stories.js +52 -52
- package/__flow__/PartnerLogo/styles.js +12 -12
- 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 +16 -16
- package/__flow__/themes/extendedThemes/README.md +1 -1
- package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +4 -4
- package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
- package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +4 -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 +51 -51
- 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 +7 -16
- 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 +26 -55
- 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 +19 -33
- package/commonjs/PartnerLogo/styles.js +7 -15
- 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 +13 -27
- package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +2 -9
- package/commonjs/themes/extendedThemes/sproutTheme/index.js +0 -5
- package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +2 -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 +43 -59
- 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/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 +11 -13
- 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 +34 -51
- 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 +23 -31
- package/lib/PartnerLogo/styles.js +11 -12
- 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 +20 -23
- package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +4 -7
- package/lib/themes/extendedThemes/sproutTheme/index.js +3 -2
- package/lib/themes/extendedThemes/sproutTheme/light/theme.js +4 -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 +54 -55
- 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 12.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ae9f649c: This change includes infrastructure changes to :
|
|
8
|
+
|
|
9
|
+
- Storybook and dependency version bumps
|
|
10
|
+
- Removal of deprecated Storybook `add-on knobs` in favor of supported `add-on controls`
|
|
11
|
+
- Added system prop types to Stack and TableCell
|
|
12
|
+
- We are now exporting `TypeProps` for Banner, Box, CharacterCounter, Drawer, FormField, Indicator, Input, KeyboardKey, Link, Select, Stack, TableHeaderCell, Text, TextArea, and TokenInput
|
|
13
|
+
|
|
14
|
+
- ae9f649c: This change adds a molecule spot illustration to the SpotIllustration component
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- ae9f649c: Updated a number of depencies to ensure Racine tech is on the latest versions
|
|
19
|
+
- ae9f649c: An accessibility bug on the `Menu` has been fixed that caused the `Menu.Item` index to become out of sync when items are removed.
|
|
20
|
+
|
|
21
|
+
The `Menu` component currently supports adding and removing menu items dynamically, but an index needed for accessibility was only being updated when items are added but not when they are removed.
|
|
22
|
+
|
|
3
23
|
## 12.20.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -19,21 +19,21 @@
|
|
|
19
19
|
<a href="https://github.com/sproutsocial/racine/blob/main/LICENSE"><img src="https://flat.badgen.net/badge/license/MIT/blue" alt=""></a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
-
---
|
|
22
|
+
---
|
|
23
23
|
|
|
24
24
|
## Installation
|
|
25
25
|
|
|
26
|
-
To work on Racine, you will need to set up your environment to use Artifactory.
|
|
26
|
+
To work on Racine, you will need to set up your environment to use Artifactory.
|
|
27
27
|
|
|
28
|
-
Follow the instructions to do so [on the wiki](https://sprout.atlassian.net/wiki/spaces/INFRA/pages/3380249272/Getting+started+with+Artifactory+for+NPM+Yarn.).
|
|
28
|
+
Follow the instructions to do so [on the wiki](https://sprout.atlassian.net/wiki/spaces/INFRA/pages/3380249272/Getting+started+with+Artifactory+for+NPM+Yarn.).
|
|
29
29
|
|
|
30
30
|
Then, copy the `_auth` and `email` settings in your `$HOME/.npmrc` into environmental variables in your shell's rc file (e.g. `$HOME/.zshrc` or `$HOME/.bashrc`), then re-`source` your rc file.
|
|
31
|
+
|
|
31
32
|
```shell
|
|
32
33
|
export JFROG_AUTH="_auth string goes here"
|
|
33
34
|
export JFROG_EMAIL="email string goes here"
|
|
34
35
|
```
|
|
35
36
|
|
|
36
|
-
|
|
37
37
|
Install Racine using npm or yarn:
|
|
38
38
|
|
|
39
39
|
```sh
|
|
@@ -62,13 +62,13 @@ styled-components
|
|
|
62
62
|
Then, wrap your app's React root in Racine's `ThemeProvider` component:
|
|
63
63
|
|
|
64
64
|
```js
|
|
65
|
-
import {
|
|
65
|
+
import {ThemeProvider} from '@sproutsocial/racine';
|
|
66
66
|
|
|
67
|
-
const App = props => (
|
|
67
|
+
const App = (props) => (
|
|
68
68
|
<ThemeProvider>
|
|
69
69
|
<div>your app here</div>
|
|
70
70
|
</ThemeProvider>
|
|
71
|
-
)
|
|
71
|
+
);
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
## Documentation
|
|
@@ -84,10 +84,12 @@ Racine uses [Storybook](https://storybook.js.org) for local development. Here's
|
|
|
84
84
|
1. Clone this repo: `git clone https://github.com/sproutsocial/racine`
|
|
85
85
|
2. Follow these instructions to configure Artifactory for dependencies: https://sprout.atlassian.net/wiki/spaces/INFRA/pages/3380249272/Getting+started+with+Artifactory+for+NPM+Yarn
|
|
86
86
|
3. Copy the `_auth` and `email` settings in your `$HOME/.npmrc` into environmental variables in your shell's rc file (e.g. `$HOME/.zshrc` or `$HOME/.bashrc`), then re-`source` your rc file.
|
|
87
|
+
|
|
87
88
|
```shell
|
|
88
89
|
export JFROG_AUTH="_auth string goes here"
|
|
89
90
|
export JFROG_EMAIL="email string goes here"
|
|
90
91
|
```
|
|
92
|
+
|
|
91
93
|
4. Install dependencies: `yarn`
|
|
92
94
|
5. Run the dev app: `yarn start`
|
|
93
95
|
|
|
@@ -100,43 +102,43 @@ Test any local package in another project by utilizing [yarn link](https://yarnp
|
|
|
100
102
|
|
|
101
103
|
1. Navigate to your local copy of Racine in a terminal window
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
```shell
|
|
106
|
+
$ cd ~/YourCodeFolder/racine
|
|
107
|
+
$ yarn link # only needs to be run once
|
|
108
|
+
$ yarn start
|
|
109
|
+
```
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
**Note**: This build task packages _all_ Racine components into the bundle, not just the specific components you are adding or modifying. After `yarn link` succeeds and Racine is globally linked, you shouldn't have to run link again.
|
|
110
112
|
|
|
111
113
|
2. Navigate to the folder you wish to use Racine components in your terminal (such as `web-app-core`) and complete the link
|
|
112
114
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
```shell
|
|
116
|
+
$ cd ~/YourCodeFolder/web-app-core
|
|
117
|
+
$ yarn link "@sproutsocial/racine"
|
|
118
|
+
$ yarn start
|
|
119
|
+
```
|
|
118
120
|
|
|
119
121
|
3. You can now use any components from your local instance of Racine in your project. See below for an example usage
|
|
120
122
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
```jsx
|
|
124
|
+
/* ~/YourCodeFolder/web-app-core/YourFile.js */
|
|
125
|
+
import {Icon} from '@sproutsocial/racine';
|
|
126
|
+
// ...
|
|
127
|
+
<Icon name="compose" />;
|
|
128
|
+
```
|
|
127
129
|
|
|
128
130
|
4. **When you are done, be sure to unlink Racine so you are using the app's version of the package**
|
|
129
131
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
```
|
|
133
|
+
$ yarn unlink "@sproutsocial/racine"
|
|
134
|
+
$ yarn
|
|
135
|
+
```
|
|
134
136
|
|
|
135
137
|
</details>
|
|
136
138
|
|
|
137
|
-
## Contributing
|
|
139
|
+
## Contributing
|
|
138
140
|
|
|
139
|
-
The Design Systems team works on a regular two-week sprint cadence to iterate against Racine's roadmap and assist in any ad-hoc issues that may come up. That said, contributions to Racine are welcomed from any member of the wider Sprout org. Whether you're adding a new component or simply fixing a bug, every improvement to the library is future leverage for our peers, our product, and our customers.
|
|
141
|
+
The Design Systems team works on a regular two-week sprint cadence to iterate against Racine's roadmap and assist in any ad-hoc issues that may come up. That said, contributions to Racine are welcomed from any member of the wider Sprout org. Whether you're adding a new component or simply fixing a bug, every improvement to the library is future leverage for our peers, our product, and our customers.
|
|
140
142
|
|
|
141
143
|
### **🔍 Step 1: Find a way to contribute**
|
|
142
144
|
|
|
@@ -150,22 +152,22 @@ There are a few ways to get involved:
|
|
|
150
152
|
|
|
151
153
|
Racine's file structure is set up like this:
|
|
152
154
|
|
|
153
|
-
- `codemods` - For major updates to Racine that have breaking changes, codemods are included for automatically handling component API updates.
|
|
155
|
+
- `codemods` - For major updates to Racine that have breaking changes, codemods are included for automatically handling component API updates.
|
|
154
156
|
- `src`
|
|
155
157
|
- `ComponentName` - Every component in Racine has a folder within the `src` directory.
|
|
156
158
|
- `index.js` - This file should export the component as its default export.
|
|
157
159
|
- `index.stories.js` - Storybook stories can be written here.
|
|
158
160
|
- `index.test.js` - All component tests live inside this file.
|
|
159
161
|
- `styles.js` - Any style-specific components live here.
|
|
160
|
-
- `utils` - This directory includes a set of common utilities and helpers that we use throughout Racine.
|
|
162
|
+
- `utils` - This directory includes a set of common utilities and helpers that we use throughout Racine.
|
|
161
163
|
|
|
162
|
-
And you can interact with Racine via the command line with these commands:
|
|
164
|
+
And you can interact with Racine via the command line with these commands:
|
|
163
165
|
|
|
164
|
-
- `yarn new` - This command will prompt you for the name of your component, and then generate all of the boilerplate you need to create the component.
|
|
166
|
+
- `yarn new` - This command will prompt you for the name of your component, and then generate all of the boilerplate you need to create the component.
|
|
165
167
|
- `yarn start` - This will watch the Racine package for changes, and also run Storybook locally so that you can see your changes as you go.
|
|
166
168
|
- `yarn change` - This command will generate a changeset file that is used to document changes to the Racine package. If you are making a PR to Racine that should result in a version bump to the package, you will need to run this command to add a changeset. You can [learn more about this command](#-step-3-make-your-changes) in step 3.
|
|
167
|
-
- `yarn build` - Generate production builds for the Racine package.
|
|
168
|
-
- `yarn test` - Run Racine's test suite.
|
|
169
|
+
- `yarn build` - Generate production builds for the Racine package.
|
|
170
|
+
- `yarn test` - Run Racine's test suite. **Note:** `yarn start` must be run before `yarn test` to build generated files and directories
|
|
169
171
|
- `yarn clean` - Delete all generated files and directories.
|
|
170
172
|
- `yarn release` - This will trigger the release process for creating a new version of the Racine package on npm. **Only Racine administrators can perform the release process.**
|
|
171
173
|
|
|
@@ -175,9 +177,9 @@ If you're not a member of the Design Systems team, you'll want to start by creat
|
|
|
175
177
|
|
|
176
178
|
If you are a member of the Design Systems team you'll have write access to `sproutsocial/racine`, which means you can branch directly off `dev` and start working. Either way, once you've got your new feature branch feel free to start coding! As updates are merged into `dev` on `sproutsocial/racine` by other developers over time you'll want to pull those updates into your feature branch, ideally via rebase, to avoid any conflicts when you open a pull request.
|
|
177
179
|
|
|
178
|
-
|
|
180
|
+
_Need to make an urgent update? Branch off `main` instead of dev, and open your PR later against `main`. We consider this a hotfix and only support it for critical time-sensitive updates, so check with the Design Systems team prior to making this kind of contribution._
|
|
179
181
|
|
|
180
|
-
As you develop you'll want to track the scope of the changes you make. Racine supports this with a tool called [changesets](https://github.com/atlassian/changesets) to automatically pick new version numbers and update the changelog whenever we publish a new version of the package.
|
|
182
|
+
As you develop you'll want to track the scope of the changes you make. Racine supports this with a tool called [changesets](https://github.com/atlassian/changesets) to automatically pick new version numbers and update the changelog whenever we publish a new version of the package.
|
|
181
183
|
|
|
182
184
|
**Run `yarn change` to generate a changeset that will be used to derive the next version number for Racine from your changes.**
|
|
183
185
|
|
|
@@ -187,7 +189,7 @@ When running this command, you will be asked to select whether your change is a
|
|
|
187
189
|
|
|
188
190
|
- **patch** changes are for bug fixes, and they bump the last digit in the version number (`x.x.0`)
|
|
189
191
|
- **minor** changes are for new features or improvements, and they bump the middle digit in the version number (`x.0.x`)
|
|
190
|
-
- **major** changes are
|
|
192
|
+
- **major** changes are _breaking changes_, and they bump the first digit (`0.x.x`). These types of changes are rare and should be coordinated in advance with the Design Systems team.
|
|
191
193
|
|
|
192
194
|
The changeset CLI will also ask you to input a message detailing your changes. The completion of the command will generate a new changeset markdown file. You are more than welcome to edit this file after it has been generated, so don't get hung up on trying to write the perfect text from the command line. Aim to make the text of the changeset file(s) as descriptive and informative as possible, as they will be used to build a changelog file when the new version is released.
|
|
193
195
|
|
|
@@ -197,18 +199,18 @@ The changeset CLI will also ask you to input a message detailing your changes. T
|
|
|
197
199
|
|
|
198
200
|
Once you're ready to submit your changes for review, open a PR against the `dev` branch in `sproutsocial/racine`. A few things will happen:
|
|
199
201
|
|
|
200
|
-
- The Racine maintainers will be tagged to review your code. Feel free to tag any specific individuals who you think should take a look.
|
|
201
|
-
- Racine's test suite will be ran on CI, and the status will be reported on the PR. You can run `yarn test` to run these tests locally. If there are any issues, they will need to be resolved before the PR can be merged.
|
|
202
|
+
- The Racine maintainers will be tagged to review your code. Feel free to tag any specific individuals who you think should take a look.
|
|
203
|
+
- Racine's test suite will be ran on CI, and the status will be reported on the PR. You can run `yarn test` to run these tests locally. If there are any issues, they will need to be resolved before the PR can be merged.
|
|
202
204
|
- If you're a member of the Design Systems team: Netlify will create a preview deploy of Racine's Storybook so that you can see your changes and share them with others. Due to limited Netlify seats only a limited group of developers can generate builds.
|
|
203
205
|
|
|
204
|
-
You may be asked to make changes to match Racine's contribution guidelines, so expect to keep attention on your PR for a little bit.
|
|
206
|
+
You may be asked to make changes to match Racine's contribution guidelines, so expect to keep attention on your PR for a little bit. Once your tests are passing and you have at least one approving Design Systems review, a member of the Design Systems team will merge your changes for inclusion in a future release of Racine!
|
|
205
207
|
|
|
206
208
|
### **☁️ Step 5: Publish your changes to npm**
|
|
207
209
|
|
|
208
210
|
As PRs get merged into Racine, changsets will keep a running PR open called `Version Packages`. This PR will detail all of the changes that have been made to the package since the last publish. **Anyone can release a new version of Racine by merging this PR.**
|
|
209
211
|
|
|
210
|
-
When the PR is merged, [GitHub will kick off a publish of the new version](https://github.com/sproutsocial/racine/actions?query=workflow%3ARelease). There will be a notification in #eng-ui-systems in Slack when the new version is available.
|
|
212
|
+
When the PR is merged, [GitHub will kick off a publish of the new version](https://github.com/sproutsocial/racine/actions?query=workflow%3ARelease). There will be a notification in #eng-ui-systems in Slack when the new version is available.
|
|
211
213
|
|
|
212
214
|
### **✍ Step 6: Document your changes**
|
|
213
215
|
|
|
214
|
-
Racine components are documented in [Seeds](https://sproutsocial.com/seeds/components), Sprout's design system. You can open a PR to the [Seeds repository](https://github.com/sproutsocial/seeds) to add or edit component documentation. Reach out to the Design Systems team for help getting started.
|
|
216
|
+
Racine components are documented in [Seeds](https://sproutsocial.com/seeds/components), Sprout's design system. You can open a PR to the [Seeds repository](https://github.com/sproutsocial/seeds) to add or edit component documentation. Reach out to the Design Systems team for help getting started.
|
package/__flow__/Avatar/index.js
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import * as React from
|
|
3
|
-
import {
|
|
4
|
-
import styled, {
|
|
5
|
-
import classnames from
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import {useState, useCallback, useMemo, memo} from 'react';
|
|
4
|
+
import styled, {css, type StyledComponent} from 'styled-components';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
6
|
|
|
7
|
-
import type {
|
|
7
|
+
import type {TypeTheme} from '../types/theme.flow';
|
|
8
8
|
|
|
9
|
-
import Box from
|
|
10
|
-
import Image from
|
|
11
|
-
import Text from
|
|
9
|
+
import Box from '../Box';
|
|
10
|
+
import Image from '../Image';
|
|
11
|
+
import Text from '../Text';
|
|
12
12
|
|
|
13
13
|
export type TypeProps = {
|
|
14
14
|
/** Circles are used for social profile avatars, leaf is for internal Sprout user avatars */
|
|
15
|
-
appearance?:
|
|
15
|
+
appearance?: 'circle' | 'leaf',
|
|
16
16
|
/** The name of the user that the avatar represents */
|
|
17
17
|
name: string,
|
|
18
18
|
/** URL of the avatar image. If a URL is not provided, the component will fall back to showing the user's initials */
|
|
19
19
|
src?: string,
|
|
20
|
-
type?:
|
|
21
|
-
variant?:
|
|
20
|
+
type?: 'neutral' | 'purple' | 'green' | 'blue' | 'yellow' | 'red' | 'orange',
|
|
21
|
+
variant?: 'dark' | 'light',
|
|
22
22
|
bg?: string,
|
|
23
23
|
color?: string,
|
|
24
24
|
size?: string,
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
const AvatarText = styled(({
|
|
27
|
+
const AvatarText = styled(({fontSize, ...rest}) => <Text {...rest} />)`
|
|
28
28
|
font-size: ${(props) => props.fontSize}px;
|
|
29
29
|
color: ${(props) => props.color}px;
|
|
30
30
|
`;
|
|
31
31
|
const Container: StyledComponent<any, TypeTheme, *> = styled(Box)`
|
|
32
|
-
${({
|
|
33
|
-
color: ${theme.colors[type][variant ===
|
|
32
|
+
${({theme, type, variant, bg}) => css`
|
|
33
|
+
color: ${theme.colors[type][variant === 'dark' ? '200' : '900']};
|
|
34
34
|
background: ${bg
|
|
35
35
|
? bg
|
|
36
|
-
: theme.colors[type][variant ===
|
|
36
|
+
: theme.colors[type][variant === 'dark' ? '900' : '200']};
|
|
37
37
|
`}
|
|
38
38
|
`;
|
|
39
39
|
|
|
40
|
-
const getInitials = (name: string, fallback: string =
|
|
41
|
-
if (!name || typeof name !==
|
|
40
|
+
const getInitials = (name: string, fallback: string = '?'): string => {
|
|
41
|
+
if (!name || typeof name !== 'string') return fallback;
|
|
42
42
|
return name
|
|
43
|
-
.replace(/\s+/,
|
|
44
|
-
.split(
|
|
43
|
+
.replace(/\s+/, ' ')
|
|
44
|
+
.split(' ') // Repeated spaces results in empty strings
|
|
45
45
|
.slice(0, 2)
|
|
46
46
|
.map((v) => v && v[0].toUpperCase()) // Watch out for empty strings
|
|
47
|
-
.join(
|
|
47
|
+
.join('');
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
export const Avatar = ({
|
|
51
|
-
appearance =
|
|
51
|
+
appearance = 'circle',
|
|
52
52
|
name,
|
|
53
53
|
src,
|
|
54
|
-
variant =
|
|
55
|
-
type =
|
|
56
|
-
size =
|
|
54
|
+
variant = 'light',
|
|
55
|
+
type = 'neutral',
|
|
56
|
+
size = '40px',
|
|
57
57
|
bg,
|
|
58
58
|
color,
|
|
59
59
|
...rest
|
|
@@ -66,14 +66,14 @@ export const Avatar = ({
|
|
|
66
66
|
}, [setImageFailedLoading]);
|
|
67
67
|
|
|
68
68
|
// Font size for initials is half the size of the avatar, rounded down.
|
|
69
|
-
const fontSize = Math.floor(Number(size.replace(
|
|
69
|
+
const fontSize = Math.floor(Number(size.replace('px', '')) * 0.4);
|
|
70
70
|
|
|
71
71
|
return (
|
|
72
72
|
<Container
|
|
73
73
|
className={classnames(variant)}
|
|
74
74
|
size={size}
|
|
75
75
|
overflow="hidden"
|
|
76
|
-
borderRadius={appearance ===
|
|
76
|
+
borderRadius={appearance === 'leaf' ? '40% 0 40% 0' : '50%'}
|
|
77
77
|
position="relative"
|
|
78
78
|
display="flex"
|
|
79
79
|
flexShrink={0}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import React from
|
|
3
|
-
import Avatar from
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Avatar from './index';
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
|
-
title:
|
|
6
|
+
title: 'Components/Avatar',
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
export const defaultStory = () => <Avatar name="Joe Smith" />;
|
|
10
10
|
|
|
11
11
|
defaultStory.story = {
|
|
12
|
-
name:
|
|
12
|
+
name: 'Default',
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export const customColors = () => (
|
|
@@ -17,7 +17,7 @@ export const customColors = () => (
|
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
customColors.story = {
|
|
20
|
-
name:
|
|
20
|
+
name: 'Override colors',
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export const withVariants = () => (
|
|
@@ -38,7 +38,7 @@ export const withVariants = () => (
|
|
|
38
38
|
);
|
|
39
39
|
|
|
40
40
|
withVariants.story = {
|
|
41
|
-
name:
|
|
41
|
+
name: 'With color types',
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
export const withImage = () => (
|
|
@@ -46,7 +46,7 @@ export const withImage = () => (
|
|
|
46
46
|
);
|
|
47
47
|
|
|
48
48
|
withImage.story = {
|
|
49
|
-
name:
|
|
49
|
+
name: 'With image',
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
export const Leaf = () => (
|
|
@@ -58,5 +58,5 @@ export const Leaf = () => (
|
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
Leaf.story = {
|
|
61
|
-
name:
|
|
61
|
+
name: 'Leaf appearance',
|
|
62
62
|
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import React from
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import Avatar from
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import {render} from '../utils/react-testing-library';
|
|
4
|
+
import 'jest-styled-components';
|
|
5
|
+
import Avatar from './';
|
|
6
6
|
|
|
7
|
-
describe(
|
|
8
|
-
it(
|
|
9
|
-
const {
|
|
7
|
+
describe('Avatar', () => {
|
|
8
|
+
it('should render properly', async () => {
|
|
9
|
+
const {container, runA11yCheck} = render(<Avatar />);
|
|
10
10
|
expect(container).toBeTruthy();
|
|
11
11
|
await runA11yCheck();
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
-
it(
|
|
15
|
-
const {
|
|
16
|
-
expect(container.textContent).toEqual(
|
|
14
|
+
it('should use the correct initials', () => {
|
|
15
|
+
const {container} = render(<Avatar name="Test User" />);
|
|
16
|
+
expect(container.textContent).toEqual('TU');
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
it(
|
|
20
|
-
const {
|
|
21
|
-
expect(getByText(
|
|
19
|
+
it('should set the correct font size', () => {
|
|
20
|
+
const {getByText} = render(<Avatar name="Test User" />);
|
|
21
|
+
expect(getByText('TU')).toHaveStyleRule('font-size', '16px');
|
|
22
22
|
});
|
|
23
23
|
});
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
//@flow
|
|
2
2
|
|
|
3
3
|
const defaultPurple = {
|
|
4
|
-
color:
|
|
5
|
-
background:
|
|
4
|
+
color: 'colors.text.body',
|
|
5
|
+
background: 'colors.container.background.decorative.purple',
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
const suggestion = {
|
|
9
|
-
color:
|
|
10
|
-
background:
|
|
9
|
+
color: 'colors.text.body',
|
|
10
|
+
background: 'colors.container.background.decorative.blue',
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
const passive = {
|
|
14
|
-
color:
|
|
15
|
-
background:
|
|
14
|
+
color: 'colors.text.body',
|
|
15
|
+
background: 'colors.container.background.decorative.neutral',
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
const primary = {
|
|
19
|
-
color:
|
|
20
|
-
background:
|
|
19
|
+
color: 'colors.text.body',
|
|
20
|
+
background: 'colors.container.background.decorative.blue',
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
const secondary = {
|
|
24
|
-
color:
|
|
25
|
-
background:
|
|
24
|
+
color: 'colors.text.body',
|
|
25
|
+
background: 'colors.container.background.decorative.yellow',
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
const common = {
|
|
29
|
-
color:
|
|
30
|
-
background:
|
|
29
|
+
color: 'colors.text.inverse',
|
|
30
|
+
background: 'colors.aqua.600',
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
const approval = {
|
|
34
|
-
color:
|
|
35
|
-
background:
|
|
34
|
+
color: 'colors.text.body',
|
|
35
|
+
background: 'colors.container.background.decorative.orange',
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
//Deprecated former "types"
|
package/__flow__/Badge/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import * as React from
|
|
3
|
-
import Icon from
|
|
4
|
-
import Container from
|
|
5
|
-
import Box from
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import Icon from '../Icon';
|
|
4
|
+
import Container from './styles';
|
|
5
|
+
import Box from '../Box';
|
|
6
6
|
|
|
7
7
|
type TypeProps = {
|
|
8
8
|
children?: React.Node,
|
|
9
9
|
/** DEPRECATED: Use children instead of text */
|
|
10
10
|
text?: React.Node,
|
|
11
11
|
/** Size default is deprecated in favor of small and large */
|
|
12
|
-
size?:
|
|
12
|
+
size?: 'small' | 'large' | 'default',
|
|
13
13
|
badgeColor?:
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
14
|
+
| 'green'
|
|
15
|
+
| 'blue'
|
|
16
|
+
| 'purple'
|
|
17
|
+
| 'yellow'
|
|
18
|
+
| 'orange'
|
|
19
|
+
| 'red'
|
|
20
|
+
| 'neutral',
|
|
21
21
|
iconName?: string,
|
|
22
22
|
/** DEPRECATED: Possibly only used for testing. Refrain from using at all if possible. (optional) */
|
|
23
23
|
tip?: React.Node,
|
|
@@ -31,8 +31,8 @@ const Badge = ({
|
|
|
31
31
|
iconName,
|
|
32
32
|
type,
|
|
33
33
|
tip,
|
|
34
|
-
size =
|
|
35
|
-
badgeColor =
|
|
34
|
+
size = 'small',
|
|
35
|
+
badgeColor = 'blue',
|
|
36
36
|
...rest
|
|
37
37
|
}: TypeProps) => {
|
|
38
38
|
if (children && text) {
|
|
@@ -45,12 +45,12 @@ const Badge = ({
|
|
|
45
45
|
<Container
|
|
46
46
|
{...rest}
|
|
47
47
|
// size previously included default, which currently maps to small. Once consumers have updated this can be simplified.
|
|
48
|
-
size={size ===
|
|
48
|
+
size={size === 'default' ? 'large' : size}
|
|
49
49
|
badgeColor={badgeColor}
|
|
50
50
|
data-tip={tip}
|
|
51
|
-
data-qa-badge={text ||
|
|
51
|
+
data-qa-badge={text || ''}
|
|
52
52
|
data-qa-badge-type={type}
|
|
53
|
-
data-qa-badge-tip={tip ||
|
|
53
|
+
data-qa-badge-tip={tip || ''}
|
|
54
54
|
type={type && type}
|
|
55
55
|
>
|
|
56
56
|
<Box display="flex" alignItems="center" JustifyContent="center">
|
|
@@ -58,7 +58,7 @@ const Badge = ({
|
|
|
58
58
|
<Icon
|
|
59
59
|
mr={200}
|
|
60
60
|
name={iconName}
|
|
61
|
-
size={size ===
|
|
61
|
+
size={size === 'small' ? 'mini' : 'default'}
|
|
62
62
|
/>
|
|
63
63
|
) : null}
|
|
64
64
|
{children || text}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import React from
|
|
3
|
-
import Badge from
|
|
4
|
-
import Box from
|
|
5
|
-
import Numeral from
|
|
6
|
-
import Text from
|
|
7
|
-
import Stack from
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Badge from './index';
|
|
4
|
+
import Box from '../Box';
|
|
5
|
+
import Numeral from '../Numeral';
|
|
6
|
+
import Text from '../Text';
|
|
7
|
+
import Stack from '../Stack';
|
|
8
8
|
|
|
9
9
|
export default {
|
|
10
|
-
title:
|
|
10
|
+
title: 'Components/Badge',
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export const permutations = () => (
|
|
@@ -45,5 +45,5 @@ export const permutations = () => (
|
|
|
45
45
|
);
|
|
46
46
|
|
|
47
47
|
permutations.story = {
|
|
48
|
-
name:
|
|
48
|
+
name: 'Permutations',
|
|
49
49
|
};
|