@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
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
2
|
ArgsTable,
|
|
3
|
+
Canvas,
|
|
6
4
|
Description,
|
|
7
|
-
|
|
5
|
+
Meta,
|
|
6
|
+
Story,
|
|
7
|
+
} from "@storybook/addon-docs";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
10
|
import SimpleGrid from "./SimpleGrid";
|
|
11
|
+
import { GridGaps } from "./GridTypes";
|
|
11
12
|
import Card, { CardHeading, CardContent, CardActions } from "../Card/Card";
|
|
12
13
|
import { CardLayouts } from "../Card/CardTypes";
|
|
13
14
|
import { HeadingDisplaySizes, HeadingLevels } from "../Heading/HeadingTypes";
|
|
@@ -20,9 +21,11 @@ import {
|
|
|
20
21
|
} from "../Icons/IconTypes";
|
|
21
22
|
import Image from "../Image/Image";
|
|
22
23
|
import { ImageRatios } from "../Image/ImageTypes";
|
|
23
|
-
|
|
24
24
|
import { getCategory } from "../../utils/componentCategories";
|
|
25
25
|
import DSProvider from "../../theme/provider";
|
|
26
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
27
|
+
|
|
28
|
+
export const enumValues = getStorybookEnumValues(GridGaps, "GridGaps");
|
|
26
29
|
|
|
27
30
|
<Meta
|
|
28
31
|
title={getCategory("SimpleGrid")}
|
|
@@ -31,32 +34,21 @@ import DSProvider from "../../theme/provider";
|
|
|
31
34
|
parameters={{
|
|
32
35
|
design: {
|
|
33
36
|
type: "figma",
|
|
34
|
-
url:
|
|
35
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36835%3A26613",
|
|
37
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=36835%3A26613",
|
|
36
38
|
},
|
|
37
39
|
jest: ["SimpleGrid.test.tsx"],
|
|
38
40
|
}}
|
|
39
41
|
argTypes={{
|
|
42
|
+
className: { control: false },
|
|
40
43
|
columns: {
|
|
41
|
-
control: {
|
|
42
|
-
type: "number",
|
|
43
|
-
min: 2,
|
|
44
|
-
},
|
|
45
|
-
table: {
|
|
46
|
-
defaultValue: {
|
|
47
|
-
summary: 3,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
44
|
+
control: { min: 2, type: "number" },
|
|
50
45
|
},
|
|
51
46
|
gap: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
},
|
|
56
|
-
},
|
|
47
|
+
control: { type: "select" },
|
|
48
|
+
options: enumValues.options,
|
|
49
|
+
table: { defaultValue: { summary: "GridGaps.Large" } },
|
|
57
50
|
},
|
|
58
|
-
|
|
59
|
-
id: { table: { disable: true } },
|
|
51
|
+
id: { control: false },
|
|
60
52
|
}}
|
|
61
53
|
/>
|
|
62
54
|
|
|
@@ -74,9 +66,17 @@ The `SimpleGrid` component is used to render UI elements in a uniform grid layou
|
|
|
74
66
|
The NYPL standards for the items per row in a grid is `3` for desktop, `2` for tablet and `1` for mobile. By default, the `SimpleGrid` component uses these standards and the `columns` prop is optional. If the `columns` prop is used, the tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row) will be triggered.
|
|
75
67
|
|
|
76
68
|
<Canvas withToolbar>
|
|
77
|
-
<Story
|
|
69
|
+
<Story
|
|
70
|
+
name="SimpleGrid with Controls"
|
|
71
|
+
args={{
|
|
72
|
+
className: undefined,
|
|
73
|
+
columns: undefined,
|
|
74
|
+
gap: "GridGaps.Large",
|
|
75
|
+
id: "simpleGrid-id",
|
|
76
|
+
}}
|
|
77
|
+
>
|
|
78
78
|
{(args) => (
|
|
79
|
-
<SimpleGrid {...args}>
|
|
79
|
+
<SimpleGrid {...args} gap={enumValues.getValue(args.gap)}>
|
|
80
80
|
<Card
|
|
81
81
|
imageSrc="https://placeimg.com/400/220/animals"
|
|
82
82
|
imageAlt="Alt text"
|
|
@@ -148,7 +148,7 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
148
148
|
</Story>
|
|
149
149
|
</Canvas>
|
|
150
150
|
|
|
151
|
-
<ArgsTable story="SimpleGrid
|
|
151
|
+
<ArgsTable story="SimpleGrid with Controls" />
|
|
152
152
|
|
|
153
153
|
## Other SimpleGrid Examples
|
|
154
154
|
|
|
@@ -1,16 +1,25 @@
|
|
|
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
|
|
|
11
10
|
import Heading from "./Heading";
|
|
12
11
|
import { HeadingDisplaySizes, HeadingLevels } from "./HeadingTypes";
|
|
13
12
|
import { getCategory } from "../../utils/componentCategories";
|
|
13
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
14
|
+
|
|
15
|
+
export const sizesEnumValues = getStorybookEnumValues(
|
|
16
|
+
HeadingDisplaySizes,
|
|
17
|
+
"HeadingDisplaySizes"
|
|
18
|
+
);
|
|
19
|
+
export const levelsEnumValues = getStorybookEnumValues(
|
|
20
|
+
HeadingLevels,
|
|
21
|
+
"HeadingLevels"
|
|
22
|
+
);
|
|
14
23
|
|
|
15
24
|
<Meta
|
|
16
25
|
title={getCategory("Heading")}
|
|
@@ -19,15 +28,23 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
19
28
|
parameters={{
|
|
20
29
|
design: {
|
|
21
30
|
type: "figma",
|
|
22
|
-
url:
|
|
23
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=10975%3A16",
|
|
31
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=10975%3A16",
|
|
24
32
|
},
|
|
25
33
|
jest: ["Heading.test.tsx"],
|
|
26
34
|
}}
|
|
27
35
|
argTypes={{
|
|
28
|
-
additionalStyles: {
|
|
29
|
-
className: {
|
|
30
|
-
|
|
36
|
+
additionalStyles: { control: false },
|
|
37
|
+
className: { control: false },
|
|
38
|
+
displaySize: {
|
|
39
|
+
control: { type: "select" },
|
|
40
|
+
options: sizesEnumValues.options,
|
|
41
|
+
},
|
|
42
|
+
id: { control: false },
|
|
43
|
+
level: {
|
|
44
|
+
control: { type: "select" },
|
|
45
|
+
options: levelsEnumValues.options,
|
|
46
|
+
table: { defaultValue: { summary: "HeadingLevels.Two" } },
|
|
47
|
+
},
|
|
31
48
|
}}
|
|
32
49
|
/>
|
|
33
50
|
|
|
@@ -36,25 +53,41 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
36
53
|
| Component Version | DS Version |
|
|
37
54
|
| ----------------- | ---------- |
|
|
38
55
|
| Added | `0.0.4` |
|
|
39
|
-
| Latest | `0.25.
|
|
56
|
+
| Latest | `0.25.9` |
|
|
40
57
|
|
|
41
58
|
<Description of={Heading} />
|
|
42
59
|
|
|
43
|
-
A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
|
|
60
|
+
A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
|
|
61
|
+
text can be passed in through a `text` prop or as a child. Default styles for
|
|
62
|
+
semantic elements can be overwritten using the `displaySize` prop.
|
|
44
63
|
|
|
45
64
|
<Canvas withToolbar>
|
|
46
65
|
<Story
|
|
47
|
-
name="Heading
|
|
66
|
+
name="Heading with Controls"
|
|
48
67
|
args={{
|
|
49
|
-
|
|
68
|
+
additionalStyles: undefined,
|
|
69
|
+
className: undefined,
|
|
70
|
+
displaySize: undefined,
|
|
71
|
+
id: "heading-id",
|
|
72
|
+
level: "HeadingLevels.Two",
|
|
50
73
|
text: "Default Heading",
|
|
74
|
+
url: undefined,
|
|
75
|
+
urlClass: undefined,
|
|
51
76
|
}}
|
|
52
77
|
>
|
|
53
|
-
{(args) =>
|
|
78
|
+
{(args) => (
|
|
79
|
+
<Heading
|
|
80
|
+
{...args}
|
|
81
|
+
displaySize={
|
|
82
|
+
args.displaySize && sizesEnumValues.getValue(args.displaySize)
|
|
83
|
+
}
|
|
84
|
+
level={levelsEnumValues.getValue(args.level)}
|
|
85
|
+
/>
|
|
86
|
+
)}
|
|
54
87
|
</Story>
|
|
55
88
|
</Canvas>
|
|
56
89
|
|
|
57
|
-
<ArgsTable story="Heading
|
|
90
|
+
<ArgsTable story="Heading with Controls" />
|
|
58
91
|
|
|
59
92
|
## Default Heading Styles
|
|
60
93
|
|
|
@@ -64,32 +97,32 @@ A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
|
|
|
64
97
|
<Heading
|
|
65
98
|
id="heading-one"
|
|
66
99
|
level={HeadingLevels.One}
|
|
67
|
-
text="<h1> Heading 1"
|
|
100
|
+
text="<h1> Heading 1 - HeadingLevels.One"
|
|
68
101
|
/>
|
|
69
102
|
<Heading
|
|
70
103
|
id="heading-two"
|
|
71
104
|
level={HeadingLevels.Two}
|
|
72
|
-
text="<h2> Heading 2"
|
|
105
|
+
text="<h2> Heading 2 - HeadingLevels.Two"
|
|
73
106
|
/>
|
|
74
107
|
<Heading
|
|
75
108
|
id="heading-three"
|
|
76
109
|
level={HeadingLevels.Three}
|
|
77
|
-
text="<h3> Heading 3"
|
|
110
|
+
text="<h3> Heading 3 - HeadingLevels.Three"
|
|
78
111
|
/>
|
|
79
112
|
<Heading
|
|
80
113
|
id="heading-four"
|
|
81
114
|
level={HeadingLevels.Four}
|
|
82
|
-
text="<h4> Heading 4"
|
|
115
|
+
text="<h4> Heading 4 - HeadingLevels.Four"
|
|
83
116
|
/>
|
|
84
117
|
<Heading
|
|
85
118
|
id="heading-five"
|
|
86
119
|
level={HeadingLevels.Five}
|
|
87
|
-
text="<h5> Heading 5"
|
|
120
|
+
text="<h5> Heading 5 - HeadingLevels.Five"
|
|
88
121
|
/>
|
|
89
122
|
<Heading
|
|
90
123
|
id="heading-six"
|
|
91
124
|
level={HeadingLevels.Six}
|
|
92
|
-
text="<h6> Heading 6"
|
|
125
|
+
text="<h6> Heading 6 - HeadingLevels.Six"
|
|
93
126
|
/>
|
|
94
127
|
</div>
|
|
95
128
|
</Story>
|
|
@@ -97,6 +130,9 @@ A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
|
|
|
97
130
|
|
|
98
131
|
## DisplaySize Styles
|
|
99
132
|
|
|
133
|
+
Note: The `level` prop for the `Heading`s in the next example are all set to
|
|
134
|
+
`level={HeadingLevels.One}`.
|
|
135
|
+
|
|
100
136
|
<Canvas>
|
|
101
137
|
<Story name="DisplaySize Styles">
|
|
102
138
|
<div>
|
|
@@ -155,7 +191,7 @@ When the `url` prop is passed to `Heading`, a child `<a>` element is created and
|
|
|
155
191
|
/>
|
|
156
192
|
<Heading id="heading-with-link-child" level={HeadingLevels.Two}>
|
|
157
193
|
<>
|
|
158
|
-
Heading with a Word <a href="hello">Link</a>
|
|
194
|
+
Heading with a Word <a href="#hello">Link</a>
|
|
159
195
|
</>
|
|
160
196
|
</Heading>
|
|
161
197
|
</Story>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { render, screen } from "@testing-library/react";
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
|
+
import renderer from "react-test-renderer";
|
|
4
5
|
|
|
5
6
|
import Heading from "./Heading";
|
|
6
7
|
import { HeadingDisplaySizes, HeadingLevels } from "./HeadingTypes";
|
|
@@ -15,12 +16,13 @@ describe("Heading Accessibility", () => {
|
|
|
15
16
|
});
|
|
16
17
|
|
|
17
18
|
describe("Heading", () => {
|
|
18
|
-
it("
|
|
19
|
+
it("renders and HTML heading element with the correct level", () => {
|
|
19
20
|
render(<Heading id="h1" level={HeadingLevels.One} text="Heading 1" />);
|
|
20
21
|
expect(screen.getByRole("heading", { level: 1 })).toBeInTheDocument();
|
|
21
22
|
expect(screen.getByText("Heading 1")).toBeInTheDocument();
|
|
22
23
|
});
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
it("can pass heading content as child", () => {
|
|
24
26
|
render(
|
|
25
27
|
<Heading id="h1" level={HeadingLevels.Two}>
|
|
26
28
|
Heading 2
|
|
@@ -30,13 +32,18 @@ describe("Heading", () => {
|
|
|
30
32
|
expect(screen.getByText("Heading 2")).toBeInTheDocument();
|
|
31
33
|
});
|
|
32
34
|
|
|
35
|
+
it("renders the default level two if no `level` prop is passed", () => {
|
|
36
|
+
render(<Heading id="h2">Heading 2</Heading>);
|
|
37
|
+
expect(screen.getByRole("heading", { level: 2 })).toBeInTheDocument();
|
|
38
|
+
});
|
|
39
|
+
|
|
33
40
|
// TODO: check that header children are links
|
|
34
41
|
// it("Throws error when invalid heading is passed as child", () => {
|
|
35
42
|
// expect(() => render(<Heading id="h1" level={HeadingLevels.Three}><span>oh no</span></Heading>))
|
|
36
43
|
// .to.throw("Headings can only be plain text or bold");
|
|
37
44
|
// });
|
|
38
45
|
|
|
39
|
-
it("
|
|
46
|
+
it("can pass a span element as a child", () => {
|
|
40
47
|
render(
|
|
41
48
|
<Heading id="h1" level={HeadingLevels.One}>
|
|
42
49
|
<span>
|
|
@@ -47,7 +54,7 @@ describe("Heading", () => {
|
|
|
47
54
|
expect(screen.getByText(/Text/i)).toBeInTheDocument();
|
|
48
55
|
});
|
|
49
56
|
|
|
50
|
-
it("
|
|
57
|
+
it("prioritizes the child when both child and the text prop are passed", () => {
|
|
51
58
|
render(
|
|
52
59
|
<Heading id="h1" level={HeadingLevels.One} text="prop text">
|
|
53
60
|
child text
|
|
@@ -56,20 +63,20 @@ describe("Heading", () => {
|
|
|
56
63
|
expect(screen.getByText("child text")).toBeInTheDocument();
|
|
57
64
|
});
|
|
58
65
|
|
|
59
|
-
it("
|
|
66
|
+
it("renders an anchor element when the `url` prop is passed", () => {
|
|
60
67
|
render(
|
|
61
68
|
<Heading
|
|
62
69
|
id="h1"
|
|
63
70
|
level={HeadingLevels.One}
|
|
64
|
-
url="fake-url"
|
|
65
71
|
text="Heading 1"
|
|
72
|
+
url="fake-url"
|
|
66
73
|
/>
|
|
67
74
|
);
|
|
68
75
|
|
|
69
76
|
expect(screen.getByRole("link")).toBeInTheDocument();
|
|
70
77
|
});
|
|
71
78
|
|
|
72
|
-
it("
|
|
79
|
+
it("adds the `urlClass` prop to the anchor element as its class name", () => {
|
|
73
80
|
render(
|
|
74
81
|
<Heading
|
|
75
82
|
id="h1"
|
|
@@ -84,19 +91,13 @@ describe("Heading", () => {
|
|
|
84
91
|
);
|
|
85
92
|
});
|
|
86
93
|
|
|
87
|
-
it("
|
|
88
|
-
expect(() =>
|
|
89
|
-
|
|
90
|
-
).toThrow("Heading only supports levels 1-6");
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
it("Throws error when neither child nor text is passed", () => {
|
|
94
|
-
expect(() => render(<Heading id="h1" level={9} />)).toThrow(
|
|
95
|
-
"Heading only supports levels 1-6"
|
|
94
|
+
it("throws error when neither child nor text is passed", () => {
|
|
95
|
+
expect(() => render(<Heading id="h1" level={HeadingLevels.One} />)).toThrow(
|
|
96
|
+
"Heading has no children, please pass prop: text"
|
|
96
97
|
);
|
|
97
98
|
});
|
|
98
99
|
|
|
99
|
-
it("
|
|
100
|
+
it("throws error when heading with many children is passed", () => {
|
|
100
101
|
expect(() =>
|
|
101
102
|
render(
|
|
102
103
|
<Heading id="h1" level={HeadingLevels.Four}>
|
|
@@ -107,7 +108,7 @@ describe("Heading", () => {
|
|
|
107
108
|
).toThrow("Please only pass one child into Heading, got span, span");
|
|
108
109
|
});
|
|
109
110
|
|
|
110
|
-
it("
|
|
111
|
+
it("uses custom display size", () => {
|
|
111
112
|
render(
|
|
112
113
|
<Heading
|
|
113
114
|
id="h1"
|
|
@@ -120,4 +121,67 @@ describe("Heading", () => {
|
|
|
120
121
|
"font-size": "2em",
|
|
121
122
|
});
|
|
122
123
|
});
|
|
124
|
+
|
|
125
|
+
it("renders the UI snapshot correctly", () => {
|
|
126
|
+
const basic = renderer
|
|
127
|
+
.create(
|
|
128
|
+
<Heading id="basic" level={HeadingLevels.One} text="Heading text" />
|
|
129
|
+
)
|
|
130
|
+
.toJSON();
|
|
131
|
+
const basicWithChildText = renderer
|
|
132
|
+
.create(
|
|
133
|
+
<Heading id="basicWithChildText" level={HeadingLevels.One}>
|
|
134
|
+
Heading text
|
|
135
|
+
</Heading>
|
|
136
|
+
)
|
|
137
|
+
.toJSON();
|
|
138
|
+
const customDisplaySize = renderer
|
|
139
|
+
.create(
|
|
140
|
+
<Heading
|
|
141
|
+
id="customDisplaySize"
|
|
142
|
+
level={HeadingLevels.One}
|
|
143
|
+
text="Heading with Secondary displaySize"
|
|
144
|
+
displaySize={HeadingDisplaySizes.Secondary}
|
|
145
|
+
/>
|
|
146
|
+
)
|
|
147
|
+
.toJSON();
|
|
148
|
+
const otherLevel = renderer
|
|
149
|
+
.create(
|
|
150
|
+
<Heading
|
|
151
|
+
id="otherLevel"
|
|
152
|
+
level={HeadingLevels.Six}
|
|
153
|
+
text="Heading level six"
|
|
154
|
+
/>
|
|
155
|
+
)
|
|
156
|
+
.toJSON();
|
|
157
|
+
const withLink = renderer
|
|
158
|
+
.create(
|
|
159
|
+
<Heading
|
|
160
|
+
id="withLink"
|
|
161
|
+
level={HeadingLevels.One}
|
|
162
|
+
text="Heading text is a link"
|
|
163
|
+
url="fake-url"
|
|
164
|
+
/>
|
|
165
|
+
)
|
|
166
|
+
.toJSON();
|
|
167
|
+
const withCustomLink = renderer
|
|
168
|
+
.create(
|
|
169
|
+
<Heading id="withCustomLink" level={HeadingLevels.One}>
|
|
170
|
+
<>
|
|
171
|
+
Part of the heading text is
|
|
172
|
+
<a href="fake-url" className="custom-link">
|
|
173
|
+
<span>a link</span>
|
|
174
|
+
</a>
|
|
175
|
+
</>
|
|
176
|
+
</Heading>
|
|
177
|
+
)
|
|
178
|
+
.toJSON();
|
|
179
|
+
|
|
180
|
+
expect(basic).toMatchSnapshot();
|
|
181
|
+
expect(basicWithChildText).toMatchSnapshot();
|
|
182
|
+
expect(customDisplaySize).toMatchSnapshot();
|
|
183
|
+
expect(otherLevel).toMatchSnapshot();
|
|
184
|
+
expect(withLink).toMatchSnapshot();
|
|
185
|
+
expect(withCustomLink).toMatchSnapshot();
|
|
186
|
+
});
|
|
123
187
|
});
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
import { Heading as ChakraHeading, useStyleConfig } from "@chakra-ui/react";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import {
|
|
4
|
-
Box,
|
|
5
|
-
Heading as ChakraHeading,
|
|
6
|
-
Link as ChakraLink,
|
|
7
|
-
useStyleConfig,
|
|
8
|
-
} from "@chakra-ui/react";
|
|
9
3
|
|
|
10
4
|
import { HeadingDisplaySizes, HeadingLevels } from "./HeadingTypes";
|
|
5
|
+
import Link from "../Link/Link";
|
|
6
|
+
import { getVariant } from "../../utils/utils";
|
|
7
|
+
import generateUUID from "../../helpers/generateUUID";
|
|
11
8
|
|
|
12
9
|
export interface HeadingProps {
|
|
13
10
|
/** Optionally pass in additional Chakra-based styles. */
|
|
14
11
|
additionalStyles?: { [key: string]: any };
|
|
15
12
|
/** Optional className that appears in addition to `heading` */
|
|
16
13
|
className?: string;
|
|
17
|
-
/** Optional size used to override the default styles of the semantic
|
|
14
|
+
/** Optional size used to override the default styles of the semantic HTM
|
|
15
|
+
* `<h>` elements */
|
|
18
16
|
displaySize?: HeadingDisplaySizes;
|
|
19
17
|
/** Optional ID that other components can cross reference for accessibility purposes */
|
|
20
18
|
id?: string;
|
|
21
|
-
/** Optional number 1-6 used to create the `<h*>` tag; if prop is not passed,
|
|
19
|
+
/** Optional number 1-6 used to create the `<h*>` tag; if prop is not passed,
|
|
20
|
+
* `Heading` will default to `<h2>` */
|
|
22
21
|
level?: HeadingLevels;
|
|
23
22
|
/** Inner text of the `<h*>` element */
|
|
24
23
|
text?: string;
|
|
25
|
-
/** Optional URL that header points to; when `url` prop is passed to
|
|
24
|
+
/** Optional URL that header points to; when `url` prop is passed to
|
|
25
|
+
* `Heading`, a child `<a>` element is created and the heading text becomes
|
|
26
|
+
* an active link */
|
|
26
27
|
url?: string;
|
|
27
28
|
/** Optional className for the URL when the `url` prop is passed */
|
|
28
29
|
urlClass?: string;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
/** Map the word heading level to the number heading level. The default is 2. */
|
|
33
|
+
const getMappedLevel = (level = HeadingLevels.Two) => {
|
|
34
|
+
const levelMap = {
|
|
35
|
+
one: 1,
|
|
36
|
+
two: 2,
|
|
37
|
+
three: 3,
|
|
38
|
+
four: 4,
|
|
39
|
+
five: 5,
|
|
40
|
+
six: 6,
|
|
41
|
+
};
|
|
42
|
+
return levelMap[level] || 2;
|
|
43
|
+
};
|
|
43
44
|
|
|
44
45
|
function Heading(props: React.PropsWithChildren<HeadingProps>) {
|
|
45
46
|
const {
|
|
46
47
|
additionalStyles = {},
|
|
47
48
|
className,
|
|
48
49
|
displaySize,
|
|
49
|
-
id,
|
|
50
|
+
id = generateUUID(),
|
|
50
51
|
level = HeadingLevels.Two,
|
|
51
52
|
text,
|
|
52
53
|
url,
|
|
53
54
|
urlClass,
|
|
54
55
|
} = props;
|
|
55
|
-
const
|
|
56
|
+
const finalLevel = getMappedLevel(level);
|
|
57
|
+
const variant = displaySize
|
|
58
|
+
? getVariant(displaySize, HeadingDisplaySizes)
|
|
59
|
+
: `h${finalLevel}`;
|
|
56
60
|
const styles = useStyleConfig("Heading", { variant });
|
|
57
61
|
// Combine native base styles with any additional styles.
|
|
58
62
|
// This is used in the `Hero` and `Notification` components.
|
|
59
63
|
const finalStyles = { ...styles, ...additionalStyles };
|
|
60
|
-
const asHeading: any = `h${
|
|
61
|
-
|
|
62
|
-
if (level < 1 || level > 6) {
|
|
63
|
-
throw new Error("Heading only supports levels 1-6");
|
|
64
|
-
}
|
|
64
|
+
const asHeading: any = `h${finalLevel}`;
|
|
65
65
|
|
|
66
66
|
if (!props.children && !text) {
|
|
67
67
|
throw new Error("Heading has no children, please pass prop: text");
|
|
@@ -80,9 +80,9 @@ function Heading(props: React.PropsWithChildren<HeadingProps>) {
|
|
|
80
80
|
|
|
81
81
|
const contentToRender = props.children ? props.children : text;
|
|
82
82
|
const content = url ? (
|
|
83
|
-
<
|
|
83
|
+
<Link className={urlClass} href={url} id={`${id}-link`}>
|
|
84
84
|
{contentToRender}
|
|
85
|
-
</
|
|
85
|
+
</Link>
|
|
86
86
|
) : (
|
|
87
87
|
contentToRender
|
|
88
88
|
);
|
|
@@ -6,10 +6,10 @@ export enum HeadingDisplaySizes {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
export enum HeadingLevels {
|
|
9
|
-
One =
|
|
10
|
-
Two =
|
|
11
|
-
Three =
|
|
12
|
-
Four =
|
|
13
|
-
Five =
|
|
14
|
-
Six =
|
|
9
|
+
One = "one",
|
|
10
|
+
Two = "two",
|
|
11
|
+
Three = "three",
|
|
12
|
+
Four = "four",
|
|
13
|
+
Five = "five",
|
|
14
|
+
Six = "six",
|
|
15
15
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Heading renders the UI snapshot correctly 1`] = `
|
|
4
|
+
<h1
|
|
5
|
+
className="chakra-heading css-0"
|
|
6
|
+
id="basic"
|
|
7
|
+
>
|
|
8
|
+
Heading text
|
|
9
|
+
</h1>
|
|
10
|
+
`;
|
|
11
|
+
|
|
12
|
+
exports[`Heading renders the UI snapshot correctly 2`] = `
|
|
13
|
+
<h1
|
|
14
|
+
className="chakra-heading css-0"
|
|
15
|
+
id="basicWithChildText"
|
|
16
|
+
>
|
|
17
|
+
Heading text
|
|
18
|
+
</h1>
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
exports[`Heading renders the UI snapshot correctly 3`] = `
|
|
22
|
+
<h1
|
|
23
|
+
className="chakra-heading css-0"
|
|
24
|
+
id="customDisplaySize"
|
|
25
|
+
>
|
|
26
|
+
Heading with Secondary displaySize
|
|
27
|
+
</h1>
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
exports[`Heading renders the UI snapshot correctly 4`] = `
|
|
31
|
+
<h6
|
|
32
|
+
className="chakra-heading css-0"
|
|
33
|
+
id="otherLevel"
|
|
34
|
+
>
|
|
35
|
+
Heading level six
|
|
36
|
+
</h6>
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
exports[`Heading renders the UI snapshot correctly 5`] = `
|
|
40
|
+
<h1
|
|
41
|
+
className="chakra-heading css-0"
|
|
42
|
+
id="withLink"
|
|
43
|
+
>
|
|
44
|
+
<a
|
|
45
|
+
className="css-0"
|
|
46
|
+
href="fake-url"
|
|
47
|
+
id="withLink-link"
|
|
48
|
+
rel={null}
|
|
49
|
+
target={null}
|
|
50
|
+
>
|
|
51
|
+
Heading text is a link
|
|
52
|
+
</a>
|
|
53
|
+
</h1>
|
|
54
|
+
`;
|
|
55
|
+
|
|
56
|
+
exports[`Heading renders the UI snapshot correctly 6`] = `
|
|
57
|
+
<h1
|
|
58
|
+
className="chakra-heading css-0"
|
|
59
|
+
id="withCustomLink"
|
|
60
|
+
>
|
|
61
|
+
Part of the heading text is
|
|
62
|
+
<a
|
|
63
|
+
className="custom-link"
|
|
64
|
+
href="fake-url"
|
|
65
|
+
>
|
|
66
|
+
<span>
|
|
67
|
+
a link
|
|
68
|
+
</span>
|
|
69
|
+
</a>
|
|
70
|
+
</h1>
|
|
71
|
+
`;
|