@nypl/design-system-react-components 0.25.11 → 0.26.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 +151 -0
- package/README.md +14 -26
- 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 +2 -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 +10 -7
- 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 +8 -0
- package/dist/components/Logo/LogoTypes.d.ts +10 -2
- package/dist/components/Notification/Notification.d.ts +7 -7
- package/dist/components/Pagination/Pagination.d.ts +8 -4
- 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 +5 -5
- 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 +18 -9
- 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 +2802 -1686
- 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 +2811 -1699
- 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 +6 -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 -6
- 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 +6 -14
- package/dist/theme/components/global.d.ts +37 -29
- package/dist/theme/components/globalMixins.d.ts +8 -8
- 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 +105 -9
- package/dist/theme/components/notification.d.ts +7 -4
- package/dist/theme/components/pagination.d.ts +2 -5
- package/dist/theme/components/radio.d.ts +10 -6
- package/dist/theme/components/radioGroup.d.ts +4 -2
- package/dist/theme/components/select.d.ts +38 -13
- package/dist/theme/components/skeletonLoader.d.ts +2 -2
- package/dist/theme/components/slider.d.ts +14 -7
- package/dist/theme/components/structuredContent.d.ts +197 -0
- package/dist/theme/components/textInput.d.ts +22 -14
- package/dist/theme/components/toggle.d.ts +25 -6
- package/dist/theme/foundations/global.d.ts +33 -3
- package/dist/theme/foundations/radii.d.ts +1 -0
- package/dist/theme/foundations/spacing.d.ts +46 -43
- package/dist/utils/utils.d.ts +10 -0
- 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 +53 -18
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +66 -35
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +14 -13
- package/src/components/Breadcrumbs/BreadcrumbsTypes.tsx +2 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +308 -10
- 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 +220 -100
- 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 +27 -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 +9 -6
- 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 +16 -0
- package/src/components/Logo/LogoTypes.tsx +9 -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 +34 -5
- package/src/components/Notification/Notification.test.tsx +43 -9
- package/src/components/Notification/Notification.tsx +59 -55
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +256 -32
- package/src/components/Pagination/Pagination.stories.mdx +76 -13
- package/src/components/Pagination/Pagination.test.tsx +116 -5
- package/src/components/Pagination/Pagination.tsx +54 -29
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +247 -30
- 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 -61
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +168 -10
- 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 +104 -39
- package/src/components/SearchBar/{SearchBar.Test.tsx → SearchBar.test.tsx} +66 -6
- package/src/components/SearchBar/SearchBar.tsx +23 -13
- 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 +34 -24
- 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 +9 -9
- 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 +34 -20
- 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 +86 -72
- 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 +31 -27
- package/src/components/Toggle/{ToggleSizes.tsx → ToggleTypes.tsx} +1 -1
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +195 -8
- 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 +51 -10
- 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 +3 -1
- package/src/styles.scss +0 -2
- package/src/theme/components/accordion.ts +7 -12
- package/src/theme/components/breadcrumb.ts +7 -0
- package/src/theme/components/button.ts +15 -7
- package/src/theme/components/card.ts +56 -36
- package/src/theme/components/checkbox.ts +12 -14
- 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 +3 -2
- package/src/theme/components/global.ts +42 -33
- package/src/theme/components/globalMixins.ts +8 -8
- 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 +76 -65
- package/src/theme/components/notification.ts +10 -7
- package/src/theme/components/pagination.ts +2 -5
- package/src/theme/components/progressIndicator.ts +3 -3
- package/src/theme/components/radio.ts +11 -14
- package/src/theme/components/radioGroup.ts +4 -2
- package/src/theme/components/select.ts +37 -18
- package/src/theme/components/skeletonLoader.ts +3 -3
- package/src/theme/components/slider.ts +19 -15
- 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 +76 -42
- package/src/theme/components/videoPlayer.ts +1 -1
- package/src/theme/foundations/colors.ts +20 -13
- package/src/theme/foundations/global.ts +17 -5
- package/src/theme/foundations/radii.ts +1 -0
- package/src/theme/foundations/spacing.ts +70 -22
- package/src/theme/foundations/typography.ts +3 -3
- package/src/utils/componentCategories.ts +28 -21
- package/src/utils/utils.ts +28 -0
- package/dist/components/Card/CardTypes.d.ts +0 -4
- package/dist/components/CheckboxGroup/CheckboxGroupLayoutTypes.d.ts +0 -4
- package/dist/components/Pagination/Pagination.stories.d.ts +0 -13
- 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/Pagination/Pagination.stories.tsx +0 -54
- package/src/components/RadioGroup/RadioGroupLayoutTypes.tsx +0 -4
- package/src/docs/Intro.stories.mdx +0 -53
- package/src/helpers/generateUUID.tsx +0 -5
- package/src/styles/base/_03-base.scss +0 -25
- package/src/styles/base/_04-focus.scss +0 -22
|
@@ -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,24 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
155
173
|
text: "Grandchild",
|
|
156
174
|
},
|
|
157
175
|
]}
|
|
158
|
-
|
|
176
|
+
breadcrumbsType={BreadcrumbsTypes.BooksAndMore}
|
|
177
|
+
/>
|
|
178
|
+
</DSProvider>
|
|
179
|
+
</Canvas>
|
|
180
|
+
|
|
181
|
+
<Canvas>
|
|
182
|
+
<DSProvider>
|
|
183
|
+
<Heading level={HeadingLevels.Three}>Education</Heading>
|
|
184
|
+
<Breadcrumbs
|
|
185
|
+
breadcrumbsData={[
|
|
186
|
+
{ url: "#", text: "Parent" },
|
|
187
|
+
{ url: "#", text: "Child" },
|
|
188
|
+
{
|
|
189
|
+
url: "#",
|
|
190
|
+
text: "Grandchild",
|
|
191
|
+
},
|
|
192
|
+
]}
|
|
193
|
+
breadcrumbsType={BreadcrumbsTypes.Education}
|
|
159
194
|
/>
|
|
160
195
|
</DSProvider>
|
|
161
196
|
</Canvas>
|
|
@@ -172,7 +207,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
172
207
|
text: "Grandchild",
|
|
173
208
|
},
|
|
174
209
|
]}
|
|
175
|
-
|
|
210
|
+
breadcrumbsType={BreadcrumbsTypes.Locations}
|
|
176
211
|
/>
|
|
177
212
|
</DSProvider>
|
|
178
213
|
</Canvas>
|
|
@@ -189,7 +224,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
189
224
|
text: "Grandchild",
|
|
190
225
|
},
|
|
191
226
|
]}
|
|
192
|
-
|
|
227
|
+
breadcrumbsType={BreadcrumbsTypes.Research}
|
|
193
228
|
/>
|
|
194
229
|
</DSProvider>
|
|
195
230
|
</Canvas>
|
|
@@ -206,7 +241,7 @@ The `Breadcrumbs` component background color can be set using the `colorVariant`
|
|
|
206
241
|
text: "Grandchild",
|
|
207
242
|
},
|
|
208
243
|
]}
|
|
209
|
-
|
|
244
|
+
breadcrumbsType={BreadcrumbsTypes.WhatsOn}
|
|
210
245
|
/>
|
|
211
246
|
</DSProvider>
|
|
212
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,16 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
69
100
|
.create(
|
|
70
101
|
<Breadcrumbs
|
|
71
102
|
breadcrumbsData={breadcrumbsData}
|
|
72
|
-
|
|
103
|
+
breadcrumbsType={BreadcrumbsTypes.Blogs}
|
|
104
|
+
id="breadcrumbs-test"
|
|
105
|
+
/>
|
|
106
|
+
)
|
|
107
|
+
.toJSON();
|
|
108
|
+
const breadcrumbsEducationVariant = renderer
|
|
109
|
+
.create(
|
|
110
|
+
<Breadcrumbs
|
|
111
|
+
breadcrumbsData={breadcrumbsData}
|
|
112
|
+
breadcrumbsType={BreadcrumbsTypes.Education}
|
|
73
113
|
id="breadcrumbs-test"
|
|
74
114
|
/>
|
|
75
115
|
)
|
|
@@ -85,42 +125,33 @@ describe("Breadcrumbs Snapshot", () => {
|
|
|
85
125
|
/>
|
|
86
126
|
)
|
|
87
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();
|
|
88
147
|
|
|
89
148
|
expect(breadcrumbsSnapshot).toMatchSnapshot();
|
|
90
149
|
expect(breadcrumbsVariantColor).toMatchSnapshot();
|
|
91
150
|
expect(breadcrumbsBlogsVariant).toMatchSnapshot();
|
|
92
151
|
expect(breadcrumbsLocationsVariant).toMatchSnapshot();
|
|
152
|
+
expect(breadcrumbsEducationVariant).toMatchSnapshot();
|
|
93
153
|
expect(breadcrumbsAdditionalStyles).toMatchSnapshot();
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
describe("Breadcrumbs Testing", () => {
|
|
98
|
-
const breadcrumbsData = [
|
|
99
|
-
{ url: "#string1", text: "string1" },
|
|
100
|
-
{ url: "#string2", text: "string2" },
|
|
101
|
-
{ url: "#string3", text: "string3" },
|
|
102
|
-
];
|
|
103
|
-
|
|
104
|
-
it("Renders a tag with custom text", () => {
|
|
105
|
-
render(<Breadcrumbs breadcrumbsData={breadcrumbsData} />);
|
|
106
|
-
|
|
107
|
-
// The last breadcrumb (the active page) is not a link.
|
|
108
|
-
expect(screen.getAllByRole("link")).toHaveLength(2);
|
|
109
|
-
expect(screen.getAllByRole("link")[0]).toHaveTextContent("string1");
|
|
110
|
-
expect(screen.getAllByRole("link")[1]).toHaveTextContent("string2");
|
|
111
|
-
expect(screen.getByText(/string3/)).toBeInTheDocument();
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it("Renders icon", () => {
|
|
115
|
-
const { container } = render(
|
|
116
|
-
<Breadcrumbs breadcrumbsData={breadcrumbsData} />
|
|
117
|
-
);
|
|
118
|
-
expect(container.querySelector(".breadcrumbs-icon")).toBeInTheDocument();
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it("Throws error when nothing is passed into Breadcrumb", () => {
|
|
122
|
-
expect(() => render(<Breadcrumbs breadcrumbsData={[]} />)).toThrowError(
|
|
123
|
-
"You must use the `breadcrumbsData` prop to pass a data object to the Breadcrumbs component. That prop is current empty."
|
|
124
|
-
);
|
|
154
|
+
expect(withChakraProps).toMatchSnapshot();
|
|
155
|
+
expect(withOtherProps).toMatchSnapshot();
|
|
125
156
|
});
|
|
126
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;
|