@nypl/design-system-react-components 0.25.11 → 0.26.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 +151 -0
- package/README.md +14 -26
- package/dist/components/Accordion/Accordion.d.ts +6 -4
- package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -1
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Card/Card.d.ts +22 -29
- package/dist/components/Checkbox/Checkbox.d.ts +3 -3
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +5 -6
- package/dist/components/Fieldset/Fieldset.d.ts +5 -6
- package/dist/components/Form/Form.d.ts +6 -6
- package/dist/components/Grid/GridTypes.d.ts +7 -7
- package/dist/components/Grid/SimpleGrid.d.ts +1 -1
- package/dist/components/Heading/Heading.d.ts +5 -5
- package/dist/components/Heading/HeadingTypes.d.ts +1 -1
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
- package/dist/components/Hero/Hero.d.ts +9 -5
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
- package/dist/components/Icons/Icon.d.ts +2 -1
- package/dist/components/Icons/IconTypes.d.ts +10 -7
- package/dist/components/Image/Image.d.ts +27 -9
- package/dist/components/Image/ImageTypes.d.ts +4 -4
- package/dist/components/Label/Label.d.ts +7 -4
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/List/List.d.ts +11 -11
- package/dist/components/List/ListTypes.d.ts +1 -1
- package/dist/components/Logo/Logo.d.ts +2 -1
- package/dist/components/Logo/LogoSvgs.d.ts +8 -0
- package/dist/components/Logo/LogoTypes.d.ts +10 -2
- package/dist/components/Notification/Notification.d.ts +7 -7
- package/dist/components/Pagination/Pagination.d.ts +8 -4
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
- package/dist/components/Radio/Radio.d.ts +5 -7
- package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
- package/dist/components/SearchBar/SearchBar.d.ts +5 -5
- package/dist/components/Select/Select.d.ts +12 -8
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
- package/dist/components/Slider/Slider.d.ts +6 -4
- package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Tabs/Tabs.d.ts +7 -6
- package/dist/components/Template/Template.d.ts +18 -9
- package/dist/components/Text/Text.d.ts +4 -4
- package/dist/components/Text/TextTypes.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +7 -7
- package/dist/components/Toggle/Toggle.d.ts +8 -10
- package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +2802 -1686
- package/dist/design-system-react-components.cjs.development.js.map +1 -1
- package/dist/design-system-react-components.cjs.production.min.js +1 -1
- package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
- package/dist/design-system-react-components.esm.js +2811 -1699
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/helpers/enums.d.ts +4 -0
- package/dist/hooks/useCarouselStyles.d.ts +3 -2
- package/dist/hooks/useNYPLTheme.d.ts +12 -0
- package/dist/index.d.ts +11 -9
- package/dist/styles.css +1 -1
- package/dist/theme/components/accordion.d.ts +7 -12
- package/dist/theme/components/breadcrumb.d.ts +6 -0
- package/dist/theme/components/button.d.ts +10 -2
- package/dist/theme/components/card.d.ts +44 -24
- package/dist/theme/components/checkbox.d.ts +6 -6
- package/dist/theme/components/checkboxGroup.d.ts +4 -2
- package/dist/theme/components/componentWrapper.d.ts +2 -2
- package/dist/theme/components/customTable.d.ts +84 -1
- package/dist/theme/components/fieldset.d.ts +6 -14
- package/dist/theme/components/global.d.ts +37 -29
- package/dist/theme/components/globalMixins.d.ts +8 -8
- package/dist/theme/components/heading.d.ts +53 -0
- package/dist/theme/components/helperErrorText.d.ts +1 -0
- package/dist/theme/components/hero.d.ts +21 -15
- package/dist/theme/components/image.d.ts +1 -1
- package/dist/theme/components/label.d.ts +9 -10
- package/dist/theme/components/list.d.ts +105 -9
- package/dist/theme/components/notification.d.ts +7 -4
- package/dist/theme/components/pagination.d.ts +2 -5
- package/dist/theme/components/radio.d.ts +10 -6
- package/dist/theme/components/radioGroup.d.ts +4 -2
- package/dist/theme/components/select.d.ts +38 -13
- package/dist/theme/components/skeletonLoader.d.ts +2 -2
- package/dist/theme/components/slider.d.ts +14 -7
- package/dist/theme/components/structuredContent.d.ts +197 -0
- package/dist/theme/components/textInput.d.ts +22 -14
- package/dist/theme/components/toggle.d.ts +25 -6
- package/dist/theme/foundations/global.d.ts +33 -3
- package/dist/theme/foundations/radii.d.ts +1 -0
- package/dist/theme/foundations/spacing.d.ts +46 -43
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +5 -6
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
- package/src/components/Accordion/Accordion.stories.mdx +150 -66
- package/src/components/Accordion/Accordion.test.tsx +65 -17
- package/src/components/Accordion/Accordion.tsx +61 -27
- package/src/components/Accordion/AccordionTypes.tsx +5 -0
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +53 -18
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
- package/src/components/Button/Button.stories.mdx +87 -23
- package/src/components/Button/Button.test.tsx +25 -0
- package/src/components/Button/Button.tsx +18 -7
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
- package/src/components/Card/Card.stories.mdx +493 -329
- package/src/components/Card/Card.test.tsx +138 -18
- package/src/components/Card/Card.tsx +151 -85
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +220 -100
- package/src/components/Chakra/Center.stories.mdx +2 -2
- package/src/components/Chakra/Grid.stories.mdx +4 -4
- package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
- package/src/components/Checkbox/Checkbox.test.tsx +89 -10
- package/src/components/Checkbox/Checkbox.tsx +27 -16
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
- package/src/components/DatePicker/DatePicker.test.tsx +94 -15
- package/src/components/DatePicker/DatePicker.tsx +67 -58
- package/src/components/DatePicker/_DatePicker.scss +71 -13
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
- package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
- package/src/components/Fieldset/Fieldset.test.tsx +58 -28
- package/src/components/Fieldset/Fieldset.tsx +35 -30
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
- package/src/components/Form/Form.stories.mdx +118 -47
- package/src/components/Form/Form.test.tsx +59 -16
- package/src/components/Form/Form.tsx +89 -65
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
- package/src/components/Grid/GridTypes.tsx +7 -7
- package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
- package/src/components/Grid/SimpleGrid.test.tsx +24 -9
- package/src/components/Grid/SimpleGrid.tsx +29 -20
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
- package/src/components/Heading/Heading.stories.mdx +56 -25
- package/src/components/Heading/Heading.test.tsx +17 -7
- package/src/components/Heading/Heading.tsx +60 -58
- package/src/components/Heading/HeadingTypes.tsx +1 -1
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
- package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
- package/src/components/Hero/Hero.stories.mdx +143 -113
- package/src/components/Hero/Hero.test.tsx +146 -58
- package/src/components/Hero/Hero.tsx +144 -112
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
- package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
- package/src/components/Icons/Icon.stories.mdx +80 -23
- package/src/components/Icons/Icon.test.tsx +51 -2
- package/src/components/Icons/Icon.tsx +93 -71
- package/src/components/Icons/IconTypes.tsx +9 -6
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
- package/src/components/Image/Image.stories.mdx +160 -71
- package/src/components/Image/Image.test.tsx +40 -48
- package/src/components/Image/Image.tsx +80 -48
- package/src/components/Image/ImageTypes.ts +4 -4
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
- package/src/components/Label/Label.stories.mdx +42 -20
- package/src/components/Label/Label.test.tsx +42 -17
- package/src/components/Label/Label.tsx +22 -13
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
- package/src/components/Link/Link.stories.mdx +25 -1
- package/src/components/Link/Link.test.tsx +21 -0
- package/src/components/Link/Link.tsx +16 -9
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
- package/src/components/List/List.stories.mdx +75 -40
- package/src/components/List/List.test.tsx +73 -22
- package/src/components/List/List.tsx +44 -28
- package/src/components/List/ListTypes.tsx +1 -1
- package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
- package/src/components/Logo/Logo.stories.mdx +40 -16
- package/src/components/Logo/Logo.test.tsx +29 -2
- package/src/components/Logo/Logo.tsx +28 -11
- package/src/components/Logo/LogoSvgs.tsx +16 -0
- package/src/components/Logo/LogoTypes.tsx +9 -1
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
- package/src/components/Modal/Modal.stories.mdx +13 -0
- package/src/components/Notification/Notification.stories.mdx +34 -5
- package/src/components/Notification/Notification.test.tsx +43 -9
- package/src/components/Notification/Notification.tsx +59 -55
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
- package/src/components/Pagination/Pagination.stories.mdx +76 -13
- package/src/components/Pagination/Pagination.test.tsx +116 -5
- package/src/components/Pagination/Pagination.tsx +54 -29
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
- package/src/components/Placeholder/Placeholder.tsx +3 -1
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
- package/src/components/Radio/Radio.stories.mdx +75 -11
- package/src/components/Radio/Radio.test.tsx +83 -9
- package/src/components/Radio/Radio.tsx +70 -61
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
- package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
- package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
- package/src/components/RadioGroup/RadioGroup.tsx +110 -101
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
- package/src/components/SearchBar/SearchBar.stories.mdx +104 -39
- package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
- package/src/components/SearchBar/SearchBar.tsx +23 -13
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
- package/src/components/Select/Select.stories.mdx +151 -62
- package/src/components/Select/Select.test.tsx +56 -44
- package/src/components/Select/Select.tsx +125 -104
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
- package/src/components/Slider/Slider.stories.mdx +123 -41
- package/src/components/Slider/Slider.test.tsx +65 -17
- package/src/components/Slider/Slider.tsx +34 -24
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
- package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
- package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
- package/src/components/StatusBadge/StatusBadge.tsx +25 -20
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
- package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
- package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
- package/src/components/StructuredContent/StructuredContent.tsx +98 -103
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +9 -9
- package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
- package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
- package/src/components/StyleGuide/ColorCard.tsx +4 -4
- package/src/components/StyleGuide/Colors.stories.mdx +34 -20
- package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
- package/src/components/StyleGuide/Forms.stories.mdx +27 -12
- package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
- package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
- package/src/components/StyleGuide/Typography.stories.mdx +47 -33
- package/src/components/Table/Table.stories.mdx +38 -11
- package/src/components/Table/Table.test.tsx +16 -1
- package/src/components/Table/Table.tsx +10 -8
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
- package/src/components/Tabs/Tabs.stories.mdx +59 -10
- package/src/components/Tabs/Tabs.test.tsx +29 -11
- package/src/components/Tabs/Tabs.tsx +28 -21
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
- package/src/components/Template/Template.stories.mdx +73 -32
- package/src/components/Template/Template.test.tsx +68 -5
- package/src/components/Template/Template.tsx +86 -72
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
- package/src/components/Text/Text.stories.mdx +32 -15
- package/src/components/Text/Text.test.tsx +14 -11
- package/src/components/Text/Text.tsx +13 -16
- package/src/components/Text/TextTypes.tsx +1 -1
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
- package/src/components/TextInput/TextInput.stories.mdx +73 -27
- package/src/components/TextInput/TextInput.test.tsx +65 -50
- package/src/components/TextInput/TextInput.tsx +123 -115
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
- package/src/components/Toggle/Toggle.stories.mdx +74 -26
- package/src/components/Toggle/Toggle.test.tsx +41 -10
- package/src/components/Toggle/Toggle.tsx +31 -27
- package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
- package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
- package/src/docs/Chakra.stories.mdx +51 -10
- package/src/docs/Welcome.stories.mdx +168 -0
- package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
- package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
- package/src/hooks/useCarouselStyles.stories.mdx +30 -0
- package/src/hooks/useCarouselStyles.ts +3 -2
- package/src/hooks/useNYPLTheme.stories.mdx +101 -0
- package/src/hooks/useNYPLTheme.ts +31 -7
- package/src/hooks/useWindowSize.stories.mdx +23 -0
- package/src/index.ts +11 -15
- package/src/styles/base/_place-holder.scss +3 -1
- package/src/styles.scss +0 -2
- package/src/theme/components/accordion.ts +7 -12
- package/src/theme/components/breadcrumb.ts +7 -0
- package/src/theme/components/button.ts +15 -7
- package/src/theme/components/card.ts +56 -36
- package/src/theme/components/checkbox.ts +12 -14
- package/src/theme/components/checkboxGroup.ts +4 -2
- package/src/theme/components/componentWrapper.ts +2 -2
- package/src/theme/components/customTable.ts +39 -31
- package/src/theme/components/fieldset.ts +3 -2
- package/src/theme/components/global.ts +42 -33
- package/src/theme/components/globalMixins.ts +8 -8
- package/src/theme/components/heading.ts +1 -1
- package/src/theme/components/helperErrorText.ts +1 -0
- package/src/theme/components/hero.ts +14 -16
- package/src/theme/components/icon.ts +5 -2
- package/src/theme/components/image.ts +1 -1
- package/src/theme/components/label.ts +4 -3
- package/src/theme/components/list.ts +76 -65
- package/src/theme/components/notification.ts +10 -7
- package/src/theme/components/pagination.ts +2 -5
- package/src/theme/components/progressIndicator.ts +3 -3
- package/src/theme/components/radio.ts +11 -14
- package/src/theme/components/radioGroup.ts +4 -2
- package/src/theme/components/select.ts +37 -18
- package/src/theme/components/skeletonLoader.ts +3 -3
- package/src/theme/components/slider.ts +19 -15
- package/src/theme/components/statusBadge.ts +2 -2
- package/src/theme/components/structuredContent.ts +66 -1
- package/src/theme/components/tabs.ts +2 -2
- package/src/theme/components/template.ts +9 -9
- package/src/theme/components/textInput.ts +13 -12
- package/src/theme/components/toggle.ts +76 -42
- package/src/theme/components/videoPlayer.ts +1 -1
- package/src/theme/foundations/colors.ts +20 -13
- package/src/theme/foundations/global.ts +17 -5
- package/src/theme/foundations/radii.ts +1 -0
- package/src/theme/foundations/spacing.ts +70 -22
- package/src/theme/foundations/typography.ts +3 -3
- package/src/utils/componentCategories.ts +28 -21
- package/src/utils/utils.ts +28 -0
- package/dist/components/Card/CardTypes.d.ts +0 -4
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
- package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
- package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
- package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
- package/dist/helpers/generateUUID.d.ts +0 -1
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
- package/src/components/Pagination/Pagination.stories.tsx +0 -54
- package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
- package/src/docs/Intro.stories.mdx +0 -53
- package/src/helpers/generateUUID.tsx +0 -5
- package/src/styles/base/_03-base.scss +0 -25
- package/src/styles/base/_04-focus.scss +0 -22
|
@@ -2,30 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`HorizontalRule renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<hr
|
|
5
|
-
className="css-
|
|
5
|
+
className="css-mvtkpx"
|
|
6
6
|
/>
|
|
7
7
|
`;
|
|
8
8
|
|
|
9
9
|
exports[`HorizontalRule renders the UI snapshot correctly 2`] = `
|
|
10
10
|
<hr
|
|
11
|
-
className="css-
|
|
11
|
+
className="css-j99tgf"
|
|
12
12
|
/>
|
|
13
13
|
`;
|
|
14
14
|
|
|
15
15
|
exports[`HorizontalRule renders the UI snapshot correctly 3`] = `
|
|
16
16
|
<hr
|
|
17
|
-
className="css-
|
|
17
|
+
className="css-21sffo"
|
|
18
18
|
/>
|
|
19
19
|
`;
|
|
20
20
|
|
|
21
21
|
exports[`HorizontalRule renders the UI snapshot correctly 4`] = `
|
|
22
22
|
<hr
|
|
23
|
-
className="css-
|
|
23
|
+
className="css-mvtkpx"
|
|
24
24
|
/>
|
|
25
25
|
`;
|
|
26
26
|
|
|
27
27
|
exports[`HorizontalRule renders the UI snapshot correctly 5`] = `
|
|
28
28
|
<hr
|
|
29
|
-
className="css-
|
|
29
|
+
className="css-mvtkpx"
|
|
30
|
+
/>
|
|
31
|
+
`;
|
|
32
|
+
|
|
33
|
+
exports[`HorizontalRule renders the UI snapshot correctly 6`] = `
|
|
34
|
+
<hr
|
|
35
|
+
className="css-1pg2j4r"
|
|
36
|
+
/>
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
exports[`HorizontalRule renders the UI snapshot correctly 7`] = `
|
|
40
|
+
<hr
|
|
41
|
+
className="css-mvtkpx"
|
|
42
|
+
data-testid="props"
|
|
30
43
|
/>
|
|
31
44
|
`;
|
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
} from "@storybook/addon-docs";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
|
+
import Heading from "../Heading/Heading";
|
|
11
|
+
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
10
12
|
import Icon from "./Icon";
|
|
11
13
|
import {
|
|
12
14
|
IconAlign,
|
|
@@ -89,10 +91,25 @@ export const rotationEnumValues = getStorybookEnumValues(
|
|
|
89
91
|
| Component Version | DS Version |
|
|
90
92
|
| ----------------- | ---------- |
|
|
91
93
|
| Added | `0.0.4` |
|
|
92
|
-
| Latest | `0.
|
|
94
|
+
| Latest | `0.26.0` |
|
|
95
|
+
|
|
96
|
+
## Table of Contents
|
|
97
|
+
|
|
98
|
+
- [Overview](#overview)
|
|
99
|
+
- [Component Props](#component-props)
|
|
100
|
+
- [Accessibility](#accessibility)
|
|
101
|
+
- [Rotation Types](#rotation-types)
|
|
102
|
+
- [IconColors Types](#icon-colors-types)
|
|
103
|
+
- [IconSizes Types](#icon-sizes-types)
|
|
104
|
+
- [All Display Icons](#all-display-icons)
|
|
105
|
+
- [Custom Icons](#custom-icons)
|
|
106
|
+
|
|
107
|
+
## Overview
|
|
93
108
|
|
|
94
109
|
<Description of={Icon} />
|
|
95
110
|
|
|
111
|
+
## Component Props
|
|
112
|
+
|
|
96
113
|
<Canvas withToolbar>
|
|
97
114
|
<Story
|
|
98
115
|
name="Icon with Controls"
|
|
@@ -105,7 +122,7 @@ export const rotationEnumValues = getStorybookEnumValues(
|
|
|
105
122
|
iconRotation: "IconRotationTypes.Rotate0",
|
|
106
123
|
id: "icon-id",
|
|
107
124
|
name: "IconNames.Check",
|
|
108
|
-
size: "IconSizes.
|
|
125
|
+
size: "IconSizes.ExtraExtraLarge",
|
|
109
126
|
title: undefined,
|
|
110
127
|
type: IconTypes.Default,
|
|
111
128
|
}}
|
|
@@ -128,7 +145,7 @@ export const rotationEnumValues = getStorybookEnumValues(
|
|
|
128
145
|
export const iconRow = (icon, iconType = IconNames, opts = {}) => {
|
|
129
146
|
// We'll use this setup function to render all the icons in a list item.
|
|
130
147
|
// Some icons display better with a dark background.
|
|
131
|
-
const styles = {
|
|
148
|
+
const styles = { display: "block" };
|
|
132
149
|
const {
|
|
133
150
|
size = IconSizes.Large,
|
|
134
151
|
iconRotation = IconRotationTypes.Rotate0,
|
|
@@ -138,6 +155,7 @@ export const iconRow = (icon, iconType = IconNames, opts = {}) => {
|
|
|
138
155
|
let key = icon;
|
|
139
156
|
if (icon.indexOf("Negative") !== -1 || color.indexOf("white") !== -1) {
|
|
140
157
|
styles.backgroundColor = "#000";
|
|
158
|
+
styles.padding = "1rem";
|
|
141
159
|
}
|
|
142
160
|
// The following is just to fix duplicate React key issues.
|
|
143
161
|
if (iconRotation !== IconRotationTypes.Rotate0) {
|
|
@@ -150,7 +168,11 @@ export const iconRow = (icon, iconType = IconNames, opts = {}) => {
|
|
|
150
168
|
key += `-${size}`;
|
|
151
169
|
}
|
|
152
170
|
return (
|
|
153
|
-
<li
|
|
171
|
+
<li
|
|
172
|
+
key={key}
|
|
173
|
+
style={{ marginBottom: "var(--nypl-space-l)", textAlign: "center" }}
|
|
174
|
+
>
|
|
175
|
+
<Heading level={HeadingLevels.Four}>{displayValue}</Heading>
|
|
154
176
|
<span style={styles}>
|
|
155
177
|
<Icon
|
|
156
178
|
name={iconType[icon]}
|
|
@@ -159,7 +181,6 @@ export const iconRow = (icon, iconType = IconNames, opts = {}) => {
|
|
|
159
181
|
color={color}
|
|
160
182
|
/>
|
|
161
183
|
</span>
|
|
162
|
-
{displayValue}
|
|
163
184
|
</li>
|
|
164
185
|
);
|
|
165
186
|
};
|
|
@@ -168,30 +189,36 @@ export const rotations = [];
|
|
|
168
189
|
export const colors = [];
|
|
169
190
|
export const sizes = [];
|
|
170
191
|
for (const icon in IconNames) {
|
|
171
|
-
icons.push(
|
|
192
|
+
icons.push(
|
|
193
|
+
iconRow(icon, IconNames, {
|
|
194
|
+
displayValue: `IconNames.${icon}`,
|
|
195
|
+
size: IconSizes.ExtraExtraLarge,
|
|
196
|
+
})
|
|
197
|
+
);
|
|
172
198
|
}
|
|
173
199
|
for (const iconRotation in IconRotationTypes) {
|
|
174
200
|
rotations.push(
|
|
175
201
|
iconRow("Arrow", IconNames, {
|
|
176
|
-
size: IconSizes.Large,
|
|
177
|
-
iconRotation: IconRotationTypes[iconRotation],
|
|
178
202
|
displayValue: `IconRotationTypes.${iconRotation}`,
|
|
203
|
+
iconRotation: IconRotationTypes[iconRotation],
|
|
204
|
+
size: IconSizes.ExtraExtraLarge,
|
|
179
205
|
})
|
|
180
206
|
);
|
|
181
207
|
}
|
|
182
208
|
for (const iconColor in IconColors) {
|
|
183
209
|
colors.push(
|
|
184
|
-
iconRow("
|
|
210
|
+
iconRow("ErrorFilled", IconNames, {
|
|
185
211
|
color: IconColors[iconColor],
|
|
186
212
|
displayValue: `IconColors.${iconColor}`,
|
|
213
|
+
size: IconSizes.ExtraExtraLarge,
|
|
187
214
|
})
|
|
188
215
|
);
|
|
189
216
|
}
|
|
190
217
|
for (const iconSize in IconSizes) {
|
|
191
218
|
sizes.push(
|
|
192
|
-
iconRow("
|
|
193
|
-
size: IconSizes[iconSize],
|
|
219
|
+
iconRow("ActionCheckCircle", IconNames, {
|
|
194
220
|
displayValue: `IconSizes.${iconSize}`,
|
|
221
|
+
size: IconSizes[iconSize],
|
|
195
222
|
})
|
|
196
223
|
);
|
|
197
224
|
}
|
|
@@ -202,11 +229,21 @@ export const allIconsType = (list) => (
|
|
|
202
229
|
|
|
203
230
|
## Accessibility
|
|
204
231
|
|
|
205
|
-
For accessibility purposes, every DS `Icon` will
|
|
206
|
-
its icon name in the `title` element. The default
|
|
207
|
-
is the icon's code name. Pass in better descriptive
|
|
208
|
-
when using the `Icon` component in your application.
|
|
209
|
-
a better descriptive title for the `svg` graphic.
|
|
232
|
+
For accessibility purposes, every Reservoir Design System (DS) `Icon` will
|
|
233
|
+
render the `svg` element with its icon name in the `title` element. The default
|
|
234
|
+
text in the `title` element is the icon's code name. Pass in better descriptive
|
|
235
|
+
text in the `title` prop when using the `Icon` component in your application.
|
|
236
|
+
This will give screenreaders a better descriptive title for the `svg` graphic.
|
|
237
|
+
|
|
238
|
+
`Icon`s are decorative by default. This means that they are presentational and
|
|
239
|
+
screenreaders will not read them because the `aria-hidden` attribute is set to
|
|
240
|
+
`true`.
|
|
241
|
+
|
|
242
|
+
Resources:
|
|
243
|
+
|
|
244
|
+
- [W3C Design System SVG Icons](https://design-system.w3.org/styles/svg-icons.html)
|
|
245
|
+
- [CSS-Tricks Accessible SVG Icons](https://css-tricks.com/accessible-svg-icons/)
|
|
246
|
+
- [Chakra UI Icon](https://chakra-ui.com/docs/components/media-and-icons/icon)
|
|
210
247
|
|
|
211
248
|
## Rotation Types
|
|
212
249
|
|
|
@@ -214,13 +251,20 @@ Passing an `iconRotation` prop with a value from `IconRotationTypes` allows
|
|
|
214
251
|
the icon to be rotated when it is rendered. The `IconRotationTypes` enum
|
|
215
252
|
can be found in `src/components/Icons/IconTypes.tsx`.
|
|
216
253
|
|
|
254
|
+
Note: All of the examples below have been rendered with the `size` prop set to
|
|
255
|
+
`IconSizes.ExtraExtraLarge`.
|
|
256
|
+
|
|
217
257
|
```jsx
|
|
218
258
|
// Example
|
|
219
|
-
<Icon
|
|
259
|
+
<Icon
|
|
260
|
+
iconRotation={IconRotationTypes.Rotate180}
|
|
261
|
+
name={IconNames.Arrow}
|
|
262
|
+
size={IconSizes.ExtraExtraLarge}
|
|
263
|
+
/>
|
|
220
264
|
```
|
|
221
265
|
|
|
222
266
|
<Canvas>
|
|
223
|
-
<Story name="Rotation
|
|
267
|
+
<Story name="Icon Rotation">{allIconsType(rotations)}</Story>
|
|
224
268
|
</Canvas>
|
|
225
269
|
|
|
226
270
|
## IconColors Types
|
|
@@ -228,13 +272,20 @@ can be found in `src/components/Icons/IconTypes.tsx`.
|
|
|
228
272
|
Update an SVG icon by passing a `color` prop with a value from `IconColors`.
|
|
229
273
|
The `IconColors` enum can be found in `src/components/Icons/IconTypes.tsx`.
|
|
230
274
|
|
|
275
|
+
Note: All of the examples below have been rendered with the `size` prop set to
|
|
276
|
+
`IconSizes.ExtraExtraLarge`.
|
|
277
|
+
|
|
231
278
|
```jsx
|
|
232
279
|
// Example
|
|
233
|
-
<Icon
|
|
280
|
+
<Icon
|
|
281
|
+
color={IconColors.BrandPrimary}
|
|
282
|
+
name={IconNames.ErrorFilled}
|
|
283
|
+
size={IconSizes.ExtraExtraLarge}
|
|
284
|
+
/>
|
|
234
285
|
```
|
|
235
286
|
|
|
236
287
|
<Canvas>
|
|
237
|
-
<Story name="
|
|
288
|
+
<Story name="Icon Colors">{allIconsType(colors)}</Story>
|
|
238
289
|
</Canvas>
|
|
239
290
|
|
|
240
291
|
## IconSizes Types
|
|
@@ -242,13 +293,16 @@ The `IconColors` enum can be found in `src/components/Icons/IconTypes.tsx`.
|
|
|
242
293
|
Update an SVG icon by passing a `size` prop with a value from `IconSizes`.
|
|
243
294
|
The `IconSizes` enum can be found in`src/components/Icons/IconTypes.tsx`.
|
|
244
295
|
|
|
296
|
+
Note: `IconSizes.Default` sets the width to `100%` and the rendered icon will
|
|
297
|
+
expand to fill the full width of the parent element.
|
|
298
|
+
|
|
245
299
|
```jsx
|
|
246
300
|
// Example
|
|
247
|
-
<Icon name={IconNames.
|
|
301
|
+
<Icon name={IconNames.ActionCheckCircle} size={IconSizes.ExtraExtraLarge} />
|
|
248
302
|
```
|
|
249
303
|
|
|
250
304
|
<Canvas>
|
|
251
|
-
<Story name="Sizes
|
|
305
|
+
<Story name="Icon Sizes">{allIconsType(sizes)}</Story>
|
|
252
306
|
</Canvas>
|
|
253
307
|
|
|
254
308
|
## All Display Icons
|
|
@@ -256,8 +310,11 @@ The `IconSizes` enum can be found in`src/components/Icons/IconTypes.tsx`.
|
|
|
256
310
|
The following icons are for generic purposes. All the available icon names can
|
|
257
311
|
be found in the `IconNames` enum in `src/components/Icons/IconTypes.tsx`.
|
|
258
312
|
|
|
313
|
+
Note: All of the examples below have been rendered with the `size` prop set to
|
|
314
|
+
`IconSizes.ExtraExtraLarge`.
|
|
315
|
+
|
|
259
316
|
<Canvas withToolbar>
|
|
260
|
-
<Story name="All
|
|
317
|
+
<Story name="All Icons">{allIconsType(icons)}</Story>
|
|
261
318
|
</Canvas>
|
|
262
319
|
|
|
263
320
|
## Custom Icons
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { render } from "@testing-library/react";
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
|
+
import renderer from "react-test-renderer";
|
|
4
5
|
|
|
5
6
|
import Icon from "./Icon";
|
|
6
7
|
import { IconNames } from "./IconTypes";
|
|
@@ -27,7 +28,8 @@ describe("Icon", () => {
|
|
|
27
28
|
</Icon>
|
|
28
29
|
);
|
|
29
30
|
expect(warn).toHaveBeenCalledWith(
|
|
30
|
-
"Icon
|
|
31
|
+
"NYPL Reservoir Icon: Pass in either a `name` prop or an `svg` element " +
|
|
32
|
+
"child. Do not pass both."
|
|
31
33
|
);
|
|
32
34
|
});
|
|
33
35
|
|
|
@@ -35,7 +37,17 @@ describe("Icon", () => {
|
|
|
35
37
|
const warn = jest.spyOn(console, "warn");
|
|
36
38
|
render(<Icon />);
|
|
37
39
|
expect(warn).toHaveBeenCalledWith(
|
|
38
|
-
"Icon: Pass an icon `name` prop or an SVG child to
|
|
40
|
+
"NYPL Reservoir Icon: Pass an icon `name` prop or an SVG child to " +
|
|
41
|
+
"ensure an icon appears."
|
|
42
|
+
);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it("consoles a warning if name is not passed and a child is but it's not an SVG element", () => {
|
|
46
|
+
const warn = jest.spyOn(console, "warn");
|
|
47
|
+
render(<Icon>Not an SVG</Icon>);
|
|
48
|
+
expect(warn).toHaveBeenCalledWith(
|
|
49
|
+
"NYPL Reservoir Icon: An `svg` element must be passed to the `Icon` " +
|
|
50
|
+
"component as its child."
|
|
39
51
|
);
|
|
40
52
|
});
|
|
41
53
|
|
|
@@ -76,4 +88,41 @@ describe("Icon", () => {
|
|
|
76
88
|
);
|
|
77
89
|
expect(container.querySelector("svg")).toBeInTheDocument();
|
|
78
90
|
});
|
|
91
|
+
|
|
92
|
+
it("renders the UI snapshot correctly", () => {
|
|
93
|
+
const basic = renderer
|
|
94
|
+
.create(<Icon id="basic" name={IconNames.Download} />)
|
|
95
|
+
.toJSON();
|
|
96
|
+
const customIcon = renderer
|
|
97
|
+
.create(
|
|
98
|
+
<Icon id="customIcon">
|
|
99
|
+
<svg viewBox="0 0 24 14" xmlns="http://www.w3.org/2000/svg">
|
|
100
|
+
<path
|
|
101
|
+
fillRule="evenodd"
|
|
102
|
+
clipRule="evenodd"
|
|
103
|
+
d="M10.526 12.871L.263 1.676 1.737.324 12 11.52 22.263.324l1.474 1.352L13.474 12.87a2 2 0 01-2.948 0z"
|
|
104
|
+
/>
|
|
105
|
+
</svg>
|
|
106
|
+
</Icon>
|
|
107
|
+
)
|
|
108
|
+
.toJSON();
|
|
109
|
+
const withChakraProps = renderer
|
|
110
|
+
.create(
|
|
111
|
+
<Icon
|
|
112
|
+
id="chakra"
|
|
113
|
+
name={IconNames.Download}
|
|
114
|
+
p="20px"
|
|
115
|
+
color="ui.error.primary"
|
|
116
|
+
/>
|
|
117
|
+
)
|
|
118
|
+
.toJSON();
|
|
119
|
+
const withOtherProps = renderer
|
|
120
|
+
.create(<Icon id="props" name={IconNames.Download} data-testid="props" />)
|
|
121
|
+
.toJSON();
|
|
122
|
+
|
|
123
|
+
expect(basic).toMatchSnapshot();
|
|
124
|
+
expect(customIcon).toMatchSnapshot();
|
|
125
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
126
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
127
|
+
});
|
|
79
128
|
});
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Icon as ChakraIcon,
|
|
3
|
+
Box,
|
|
4
|
+
chakra,
|
|
5
|
+
useStyleConfig,
|
|
6
|
+
} from "@chakra-ui/react";
|
|
1
7
|
import * as React from "react";
|
|
2
|
-
import { Icon as ChakraIcon, Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
8
|
|
|
4
|
-
import generateUUID from "../../helpers/generateUUID";
|
|
5
9
|
import {
|
|
6
10
|
IconAlign,
|
|
7
11
|
IconColors,
|
|
@@ -43,77 +47,95 @@ export interface IconProps {
|
|
|
43
47
|
/**
|
|
44
48
|
* Renders SVG-based icons.
|
|
45
49
|
*/
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
50
|
+
export const Icon = chakra(
|
|
51
|
+
(props: React.PropsWithChildren<IconProps>) => {
|
|
52
|
+
const {
|
|
53
|
+
additionalStyles = {},
|
|
54
|
+
align = IconAlign.None,
|
|
55
|
+
children,
|
|
56
|
+
className,
|
|
57
|
+
color = IconColors.UiBlack,
|
|
58
|
+
decorative = true,
|
|
59
|
+
iconRotation = IconRotationTypes.Rotate0,
|
|
60
|
+
id,
|
|
61
|
+
name,
|
|
62
|
+
size = IconSizes.Default,
|
|
63
|
+
title = `${name} icon`,
|
|
64
|
+
type = IconTypes.Default,
|
|
65
|
+
...rest
|
|
66
|
+
} = props;
|
|
67
|
+
const styles = useStyleConfig("Icon", {
|
|
68
|
+
align,
|
|
69
|
+
color,
|
|
70
|
+
iconRotation,
|
|
71
|
+
size,
|
|
72
|
+
variant: type,
|
|
73
|
+
});
|
|
74
|
+
const iconProps = {
|
|
75
|
+
"aria-hidden": decorative,
|
|
76
|
+
className,
|
|
77
|
+
id,
|
|
78
|
+
role: "img",
|
|
79
|
+
title,
|
|
80
|
+
...rest,
|
|
81
|
+
};
|
|
82
|
+
let childSVG = null;
|
|
76
83
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
// Component prop validation
|
|
85
|
+
if (name && children) {
|
|
86
|
+
console.warn(
|
|
87
|
+
"NYPL Reservoir Icon: Pass in either a `name` prop or an `svg` element " +
|
|
88
|
+
"child. Do not pass both."
|
|
89
|
+
);
|
|
90
|
+
return null;
|
|
91
|
+
} else if (!name && !children) {
|
|
92
|
+
console.warn(
|
|
93
|
+
"NYPL Reservoir Icon: Pass an icon `name` prop or an SVG child to " +
|
|
94
|
+
"ensure an icon appears."
|
|
95
|
+
);
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// The user wants to render an existing icon. Load the icon and render it
|
|
100
|
+
// as a component through Chakra's Icon component. Otherwise, we're going to
|
|
101
|
+
// render the SVG child with NYPL-theme styling.
|
|
102
|
+
if (name) {
|
|
103
|
+
const SvgComponent: any = iconSvgs[name];
|
|
104
|
+
return (
|
|
105
|
+
<ChakraIcon
|
|
106
|
+
as={SvgComponent}
|
|
107
|
+
{...iconProps}
|
|
108
|
+
__css={{ ...styles, ...additionalStyles }}
|
|
109
|
+
/>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// If no `name` prop was passed, we expect a child SVG element to be passed.
|
|
114
|
+
// Apply icon props to the SVG child.
|
|
115
|
+
if (
|
|
116
|
+
(children as JSX.Element).type === "svg" ||
|
|
117
|
+
(children as JSX.Element).props?.type === "svg" ||
|
|
118
|
+
(children as JSX.Element).props?.mdxType === "svg"
|
|
119
|
+
) {
|
|
120
|
+
childSVG = React.cloneElement(children as JSX.Element, {
|
|
121
|
+
...iconProps,
|
|
122
|
+
});
|
|
123
|
+
} else {
|
|
124
|
+
console.warn(
|
|
125
|
+
"NYPL Reservoir Icon: An `svg` element must be passed to the `Icon` " +
|
|
126
|
+
"component as its child."
|
|
127
|
+
);
|
|
128
|
+
}
|
|
89
129
|
|
|
90
|
-
// The user wants to render an existing icon. Load the icon and render it
|
|
91
|
-
// as a component through Chakra's Icon component. Otherwise, we're going to
|
|
92
|
-
// render the SVG child with NYPL-theme styling.
|
|
93
|
-
if (name) {
|
|
94
|
-
const SvgComponent: any = iconSvgs[name];
|
|
95
130
|
return (
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
__css={{ ...styles, ...additionalStyles }}
|
|
100
|
-
/>
|
|
131
|
+
<Box __css={styles} {...rest}>
|
|
132
|
+
{childSVG}
|
|
133
|
+
</Box>
|
|
101
134
|
);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
(children as JSX.Element).type === "svg" ||
|
|
108
|
-
(children as JSX.Element).props.type === "svg" ||
|
|
109
|
-
(children as JSX.Element).props.mdxType === "svg"
|
|
110
|
-
) {
|
|
111
|
-
childSVG = React.cloneElement(children as JSX.Element, {
|
|
112
|
-
...iconProps,
|
|
113
|
-
});
|
|
114
|
-
} else {
|
|
115
|
-
console.warn("You must pass an `svg` element to the `Icon` component.");
|
|
116
|
-
}
|
|
135
|
+
},
|
|
136
|
+
// Pass all custom props to Chakra and override, e.g. we want the
|
|
137
|
+
// DS color prop to use the DS enum and not color strings.
|
|
138
|
+
{ shouldForwardProp: () => true }
|
|
139
|
+
);
|
|
117
140
|
|
|
118
|
-
|
|
119
|
-
}
|
|
141
|
+
export default Icon;
|
|
@@ -22,22 +22,25 @@ export enum IconColors {
|
|
|
22
22
|
UiWhite = "ui.white",
|
|
23
23
|
BrandPrimary = "brand.primary",
|
|
24
24
|
BrandSecondary = "brand.secondary",
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
SectionBlogsPrimary = "section.blogs.primary",
|
|
26
|
+
SectionBlogsSecondary = "section.blogs.secondary",
|
|
27
27
|
SectionBooksAndMorePrimary = "section.books-and-more.primary",
|
|
28
28
|
SectionBooksAndMoreSecondary = "section.books-and-more.secondary",
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
SectionEducationPrimary = "section.education.primary",
|
|
30
|
+
SectionEducationSecondary = "section.education.secondary",
|
|
31
31
|
SectionLocationsPrimary = "section.locations.primary",
|
|
32
32
|
SectionLocationsSecondary = "section.locations.secondary",
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
SectionResearchPrimary = "section.research.primary",
|
|
34
|
+
SectionResearchSecondary = "section.research.secondary",
|
|
35
35
|
SectionResearchLibraryLpa = "section.research-library.lpa",
|
|
36
36
|
SectionResearchLibrarySchomburg = "section.research-library.schomburg",
|
|
37
37
|
SectionResearchLibrarySchwartzman = "section.research-library.schwartzman",
|
|
38
|
+
SectionWhatsOnPrimary = "section.whats-on.primary",
|
|
39
|
+
SectionWhatsOnSecondary = "section.whats-on.secondary",
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
export enum IconSizes {
|
|
43
|
+
Default = "default",
|
|
41
44
|
Small = "small",
|
|
42
45
|
Medium = "medium",
|
|
43
46
|
Large = "large",
|