@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
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
10
|
import Breadcrumbs from "./Breadcrumbs";
|
|
11
|
-
import {
|
|
11
|
+
import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
|
|
12
12
|
import Heading from "../Heading/Heading";
|
|
13
13
|
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
14
14
|
import Link from "../Link/Link";
|
|
@@ -17,8 +17,8 @@ import DSProvider from "../../theme/provider";
|
|
|
17
17
|
import { getStorybookEnumValues } from "../../utils/utils";
|
|
18
18
|
|
|
19
19
|
export const enumValues = getStorybookEnumValues(
|
|
20
|
-
|
|
21
|
-
"
|
|
20
|
+
BreadcrumbsTypes,
|
|
21
|
+
"BreadcrumbsTypes"
|
|
22
22
|
);
|
|
23
23
|
|
|
24
24
|
<Meta
|
|
@@ -36,7 +36,7 @@ export const enumValues = getStorybookEnumValues(
|
|
|
36
36
|
additionalStyles: { control: false },
|
|
37
37
|
breadcrumbsData: { control: false },
|
|
38
38
|
className: { control: false },
|
|
39
|
-
|
|
39
|
+
breadcrumbsType: {
|
|
40
40
|
control: { type: "select" },
|
|
41
41
|
options: enumValues.options,
|
|
42
42
|
},
|
|
@@ -49,7 +49,17 @@ export const enumValues = getStorybookEnumValues(
|
|
|
49
49
|
| Component Version | DS Version |
|
|
50
50
|
| ----------------- | ---------- |
|
|
51
51
|
| Added | `0.0.3` |
|
|
52
|
-
| Latest | `0.
|
|
52
|
+
| Latest | `0.26.0` |
|
|
53
|
+
|
|
54
|
+
## Table of Contents
|
|
55
|
+
|
|
56
|
+
- [Overview](#overview)
|
|
57
|
+
- [Component Props](#component-props)
|
|
58
|
+
- [Accessibility](#accessibility)
|
|
59
|
+
- [Long Titles](#long-titles)
|
|
60
|
+
- [Color Variations](#color-variations)
|
|
61
|
+
|
|
62
|
+
## Overview
|
|
53
63
|
|
|
54
64
|
<Description of={Breadcrumbs} />
|
|
55
65
|
|
|
@@ -57,6 +67,8 @@ The `Breadcrumbs` component is a navigation element that provides a breadcrumb
|
|
|
57
67
|
path that reflects the site structure and allows a user to navigate to any page
|
|
58
68
|
available in the breadcrumb hierarchy.
|
|
59
69
|
|
|
70
|
+
## Component Props
|
|
71
|
+
|
|
60
72
|
<Canvas withToolbar>
|
|
61
73
|
<Story
|
|
62
74
|
name="Breadcrumbs with Controls"
|
|
@@ -68,14 +80,14 @@ available in the breadcrumb hierarchy.
|
|
|
68
80
|
{ url: "#", text: "Grandchild" },
|
|
69
81
|
],
|
|
70
82
|
className: undefined,
|
|
71
|
-
|
|
83
|
+
breadcrumbsType: undefined,
|
|
72
84
|
id: "breadcrumbs-id",
|
|
73
85
|
}}
|
|
74
86
|
>
|
|
75
87
|
{(args) => (
|
|
76
88
|
<Breadcrumbs
|
|
77
89
|
{...args}
|
|
78
|
-
|
|
90
|
+
breadcrumbsType={enumValues.getValue(args.breadcrumbsType)}
|
|
79
91
|
/>
|
|
80
92
|
)}
|
|
81
93
|
</Story>
|
|
@@ -86,13 +98,17 @@ available in the breadcrumb hierarchy.
|
|
|
86
98
|
### Accessibility
|
|
87
99
|
|
|
88
100
|
Only one `Breadcrumbs` component should be rendered on a page. This is because
|
|
89
|
-
only one HTML `<nav>` element with `aria-label` attribute of
|
|
90
|
-
should be rendered. The DS `Breadcrumbs` component
|
|
91
|
-
so only one component must be rendered on a page.
|
|
101
|
+
only one HTML `<nav>` element with an `aria-label` attribute value of
|
|
102
|
+
"Breadcrumbs" should be rendered on a page. The DS `Breadcrumbs` component
|
|
103
|
+
renders this HTML landmark so only one component must be rendered on a page.
|
|
104
|
+
|
|
105
|
+
Internally, links are organized in a `ul` list element. The current page link is
|
|
106
|
+
denoted by an `aria-current` attribute value of "page".
|
|
92
107
|
|
|
93
108
|
- [W3 Breadcrumbs Practice](https://www.w3.org/TR/wai-aria-practices/examples/breadcrumb/index.html)
|
|
109
|
+
- [Chakra UI Breadcrumb](https://chakra-ui.com/docs/components/navigation/breadcrumb)
|
|
94
110
|
|
|
95
|
-
|
|
111
|
+
## Long Titles
|
|
96
112
|
|
|
97
113
|
<Canvas>
|
|
98
114
|
<DSProvider>
|
|
@@ -115,13 +131,15 @@ so only one component must be rendered on a page.
|
|
|
115
131
|
|
|
116
132
|
## Color Variations
|
|
117
133
|
|
|
118
|
-
The `Breadcrumbs` component background color can be set using the `
|
|
134
|
+
The `Breadcrumbs` component background color can be set using the `breadcrumbsType`
|
|
135
|
+
prop and the `BreadcrumbsTypes` enum. If the `breadcrumbsType` prop is omitted,
|
|
136
|
+
the default background color is `black`.
|
|
119
137
|
|
|
120
138
|
<Canvas>
|
|
121
139
|
<Story
|
|
122
140
|
name="Color Variations"
|
|
123
141
|
args={{
|
|
124
|
-
|
|
142
|
+
breadcrumbsType: BreadcrumbsTypes.Blogs,
|
|
125
143
|
}}
|
|
126
144
|
>
|
|
127
145
|
{(args) => (
|
|
@@ -136,7 +154,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
136
154
|
text: "Grandchild",
|
|
137
155
|
},
|
|
138
156
|
]}
|
|
139
|
-
|
|
157
|
+
breadcrumbsType={args.breadcrumbsType}
|
|
140
158
|
/>
|
|
141
159
|
</>
|
|
142
160
|
)}
|
|
@@ -155,7 +173,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
155
173
|
text: "Grandchild",
|
|
156
174
|
},
|
|
157
175
|
]}
|
|
158
|
-
|
|
176
|
+
breadcrumbsType={BreadcrumbsTypes.BooksAndMore}
|
|
159
177
|
/>
|
|
160
178
|
</DSProvider>
|
|
161
179
|
</Canvas>
|
|
@@ -172,7 +190,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
172
190
|
text: "Grandchild",
|
|
173
191
|
},
|
|
174
192
|
]}
|
|
175
|
-
|
|
193
|
+
breadcrumbsType={BreadcrumbsTypes.Education}
|
|
176
194
|
/>
|
|
177
195
|
</DSProvider>
|
|
178
196
|
</Canvas>
|
|
@@ -189,7 +207,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
189
207
|
text: "Grandchild",
|
|
190
208
|
},
|
|
191
209
|
]}
|
|
192
|
-
|
|
210
|
+
breadcrumbsType={BreadcrumbsTypes.Locations}
|
|
193
211
|
/>
|
|
194
212
|
</DSProvider>
|
|
195
213
|
</Canvas>
|
|
@@ -206,7 +224,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
206
224
|
text: "Grandchild",
|
|
207
225
|
},
|
|
208
226
|
]}
|
|
209
|
-
|
|
227
|
+
breadcrumbsType={BreadcrumbsTypes.Research}
|
|
210
228
|
/>
|
|
211
229
|
</DSProvider>
|
|
212
230
|
</Canvas>
|
|
@@ -223,7 +241,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
223
241
|
text: "Grandchild",
|
|
224
242
|
},
|
|
225
243
|
]}
|
|
226
|
-
|
|
244
|
+
breadcrumbsType={BreadcrumbsTypes.WhatsOn}
|
|
227
245
|
/>
|
|
228
246
|
</DSProvider>
|
|
229
247
|
</Canvas>
|
|
@@ -4,7 +4,7 @@ import renderer from "react-test-renderer";
|
|
|
4
4
|
import { axe } from "jest-axe";
|
|
5
5
|
|
|
6
6
|
import Breadcrumbs from "./Breadcrumbs";
|
|
7
|
-
import {
|
|
7
|
+
import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
|
|
8
8
|
|
|
9
9
|
describe("Breadcrumbs Accessibility", () => {
|
|
10
10
|
const breadcrumbsData = [
|
|
@@ -34,6 +34,37 @@ describe("Breadcrumbs Accessibility", () => {
|
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
+
describe("Breadcrumbs", () => {
|
|
38
|
+
const breadcrumbsData = [
|
|
39
|
+
{ url: "#string1", text: "string1" },
|
|
40
|
+
{ url: "#string2", text: "string2" },
|
|
41
|
+
{ url: "#string3", text: "string3" },
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
it("Renders a tag with custom text", () => {
|
|
45
|
+
render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
|
|
46
|
+
|
|
47
|
+
// The last breadcrumb (the active page) is not a link.
|
|
48
|
+
expect(screen.getAllByRole("link")).toHaveLength(2);
|
|
49
|
+
expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
|
|
50
|
+
expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
|
|
51
|
+
expect(screen.getByText(/string3/)).toBeInTheDocument();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("Renders icon", () => {
|
|
55
|
+
const { container } = render(
|
|
56
|
+
<Breadcrumbs breadcrumbsData={breadcrumbsData} />
|
|
57
|
+
);
|
|
58
|
+
expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("Throws error when nothing is passed into Breadcrumb", () => {
|
|
62
|
+
expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
|
|
63
|
+
"NYPL Reservoir Breadcrumbs: No data was passed to the `breadcrumbsData` prop."
|
|
64
|
+
);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
37
68
|
describe("Breadcrumbs Snapshot", () => {
|
|
38
69
|
it("Renders the UI snapshot correctly", () => {
|
|
39
70
|
const breadcrumbsData = [
|
|
@@ -51,7 +82,7 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
51
82
|
.create(
|
|
52
83
|
<Breadcrumbs
|
|
53
84
|
breadcrumbsData={breadcrumbsData}
|
|
54
|
-
|
|
85
|
+
breadcrumbsType={BreadcrumbsTypes.BooksAndMore}
|
|
55
86
|
id="breadcrumbs-test"
|
|
56
87
|
/>
|
|
57
88
|
)
|
|
@@ -60,7 +91,7 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
60
91
|
.create(
|
|
61
92
|
<Breadcrumbs
|
|
62
93
|
breadcrumbsData={breadcrumbsData}
|
|
63
|
-
|
|
94
|
+
breadcrumbsType={BreadcrumbsTypes.Blogs}
|
|
64
95
|
id="breadcrumbs-test"
|
|
65
96
|
/>
|
|
66
97
|
)
|
|
@@ -69,7 +100,7 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
69
100
|
.create(
|
|
70
101
|
<Breadcrumbs
|
|
71
102
|
breadcrumbsData={breadcrumbsData}
|
|
72
|
-
|
|
103
|
+
breadcrumbsType={BreadcrumbsTypes.Blogs}
|
|
73
104
|
id="breadcrumbs-test"
|
|
74
105
|
/>
|
|
75
106
|
)
|
|
@@ -78,7 +109,7 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
78
109
|
.create(
|
|
79
110
|
<Breadcrumbs
|
|
80
111
|
breadcrumbsData={breadcrumbsData}
|
|
81
|
-
|
|
112
|
+
breadcrumbsType={BreadcrumbsTypes.Education}
|
|
82
113
|
id="breadcrumbs-test"
|
|
83
114
|
/>
|
|
84
115
|
)
|
|
@@ -94,6 +125,25 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
94
125
|
/>
|
|
95
126
|
)
|
|
96
127
|
.toJSON();
|
|
128
|
+
const withChakraProps = renderer
|
|
129
|
+
.create(
|
|
130
|
+
<Breadcrumbs
|
|
131
|
+
breadcrumbsData={breadcrumbsData}
|
|
132
|
+
id="breadcrumbs-test"
|
|
133
|
+
p="s"
|
|
134
|
+
color="ui.error.primary"
|
|
135
|
+
/>
|
|
136
|
+
)
|
|
137
|
+
.toJSON();
|
|
138
|
+
const withOtherProps = renderer
|
|
139
|
+
.create(
|
|
140
|
+
<Breadcrumbs
|
|
141
|
+
breadcrumbsData={breadcrumbsData}
|
|
142
|
+
id="breadcrumbs-test"
|
|
143
|
+
data-testid="testid"
|
|
144
|
+
/>
|
|
145
|
+
)
|
|
146
|
+
.toJSON();
|
|
97
147
|
|
|
98
148
|
expect(breadcrumbsSnapshot).toMatchSnapshot();
|
|
99
149
|
expect(breadcrumbsVariantColor).toMatchSnapshot();
|
|
@@ -101,36 +151,7 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
101
151
|
expect(breadcrumbsLocationsVariant).toMatchSnapshot();
|
|
102
152
|
expect(breadcrumbsEducationVariant).toMatchSnapshot();
|
|
103
153
|
expect(breadcrumbsAdditionalStyles).toMatchSnapshot();
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
describe("Breadcrumbs Testing", () => {
|
|
108
|
-
const breadcrumbsData = [
|
|
109
|
-
{ url: "#string1", text: "string1" },
|
|
110
|
-
{ url: "#string2", text: "string2" },
|
|
111
|
-
{ url: "#string3", text: "string3" },
|
|
112
|
-
];
|
|
113
|
-
|
|
114
|
-
it("Renders a tag with custom text", () => {
|
|
115
|
-
render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
|
|
116
|
-
|
|
117
|
-
// The last breadcrumb (the active page) is not a link.
|
|
118
|
-
expect(screen.getAllByRole("link")).toHaveLength(2);
|
|
119
|
-
expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
|
|
120
|
-
expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
|
|
121
|
-
expect(screen.getByText(/string3/)).toBeInTheDocument();
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
it("Renders icon", () => {
|
|
125
|
-
const { container } = render(
|
|
126
|
-
<Breadcrumbs breadcrumbsData={breadcrumbsData} />
|
|
127
|
-
);
|
|
128
|
-
expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it("Throws error when nothing is passed into Breadcrumb", () => {
|
|
132
|
-
expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
|
|
133
|
-
"You must use the `breadcrumbsData` prop to pass a data object to the Breadcrumbs component. That prop is current empty."
|
|
134
|
-
);
|
|
154
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
155
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
135
156
|
});
|
|
136
157
|
});
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
import {
|
|
3
2
|
Breadcrumb as ChakraBreadcrumb,
|
|
4
3
|
BreadcrumbItem,
|
|
5
4
|
BreadcrumbLink,
|
|
5
|
+
chakra,
|
|
6
6
|
useStyleConfig,
|
|
7
7
|
} from "@chakra-ui/react";
|
|
8
|
+
import * as React from "react";
|
|
8
9
|
|
|
9
10
|
import Icon from "../Icons/Icon";
|
|
10
11
|
import {
|
|
@@ -13,8 +14,7 @@ import {
|
|
|
13
14
|
IconSizes,
|
|
14
15
|
IconTypes,
|
|
15
16
|
} from "../Icons/IconTypes";
|
|
16
|
-
import
|
|
17
|
-
import { ColorVariants } from "./BreadcrumbsTypes";
|
|
17
|
+
import { BreadcrumbsTypes } from "./BreadcrumbsTypes";
|
|
18
18
|
import { getVariant } from "../../utils/utils";
|
|
19
19
|
|
|
20
20
|
export interface BreadcrumbsDataProps {
|
|
@@ -27,12 +27,12 @@ export interface BreadcrumbProps {
|
|
|
27
27
|
additionalStyles?: { [key: string]: any };
|
|
28
28
|
/** Breadcrumb links as an array */
|
|
29
29
|
breadcrumbsData: BreadcrumbsDataProps[];
|
|
30
|
+
/** Used to control how the `Hero` component will be rendered. */
|
|
31
|
+
breadcrumbsType?: BreadcrumbsTypes;
|
|
30
32
|
/** className you can add in addition to 'input' */
|
|
31
33
|
className?: string;
|
|
32
34
|
/** ID that other components can cross reference for accessibility purposes */
|
|
33
35
|
id?: string;
|
|
34
|
-
/** Used to control how the `Hero` component will be rendered. */
|
|
35
|
-
colorVariant?: ColorVariants;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
const getElementsFromData = (data, breadcrumbsID) => {
|
|
@@ -64,37 +64,38 @@ const getElementsFromData = (data, breadcrumbsID) => {
|
|
|
64
64
|
return breadcrumbItems;
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
export const Breadcrumbs = chakra((props: BreadcrumbProps) => {
|
|
68
68
|
const {
|
|
69
69
|
additionalStyles = {},
|
|
70
70
|
breadcrumbsData,
|
|
71
|
+
breadcrumbsType,
|
|
71
72
|
className,
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
id,
|
|
74
|
+
...rest
|
|
74
75
|
} = props;
|
|
75
|
-
const variant = getVariant(
|
|
76
|
+
const variant = getVariant(breadcrumbsType, BreadcrumbsTypes);
|
|
76
77
|
|
|
77
78
|
if (!breadcrumbsData || breadcrumbsData.length === 0) {
|
|
78
79
|
throw new Error(
|
|
79
|
-
"
|
|
80
|
+
"NYPL Reservoir Breadcrumbs: No data was passed to the `breadcrumbsData` prop."
|
|
80
81
|
);
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
const styles = useStyleConfig("Breadcrumb", { variant });
|
|
84
85
|
const finalStyles = { ...styles, ...additionalStyles };
|
|
85
86
|
const breadcrumbItems = getElementsFromData(breadcrumbsData, id);
|
|
86
|
-
const ariaAttrs = { "aria-label": "Breadcrumb" };
|
|
87
87
|
|
|
88
88
|
return (
|
|
89
89
|
<ChakraBreadcrumb
|
|
90
|
+
aria-label="Breadcrumb"
|
|
90
91
|
className={className}
|
|
91
92
|
id={id}
|
|
92
|
-
{...ariaAttrs}
|
|
93
93
|
__css={finalStyles}
|
|
94
|
+
{...rest}
|
|
94
95
|
>
|
|
95
96
|
{breadcrumbItems}
|
|
96
97
|
</ChakraBreadcrumb>
|
|
97
98
|
);
|
|
98
|
-
}
|
|
99
|
+
});
|
|
99
100
|
|
|
100
101
|
export default Breadcrumbs;
|