@nypl/design-system-react-components 1.0.0 → 1.0.3-beta
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/README.md +3 -5
- package/dist/components/Checkbox/Checkbox.d.ts +0 -1
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -0
- package/dist/components/Heading/Heading.d.ts +2 -0
- package/dist/components/Logo/Logo.d.ts +1 -1
- package/dist/components/Logo/LogoSvgs.d.ts +4 -0
- package/dist/components/Slider/Slider.d.ts +1 -2
- package/dist/components/TextInput/TextInput.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +1038 -674
- 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 +1039 -675
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
- package/dist/theme/components/button.d.ts +1 -0
- package/dist/theme/components/card.d.ts +98 -13
- package/dist/theme/components/checkboxGroup.d.ts +1 -1
- package/dist/theme/components/global.d.ts +2 -2
- package/dist/theme/components/heading.d.ts +4 -16
- package/dist/theme/components/image.d.ts +6 -0
- package/dist/theme/components/radio.d.ts +8 -0
- package/dist/theme/components/radioGroup.d.ts +1 -1
- package/dist/theme/components/skipNavigation.d.ts +3 -0
- package/dist/theme/components/structuredContent.d.ts +0 -5
- package/dist/theme/components/template.d.ts +4 -1
- package/dist/utils/utils.d.ts +15 -0
- package/package.json +6 -7
- package/CHANGELOG.md +0 -1399
- package/src/__tests__/fileMock.ts +0 -6
- package/src/__tests__/setup.ts +0 -27
- package/src/__tests__/utils/utils.test.ts +0 -18
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
- package/src/components/Accordion/Accordion.stories.mdx +0 -361
- package/src/components/Accordion/Accordion.test.tsx +0 -237
- package/src/components/Accordion/Accordion.tsx +0 -136
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
- package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
- package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
- package/src/components/Autosuggest/_Autosuggest.scss +0 -51
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
- package/src/components/Button/Button.stories.mdx +0 -320
- package/src/components/Button/Button.test.tsx +0 -184
- package/src/components/Button/Button.tsx +0 -95
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
- package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -147
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -99
- package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
- package/src/components/Card/Card.stories.mdx +0 -1043
- package/src/components/Card/Card.test.tsx +0 -388
- package/src/components/Card/Card.tsx +0 -345
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
- package/src/components/Chakra/Box.stories.mdx +0 -52
- package/src/components/Chakra/Center.stories.mdx +0 -96
- package/src/components/Chakra/Flex.stories.mdx +0 -111
- package/src/components/Chakra/Grid.stories.mdx +0 -89
- package/src/components/Chakra/Stack.stories.mdx +0 -109
- package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
- package/src/components/Checkbox/Checkbox.test.tsx +0 -319
- package/src/components/Checkbox/Checkbox.tsx +0 -166
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -616
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1722
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -67
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -98
- package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
- package/src/components/DatePicker/DatePicker.test.tsx +0 -940
- package/src/components/DatePicker/DatePicker.tsx +0 -450
- package/src/components/DatePicker/_DatePicker.scss +0 -100
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -889
- package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
- package/src/components/Fieldset/Fieldset.test.tsx +0 -155
- package/src/components/Fieldset/Fieldset.tsx +0 -55
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
- package/src/components/Form/Form.stories.mdx +0 -426
- package/src/components/Form/Form.test.tsx +0 -234
- package/src/components/Form/Form.tsx +0 -124
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
- package/src/components/Grid/SimpleGrid.stories.mdx +0 -338
- package/src/components/Grid/SimpleGrid.test.tsx +0 -79
- package/src/components/Grid/SimpleGrid.tsx +0 -49
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
- package/src/components/Heading/Heading.stories.mdx +0 -184
- package/src/components/Heading/Heading.test.tsx +0 -171
- package/src/components/Heading/Heading.tsx +0 -101
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
- package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
- package/src/components/Hero/Hero.stories.mdx +0 -378
- package/src/components/Hero/Hero.test.tsx +0 -611
- package/src/components/Hero/Hero.tsx +0 -203
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
- package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
- package/src/components/Icons/Icon.stories.mdx +0 -413
- package/src/components/Icons/Icon.test.tsx +0 -120
- package/src/components/Icons/Icon.tsx +0 -187
- package/src/components/Icons/IconSvgs.tsx +0 -64
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
- package/src/components/Image/Image.stories.mdx +0 -332
- package/src/components/Image/Image.test.tsx +0 -155
- package/src/components/Image/Image.tsx +0 -171
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
- package/src/components/Label/Label.stories.mdx +0 -100
- package/src/components/Label/Label.test.tsx +0 -116
- package/src/components/Label/Label.tsx +0 -55
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
- package/src/components/Link/Link.stories.mdx +0 -249
- package/src/components/Link/Link.test.tsx +0 -224
- package/src/components/Link/Link.tsx +0 -178
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
- package/src/components/List/List.stories.mdx +0 -393
- package/src/components/List/List.test.tsx +0 -265
- package/src/components/List/List.tsx +0 -156
- package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
- package/src/components/Logo/Logo.stories.mdx +0 -290
- package/src/components/Logo/Logo.test.tsx +0 -116
- package/src/components/Logo/Logo.tsx +0 -147
- package/src/components/Logo/LogoSvgs.tsx +0 -82
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
- package/src/components/Modal/Modal.stories.mdx +0 -301
- package/src/components/Modal/Modal.test.tsx +0 -157
- package/src/components/Modal/Modal.tsx +0 -154
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
- package/src/components/Notification/Notification.stories.mdx +0 -358
- package/src/components/Notification/Notification.test.tsx +0 -279
- package/src/components/Notification/Notification.tsx +0 -224
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
- package/src/components/Pagination/Pagination.stories.mdx +0 -184
- package/src/components/Pagination/Pagination.test.tsx +0 -419
- package/src/components/Pagination/Pagination.tsx +0 -269
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
- package/src/components/Placeholder/Placeholder.tsx +0 -19
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
- package/src/components/Radio/Radio.stories.mdx +0 -216
- package/src/components/Radio/Radio.test.tsx +0 -247
- package/src/components/Radio/Radio.tsx +0 -128
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -411
- package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -478
- package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
- package/src/components/RadioGroup/RadioGroup.tsx +0 -170
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1430
- package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
- package/src/components/SearchBar/SearchBar.test.tsx +0 -435
- package/src/components/SearchBar/SearchBar.tsx +0 -210
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1027
- package/src/components/Select/Select.stories.mdx +0 -439
- package/src/components/Select/Select.test.tsx +0 -358
- package/src/components/Select/Select.tsx +0 -181
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -885
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
- package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
- package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
- package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
- package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
- package/src/components/Slider/Slider.stories.mdx +0 -628
- package/src/components/Slider/Slider.test.tsx +0 -736
- package/src/components/Slider/Slider.tsx +0 -322
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2153
- package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
- package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
- package/src/components/StatusBadge/StatusBadge.tsx +0 -35
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
- package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
- package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
- package/src/components/StructuredContent/StructuredContent.tsx +0 -139
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
- package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
- package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
- package/src/components/StyleGuide/ColorCard.tsx +0 -43
- package/src/components/StyleGuide/Colors.stories.mdx +0 -201
- package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
- package/src/components/StyleGuide/Forms.stories.mdx +0 -94
- package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
- package/src/components/StyleGuide/Typography.stories.mdx +0 -419
- package/src/components/Table/Table.stories.mdx +0 -276
- package/src/components/Table/Table.test.tsx +0 -208
- package/src/components/Table/Table.tsx +0 -131
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
- package/src/components/Tabs/Tabs.stories.mdx +0 -338
- package/src/components/Tabs/Tabs.test.tsx +0 -298
- package/src/components/Tabs/Tabs.tsx +0 -264
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
- package/src/components/Template/Template.stories.mdx +0 -691
- package/src/components/Template/Template.test.tsx +0 -309
- package/src/components/Template/Template.tsx +0 -326
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
- package/src/components/Text/Text.stories.mdx +0 -103
- package/src/components/Text/Text.test.tsx +0 -63
- package/src/components/Text/Text.tsx +0 -50
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
- package/src/components/TextInput/TextInput.stories.mdx +0 -268
- package/src/components/TextInput/TextInput.test.tsx +0 -451
- package/src/components/TextInput/TextInput.tsx +0 -240
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -264
- package/src/components/Toggle/Toggle.stories.mdx +0 -237
- package/src/components/Toggle/Toggle.test.tsx +0 -170
- package/src/components/Toggle/Toggle.tsx +0 -126
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -442
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -211
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
- package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -187
- package/src/docs/Chakra.stories.mdx +0 -563
- package/src/docs/Welcome.stories.mdx +0 -148
- package/src/helpers/types.ts +0 -1
- package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
- package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
- package/src/hooks/useCarouselStyles.stories.mdx +0 -30
- package/src/hooks/useCarouselStyles.ts +0 -35
- package/src/hooks/useNYPLTheme.stories.mdx +0 -98
- package/src/hooks/useNYPLTheme.ts +0 -91
- package/src/hooks/useWindowSize.stories.mdx +0 -23
- package/src/hooks/useWindowSize.ts +0 -40
- package/src/index.ts +0 -136
- package/src/resources.scss +0 -6
- package/src/styles/base/_01-breakpoints.scss +0 -27
- package/src/styles/base/_02-mixins.scss +0 -103
- package/src/styles/base/_place-holder.scss +0 -33
- package/src/styles/space/_space-inline.scss +0 -79
- package/src/styles/space/_space-inset.scss +0 -57
- package/src/styles/space/_space-stack.scss +0 -116
- package/src/styles.scss +0 -23
- package/src/theme/components/accordion.ts +0 -25
- package/src/theme/components/breadcrumb.ts +0 -94
- package/src/theme/components/button.ts +0 -132
- package/src/theme/components/buttonGroup.ts +0 -10
- package/src/theme/components/card.ts +0 -231
- package/src/theme/components/checkbox.ts +0 -110
- package/src/theme/components/checkboxGroup.ts +0 -10
- package/src/theme/components/componentWrapper.ts +0 -14
- package/src/theme/components/customTable.ts +0 -77
- package/src/theme/components/datePicker.ts +0 -17
- package/src/theme/components/fieldset.ts +0 -23
- package/src/theme/components/global.ts +0 -91
- package/src/theme/components/globalMixins.ts +0 -24
- package/src/theme/components/heading.ts +0 -79
- package/src/theme/components/helperErrorText.ts +0 -14
- package/src/theme/components/hero.ts +0 -238
- package/src/theme/components/horizontalRule.ts +0 -17
- package/src/theme/components/icon.ts +0 -88
- package/src/theme/components/image.ts +0 -135
- package/src/theme/components/label.ts +0 -15
- package/src/theme/components/link.ts +0 -63
- package/src/theme/components/list.ts +0 -88
- package/src/theme/components/logo.ts +0 -58
- package/src/theme/components/notification.ts +0 -132
- package/src/theme/components/pagination.ts +0 -17
- package/src/theme/components/progressIndicator.ts +0 -67
- package/src/theme/components/radio.ts +0 -103
- package/src/theme/components/radioGroup.ts +0 -10
- package/src/theme/components/searchBar.ts +0 -19
- package/src/theme/components/select.ts +0 -72
- package/src/theme/components/skeletonLoader.ts +0 -113
- package/src/theme/components/skipNavigation.ts +0 -26
- package/src/theme/components/slider.ts +0 -95
- package/src/theme/components/statusBadge.ts +0 -26
- package/src/theme/components/structuredContent.ts +0 -149
- package/src/theme/components/tabs.ts +0 -109
- package/src/theme/components/template.ts +0 -114
- package/src/theme/components/text.ts +0 -38
- package/src/theme/components/textInput.ts +0 -65
- package/src/theme/components/toggle.ts +0 -109
- package/src/theme/components/videoPlayer.ts +0 -47
- package/src/theme/foundations/breakpoints.ts +0 -24
- package/src/theme/foundations/colors.ts +0 -212
- package/src/theme/foundations/global.ts +0 -43
- package/src/theme/foundations/radii.ts +0 -7
- package/src/theme/foundations/shadows.ts +0 -5
- package/src/theme/foundations/spacing.ts +0 -136
- package/src/theme/foundations/typography.ts +0 -107
- package/src/theme/index.ts +0 -131
- package/src/theme/provider.tsx +0 -9
- package/src/theme/types.ts +0 -1
- package/src/utils/componentCategories.ts +0 -152
- package/src/utils/interfaces.ts +0 -5
- package/src/utils/utils.ts +0 -44
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { Box, chakra, useMultiStyleConfig } from "@chakra-ui/react";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
|
|
4
|
-
import Image, { ComponentImageProps } from "../Image/Image";
|
|
5
|
-
|
|
6
|
-
export type HeroTypes =
|
|
7
|
-
| "primary"
|
|
8
|
-
| "secondary"
|
|
9
|
-
| "secondaryBooksAndMore"
|
|
10
|
-
| "secondaryLocations"
|
|
11
|
-
| "secondaryResearch"
|
|
12
|
-
| "secondaryWhatsOn"
|
|
13
|
-
| "tertiary"
|
|
14
|
-
| "campaign"
|
|
15
|
-
| "fiftyFifty";
|
|
16
|
-
// Only used for internal purposes.
|
|
17
|
-
export const heroSecondaryTypes = [
|
|
18
|
-
"secondary",
|
|
19
|
-
"secondaryBooksAndMore",
|
|
20
|
-
"secondaryLocations",
|
|
21
|
-
"secondaryResearch",
|
|
22
|
-
"secondaryWhatsOn",
|
|
23
|
-
];
|
|
24
|
-
export interface HeroImageProps
|
|
25
|
-
extends Pick<ComponentImageProps, "alt" | "src"> {}
|
|
26
|
-
export interface HeroProps {
|
|
27
|
-
/** Optional hex color value used to override the default background
|
|
28
|
-
* color for a given `Hero` variation.
|
|
29
|
-
* Note: not all `Hero` variations utilize this prop. */
|
|
30
|
-
backgroundColor?: string;
|
|
31
|
-
/** Optional path to an image that will be used as a background image for the
|
|
32
|
-
* `Hero` component.
|
|
33
|
-
* Note: not all `Hero` variations utilize this prop. */
|
|
34
|
-
backgroundImageSrc?: string;
|
|
35
|
-
/** Optional hex color value used to override the default text color for a
|
|
36
|
-
* given `Hero` variation.
|
|
37
|
-
* Note: not all `Hero` variations utilize this prop. */
|
|
38
|
-
foregroundColor?: string;
|
|
39
|
-
/** Optional heading element. */
|
|
40
|
-
heading?: JSX.Element;
|
|
41
|
-
/** Used to control how the `Hero` component will be rendered. */
|
|
42
|
-
heroType?: HeroTypes;
|
|
43
|
-
/** Object used to create and render the `Image` component. Note that only
|
|
44
|
-
* `src` and `alt` are the available attributes to pass. If `imageProps.alt`
|
|
45
|
-
* is left blank, a warning will be logged to the console and will cause
|
|
46
|
-
* accessibility issues. For `imageProps.src`, it will only work for the
|
|
47
|
-
* "secondary", "fiftyFifty" and "campaign" `Hero` types; Note: `imageProps.src`
|
|
48
|
-
* can only be used in conjunction with `backgroundImageSrc` for the "campaign"
|
|
49
|
-
* `Hero` type. Note: not all `Hero` variations utilize this prop. */
|
|
50
|
-
imageProps?: HeroImageProps;
|
|
51
|
-
/** Optional details area that contains location data.
|
|
52
|
-
* Note: not all `Hero` variations utilize this prop. */
|
|
53
|
-
locationDetails?: JSX.Element;
|
|
54
|
-
/** Optional string used for the subheader that displays
|
|
55
|
-
* underneath the heading element. */
|
|
56
|
-
subHeaderText?: string | JSX.Element;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export const Hero = chakra(
|
|
60
|
-
(props: React.PropsWithChildren<HeroProps>) => {
|
|
61
|
-
const {
|
|
62
|
-
backgroundColor,
|
|
63
|
-
backgroundImageSrc,
|
|
64
|
-
foregroundColor,
|
|
65
|
-
heading,
|
|
66
|
-
heroType,
|
|
67
|
-
imageProps = {
|
|
68
|
-
alt: "",
|
|
69
|
-
src: "",
|
|
70
|
-
},
|
|
71
|
-
locationDetails,
|
|
72
|
-
subHeaderText,
|
|
73
|
-
...rest
|
|
74
|
-
} = props;
|
|
75
|
-
const styles = useMultiStyleConfig("Hero", { variant: heroType });
|
|
76
|
-
const headingStyles = styles.heading;
|
|
77
|
-
// We want to add `Hero`-specific styling to the `Heading` component.
|
|
78
|
-
const finalHeading =
|
|
79
|
-
heading && React.cloneElement(heading, { __css: headingStyles });
|
|
80
|
-
let backgroundImageStyle = {};
|
|
81
|
-
let contentBoxStyling = {};
|
|
82
|
-
|
|
83
|
-
if (imageProps.src && !imageProps.alt) {
|
|
84
|
-
console.warn(
|
|
85
|
-
`NYPL Reservoir Hero: The "imageProps.src" prop was passed but the "imageProps.alt" props was not. This will make the rendered image inaccessible.`
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (heroType === "primary") {
|
|
90
|
-
if (!backgroundImageSrc) {
|
|
91
|
-
console.warn(
|
|
92
|
-
"NYPL Reservoir Hero: It is recommended to use the `backgroundImageSrc` " +
|
|
93
|
-
"prop for the `'primary'` `heroType` variant."
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
if (imageProps.alt && imageProps.src) {
|
|
97
|
-
console.warn(
|
|
98
|
-
"NYPL Reservoir Hero: The `imageProps.src` and `imageProps.alt` props have been " +
|
|
99
|
-
"passed, but the `'primary'` `heroType` variant will not use it."
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
} else if (locationDetails) {
|
|
103
|
-
console.warn(
|
|
104
|
-
"NYPL Reservoir Hero: The `locationDetails` prop should only be used " +
|
|
105
|
-
"with the `'primary'` `heroType` variant."
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
if (heroSecondaryTypes.includes(heroType) && backgroundImageSrc) {
|
|
109
|
-
console.warn(
|
|
110
|
-
"NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
|
|
111
|
-
"but the `'secondary'` `heroType` variant will not use it."
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
if (heroType === "tertiary" && (backgroundImageSrc || imageProps.src)) {
|
|
115
|
-
console.warn(
|
|
116
|
-
"NYPL Reservoir Hero: The `'tertiary'` `heroType` variant hero " +
|
|
117
|
-
"will not use any of the image props."
|
|
118
|
-
);
|
|
119
|
-
}
|
|
120
|
-
if (heroType === "campaign" && (!backgroundImageSrc || !imageProps.src)) {
|
|
121
|
-
console.warn(
|
|
122
|
-
"NYPL Reservoir Hero: It is recommended to use both the " +
|
|
123
|
-
"`backgroundImageSrc` and `imageProps.src` props for the " +
|
|
124
|
-
"`'campaign'` `heroType` variant."
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
if (heroType === "fiftyFifty" && backgroundImageSrc) {
|
|
128
|
-
console.warn(
|
|
129
|
-
"NYPL Reservoir Hero: The `backgroundImageSrc` prop has been passed, " +
|
|
130
|
-
"but the `'fiftyFifty'` `heroType` variant hero will not use it."
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
if (heroType === "primary") {
|
|
135
|
-
backgroundImageStyle = backgroundImageSrc
|
|
136
|
-
? { backgroundImage: `url(${backgroundImageSrc})` }
|
|
137
|
-
: {};
|
|
138
|
-
} else if (heroType === "campaign") {
|
|
139
|
-
backgroundImageStyle = backgroundImageSrc
|
|
140
|
-
? { backgroundImage: `url(${backgroundImageSrc})` }
|
|
141
|
-
: { backgroundColor };
|
|
142
|
-
} else if (heroType === "tertiary" || heroType === "fiftyFifty") {
|
|
143
|
-
backgroundImageStyle = { backgroundColor };
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (!heroSecondaryTypes.includes(heroType)) {
|
|
147
|
-
contentBoxStyling = {
|
|
148
|
-
color: foregroundColor,
|
|
149
|
-
backgroundColor,
|
|
150
|
-
};
|
|
151
|
-
} else if (foregroundColor || backgroundColor) {
|
|
152
|
-
console.warn(
|
|
153
|
-
"NYPL Reservoir Hero: The `foregroundColor` and/or `backgroundColor` " +
|
|
154
|
-
"props have been passed, but the `'secondary'` `heroType` " +
|
|
155
|
-
"variant will not use them."
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const childrenToRender =
|
|
160
|
-
heroType === "campaign" ? (
|
|
161
|
-
<>
|
|
162
|
-
<Image alt={imageProps.alt} src={imageProps.src} />
|
|
163
|
-
<Box __css={styles.interior}>
|
|
164
|
-
{finalHeading}
|
|
165
|
-
{subHeaderText}
|
|
166
|
-
</Box>
|
|
167
|
-
</>
|
|
168
|
-
) : (
|
|
169
|
-
<>
|
|
170
|
-
{heroType !== "primary" && heroType !== "tertiary" && (
|
|
171
|
-
<Image alt={imageProps.alt} src={imageProps.src} />
|
|
172
|
-
)}
|
|
173
|
-
{finalHeading}
|
|
174
|
-
{heroType === "tertiary" && subHeaderText ? (
|
|
175
|
-
<p>{subHeaderText}</p>
|
|
176
|
-
) : (
|
|
177
|
-
<Box __css={styles.bodyText}>{subHeaderText}</Box>
|
|
178
|
-
)}
|
|
179
|
-
</>
|
|
180
|
-
);
|
|
181
|
-
|
|
182
|
-
return (
|
|
183
|
-
<Box
|
|
184
|
-
data-testid="hero"
|
|
185
|
-
data-responsive-background-image
|
|
186
|
-
style={backgroundImageStyle}
|
|
187
|
-
__css={styles}
|
|
188
|
-
{...rest}
|
|
189
|
-
>
|
|
190
|
-
<Box
|
|
191
|
-
data-testid="hero-content"
|
|
192
|
-
style={contentBoxStyling}
|
|
193
|
-
__css={styles.content}
|
|
194
|
-
>
|
|
195
|
-
{childrenToRender}
|
|
196
|
-
</Box>
|
|
197
|
-
</Box>
|
|
198
|
-
);
|
|
199
|
-
},
|
|
200
|
-
{ shouldForwardProp: () => true }
|
|
201
|
-
);
|
|
202
|
-
|
|
203
|
-
export default Hero;
|
|
@@ -1,379 +0,0 @@
|
|
|
1
|
-
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
-
|
|
3
|
-
exports[`Hero Renders the UI snapshot correctly 1`] = `
|
|
4
|
-
<div
|
|
5
|
-
className="css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
54
|
-
src="https://placeimg.com/800/400/animals"
|
|
55
|
-
/>
|
|
56
|
-
<h1
|
|
57
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
86
|
-
src="https://placeimg.com/800/400/animals"
|
|
87
|
-
/>
|
|
88
|
-
<h1
|
|
89
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
118
|
-
src="https://placeimg.com/800/400/animals"
|
|
119
|
-
/>
|
|
120
|
-
<h1
|
|
121
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
150
|
-
src="https://placeimg.com/800/400/animals"
|
|
151
|
-
/>
|
|
152
|
-
<h1
|
|
153
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
182
|
-
src="https://placeimg.com/800/400/animals"
|
|
183
|
-
/>
|
|
184
|
-
<h1
|
|
185
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
257
|
-
src="https://placeimg.com/800/400/animals"
|
|
258
|
-
/>
|
|
259
|
-
<div
|
|
260
|
-
className="css-0"
|
|
261
|
-
>
|
|
262
|
-
<h1
|
|
263
|
-
className="chakra-heading css-1xdhyk6"
|
|
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-1xdhyk6"
|
|
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="css-0"
|
|
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
|
-
`;
|
|
308
|
-
|
|
309
|
-
exports[`Hero Renders the UI snapshot correctly 10`] = `
|
|
310
|
-
<div
|
|
311
|
-
className="css-16h1ce8"
|
|
312
|
-
data-responsive-background-image={true}
|
|
313
|
-
data-testid="hero"
|
|
314
|
-
style={
|
|
315
|
-
Object {
|
|
316
|
-
"backgroundImage": "url(https://placeimg.com/1600/800/arch)",
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
>
|
|
320
|
-
<div
|
|
321
|
-
className="css-0"
|
|
322
|
-
data-testid="hero-content"
|
|
323
|
-
style={
|
|
324
|
-
Object {
|
|
325
|
-
"backgroundColor": undefined,
|
|
326
|
-
"color": undefined,
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
>
|
|
330
|
-
<h1
|
|
331
|
-
className="chakra-heading css-1xdhyk6"
|
|
332
|
-
id="chakra"
|
|
333
|
-
>
|
|
334
|
-
Hero Primary
|
|
335
|
-
</h1>
|
|
336
|
-
<div
|
|
337
|
-
className="css-0"
|
|
338
|
-
>
|
|
339
|
-
Example Subtitle
|
|
340
|
-
</div>
|
|
341
|
-
</div>
|
|
342
|
-
</div>
|
|
343
|
-
`;
|
|
344
|
-
|
|
345
|
-
exports[`Hero Renders the UI snapshot correctly 11`] = `
|
|
346
|
-
<div
|
|
347
|
-
className="css-1xdhyk6"
|
|
348
|
-
data-responsive-background-image={true}
|
|
349
|
-
data-testid="props"
|
|
350
|
-
style={
|
|
351
|
-
Object {
|
|
352
|
-
"backgroundImage": "url(https://placeimg.com/1600/800/arch)",
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
>
|
|
356
|
-
<div
|
|
357
|
-
className="css-0"
|
|
358
|
-
data-testid="hero-content"
|
|
359
|
-
style={
|
|
360
|
-
Object {
|
|
361
|
-
"backgroundColor": undefined,
|
|
362
|
-
"color": undefined,
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
>
|
|
366
|
-
<h1
|
|
367
|
-
className="chakra-heading css-1xdhyk6"
|
|
368
|
-
id="props"
|
|
369
|
-
>
|
|
370
|
-
Hero Primary
|
|
371
|
-
</h1>
|
|
372
|
-
<div
|
|
373
|
-
className="css-0"
|
|
374
|
-
>
|
|
375
|
-
Example Subtitle
|
|
376
|
-
</div>
|
|
377
|
-
</div>
|
|
378
|
-
</div>
|
|
379
|
-
`;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { action } from "@storybook/addon-actions";
|
|
2
|
-
import {
|
|
3
|
-
ArgsTable,
|
|
4
|
-
Canvas,
|
|
5
|
-
Description,
|
|
6
|
-
Meta,
|
|
7
|
-
Story,
|
|
8
|
-
} from "@storybook/addon-docs";
|
|
9
|
-
import { withDesign } from "storybook-addon-designs";
|
|
10
|
-
|
|
11
|
-
import HorizontalRule from "./HorizontalRule";
|
|
12
|
-
import SimpleGrid from "../Grid/SimpleGrid";
|
|
13
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
14
|
-
|
|
15
|
-
<Meta
|
|
16
|
-
title={getCategory("HorizontalRule")}
|
|
17
|
-
component={HorizontalRule}
|
|
18
|
-
decorators={[withDesign]}
|
|
19
|
-
parameters={{
|
|
20
|
-
design: {
|
|
21
|
-
type: "figma",
|
|
22
|
-
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=19659%3A0",
|
|
23
|
-
},
|
|
24
|
-
jest: ["HorizontalRule.test.tsx"],
|
|
25
|
-
}}
|
|
26
|
-
argTypes={{
|
|
27
|
-
className: { control: false },
|
|
28
|
-
}}
|
|
29
|
-
/>
|
|
30
|
-
|
|
31
|
-
# Horizontal Rule
|
|
32
|
-
|
|
33
|
-
| Component Version | DS Version |
|
|
34
|
-
| ----------------- | ---------- |
|
|
35
|
-
| Added | `0.23.0` |
|
|
36
|
-
| Latest | `0.26.0` |
|
|
37
|
-
|
|
38
|
-
## Table of Contents
|
|
39
|
-
|
|
40
|
-
- [Overview](#overview)
|
|
41
|
-
- [Component Props](#component-props)
|
|
42
|
-
- [Accessibility](#accessibility)
|
|
43
|
-
|
|
44
|
-
## Overview
|
|
45
|
-
|
|
46
|
-
<Description of={HorizontalRule} />
|
|
47
|
-
|
|
48
|
-
The `HorizontalRule` component renders a basic `<hr>` element. The `height`,
|
|
49
|
-
`width`, and `align` props can be customized. For the `height` prop, use a whole
|
|
50
|
-
number, a `px` value, a `em` value, or a `rem` value. Otherwise, the default
|
|
51
|
-
value of "2px" will be used.
|
|
52
|
-
|
|
53
|
-
## Component Props
|
|
54
|
-
|
|
55
|
-
<Canvas withToolbar>
|
|
56
|
-
<Story name="HorizontalRule" args={{ align: "left" }}>
|
|
57
|
-
{(args) => <HorizontalRule {...args} />}
|
|
58
|
-
</Story>
|
|
59
|
-
</Canvas>
|
|
60
|
-
|
|
61
|
-
<ArgsTable story="HorizontalRule" />
|
|
62
|
-
|
|
63
|
-
## Accessibility
|
|
64
|
-
|
|
65
|
-
The `HorizontalRule` component is not just a visual thematic break between
|
|
66
|
-
content or interfaces, it is also picked up by screenreaders. Internally, the
|
|
67
|
-
`HorizontalRule` component uses the `<hr>` element which has a `role` of
|
|
68
|
-
`"separator"`.
|
|
69
|
-
|
|
70
|
-
Resources:
|
|
71
|
-
|
|
72
|
-
- [MDN hr: The Thematic Break (Horizontal Rule) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr)
|
|
73
|
-
- [Not Your Typical Horizontal Rules](https://www.sarasoueidan.com/blog/horizontal-rules/#)
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { render, screen } from "@testing-library/react";
|
|
3
|
-
import { axe } from "jest-axe";
|
|
4
|
-
import renderer from "react-test-renderer";
|
|
5
|
-
|
|
6
|
-
import HorizontalRule from "./HorizontalRule";
|
|
7
|
-
|
|
8
|
-
describe("HorizontalRule Accessibility", () => {
|
|
9
|
-
it("passes axe accessibility test", async () => {
|
|
10
|
-
const { container } = render(<HorizontalRule />);
|
|
11
|
-
expect(await axe(container)).toHaveNoViolations();
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
describe("HorizontalRule", () => {
|
|
16
|
-
it("renders HorizontalRule component", () => {
|
|
17
|
-
render(<HorizontalRule />);
|
|
18
|
-
expect(screen.getByRole("separator")).toBeInTheDocument();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it("renders with proper custom class", () => {
|
|
22
|
-
render(<HorizontalRule className="custom-hr" />);
|
|
23
|
-
const hrClass = screen.getByRole("separator").getAttribute("class");
|
|
24
|
-
expect(hrClass).toContain("custom-hr");
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it("renders the UI snapshot correctly", () => {
|
|
28
|
-
const basic = renderer.create(<HorizontalRule />).toJSON();
|
|
29
|
-
const updatedHeight = renderer
|
|
30
|
-
.create(<HorizontalRule height="5rem" />)
|
|
31
|
-
.toJSON();
|
|
32
|
-
const updatedWidth = renderer
|
|
33
|
-
.create(<HorizontalRule width="720px" />)
|
|
34
|
-
.toJSON();
|
|
35
|
-
const alignLeft = renderer.create(<HorizontalRule align="left" />).toJSON();
|
|
36
|
-
const alignRight = renderer
|
|
37
|
-
.create(<HorizontalRule align="right" />)
|
|
38
|
-
.toJSON();
|
|
39
|
-
const withChakraProps = renderer
|
|
40
|
-
.create(<HorizontalRule p="20px" color="ui.error.primary" />)
|
|
41
|
-
.toJSON();
|
|
42
|
-
const withOtherProps = renderer
|
|
43
|
-
.create(<HorizontalRule data-testid="props" />)
|
|
44
|
-
.toJSON();
|
|
45
|
-
|
|
46
|
-
expect(basic).toMatchSnapshot();
|
|
47
|
-
expect(updatedHeight).toMatchSnapshot();
|
|
48
|
-
expect(updatedWidth).toMatchSnapshot();
|
|
49
|
-
expect(alignLeft).toMatchSnapshot();
|
|
50
|
-
expect(alignRight).toMatchSnapshot();
|
|
51
|
-
expect(withChakraProps).toMatchSnapshot();
|
|
52
|
-
expect(withOtherProps).toMatchSnapshot();
|
|
53
|
-
});
|
|
54
|
-
});
|