@nypl/design-system-react-components 0.25.13 → 0.27.0
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 +85 -0
- package/README.md +10 -10
- package/dist/components/Accordion/Accordion.d.ts +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Card/Card.d.ts +11 -9
- package/dist/components/Checkbox/Checkbox.d.ts +2 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +5 -4
- 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 +1 -1
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +9 -8
- package/dist/components/Hero/Hero.d.ts +2 -1
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +2 -10
- package/dist/components/Icons/Icon.d.ts +2 -1
- package/dist/components/Image/Image.d.ts +2 -2
- 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 +2 -0
- package/dist/components/Modal/Modal.d.ts +28 -8
- package/dist/components/Notification/Notification.d.ts +4 -4
- 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 +4 -6
- package/dist/components/RadioGroup/RadioGroup.d.ts +12 -6
- package/dist/components/SearchBar/SearchBar.d.ts +4 -4
- package/dist/components/Select/Select.d.ts +10 -6
- package/dist/components/Select/SelectTypes.d.ts +4 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +4 -3
- 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 +2 -2
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Tabs/Tabs.d.ts +4 -3
- package/dist/components/Template/Template.d.ts +4 -3
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +5 -5
- package/dist/components/Toggle/Toggle.d.ts +3 -4
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +1767 -1180
- 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 +1774 -1188
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/useCarouselStyles.d.ts +3 -2
- package/dist/hooks/useNYPLTheme.d.ts +12 -0
- package/dist/index.d.ts +5 -2
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +10 -2
- package/dist/theme/components/card.d.ts +42 -22
- package/dist/theme/components/checkbox.d.ts +5 -4
- package/dist/theme/components/checkboxGroup.d.ts +1 -1
- 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 +23 -17
- 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 +20 -14
- package/dist/theme/components/label.d.ts +9 -10
- package/dist/theme/components/list.d.ts +99 -9
- package/dist/theme/components/radio.d.ts +6 -4
- package/dist/theme/components/radioGroup.d.ts +1 -1
- package/dist/theme/components/select.d.ts +28 -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 +7 -4
- 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 +17 -19
- package/src/components/Accordion/Accordion.stories.mdx +9 -9
- package/src/components/Accordion/Accordion.test.tsx +21 -0
- package/src/components/Accordion/Accordion.tsx +13 -9
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +276 -27
- package/src/components/Autosuggest/Autosuggest.stories.mdx +4 -3
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +21 -5
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +52 -31
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +8 -7
- 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 +287 -194
- package/src/components/Card/Card.test.tsx +102 -0
- package/src/components/Card/Card.tsx +73 -32
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +196 -36
- package/src/components/Chakra/Grid.stories.mdx +4 -4
- package/src/components/Checkbox/Checkbox.stories.mdx +62 -10
- package/src/components/Checkbox/Checkbox.test.tsx +32 -9
- package/src/components/Checkbox/Checkbox.tsx +20 -15
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +134 -7
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +65 -17
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +137 -81
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +31 -21
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +332 -97
- 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 +89 -13
- package/src/components/DatePicker/DatePicker.tsx +62 -56
- 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 +72 -39
- package/src/components/Form/Form.test.tsx +58 -15
- package/src/components/Form/Form.tsx +89 -67
- 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 +34 -6
- package/src/components/Grid/SimpleGrid.test.tsx +9 -0
- 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 +36 -3
- package/src/components/Heading/Heading.test.tsx +10 -0
- package/src/components/Heading/Heading.tsx +56 -50
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +26 -7
- 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 +125 -95
- package/src/components/Hero/Hero.test.tsx +33 -0
- package/src/components/Hero/Hero.tsx +135 -126
- 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 -19
- package/src/components/HorizontalRule/HorizontalRule.tsx +9 -26
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +18 -5
- package/src/components/Icons/Icon.stories.mdx +31 -6
- package/src/components/Icons/Icon.test.tsx +38 -0
- package/src/components/Icons/Icon.tsx +93 -76
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +129 -0
- package/src/components/Image/Image.stories.mdx +29 -5
- package/src/components/Image/Image.test.tsx +8 -0
- package/src/components/Image/Image.tsx +38 -26
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- 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 -15
- package/src/components/Link/Link.test.tsx +21 -22
- package/src/components/Link/Link.tsx +8 -8
- 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 +67 -19
- package/src/components/List/List.tsx +38 -25
- 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 +30 -6
- package/src/components/Logo/Logo.test.tsx +17 -0
- package/src/components/Logo/Logo.tsx +18 -6
- package/src/components/Logo/LogoSvgs.tsx +4 -0
- package/src/components/Logo/LogoTypes.tsx +2 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +73 -2
- package/src/components/Modal/Modal.stories.mdx +256 -136
- package/src/components/Modal/Modal.test.tsx +151 -9
- package/src/components/Modal/Modal.tsx +140 -20
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +25 -0
- package/src/components/Notification/Notification.stories.mdx +25 -1
- package/src/components/Notification/Notification.test.tsx +23 -0
- package/src/components/Notification/Notification.tsx +46 -44
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +158 -29
- package/src/components/Pagination/Pagination.stories.mdx +25 -6
- package/src/components/Pagination/Pagination.test.tsx +25 -0
- package/src/components/Pagination/Pagination.tsx +6 -6
- 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 +81 -11
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +17 -9
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +101 -14
- package/src/components/Radio/Radio.stories.mdx +64 -12
- package/src/components/Radio/Radio.test.tsx +28 -8
- package/src/components/Radio/Radio.tsx +66 -63
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +103 -6
- package/src/components/RadioGroup/RadioGroup.stories.mdx +224 -89
- package/src/components/RadioGroup/RadioGroup.test.tsx +122 -62
- package/src/components/RadioGroup/RadioGroup.tsx +106 -100
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +1236 -1020
- 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 +17 -8
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +1039 -0
- package/src/components/Select/Select.stories.mdx +128 -49
- package/src/components/Select/Select.test.tsx +63 -16
- package/src/components/Select/Select.tsx +131 -92
- package/src/components/Select/SelectTypes.tsx +5 -0
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +765 -425
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +42 -10
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +8 -0
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +76 -72
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +169 -10
- package/src/components/Slider/Slider.stories.mdx +91 -42
- package/src/components/Slider/Slider.test.tsx +65 -17
- package/src/components/Slider/Slider.tsx +26 -19
- 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 +16 -0
- 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 +131 -12
- package/src/components/StructuredContent/StructuredContent.test.tsx +34 -0
- package/src/components/StructuredContent/StructuredContent.tsx +80 -75
- 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 +1 -1
- 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 +30 -21
- package/src/components/Table/Table.stories.mdx +38 -11
- package/src/components/Table/Table.test.tsx +15 -0
- package/src/components/Table/Table.tsx +7 -7
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +408 -5
- package/src/components/Tabs/Tabs.stories.mdx +52 -3
- package/src/components/Tabs/Tabs.test.tsx +16 -0
- package/src/components/Tabs/Tabs.tsx +10 -6
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +394 -5
- package/src/components/Template/Template.stories.mdx +47 -43
- package/src/components/Template/Template.test.tsx +33 -0
- package/src/components/Template/Template.tsx +65 -60
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +191 -20
- package/src/components/Text/Text.stories.mdx +20 -1
- package/src/components/Text/Text.test.tsx +12 -0
- package/src/components/Text/Text.tsx +6 -4
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +21 -4
- package/src/components/TextInput/TextInput.stories.mdx +65 -19
- package/src/components/TextInput/TextInput.test.tsx +42 -28
- package/src/components/TextInput/TextInput.tsx +121 -113
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +96 -73
- package/src/components/Toggle/Toggle.stories.mdx +80 -22
- package/src/components/Toggle/Toggle.test.tsx +27 -9
- package/src/components/Toggle/Toggle.tsx +22 -18
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +128 -5
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +52 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +23 -0
- package/src/components/VideoPlayer/VideoPlayer.tsx +133 -126
- 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 +160 -41
- package/src/hooks/useCarouselStyles.stories.mdx +22 -2
- package/src/hooks/useCarouselStyles.ts +3 -2
- package/src/hooks/useNYPLTheme.stories.mdx +101 -0
- package/src/hooks/useNYPLTheme.ts +30 -6
- package/src/hooks/useWindowSize.stories.mdx +23 -0
- package/src/index.ts +5 -2
- package/src/styles/base/_place-holder.scss +1 -1
- package/src/styles.scss +0 -1
- package/src/theme/components/button.ts +15 -7
- package/src/theme/components/card.ts +30 -19
- package/src/theme/components/checkbox.ts +10 -8
- package/src/theme/components/checkboxGroup.ts +1 -1
- 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 +25 -20
- package/src/theme/components/heading.ts +1 -1
- package/src/theme/components/helperErrorText.ts +1 -0
- package/src/theme/components/hero.ts +13 -15
- package/src/theme/components/label.ts +4 -3
- package/src/theme/components/list.ts +73 -66
- package/src/theme/components/notification.ts +2 -2
- package/src/theme/components/radio.ts +9 -9
- package/src/theme/components/radioGroup.ts +1 -1
- package/src/theme/components/select.ts +31 -22
- 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 +17 -10
- 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 +1 -2
- package/dist/components/SearchBar/SearchBar.Test.d.ts +0 -1
- package/dist/helpers/generateUUID.d.ts +0 -1
- package/src/components/Modal/_Modal.scss +0 -18
- package/src/helpers/generateUUID.tsx +0 -5
|
@@ -1,14 +1,12 @@
|
|
|
1
|
+
import { As, Box, chakra, useStyleConfig } from "@chakra-ui/react";
|
|
1
2
|
import * as React from "react";
|
|
2
|
-
import { As, Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
3
|
|
|
4
4
|
import { ListTypes } from "./ListTypes";
|
|
5
5
|
import Heading from "../Heading/Heading";
|
|
6
6
|
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
interface DefinitionProps {
|
|
7
|
+
interface DescriptionProps {
|
|
10
8
|
term: string;
|
|
11
|
-
|
|
9
|
+
description: string | JSX.Element;
|
|
12
10
|
}
|
|
13
11
|
export interface ListProps {
|
|
14
12
|
/** Optionally pass in additional Chakra-based styles. */
|
|
@@ -21,36 +19,37 @@ export interface ListProps {
|
|
|
21
19
|
inline?: boolean;
|
|
22
20
|
/** Data to render if children are not passed. For `ListTypes.Ordered` and
|
|
23
21
|
* `ListTypes.Unordered` `List` types, the data structure is an array of
|
|
24
|
-
* strings to renders as `li` items. For `ListTypes.
|
|
25
|
-
* the data structure is an array of objects with `term` and `
|
|
22
|
+
* strings to renders as `li` items. For `ListTypes.Description` `List` types,
|
|
23
|
+
* the data structure is an array of objects with `term` and `description`
|
|
26
24
|
* properties to render `dt` and `dd` elements, respectively.
|
|
27
25
|
*/
|
|
28
|
-
listItems?: (string | JSX.Element |
|
|
26
|
+
listItems?: (string | JSX.Element | DescriptionProps)[];
|
|
29
27
|
/** Remove list styling. */
|
|
30
28
|
noStyling?: boolean;
|
|
31
29
|
/** An optional title that will appear over the list. This prop only applies
|
|
32
|
-
* to
|
|
30
|
+
* to Description Lists. */
|
|
33
31
|
title?: string;
|
|
34
|
-
/** The type of list: Ordered, Unordered, or
|
|
32
|
+
/** The type of list: Ordered, Unordered, or Description. Unordered by default. */
|
|
35
33
|
type: ListTypes;
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
/**
|
|
39
|
-
* A component that renders list item `li` elements or
|
|
37
|
+
* A component that renders list item `li` elements or description item `dt`
|
|
40
38
|
* and `dd` elements based on the `type` prop. Note that the `title` prop will
|
|
41
|
-
* only display for the `
|
|
39
|
+
* only display for the `Description` list type.
|
|
42
40
|
*/
|
|
43
|
-
export
|
|
41
|
+
export const List = chakra((props: React.PropsWithChildren<ListProps>) => {
|
|
44
42
|
const {
|
|
45
43
|
additionalStyles = {},
|
|
46
44
|
children,
|
|
47
45
|
className,
|
|
48
|
-
id
|
|
46
|
+
id,
|
|
49
47
|
inline = false,
|
|
50
48
|
listItems,
|
|
51
49
|
noStyling = false,
|
|
52
50
|
title,
|
|
53
51
|
type = ListTypes.Unordered,
|
|
52
|
+
...rest
|
|
54
53
|
} = props;
|
|
55
54
|
const styles = useStyleConfig("List", { inline, noStyling, variant: type });
|
|
56
55
|
const finalStyles = { ...styles, ...additionalStyles };
|
|
@@ -78,7 +77,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
78
77
|
* first, otherwise it will check and render the data passed into the
|
|
79
78
|
* `listItems` props based on the `ListType` type. If it is of type "Unordered"
|
|
80
79
|
* or "Ordered", it will return `li` elements. Otherwise, it will return a
|
|
81
|
-
* combination of `dt` and `dd` elements for the "
|
|
80
|
+
* combination of `dt` and `dd` elements for the "Description" type.
|
|
82
81
|
*/
|
|
83
82
|
const listChildrenElms = (listType: ListTypes) => {
|
|
84
83
|
if (children) {
|
|
@@ -86,10 +85,10 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
86
85
|
}
|
|
87
86
|
if (listType === ListTypes.Ordered || listType === ListTypes.Unordered) {
|
|
88
87
|
return listItems.map((item, i) => <li key={i}>{item}</li>);
|
|
89
|
-
} else if (listType === ListTypes.
|
|
90
|
-
return (listItems as
|
|
88
|
+
} else if (listType === ListTypes.Description) {
|
|
89
|
+
return (listItems as DescriptionProps[]).map((item, i) => [
|
|
91
90
|
<dt key={`${i}-term`}>{item.term}</dt>,
|
|
92
|
-
<dd key={`${i}-
|
|
91
|
+
<dd key={`${i}-des`}>{item.description}</dd>,
|
|
93
92
|
]);
|
|
94
93
|
}
|
|
95
94
|
return null;
|
|
@@ -111,7 +110,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
111
110
|
* Checks for `dt` and `dd` elements and consoles a warning if the
|
|
112
111
|
* children are different HTML elements.
|
|
113
112
|
*/
|
|
114
|
-
const
|
|
113
|
+
const checkDescriptionChildrenError = () => {
|
|
115
114
|
React.Children.map(children, function (child: React.ReactElement) {
|
|
116
115
|
if (
|
|
117
116
|
child.type !== "dt" &&
|
|
@@ -122,7 +121,7 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
122
121
|
child.props.mdxType !== React.Fragment
|
|
123
122
|
) {
|
|
124
123
|
console.warn(
|
|
125
|
-
"NYPL Reservoir List: Direct children of `List` (
|
|
124
|
+
"NYPL Reservoir List: Direct children of `List` (description) must " +
|
|
126
125
|
"be `<dt>`s and `<dd>`s."
|
|
127
126
|
);
|
|
128
127
|
}
|
|
@@ -132,14 +131,26 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
132
131
|
if (type === ListTypes.Ordered || type === ListTypes.Unordered) {
|
|
133
132
|
checkListChildrenError(type);
|
|
134
133
|
listElement = (
|
|
135
|
-
<Box
|
|
134
|
+
<Box
|
|
135
|
+
as={type as As}
|
|
136
|
+
id={id}
|
|
137
|
+
className={className}
|
|
138
|
+
__css={finalStyles}
|
|
139
|
+
{...rest}
|
|
140
|
+
>
|
|
136
141
|
{listChildrenElms(type)}
|
|
137
142
|
</Box>
|
|
138
143
|
);
|
|
139
|
-
} else if (type === ListTypes.
|
|
140
|
-
|
|
144
|
+
} else if (type === ListTypes.Description) {
|
|
145
|
+
checkDescriptionChildrenError();
|
|
141
146
|
listElement = (
|
|
142
|
-
<Box
|
|
147
|
+
<Box
|
|
148
|
+
as="section"
|
|
149
|
+
id={id}
|
|
150
|
+
className={className}
|
|
151
|
+
__css={finalStyles}
|
|
152
|
+
{...rest}
|
|
153
|
+
>
|
|
143
154
|
{title && (
|
|
144
155
|
<Heading id={`${id}-heading`} level={HeadingLevels.Two}>
|
|
145
156
|
{title}
|
|
@@ -151,4 +162,6 @@ export default function List(props: React.PropsWithChildren<ListProps>) {
|
|
|
151
162
|
}
|
|
152
163
|
|
|
153
164
|
return listElement;
|
|
154
|
-
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
export default List;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`List Renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<ul
|
|
5
|
-
className="css-
|
|
5
|
+
className="css-1xdhyk6"
|
|
6
6
|
id="unordered"
|
|
7
7
|
>
|
|
8
8
|
<li>
|
|
@@ -22,7 +22,7 @@ exports[`List Renders the UI snapshot correctly 1`] = `
|
|
|
22
22
|
|
|
23
23
|
exports[`List Renders the UI snapshot correctly 2`] = `
|
|
24
24
|
<ul
|
|
25
|
-
className="css-
|
|
25
|
+
className="css-1xdhyk6"
|
|
26
26
|
id="ordered"
|
|
27
27
|
>
|
|
28
28
|
<li>
|
|
@@ -42,7 +42,7 @@ exports[`List Renders the UI snapshot correctly 2`] = `
|
|
|
42
42
|
|
|
43
43
|
exports[`List Renders the UI snapshot correctly 3`] = `
|
|
44
44
|
<ol
|
|
45
|
-
className="css-
|
|
45
|
+
className="css-1xdhyk6"
|
|
46
46
|
id="unordered-no-styling"
|
|
47
47
|
>
|
|
48
48
|
<li>
|
|
@@ -62,7 +62,7 @@ exports[`List Renders the UI snapshot correctly 3`] = `
|
|
|
62
62
|
|
|
63
63
|
exports[`List Renders the UI snapshot correctly 4`] = `
|
|
64
64
|
<ol
|
|
65
|
-
className="css-
|
|
65
|
+
className="css-1xdhyk6"
|
|
66
66
|
id="ordered-no-styling"
|
|
67
67
|
>
|
|
68
68
|
<li>
|
|
@@ -82,12 +82,114 @@ exports[`List Renders the UI snapshot correctly 4`] = `
|
|
|
82
82
|
|
|
83
83
|
exports[`List Renders the UI snapshot correctly 5`] = `
|
|
84
84
|
<section
|
|
85
|
-
className="css-
|
|
86
|
-
id="
|
|
85
|
+
className="css-1xdhyk6"
|
|
86
|
+
id="description"
|
|
87
87
|
>
|
|
88
88
|
<h2
|
|
89
|
-
className="chakra-heading css-
|
|
90
|
-
id="
|
|
89
|
+
className="chakra-heading css-1xdhyk6"
|
|
90
|
+
id="description-heading"
|
|
91
|
+
>
|
|
92
|
+
Animal Crossing Fish
|
|
93
|
+
</h2>
|
|
94
|
+
<dl>
|
|
95
|
+
<dt>
|
|
96
|
+
Mahi-mahi
|
|
97
|
+
</dt>
|
|
98
|
+
<dd>
|
|
99
|
+
<p>
|
|
100
|
+
The mahi-mahi is an ocean fish known...
|
|
101
|
+
</p>
|
|
102
|
+
</dd>
|
|
103
|
+
<dt>
|
|
104
|
+
Golden trout
|
|
105
|
+
</dt>
|
|
106
|
+
<dd>
|
|
107
|
+
The golden trout is a beautifully colored fish...
|
|
108
|
+
</dd>
|
|
109
|
+
</dl>
|
|
110
|
+
</section>
|
|
111
|
+
`;
|
|
112
|
+
|
|
113
|
+
exports[`List Renders the UI snapshot correctly 6`] = `
|
|
114
|
+
<ul
|
|
115
|
+
className="css-kle7zy"
|
|
116
|
+
id="chakra"
|
|
117
|
+
>
|
|
118
|
+
<li>
|
|
119
|
+
Mahi-mahi
|
|
120
|
+
</li>
|
|
121
|
+
<li>
|
|
122
|
+
Golden trout
|
|
123
|
+
</li>
|
|
124
|
+
<li>
|
|
125
|
+
Rainbowfish
|
|
126
|
+
</li>
|
|
127
|
+
<li>
|
|
128
|
+
Suckerfish
|
|
129
|
+
</li>
|
|
130
|
+
</ul>
|
|
131
|
+
`;
|
|
132
|
+
|
|
133
|
+
exports[`List Renders the UI snapshot correctly 7`] = `
|
|
134
|
+
<ul
|
|
135
|
+
className="css-1xdhyk6"
|
|
136
|
+
data-testid="other"
|
|
137
|
+
id="other"
|
|
138
|
+
>
|
|
139
|
+
<li>
|
|
140
|
+
Mahi-mahi
|
|
141
|
+
</li>
|
|
142
|
+
<li>
|
|
143
|
+
Golden trout
|
|
144
|
+
</li>
|
|
145
|
+
<li>
|
|
146
|
+
Rainbowfish
|
|
147
|
+
</li>
|
|
148
|
+
<li>
|
|
149
|
+
Suckerfish
|
|
150
|
+
</li>
|
|
151
|
+
</ul>
|
|
152
|
+
`;
|
|
153
|
+
|
|
154
|
+
exports[`List Renders the UI snapshot correctly 8`] = `
|
|
155
|
+
<section
|
|
156
|
+
className="css-kle7zy"
|
|
157
|
+
id="chakra"
|
|
158
|
+
>
|
|
159
|
+
<h2
|
|
160
|
+
className="chakra-heading css-1xdhyk6"
|
|
161
|
+
id="chakra-heading"
|
|
162
|
+
>
|
|
163
|
+
Animal Crossing Fish
|
|
164
|
+
</h2>
|
|
165
|
+
<dl>
|
|
166
|
+
<dt>
|
|
167
|
+
Mahi-mahi
|
|
168
|
+
</dt>
|
|
169
|
+
<dd>
|
|
170
|
+
<p>
|
|
171
|
+
The mahi-mahi is an ocean fish known...
|
|
172
|
+
</p>
|
|
173
|
+
</dd>
|
|
174
|
+
<dt>
|
|
175
|
+
Golden trout
|
|
176
|
+
</dt>
|
|
177
|
+
<dd>
|
|
178
|
+
The golden trout is a beautifully colored fish...
|
|
179
|
+
</dd>
|
|
180
|
+
</dl>
|
|
181
|
+
</section>
|
|
182
|
+
`;
|
|
183
|
+
|
|
184
|
+
exports[`List Renders the UI snapshot correctly 9`] = `
|
|
185
|
+
<section
|
|
186
|
+
className="css-1xdhyk6"
|
|
187
|
+
data-testid="other"
|
|
188
|
+
id="other"
|
|
189
|
+
>
|
|
190
|
+
<h2
|
|
191
|
+
className="chakra-heading css-1xdhyk6"
|
|
192
|
+
id="other-heading"
|
|
91
193
|
>
|
|
92
194
|
Animal Crossing Fish
|
|
93
195
|
</h2>
|
|
@@ -57,10 +57,23 @@ export const sizesEnumValues = getStorybookEnumValues(LogoSizes, "LogoSizes");
|
|
|
57
57
|
| Component Version | DS Version |
|
|
58
58
|
| ----------------- | ---------- |
|
|
59
59
|
| Added | `0.25.9` |
|
|
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
|
+
- [Logo Sizes](#logo-sizes)
|
|
68
|
+
- [All Logos](#all-logos)
|
|
69
|
+
- [Custom Logos](#custom-logos)
|
|
70
|
+
|
|
71
|
+
## Overview
|
|
61
72
|
|
|
62
73
|
<Description of={Logo} />
|
|
63
74
|
|
|
75
|
+
## Component Props
|
|
76
|
+
|
|
64
77
|
<Canvas withToolbar>
|
|
65
78
|
<Story
|
|
66
79
|
name="Logo with Controls"
|
|
@@ -142,11 +155,22 @@ export const allLogosGrid = (list) => (
|
|
|
142
155
|
|
|
143
156
|
## Accessibility
|
|
144
157
|
|
|
145
|
-
For accessibility purposes, every DS `Logo` will
|
|
146
|
-
its `svg` file name in the `title` element. The
|
|
147
|
-
is the logo's code name. Pass in better
|
|
148
|
-
when using the `Logo` component in your
|
|
149
|
-
a better descriptive title for the
|
|
158
|
+
For accessibility purposes, every Reservoir Design System (DS) `Logo` will
|
|
159
|
+
render the `svg` element with its `svg` file name in the `title` element. The
|
|
160
|
+
default text in the `title` element is the logo's code name. Pass in better
|
|
161
|
+
descriptive text in the `title` prop when using the `Logo` component in your
|
|
162
|
+
application. This will give screenreaders a better descriptive title for the
|
|
163
|
+
`svg` graphic.
|
|
164
|
+
|
|
165
|
+
`Logos`s are decorative by default. This means that they are presentational and
|
|
166
|
+
screenreaders will not read them because the `aria-hidden` attribute is set to
|
|
167
|
+
`true`.
|
|
168
|
+
|
|
169
|
+
Resources:
|
|
170
|
+
|
|
171
|
+
- [W3C Design System SVG Icons](https://design-system.w3.org/styles/svg-icons.html)
|
|
172
|
+
- [CSS-Tricks Accessible SVG Icons](https://css-tricks.com/accessible-svg-icons/)
|
|
173
|
+
- [Chakra UI Icon](https://chakra-ui.com/docs/components/media-and-icons/icon)
|
|
150
174
|
|
|
151
175
|
## Logo Sizes
|
|
152
176
|
|
|
@@ -101,8 +101,25 @@ describe("Logo", () => {
|
|
|
101
101
|
/>
|
|
102
102
|
)
|
|
103
103
|
.toJSON();
|
|
104
|
+
const withChakraProps = renderer
|
|
105
|
+
.create(
|
|
106
|
+
<Logo
|
|
107
|
+
id="chakra"
|
|
108
|
+
name={LogoNames.NYPLBlack}
|
|
109
|
+
p="20px"
|
|
110
|
+
color="ui.error.primary"
|
|
111
|
+
/>
|
|
112
|
+
)
|
|
113
|
+
.toJSON();
|
|
114
|
+
const withOtherProps = renderer
|
|
115
|
+
.create(
|
|
116
|
+
<Logo id="props" name={LogoNames.NYPLBlack} data-testid="props" />
|
|
117
|
+
)
|
|
118
|
+
.toJSON();
|
|
104
119
|
|
|
105
120
|
expect(standard).toMatchSnapshot();
|
|
106
121
|
expect(withCustomSize).toMatchSnapshot();
|
|
122
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
123
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
107
124
|
});
|
|
108
125
|
});
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box,
|
|
3
|
+
chakra,
|
|
4
|
+
Icon as ChakraIcon,
|
|
5
|
+
useStyleConfig,
|
|
6
|
+
} from "@chakra-ui/react";
|
|
1
7
|
import * as React from "react";
|
|
2
|
-
import { Icon as ChakraIcon, Box, useStyleConfig } from "@chakra-ui/react";
|
|
3
8
|
|
|
4
|
-
import generateUUID from "../../helpers/generateUUID";
|
|
5
9
|
import { LogoNames, LogoSizes } from "./LogoTypes";
|
|
6
10
|
import logoSvgs from "./LogoSvgs";
|
|
7
11
|
|
|
@@ -29,16 +33,17 @@ export interface LogoProps {
|
|
|
29
33
|
* The `Logo` component renders SVG-based logos and color variants that are
|
|
30
34
|
* commonly used by the New York Public Library.
|
|
31
35
|
*/
|
|
32
|
-
export
|
|
36
|
+
export const Logo = chakra((props: React.PropsWithChildren<LogoProps>) => {
|
|
33
37
|
const {
|
|
34
38
|
additionalStyles = {},
|
|
35
39
|
children,
|
|
36
40
|
className,
|
|
37
41
|
decorative = false,
|
|
38
|
-
id
|
|
42
|
+
id,
|
|
39
43
|
name,
|
|
40
44
|
size = LogoSizes.Medium,
|
|
41
45
|
title = `${name} logo`,
|
|
46
|
+
...rest
|
|
42
47
|
} = props;
|
|
43
48
|
const styles = useStyleConfig("Logo", {
|
|
44
49
|
size,
|
|
@@ -49,6 +54,7 @@ export default function Logo(props: React.PropsWithChildren<LogoProps>) {
|
|
|
49
54
|
id,
|
|
50
55
|
role: "img",
|
|
51
56
|
title,
|
|
57
|
+
...rest,
|
|
52
58
|
};
|
|
53
59
|
let childSVG = null;
|
|
54
60
|
|
|
@@ -98,5 +104,11 @@ export default function Logo(props: React.PropsWithChildren<LogoProps>) {
|
|
|
98
104
|
);
|
|
99
105
|
}
|
|
100
106
|
|
|
101
|
-
return
|
|
102
|
-
}
|
|
107
|
+
return (
|
|
108
|
+
<Box __css={styles} {...rest}>
|
|
109
|
+
{childSVG}
|
|
110
|
+
</Box>
|
|
111
|
+
);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
export default Logo;
|
|
@@ -23,6 +23,8 @@ import logo_qpl_alt_white from "../../../icons/svg/logo_qpl_alt_white.svg";
|
|
|
23
23
|
import logo_qpl_black from "../../../icons/svg/logo_qpl_black.svg";
|
|
24
24
|
import logo_qpl_color from "../../../icons/svg/logo_qpl_color.svg";
|
|
25
25
|
import logo_qpl_white from "../../../icons/svg/logo_qpl_white.svg";
|
|
26
|
+
import logo_reservoir_icon_color from "../../../icons/svg/logo_reservoir_icon_color.svg";
|
|
27
|
+
import logo_reservoir_vertical_color from "../../../icons/svg/logo_reservoir_vertical_color.svg";
|
|
26
28
|
import logo_schomburg_black from "../../../icons/svg/logo_schomburg_black.svg";
|
|
27
29
|
import logo_schomburg_circle_black from "../../../icons/svg/logo_schomburg_circle_black.svg";
|
|
28
30
|
import logo_schomburg_circle_color from "../../../icons/svg/logo_schomburg_circle_color.svg";
|
|
@@ -62,6 +64,8 @@ export default {
|
|
|
62
64
|
logo_qpl_black,
|
|
63
65
|
logo_qpl_color,
|
|
64
66
|
logo_qpl_white,
|
|
67
|
+
logo_reservoir_icon_color,
|
|
68
|
+
logo_reservoir_vertical_color,
|
|
65
69
|
logo_schomburg_black,
|
|
66
70
|
logo_schomburg_circle_black,
|
|
67
71
|
logo_schomburg_circle_color,
|
|
@@ -38,6 +38,8 @@ export enum LogoNames {
|
|
|
38
38
|
QueensPublicLibraryWhite = "logo_qpl_white",
|
|
39
39
|
QueensPublicLibraryAltBlack = "logo_qpl_alt_black",
|
|
40
40
|
QueensPublicLibraryAltWhite = "logo_qpl_alt_white",
|
|
41
|
+
ReservoirIconColor = "logo_reservoir_icon_color",
|
|
42
|
+
ReservoirVerticalColor = "logo_reservoir_vertical_color",
|
|
41
43
|
SchomburgColor = "logo_schomburg_color",
|
|
42
44
|
SchomburgBlack = "logo_schomburg_black",
|
|
43
45
|
SchomburgWhite = "logo_schomburg_white",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`Logo renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<svg
|
|
5
5
|
aria-hidden={false}
|
|
6
|
-
className="chakra-icon css-
|
|
6
|
+
className="chakra-icon css-1grhd2q"
|
|
7
7
|
focusable={false}
|
|
8
8
|
id="test-logo"
|
|
9
9
|
role="img"
|
|
@@ -38,7 +38,7 @@ exports[`Logo renders the UI snapshot correctly 1`] = `
|
|
|
38
38
|
exports[`Logo renders the UI snapshot correctly 2`] = `
|
|
39
39
|
<svg
|
|
40
40
|
aria-hidden={false}
|
|
41
|
-
className="chakra-icon css-
|
|
41
|
+
className="chakra-icon css-1grhd2q"
|
|
42
42
|
focusable={false}
|
|
43
43
|
id="test-logo-size"
|
|
44
44
|
role="img"
|
|
@@ -69,3 +69,74 @@ exports[`Logo renders the UI snapshot correctly 2`] = `
|
|
|
69
69
|
</g>
|
|
70
70
|
</svg>
|
|
71
71
|
`;
|
|
72
|
+
|
|
73
|
+
exports[`Logo renders the UI snapshot correctly 3`] = `
|
|
74
|
+
<svg
|
|
75
|
+
aria-hidden={false}
|
|
76
|
+
className="chakra-icon css-1ayys74"
|
|
77
|
+
focusable={false}
|
|
78
|
+
id="chakra"
|
|
79
|
+
role="img"
|
|
80
|
+
title="logo_nypl_full_black logo"
|
|
81
|
+
viewBox="0 0 24 24"
|
|
82
|
+
>
|
|
83
|
+
<g
|
|
84
|
+
stroke="currentColor"
|
|
85
|
+
strokeWidth="1.5"
|
|
86
|
+
>
|
|
87
|
+
<path
|
|
88
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
89
|
+
fill="none"
|
|
90
|
+
strokeLinecap="round"
|
|
91
|
+
/>
|
|
92
|
+
<path
|
|
93
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
94
|
+
fill="currentColor"
|
|
95
|
+
strokeLinecap="round"
|
|
96
|
+
/>
|
|
97
|
+
<circle
|
|
98
|
+
cx="12"
|
|
99
|
+
cy="12"
|
|
100
|
+
fill="none"
|
|
101
|
+
r="11.25"
|
|
102
|
+
strokeMiterlimit="10"
|
|
103
|
+
/>
|
|
104
|
+
</g>
|
|
105
|
+
</svg>
|
|
106
|
+
`;
|
|
107
|
+
|
|
108
|
+
exports[`Logo renders the UI snapshot correctly 4`] = `
|
|
109
|
+
<svg
|
|
110
|
+
aria-hidden={false}
|
|
111
|
+
className="chakra-icon css-1grhd2q"
|
|
112
|
+
data-testid="props"
|
|
113
|
+
focusable={false}
|
|
114
|
+
id="props"
|
|
115
|
+
role="img"
|
|
116
|
+
title="logo_nypl_full_black logo"
|
|
117
|
+
viewBox="0 0 24 24"
|
|
118
|
+
>
|
|
119
|
+
<g
|
|
120
|
+
stroke="currentColor"
|
|
121
|
+
strokeWidth="1.5"
|
|
122
|
+
>
|
|
123
|
+
<path
|
|
124
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
125
|
+
fill="none"
|
|
126
|
+
strokeLinecap="round"
|
|
127
|
+
/>
|
|
128
|
+
<path
|
|
129
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
130
|
+
fill="currentColor"
|
|
131
|
+
strokeLinecap="round"
|
|
132
|
+
/>
|
|
133
|
+
<circle
|
|
134
|
+
cx="12"
|
|
135
|
+
cy="12"
|
|
136
|
+
fill="none"
|
|
137
|
+
r="11.25"
|
|
138
|
+
strokeMiterlimit="10"
|
|
139
|
+
/>
|
|
140
|
+
</g>
|
|
141
|
+
</svg>
|
|
142
|
+
`;
|