@nypl/design-system-react-components 0.25.5 → 0.25.9
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 +91 -1
- package/README.md +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -0
- package/dist/components/Button/Button.d.ts +6 -6
- package/dist/components/Button/ButtonTypes.d.ts +0 -1
- package/dist/components/Card/Card.d.ts +6 -4
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
- package/dist/components/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/Form/Form.d.ts +2 -2
- package/dist/components/Heading/Heading.d.ts +7 -3
- package/dist/components/Heading/HeadingTypes.d.ts +6 -6
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -2
- package/dist/components/Icons/Icon.d.ts +4 -4
- package/dist/components/Icons/IconSvgs.d.ts +1 -21
- package/dist/components/Icons/IconTypes.d.ts +1 -23
- package/dist/components/Image/Image.d.ts +11 -3
- package/dist/components/Image/ImageTypes.d.ts +3 -1
- package/dist/components/Link/LinkTypes.d.ts +1 -0
- package/dist/components/Logo/Logo.d.ts +28 -0
- package/dist/components/Logo/LogoSvgs.d.ts +18 -0
- package/dist/components/Logo/LogoTypes.d.ts +30 -0
- package/dist/components/Modal/Modal.d.ts +0 -4
- package/dist/components/Notification/Notification.d.ts +4 -2
- package/dist/components/Placeholder/Placeholder.d.ts +3 -5
- package/dist/components/Radio/Radio.d.ts +6 -5
- package/dist/components/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/SearchBar/SearchBar.d.ts +10 -2
- package/dist/components/Select/Select.d.ts +5 -2
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
- package/dist/components/Slider/Slider.d.ts +3 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
- package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
- package/dist/components/Table/Table.d.ts +23 -0
- package/dist/components/Template/Template.d.ts +8 -3
- package/dist/components/Text/Text.d.ts +2 -2
- package/dist/components/TextInput/TextInput.d.ts +4 -3
- package/dist/components/Toggle/Toggle.d.ts +48 -0
- package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
- package/dist/design-system-react-components.cjs.development.js +5989 -5490
- 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 +6057 -5551
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +9 -0
- package/dist/theme/components/button.d.ts +0 -12
- package/dist/theme/components/card.d.ts +14 -2
- package/dist/theme/components/customTable.d.ts +47 -0
- package/dist/theme/components/fieldset.d.ts +2 -2
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/heading.d.ts +4 -0
- package/dist/theme/components/label.d.ts +1 -1
- package/dist/theme/components/link.d.ts +14 -1
- package/dist/theme/components/list.d.ts +0 -2
- package/dist/theme/components/logo.d.ts +4 -0
- package/dist/theme/components/notification.d.ts +8 -4
- package/dist/theme/components/searchBar.d.ts +7 -13
- package/dist/theme/components/select.d.ts +1 -0
- package/dist/theme/components/structuredContent.d.ts +33 -0
- package/dist/theme/components/template.d.ts +10 -10
- package/dist/theme/components/textInput.d.ts +2 -0
- package/dist/theme/components/toggle.d.ts +71 -0
- package/dist/theme/foundations/spacing.d.ts +2 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +2 -3
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +15 -14
- package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
- package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
- package/src/components/Autosuggest/_Autosuggest.scss +2 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +50 -14
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +20 -0
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -0
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +198 -0
- package/src/components/Button/Button.stories.mdx +93 -48
- package/src/components/Button/Button.test.tsx +0 -12
- package/src/components/Button/Button.tsx +7 -8
- package/src/components/Button/ButtonTypes.tsx +0 -1
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
- package/src/components/Card/Card.stories.mdx +246 -64
- package/src/components/Card/Card.test.tsx +45 -22
- package/src/components/Card/Card.tsx +26 -13
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
- package/src/components/Chakra/Box.stories.mdx +3 -3
- package/src/components/Chakra/Center.stories.mdx +5 -5
- package/src/components/Chakra/Grid.stories.mdx +14 -17
- package/src/components/Chakra/Stack.stories.mdx +2 -2
- package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
- package/src/components/Checkbox/Checkbox.tsx +13 -8
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
- package/src/components/DatePicker/DatePicker.test.tsx +8 -6
- package/src/components/DatePicker/DatePicker.tsx +10 -6
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
- package/src/components/Fieldset/Fieldset.stories.mdx +19 -8
- package/src/components/Form/Form.stories.mdx +49 -41
- package/src/components/Form/Form.tsx +5 -4
- package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
- package/src/components/Heading/Heading.stories.mdx +59 -23
- package/src/components/Heading/Heading.test.tsx +82 -18
- package/src/components/Heading/Heading.tsx +31 -31
- package/src/components/Heading/HeadingTypes.tsx +6 -6
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
- package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
- package/src/components/Hero/Hero.stories.mdx +72 -53
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +9 -8
- package/src/components/HorizontalRule/HorizontalRule.tsx +2 -4
- package/src/components/Icons/Icon.stories.mdx +77 -75
- package/src/components/Icons/Icon.tsx +4 -5
- package/src/components/Icons/IconSvgs.tsx +2 -42
- package/src/components/Icons/IconTypes.tsx +1 -24
- package/src/components/Image/Image.stories.mdx +214 -104
- package/src/components/Image/Image.test.tsx +10 -0
- package/src/components/Image/Image.tsx +21 -10
- package/src/components/Image/ImageTypes.ts +2 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- package/src/components/Label/Label.stories.mdx +21 -20
- package/src/components/Link/Link.stories.mdx +103 -53
- package/src/components/Link/Link.test.tsx +108 -7
- package/src/components/Link/Link.tsx +58 -19
- package/src/components/Link/LinkTypes.tsx +1 -0
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
- package/src/components/List/List.stories.mdx +36 -24
- package/src/components/Logo/Logo.stories.mdx +220 -0
- package/src/components/Logo/Logo.test.tsx +98 -0
- package/src/components/Logo/Logo.tsx +97 -0
- package/src/components/Logo/LogoSvgs.tsx +34 -0
- package/src/components/Logo/LogoTypes.tsx +32 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
- package/src/components/Modal/Modal.stories.mdx +20 -5
- package/src/components/Modal/Modal.tsx +2 -8
- package/src/components/Notification/Notification.stories.mdx +96 -40
- package/src/components/Notification/Notification.test.tsx +62 -16
- package/src/components/Notification/Notification.tsx +26 -9
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
- package/src/components/Pagination/Pagination.stories.mdx +18 -8
- package/src/components/Pagination/Pagination.tsx +1 -1
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
- package/src/components/Placeholder/Placeholder.tsx +7 -14
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
- package/src/components/Radio/Radio.stories.mdx +39 -19
- package/src/components/Radio/Radio.tsx +13 -9
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.tsx +15 -11
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +6 -3
- package/src/components/SearchBar/SearchBar.Test.tsx +114 -22
- package/src/components/SearchBar/SearchBar.stories.mdx +111 -33
- package/src/components/SearchBar/SearchBar.tsx +57 -33
- package/src/components/Select/Select.stories.mdx +177 -66
- package/src/components/Select/Select.test.tsx +2 -2
- package/src/components/Select/Select.tsx +22 -12
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
- package/src/components/Slider/Slider.stories.mdx +74 -23
- package/src/components/Slider/Slider.test.tsx +35 -0
- package/src/components/Slider/Slider.tsx +22 -11
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +60 -30
- package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
- package/src/components/StatusBadge/StatusBadge.tsx +2 -1
- package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
- package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
- package/src/components/StructuredContent/StructuredContent.tsx +153 -0
- package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
- package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
- package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
- package/src/components/StyleGuide/ColorCard.tsx +1 -2
- package/src/components/StyleGuide/Colors.stories.mdx +3 -11
- package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
- package/src/components/StyleGuide/Forms.stories.mdx +2 -10
- package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
- package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
- package/src/components/StyleGuide/Typography.stories.mdx +64 -76
- package/src/components/Table/Table.stories.mdx +66 -0
- package/src/components/Table/Table.test.tsx +60 -0
- package/src/components/Table/Table.tsx +116 -0
- package/src/components/Tabs/Tabs.stories.mdx +19 -13
- package/src/components/Tabs/Tabs.test.tsx +1 -1
- package/src/components/Template/Template.stories.mdx +57 -49
- package/src/components/Template/Template.test.tsx +65 -5
- package/src/components/Template/Template.tsx +35 -5
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +76 -0
- package/src/components/Text/Text.stories.mdx +33 -11
- package/src/components/Text/Text.tsx +2 -2
- package/src/components/TextInput/TextInput.stories.mdx +84 -17
- package/src/components/TextInput/TextInput.test.tsx +96 -0
- package/src/components/TextInput/TextInput.tsx +12 -8
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
- package/src/components/Toggle/Toggle.stories.mdx +200 -0
- package/src/components/Toggle/Toggle.test.tsx +140 -0
- package/src/components/Toggle/Toggle.tsx +123 -0
- package/src/components/Toggle/ToggleSizes.tsx +4 -0
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
- package/src/docs/Chakra.stories.mdx +5 -8
- package/src/docs/Intro.stories.mdx +2 -2
- package/src/index.ts +13 -4
- package/src/styles/base/_03-base.scss +1 -1
- package/src/styles/base/_place-holder.scss +7 -7
- package/src/styles.scss +1 -5
- package/src/theme/components/breadcrumb.ts +14 -4
- package/src/theme/components/button.ts +5 -12
- package/src/theme/components/card.ts +9 -7
- package/src/theme/components/checkbox.ts +1 -1
- package/src/theme/components/customTable.ts +50 -0
- package/src/theme/components/datePicker.ts +1 -1
- package/src/theme/components/global.ts +7 -7
- package/src/theme/components/heading.ts +13 -11
- package/src/theme/components/helperErrorText.ts +1 -1
- package/src/theme/components/icon.ts +2 -2
- package/src/theme/components/image.ts +9 -1
- package/src/theme/components/link.ts +17 -5
- package/src/theme/components/list.ts +1 -3
- package/src/theme/components/logo.ts +54 -0
- package/src/theme/components/notification.ts +9 -7
- package/src/theme/components/searchBar.ts +7 -13
- package/src/theme/components/select.ts +1 -0
- package/src/theme/components/statusBadge.ts +1 -1
- package/src/theme/components/structuredContent.ts +54 -0
- package/src/theme/components/template.ts +10 -10
- package/src/theme/components/text.ts +6 -6
- package/src/theme/components/textInput.ts +1 -0
- package/src/theme/components/toggle.ts +69 -0
- package/src/theme/components/videoPlayer.ts +0 -2
- package/src/theme/foundations/global.ts +2 -2
- package/src/theme/foundations/spacing.ts +3 -0
- package/src/theme/foundations/typography.ts +84 -12
- package/src/theme/index.ts +8 -0
- package/src/utils/componentCategories.ts +4 -2
- package/src/utils/utils.ts +17 -0
- package/dist/__tests__/utils/bem.test.d.ts +0 -1
- package/dist/components/CardEdition/CardEdition.d.ts +0 -21
- package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
- package/dist/components/Input/Input.d.ts +0 -36
- package/dist/components/Input/Input.stories.d.ts +0 -29
- package/dist/components/Input/InputTypes.d.ts +0 -6
- package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
- package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
- package/dist/helpers/getCSSVariable.d.ts +0 -1
- package/dist/interfaces.d.ts +0 -3
- package/dist/utils/bem.d.ts +0 -1
- package/src/__tests__/utils/bem.test.ts +0 -37
- package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
- package/src/components/CardEdition/CardEdition.test.tsx +0 -395
- package/src/components/CardEdition/CardEdition.tsx +0 -60
- package/src/components/CardEdition/_CardEdition.scss +0 -137
- package/src/components/Input/Input.stories.tsx +0 -133
- package/src/components/Input/Input.test.tsx +0 -266
- package/src/components/Input/Input.tsx +0 -81
- package/src/components/Input/InputTypes.tsx +0 -8
- package/src/components/Input/_Input.scss +0 -78
- package/src/components/StyleGuide/UIDocCard.tsx +0 -36
- package/src/helpers/CSSVariablesHelper.tsx +0 -34
- package/src/helpers/getCSSVariable.tsx +0 -5
- package/src/interfaces.ts +0 -3
- package/src/utils/bem.ts +0 -44
|
@@ -3,14 +3,16 @@ import { render, screen } from "@testing-library/react";
|
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
4
|
import renderer from "react-test-renderer";
|
|
5
5
|
|
|
6
|
-
import Card, { CardHeading, CardContent, CardActions } from "./Card";
|
|
7
|
-
import Link from "../Link/Link";
|
|
8
|
-
import { LinkTypes } from "../Link/LinkTypes";
|
|
9
6
|
import Button from "../Button/Button";
|
|
10
7
|
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
8
|
+
import Card, { CardHeading, CardContent, CardActions } from "./Card";
|
|
11
9
|
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
12
10
|
import Icon from "../Icons/Icon";
|
|
13
11
|
import { IconRotationTypes, IconNames, IconAlign } from "../Icons/IconTypes";
|
|
12
|
+
import Image from "../Image/Image";
|
|
13
|
+
import Link from "../Link/Link";
|
|
14
|
+
import { LinkTypes } from "../Link/LinkTypes";
|
|
15
|
+
import { ImageRatios } from "../Image/ImageTypes";
|
|
14
16
|
|
|
15
17
|
describe("Card Accessibility", () => {
|
|
16
18
|
it("passes axe accessibility test", async () => {
|
|
@@ -92,12 +94,12 @@ describe("Card", () => {
|
|
|
92
94
|
);
|
|
93
95
|
const cardWithExtendedStyles = (
|
|
94
96
|
<Card
|
|
95
|
-
id="cardWithExtendedStyles"
|
|
96
97
|
className="edition-card"
|
|
97
|
-
|
|
98
|
+
id="cardWithExtendedStyles"
|
|
98
99
|
imageAlt="Alt text"
|
|
100
|
+
imageSrc="https://placeimg.com/300/400/arch"
|
|
99
101
|
>
|
|
100
|
-
<CardHeading level={HeadingLevels.Two}
|
|
102
|
+
<CardHeading id="editioncardheading1" level={HeadingLevels.Two}>
|
|
101
103
|
The Card Heading
|
|
102
104
|
</CardHeading>
|
|
103
105
|
<CardContent>
|
|
@@ -114,10 +116,10 @@ describe("Card", () => {
|
|
|
114
116
|
</Link>
|
|
115
117
|
<Link id="link-icon" href="#url" type={LinkTypes.Action}>
|
|
116
118
|
<Icon
|
|
117
|
-
id="icon-cardWithExtendedStyles"
|
|
118
|
-
name={IconNames.Download}
|
|
119
119
|
align={IconAlign.Left}
|
|
120
120
|
iconRotation={IconRotationTypes.Rotate0}
|
|
121
|
+
id="icon-cardWithExtendedStyles"
|
|
122
|
+
name={IconNames.Download}
|
|
121
123
|
/>
|
|
122
124
|
Download
|
|
123
125
|
</Link>
|
|
@@ -126,12 +128,12 @@ describe("Card", () => {
|
|
|
126
128
|
);
|
|
127
129
|
const cardWithNoCTAs = (
|
|
128
130
|
<Card
|
|
129
|
-
id="cardWithNoCTAs"
|
|
130
131
|
className="edition-card"
|
|
131
|
-
|
|
132
|
+
id="cardWithNoCTAs"
|
|
132
133
|
imageAlt="Alt text"
|
|
134
|
+
imageSrc="https://placeimg.com/300/400/arch"
|
|
133
135
|
>
|
|
134
|
-
<CardHeading level={HeadingLevels.Two}
|
|
136
|
+
<CardHeading id="editioncardheading1" level={HeadingLevels.Two}>
|
|
135
137
|
The Card Heading
|
|
136
138
|
</CardHeading>
|
|
137
139
|
<CardContent>
|
|
@@ -143,14 +145,14 @@ describe("Card", () => {
|
|
|
143
145
|
);
|
|
144
146
|
const cardWithNoContent = (
|
|
145
147
|
<Card
|
|
146
|
-
id="cardWithNoContent"
|
|
147
148
|
className="edition-card"
|
|
148
|
-
|
|
149
|
+
id="cardWithNoContent"
|
|
149
150
|
imageAlt="Alt text"
|
|
151
|
+
imageSrc="https://placeimg.com/300/400/arch"
|
|
150
152
|
>
|
|
151
153
|
<CardHeading
|
|
152
|
-
level={HeadingLevels.Two}
|
|
153
154
|
id="editioncardheading1"
|
|
155
|
+
level={HeadingLevels.Two}
|
|
154
156
|
url="#edition-link"
|
|
155
157
|
>
|
|
156
158
|
The Card Heading
|
|
@@ -161,10 +163,10 @@ describe("Card", () => {
|
|
|
161
163
|
</Link>
|
|
162
164
|
<Link id="link-icon" href="#url" type={LinkTypes.Action}>
|
|
163
165
|
<Icon
|
|
164
|
-
id="icon-cardWithNoContent"
|
|
165
|
-
name={IconNames.Download}
|
|
166
166
|
align={IconAlign.Left}
|
|
167
167
|
iconRotation={IconRotationTypes.Rotate0}
|
|
168
|
+
id="icon-cardWithNoContent"
|
|
169
|
+
name={IconNames.Download}
|
|
168
170
|
/>
|
|
169
171
|
Download
|
|
170
172
|
</Link>
|
|
@@ -174,8 +176,8 @@ describe("Card", () => {
|
|
|
174
176
|
const cardWithNoImage = (
|
|
175
177
|
<Card id="cardWithNoImage" className="edition-card">
|
|
176
178
|
<CardHeading
|
|
177
|
-
level={HeadingLevels.Two}
|
|
178
179
|
id="editioncardheading1"
|
|
180
|
+
level={HeadingLevels.Two}
|
|
179
181
|
url="#edition-link"
|
|
180
182
|
>
|
|
181
183
|
The Card Heading
|
|
@@ -187,10 +189,10 @@ describe("Card", () => {
|
|
|
187
189
|
</Link>
|
|
188
190
|
<Link id="link-icon" href="#url" type={LinkTypes.Action}>
|
|
189
191
|
<Icon
|
|
190
|
-
id="icon-cardWithNoImage"
|
|
191
|
-
name={IconNames.Download}
|
|
192
192
|
align={IconAlign.Left}
|
|
193
193
|
iconRotation={IconRotationTypes.Rotate0}
|
|
194
|
+
id="icon-cardWithNoImage"
|
|
195
|
+
name={IconNames.Download}
|
|
194
196
|
/>
|
|
195
197
|
Download
|
|
196
198
|
</Link>
|
|
@@ -200,8 +202,8 @@ describe("Card", () => {
|
|
|
200
202
|
const cardFullClick = () => (
|
|
201
203
|
<Card
|
|
202
204
|
id="fullclick"
|
|
203
|
-
imageSrc="https://placeimg.com/400/200/arch"
|
|
204
205
|
imageAlt="Alt text"
|
|
206
|
+
imageSrc="https://placeimg.com/400/200/arch"
|
|
205
207
|
mainActionLink="http://nypl.org"
|
|
206
208
|
>
|
|
207
209
|
<CardHeading level={HeadingLevels.Three} id="heading1">
|
|
@@ -210,9 +212,9 @@ describe("Card", () => {
|
|
|
210
212
|
<CardContent>middle column content</CardContent>
|
|
211
213
|
<CardActions>
|
|
212
214
|
<Button
|
|
213
|
-
onClick={() => {}}
|
|
214
|
-
id="button1"
|
|
215
215
|
buttonType={ButtonTypes.Primary}
|
|
216
|
+
id="button1"
|
|
217
|
+
onClick={() => {}}
|
|
216
218
|
type="submit"
|
|
217
219
|
>
|
|
218
220
|
Example CTA
|
|
@@ -220,6 +222,18 @@ describe("Card", () => {
|
|
|
220
222
|
</CardActions>
|
|
221
223
|
</Card>
|
|
222
224
|
);
|
|
225
|
+
const cardImageComponentAndRatio = () => (
|
|
226
|
+
<Card
|
|
227
|
+
id="fullclick"
|
|
228
|
+
imageComponent={<Image alt="" src="https://placeimg.com/400/200/arch" />}
|
|
229
|
+
imageAspectRatio={ImageRatios.ThreeByTwo}
|
|
230
|
+
>
|
|
231
|
+
<CardHeading level={HeadingLevels.Three} id="heading1">
|
|
232
|
+
The Card Heading
|
|
233
|
+
</CardHeading>
|
|
234
|
+
<CardContent>middle column content</CardContent>
|
|
235
|
+
</Card>
|
|
236
|
+
);
|
|
223
237
|
let container;
|
|
224
238
|
|
|
225
239
|
it("renders a Card with a header, image, content, and CTAs", () => {
|
|
@@ -289,6 +303,14 @@ describe("Card", () => {
|
|
|
289
303
|
);
|
|
290
304
|
});
|
|
291
305
|
|
|
306
|
+
it("Logs a warning when both `imageComponent` and `imageAspectRatio` are passed", () => {
|
|
307
|
+
const warn = jest.spyOn(console, "warn");
|
|
308
|
+
render(cardImageComponentAndRatio());
|
|
309
|
+
expect(warn).toHaveBeenCalledWith(
|
|
310
|
+
"Both `imageComponent` and `imageAspectRatio` are set but `imageAspectRatio` will be ignored in favor of the aspect ratio on `imageComponent`."
|
|
311
|
+
);
|
|
312
|
+
});
|
|
313
|
+
|
|
292
314
|
it("Renders the UI snapshot correctly", () => {
|
|
293
315
|
const regular = renderer.create(regularCard).toJSON();
|
|
294
316
|
const withExtendedStyles = renderer.create(cardWithExtendedStyles).toJSON();
|
|
@@ -296,6 +318,7 @@ describe("Card", () => {
|
|
|
296
318
|
const withNoContent = renderer.create(cardWithNoContent).toJSON();
|
|
297
319
|
const withNoImage = renderer.create(cardWithNoImage).toJSON();
|
|
298
320
|
const withFullClick = renderer.create(cardFullClick()).toJSON();
|
|
321
|
+
|
|
299
322
|
expect(regular).toMatchSnapshot();
|
|
300
323
|
expect(withExtendedStyles).toMatchSnapshot();
|
|
301
324
|
expect(withNoCTAs).toMatchSnapshot();
|
|
@@ -16,7 +16,8 @@ import generateUUID from "../../helpers/generateUUID";
|
|
|
16
16
|
interface CardBaseProps {
|
|
17
17
|
/** Optional value to control the alignment of the text and elements. */
|
|
18
18
|
center?: boolean;
|
|
19
|
-
/** Optional value to render the layout in a row or column
|
|
19
|
+
/** Optional value to render the layout in a row or column.
|
|
20
|
+
* Default is `CardLayouts.Column`. */
|
|
20
21
|
layout?: CardLayouts;
|
|
21
22
|
}
|
|
22
23
|
|
|
@@ -54,14 +55,15 @@ export interface CardProps extends CardBaseProps, CardLinkBoxProps {
|
|
|
54
55
|
/** Text description of the image; to follow best practices for accessibility,
|
|
55
56
|
* this prop should not be left blank if `imageSrc` is passed. */
|
|
56
57
|
imageAlt?: string;
|
|
57
|
-
/** Optional value to control the aspect ratio of the `
|
|
58
|
-
* value is `
|
|
58
|
+
/** Optional value to control the aspect ratio of the `CardImage`; default
|
|
59
|
+
* value is `ImageRatios.Square`. */
|
|
59
60
|
imageAspectRatio?: ImageRatios;
|
|
60
61
|
/** Optional boolean value to control the position of the `CardImage`. */
|
|
61
62
|
imageAtEnd?: boolean;
|
|
62
63
|
/** Custom image component used in place of DS `Image` component. */
|
|
63
64
|
imageComponent?: JSX.Element;
|
|
64
|
-
/** Optional value to control the size of the `CardImage`.
|
|
65
|
+
/** Optional value to control the size of the `CardImage`. Default value is
|
|
66
|
+
* `ImageSizes.Default`. */
|
|
65
67
|
imageSize?: ImageSizes;
|
|
66
68
|
/** The path to the image displayed within the `Card` component. */
|
|
67
69
|
imageSrc?: string;
|
|
@@ -91,14 +93,15 @@ function CardImage(props: React.ComponentProps<"img"> & CardImageProps) {
|
|
|
91
93
|
layout,
|
|
92
94
|
});
|
|
93
95
|
return (
|
|
94
|
-
<
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
<Box __css={styles}>
|
|
97
|
+
<Image
|
|
98
|
+
alt={alt}
|
|
99
|
+
component={component}
|
|
100
|
+
imageAspectRatio={imageAspectRatio}
|
|
101
|
+
imageSize={imageSize}
|
|
102
|
+
src={src}
|
|
103
|
+
/>
|
|
104
|
+
</Box>
|
|
102
105
|
);
|
|
103
106
|
}
|
|
104
107
|
|
|
@@ -178,10 +181,19 @@ export default function Card(props: React.PropsWithChildren<CardProps>) {
|
|
|
178
181
|
mainActionLink,
|
|
179
182
|
} = props;
|
|
180
183
|
const hasImage = imageSrc || imageComponent;
|
|
184
|
+
const finalImageAspectRatio = imageComponent
|
|
185
|
+
? ImageRatios.Original
|
|
186
|
+
: imageAspectRatio;
|
|
181
187
|
const customColors = {};
|
|
182
188
|
const cardContents = [];
|
|
183
189
|
let cardHeadingCount = 0;
|
|
184
190
|
|
|
191
|
+
if (imageComponent && imageAspectRatio !== ImageRatios.Square) {
|
|
192
|
+
console.warn(
|
|
193
|
+
"Both `imageComponent` and `imageAspectRatio` are set but `imageAspectRatio` will be ignored in favor of the aspect ratio on `imageComponent`."
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
|
|
185
197
|
backgroundColor && (customColors["backgroundColor"] = backgroundColor);
|
|
186
198
|
foregroundColor && (customColors["color"] = foregroundColor);
|
|
187
199
|
|
|
@@ -191,6 +203,7 @@ export default function Card(props: React.PropsWithChildren<CardProps>) {
|
|
|
191
203
|
hasImage,
|
|
192
204
|
imageAtEnd,
|
|
193
205
|
layout,
|
|
206
|
+
mainActionLink,
|
|
194
207
|
});
|
|
195
208
|
|
|
196
209
|
React.Children.map(children, (child: React.ReactElement, key) => {
|
|
@@ -245,7 +258,7 @@ export default function Card(props: React.PropsWithChildren<CardProps>) {
|
|
|
245
258
|
component={imageComponent}
|
|
246
259
|
alt={imageAlt}
|
|
247
260
|
imageSize={imageSize}
|
|
248
|
-
imageAspectRatio={
|
|
261
|
+
imageAspectRatio={finalImageAspectRatio}
|
|
249
262
|
imageAtEnd={imageAtEnd}
|
|
250
263
|
layout={layout}
|
|
251
264
|
/>
|
|
@@ -6,16 +6,20 @@ exports[`Card Renders the UI snapshot correctly 1`] = `
|
|
|
6
6
|
id="regularCard"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
|
-
className="
|
|
9
|
+
className="css-0"
|
|
10
10
|
>
|
|
11
11
|
<div
|
|
12
|
-
className="the-
|
|
12
|
+
className="the-wrap css-0"
|
|
13
13
|
>
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
<div
|
|
15
|
+
className="the-crop css-0"
|
|
16
|
+
>
|
|
17
|
+
<img
|
|
18
|
+
alt="Alt text"
|
|
19
|
+
className="css-0"
|
|
20
|
+
src="https://placeimg.com/400/200/arch"
|
|
21
|
+
/>
|
|
22
|
+
</div>
|
|
19
23
|
</div>
|
|
20
24
|
</div>
|
|
21
25
|
<div
|
|
@@ -55,16 +59,20 @@ exports[`Card Renders the UI snapshot correctly 2`] = `
|
|
|
55
59
|
id="cardWithExtendedStyles"
|
|
56
60
|
>
|
|
57
61
|
<div
|
|
58
|
-
className="
|
|
62
|
+
className="css-0"
|
|
59
63
|
>
|
|
60
64
|
<div
|
|
61
|
-
className="the-
|
|
65
|
+
className="the-wrap css-0"
|
|
62
66
|
>
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
<div
|
|
68
|
+
className="the-crop css-0"
|
|
69
|
+
>
|
|
70
|
+
<img
|
|
71
|
+
alt="Alt text"
|
|
72
|
+
className="css-0"
|
|
73
|
+
src="https://placeimg.com/300/400/arch"
|
|
74
|
+
/>
|
|
75
|
+
</div>
|
|
68
76
|
</div>
|
|
69
77
|
</div>
|
|
70
78
|
<div
|
|
@@ -96,6 +104,8 @@ exports[`Card Renders the UI snapshot correctly 2`] = `
|
|
|
96
104
|
className="css-0"
|
|
97
105
|
href="online"
|
|
98
106
|
id="link-online"
|
|
107
|
+
rel={null}
|
|
108
|
+
target={null}
|
|
99
109
|
>
|
|
100
110
|
Read Online
|
|
101
111
|
</a>
|
|
@@ -103,6 +113,8 @@ exports[`Card Renders the UI snapshot correctly 2`] = `
|
|
|
103
113
|
className="css-0"
|
|
104
114
|
href="#url"
|
|
105
115
|
id="link-icon"
|
|
116
|
+
rel={null}
|
|
117
|
+
target={null}
|
|
106
118
|
>
|
|
107
119
|
<svg
|
|
108
120
|
aria-hidden={true}
|
|
@@ -149,16 +161,20 @@ exports[`Card Renders the UI snapshot correctly 3`] = `
|
|
|
149
161
|
id="cardWithNoCTAs"
|
|
150
162
|
>
|
|
151
163
|
<div
|
|
152
|
-
className="
|
|
164
|
+
className="css-0"
|
|
153
165
|
>
|
|
154
166
|
<div
|
|
155
|
-
className="the-
|
|
167
|
+
className="the-wrap css-0"
|
|
156
168
|
>
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
169
|
+
<div
|
|
170
|
+
className="the-crop css-0"
|
|
171
|
+
>
|
|
172
|
+
<img
|
|
173
|
+
alt="Alt text"
|
|
174
|
+
className="css-0"
|
|
175
|
+
src="https://placeimg.com/300/400/arch"
|
|
176
|
+
/>
|
|
177
|
+
</div>
|
|
162
178
|
</div>
|
|
163
179
|
</div>
|
|
164
180
|
<div
|
|
@@ -193,16 +209,20 @@ exports[`Card Renders the UI snapshot correctly 4`] = `
|
|
|
193
209
|
id="cardWithNoContent"
|
|
194
210
|
>
|
|
195
211
|
<div
|
|
196
|
-
className="
|
|
212
|
+
className="css-0"
|
|
197
213
|
>
|
|
198
214
|
<div
|
|
199
|
-
className="the-
|
|
215
|
+
className="the-wrap css-0"
|
|
200
216
|
>
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
217
|
+
<div
|
|
218
|
+
className="the-crop css-0"
|
|
219
|
+
>
|
|
220
|
+
<img
|
|
221
|
+
alt="Alt text"
|
|
222
|
+
className="css-0"
|
|
223
|
+
src="https://placeimg.com/300/400/arch"
|
|
224
|
+
/>
|
|
225
|
+
</div>
|
|
206
226
|
</div>
|
|
207
227
|
</div>
|
|
208
228
|
<div
|
|
@@ -213,8 +233,11 @@ exports[`Card Renders the UI snapshot correctly 4`] = `
|
|
|
213
233
|
id="editioncardheading1"
|
|
214
234
|
>
|
|
215
235
|
<a
|
|
216
|
-
className="
|
|
236
|
+
className="css-0"
|
|
217
237
|
href="#edition-link"
|
|
238
|
+
id="editioncardheading1-link"
|
|
239
|
+
rel={null}
|
|
240
|
+
target={null}
|
|
218
241
|
>
|
|
219
242
|
The Card Heading
|
|
220
243
|
</a>
|
|
@@ -226,6 +249,8 @@ exports[`Card Renders the UI snapshot correctly 4`] = `
|
|
|
226
249
|
className="css-0"
|
|
227
250
|
href="online"
|
|
228
251
|
id="link-online"
|
|
252
|
+
rel={null}
|
|
253
|
+
target={null}
|
|
229
254
|
>
|
|
230
255
|
Read Online
|
|
231
256
|
</a>
|
|
@@ -233,6 +258,8 @@ exports[`Card Renders the UI snapshot correctly 4`] = `
|
|
|
233
258
|
className="css-0"
|
|
234
259
|
href="#url"
|
|
235
260
|
id="link-icon"
|
|
261
|
+
rel={null}
|
|
262
|
+
target={null}
|
|
236
263
|
>
|
|
237
264
|
<svg
|
|
238
265
|
aria-hidden={true}
|
|
@@ -286,8 +313,11 @@ exports[`Card Renders the UI snapshot correctly 5`] = `
|
|
|
286
313
|
id="editioncardheading1"
|
|
287
314
|
>
|
|
288
315
|
<a
|
|
289
|
-
className="
|
|
316
|
+
className="css-0"
|
|
290
317
|
href="#edition-link"
|
|
318
|
+
id="editioncardheading1-link"
|
|
319
|
+
rel={null}
|
|
320
|
+
target={null}
|
|
291
321
|
>
|
|
292
322
|
The Card Heading
|
|
293
323
|
</a>
|
|
@@ -304,6 +334,8 @@ exports[`Card Renders the UI snapshot correctly 5`] = `
|
|
|
304
334
|
className="css-0"
|
|
305
335
|
href="online"
|
|
306
336
|
id="link-online"
|
|
337
|
+
rel={null}
|
|
338
|
+
target={null}
|
|
307
339
|
>
|
|
308
340
|
Read Online
|
|
309
341
|
</a>
|
|
@@ -311,6 +343,8 @@ exports[`Card Renders the UI snapshot correctly 5`] = `
|
|
|
311
343
|
className="css-0"
|
|
312
344
|
href="#url"
|
|
313
345
|
id="link-icon"
|
|
346
|
+
rel={null}
|
|
347
|
+
target={null}
|
|
314
348
|
>
|
|
315
349
|
<svg
|
|
316
350
|
aria-hidden={true}
|
|
@@ -360,16 +394,20 @@ exports[`Card Renders the UI snapshot correctly 6`] = `
|
|
|
360
394
|
id="fullclick"
|
|
361
395
|
>
|
|
362
396
|
<div
|
|
363
|
-
className="
|
|
397
|
+
className="css-0"
|
|
364
398
|
>
|
|
365
399
|
<div
|
|
366
|
-
className="the-
|
|
400
|
+
className="the-wrap css-0"
|
|
367
401
|
>
|
|
368
|
-
<
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
402
|
+
<div
|
|
403
|
+
className="the-crop css-0"
|
|
404
|
+
>
|
|
405
|
+
<img
|
|
406
|
+
alt="Alt text"
|
|
407
|
+
className="css-0"
|
|
408
|
+
src="https://placeimg.com/400/200/arch"
|
|
409
|
+
/>
|
|
410
|
+
</div>
|
|
373
411
|
</div>
|
|
374
412
|
</div>
|
|
375
413
|
<div
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Meta, Story, Canvas } from "@storybook/addon-docs/blocks";
|
|
2
1
|
import { Box } from "@chakra-ui/react";
|
|
2
|
+
import { Canvas, Meta, Story } from "@storybook/addon-docs";
|
|
3
3
|
|
|
4
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
5
4
|
import VideoPlayer from "../VideoPlayer/VideoPlayer";
|
|
6
5
|
import {
|
|
7
|
-
VideoPlayerTypes,
|
|
8
6
|
VideoPlayerAspectRatios,
|
|
7
|
+
VideoPlayerTypes,
|
|
9
8
|
} from "../VideoPlayer/VideoPlayerTypes";
|
|
9
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
10
10
|
import DSProvider from "../../theme/provider";
|
|
11
11
|
|
|
12
12
|
<Meta title={getCategory("Box")} component={Box} />
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Box, Center, Circle, HStack, Square } from "@chakra-ui/react";
|
|
2
|
+
import { Canvas, Meta, Story } from "@storybook/addon-docs";
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import Icon from "../Icons/Icon";
|
|
5
|
+
import { IconColors, IconNames, IconSizes } from "../Icons/IconTypes";
|
|
5
6
|
import Image from "../Image/Image";
|
|
6
7
|
import { ImageSizes } from "../Image/ImageTypes";
|
|
7
|
-
import
|
|
8
|
-
import { IconNames, IconColors, IconSizes } from "../Icons/IconTypes";
|
|
8
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
9
9
|
import DSProvider from "../../theme/provider";
|
|
10
10
|
|
|
11
11
|
<Meta title={getCategory("Center, Circle, Square")} component={Center} />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { Box, Grid, GridItem } from "@chakra-ui/react";
|
|
2
|
+
import { Canvas, Meta, Story } from "@storybook/addon-docs";
|
|
3
|
+
|
|
4
4
|
import { getCategory } from "../../utils/componentCategories";
|
|
5
5
|
import DSProvider from "../../theme/provider";
|
|
6
6
|
|
|
@@ -11,6 +11,7 @@ import DSProvider from "../../theme/provider";
|
|
|
11
11
|
| Component Version | DS Version |
|
|
12
12
|
| ----------------- | ---------- |
|
|
13
13
|
| Added | `0.25.1` |
|
|
14
|
+
| Latest | `0.25.1` |
|
|
14
15
|
|
|
15
16
|
Note: This needs the use of the `DSProvider` component. See the
|
|
16
17
|
[README](https://nypl.github.io/nypl-design-system/storybook-static/?path=/story/chakra-ui--page#dsprovider)
|
|
@@ -63,16 +64,12 @@ the `templateColumns` and `templateRows`.
|
|
|
63
64
|
height="200px"
|
|
64
65
|
templateRows="repeat(2, 1fr)"
|
|
65
66
|
templateColumns="repeat(5, 1fr)"
|
|
66
|
-
gap="
|
|
67
|
+
gap="l"
|
|
67
68
|
>
|
|
68
|
-
<GridItem
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
/>
|
|
73
|
-
<GridItem colSpan={2} bg="var(--nypl-colors-ui-success-primary)" />
|
|
74
|
-
<GridItem colSpan={2} bg="var(--nypl-colors-ui-success-secondary)" />
|
|
75
|
-
<GridItem colSpan={4} bg="var(--nypl-colors-ui-link-secondary)" />
|
|
69
|
+
<GridItem rowSpan={2} colSpan={1} bg="ui.link.primary" />
|
|
70
|
+
<GridItem colSpan={2} bg="ui.success.primary" />
|
|
71
|
+
<GridItem colSpan={2} bg="ui.success.secondary" />
|
|
72
|
+
<GridItem colSpan={4} bg="ui.link.secondary" />
|
|
76
73
|
</Grid>
|
|
77
74
|
</DSProvider>
|
|
78
75
|
</Canvas>
|
|
@@ -82,11 +79,11 @@ the `templateColumns` and `templateRows`.
|
|
|
82
79
|
height="200px"
|
|
83
80
|
templateRows="repeat(2, 1fr)"
|
|
84
81
|
templateColumns="repeat(5, 1fr)"
|
|
85
|
-
gap="
|
|
82
|
+
gap="l"
|
|
86
83
|
>
|
|
87
|
-
<GridItem rowSpan={2} colSpan={1} bg="
|
|
88
|
-
<GridItem colSpan={2} bg="
|
|
89
|
-
<GridItem colSpan={2} bg="
|
|
90
|
-
<GridItem colSpan={4} bg="
|
|
84
|
+
<GridItem rowSpan={2} colSpan={1} bg="ui.link.primary" />
|
|
85
|
+
<GridItem colSpan={2} bg="ui.success.primary" />
|
|
86
|
+
<GridItem colSpan={2} bg="ui.success.secondary" />
|
|
87
|
+
<GridItem colSpan={4} bg="ui.link.secondary" />
|
|
91
88
|
</Grid>
|
|
92
89
|
```
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Meta, Story, Canvas } from "@storybook/addon-docs";
|
|
2
2
|
import { Box, Stack, HStack, VStack, Circle } from "@chakra-ui/react";
|
|
3
3
|
|
|
4
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
5
|
-
import DSProvider from "../../theme/provider";
|
|
6
4
|
import Icon from "../Icons/Icon";
|
|
7
5
|
import { IconNames, IconSizes } from "../Icons/IconTypes";
|
|
6
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
7
|
+
import DSProvider from "../../theme/provider";
|
|
8
8
|
|
|
9
9
|
<Meta title={getCategory("Stack, HStack, VStack")} component={Stack} />
|
|
10
10
|
|