@nypl/design-system-react-components 0.25.12 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +131 -1
- package/README.md +10 -10
- package/dist/components/Accordion/Accordion.d.ts +6 -4
- package/dist/components/Accordion/AccordionTypes.d.ts +5 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -4
- package/dist/components/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Card/Card.d.ts +22 -29
- package/dist/components/Checkbox/Checkbox.d.ts +3 -3
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +9 -6
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +5 -6
- package/dist/components/Fieldset/Fieldset.d.ts +5 -6
- package/dist/components/Form/Form.d.ts +6 -6
- package/dist/components/Grid/GridTypes.d.ts +7 -7
- package/dist/components/Grid/SimpleGrid.d.ts +1 -1
- package/dist/components/Heading/Heading.d.ts +5 -5
- package/dist/components/Heading/HeadingTypes.d.ts +1 -1
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
- package/dist/components/Hero/Hero.d.ts +9 -5
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
- package/dist/components/Icons/Icon.d.ts +2 -1
- package/dist/components/Icons/IconTypes.d.ts +1 -0
- package/dist/components/Image/Image.d.ts +27 -9
- package/dist/components/Image/ImageTypes.d.ts +4 -4
- package/dist/components/Label/Label.d.ts +7 -4
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/List/List.d.ts +11 -11
- package/dist/components/List/ListTypes.d.ts +1 -1
- package/dist/components/Logo/Logo.d.ts +2 -1
- package/dist/components/Logo/LogoSvgs.d.ts +2 -0
- package/dist/components/Logo/LogoTypes.d.ts +4 -2
- package/dist/components/Notification/Notification.d.ts +7 -7
- package/dist/components/Pagination/Pagination.d.ts +2 -2
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +3 -3
- package/dist/components/Radio/Radio.d.ts +5 -7
- package/dist/components/RadioGroup/RadioGroup.d.ts +16 -8
- package/dist/components/SearchBar/SearchBar.d.ts +4 -4
- package/dist/components/Select/Select.d.ts +12 -8
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -6
- package/dist/components/SkeletonLoader/SkeletonLoaderTypes.d.ts +0 -4
- package/dist/components/Slider/Slider.d.ts +6 -4
- package/dist/components/StatusBadge/StatusBadge.d.ts +5 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +10 -23
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Tabs/Tabs.d.ts +7 -6
- package/dist/components/Template/Template.d.ts +17 -8
- package/dist/components/Text/Text.d.ts +4 -4
- package/dist/components/Text/TextTypes.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +7 -7
- package/dist/components/Toggle/Toggle.d.ts +8 -10
- package/dist/components/Toggle/{ToggleSizes.d.ts → ToggleTypes.d.ts} +1 -1
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +2075 -1468
- 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 +2086 -1483
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/helpers/enums.d.ts +4 -0
- package/dist/hooks/useCarouselStyles.d.ts +3 -2
- package/dist/hooks/useNYPLTheme.d.ts +12 -0
- package/dist/index.d.ts +11 -9
- package/dist/styles.css +1 -1
- package/dist/theme/components/accordion.d.ts +7 -12
- package/dist/theme/components/breadcrumb.d.ts +3 -0
- package/dist/theme/components/button.d.ts +10 -2
- package/dist/theme/components/card.d.ts +44 -24
- package/dist/theme/components/checkbox.d.ts +6 -4
- package/dist/theme/components/checkboxGroup.d.ts +4 -2
- package/dist/theme/components/componentWrapper.d.ts +2 -2
- package/dist/theme/components/customTable.d.ts +84 -1
- package/dist/theme/components/fieldset.d.ts +4 -14
- package/dist/theme/components/global.d.ts +25 -18
- package/dist/theme/components/heading.d.ts +53 -0
- package/dist/theme/components/helperErrorText.d.ts +1 -0
- package/dist/theme/components/hero.d.ts +21 -15
- package/dist/theme/components/image.d.ts +1 -1
- package/dist/theme/components/label.d.ts +9 -10
- package/dist/theme/components/list.d.ts +99 -9
- package/dist/theme/components/notification.d.ts +4 -4
- package/dist/theme/components/pagination.d.ts +2 -5
- package/dist/theme/components/radio.d.ts +7 -4
- package/dist/theme/components/radioGroup.d.ts +4 -2
- package/dist/theme/components/select.d.ts +37 -5
- package/dist/theme/components/skeletonLoader.d.ts +2 -2
- package/dist/theme/components/slider.d.ts +6 -3
- package/dist/theme/components/structuredContent.d.ts +197 -0
- package/dist/theme/components/textInput.d.ts +18 -6
- package/dist/theme/components/toggle.d.ts +20 -5
- package/dist/theme/foundations/global.d.ts +2 -0
- package/dist/theme/foundations/radii.d.ts +1 -0
- package/dist/theme/foundations/spacing.d.ts +46 -43
- package/package.json +5 -6
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +34 -0
- package/src/components/Accordion/Accordion.stories.mdx +150 -66
- package/src/components/Accordion/Accordion.test.tsx +65 -17
- package/src/components/Accordion/Accordion.tsx +61 -27
- package/src/components/Accordion/AccordionTypes.tsx +5 -0
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +505 -14
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +37 -19
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +57 -36
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +1 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +211 -12
- package/src/components/Button/Button.stories.mdx +87 -23
- package/src/components/Button/Button.test.tsx +25 -0
- package/src/components/Button/Button.tsx +18 -7
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +27 -7
- package/src/components/Card/Card.stories.mdx +493 -329
- package/src/components/Card/Card.test.tsx +138 -18
- package/src/components/Card/Card.tsx +151 -85
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +221 -101
- package/src/components/Chakra/Center.stories.mdx +2 -2
- package/src/components/Chakra/Grid.stories.mdx +4 -4
- package/src/components/Checkbox/Checkbox.stories.mdx +73 -9
- package/src/components/Checkbox/Checkbox.test.tsx +89 -10
- package/src/components/Checkbox/Checkbox.tsx +26 -16
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +209 -6
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +135 -23
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +216 -90
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +39 -26
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +493 -89
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +12 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +39 -41
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +47 -34
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -27
- package/src/components/DatePicker/DatePicker.test.tsx +94 -15
- package/src/components/DatePicker/DatePicker.tsx +67 -58
- package/src/components/DatePicker/_DatePicker.scss +71 -13
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +250 -206
- package/src/components/Fieldset/Fieldset.stories.mdx +33 -3
- package/src/components/Fieldset/Fieldset.test.tsx +58 -28
- package/src/components/Fieldset/Fieldset.tsx +35 -30
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +40 -19
- package/src/components/Form/Form.stories.mdx +118 -47
- package/src/components/Form/Form.test.tsx +59 -16
- package/src/components/Form/Form.tsx +89 -65
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +83 -5
- package/src/components/Grid/GridTypes.tsx +7 -7
- package/src/components/Grid/SimpleGrid.stories.mdx +87 -41
- package/src/components/Grid/SimpleGrid.test.tsx +24 -9
- package/src/components/Grid/SimpleGrid.tsx +29 -20
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +16 -1
- package/src/components/Heading/Heading.stories.mdx +56 -25
- package/src/components/Heading/Heading.test.tsx +17 -7
- package/src/components/Heading/Heading.tsx +60 -58
- package/src/components/Heading/HeadingTypes.tsx +1 -1
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +27 -8
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +64 -42
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +15 -0
- package/src/components/HelperErrorText/HelperErrorText.tsx +40 -35
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +35 -4
- package/src/components/Hero/Hero.stories.mdx +143 -113
- package/src/components/Hero/Hero.test.tsx +146 -58
- package/src/components/Hero/Hero.tsx +144 -112
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +89 -17
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +26 -4
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +9 -17
- package/src/components/HorizontalRule/HorizontalRule.tsx +9 -25
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
- package/src/components/Icons/Icon.stories.mdx +80 -23
- package/src/components/Icons/Icon.test.tsx +51 -2
- package/src/components/Icons/Icon.tsx +93 -71
- package/src/components/Icons/IconTypes.tsx +1 -0
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
- package/src/components/Image/Image.stories.mdx +160 -71
- package/src/components/Image/Image.test.tsx +40 -48
- package/src/components/Image/Image.tsx +80 -48
- package/src/components/Image/ImageTypes.ts +4 -4
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +84 -21
- package/src/components/Label/Label.stories.mdx +42 -20
- package/src/components/Label/Label.test.tsx +42 -17
- package/src/components/Label/Label.tsx +22 -13
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +19 -15
- package/src/components/Link/Link.stories.mdx +25 -1
- package/src/components/Link/Link.test.tsx +21 -0
- package/src/components/Link/Link.tsx +16 -9
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +37 -11
- package/src/components/List/List.stories.mdx +75 -40
- package/src/components/List/List.test.tsx +73 -22
- package/src/components/List/List.tsx +44 -28
- package/src/components/List/ListTypes.tsx +1 -1
- package/src/components/List/__snapshots__/List.test.tsx.snap +110 -8
- package/src/components/Logo/Logo.stories.mdx +40 -16
- package/src/components/Logo/Logo.test.tsx +29 -2
- package/src/components/Logo/Logo.tsx +28 -11
- package/src/components/Logo/LogoSvgs.tsx +4 -0
- package/src/components/Logo/LogoTypes.tsx +3 -1
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
- package/src/components/Modal/Modal.stories.mdx +13 -0
- package/src/components/Notification/Notification.stories.mdx +29 -5
- package/src/components/Notification/Notification.test.tsx +23 -0
- package/src/components/Notification/Notification.tsx +53 -51
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
- package/src/components/Pagination/Pagination.stories.mdx +27 -6
- package/src/components/Pagination/Pagination.test.tsx +55 -2
- package/src/components/Pagination/Pagination.tsx +12 -9
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +244 -27
- package/src/components/Placeholder/Placeholder.tsx +3 -1
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +76 -10
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +87 -13
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +20 -10
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
- package/src/components/Radio/Radio.stories.mdx +75 -11
- package/src/components/Radio/Radio.test.tsx +83 -9
- package/src/components/Radio/Radio.tsx +70 -62
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +163 -5
- package/src/components/RadioGroup/RadioGroup.stories.mdx +293 -94
- package/src/components/RadioGroup/RadioGroup.test.tsx +193 -68
- package/src/components/RadioGroup/RadioGroup.tsx +110 -101
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1258 -902
- package/src/components/SearchBar/SearchBar.stories.mdx +101 -36
- package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +46 -4
- package/src/components/SearchBar/SearchBar.tsx +20 -11
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
- package/src/components/Select/Select.stories.mdx +151 -62
- package/src/components/Select/Select.test.tsx +56 -44
- package/src/components/Select/Select.tsx +125 -104
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +749 -409
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +53 -23
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +14 -8
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +80 -78
- package/src/components/SkeletonLoader/SkeletonLoaderTypes.tsx +0 -5
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
- package/src/components/Slider/Slider.stories.mdx +123 -41
- package/src/components/Slider/Slider.test.tsx +65 -17
- package/src/components/Slider/Slider.tsx +30 -23
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +403 -226
- package/src/components/StatusBadge/StatusBadge.stories.mdx +19 -1
- package/src/components/StatusBadge/StatusBadge.test.tsx +19 -1
- package/src/components/StatusBadge/StatusBadge.tsx +25 -20
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +22 -3
- package/src/components/StructuredContent/StructuredContent.stories.mdx +229 -61
- package/src/components/StructuredContent/StructuredContent.test.tsx +162 -101
- package/src/components/StructuredContent/StructuredContent.tsx +98 -103
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +102 -17
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +5 -5
- package/src/components/StyleGuide/Breakpoints.stories.mdx +6 -6
- package/src/components/StyleGuide/Buttons.stories.mdx +2 -12
- package/src/components/StyleGuide/ColorCard.tsx +4 -4
- package/src/components/StyleGuide/Colors.stories.mdx +1 -2
- package/src/components/StyleGuide/DesignTokens.stories.mdx +56 -26
- package/src/components/StyleGuide/Forms.stories.mdx +27 -12
- package/src/components/StyleGuide/Iconography.stories.mdx +2 -12
- package/src/components/StyleGuide/Spacing.stories.mdx +80 -41
- package/src/components/StyleGuide/Typography.stories.mdx +47 -33
- package/src/components/Table/Table.stories.mdx +38 -11
- package/src/components/Table/Table.test.tsx +16 -1
- package/src/components/Table/Table.tsx +10 -8
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
- package/src/components/Tabs/Tabs.stories.mdx +59 -10
- package/src/components/Tabs/Tabs.test.tsx +29 -11
- package/src/components/Tabs/Tabs.tsx +28 -21
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
- package/src/components/Template/Template.stories.mdx +73 -32
- package/src/components/Template/Template.test.tsx +68 -5
- package/src/components/Template/Template.tsx +89 -71
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +195 -22
- package/src/components/Text/Text.stories.mdx +32 -15
- package/src/components/Text/Text.test.tsx +14 -11
- package/src/components/Text/Text.tsx +13 -16
- package/src/components/Text/TextTypes.tsx +1 -1
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
- package/src/components/TextInput/TextInput.stories.mdx +73 -27
- package/src/components/TextInput/TextInput.test.tsx +65 -50
- package/src/components/TextInput/TextInput.tsx +123 -115
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
- package/src/components/Toggle/Toggle.stories.mdx +74 -26
- package/src/components/Toggle/Toggle.test.tsx +41 -10
- package/src/components/Toggle/Toggle.tsx +29 -26
- package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +191 -4
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +41 -6
- package/src/components/VideoPlayer/VideoPlayer.tsx +134 -120
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +81 -39
- package/src/docs/Chakra.stories.mdx +50 -9
- package/src/docs/Welcome.stories.mdx +168 -0
- package/src/{components/Card/CardTypes.tsx → helpers/enums.ts} +2 -2
- package/src/hooks/tests/useNYPLTheme.test.tsx +1 -1
- package/src/hooks/useCarouselStyles.stories.mdx +30 -0
- package/src/hooks/useCarouselStyles.ts +3 -2
- package/src/hooks/useNYPLTheme.stories.mdx +101 -0
- package/src/hooks/useNYPLTheme.ts +31 -7
- package/src/hooks/useWindowSize.stories.mdx +23 -0
- package/src/index.ts +11 -15
- package/src/styles/base/_place-holder.scss +1 -1
- package/src/theme/components/accordion.ts +7 -12
- package/src/theme/components/breadcrumb.ts +3 -0
- package/src/theme/components/button.ts +15 -7
- package/src/theme/components/card.ts +56 -36
- package/src/theme/components/checkbox.ts +10 -8
- package/src/theme/components/checkboxGroup.ts +4 -2
- package/src/theme/components/componentWrapper.ts +2 -2
- package/src/theme/components/customTable.ts +39 -31
- package/src/theme/components/fieldset.ts +1 -2
- package/src/theme/components/global.ts +29 -23
- package/src/theme/components/heading.ts +1 -1
- package/src/theme/components/helperErrorText.ts +1 -0
- package/src/theme/components/hero.ts +14 -16
- package/src/theme/components/icon.ts +5 -2
- package/src/theme/components/image.ts +1 -1
- package/src/theme/components/label.ts +4 -3
- package/src/theme/components/list.ts +73 -66
- package/src/theme/components/notification.ts +7 -7
- package/src/theme/components/pagination.ts +2 -5
- package/src/theme/components/progressIndicator.ts +3 -3
- package/src/theme/components/radio.ts +9 -9
- package/src/theme/components/radioGroup.ts +4 -2
- package/src/theme/components/select.ts +35 -16
- package/src/theme/components/skeletonLoader.ts +3 -3
- package/src/theme/components/slider.ts +8 -7
- package/src/theme/components/statusBadge.ts +2 -2
- package/src/theme/components/structuredContent.ts +66 -1
- package/src/theme/components/tabs.ts +2 -2
- package/src/theme/components/template.ts +9 -9
- package/src/theme/components/textInput.ts +13 -12
- package/src/theme/components/toggle.ts +43 -13
- package/src/theme/components/videoPlayer.ts +1 -1
- package/src/theme/foundations/colors.ts +1 -1
- package/src/theme/foundations/radii.ts +1 -0
- package/src/theme/foundations/spacing.ts +70 -22
- package/src/theme/foundations/typography.ts +2 -2
- package/src/utils/componentCategories.ts +28 -21
- package/dist/components/Card/CardTypes.d.ts +0 -4
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
- package/dist/components/RadioGroup/RadioGroupLayoutTypes.d.ts +0 -4
- package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
- package/dist/helpers/generateUUID.d.ts +0 -1
- package/src/components/CheckboxGroup/CheckboxGroupLayoutTypes.tsx +0 -4
- package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
- package/src/docs/Intro.stories.mdx +0 -53
- package/src/helpers/generateUUID.tsx +0 -5
|
@@ -3,30 +3,31 @@
|
|
|
3
3
|
exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<form
|
|
5
5
|
aria-label="form"
|
|
6
|
+
className="css-0"
|
|
6
7
|
id="snapshot-form"
|
|
7
8
|
>
|
|
8
9
|
<div
|
|
9
|
-
className="css-
|
|
10
|
+
className="css-fadkce"
|
|
10
11
|
id="snapshot-form-parent"
|
|
11
12
|
>
|
|
12
13
|
<div
|
|
13
|
-
className="css-
|
|
14
|
+
className="css-dofnwd"
|
|
14
15
|
id="snapshot-form-child0"
|
|
15
16
|
>
|
|
16
17
|
<div
|
|
17
|
-
className="css-
|
|
18
|
+
className="css-7ajbp2"
|
|
18
19
|
id="snapshot-form-child0-grandchild0"
|
|
19
20
|
>
|
|
20
21
|
Form Field 1
|
|
21
22
|
</div>
|
|
22
23
|
<div
|
|
23
|
-
className="css-
|
|
24
|
+
className="css-7ajbp2"
|
|
24
25
|
id="snapshot-form-child0-grandchild1"
|
|
25
26
|
>
|
|
26
27
|
Form Field 2
|
|
27
28
|
</div>
|
|
28
29
|
<div
|
|
29
|
-
className="css-
|
|
30
|
+
className="css-7ajbp2"
|
|
30
31
|
id="snapshot-form-child0-grandchild2"
|
|
31
32
|
>
|
|
32
33
|
Form Field 3
|
|
@@ -35,3 +36,80 @@ exports[`Form Snapshot Renders the UI snapshot correctly 1`] = `
|
|
|
35
36
|
</div>
|
|
36
37
|
</form>
|
|
37
38
|
`;
|
|
39
|
+
|
|
40
|
+
exports[`Form Snapshot Renders the UI snapshot correctly 2`] = `
|
|
41
|
+
<form
|
|
42
|
+
aria-label="form"
|
|
43
|
+
className="css-qvgr6z"
|
|
44
|
+
color="ui.error.primary"
|
|
45
|
+
id="chakra"
|
|
46
|
+
p="20px"
|
|
47
|
+
>
|
|
48
|
+
<div
|
|
49
|
+
className="css-fadkce"
|
|
50
|
+
id="chakra-parent"
|
|
51
|
+
>
|
|
52
|
+
<div
|
|
53
|
+
className="css-dofnwd"
|
|
54
|
+
id="chakra-child0"
|
|
55
|
+
>
|
|
56
|
+
<div
|
|
57
|
+
className="css-7ajbp2"
|
|
58
|
+
id="chakra-child0-grandchild0"
|
|
59
|
+
>
|
|
60
|
+
Form Field 1
|
|
61
|
+
</div>
|
|
62
|
+
<div
|
|
63
|
+
className="css-7ajbp2"
|
|
64
|
+
id="chakra-child0-grandchild1"
|
|
65
|
+
>
|
|
66
|
+
Form Field 2
|
|
67
|
+
</div>
|
|
68
|
+
<div
|
|
69
|
+
className="css-7ajbp2"
|
|
70
|
+
id="chakra-child0-grandchild2"
|
|
71
|
+
>
|
|
72
|
+
Form Field 3
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</form>
|
|
77
|
+
`;
|
|
78
|
+
|
|
79
|
+
exports[`Form Snapshot Renders the UI snapshot correctly 3`] = `
|
|
80
|
+
<form
|
|
81
|
+
aria-label="form"
|
|
82
|
+
className="css-0"
|
|
83
|
+
data-testid="props"
|
|
84
|
+
id="props"
|
|
85
|
+
>
|
|
86
|
+
<div
|
|
87
|
+
className="css-fadkce"
|
|
88
|
+
id="props-parent"
|
|
89
|
+
>
|
|
90
|
+
<div
|
|
91
|
+
className="css-dofnwd"
|
|
92
|
+
id="props-child0"
|
|
93
|
+
>
|
|
94
|
+
<div
|
|
95
|
+
className="css-7ajbp2"
|
|
96
|
+
id="props-child0-grandchild0"
|
|
97
|
+
>
|
|
98
|
+
Form Field 1
|
|
99
|
+
</div>
|
|
100
|
+
<div
|
|
101
|
+
className="css-7ajbp2"
|
|
102
|
+
id="props-child0-grandchild1"
|
|
103
|
+
>
|
|
104
|
+
Form Field 2
|
|
105
|
+
</div>
|
|
106
|
+
<div
|
|
107
|
+
className="css-7ajbp2"
|
|
108
|
+
id="props-child0-grandchild2"
|
|
109
|
+
>
|
|
110
|
+
Form Field 3
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</form>
|
|
115
|
+
`;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export enum GridGaps {
|
|
2
|
-
ExtraExtraSmall = "xxs",
|
|
3
|
-
ExtraSmall = "xs",
|
|
4
|
-
Small = "s",
|
|
5
|
-
Medium = "m",
|
|
6
|
-
Large = "l",
|
|
7
|
-
ExtraLarge = "xl",
|
|
8
|
-
ExtraExtraLarge = "xxl",
|
|
2
|
+
ExtraExtraSmall = "grid.xxs",
|
|
3
|
+
ExtraSmall = "grid.xs",
|
|
4
|
+
Small = "grid.s",
|
|
5
|
+
Medium = "grid.m",
|
|
6
|
+
Large = "grid.l",
|
|
7
|
+
ExtraLarge = "grid.xl",
|
|
8
|
+
ExtraExtraLarge = "grid.xxl",
|
|
9
9
|
}
|
|
@@ -10,8 +10,7 @@ import { withDesign } from "storybook-addon-designs";
|
|
|
10
10
|
import SimpleGrid from "./SimpleGrid";
|
|
11
11
|
import { GridGaps } from "./GridTypes";
|
|
12
12
|
import Card, { CardHeading, CardContent, CardActions } from "../Card/Card";
|
|
13
|
-
import {
|
|
14
|
-
import { HeadingDisplaySizes, HeadingLevels } from "../Heading/HeadingTypes";
|
|
13
|
+
import { HeadingSizes, HeadingLevels } from "../Heading/HeadingTypes";
|
|
15
14
|
import Icon from "../Icons/Icon";
|
|
16
15
|
import {
|
|
17
16
|
IconNames,
|
|
@@ -21,6 +20,7 @@ import {
|
|
|
21
20
|
} from "../Icons/IconTypes";
|
|
22
21
|
import Image from "../Image/Image";
|
|
23
22
|
import { ImageRatios } from "../Image/ImageTypes";
|
|
23
|
+
import { LayoutTypes } from "../../helpers/enums";
|
|
24
24
|
import { getCategory } from "../../utils/componentCategories";
|
|
25
25
|
import DSProvider from "../../theme/provider";
|
|
26
26
|
import { getStorybookEnumValues } from "../../utils/utils";
|
|
@@ -57,13 +57,29 @@ export const enumValues = getStorybookEnumValues(GridGaps, "GridGaps");
|
|
|
57
57
|
| Component Version | DS Version |
|
|
58
58
|
| ----------------- | ---------- |
|
|
59
59
|
| Added | `0.25.1` |
|
|
60
|
-
| Latest | `0.
|
|
60
|
+
| Latest | `0.26.0` |
|
|
61
|
+
|
|
62
|
+
## Table of Contents
|
|
63
|
+
|
|
64
|
+
- [Overview](#overview)
|
|
65
|
+
- [Component Props](#component-props)
|
|
66
|
+
- [Accessibility](#accessibility)
|
|
67
|
+
- [Other SimpleGrid Examples](#other-simplegrid-examples)
|
|
68
|
+
|
|
69
|
+
## Overview
|
|
61
70
|
|
|
62
71
|
<Description of={SimpleGrid} />
|
|
63
72
|
|
|
64
|
-
The `SimpleGrid` component is used to render UI elements in a uniform grid layout,
|
|
73
|
+
The `SimpleGrid` component is used to render UI elements in a uniform grid layout,
|
|
74
|
+
with the column widths and grid spacing fixed throughout the grid.
|
|
75
|
+
|
|
76
|
+
The NYPL standards for the items per row in a grid is `3` for desktop, `2` for
|
|
77
|
+
tablet and `1` for mobile. By default, the `SimpleGrid` component uses these
|
|
78
|
+
standards and the `columns` prop is optional. If the `columns` prop is used, the
|
|
79
|
+
tablet breakpoint will be dropped and only the mobile breakpoint (1 item per row)
|
|
80
|
+
will be triggered.
|
|
65
81
|
|
|
66
|
-
|
|
82
|
+
## Component Props
|
|
67
83
|
|
|
68
84
|
<Canvas withToolbar>
|
|
69
85
|
<Story
|
|
@@ -78,9 +94,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
78
94
|
{(args) => (
|
|
79
95
|
<SimpleGrid {...args} gap={enumValues.getValue(args.gap)}>
|
|
80
96
|
<Card
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
imageProps={{
|
|
98
|
+
alt: "Alt text",
|
|
99
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
100
|
+
src: "https://placeimg.com/400/220/animals",
|
|
101
|
+
}}
|
|
84
102
|
>
|
|
85
103
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
86
104
|
<CardContent>
|
|
@@ -89,9 +107,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
89
107
|
</CardContent>
|
|
90
108
|
</Card>
|
|
91
109
|
<Card
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
110
|
+
imageProps={{
|
|
111
|
+
alt: "Alt text",
|
|
112
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
113
|
+
src: "https://placeimg.com/400/220/animals",
|
|
114
|
+
}}
|
|
95
115
|
>
|
|
96
116
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
97
117
|
<CardContent>
|
|
@@ -100,9 +120,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
100
120
|
</CardContent>
|
|
101
121
|
</Card>
|
|
102
122
|
<Card
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
123
|
+
imageProps={{
|
|
124
|
+
alt: "Alt text",
|
|
125
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
126
|
+
src: "https://placeimg.com/400/240/animals",
|
|
127
|
+
}}
|
|
106
128
|
>
|
|
107
129
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
108
130
|
<CardContent>
|
|
@@ -111,9 +133,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
111
133
|
</CardContent>
|
|
112
134
|
</Card>
|
|
113
135
|
<Card
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
136
|
+
imageProps={{
|
|
137
|
+
alt: "Alt text",
|
|
138
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
139
|
+
src: "https://placeimg.com/400/260/animals",
|
|
140
|
+
}}
|
|
117
141
|
>
|
|
118
142
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
119
143
|
<CardContent>
|
|
@@ -122,9 +146,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
122
146
|
</CardContent>
|
|
123
147
|
</Card>
|
|
124
148
|
<Card
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
149
|
+
imageProps={{
|
|
150
|
+
alt: "Alt text",
|
|
151
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
152
|
+
src: "https://placeimg.com/400/320/animals",
|
|
153
|
+
}}
|
|
128
154
|
>
|
|
129
155
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
130
156
|
<CardContent>
|
|
@@ -133,9 +159,11 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
133
159
|
</CardContent>
|
|
134
160
|
</Card>
|
|
135
161
|
<Card
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
162
|
+
imageProps={{
|
|
163
|
+
alt: "Alt text",
|
|
164
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
165
|
+
src: "https://placeimg.com/400/300/animals",
|
|
166
|
+
}}
|
|
139
167
|
>
|
|
140
168
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
141
169
|
<CardContent>
|
|
@@ -150,6 +178,18 @@ The NYPL standards for the items per row in a grid is `3` for desktop, `2` for t
|
|
|
150
178
|
|
|
151
179
|
<ArgsTable story="SimpleGrid with Controls" />
|
|
152
180
|
|
|
181
|
+
## Accessibility
|
|
182
|
+
|
|
183
|
+
The CSS grid layout properties are used for the `SimpleGrid` component. We don't
|
|
184
|
+
recommend using property rules that change the visual order of elements on the
|
|
185
|
+
page that don't match with its DOM order. This is because a screenreader won't
|
|
186
|
+
pick up `SimpleGrid` CSS rules and will read the page in the expected DOM order
|
|
187
|
+
rather than the visual order.
|
|
188
|
+
|
|
189
|
+
Resources:
|
|
190
|
+
|
|
191
|
+
- [MDN CSS Grid Layout and Accessibility](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility)
|
|
192
|
+
|
|
153
193
|
## Other SimpleGrid Examples
|
|
154
194
|
|
|
155
195
|
### Icons
|
|
@@ -213,12 +253,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
|
|
|
213
253
|
<DSProvider>
|
|
214
254
|
<SimpleGrid columns={1}>
|
|
215
255
|
<Card
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
256
|
+
imageProps={{
|
|
257
|
+
alt: "Alt text",
|
|
258
|
+
aspectRatio: ImageRatios.FourByThree,
|
|
259
|
+
src: "https://placeimg.com/400/200/animals",
|
|
260
|
+
}}
|
|
261
|
+
isBordered
|
|
262
|
+
isCentered
|
|
263
|
+
layout={LayoutTypes.Row}
|
|
222
264
|
>
|
|
223
265
|
<CardHeading level={HeadingLevels.Four} id="heading1">
|
|
224
266
|
Card Heading
|
|
@@ -230,12 +272,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
|
|
|
230
272
|
</CardContent>
|
|
231
273
|
</Card>
|
|
232
274
|
<Card
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
275
|
+
imageProps={{
|
|
276
|
+
alt: "Alt text",
|
|
277
|
+
aspectRatio: ImageRatios.FourByThree,
|
|
278
|
+
src: "https://placeimg.com/410/210/animals",
|
|
279
|
+
}}
|
|
280
|
+
isBordered
|
|
281
|
+
isCentered
|
|
282
|
+
layout={LayoutTypes.Row}
|
|
239
283
|
>
|
|
240
284
|
<CardHeading level={HeadingLevels.Four} id="heading2">
|
|
241
285
|
Card Heading
|
|
@@ -247,12 +291,14 @@ This example is rendering horizontal `Card` components with the `columns` prop s
|
|
|
247
291
|
</CardContent>
|
|
248
292
|
</Card>
|
|
249
293
|
<Card
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
294
|
+
imageProps={{
|
|
295
|
+
alt: "Alt text",
|
|
296
|
+
aspectRatio: ImageRatios.FourByThree,
|
|
297
|
+
src: "https://placeimg.com/320/320/animals",
|
|
298
|
+
}}
|
|
299
|
+
isBordered
|
|
300
|
+
isCentered
|
|
301
|
+
layout={LayoutTypes.Row}
|
|
256
302
|
>
|
|
257
303
|
<CardHeading level={HeadingLevels.Four} id="heading3">
|
|
258
304
|
Card Heading
|
|
@@ -13,9 +13,11 @@ describe("Grid Accessibility", () => {
|
|
|
13
13
|
const { container } = render(
|
|
14
14
|
<SimpleGrid>
|
|
15
15
|
<Card
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
imageProps={{
|
|
17
|
+
alt: "Alt text",
|
|
18
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
19
|
+
src: "https://placeimg.com/500/200/animals",
|
|
20
|
+
}}
|
|
19
21
|
>
|
|
20
22
|
<CardHeading level={HeadingLevels.Two}>Card Heading</CardHeading>
|
|
21
23
|
<CardContent>
|
|
@@ -24,9 +26,11 @@ describe("Grid Accessibility", () => {
|
|
|
24
26
|
</CardContent>
|
|
25
27
|
</Card>
|
|
26
28
|
<Card
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
imageProps={{
|
|
30
|
+
alt: "Alt text",
|
|
31
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
32
|
+
src: "https://placeimg.com/400/220/animals",
|
|
33
|
+
}}
|
|
30
34
|
>
|
|
31
35
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
32
36
|
<CardContent>
|
|
@@ -35,9 +39,11 @@ describe("Grid Accessibility", () => {
|
|
|
35
39
|
</CardContent>
|
|
36
40
|
</Card>
|
|
37
41
|
<Card
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
imageProps={{
|
|
43
|
+
alt: "Alt text",
|
|
44
|
+
aspectRatio: ImageRatios.TwoByOne,
|
|
45
|
+
src: "https://placeimg.com/400/240/animals",
|
|
46
|
+
}}
|
|
41
47
|
>
|
|
42
48
|
<CardHeading level={HeadingLevels.Three}>Card Heading</CardHeading>
|
|
43
49
|
<CardContent>
|
|
@@ -54,7 +60,16 @@ describe("Grid Accessibility", () => {
|
|
|
54
60
|
describe("SimpleGrid", () => {
|
|
55
61
|
it("Renders the SimpleGrid UI snapshot correctly", () => {
|
|
56
62
|
const tree = renderer.create(<SimpleGrid id="test-grid" />).toJSON();
|
|
63
|
+
const withChakraProps = renderer
|
|
64
|
+
.create(<SimpleGrid id="chakra" p="20px" color="ui.error.primary" />)
|
|
65
|
+
.toJSON();
|
|
66
|
+
const withOtherProps = renderer
|
|
67
|
+
.create(<SimpleGrid id="props" data-testid="props" />)
|
|
68
|
+
.toJSON();
|
|
69
|
+
|
|
57
70
|
expect(tree).toMatchSnapshot();
|
|
71
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
72
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
58
73
|
});
|
|
59
74
|
|
|
60
75
|
it("Renders SimpleGrid component", () => {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
+
import { chakra, SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
|
|
1
2
|
import * as React from "react";
|
|
2
|
-
import { SimpleGrid as ChakraSimpleGrid } from "@chakra-ui/react";
|
|
3
|
-
import { GridGaps } from "./GridTypes";
|
|
4
|
-
|
|
5
|
-
import generateUUID from "../../helpers/generateUUID";
|
|
6
3
|
|
|
4
|
+
import { GridGaps } from "./GridTypes";
|
|
7
5
|
export interface SimpleGridProps {
|
|
8
6
|
/** Additional class name. */
|
|
9
7
|
className?: string;
|
|
@@ -15,23 +13,34 @@ export interface SimpleGridProps {
|
|
|
15
13
|
id?: string;
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
export const SimpleGrid = chakra(
|
|
17
|
+
(props: React.PropsWithChildren<SimpleGridProps>) => {
|
|
18
|
+
const {
|
|
19
|
+
children,
|
|
20
|
+
columns,
|
|
21
|
+
className,
|
|
22
|
+
gap = GridGaps.Large,
|
|
23
|
+
id,
|
|
24
|
+
...rest
|
|
25
|
+
} = props;
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
const responsiveCols = columns
|
|
28
|
+
? { base: 1, md: columns }
|
|
29
|
+
: { base: 1, md: 2, lg: 3 };
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
return (
|
|
32
|
+
<ChakraSimpleGrid
|
|
33
|
+
columns={responsiveCols}
|
|
34
|
+
gap={gap}
|
|
35
|
+
id={id}
|
|
36
|
+
className={className}
|
|
37
|
+
{...rest}
|
|
38
|
+
>
|
|
39
|
+
{children}
|
|
40
|
+
</ChakraSimpleGrid>
|
|
41
|
+
);
|
|
42
|
+
},
|
|
43
|
+
{ shouldForwardProp: () => true }
|
|
44
|
+
);
|
|
36
45
|
|
|
37
46
|
export default SimpleGrid;
|
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 1`] = `
|
|
4
4
|
<div
|
|
5
|
-
className="css-
|
|
5
|
+
className="css-bjq6jk"
|
|
6
6
|
id="test-grid"
|
|
7
7
|
/>
|
|
8
8
|
`;
|
|
9
|
+
|
|
10
|
+
exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 2`] = `
|
|
11
|
+
<div
|
|
12
|
+
className="css-161u8yz"
|
|
13
|
+
id="chakra"
|
|
14
|
+
/>
|
|
15
|
+
`;
|
|
16
|
+
|
|
17
|
+
exports[`SimpleGrid Renders the SimpleGrid UI snapshot correctly 3`] = `
|
|
18
|
+
<div
|
|
19
|
+
className="css-bjq6jk"
|
|
20
|
+
data-testid="props"
|
|
21
|
+
id="props"
|
|
22
|
+
/>
|
|
23
|
+
`;
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
10
|
import Heading from "./Heading";
|
|
11
|
-
import {
|
|
11
|
+
import { HeadingSizes, HeadingLevels } from "./HeadingTypes";
|
|
12
12
|
import { getCategory } from "../../utils/componentCategories";
|
|
13
13
|
import { getStorybookEnumValues } from "../../utils/utils";
|
|
14
14
|
|
|
15
15
|
export const sizesEnumValues = getStorybookEnumValues(
|
|
16
|
-
|
|
17
|
-
"
|
|
16
|
+
HeadingSizes,
|
|
17
|
+
"HeadingSizes"
|
|
18
18
|
);
|
|
19
19
|
export const levelsEnumValues = getStorybookEnumValues(
|
|
20
20
|
HeadingLevels,
|
|
@@ -35,16 +35,16 @@ export const levelsEnumValues = getStorybookEnumValues(
|
|
|
35
35
|
argTypes={{
|
|
36
36
|
additionalStyles: { control: false },
|
|
37
37
|
className: { control: false },
|
|
38
|
-
displaySize: {
|
|
39
|
-
control: { type: "select" },
|
|
40
|
-
options: sizesEnumValues.options,
|
|
41
|
-
},
|
|
42
38
|
id: { control: false },
|
|
43
39
|
level: {
|
|
44
40
|
control: { type: "select" },
|
|
45
41
|
options: levelsEnumValues.options,
|
|
46
42
|
table: { defaultValue: { summary: "HeadingLevels.Two" } },
|
|
47
43
|
},
|
|
44
|
+
size: {
|
|
45
|
+
control: { type: "select" },
|
|
46
|
+
options: sizesEnumValues.options,
|
|
47
|
+
},
|
|
48
48
|
}}
|
|
49
49
|
/>
|
|
50
50
|
|
|
@@ -53,13 +53,27 @@ export const levelsEnumValues = getStorybookEnumValues(
|
|
|
53
53
|
| Component Version | DS Version |
|
|
54
54
|
| ----------------- | ---------- |
|
|
55
55
|
| Added | `0.0.4` |
|
|
56
|
-
| Latest | `0.
|
|
56
|
+
| Latest | `0.26.0` |
|
|
57
|
+
|
|
58
|
+
## Table of Contents
|
|
59
|
+
|
|
60
|
+
- [Overview](#overview)
|
|
61
|
+
- [Component Props](#component-props)
|
|
62
|
+
- [Accessibility](#accessibility)
|
|
63
|
+
- [Default Heading Styles](#default-heading-styles)
|
|
64
|
+
- [Size Styles](#size-styles)
|
|
65
|
+
- [Heading with Bold Text](#heading-with-bold-text)
|
|
66
|
+
- [Headings with Links](#headings-with-links)
|
|
67
|
+
|
|
68
|
+
## Overview
|
|
57
69
|
|
|
58
70
|
<Description of={Heading} />
|
|
59
71
|
|
|
60
72
|
A `Heading` component will render a standard HTML `<h>` tag (1-6). The heading's
|
|
61
73
|
text can be passed in through a `text` prop or as a child. Default styles for
|
|
62
|
-
semantic elements can be overwritten using the `
|
|
74
|
+
semantic elements can be overwritten using the `size` prop.
|
|
75
|
+
|
|
76
|
+
## Component Props
|
|
63
77
|
|
|
64
78
|
<Canvas withToolbar>
|
|
65
79
|
<Story
|
|
@@ -67,9 +81,9 @@ semantic elements can be overwritten using the `displaySize` prop.
|
|
|
67
81
|
args={{
|
|
68
82
|
additionalStyles: undefined,
|
|
69
83
|
className: undefined,
|
|
70
|
-
displaySize: undefined,
|
|
71
84
|
id: "heading-id",
|
|
72
85
|
level: "HeadingLevels.Two",
|
|
86
|
+
size: undefined,
|
|
73
87
|
text: "Default Heading",
|
|
74
88
|
url: undefined,
|
|
75
89
|
urlClass: undefined,
|
|
@@ -78,10 +92,8 @@ semantic elements can be overwritten using the `displaySize` prop.
|
|
|
78
92
|
{(args) => (
|
|
79
93
|
<Heading
|
|
80
94
|
{...args}
|
|
81
|
-
displaySize={
|
|
82
|
-
args.displaySize && sizesEnumValues.getValue(args.displaySize)
|
|
83
|
-
}
|
|
84
95
|
level={levelsEnumValues.getValue(args.level)}
|
|
96
|
+
size={args.size && sizesEnumValues.getValue(args.size)}
|
|
85
97
|
/>
|
|
86
98
|
)}
|
|
87
99
|
</Story>
|
|
@@ -89,6 +101,25 @@ semantic elements can be overwritten using the `displaySize` prop.
|
|
|
89
101
|
|
|
90
102
|
<ArgsTable story="Heading with Controls" />
|
|
91
103
|
|
|
104
|
+
## Accessibility
|
|
105
|
+
|
|
106
|
+
When adding headings to a webpage, it is important to ensure that the heading
|
|
107
|
+
hierarchy is consistent. This means they should start with only one `h1` for the
|
|
108
|
+
page title and then proceed with `h2`s, `h3`s, `h4`s, `h5`s and `h6`s in the
|
|
109
|
+
proper order and not skipping any. For example, the following is invalid HTML:
|
|
110
|
+
|
|
111
|
+
```html
|
|
112
|
+
<h1>Page Title</h1>
|
|
113
|
+
<h2>Subtitle</h2>
|
|
114
|
+
<h4>Sub-subtitle</h4>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Resources:
|
|
118
|
+
|
|
119
|
+
- [W3C WAI Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/)
|
|
120
|
+
- [A11y Project Accessible heading structure](https://www.a11yproject.com/posts/how-to-accessible-heading-structure/)
|
|
121
|
+
- [Chakra UI Heading](https://chakra-ui.com/docs/components/typography/heading)
|
|
122
|
+
|
|
92
123
|
## Default Heading Styles
|
|
93
124
|
|
|
94
125
|
<Canvas>
|
|
@@ -128,46 +159,46 @@ semantic elements can be overwritten using the `displaySize` prop.
|
|
|
128
159
|
</Story>
|
|
129
160
|
</Canvas>
|
|
130
161
|
|
|
131
|
-
##
|
|
162
|
+
## Size Styles
|
|
132
163
|
|
|
133
164
|
Note: The `level` prop for the `Heading`s in the next example are all set to
|
|
134
165
|
`level={HeadingLevels.One}`.
|
|
135
166
|
|
|
136
167
|
<Canvas>
|
|
137
|
-
<Story name="
|
|
168
|
+
<Story name="Size Styles">
|
|
138
169
|
<div>
|
|
139
170
|
<Heading
|
|
140
171
|
id="heading-primary"
|
|
141
172
|
level={HeadingLevels.One}
|
|
142
|
-
|
|
143
|
-
text="<h1>
|
|
173
|
+
size={HeadingSizes.Primary}
|
|
174
|
+
text="<h1> HeadingSizes.Primary"
|
|
144
175
|
/>
|
|
145
176
|
<Heading
|
|
146
177
|
id="heading-secondary"
|
|
147
178
|
level={HeadingLevels.One}
|
|
148
|
-
|
|
149
|
-
text="<h1>
|
|
179
|
+
size={HeadingSizes.Secondary}
|
|
180
|
+
text="<h1> HeadingSizes.Secondary"
|
|
150
181
|
/>
|
|
151
182
|
<Heading
|
|
152
183
|
id="heading-tertiary"
|
|
153
184
|
level={HeadingLevels.One}
|
|
154
|
-
|
|
155
|
-
text="<h1>
|
|
185
|
+
size={HeadingSizes.Tertiary}
|
|
186
|
+
text="<h1> HeadingSizes.Tertiary"
|
|
156
187
|
/>
|
|
157
188
|
<Heading
|
|
158
189
|
id="heading-callout"
|
|
159
190
|
level={HeadingLevels.One}
|
|
160
|
-
|
|
161
|
-
text="<h1>
|
|
191
|
+
size={HeadingSizes.Callout}
|
|
192
|
+
text="<h1> HeadingSizes.Callout"
|
|
162
193
|
/>
|
|
163
194
|
</div>
|
|
164
195
|
</Story>
|
|
165
196
|
</Canvas>
|
|
166
197
|
|
|
167
|
-
## Heading with Bold
|
|
198
|
+
## Heading with Bold Text
|
|
168
199
|
|
|
169
200
|
<Canvas>
|
|
170
|
-
<Story name="Heading with Bold">
|
|
201
|
+
<Story name="Heading with Bold Text">
|
|
171
202
|
<Heading id="headingWithBold" level={HeadingLevels.One}>
|
|
172
203
|
<>
|
|
173
204
|
Heading with a <b>Bold</b> Word
|