@nypl/design-system-react-components 0.23.4 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -1
- package/README.md +46 -11
- package/dist/components/Accordion/Accordion.d.ts +14 -14
- package/dist/components/Autosuggest/Autosuggest.stories.d.ts +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +11 -14
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +6 -0
- package/dist/components/Button/Button.d.ts +6 -13
- package/dist/components/Button/ButtonTypes.d.ts +5 -3
- package/dist/components/Card/Card.d.ts +59 -10
- package/dist/components/Card/CardTypes.d.ts +19 -0
- package/dist/components/CardEdition/CardEdition.d.ts +21 -0
- package/dist/components/{StyleGuide/Colors.stories.d.ts → CardEdition/CardEdition.stories.d.ts} +5 -2
- package/dist/components/Checkbox/Checkbox.d.ts +21 -16
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +43 -0
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +4 -0
- package/dist/components/DatePicker/DatePicker.d.ts +79 -0
- package/dist/components/DatePicker/DatePickerTypes.d.ts +5 -0
- package/dist/components/Form/Form.d.ts +16 -8
- package/dist/components/Form/FormTypes.d.ts +2 -0
- package/dist/components/Grid/GridTypes.d.ts +9 -0
- package/dist/components/Grid/SimpleGrid.d.ts +14 -0
- package/dist/components/Heading/Heading.d.ts +9 -11
- package/dist/components/Heading/{HeadingDisplaySizes.d.ts → HeadingTypes.d.ts} +8 -0
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +2 -1
- package/dist/components/Hero/Hero.d.ts +19 -14
- package/dist/components/Hero/HeroTypes.d.ts +10 -5
- package/dist/components/Icons/Icon.d.ts +13 -16
- package/dist/components/Icons/IconSvgs.d.ts +4 -0
- package/dist/components/Icons/IconTypes.d.ts +78 -60
- package/dist/components/Image/Image.stories.d.ts +2 -1
- package/dist/components/Label/Label.d.ts +10 -26
- package/dist/components/Link/Link.d.ts +8 -12
- package/dist/components/List/List.stories.d.ts +1 -0
- package/dist/components/Radio/Radio.d.ts +30 -24
- package/dist/components/RadioGroup/RadioGroup.d.ts +40 -0
- package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +4 -0
- package/dist/components/SearchBar/SearchBar.d.ts +45 -27
- package/dist/components/Select/Select.d.ts +34 -35
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +1 -1
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +2 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +8 -6
- package/dist/components/StatusBadge/StatusBadgeTypes.d.ts +5 -0
- package/dist/components/Tabs/Tabs.d.ts +25 -0
- package/dist/components/Template/Template.d.ts +91 -0
- package/dist/components/Text/Text.d.ts +16 -0
- package/dist/components/Text/TextTypes.d.ts +6 -0
- package/dist/components/TextInput/TextInput.d.ts +37 -30
- package/dist/components/TextInput/TextInputTypes.d.ts +5 -0
- package/dist/design-system-react-components.cjs.development.js +4102 -917
- 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 +4023 -920
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +23 -5
- package/dist/resources.scss +133 -24
- package/dist/styles.css +1 -1
- package/dist/theme/components/accordion.d.ts +25 -0
- package/dist/theme/components/breadcrumb.d.ts +90 -0
- package/dist/theme/components/button.d.ts +109 -0
- package/dist/theme/components/checkbox.d.ts +91 -0
- package/dist/theme/components/customCheckboxGroup.d.ts +18 -0
- package/dist/theme/components/customRadioGroup.d.ts +18 -0
- package/dist/theme/components/global.d.ts +55 -0
- package/dist/theme/components/globalMixins.d.ts +15 -0
- package/dist/theme/components/heading.d.ts +110 -0
- package/dist/theme/components/hero.d.ts +492 -0
- package/dist/theme/components/icon.d.ts +13 -0
- package/dist/theme/components/label.d.ts +16 -0
- package/dist/theme/components/link.d.ts +45 -0
- package/dist/theme/components/radio.d.ts +95 -0
- package/dist/theme/components/searchBar.d.ts +20 -0
- package/dist/theme/components/select.d.ts +58 -0
- package/dist/theme/components/statusBadge.d.ts +25 -0
- package/dist/theme/components/tabs.d.ts +85 -0
- package/dist/theme/components/template.d.ts +105 -0
- package/dist/theme/components/text.d.ts +20 -0
- package/dist/theme/components/textInput.d.ts +105 -0
- package/dist/theme/foundations/breakpoints.d.ts +23 -0
- package/dist/theme/foundations/colors.d.ts +3 -0
- package/dist/theme/foundations/global.d.ts +23 -0
- package/dist/theme/foundations/shadows.d.ts +4 -0
- package/dist/theme/foundations/spacing.d.ts +77 -0
- package/dist/theme/foundations/typography.d.ts +8 -0
- package/dist/theme/index.d.ts +20 -0
- package/dist/theme/provider.d.ts +5 -0
- package/dist/theme/types.d.ts +1 -0
- package/dist/utils/utils.d.ts +6 -0
- package/package.json +9 -2
- package/src/components/Accordion/Accordion.stories.mdx +233 -33
- package/src/components/Accordion/Accordion.test.tsx +135 -19
- package/src/components/Accordion/Accordion.tsx +81 -56
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +1 -1
- package/src/components/Autosuggest/_Autosuggest.scss +2 -2
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +57 -56
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +31 -25
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +71 -73
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +6 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +100 -0
- package/src/components/Button/Button.stories.mdx +125 -138
- package/src/components/Button/Button.test.tsx +65 -11
- package/src/components/Button/Button.tsx +72 -68
- package/src/components/Button/ButtonTypes.tsx +4 -2
- package/src/components/Button/_Button.scss +7 -92
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +58 -3
- package/src/components/Card/Card.stories.mdx +694 -0
- package/src/components/Card/Card.test.tsx +97 -102
- package/src/components/Card/Card.tsx +182 -31
- package/src/components/Card/CardTypes.tsx +21 -0
- package/src/components/Card/_Card.scss +234 -49
- package/src/components/{Card/Card.stories.tsx → CardEdition/CardEdition.stories.tsx} +32 -22
- package/src/components/CardEdition/CardEdition.test.tsx +395 -0
- package/src/components/CardEdition/CardEdition.tsx +60 -0
- package/src/components/CardEdition/_CardEdition.scss +138 -0
- package/src/components/Chakra/Box.stories.mdx +57 -0
- package/src/components/Chakra/Center.stories.mdx +99 -0
- package/src/components/Chakra/Grid.stories.mdx +79 -0
- package/src/components/Chakra/Stack.stories.mdx +93 -0
- package/src/components/Checkbox/Checkbox.stories.mdx +57 -35
- package/src/components/Checkbox/Checkbox.test.tsx +117 -147
- package/src/components/Checkbox/Checkbox.tsx +76 -50
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +325 -0
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +249 -0
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +345 -0
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +148 -0
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +4 -0
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +1360 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +284 -0
- package/src/components/DatePicker/DatePicker.test.tsx +657 -0
- package/src/components/DatePicker/DatePicker.tsx +396 -0
- package/src/components/DatePicker/DatePickerTypes.tsx +5 -0
- package/src/components/DatePicker/_DatePicker.scss +76 -0
- package/src/components/Form/Form.stories.mdx +130 -27
- package/src/components/Form/Form.test.tsx +78 -36
- package/src/components/Form/Form.tsx +53 -19
- package/src/components/Form/FormTypes.tsx +3 -0
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +38 -0
- package/src/components/Grid/GridTypes.tsx +9 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +275 -0
- package/src/components/Grid/SimpleGrid.test.tsx +66 -0
- package/src/components/Grid/SimpleGrid.tsx +37 -0
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +8 -0
- package/src/components/Heading/Heading.stories.mdx +63 -33
- package/src/components/Heading/Heading.test.tsx +24 -16
- package/src/components/Heading/Heading.tsx +54 -38
- package/src/components/Heading/{HeadingDisplaySizes.tsx → HeadingTypes.tsx} +9 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +2 -1
- package/src/components/HelperErrorText/_HelperErrorText.scss +1 -1
- package/src/components/Hero/Hero.stories.mdx +195 -85
- package/src/components/Hero/Hero.test.tsx +544 -113
- package/src/components/Hero/Hero.tsx +80 -93
- package/src/components/Hero/HeroTypes.tsx +17 -5
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +307 -0
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +6 -1
- package/src/components/HorizontalRule/_HorizontalRule.scss +1 -1
- package/src/components/Icons/Icon.stories.mdx +89 -74
- package/src/components/Icons/Icon.test.tsx +30 -22
- package/src/components/Icons/Icon.tsx +63 -61
- package/src/components/Icons/IconSvgs.tsx +8 -0
- package/src/components/Icons/IconTypes.tsx +80 -60
- package/src/components/Image/Image.stories.tsx +2 -1
- package/src/components/Input/_Input.scss +2 -2
- package/src/components/Label/Label.stories.mdx +77 -0
- package/src/components/Label/Label.test.tsx +43 -12
- package/src/components/Label/Label.tsx +28 -45
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +41 -0
- package/src/components/Link/Link.stories.mdx +47 -41
- package/src/components/Link/Link.test.tsx +33 -44
- package/src/components/Link/Link.tsx +114 -100
- package/src/components/List/List.stories.mdx +7 -3
- package/src/components/List/List.stories.tsx +14 -9
- package/src/components/List/List.test.tsx +12 -8
- package/src/components/List/List.tsx +9 -7
- package/src/components/List/_List.scss +3 -3
- package/src/components/Modal/Modal.stories.mdx +7 -3
- package/src/components/Modal/_Modal.scss +1 -1
- package/src/components/Notification/Notification.stories.mdx +99 -65
- package/src/components/Notification/Notification.test.tsx +3 -16
- package/src/components/Notification/Notification.tsx +12 -12
- package/src/components/Notification/_Notification.scss +5 -4
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +1 -1
- package/src/components/Pagination/Pagination.stories.mdx +7 -1
- package/src/components/Pagination/Pagination.test.tsx +16 -10
- package/src/components/Radio/Radio.stories.mdx +57 -46
- package/src/components/Radio/Radio.test.tsx +92 -138
- package/src/components/Radio/Radio.tsx +70 -69
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +250 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +247 -0
- package/src/components/RadioGroup/RadioGroup.test.tsx +327 -0
- package/src/components/RadioGroup/RadioGroup.tsx +154 -0
- package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +4 -0
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1101 -0
- package/src/components/SearchBar/SearchBar.Test.tsx +151 -16
- package/src/components/SearchBar/SearchBar.stories.mdx +196 -224
- package/src/components/SearchBar/SearchBar.tsx +151 -46
- package/src/components/Select/Select.stories.mdx +193 -168
- package/src/components/Select/Select.test.tsx +129 -324
- package/src/components/Select/Select.tsx +120 -160
- package/src/components/Select/SelectTypes.tsx +4 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +18 -29
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +7 -7
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +4 -2
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +2 -2
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +3 -3
- package/src/components/StatusBadge/StatusBadge.stories.mdx +91 -0
- package/src/components/StatusBadge/StatusBadge.test.tsx +35 -7
- package/src/components/StatusBadge/StatusBadge.tsx +24 -25
- package/src/components/StatusBadge/StatusBadgeTypes.tsx +5 -0
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +28 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +112 -90
- package/src/components/StyleGuide/Buttons.stories.mdx +98 -100
- package/src/components/StyleGuide/Colors.stories.mdx +336 -0
- package/src/components/StyleGuide/Forms.stories.mdx +85 -0
- package/src/components/StyleGuide/Iconography.stories.mdx +86 -93
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -1
- package/src/components/StyleGuide/Typography.stories.mdx +164 -166
- package/src/components/StyleGuide/UIDocCard.tsx +4 -4
- package/src/components/Tabs/Tabs.stories.mdx +221 -0
- package/src/components/Tabs/Tabs.test.tsx +264 -0
- package/src/components/Tabs/Tabs.tsx +220 -0
- package/src/components/Template/Template.stories.mdx +574 -0
- package/src/components/Template/Template.test.tsx +124 -0
- package/src/components/Template/Template.tsx +226 -0
- package/src/components/Text/Text.stories.mdx +70 -0
- package/src/components/Text/Text.test.tsx +63 -0
- package/src/components/Text/Text.tsx +55 -0
- package/src/components/Text/TextTypes.tsx +6 -0
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +33 -0
- package/src/components/TextInput/TextInput.stories.mdx +90 -90
- package/src/components/TextInput/TextInput.test.tsx +103 -83
- package/src/components/TextInput/TextInput.tsx +108 -91
- package/src/components/TextInput/TextInputTypes.tsx +6 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +2 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +4 -2
- package/src/components/VideoPlayer/_VideoPlayer.scss +1 -1
- package/src/docs/Chakra.stories.mdx +341 -0
- package/src/docs/Intro.stories.mdx +31 -24
- package/src/index.ts +70 -5
- package/src/styles/01-colors/_colors-brand.scss +6 -4
- package/src/styles/01-colors/_colors-utility.scss +14 -15
- package/src/styles/03-space/_space-inline.scss +47 -7
- package/src/styles/03-space/_space-inset.scss +33 -5
- package/src/styles/03-space/_space-stack.scss +48 -8
- package/src/styles/base/_02-breakpoints.scss +5 -4
- package/src/styles/base/_04-base.scss +2 -1
- package/src/styles/base/_place-holder.scss +1 -1
- package/src/styles/base/_typography.scss +1 -29
- package/src/styles.scss +22 -25
- package/src/theme/components/accordion.ts +30 -0
- package/src/theme/components/breadcrumb.ts +77 -0
- package/src/theme/components/button.ts +125 -0
- package/src/theme/components/checkbox.ts +107 -0
- package/src/theme/components/customCheckboxGroup.ts +12 -0
- package/src/theme/components/customRadioGroup.ts +12 -0
- package/src/theme/components/global.ts +71 -0
- package/src/theme/components/globalMixins.ts +16 -0
- package/src/theme/components/heading.ts +72 -0
- package/src/theme/components/hero.ts +239 -0
- package/src/theme/components/icon.ts +79 -0
- package/src/theme/components/label.ts +17 -0
- package/src/theme/components/link.ts +47 -0
- package/src/theme/components/radio.ts +106 -0
- package/src/theme/components/searchBar.ts +21 -0
- package/src/theme/components/select.ts +50 -0
- package/src/theme/components/statusBadge.ts +27 -0
- package/src/theme/components/tabs.ts +79 -0
- package/src/theme/components/template.ts +114 -0
- package/src/theme/components/text.ts +31 -0
- package/src/theme/components/textInput.ts +61 -0
- package/src/theme/foundations/breakpoints.ts +24 -0
- package/src/theme/foundations/colors.ts +208 -0
- package/src/theme/foundations/global.ts +26 -0
- package/src/theme/foundations/shadows.ts +5 -0
- package/src/theme/foundations/spacing.ts +85 -0
- package/src/theme/foundations/typography.ts +35 -0
- package/src/theme/index.ts +88 -0
- package/src/theme/provider.tsx +9 -0
- package/src/theme/types.ts +1 -0
- package/src/utils/componentCategories.ts +56 -21
- package/src/utils/utils.ts +13 -0
- package/dist/components/Accordion/Accordion.stories.d.ts +0 -5
- package/dist/components/Card/Card.stories.d.ts +0 -27
- package/dist/components/Label/Label.stories.d.ts +0 -12
- package/dist/components/StatusBadge/StatusBadge.stories.d.ts +0 -8
- package/dist/components/Template/Template.stories.d.ts +0 -29
- package/src/components/Accordion/Accordion.stories.tsx +0 -65
- package/src/components/Accordion/_Accordion.scss +0 -81
- package/src/components/Breadcrumbs/_Breadcrumbs.scss +0 -97
- package/src/components/Checkbox/_Checkbox.scss +0 -97
- package/src/components/Form/_Form.scss +0 -28
- package/src/components/Heading/_Heading.scss +0 -163
- package/src/components/Hero/_Hero.scss +0 -256
- package/src/components/Icons/_Icons.scss +0 -116
- package/src/components/Label/Label.stories.tsx +0 -30
- package/src/components/Label/_Label.scss +0 -22
- package/src/components/Link/_Link.scss +0 -73
- package/src/components/Radio/_Radio.scss +0 -84
- package/src/components/SearchBar/_SearchBar.scss +0 -16
- package/src/components/Select/_Select.scss +0 -82
- package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -33
- package/src/components/StatusBadge/_StatusBadge.scss +0 -23
- package/src/components/StyleGuide/Colors.stories.tsx +0 -288
- package/src/components/Template/Template.stories.tsx +0 -85
- package/src/components/Template/_Template.scss +0 -63
- package/src/components/TextInput/_TextInput.scss +0 -59
|
@@ -1,114 +1,109 @@
|
|
|
1
|
-
// OH-30 Header with Image Right
|
|
2
1
|
import * as React from "react";
|
|
3
|
-
import
|
|
4
|
-
|
|
2
|
+
import { Box, useMultiStyleConfig } from "@chakra-ui/react";
|
|
3
|
+
|
|
4
|
+
import { HeroTypes, HeroSecondaryTypes } from "./HeroTypes";
|
|
5
5
|
|
|
6
6
|
export interface HeroProps {
|
|
7
|
-
/** Optional hex color value used to override the default background
|
|
7
|
+
/** Optional hex color value used to override the default background
|
|
8
|
+
* color for a given `Hero` variation.
|
|
9
|
+
* Note: not all `Hero` variations utilize this prop. */
|
|
8
10
|
backgroundColor?: string;
|
|
9
|
-
/** Optional path to an image that will be used as a background image for the
|
|
11
|
+
/** Optional path to an image that will be used as a background image for the
|
|
12
|
+
* `Hero` component.
|
|
13
|
+
* Note: not all `Hero` variations utilize this prop. */
|
|
10
14
|
backgroundImageSrc?: string;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
className?: string;
|
|
15
|
-
/** Optional hex color value used to override the default text color for a given `Hero` variation; Note: not all `Hero` variations utilize this prop */
|
|
15
|
+
/** Optional hex color value used to override the default text color for a
|
|
16
|
+
* given `Hero` variation.
|
|
17
|
+
* Note: not all `Hero` variations utilize this prop. */
|
|
16
18
|
foregroundColor?: string;
|
|
17
|
-
/**
|
|
19
|
+
/** Optional heading element. */
|
|
18
20
|
heading?: JSX.Element;
|
|
19
21
|
/** Used to control how the `Hero` component will be rendered. */
|
|
20
22
|
heroType?: HeroTypes;
|
|
21
|
-
/** Optional `Image` component used for SECONDARY, FIFTYFIFTY and CAMPAIGN
|
|
23
|
+
/** Optional `Image` component used for SECONDARY, FIFTYFIFTY and CAMPAIGN
|
|
24
|
+
* `Hero` types; Note: `image` can only be used in conjunction with
|
|
25
|
+
* `backgroundImageSrc` for CAMPAIGN the `Hero` type.
|
|
26
|
+
* Note: not all `Hero` variations utilize this prop. */
|
|
22
27
|
image?: JSX.Element;
|
|
23
|
-
/** Optional details area that contains location data
|
|
28
|
+
/** Optional details area that contains location data.
|
|
29
|
+
* Note: not all `Hero` variations utilize this prop. */
|
|
24
30
|
locationDetails?: JSX.Element;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
subHeaderText?: JSX.Element;
|
|
31
|
+
/** Optional string used for the subheader that displays
|
|
32
|
+
* underneath the heading element. */
|
|
33
|
+
subHeaderText?: string | JSX.Element;
|
|
29
34
|
}
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
// Used to map between HeroTypes enum values and Chakra variant options.
|
|
37
|
+
const variantMap = {};
|
|
38
|
+
for (const type in HeroTypes) {
|
|
39
|
+
variantMap[HeroTypes[type]] = HeroTypes[type];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Map the HeroTypes to the Hero Chakra theme variant object. If a wrong
|
|
43
|
+
* value is passed (typically in non-Typescript scenarios), then the default
|
|
44
|
+
* is the "primary" variant.
|
|
45
|
+
*/
|
|
46
|
+
const getVariant = (type) => variantMap[type] || HeroTypes.Primary;
|
|
33
47
|
|
|
48
|
+
export default function Hero(props: React.PropsWithChildren<HeroProps>) {
|
|
34
49
|
const {
|
|
35
50
|
backgroundColor,
|
|
36
51
|
backgroundImageSrc,
|
|
37
|
-
blockName,
|
|
38
|
-
className,
|
|
39
52
|
foregroundColor,
|
|
40
53
|
heading,
|
|
41
54
|
heroType,
|
|
42
55
|
image,
|
|
43
|
-
modifiers = [],
|
|
44
56
|
locationDetails,
|
|
45
57
|
subHeaderText,
|
|
46
58
|
} = props;
|
|
59
|
+
const variant = getVariant(heroType);
|
|
60
|
+
const styles = useMultiStyleConfig("Hero", { variant });
|
|
61
|
+
const headingStyles = styles.heading;
|
|
62
|
+
// We want to add `Hero`-specific styling to the `Heading` component.
|
|
63
|
+
const finalHeading =
|
|
64
|
+
heading && React.cloneElement(heading, { sx: headingStyles });
|
|
65
|
+
let backgroundImageStyle = {};
|
|
66
|
+
let contentBoxStyling = {};
|
|
47
67
|
|
|
48
68
|
if (heroType === HeroTypes.Primary) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (heroType === HeroTypes.Primary && !backgroundImageSrc) {
|
|
61
|
-
console.warn(
|
|
62
|
-
`Warning: it is recommended to use the "backgroundImageSrc" prop for PRIMARY hero`
|
|
63
|
-
);
|
|
64
|
-
modifiers.push("warning");
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (heroType === HeroTypes.Primary && image) {
|
|
69
|
+
if (!backgroundImageSrc) {
|
|
70
|
+
console.warn(
|
|
71
|
+
`Warning: it is recommended to use the "backgroundImageSrc" prop for PRIMARY hero.`
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
if (image) {
|
|
75
|
+
console.warn(
|
|
76
|
+
`Warning: the "image" prop has been passed, but PRIMARY hero will not use it.`
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
} else if (locationDetails) {
|
|
68
80
|
console.warn(
|
|
69
|
-
`Warning:
|
|
81
|
+
`Warning: Please provide "locationDetails" only to PRIMARY hero.`
|
|
70
82
|
);
|
|
71
|
-
modifiers.push("warning");
|
|
72
83
|
}
|
|
73
|
-
|
|
74
|
-
if (heroType === HeroTypes.Secondary && backgroundImageSrc) {
|
|
84
|
+
if (HeroSecondaryTypes.includes(heroType) && backgroundImageSrc) {
|
|
75
85
|
console.warn(
|
|
76
|
-
`Warning: the "backgroundImageSrc" prop has been passed, but SECONDARY hero will not use it
|
|
86
|
+
`Warning: the "backgroundImageSrc" prop has been passed, but SECONDARY hero will not use it.`
|
|
77
87
|
);
|
|
78
|
-
modifiers.push("warning");
|
|
79
88
|
}
|
|
80
|
-
|
|
81
89
|
if (heroType === HeroTypes.Tertiary && (backgroundImageSrc || image)) {
|
|
82
|
-
console.warn(`Warning: TERTIARY hero will not use any of the image props
|
|
83
|
-
modifiers.push("warning");
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (heroType === HeroTypes.FiftyFifty && backgroundImageSrc) {
|
|
87
|
-
console.warn(
|
|
88
|
-
`Warning: the "backgroundImageSrc" prop has been passed, but FIFTYFIFTY hero will not use it`
|
|
89
|
-
);
|
|
90
|
-
modifiers.push("warning");
|
|
90
|
+
console.warn(`Warning: TERTIARY hero will not use any of the image props.`);
|
|
91
91
|
}
|
|
92
|
-
|
|
93
92
|
if (heroType === HeroTypes.Campaign && (!backgroundImageSrc || !image)) {
|
|
94
93
|
console.warn(
|
|
95
|
-
`Warning: it is recommended to use both "backgroundImageSrc" and "image" props for CAMPAIGN hero
|
|
94
|
+
`Warning: it is recommended to use both "backgroundImageSrc" and "image" props for CAMPAIGN hero.`
|
|
96
95
|
);
|
|
97
|
-
modifiers.push("warning");
|
|
98
96
|
}
|
|
99
|
-
|
|
100
|
-
if (heroType !== HeroTypes.Primary && locationDetails) {
|
|
97
|
+
if (heroType === HeroTypes.FiftyFifty && backgroundImageSrc) {
|
|
101
98
|
console.warn(
|
|
102
|
-
`Warning:
|
|
99
|
+
`Warning: the "backgroundImageSrc" prop has been passed, but FIFTYFIFTY hero will not use it.`
|
|
103
100
|
);
|
|
104
|
-
modifiers.push("warning");
|
|
105
101
|
}
|
|
106
102
|
|
|
107
|
-
let backgroundImageStyle = {};
|
|
108
103
|
if (heroType === HeroTypes.Primary) {
|
|
109
104
|
backgroundImageStyle = backgroundImageSrc
|
|
110
105
|
? { backgroundImage: `url(${backgroundImageSrc})` }
|
|
111
|
-
:
|
|
106
|
+
: {};
|
|
112
107
|
} else if (heroType === HeroTypes.Campaign) {
|
|
113
108
|
backgroundImageStyle = backgroundImageSrc
|
|
114
109
|
? { backgroundImage: `url(${backgroundImageSrc})` }
|
|
@@ -120,63 +115,55 @@ export default function Hero(props: React.PropsWithChildren<HeroProps>) {
|
|
|
120
115
|
backgroundImageStyle = { backgroundColor };
|
|
121
116
|
}
|
|
122
117
|
|
|
123
|
-
|
|
124
|
-
if (
|
|
125
|
-
heroType === HeroTypes.Primary ||
|
|
126
|
-
heroType === HeroTypes.Tertiary ||
|
|
127
|
-
heroType === HeroTypes.FiftyFifty ||
|
|
128
|
-
heroType === HeroTypes.Campaign
|
|
129
|
-
) {
|
|
118
|
+
if (!HeroSecondaryTypes.includes(heroType)) {
|
|
130
119
|
contentBoxStyling = {
|
|
131
120
|
color: foregroundColor,
|
|
132
121
|
backgroundColor,
|
|
133
122
|
};
|
|
134
|
-
} else {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
);
|
|
139
|
-
modifiers.push("warning");
|
|
140
|
-
}
|
|
123
|
+
} else if (foregroundColor || backgroundColor) {
|
|
124
|
+
console.warn(
|
|
125
|
+
`Warning: the "foregroundColor" and/or "backgroundColor" props have been passed, but SECONDARY Hero will not use them.`
|
|
126
|
+
);
|
|
141
127
|
}
|
|
142
128
|
|
|
143
129
|
const childrenToRender =
|
|
144
130
|
heroType === HeroTypes.Campaign ? (
|
|
145
131
|
<>
|
|
146
132
|
{image}
|
|
147
|
-
<
|
|
148
|
-
{
|
|
133
|
+
<Box __css={styles.interior}>
|
|
134
|
+
{finalHeading}
|
|
149
135
|
{subHeaderText}
|
|
150
|
-
</
|
|
136
|
+
</Box>
|
|
151
137
|
</>
|
|
152
138
|
) : (
|
|
153
139
|
<>
|
|
154
140
|
{heroType !== HeroTypes.Primary &&
|
|
155
141
|
heroType !== HeroTypes.Tertiary &&
|
|
156
142
|
image}
|
|
157
|
-
{
|
|
158
|
-
{heroType === HeroTypes.Tertiary ? (
|
|
143
|
+
{finalHeading}
|
|
144
|
+
{heroType === HeroTypes.Tertiary && subHeaderText ? (
|
|
159
145
|
<p>{subHeaderText}</p>
|
|
160
146
|
) : (
|
|
161
|
-
subHeaderText
|
|
147
|
+
<Box __css={styles.bodyText}>{subHeaderText}</Box>
|
|
162
148
|
)}
|
|
163
149
|
</>
|
|
164
150
|
);
|
|
165
151
|
|
|
166
152
|
return (
|
|
167
|
-
<
|
|
168
|
-
|
|
153
|
+
<Box
|
|
154
|
+
data-testid="hero"
|
|
169
155
|
data-responsive-background-image
|
|
170
156
|
style={backgroundImageStyle}
|
|
157
|
+
__css={styles}
|
|
171
158
|
>
|
|
172
|
-
<
|
|
173
|
-
|
|
159
|
+
<Box
|
|
160
|
+
data-testid="hero-content"
|
|
174
161
|
style={contentBoxStyling}
|
|
162
|
+
__css={styles.content}
|
|
175
163
|
>
|
|
176
164
|
{childrenToRender}
|
|
177
|
-
</
|
|
178
|
-
|
|
165
|
+
</Box>
|
|
179
166
|
{locationDetails}
|
|
180
|
-
</
|
|
167
|
+
</Box>
|
|
181
168
|
);
|
|
182
169
|
}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
export enum HeroTypes {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
Primary = "primary",
|
|
3
|
+
Secondary = "secondary",
|
|
4
|
+
SecondaryBooksAndMore = "secondaryBooksAndMore",
|
|
5
|
+
SecondaryLocations = "secondaryLocations",
|
|
6
|
+
SecondaryResearch = "secondaryResearch",
|
|
7
|
+
SecondaryWhatsOn = "secondaryWhatsOn",
|
|
8
|
+
Tertiary = "tertiary",
|
|
9
|
+
Campaign = "campaign",
|
|
10
|
+
FiftyFifty = "fiftyfifty",
|
|
7
11
|
}
|
|
12
|
+
|
|
13
|
+
export const HeroSecondaryTypes = [
|
|
14
|
+
HeroTypes.Secondary,
|
|
15
|
+
HeroTypes.SecondaryBooksAndMore,
|
|
16
|
+
HeroTypes.SecondaryLocations,
|
|
17
|
+
HeroTypes.SecondaryResearch,
|
|
18
|
+
HeroTypes.SecondaryWhatsOn,
|
|
19
|
+
];
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Hero Renders the UI snapshot correctly 1`] = `
|
|
4
|
+
<div
|
|
5
|
+
className="css-0"
|
|
6
|
+
data-responsive-background-image={true}
|
|
7
|
+
data-testid="hero"
|
|
8
|
+
style={
|
|
9
|
+
Object {
|
|
10
|
+
"backgroundImage": "url(https://placeimg.com/1600/800/arch)",
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
>
|
|
14
|
+
<div
|
|
15
|
+
className="css-0"
|
|
16
|
+
data-testid="hero-content"
|
|
17
|
+
style={
|
|
18
|
+
Object {
|
|
19
|
+
"backgroundColor": undefined,
|
|
20
|
+
"color": undefined,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
>
|
|
24
|
+
<h1
|
|
25
|
+
className="chakra-heading css-0"
|
|
26
|
+
id="primary-hero"
|
|
27
|
+
>
|
|
28
|
+
Hero Primary
|
|
29
|
+
</h1>
|
|
30
|
+
<div
|
|
31
|
+
className="css-0"
|
|
32
|
+
>
|
|
33
|
+
Example Subtitle
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
exports[`Hero Renders the UI snapshot correctly 2`] = `
|
|
40
|
+
<div
|
|
41
|
+
className="css-0"
|
|
42
|
+
data-responsive-background-image={true}
|
|
43
|
+
data-testid="hero"
|
|
44
|
+
style={Object {}}
|
|
45
|
+
>
|
|
46
|
+
<div
|
|
47
|
+
className="css-0"
|
|
48
|
+
data-testid="hero-content"
|
|
49
|
+
style={Object {}}
|
|
50
|
+
>
|
|
51
|
+
<img
|
|
52
|
+
alt="Image example"
|
|
53
|
+
className="image "
|
|
54
|
+
src="https://placeimg.com/800/400/animals"
|
|
55
|
+
/>
|
|
56
|
+
<h1
|
|
57
|
+
className="chakra-heading css-0"
|
|
58
|
+
id="secondary-hero"
|
|
59
|
+
>
|
|
60
|
+
Hero Secondary
|
|
61
|
+
</h1>
|
|
62
|
+
<div
|
|
63
|
+
className="css-0"
|
|
64
|
+
>
|
|
65
|
+
Explore our collection of hundreds of online resources and databases. Use our free online content to help with your research, whether it's finding a single article, tracing a family tree, learning a new language, or anything in between.
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
`;
|
|
70
|
+
|
|
71
|
+
exports[`Hero Renders the UI snapshot correctly 3`] = `
|
|
72
|
+
<div
|
|
73
|
+
className="css-0"
|
|
74
|
+
data-responsive-background-image={true}
|
|
75
|
+
data-testid="hero"
|
|
76
|
+
style={Object {}}
|
|
77
|
+
>
|
|
78
|
+
<div
|
|
79
|
+
className="css-0"
|
|
80
|
+
data-testid="hero-content"
|
|
81
|
+
style={Object {}}
|
|
82
|
+
>
|
|
83
|
+
<img
|
|
84
|
+
alt="Image example"
|
|
85
|
+
className="image "
|
|
86
|
+
src="https://placeimg.com/800/400/animals"
|
|
87
|
+
/>
|
|
88
|
+
<h1
|
|
89
|
+
className="chakra-heading css-0"
|
|
90
|
+
id="secondary-hero"
|
|
91
|
+
>
|
|
92
|
+
Hero Secondary Books and More
|
|
93
|
+
</h1>
|
|
94
|
+
<div
|
|
95
|
+
className="css-0"
|
|
96
|
+
>
|
|
97
|
+
Explore our collection of hundreds of online resources and databases. Use our free online content to help with your research, whether it's finding a single article, tracing a family tree, learning a new language, or anything in between.
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
`;
|
|
102
|
+
|
|
103
|
+
exports[`Hero Renders the UI snapshot correctly 4`] = `
|
|
104
|
+
<div
|
|
105
|
+
className="css-0"
|
|
106
|
+
data-responsive-background-image={true}
|
|
107
|
+
data-testid="hero"
|
|
108
|
+
style={Object {}}
|
|
109
|
+
>
|
|
110
|
+
<div
|
|
111
|
+
className="css-0"
|
|
112
|
+
data-testid="hero-content"
|
|
113
|
+
style={Object {}}
|
|
114
|
+
>
|
|
115
|
+
<img
|
|
116
|
+
alt="Image example"
|
|
117
|
+
className="image "
|
|
118
|
+
src="https://placeimg.com/800/400/animals"
|
|
119
|
+
/>
|
|
120
|
+
<h1
|
|
121
|
+
className="chakra-heading css-0"
|
|
122
|
+
id="secondary-hero"
|
|
123
|
+
>
|
|
124
|
+
Hero Secondary Locations
|
|
125
|
+
</h1>
|
|
126
|
+
<div
|
|
127
|
+
className="css-0"
|
|
128
|
+
>
|
|
129
|
+
Explore our collection of hundreds of online resources and databases. Use our free online content to help with your research, whether it's finding a single article, tracing a family tree, learning a new language, or anything in between.
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
`;
|
|
134
|
+
|
|
135
|
+
exports[`Hero Renders the UI snapshot correctly 5`] = `
|
|
136
|
+
<div
|
|
137
|
+
className="css-0"
|
|
138
|
+
data-responsive-background-image={true}
|
|
139
|
+
data-testid="hero"
|
|
140
|
+
style={Object {}}
|
|
141
|
+
>
|
|
142
|
+
<div
|
|
143
|
+
className="css-0"
|
|
144
|
+
data-testid="hero-content"
|
|
145
|
+
style={Object {}}
|
|
146
|
+
>
|
|
147
|
+
<img
|
|
148
|
+
alt="Image example"
|
|
149
|
+
className="image "
|
|
150
|
+
src="https://placeimg.com/800/400/animals"
|
|
151
|
+
/>
|
|
152
|
+
<h1
|
|
153
|
+
className="chakra-heading css-0"
|
|
154
|
+
id="secondary-hero"
|
|
155
|
+
>
|
|
156
|
+
Hero Secondary
|
|
157
|
+
</h1>
|
|
158
|
+
<div
|
|
159
|
+
className="css-0"
|
|
160
|
+
>
|
|
161
|
+
Explore our collection of hundreds of online resources and databases. Use our free online content to help with your research, whether it's finding a single article, tracing a family tree, learning a new language, or anything in between.
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
`;
|
|
166
|
+
|
|
167
|
+
exports[`Hero Renders the UI snapshot correctly 6`] = `
|
|
168
|
+
<div
|
|
169
|
+
className="css-0"
|
|
170
|
+
data-responsive-background-image={true}
|
|
171
|
+
data-testid="hero"
|
|
172
|
+
style={Object {}}
|
|
173
|
+
>
|
|
174
|
+
<div
|
|
175
|
+
className="css-0"
|
|
176
|
+
data-testid="hero-content"
|
|
177
|
+
style={Object {}}
|
|
178
|
+
>
|
|
179
|
+
<img
|
|
180
|
+
alt="Image example"
|
|
181
|
+
className="image "
|
|
182
|
+
src="https://placeimg.com/800/400/animals"
|
|
183
|
+
/>
|
|
184
|
+
<h1
|
|
185
|
+
className="chakra-heading css-0"
|
|
186
|
+
id="secondary-hero"
|
|
187
|
+
>
|
|
188
|
+
Hero Secondary What's On
|
|
189
|
+
</h1>
|
|
190
|
+
<div
|
|
191
|
+
className="css-0"
|
|
192
|
+
>
|
|
193
|
+
Explore our collection of hundreds of online resources and databases. Use our free online content to help with your research, whether it's finding a single article, tracing a family tree, learning a new language, or anything in between.
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
`;
|
|
198
|
+
|
|
199
|
+
exports[`Hero Renders the UI snapshot correctly 7`] = `
|
|
200
|
+
<div
|
|
201
|
+
className="css-0"
|
|
202
|
+
data-responsive-background-image={true}
|
|
203
|
+
data-testid="hero"
|
|
204
|
+
style={
|
|
205
|
+
Object {
|
|
206
|
+
"backgroundColor": undefined,
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
>
|
|
210
|
+
<div
|
|
211
|
+
className="css-0"
|
|
212
|
+
data-testid="hero-content"
|
|
213
|
+
style={
|
|
214
|
+
Object {
|
|
215
|
+
"backgroundColor": undefined,
|
|
216
|
+
"color": undefined,
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
>
|
|
220
|
+
<h1
|
|
221
|
+
className="chakra-heading css-0"
|
|
222
|
+
id="tertiary-hero"
|
|
223
|
+
>
|
|
224
|
+
Hero Tertiary
|
|
225
|
+
</h1>
|
|
226
|
+
<p>
|
|
227
|
+
With 92 locations across the Bronx, Manhattan, and Staten Island, The New York Public Library is an essential part of neighborhoods across the city. Visit us today.
|
|
228
|
+
</p>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
`;
|
|
232
|
+
|
|
233
|
+
exports[`Hero Renders the UI snapshot correctly 8`] = `
|
|
234
|
+
<div
|
|
235
|
+
className="css-0"
|
|
236
|
+
data-responsive-background-image={true}
|
|
237
|
+
data-testid="hero"
|
|
238
|
+
style={
|
|
239
|
+
Object {
|
|
240
|
+
"backgroundImage": "url(https://placeimg.com/2400/800/nature/grayscale)",
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
>
|
|
244
|
+
<div
|
|
245
|
+
className="css-0"
|
|
246
|
+
data-testid="hero-content"
|
|
247
|
+
style={
|
|
248
|
+
Object {
|
|
249
|
+
"backgroundColor": undefined,
|
|
250
|
+
"color": undefined,
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
>
|
|
254
|
+
<img
|
|
255
|
+
alt="Image example"
|
|
256
|
+
className="image "
|
|
257
|
+
src="https://placeimg.com/800/400/animals"
|
|
258
|
+
/>
|
|
259
|
+
<div
|
|
260
|
+
className="css-0"
|
|
261
|
+
>
|
|
262
|
+
<h1
|
|
263
|
+
className="chakra-heading css-0"
|
|
264
|
+
id="campaign-hero"
|
|
265
|
+
>
|
|
266
|
+
Hero Campaign
|
|
267
|
+
</h1>
|
|
268
|
+
With 92 locations across the Bronx, Manhattan, and Staten Island, The New York Public Library is an essential part of neighborhoods across the city. Visit us today.
|
|
269
|
+
</div>
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
`;
|
|
273
|
+
|
|
274
|
+
exports[`Hero Renders the UI snapshot correctly 9`] = `
|
|
275
|
+
<div
|
|
276
|
+
className="css-0"
|
|
277
|
+
data-responsive-background-image={true}
|
|
278
|
+
data-testid="hero"
|
|
279
|
+
style={
|
|
280
|
+
Object {
|
|
281
|
+
"backgroundColor": undefined,
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
>
|
|
285
|
+
<div
|
|
286
|
+
className="css-0"
|
|
287
|
+
data-testid="hero-content"
|
|
288
|
+
style={
|
|
289
|
+
Object {
|
|
290
|
+
"backgroundColor": undefined,
|
|
291
|
+
"color": undefined,
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
>
|
|
295
|
+
<img
|
|
296
|
+
alt="Image example"
|
|
297
|
+
className="image "
|
|
298
|
+
src="https://placeimg.com/800/400/animals"
|
|
299
|
+
/>
|
|
300
|
+
<div
|
|
301
|
+
className="css-0"
|
|
302
|
+
>
|
|
303
|
+
With 92 locations across the Bronx, Manhattan, and Staten Island, The New York Public Library is an essential part of neighborhoods across the city. Visit us today.
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
`;
|
|
@@ -10,9 +10,10 @@ import { withDesign } from "storybook-addon-designs";
|
|
|
10
10
|
|
|
11
11
|
import HorizontalRule from "./HorizontalRule";
|
|
12
12
|
import { action } from "@storybook/addon-actions";
|
|
13
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
13
14
|
|
|
14
15
|
<Meta
|
|
15
|
-
title="HorizontalRule"
|
|
16
|
+
title={getCategory("HorizontalRule")}
|
|
16
17
|
component={HorizontalRule}
|
|
17
18
|
decorators={[withDesign]}
|
|
18
19
|
parameters={{
|
|
@@ -31,6 +32,10 @@ import { action } from "@storybook/addon-actions";
|
|
|
31
32
|
|
|
32
33
|
# Horizontal Rule
|
|
33
34
|
|
|
35
|
+
| Component Version | DS Version |
|
|
36
|
+
| ----------------- | ---------- |
|
|
37
|
+
| Added | `0.23.0` |
|
|
38
|
+
|
|
34
39
|
<Description of={HorizontalRule} />
|
|
35
40
|
|
|
36
41
|
The `HorizontalRule` component renders a basic `<hr>` element. The `height`, `width` and `alignment` can be customized.
|