@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`Label Renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<label
|
|
5
|
-
className="css-
|
|
5
|
+
className="css-1xdhyk6"
|
|
6
6
|
htmlFor="some-input-id"
|
|
7
7
|
id="label"
|
|
8
8
|
>
|
|
@@ -12,30 +12,34 @@ exports[`Label Renders the UI snapshot correctly 1`] = `
|
|
|
12
12
|
|
|
13
13
|
exports[`Label Renders the UI snapshot correctly 2`] = `
|
|
14
14
|
<label
|
|
15
|
-
className="css-
|
|
15
|
+
className="css-1xdhyk6"
|
|
16
16
|
htmlFor="some-input-id"
|
|
17
|
-
id="
|
|
17
|
+
id="label3"
|
|
18
18
|
>
|
|
19
19
|
Cupcakes
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
>
|
|
23
|
-
Optional
|
|
24
|
-
</div>
|
|
20
|
+
<span>
|
|
21
|
+
(Required)
|
|
22
|
+
</span>
|
|
25
23
|
</label>
|
|
26
24
|
`;
|
|
27
25
|
|
|
28
26
|
exports[`Label Renders the UI snapshot correctly 3`] = `
|
|
29
27
|
<label
|
|
30
|
-
className="css-
|
|
28
|
+
className="css-kle7zy"
|
|
31
29
|
htmlFor="some-input-id"
|
|
32
|
-
id="
|
|
30
|
+
id="chakra"
|
|
31
|
+
>
|
|
32
|
+
Cupcakes
|
|
33
|
+
</label>
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
exports[`Label Renders the UI snapshot correctly 4`] = `
|
|
37
|
+
<label
|
|
38
|
+
className="css-1xdhyk6"
|
|
39
|
+
data-testid="props"
|
|
40
|
+
htmlFor="some-input-id"
|
|
41
|
+
id="props"
|
|
33
42
|
>
|
|
34
43
|
Cupcakes
|
|
35
|
-
<div
|
|
36
|
-
className="css-0"
|
|
37
|
-
>
|
|
38
|
-
Required
|
|
39
|
-
</div>
|
|
40
44
|
</label>
|
|
41
45
|
`;
|
|
@@ -52,10 +52,23 @@ export const enumValues = getStorybookEnumValues(LinkTypes, "LinkTypes");
|
|
|
52
52
|
| Component Version | DS Version |
|
|
53
53
|
| ----------------- | ---------- |
|
|
54
54
|
| Added | `0.0.4` |
|
|
55
|
-
| Latest | `0.
|
|
55
|
+
| Latest | `0.26.0` |
|
|
56
|
+
|
|
57
|
+
## Table of Contents
|
|
58
|
+
|
|
59
|
+
- [Overview](#overview)
|
|
60
|
+
- [Component Props](#component-props)
|
|
61
|
+
- [Accessibility](#accessibility)
|
|
62
|
+
- [Links With Icons](#links-with-icons)
|
|
63
|
+
- [Anchor Element Rendering](#anchor-element-rendering)
|
|
64
|
+
- [Link with Routers](#link-with-routers)
|
|
65
|
+
|
|
66
|
+
## Overview
|
|
56
67
|
|
|
57
68
|
<Description of={Link} />
|
|
58
69
|
|
|
70
|
+
## Component Props
|
|
71
|
+
|
|
59
72
|
<Canvas withToolbar>
|
|
60
73
|
<Story
|
|
61
74
|
name="Link with Controls"
|
|
@@ -81,6 +94,17 @@ export const enumValues = getStorybookEnumValues(LinkTypes, "LinkTypes");
|
|
|
81
94
|
|
|
82
95
|
<ArgsTable story="Link with Controls" />
|
|
83
96
|
|
|
97
|
+
## Accessibility
|
|
98
|
+
|
|
99
|
+
The `Link` component should be used for navigation. If an `onClick` user
|
|
100
|
+
interface action is required, a `Button` component should be used instead. The
|
|
101
|
+
`Link` component renders an `<a>` element with the `href` attribute.
|
|
102
|
+
|
|
103
|
+
Resources:
|
|
104
|
+
|
|
105
|
+
- [W3C WAI Link Examples](https://www.w3.org/TR/wai-aria-practices-1.1/examples/link/link.html)
|
|
106
|
+
- [Yale Usability & Web Accessibility Links](https://usability.yale.edu/web-accessibility/articles/links)
|
|
107
|
+
|
|
84
108
|
## Links With Icons
|
|
85
109
|
|
|
86
110
|
To render an `Icon` as part of the link, make sure that the `Link` component
|
|
@@ -229,6 +229,25 @@ describe("Link", () => {
|
|
|
229
229
|
</Link>
|
|
230
230
|
)
|
|
231
231
|
.toJSON();
|
|
232
|
+
const withChakraProps = renderer
|
|
233
|
+
.create(
|
|
234
|
+
<Link
|
|
235
|
+
href="#passed-in-link"
|
|
236
|
+
id="chakra"
|
|
237
|
+
p="20px"
|
|
238
|
+
color="ui.error.primary"
|
|
239
|
+
>
|
|
240
|
+
Standard
|
|
241
|
+
</Link>
|
|
242
|
+
)
|
|
243
|
+
.toJSON();
|
|
244
|
+
const withOtherProps = renderer
|
|
245
|
+
.create(
|
|
246
|
+
<Link href="#passed-in-link" id="props" data-testid="props">
|
|
247
|
+
Standard
|
|
248
|
+
</Link>
|
|
249
|
+
)
|
|
250
|
+
.toJSON();
|
|
232
251
|
|
|
233
252
|
expect(standard).toMatchSnapshot();
|
|
234
253
|
expect(typeForwards).toMatchSnapshot();
|
|
@@ -238,6 +257,8 @@ describe("Link", () => {
|
|
|
238
257
|
expect(withIconChild).toMatchSnapshot();
|
|
239
258
|
expect(withAchorChild).toMatchSnapshot();
|
|
240
259
|
expect(withAchorChildAndIcon).toMatchSnapshot();
|
|
260
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
261
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
241
262
|
});
|
|
242
263
|
|
|
243
264
|
// TODO:
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { Box, chakra, useStyleConfig } from "@chakra-ui/react";
|
|
1
2
|
import * as React from "react";
|
|
2
|
-
import { Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
3
|
|
|
4
4
|
import { LinkTypes } from "./LinkTypes";
|
|
5
5
|
import Icon from "../Icons/Icon";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import {
|
|
7
|
+
IconRotationTypes,
|
|
8
|
+
IconNames,
|
|
9
|
+
IconAlign,
|
|
10
|
+
IconSizes,
|
|
11
|
+
} from "../Icons/IconTypes";
|
|
9
12
|
export interface LinkProps {
|
|
10
13
|
/** Optionally pass in additional Chakra-based styles. */
|
|
11
14
|
additionalStyles?: { [key: string]: any };
|
|
@@ -51,6 +54,7 @@ function getWithDirectionIcon(children, type: LinkTypes, linkId) {
|
|
|
51
54
|
iconRotation={iconRotation}
|
|
52
55
|
id={iconId}
|
|
53
56
|
name={IconNames.Arrow}
|
|
57
|
+
size={IconSizes.Medium}
|
|
54
58
|
/>
|
|
55
59
|
);
|
|
56
60
|
|
|
@@ -71,6 +75,7 @@ function getExternalIcon(children, linkId) {
|
|
|
71
75
|
className="more-link"
|
|
72
76
|
id={iconId}
|
|
73
77
|
name={IconNames.ActionLaunch}
|
|
78
|
+
size={IconSizes.Medium}
|
|
74
79
|
/>
|
|
75
80
|
);
|
|
76
81
|
|
|
@@ -86,16 +91,17 @@ function getExternalIcon(children, linkId) {
|
|
|
86
91
|
* A component that uses an `href` prop or a child anchor element, to create
|
|
87
92
|
* an anchor element with added styling and conventions.
|
|
88
93
|
*/
|
|
89
|
-
const Link =
|
|
90
|
-
(props, ref: any) => {
|
|
94
|
+
export const Link = chakra(
|
|
95
|
+
React.forwardRef<HTMLAnchorElement, LinkProps>((props, ref: any) => {
|
|
91
96
|
const {
|
|
92
97
|
additionalStyles = {},
|
|
93
98
|
attributes,
|
|
94
99
|
children,
|
|
95
100
|
className,
|
|
96
101
|
href,
|
|
97
|
-
id
|
|
102
|
+
id,
|
|
98
103
|
type = LinkTypes.Default,
|
|
104
|
+
...rest
|
|
99
105
|
} = props;
|
|
100
106
|
|
|
101
107
|
// Merge the necessary props alongside any extra props for the
|
|
@@ -145,7 +151,7 @@ const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
145
151
|
const childrenToClone: any = children[0] ? children[0] : children;
|
|
146
152
|
const childProps = childrenToClone.props;
|
|
147
153
|
return (
|
|
148
|
-
<Box as="span" __css={style}>
|
|
154
|
+
<Box as="span" __css={style} {...rest}>
|
|
149
155
|
{React.cloneElement(
|
|
150
156
|
childrenToClone,
|
|
151
157
|
{
|
|
@@ -173,12 +179,13 @@ const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
173
179
|
target={target}
|
|
174
180
|
{...linkProps}
|
|
175
181
|
__css={{ ...style, ...additionalStyles }}
|
|
182
|
+
{...rest}
|
|
176
183
|
>
|
|
177
184
|
{newChildren}
|
|
178
185
|
</Box>
|
|
179
186
|
);
|
|
180
187
|
}
|
|
181
|
-
}
|
|
188
|
+
})
|
|
182
189
|
);
|
|
183
190
|
|
|
184
191
|
export default Link;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`Link renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<a
|
|
5
|
-
className="css-
|
|
5
|
+
className="css-1xdhyk6"
|
|
6
6
|
href="#passed-in-link"
|
|
7
7
|
id="standard-link"
|
|
8
8
|
rel={null}
|
|
@@ -14,7 +14,7 @@ exports[`Link renders the UI snapshot correctly 1`] = `
|
|
|
14
14
|
|
|
15
15
|
exports[`Link renders the UI snapshot correctly 2`] = `
|
|
16
16
|
<a
|
|
17
|
-
className="css-
|
|
17
|
+
className="css-1xdhyk6"
|
|
18
18
|
href="#passed-in-link"
|
|
19
19
|
id="forwards-link"
|
|
20
20
|
rel={null}
|
|
@@ -23,7 +23,7 @@ exports[`Link renders the UI snapshot correctly 2`] = `
|
|
|
23
23
|
Forwards
|
|
24
24
|
<svg
|
|
25
25
|
aria-hidden={true}
|
|
26
|
-
className="chakra-icon more-link css-
|
|
26
|
+
className="chakra-icon more-link css-1grhd2q"
|
|
27
27
|
focusable={false}
|
|
28
28
|
id="forwards-link-icon"
|
|
29
29
|
role="img"
|
|
@@ -58,7 +58,7 @@ exports[`Link renders the UI snapshot correctly 2`] = `
|
|
|
58
58
|
|
|
59
59
|
exports[`Link renders the UI snapshot correctly 3`] = `
|
|
60
60
|
<a
|
|
61
|
-
className="css-
|
|
61
|
+
className="css-1xdhyk6"
|
|
62
62
|
href="#passed-in-link"
|
|
63
63
|
id="backwards-link"
|
|
64
64
|
rel={null}
|
|
@@ -66,7 +66,7 @@ exports[`Link renders the UI snapshot correctly 3`] = `
|
|
|
66
66
|
>
|
|
67
67
|
<svg
|
|
68
68
|
aria-hidden={true}
|
|
69
|
-
className="chakra-icon more-link css-
|
|
69
|
+
className="chakra-icon more-link css-1grhd2q"
|
|
70
70
|
focusable={false}
|
|
71
71
|
id="backwards-link-icon"
|
|
72
72
|
role="img"
|
|
@@ -102,7 +102,7 @@ exports[`Link renders the UI snapshot correctly 3`] = `
|
|
|
102
102
|
|
|
103
103
|
exports[`Link renders the UI snapshot correctly 4`] = `
|
|
104
104
|
<a
|
|
105
|
-
className="css-
|
|
105
|
+
className="css-1xdhyk6"
|
|
106
106
|
href="#passed-in-link"
|
|
107
107
|
id="external-link"
|
|
108
108
|
rel="nofollow"
|
|
@@ -111,7 +111,7 @@ exports[`Link renders the UI snapshot correctly 4`] = `
|
|
|
111
111
|
External
|
|
112
112
|
<svg
|
|
113
113
|
aria-hidden={true}
|
|
114
|
-
className="chakra-icon more-link css-
|
|
114
|
+
className="chakra-icon more-link css-1grhd2q"
|
|
115
115
|
focusable={false}
|
|
116
116
|
id="external-link-icon"
|
|
117
117
|
role="img"
|
|
@@ -146,7 +146,7 @@ exports[`Link renders the UI snapshot correctly 4`] = `
|
|
|
146
146
|
|
|
147
147
|
exports[`Link renders the UI snapshot correctly 5`] = `
|
|
148
148
|
<a
|
|
149
|
-
className="css-
|
|
149
|
+
className="css-1xdhyk6"
|
|
150
150
|
href="#passed-in-link"
|
|
151
151
|
id="button-link"
|
|
152
152
|
rel={null}
|
|
@@ -158,7 +158,7 @@ exports[`Link renders the UI snapshot correctly 5`] = `
|
|
|
158
158
|
|
|
159
159
|
exports[`Link renders the UI snapshot correctly 6`] = `
|
|
160
160
|
<a
|
|
161
|
-
className="css-
|
|
161
|
+
className="css-1xdhyk6"
|
|
162
162
|
href="#passed-in-link"
|
|
163
163
|
id="icon-link"
|
|
164
164
|
rel={null}
|
|
@@ -166,7 +166,7 @@ exports[`Link renders the UI snapshot correctly 6`] = `
|
|
|
166
166
|
>
|
|
167
167
|
<svg
|
|
168
168
|
aria-hidden={true}
|
|
169
|
-
className="chakra-icon more-link css-
|
|
169
|
+
className="chakra-icon more-link css-1grhd2q"
|
|
170
170
|
focusable={false}
|
|
171
171
|
id="link-icon"
|
|
172
172
|
role="img"
|
|
@@ -205,6 +205,7 @@ exports[`Link renders the UI snapshot correctly 7`] = `
|
|
|
205
205
|
className="css-0"
|
|
206
206
|
>
|
|
207
207
|
<a
|
|
208
|
+
className="css-0"
|
|
208
209
|
href="#existing-anchor-tag"
|
|
209
210
|
id="anchor-link"
|
|
210
211
|
rel={null}
|
|
@@ -222,7 +223,7 @@ exports[`Link renders the UI snapshot correctly 8`] = `
|
|
|
222
223
|
>
|
|
223
224
|
<svg
|
|
224
225
|
aria-hidden={true}
|
|
225
|
-
className="chakra-icon css-
|
|
226
|
+
className="chakra-icon css-1grhd2q"
|
|
226
227
|
focusable={false}
|
|
227
228
|
id="link-icon"
|
|
228
229
|
role="img"
|
|
@@ -259,3 +260,28 @@ exports[`Link renders the UI snapshot correctly 8`] = `
|
|
|
259
260
|
</a>
|
|
260
261
|
</span>
|
|
261
262
|
`;
|
|
263
|
+
|
|
264
|
+
exports[`Link renders the UI snapshot correctly 9`] = `
|
|
265
|
+
<a
|
|
266
|
+
className="css-kle7zy"
|
|
267
|
+
href="#passed-in-link"
|
|
268
|
+
id="chakra"
|
|
269
|
+
rel={null}
|
|
270
|
+
target={null}
|
|
271
|
+
>
|
|
272
|
+
Standard
|
|
273
|
+
</a>
|
|
274
|
+
`;
|
|
275
|
+
|
|
276
|
+
exports[`Link renders the UI snapshot correctly 10`] = `
|
|
277
|
+
<a
|
|
278
|
+
className="css-1xdhyk6"
|
|
279
|
+
data-testid="props"
|
|
280
|
+
href="#passed-in-link"
|
|
281
|
+
id="props"
|
|
282
|
+
rel={null}
|
|
283
|
+
target={null}
|
|
284
|
+
>
|
|
285
|
+
Standard
|
|
286
|
+
</a>
|
|
287
|
+
`;
|
|
@@ -51,19 +51,30 @@ export const enumValues = getStorybookEnumValues(ListTypes, "ListTypes");
|
|
|
51
51
|
| Component Version | DS Version |
|
|
52
52
|
| ----------------- | ---------- |
|
|
53
53
|
| Added | `0.7.0` |
|
|
54
|
-
| Latest | `0.
|
|
54
|
+
| Latest | `0.26.0` |
|
|
55
|
+
|
|
56
|
+
## Table of Contents
|
|
57
|
+
|
|
58
|
+
- [Overview](#overview)
|
|
59
|
+
- [Component Props](#component-props)
|
|
60
|
+
- [Accessibility](#accessibility)
|
|
61
|
+
- [Description List](#description-list)
|
|
62
|
+
- [Description List of Links](#description-list-of-links)
|
|
63
|
+
- [Lists with Data Props](#lists-with-data-props)
|
|
64
|
+
|
|
65
|
+
## Overview
|
|
55
66
|
|
|
56
67
|
<Description of={List} />
|
|
57
68
|
|
|
58
|
-
export const
|
|
69
|
+
export const animalCrossingDescriptions = [
|
|
59
70
|
{
|
|
60
71
|
term: "Mahi-mahi",
|
|
61
|
-
|
|
72
|
+
description:
|
|
62
73
|
'The mahi-mahi is an ocean fish known for its wide, somewhat-cute face. It can reach over six feet long. It is known by different names including "dolphinfish," even though it has no relation to dolphins. They live in only in warm, tropical waters...which perhaps explains the relaxed, happy look on their faces.',
|
|
63
74
|
},
|
|
64
75
|
{
|
|
65
76
|
term: "Golden trout",
|
|
66
|
-
|
|
77
|
+
description: (
|
|
67
78
|
<p>
|
|
68
79
|
The golden trout is a <b>beautifully</b> colored fish that can only live
|
|
69
80
|
in very clean waters. They are difficult to come across since they are
|
|
@@ -75,12 +86,12 @@ export const animalCrossingDefinitions = [
|
|
|
75
86
|
},
|
|
76
87
|
{
|
|
77
88
|
term: "Rainbowfish",
|
|
78
|
-
|
|
89
|
+
description:
|
|
79
90
|
'The rainbowfish is a tropical fish known for its metallic colors and beautiful fins. There are over 50 different species, each unique and pleasing color. I must say, it does make me wish for feathers of a more exciting hue than "underbaked brownie."',
|
|
80
91
|
},
|
|
81
92
|
{
|
|
82
93
|
term: "Suckerfish",
|
|
83
|
-
|
|
94
|
+
description: (
|
|
84
95
|
<p>
|
|
85
96
|
The{" "}
|
|
86
97
|
<Link href="https://animalcrossing.fandom.com/wiki/Suckerfish">
|
|
@@ -111,30 +122,30 @@ export const itemGroups = [
|
|
|
111
122
|
"Tools",
|
|
112
123
|
"Villagers",
|
|
113
124
|
];
|
|
114
|
-
export const
|
|
125
|
+
export const descriptions = [
|
|
115
126
|
{
|
|
116
127
|
term: "Balrogs",
|
|
117
|
-
|
|
128
|
+
description:
|
|
118
129
|
'Demonic creatures of fire and shadow, Balrogs were fallen Maiar, loyal to the first Dark Lord, Morgoth. They participated in the wars of the First Age of Middle-earth but were mostly destroyed during the War of Wrath which ended the Age. By the Third Age, the only remaining Balrog was "Durin\'s Bane," the Balrog of Moria, killed by Gandalf.',
|
|
119
130
|
},
|
|
120
131
|
{
|
|
121
132
|
term: "Dwarves",
|
|
122
|
-
|
|
133
|
+
description:
|
|
123
134
|
"The race of Dwarves preferred to live in mountains and caves, settling in places such as Erebor (the Lonely Mountain), the Iron Hills, the Blue Mountains, and Moria (Khazad-dûm) in the Misty Mountains. Aulë the Smith created Dwarves; he also invented the Dwarven language, known as Khuzdul. Dwarves mined and worked precious metals throughout the mountains of Middle-earth. The seven different groups of Dwarf-folk originated in the locations where the Seven Fathers of the Dwarves first awoke before the First Age.",
|
|
124
135
|
},
|
|
125
136
|
{
|
|
126
137
|
term: "Elves",
|
|
127
|
-
|
|
138
|
+
description:
|
|
128
139
|
'The Elves, or Firstborn, were the first of Eru\'s Children to awaken. Born under the stars before the ascension of the Moon and the Sun, they retain a special love for light and an inner spirit endowed with unique gifts. They call themselves the Quendi, or "Speakers", for they were the first to utter words; and, even now, no race understands language and song like the Firstborn. Fair and fine featured, brilliant and proud, immortal and strong, tall and agile, they are the most blessed of the Free Peoples. They can see as well under moon or starlight as a man at the height of day. They cannot become sick or scarred, but if an Elf should die, from violence or losing the will to live from grief, their spirit goes to the halls of Mandos, and as they are bound to Arda and cannot leave until the world is broken and remade. Elven skill and agility is legendary: for instance, walking atop freshly fallen snow without leaving a trace of their passing. On a clear day they can see ten miles with perfect clarity and detail up to 100 miles. These gifts come at great cost, though: they are strongly bound to Fate (see Mandos) and hated by Morgoth. No other race has been blessed and cursed more than the Quendi.',
|
|
129
140
|
},
|
|
130
141
|
{
|
|
131
142
|
term: "Ents",
|
|
132
|
-
|
|
143
|
+
description:
|
|
133
144
|
"Ents were an ancient race of tree-like creatures, having become like the trees that they shepherd. They were created by Yavanna and given life by Ilúvatar. By the Third Age, they were a dwindling race, having long ago lost their mates, the Entwives.",
|
|
134
145
|
},
|
|
135
146
|
{
|
|
136
147
|
term: "Hobbits",
|
|
137
|
-
|
|
148
|
+
description:
|
|
138
149
|
'Hobbits are a race of Middle-earth, also known as "halflings" on account of their short stature, roughly half the size of men. They are characterized by curly hair on their heads and leathery feet that have furry insteps, for which they did not wear shoes. Many hobbits live in the Shire as well as Bree, and they once lived in the vales of the Anduin. They are fond of an unadventurous life of farming, eating, and socializing. There were three types of Hobbits: The Harfoots were the most numerous. The Stoors had an affinity for water, boats and swimming; the Fallohides were an adventurous people. The origin of hobbits is unclear, but of all the races they have the closest affinity to men, and in the Prologue to The Lord of the Rings Tolkien calls them relatives of men.',
|
|
139
150
|
},
|
|
140
151
|
];
|
|
@@ -155,11 +166,11 @@ export const definitions = [
|
|
|
155
166
|
>
|
|
156
167
|
{(args) => (
|
|
157
168
|
<List {...args} type={enumValues.getValue(args.type)}>
|
|
158
|
-
{args.type !== "ListTypes.
|
|
169
|
+
{args.type !== "ListTypes.Description"
|
|
159
170
|
? itemGroups.map((item, i) => <li key={i}>{item}</li>)
|
|
160
|
-
:
|
|
171
|
+
: descriptions.map((item, i) => [
|
|
161
172
|
<dt key={`dt_${i}`}>{item.term}</dt>,
|
|
162
|
-
<dd key={`dd_${i}`}>{item.
|
|
173
|
+
<dd key={`dd_${i}`}>{item.description}</dd>,
|
|
163
174
|
])}
|
|
164
175
|
</List>
|
|
165
176
|
)}
|
|
@@ -168,22 +179,46 @@ export const definitions = [
|
|
|
168
179
|
|
|
169
180
|
<ArgsTable story="List with Controls" />
|
|
170
181
|
|
|
171
|
-
##
|
|
182
|
+
## Accessibility
|
|
183
|
+
|
|
184
|
+
Internally, the `List` component implements native HTML markup for unordered,
|
|
185
|
+
ordered, and description lists. This includes `ul`, `ol`, and `dl` elements.
|
|
186
|
+
When data is passed into the `listItems` data prop, the appropriate children
|
|
187
|
+
HTML elements are used. This includes `li` for unorder and ordered lists, and
|
|
188
|
+
`dt` and `dd` elements for description lists.
|
|
189
|
+
|
|
190
|
+
The description type for the `List` component is wrapped in a `section` element
|
|
191
|
+
with an `h2` header. Keep that in mind when ordering headings on the page.
|
|
192
|
+
|
|
193
|
+
Resources:
|
|
194
|
+
|
|
195
|
+
- [W3C WAI Content Structure](https://www.w3.org/WAI/tutorials/page-structure/content/)
|
|
196
|
+
- [Deque University Appropriate Semantic Markup for Lists](https://dequeuniversity.com/tips/list-markup)
|
|
197
|
+
|
|
198
|
+
## Description List
|
|
199
|
+
|
|
200
|
+
_Note: This element is officially called the "Description List" element in HTML5.
|
|
201
|
+
Before HTML5, it was called the "Definition List" element and some online resources
|
|
202
|
+
may still use this name. In the Reservoir Design System, we will use the
|
|
203
|
+
"Description List" name._
|
|
204
|
+
|
|
205
|
+
- [W3C Using description lists](https://www.w3.org/WAI/WCAG21/Techniques/html/H40.html)
|
|
206
|
+
- [MDN dl: The Description List element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl)
|
|
172
207
|
|
|
173
|
-
To render a
|
|
174
|
-
The optional `title` prop will now render above the
|
|
208
|
+
To render a description list, pass in `ListTypes.Description` to the `type` prop.
|
|
209
|
+
The optional `title` prop will now render above the description list element.
|
|
175
210
|
This type of list renders `dt` and `dd` elements.
|
|
176
211
|
|
|
177
212
|
```jsx
|
|
178
|
-
<List type={ListTypes.
|
|
213
|
+
<List type={ListTypes.Description}>
|
|
179
214
|
<dt>Term</dt>
|
|
180
|
-
<dd>
|
|
215
|
+
<dd>Description</dd>
|
|
181
216
|
</List>
|
|
182
217
|
```
|
|
183
218
|
|
|
184
219
|
<Canvas>
|
|
185
220
|
<Story
|
|
186
|
-
name="
|
|
221
|
+
name="Description List"
|
|
187
222
|
args={{
|
|
188
223
|
id: "nypl-list2",
|
|
189
224
|
noStyling: false,
|
|
@@ -202,23 +237,23 @@ This type of list renders `dt` and `dd` elements.
|
|
|
202
237
|
}}
|
|
203
238
|
>
|
|
204
239
|
{(args) => (
|
|
205
|
-
<List {...args} type={ListTypes.
|
|
206
|
-
{
|
|
240
|
+
<List {...args} type={ListTypes.Description}>
|
|
241
|
+
{descriptions.map((item, i) => [
|
|
207
242
|
<dt key={`dt_${i}`}>{item.term}</dt>,
|
|
208
|
-
<dd key={`dd_${i}`}>{item.
|
|
243
|
+
<dd key={`dd_${i}`}>{item.description}</dd>,
|
|
209
244
|
])}
|
|
210
245
|
</List>
|
|
211
246
|
)}
|
|
212
247
|
</Story>
|
|
213
248
|
</Canvas>
|
|
214
249
|
|
|
215
|
-
##
|
|
250
|
+
## Description List of Links
|
|
216
251
|
|
|
217
252
|
An example with HTML elements inside of the `dd` elements.
|
|
218
253
|
|
|
219
254
|
<Canvas>
|
|
220
255
|
<Story
|
|
221
|
-
name="
|
|
256
|
+
name="Description List of Links"
|
|
222
257
|
args={{
|
|
223
258
|
noStyling: false,
|
|
224
259
|
title: "Details",
|
|
@@ -236,7 +271,7 @@ An example with HTML elements inside of the `dd` elements.
|
|
|
236
271
|
}}
|
|
237
272
|
>
|
|
238
273
|
{(args) => (
|
|
239
|
-
<List {...args} type={ListTypes.
|
|
274
|
+
<List {...args} type={ListTypes.Description}>
|
|
240
275
|
<dt>Authors</dt>
|
|
241
276
|
<dd>
|
|
242
277
|
<a href="#">Chirwa, Ephraim Wadonda, author</a>
|
|
@@ -304,16 +339,16 @@ const fishArray = ["Mahi-mahi", "Golden trout", "Rainbowfish", "Suckerfish"];
|
|
|
304
339
|
<List type={ListTypes.Unordered} listItems={fishArray} />
|
|
305
340
|
```
|
|
306
341
|
|
|
307
|
-
###
|
|
342
|
+
### Description
|
|
308
343
|
|
|
309
|
-
For lists of type `ListTypes.
|
|
344
|
+
For lists of type `ListTypes.Description` (dl), `dt` and `dd` elements can be
|
|
310
345
|
passed as children. If that's not possible but the data to render is stored as
|
|
311
346
|
an array of objects, then that data array can be passed into `listItems`. The
|
|
312
|
-
object must have two keys, `term` and `
|
|
347
|
+
object must have two keys, `term` and `description`.
|
|
313
348
|
|
|
314
349
|
```jsx
|
|
315
350
|
// With `dt`/`dd` elements
|
|
316
|
-
<List type={ListTypes.
|
|
351
|
+
<List type={ListTypes.Description} title="Animal Crossing Fish">
|
|
317
352
|
<dt>Mahi-mahi</dt>
|
|
318
353
|
<dd>The mahi-mahi is an ocean fish known...</dd>
|
|
319
354
|
<dt>Golden trout</dt>
|
|
@@ -325,28 +360,28 @@ object must have two keys, `term` and `definition`.
|
|
|
325
360
|
</List>
|
|
326
361
|
|
|
327
362
|
// With `itemList` data prop
|
|
328
|
-
const
|
|
363
|
+
const fishDescriptions = [
|
|
329
364
|
{
|
|
330
365
|
term: "Mahi-mahi",
|
|
331
|
-
|
|
366
|
+
description: "The mahi-mahi is an ocean fish known..."
|
|
332
367
|
},
|
|
333
368
|
{
|
|
334
369
|
term: "Golden trout",
|
|
335
|
-
|
|
370
|
+
description: "The golden trout is a beautifully colored fish..."
|
|
336
371
|
},
|
|
337
372
|
{
|
|
338
373
|
term: "Rainbowfish",
|
|
339
|
-
|
|
374
|
+
description: "The rainbowfish is a tropical fish known..."
|
|
340
375
|
},
|
|
341
376
|
{
|
|
342
377
|
term: "Suckerfish"
|
|
343
|
-
|
|
378
|
+
description: "he suckerfish is a curious fish that..."
|
|
344
379
|
}
|
|
345
380
|
];
|
|
346
381
|
<List
|
|
347
|
-
listItems={
|
|
382
|
+
listItems={fishDescriptions}
|
|
348
383
|
title="Animal Crossing Fish"
|
|
349
|
-
type={ListTypes.
|
|
384
|
+
type={ListTypes.Description}
|
|
350
385
|
/>
|
|
351
386
|
```
|
|
352
387
|
|
|
@@ -354,7 +389,7 @@ const fishDefinitions = [
|
|
|
354
389
|
<Story
|
|
355
390
|
name="List with Data Props"
|
|
356
391
|
args={{
|
|
357
|
-
listItems:
|
|
392
|
+
listItems: animalCrossingDescriptions,
|
|
358
393
|
noStyling: false,
|
|
359
394
|
title: "Animal Crossing Fish",
|
|
360
395
|
}}
|
|
@@ -364,6 +399,6 @@ const fishDefinitions = [
|
|
|
364
399
|
type: { control: false },
|
|
365
400
|
}}
|
|
366
401
|
>
|
|
367
|
-
{(args) => <List {...args} type={ListTypes.
|
|
402
|
+
{(args) => <List {...args} type={ListTypes.Description} />}
|
|
368
403
|
</Story>
|
|
369
404
|
</Canvas>
|