@nypl/design-system-react-components 0.25.7 → 0.25.10
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 +119 -1
- package/README.md +1 -1
- 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 +4 -3
- package/dist/components/Fieldset/Fieldset.d.ts +1 -3
- package/dist/components/Form/Form.d.ts +15 -14
- package/dist/components/Form/FormTypes.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 +3 -3
- 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 +6 -5
- package/dist/components/SearchBar/SearchBar.d.ts +15 -7
- 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 +29 -0
- package/dist/components/Template/Template.d.ts +30 -6
- 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 +4698 -4405
- 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 +5862 -5573
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +0 -2
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +1 -1
- 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 +56 -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 +40 -37
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +16 -15
- package/src/components/Accordion/Accordion.test.tsx +45 -1
- package/src/components/Accordion/Accordion.tsx +20 -8
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
- 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 +43 -13
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +25 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +103 -4
- 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 +30 -14
- 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/Flex.stories.mdx +113 -0
- 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 +14 -12
- package/src/components/DatePicker/DatePicker.tsx +13 -10
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
- package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
- package/src/components/Fieldset/Fieldset.tsx +2 -4
- package/src/components/Form/Form.stories.mdx +75 -49
- package/src/components/Form/Form.test.tsx +92 -3
- package/src/components/Form/Form.tsx +28 -23
- package/src/components/Form/FormTypes.tsx +2 -2
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
- 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 +11 -9
- package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -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 +37 -25
- package/src/components/List/List.tsx +1 -1
- 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 +19 -9
- package/src/components/Pagination/Pagination.tsx +3 -3
- 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/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
- package/src/components/RadioGroup/RadioGroup.tsx +97 -94
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
- package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
- package/src/components/SearchBar/SearchBar.stories.mdx +116 -34
- package/src/components/SearchBar/SearchBar.tsx +70 -50
- package/src/components/Select/Select.stories.mdx +177 -66
- package/src/components/Select/Select.test.tsx +91 -2
- package/src/components/Select/Select.tsx +29 -13
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
- 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 +67 -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 +165 -0
- package/src/components/Table/Table.test.tsx +137 -0
- package/src/components/Table/Table.tsx +126 -0
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
- package/src/components/Tabs/Tabs.stories.mdx +20 -14
- package/src/components/Tabs/Tabs.test.tsx +21 -5
- package/src/components/Tabs/Tabs.tsx +33 -18
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
- package/src/components/Template/Template.stories.mdx +132 -49
- package/src/components/Template/Template.test.tsx +128 -6
- package/src/components/Template/Template.tsx +93 -13
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -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 +19 -6
- 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 +5 -5
- 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 +63 -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 +5 -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
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { render } from "@testing-library/react";
|
|
3
|
+
import { axe } from "jest-axe";
|
|
4
|
+
import renderer from "react-test-renderer";
|
|
5
|
+
|
|
6
|
+
import Logo from "./Logo";
|
|
7
|
+
import { LogoNames, LogoSizes } from "./LogoTypes";
|
|
8
|
+
|
|
9
|
+
describe("Logo Accessibility", () => {
|
|
10
|
+
it("passes axe accessibility test", async () => {
|
|
11
|
+
const { container } = render(<Logo name={LogoNames.NYPLBlack} />);
|
|
12
|
+
expect(await axe(container)).toHaveNoViolations();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
describe("Logo", () => {
|
|
17
|
+
it("consoles a warning if both name and children are passed to Logo", () => {
|
|
18
|
+
const warn = jest.spyOn(console, "warn");
|
|
19
|
+
render(
|
|
20
|
+
<Logo name={LogoNames.NYPLBlack}>
|
|
21
|
+
<svg viewBox="0 0 24 14" xmlns="http://www.w3.org/2000/svg">
|
|
22
|
+
<path
|
|
23
|
+
fillRule="evenodd"
|
|
24
|
+
clipRule="evenodd"
|
|
25
|
+
d="M10.526 12.871L.263 1.676 1.737.324 12 11.52 22.263.324l1.474 1.352L13.474 12.87a2 2 0 01-2.948 0z"
|
|
26
|
+
/>
|
|
27
|
+
</svg>
|
|
28
|
+
</Logo>
|
|
29
|
+
);
|
|
30
|
+
expect(warn).toHaveBeenCalledWith(
|
|
31
|
+
"Logo accepts either a `name` prop or an `svg` element child. It can not accept both."
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("consoles a warning if both name and children are not passed", () => {
|
|
36
|
+
const warn = jest.spyOn(console, "warn");
|
|
37
|
+
render(<Logo />);
|
|
38
|
+
expect(warn).toHaveBeenCalledWith(
|
|
39
|
+
"Pass a logo `name` prop or an SVG child to `Logo` to ensure a logo appears."
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("renders a logo based on the logo `name` prop", () => {
|
|
44
|
+
const { container } = render(<Logo name={LogoNames.NYPLBlack} />);
|
|
45
|
+
expect(container.querySelector("svg")).toBeInTheDocument();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// NOTE: the svg logo is dynamically generated by the "svgr" package. At build
|
|
49
|
+
// time, it generate the `title` element but it doesn't generate it for tests.
|
|
50
|
+
// In order to test this, we can check the `title` attribute in the svg
|
|
51
|
+
// element itself. Inspect the `Logo` in Storybook to see the `title` element.
|
|
52
|
+
it("renders a title element", () => {
|
|
53
|
+
const { container, rerender } = render(<Logo name={LogoNames.NYPLBlack} />);
|
|
54
|
+
expect(container.querySelector("svg")).toHaveAttribute(
|
|
55
|
+
"title",
|
|
56
|
+
"logo_nypl_full_black logo"
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
rerender(<Logo name={LogoNames.NYPLBlack} title="title content" />);
|
|
60
|
+
expect(container.querySelector("svg")).toHaveAttribute(
|
|
61
|
+
"title",
|
|
62
|
+
"title content"
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("renders a logo based on the child", () => {
|
|
67
|
+
const { container } = render(
|
|
68
|
+
<Logo>
|
|
69
|
+
<svg viewBox="0 0 24 14" xmlns="http://www.w3.org/2000/svg">
|
|
70
|
+
<path
|
|
71
|
+
fillRule="evenodd"
|
|
72
|
+
clipRule="evenodd"
|
|
73
|
+
d="M10.526 12.871L.263 1.676 1.737.324 12 11.52 22.263.324l1.474 1.352L13.474 12.87a2 2 0 01-2.948 0z"
|
|
74
|
+
/>
|
|
75
|
+
</svg>
|
|
76
|
+
</Logo>
|
|
77
|
+
);
|
|
78
|
+
expect(container.querySelector("svg")).toBeInTheDocument();
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it("renders the UI snapshot correctly", () => {
|
|
82
|
+
const standard = renderer
|
|
83
|
+
.create(<Logo id="test-logo" name={LogoNames.NYPLBlack} />)
|
|
84
|
+
.toJSON();
|
|
85
|
+
const withCustomSize = renderer
|
|
86
|
+
.create(
|
|
87
|
+
<Logo
|
|
88
|
+
id="test-logo-size"
|
|
89
|
+
name={LogoNames.NYPLBlack}
|
|
90
|
+
size={LogoSizes.Large}
|
|
91
|
+
/>
|
|
92
|
+
)
|
|
93
|
+
.toJSON();
|
|
94
|
+
|
|
95
|
+
expect(standard).toMatchSnapshot();
|
|
96
|
+
expect(withCustomSize).toMatchSnapshot();
|
|
97
|
+
});
|
|
98
|
+
});
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Icon as ChakraIcon, Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
|
+
|
|
4
|
+
import generateUUID from "../../helpers/generateUUID";
|
|
5
|
+
import { LogoNames, LogoSizes } from "./LogoTypes";
|
|
6
|
+
import logoSvgs from "./LogoSvgs";
|
|
7
|
+
|
|
8
|
+
export interface LogoProps {
|
|
9
|
+
/** Optionally pass in additional Chakra-based styles. */
|
|
10
|
+
additionalStyles?: { [key: string]: any };
|
|
11
|
+
/** Optional className that will be added to the parent element */
|
|
12
|
+
className?: string;
|
|
13
|
+
/** Logos designated as decorative will be ignored by screenreaders. False
|
|
14
|
+
* by default. */
|
|
15
|
+
decorative?: boolean;
|
|
16
|
+
/** ID that other components can cross reference for accessibility purposes */
|
|
17
|
+
id?: string;
|
|
18
|
+
/** The name of the logo you want to use. */
|
|
19
|
+
name?: LogoNames;
|
|
20
|
+
/** Sets the logo size. */
|
|
21
|
+
size?: LogoSizes;
|
|
22
|
+
/** For accessibility purposes, the text passed in the `title` prop gets
|
|
23
|
+
* rendered in a `title` element in the SVG. This descriptive text is not
|
|
24
|
+
* visible but is needed for screenreaders to describe the graphic. */
|
|
25
|
+
title?: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The `Logo` component renders SVG-based logos and color variants that are
|
|
30
|
+
* commonly used by the New York Public Library.
|
|
31
|
+
*/
|
|
32
|
+
export default function Logo(props: React.PropsWithChildren<LogoProps>) {
|
|
33
|
+
const {
|
|
34
|
+
additionalStyles = {},
|
|
35
|
+
children,
|
|
36
|
+
className,
|
|
37
|
+
decorative = false,
|
|
38
|
+
id = generateUUID(),
|
|
39
|
+
name,
|
|
40
|
+
size = LogoSizes.Medium,
|
|
41
|
+
title = `${name} logo`,
|
|
42
|
+
} = props;
|
|
43
|
+
const styles = useStyleConfig("Logo", {
|
|
44
|
+
size,
|
|
45
|
+
});
|
|
46
|
+
const logoProps = {
|
|
47
|
+
"aria-hidden": decorative,
|
|
48
|
+
className,
|
|
49
|
+
id,
|
|
50
|
+
role: "img",
|
|
51
|
+
title,
|
|
52
|
+
};
|
|
53
|
+
let childSVG = null;
|
|
54
|
+
|
|
55
|
+
// Component prop validation
|
|
56
|
+
if (name && children) {
|
|
57
|
+
console.warn(
|
|
58
|
+
"Logo accepts either a `name` prop or an `svg` element child. It can not accept both."
|
|
59
|
+
);
|
|
60
|
+
return null;
|
|
61
|
+
} else if (!name && !children) {
|
|
62
|
+
console.warn(
|
|
63
|
+
"Pass a logo `name` prop or an SVG child to `Logo` to ensure a logo appears."
|
|
64
|
+
);
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// The user wants to render an existing logo. Load the logo and render it
|
|
69
|
+
// as a component through Chakra's Icon component. Otherwise, we're going to
|
|
70
|
+
// render the SVG child with NYPL-theme styling.
|
|
71
|
+
if (name) {
|
|
72
|
+
const SvgComponent: any = logoSvgs[name];
|
|
73
|
+
return (
|
|
74
|
+
<ChakraIcon
|
|
75
|
+
as={SvgComponent}
|
|
76
|
+
{...logoProps}
|
|
77
|
+
__css={{ ...styles, ...additionalStyles }}
|
|
78
|
+
/>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// If no `name` prop was passed, we expect a child SVG element to be passed.
|
|
83
|
+
// Apply logo props to the SVG child.
|
|
84
|
+
if (
|
|
85
|
+
(children as JSX.Element).type === "svg" ||
|
|
86
|
+
(children as JSX.Element).props.type === "svg" ||
|
|
87
|
+
(children as JSX.Element).props.mdxType === "svg"
|
|
88
|
+
) {
|
|
89
|
+
childSVG = React.cloneElement(children as JSX.Element, {
|
|
90
|
+
...logoProps,
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
console.warn("You must pass an `svg` element to the `Logo` component.");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return <Box __css={styles}>{childSVG}</Box>;
|
|
97
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
import logo_bpl_black from "../../../icons/svg/logo_bpl_black.svg";
|
|
3
|
+
import logo_lpa_color from "../../../icons/svg/logo_lpa_color.svg";
|
|
4
|
+
import logo_lpa_white from "../../../icons/svg/logo_lpa_white.svg";
|
|
5
|
+
import logo_nypl_full_black from "../../../icons/svg/logo_nypl_full_black.svg";
|
|
6
|
+
import logo_nypl_full_white from "../../../icons/svg/logo_nypl_full_white.svg";
|
|
7
|
+
import logo_nypl_lion_black from "../../../icons/svg/logo_nypl_lion_black.svg";
|
|
8
|
+
import logo_nypl_lion_white from "../../../icons/svg/logo_nypl_lion_white.svg";
|
|
9
|
+
import logo_qpl_alt_black from "../../../icons/svg/logo_qpl_alt_black.svg";
|
|
10
|
+
import logo_qpl_color from "../../../icons/svg/logo_qpl_color.svg";
|
|
11
|
+
import logo_schomburg_circle_color from "../../../icons/svg/logo_schomburg_circle_color.svg";
|
|
12
|
+
import logo_schomburg_color from "../../../icons/svg/logo_schomburg_color.svg";
|
|
13
|
+
import logo_simplye_black from "../../../icons/svg/logo_simplye_black.svg";
|
|
14
|
+
import logo_simplye_color from "../../../icons/svg/logo_simplye_color.svg";
|
|
15
|
+
import logo_snfl_black from "../../../icons/svg/logo_snfl_black.svg";
|
|
16
|
+
import logo_snfl_white from "../../../icons/svg/logo_snfl_white.svg";
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
logo_bpl_black,
|
|
20
|
+
logo_lpa_color,
|
|
21
|
+
logo_lpa_white,
|
|
22
|
+
logo_nypl_full_black,
|
|
23
|
+
logo_nypl_full_white,
|
|
24
|
+
logo_nypl_lion_white,
|
|
25
|
+
logo_nypl_lion_black,
|
|
26
|
+
logo_qpl_alt_black,
|
|
27
|
+
logo_qpl_color,
|
|
28
|
+
logo_schomburg_circle_color,
|
|
29
|
+
logo_schomburg_color,
|
|
30
|
+
logo_simplye_black,
|
|
31
|
+
logo_simplye_color,
|
|
32
|
+
logo_snfl_black,
|
|
33
|
+
logo_snfl_white,
|
|
34
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export enum LogoColors {
|
|
2
|
+
Default = "",
|
|
3
|
+
UiBlack = "ui.black",
|
|
4
|
+
UiWhite = "ui.white",
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export enum LogoSizes {
|
|
8
|
+
ExtraExtraSmall = "xxsmall",
|
|
9
|
+
ExtraSmall = "xsmall",
|
|
10
|
+
Small = "small",
|
|
11
|
+
Medium = "medium",
|
|
12
|
+
Large = "large",
|
|
13
|
+
Default = "default",
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export enum LogoNames {
|
|
17
|
+
BrooklynPublicLibraryBlack = "logo_bpl_black",
|
|
18
|
+
LPAColor = "logo_lpa_color",
|
|
19
|
+
LPAWhite = "logo_lpa_white",
|
|
20
|
+
NYPLBlack = "logo_nypl_full_black",
|
|
21
|
+
NYPLWhite = "logo_nypl_full_white",
|
|
22
|
+
NYPLLionBlack = "logo_nypl_lion_black",
|
|
23
|
+
NYPLLionWhite = "logo_nypl_lion_white",
|
|
24
|
+
QueensPublicLibraryColor = "logo_qpl_color",
|
|
25
|
+
QueensPublicLibraryAltBlack = "logo_qpl_alt_black",
|
|
26
|
+
SchomburgColor = "logo_schomburg_color",
|
|
27
|
+
SchomburgCircleColor = "logo_schomburg_circle_color",
|
|
28
|
+
SimplyEColor = "logo_simplye_color",
|
|
29
|
+
SimplyEBlack = "logo_simplye_black",
|
|
30
|
+
SNFLBlack = "logo_snfl_black",
|
|
31
|
+
SNFLWhite = "logo_snfl_white",
|
|
32
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Logo renders the UI snapshot correctly 1`] = `
|
|
4
|
+
<svg
|
|
5
|
+
aria-hidden={false}
|
|
6
|
+
className="chakra-icon css-onkibi"
|
|
7
|
+
focusable={false}
|
|
8
|
+
id="test-logo"
|
|
9
|
+
role="img"
|
|
10
|
+
title="logo_nypl_full_black logo"
|
|
11
|
+
viewBox="0 0 24 24"
|
|
12
|
+
>
|
|
13
|
+
<g
|
|
14
|
+
stroke="currentColor"
|
|
15
|
+
strokeWidth="1.5"
|
|
16
|
+
>
|
|
17
|
+
<path
|
|
18
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
19
|
+
fill="none"
|
|
20
|
+
strokeLinecap="round"
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
24
|
+
fill="currentColor"
|
|
25
|
+
strokeLinecap="round"
|
|
26
|
+
/>
|
|
27
|
+
<circle
|
|
28
|
+
cx="12"
|
|
29
|
+
cy="12"
|
|
30
|
+
fill="none"
|
|
31
|
+
r="11.25"
|
|
32
|
+
strokeMiterlimit="10"
|
|
33
|
+
/>
|
|
34
|
+
</g>
|
|
35
|
+
</svg>
|
|
36
|
+
`;
|
|
37
|
+
|
|
38
|
+
exports[`Logo renders the UI snapshot correctly 2`] = `
|
|
39
|
+
<svg
|
|
40
|
+
aria-hidden={false}
|
|
41
|
+
className="chakra-icon css-onkibi"
|
|
42
|
+
focusable={false}
|
|
43
|
+
id="test-logo-size"
|
|
44
|
+
role="img"
|
|
45
|
+
title="logo_nypl_full_black logo"
|
|
46
|
+
viewBox="0 0 24 24"
|
|
47
|
+
>
|
|
48
|
+
<g
|
|
49
|
+
stroke="currentColor"
|
|
50
|
+
strokeWidth="1.5"
|
|
51
|
+
>
|
|
52
|
+
<path
|
|
53
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
54
|
+
fill="none"
|
|
55
|
+
strokeLinecap="round"
|
|
56
|
+
/>
|
|
57
|
+
<path
|
|
58
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
59
|
+
fill="currentColor"
|
|
60
|
+
strokeLinecap="round"
|
|
61
|
+
/>
|
|
62
|
+
<circle
|
|
63
|
+
cx="12"
|
|
64
|
+
cy="12"
|
|
65
|
+
fill="none"
|
|
66
|
+
r="11.25"
|
|
67
|
+
strokeMiterlimit="10"
|
|
68
|
+
/>
|
|
69
|
+
</g>
|
|
70
|
+
</svg>
|
|
71
|
+
`;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import {
|
|
3
|
-
Meta,
|
|
4
|
-
Story,
|
|
5
3
|
ArgsTable,
|
|
6
4
|
Canvas,
|
|
7
5
|
Description,
|
|
8
|
-
|
|
6
|
+
Meta,
|
|
7
|
+
Story,
|
|
8
|
+
} from "@storybook/addon-docs";
|
|
9
|
+
|
|
9
10
|
import Modal from "./Modal";
|
|
10
11
|
import Button from "../Button/Button";
|
|
11
12
|
import { getCategory } from "../../utils/componentCategories";
|
|
@@ -14,7 +15,12 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
14
15
|
title={getCategory("Modal")}
|
|
15
16
|
component={Modal}
|
|
16
17
|
argTypes={{
|
|
18
|
+
blockName: { control: false },
|
|
17
19
|
children: { table: { disable: true } },
|
|
20
|
+
className: { control: false },
|
|
21
|
+
id: { control: false },
|
|
22
|
+
modifiers: { control: false },
|
|
23
|
+
open: { description: "Only used in Storybook." },
|
|
18
24
|
}}
|
|
19
25
|
parameters={{
|
|
20
26
|
jest: ["Modal.test.tsx"],
|
|
@@ -119,12 +125,21 @@ export const ModalStory = (args) => {
|
|
|
119
125
|
};
|
|
120
126
|
|
|
121
127
|
<Canvas withToolbar>
|
|
122
|
-
<Story
|
|
128
|
+
<Story
|
|
129
|
+
name="Modal"
|
|
130
|
+
args={{
|
|
131
|
+
blockName: undefined,
|
|
132
|
+
className: undefined,
|
|
133
|
+
id: "modal-id",
|
|
134
|
+
modifiers: undefined,
|
|
135
|
+
open: false,
|
|
136
|
+
}}
|
|
137
|
+
>
|
|
123
138
|
{(args) => <ModalStory {...args} />}
|
|
124
139
|
</Story>
|
|
125
140
|
</Canvas>
|
|
126
141
|
|
|
127
|
-
<ArgsTable story="
|
|
142
|
+
<ArgsTable story="Modal" />
|
|
128
143
|
|
|
129
144
|
## Code Implementation
|
|
130
145
|
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import bem from "../../utils/bem";
|
|
3
2
|
|
|
4
3
|
export interface ModalProps {
|
|
5
|
-
/** BlockName for use with BEM. See how to work with blockNames and BEM here: http://getbem.com/introduction/ */
|
|
6
|
-
blockName?: string;
|
|
7
4
|
/** ClassName that appears in addition to "modal" */
|
|
8
5
|
className?: string;
|
|
9
6
|
/** ID that other components can cross reference for accessibility purposes */
|
|
10
7
|
id?: string;
|
|
11
|
-
/** Modifiers array for use with BEM. See how to work with modifiers and BEM here: http://getbem.com/introduction/ */
|
|
12
|
-
modifiers?: string[];
|
|
13
8
|
}
|
|
14
9
|
|
|
15
10
|
/** Full-screen modal that appears on top of the body of the page. */
|
|
@@ -23,14 +18,13 @@ export default class Modal extends React.Component<ModalProps, any> {
|
|
|
23
18
|
}
|
|
24
19
|
|
|
25
20
|
render() {
|
|
26
|
-
const {
|
|
27
|
-
const baseClass = "modal";
|
|
21
|
+
const { id, className } = this.props;
|
|
28
22
|
|
|
29
23
|
return (
|
|
30
24
|
<div
|
|
31
25
|
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
32
26
|
tabIndex={0}
|
|
33
|
-
className={
|
|
27
|
+
className={`modal ${className}`}
|
|
34
28
|
id={id}
|
|
35
29
|
>
|
|
36
30
|
{this.props.children}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
2
|
ArgsTable,
|
|
6
|
-
|
|
3
|
+
Canvas,
|
|
7
4
|
Description,
|
|
8
|
-
|
|
5
|
+
Meta,
|
|
6
|
+
Story,
|
|
7
|
+
} from "@storybook/addon-docs";
|
|
9
8
|
import { withDesign } from "storybook-addon-designs";
|
|
10
9
|
|
|
10
|
+
import Icon from "../Icons/Icon";
|
|
11
|
+
import { IconColors, IconNames } from "../Icons/IconTypes";
|
|
11
12
|
import Notification from "./Notification";
|
|
12
13
|
import { NotificationTypes } from "./NotificationTypes";
|
|
13
|
-
import Icon from "../Icons/Icon";
|
|
14
|
-
import {
|
|
15
|
-
IconSizes,
|
|
16
|
-
IconColors,
|
|
17
|
-
IconNames,
|
|
18
|
-
IconAlign,
|
|
19
|
-
} from "../Icons/IconTypes";
|
|
20
14
|
import { getCategory } from "../../utils/componentCategories";
|
|
21
15
|
import DSProvider from "../../theme/provider";
|
|
16
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
17
|
+
|
|
18
|
+
export const enumValues = getStorybookEnumValues(
|
|
19
|
+
NotificationTypes,
|
|
20
|
+
"NotificationTypes"
|
|
21
|
+
);
|
|
22
22
|
|
|
23
23
|
<Meta
|
|
24
24
|
title={getCategory("Notification")}
|
|
@@ -27,11 +27,29 @@ import DSProvider from "../../theme/provider";
|
|
|
27
27
|
parameters={{
|
|
28
28
|
design: {
|
|
29
29
|
type: "figma",
|
|
30
|
-
url:
|
|
31
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/?node-id=10734%3A812",
|
|
30
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/?node-id=10734%3A812",
|
|
32
31
|
},
|
|
33
32
|
jest: ["Notification.test.tsx"],
|
|
34
33
|
}}
|
|
34
|
+
argTypes={{
|
|
35
|
+
centered: {
|
|
36
|
+
table: { defaultValue: { summary: false } },
|
|
37
|
+
},
|
|
38
|
+
className: { control: false },
|
|
39
|
+
dismissible: {
|
|
40
|
+
table: { defaultValue: { summary: false } },
|
|
41
|
+
},
|
|
42
|
+
icon: { control: false },
|
|
43
|
+
id: { control: false },
|
|
44
|
+
noMargin: {
|
|
45
|
+
table: { defaultValue: { summary: false } },
|
|
46
|
+
},
|
|
47
|
+
notificationType: {
|
|
48
|
+
control: { type: "select" },
|
|
49
|
+
table: { defaultValue: { summary: "NotificationTypes.Standard" } },
|
|
50
|
+
options: enumValues.options,
|
|
51
|
+
},
|
|
52
|
+
}}
|
|
35
53
|
/>
|
|
36
54
|
|
|
37
55
|
# Notification
|
|
@@ -39,7 +57,7 @@ import DSProvider from "../../theme/provider";
|
|
|
39
57
|
| Component Version | DS Version |
|
|
40
58
|
| ----------------- | ---------- |
|
|
41
59
|
| Added | `0.23.2` |
|
|
42
|
-
| Latest | `0.25.
|
|
60
|
+
| Latest | `0.25.9` |
|
|
43
61
|
|
|
44
62
|
<Description of={Notification} />
|
|
45
63
|
|
|
@@ -52,10 +70,14 @@ within a parent element.
|
|
|
52
70
|
|
|
53
71
|
<Canvas>
|
|
54
72
|
<Story
|
|
55
|
-
name="Notification
|
|
73
|
+
name="Notification with Controls"
|
|
56
74
|
args={{
|
|
57
|
-
|
|
58
|
-
|
|
75
|
+
centered: false,
|
|
76
|
+
className: undefined,
|
|
77
|
+
dismissible: false,
|
|
78
|
+
icon: undefined,
|
|
79
|
+
id: "notification-id",
|
|
80
|
+
noMargin: false,
|
|
59
81
|
notificationHeading: "Notification Heading",
|
|
60
82
|
notificationContent: (
|
|
61
83
|
<>
|
|
@@ -67,17 +89,21 @@ within a parent element.
|
|
|
67
89
|
nisi erat porttitor ligula.
|
|
68
90
|
</>
|
|
69
91
|
),
|
|
92
|
+
showIcon: true,
|
|
70
93
|
}}
|
|
71
94
|
>
|
|
72
95
|
{(args) => (
|
|
73
96
|
<div style={{ border: "1px solid #ccc" }}>
|
|
74
|
-
<Notification
|
|
97
|
+
<Notification
|
|
98
|
+
{...args}
|
|
99
|
+
notificationType={enumValues.getValue(args.notificationType)}
|
|
100
|
+
/>
|
|
75
101
|
</div>
|
|
76
102
|
)}
|
|
77
103
|
</Story>
|
|
78
104
|
</Canvas>
|
|
79
105
|
|
|
80
|
-
<ArgsTable story="Notification
|
|
106
|
+
<ArgsTable story="Notification with Controls" />
|
|
81
107
|
|
|
82
108
|
## Variants
|
|
83
109
|
|
|
@@ -194,31 +220,61 @@ within a parent element.
|
|
|
194
220
|
</DSProvider>
|
|
195
221
|
</Canvas>
|
|
196
222
|
|
|
223
|
+
### Without Icon
|
|
224
|
+
|
|
225
|
+
The `Notification` icon can be hidden with the `showIcon` prop set to `false`.
|
|
226
|
+
|
|
227
|
+
<Canvas>
|
|
228
|
+
<DSProvider>
|
|
229
|
+
<Notification
|
|
230
|
+
notificationHeading="Standard Notification without Icon"
|
|
231
|
+
notificationContent={
|
|
232
|
+
<>
|
|
233
|
+
Cras mattis consectetur purus sit amet fermentum. Maecenas faucibus
|
|
234
|
+
mollis interdum. Morbi leo risus, porta ac consectetur ac, vestibulum
|
|
235
|
+
at eros. Cum sociis natoque penatibus et magnis dis parturient montes,
|
|
236
|
+
nascetur ridiculus mus.
|
|
237
|
+
</>
|
|
238
|
+
}
|
|
239
|
+
showIcon={false}
|
|
240
|
+
/>
|
|
241
|
+
<Notification
|
|
242
|
+
notificationContent={
|
|
243
|
+
<>
|
|
244
|
+
This is an Standard Notification without a heading or icon. Cras
|
|
245
|
+
mattis consectetur purus sit amet fermentum. Maecenas faucibus mollis
|
|
246
|
+
interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at
|
|
247
|
+
eros. Cum sociis natoque penatibus et magnis dis parturient montes,
|
|
248
|
+
nascetur ridiculus mus.
|
|
249
|
+
</>
|
|
250
|
+
}
|
|
251
|
+
showIcon={false}
|
|
252
|
+
/>
|
|
253
|
+
</DSProvider>
|
|
254
|
+
</Canvas>
|
|
255
|
+
|
|
197
256
|
## Custom Icon
|
|
198
257
|
|
|
199
258
|
The default icon can be overridden by using the `icon` prop to pass a custom `Icon` component.
|
|
200
259
|
|
|
201
260
|
<Canvas>
|
|
202
261
|
<Story name="Custom Icons">
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
/>
|
|
222
|
-
)}
|
|
262
|
+
<Notification
|
|
263
|
+
icon={
|
|
264
|
+
<Icon
|
|
265
|
+
name={IconNames.Check}
|
|
266
|
+
color={IconColors.SectionResearchSecondary}
|
|
267
|
+
/>
|
|
268
|
+
}
|
|
269
|
+
notificationHeading="Custom Icon"
|
|
270
|
+
notificationContent={
|
|
271
|
+
<>
|
|
272
|
+
This is a Notification with a custom icon. Cras mattis consectetur
|
|
273
|
+
purus sit amet fermentum. Maecenas faucibus mollis interdum. Morbi leo
|
|
274
|
+
risus, porta ac consectetur ac, vestibulum at eros. Cum sociis natoque
|
|
275
|
+
penatibus et magnis dis parturient montes, nascetur ridiculus mus.
|
|
276
|
+
</>
|
|
277
|
+
}
|
|
278
|
+
/>
|
|
223
279
|
</Story>
|
|
224
280
|
</Canvas>
|