@nypl/design-system-react-components 0.25.1 → 0.25.5
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 +118 -1
- package/README.md +98 -50
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +2 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +0 -15
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +36 -34
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +8 -0
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +11 -0
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/List/List.d.ts +19 -14
- package/dist/components/Notification/Notification.d.ts +37 -16
- package/dist/components/Pagination/Pagination.d.ts +16 -13
- package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
- package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
- package/dist/components/SearchBar/SearchBar.d.ts +3 -3
- package/dist/components/Select/Select.d.ts +2 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +12 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
- package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
- package/dist/design-system-react-components.cjs.development.js +6131 -3715
- 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 +6124 -3699
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
- package/dist/hooks/useCarouselStyles.d.ts +16 -0
- package/dist/hooks/useNYPLTheme.d.ts +54 -0
- package/dist/hooks/useWindowSize.d.ts +10 -0
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +22 -8
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +5 -1
- package/dist/theme/components/checkboxGroup.d.ts +12 -0
- package/dist/theme/components/componentWrapper.d.ts +11 -0
- package/dist/theme/components/datePicker.d.ts +16 -0
- package/dist/theme/components/fieldset.d.ts +27 -0
- package/dist/theme/components/global.d.ts +23 -13
- package/dist/theme/components/globalMixins.d.ts +9 -1
- package/dist/theme/components/heading.d.ts +5 -0
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +1 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +5 -3
- package/dist/theme/components/link.d.ts +4 -0
- package/dist/theme/components/list.d.ts +89 -0
- package/dist/theme/components/notification.d.ts +75 -0
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/select.d.ts +11 -2
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/tabs.d.ts +54 -3
- package/dist/theme/components/textInput.d.ts +8 -1
- package/dist/theme/components/videoPlayer.d.ts +40 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +6 -1
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/package.json +72 -83
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +39 -44
- package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
- package/src/components/Button/Button.stories.mdx +15 -10
- package/src/components/Button/Button.test.tsx +21 -7
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +1 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
- package/src/components/Card/Card.stories.mdx +296 -259
- package/src/components/Card/Card.test.tsx +156 -84
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +0 -17
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +31 -16
- package/src/components/Chakra/Grid.stories.mdx +28 -15
- package/src/components/Chakra/Stack.stories.mdx +35 -18
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +39 -33
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +264 -64
- package/src/components/DatePicker/DatePicker.tsx +159 -128
- package/src/components/DatePicker/_DatePicker.scss +33 -67
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
- package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
- package/src/components/Fieldset/Fieldset.test.tsx +125 -0
- package/src/components/Fieldset/Fieldset.tsx +52 -0
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
- package/src/components/Form/Form.stories.mdx +24 -6
- package/src/components/Form/Form.test.tsx +1 -1
- package/src/components/Form/Form.tsx +1 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
- package/src/components/Grid/SimpleGrid.test.tsx +4 -4
- package/src/components/Heading/Heading.stories.mdx +3 -4
- package/src/components/Heading/Heading.tsx +5 -5
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
- package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
- package/src/components/Hero/Hero.stories.mdx +12 -2
- package/src/components/Hero/Hero.tsx +1 -1
- package/src/components/Hero/HeroTypes.tsx +1 -0
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
- package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
- package/src/components/Icons/Icon.stories.mdx +12 -4
- package/src/components/Icons/Icon.test.tsx +18 -0
- package/src/components/Icons/Icon.tsx +16 -1
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +11 -0
- package/src/components/Image/Image.stories.mdx +220 -0
- package/src/components/Image/Image.test.tsx +131 -29
- package/src/components/Image/Image.tsx +84 -56
- package/src/components/Image/ImageTypes.ts +22 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
- package/src/components/Input/Input.stories.tsx +23 -67
- package/src/components/Input/Input.test.tsx +4 -4
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Link/Link.tsx +4 -1
- package/src/components/List/List.stories.mdx +124 -49
- package/src/components/List/List.test.tsx +142 -63
- package/src/components/List/List.tsx +89 -93
- package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +109 -112
- package/src/components/Notification/Notification.test.tsx +99 -110
- package/src/components/Notification/Notification.tsx +156 -159
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
- package/src/components/Pagination/Pagination.stories.mdx +26 -27
- package/src/components/Pagination/Pagination.stories.tsx +11 -16
- package/src/components/Pagination/Pagination.test.tsx +276 -146
- package/src/components/Pagination/Pagination.tsx +174 -154
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
- package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
- package/src/components/Radio/Radio.test.tsx +20 -4
- package/src/components/Radio/Radio.tsx +6 -3
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +19 -19
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
- package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
- package/src/components/SearchBar/SearchBar.tsx +20 -10
- package/src/components/Select/Select.test.tsx +12 -0
- package/src/components/Select/Select.tsx +5 -2
- package/src/components/Select/SelectTypes.tsx +1 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
- package/src/components/Slider/Slider.stories.mdx +529 -0
- package/src/components/Slider/Slider.test.tsx +653 -0
- package/src/components/Slider/Slider.tsx +303 -0
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +171 -311
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Forms.stories.mdx +9 -7
- package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
- package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
- package/src/components/StyleGuide/Typography.stories.mdx +202 -189
- package/src/components/StyleGuide/UIDocCard.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.mdx +73 -11
- package/src/components/Tabs/Tabs.tsx +87 -64
- package/src/components/Template/Template.stories.mdx +25 -27
- package/src/components/TextInput/TextInput.stories.mdx +1 -1
- package/src/components/TextInput/TextInput.test.tsx +22 -2
- package/src/components/TextInput/TextInput.tsx +28 -8
- package/src/components/TextInput/TextInputTypes.tsx +2 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
- package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
- package/src/docs/Chakra.stories.mdx +244 -63
- package/src/docs/Intro.stories.mdx +5 -2
- package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
- package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
- package/src/hooks/useCarouselStyles.ts +34 -0
- package/src/hooks/useNYPLTheme.ts +67 -0
- package/src/hooks/useWindowSize.ts +40 -0
- package/src/index.ts +22 -19
- package/src/resources.scss +5 -5
- package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
- package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
- package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
- package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
- package/src/styles/base/_place-holder.scss +14 -3
- package/src/styles/{03-space → space}/_space-inline.scss +14 -14
- package/src/styles/{03-space → space}/_space-inset.scss +10 -10
- package/src/styles/space/_space-stack.scss +116 -0
- package/src/styles.scss +13 -60
- package/src/theme/components/button.ts +21 -15
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +8 -3
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/componentWrapper.ts +10 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +26 -15
- package/src/theme/components/globalMixins.ts +9 -1
- package/src/theme/components/heading.ts +10 -5
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +4 -3
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +9 -9
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +3 -10
- package/src/theme/components/link.ts +5 -1
- package/src/theme/components/list.ts +73 -0
- package/src/theme/components/notification.ts +93 -0
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radio.ts +2 -2
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/select.ts +6 -3
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +1 -2
- package/src/theme/components/tabs.ts +49 -19
- package/src/theme/components/template.ts +8 -8
- package/src/theme/components/textInput.ts +5 -4
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/global.ts +6 -1
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +41 -10
- package/src/utils/componentCategories.ts +4 -3
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/components/List/List.stories.d.ts +0 -7
- package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
- package/dist/theme/components/customRadioGroup.d.ts +0 -18
- package/src/components/Button/_Button.scss +0 -32
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/List/List.stories.tsx +0 -139
- package/src/components/List/_List.scss +0 -76
- package/src/components/Notification/_Notification.scss +0 -110
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -62
- package/src/styles/01-colors/_colors-utility.scss +0 -67
- package/src/styles/02-typography/_type-scale.css +0 -11
- package/src/styles/02-typography/_type-weight.css +0 -7
- package/src/styles/02-typography/_typefaces.css +0 -4
- package/src/styles/03-space/_space-stack.scss +0 -116
- package/src/styles/03-space/_space.css +0 -30
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customCheckboxGroup.ts +0 -12
- package/src/theme/components/customRadioGroup.ts +0 -12
|
@@ -42,6 +42,205 @@ exports[`Breadcrumbs Snapshot Renders the UI snapshot correctly 1`] = `
|
|
|
42
42
|
focusable={false}
|
|
43
43
|
id="breadcrumbs-test__backarrow"
|
|
44
44
|
role="img"
|
|
45
|
+
title="arrow icon"
|
|
46
|
+
viewBox="0 0 24 24"
|
|
47
|
+
>
|
|
48
|
+
<g
|
|
49
|
+
stroke="currentColor"
|
|
50
|
+
strokeWidth="1.5"
|
|
51
|
+
>
|
|
52
|
+
<path
|
|
53
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
54
|
+
fill="none"
|
|
55
|
+
strokeLinecap="round"
|
|
56
|
+
/>
|
|
57
|
+
<path
|
|
58
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
59
|
+
fill="currentColor"
|
|
60
|
+
strokeLinecap="round"
|
|
61
|
+
/>
|
|
62
|
+
<circle
|
|
63
|
+
cx="12"
|
|
64
|
+
cy="12"
|
|
65
|
+
fill="none"
|
|
66
|
+
r="11.25"
|
|
67
|
+
strokeMiterlimit="10"
|
|
68
|
+
/>
|
|
69
|
+
</g>
|
|
70
|
+
</svg>
|
|
71
|
+
<span
|
|
72
|
+
className="breadcrumb-label"
|
|
73
|
+
>
|
|
74
|
+
string2
|
|
75
|
+
</span>
|
|
76
|
+
</a>
|
|
77
|
+
<span
|
|
78
|
+
className="css-t4q1nq"
|
|
79
|
+
role="presentation"
|
|
80
|
+
>
|
|
81
|
+
/
|
|
82
|
+
</span>
|
|
83
|
+
</li>
|
|
84
|
+
<li
|
|
85
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
86
|
+
>
|
|
87
|
+
<span
|
|
88
|
+
aria-current="page"
|
|
89
|
+
className="chakra-breadcrumb__link css-0"
|
|
90
|
+
>
|
|
91
|
+
<span
|
|
92
|
+
className="breadcrumb-label"
|
|
93
|
+
>
|
|
94
|
+
string3
|
|
95
|
+
</span>
|
|
96
|
+
</span>
|
|
97
|
+
</li>
|
|
98
|
+
</ol>
|
|
99
|
+
</nav>
|
|
100
|
+
`;
|
|
101
|
+
|
|
102
|
+
exports[`Breadcrumbs Snapshot Renders the UI snapshot correctly 2`] = `
|
|
103
|
+
<nav
|
|
104
|
+
aria-label="breadcrumb"
|
|
105
|
+
className="chakra-breadcrumb css-0"
|
|
106
|
+
id="breadcrumbs-test"
|
|
107
|
+
>
|
|
108
|
+
<ol
|
|
109
|
+
className="chakra-breadcrumb__list css-0"
|
|
110
|
+
>
|
|
111
|
+
<li
|
|
112
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
113
|
+
>
|
|
114
|
+
<a
|
|
115
|
+
className="chakra-breadcrumb__link css-0"
|
|
116
|
+
href="#string1"
|
|
117
|
+
>
|
|
118
|
+
<span
|
|
119
|
+
className="breadcrumb-label"
|
|
120
|
+
>
|
|
121
|
+
string1
|
|
122
|
+
</span>
|
|
123
|
+
</a>
|
|
124
|
+
<span
|
|
125
|
+
className="css-t4q1nq"
|
|
126
|
+
role="presentation"
|
|
127
|
+
>
|
|
128
|
+
/
|
|
129
|
+
</span>
|
|
130
|
+
</li>
|
|
131
|
+
<li
|
|
132
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
133
|
+
>
|
|
134
|
+
<a
|
|
135
|
+
className="chakra-breadcrumb__link css-0"
|
|
136
|
+
href="#string2"
|
|
137
|
+
>
|
|
138
|
+
<svg
|
|
139
|
+
aria-hidden={true}
|
|
140
|
+
className="chakra-icon breadcrumbs-icon css-onkibi"
|
|
141
|
+
focusable={false}
|
|
142
|
+
id="breadcrumbs-test__backarrow"
|
|
143
|
+
role="img"
|
|
144
|
+
title="arrow icon"
|
|
145
|
+
viewBox="0 0 24 24"
|
|
146
|
+
>
|
|
147
|
+
<g
|
|
148
|
+
stroke="currentColor"
|
|
149
|
+
strokeWidth="1.5"
|
|
150
|
+
>
|
|
151
|
+
<path
|
|
152
|
+
d="M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25"
|
|
153
|
+
fill="none"
|
|
154
|
+
strokeLinecap="round"
|
|
155
|
+
/>
|
|
156
|
+
<path
|
|
157
|
+
d="M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0"
|
|
158
|
+
fill="currentColor"
|
|
159
|
+
strokeLinecap="round"
|
|
160
|
+
/>
|
|
161
|
+
<circle
|
|
162
|
+
cx="12"
|
|
163
|
+
cy="12"
|
|
164
|
+
fill="none"
|
|
165
|
+
r="11.25"
|
|
166
|
+
strokeMiterlimit="10"
|
|
167
|
+
/>
|
|
168
|
+
</g>
|
|
169
|
+
</svg>
|
|
170
|
+
<span
|
|
171
|
+
className="breadcrumb-label"
|
|
172
|
+
>
|
|
173
|
+
string2
|
|
174
|
+
</span>
|
|
175
|
+
</a>
|
|
176
|
+
<span
|
|
177
|
+
className="css-t4q1nq"
|
|
178
|
+
role="presentation"
|
|
179
|
+
>
|
|
180
|
+
/
|
|
181
|
+
</span>
|
|
182
|
+
</li>
|
|
183
|
+
<li
|
|
184
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
185
|
+
>
|
|
186
|
+
<span
|
|
187
|
+
aria-current="page"
|
|
188
|
+
className="chakra-breadcrumb__link css-0"
|
|
189
|
+
>
|
|
190
|
+
<span
|
|
191
|
+
className="breadcrumb-label"
|
|
192
|
+
>
|
|
193
|
+
string3
|
|
194
|
+
</span>
|
|
195
|
+
</span>
|
|
196
|
+
</li>
|
|
197
|
+
</ol>
|
|
198
|
+
</nav>
|
|
199
|
+
`;
|
|
200
|
+
|
|
201
|
+
exports[`Breadcrumbs Snapshot Renders the UI snapshot correctly 3`] = `
|
|
202
|
+
<nav
|
|
203
|
+
aria-label="breadcrumb"
|
|
204
|
+
className="chakra-breadcrumb css-1f2fw9u"
|
|
205
|
+
id="breadcrumbs-test"
|
|
206
|
+
>
|
|
207
|
+
<ol
|
|
208
|
+
className="chakra-breadcrumb__list css-0"
|
|
209
|
+
>
|
|
210
|
+
<li
|
|
211
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
212
|
+
>
|
|
213
|
+
<a
|
|
214
|
+
className="chakra-breadcrumb__link css-0"
|
|
215
|
+
href="#string1"
|
|
216
|
+
>
|
|
217
|
+
<span
|
|
218
|
+
className="breadcrumb-label"
|
|
219
|
+
>
|
|
220
|
+
string1
|
|
221
|
+
</span>
|
|
222
|
+
</a>
|
|
223
|
+
<span
|
|
224
|
+
className="css-t4q1nq"
|
|
225
|
+
role="presentation"
|
|
226
|
+
>
|
|
227
|
+
/
|
|
228
|
+
</span>
|
|
229
|
+
</li>
|
|
230
|
+
<li
|
|
231
|
+
className="chakra-breadcrumb__list-item css-18biwo"
|
|
232
|
+
>
|
|
233
|
+
<a
|
|
234
|
+
className="chakra-breadcrumb__link css-0"
|
|
235
|
+
href="#string2"
|
|
236
|
+
>
|
|
237
|
+
<svg
|
|
238
|
+
aria-hidden={true}
|
|
239
|
+
className="chakra-icon breadcrumbs-icon css-onkibi"
|
|
240
|
+
focusable={false}
|
|
241
|
+
id="breadcrumbs-test__backarrow"
|
|
242
|
+
role="img"
|
|
243
|
+
title="arrow icon"
|
|
45
244
|
viewBox="0 0 24 24"
|
|
46
245
|
>
|
|
47
246
|
<g
|
|
@@ -86,7 +285,6 @@ exports[`Breadcrumbs Snapshot Renders the UI snapshot correctly 1`] = `
|
|
|
86
285
|
<span
|
|
87
286
|
aria-current="page"
|
|
88
287
|
className="chakra-breadcrumb__link css-0"
|
|
89
|
-
href="#string3"
|
|
90
288
|
>
|
|
91
289
|
<span
|
|
92
290
|
className="breadcrumb-label"
|
|
@@ -6,14 +6,15 @@ import {
|
|
|
6
6
|
Description,
|
|
7
7
|
} from "@storybook/addon-docs/blocks";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
import { ButtonGroup } from "@chakra-ui/react";
|
|
9
10
|
|
|
10
|
-
import Button
|
|
11
|
+
import Button from "./Button";
|
|
11
12
|
import { ButtonTypes } from "./ButtonTypes";
|
|
12
13
|
import Icon from "../Icons/Icon";
|
|
13
14
|
import {
|
|
15
|
+
IconAlign,
|
|
14
16
|
IconNames,
|
|
15
17
|
IconRotationTypes,
|
|
16
|
-
IconAlign,
|
|
17
18
|
IconSizes,
|
|
18
19
|
} from "../Icons/IconTypes";
|
|
19
20
|
import getCSSVariable from "../../helpers/getCSSVariable";
|
|
@@ -27,8 +28,7 @@ import DSProvider from "../../theme/provider";
|
|
|
27
28
|
parameters={{
|
|
28
29
|
design: {
|
|
29
30
|
type: "figma",
|
|
30
|
-
url:
|
|
31
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
31
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
32
32
|
},
|
|
33
33
|
jest: ["Button.test.tsx"],
|
|
34
34
|
}}
|
|
@@ -39,7 +39,7 @@ import DSProvider from "../../theme/provider";
|
|
|
39
39
|
| Component Version | DS Version |
|
|
40
40
|
| ----------------- | ---------- |
|
|
41
41
|
| Added | `0.0.4` |
|
|
42
|
-
| Latest | `0.25.
|
|
42
|
+
| Latest | `0.25.4` |
|
|
43
43
|
|
|
44
44
|
<Description of={Button} />
|
|
45
45
|
|
|
@@ -48,11 +48,15 @@ that can be rendered.
|
|
|
48
48
|
|
|
49
49
|
- `ButtonTypes.Primary` is used for actions that move the user forward.
|
|
50
50
|
- `ButtonTypes.Secondary` is used for actions that move the user back, such as cancellations.
|
|
51
|
+
- `ButtonTypes.Callout` is used for call to action text such as "Donate".
|
|
51
52
|
- `ButtonTypes.Pill` is used for equally weighted actions within cards and always in a set.
|
|
52
53
|
- `ButtonTypes.Link` is used for equally weighted actions in a text based list.
|
|
54
|
+
- `ButtonTypes.SearchBar` is a variant only used in the `SearchBar` component.
|
|
55
|
+
- `ButtonTypes.NoBrand` is a variant used when there is no brand and will display
|
|
56
|
+
the background color as black.
|
|
53
57
|
|
|
54
|
-
When one and only one `Icon` component is passed inside a `Button` component
|
|
55
|
-
it will automatically be configured to use the `"
|
|
58
|
+
When one and only one `Icon` component is passed inside a `Button` component with
|
|
59
|
+
no text, it will automatically be configured to use the `"iconOnly"` type.
|
|
56
60
|
|
|
57
61
|
<Canvas withToolbar>
|
|
58
62
|
<Story name="Basic">{(args) => <Button {...args}>Button Text</Button>}</Story>
|
|
@@ -227,17 +231,18 @@ The different `ButtonTypes` modified by the `buttonType` prop:
|
|
|
227
231
|
<Button buttonType={ButtonTypes.Callout}>Callout</Button>
|
|
228
232
|
<Button buttonType={ButtonTypes.Pill}>Pill</Button>
|
|
229
233
|
<Button buttonType={ButtonTypes.Link}>Link</Button>
|
|
234
|
+
<Button buttonType={ButtonTypes.NoBrand}>NoBrand</Button>
|
|
230
235
|
</ButtonGroup>
|
|
231
236
|
</DSProvider>
|
|
232
237
|
</Canvas>
|
|
233
238
|
|
|
234
|
-
Modifying the `
|
|
239
|
+
Modifying the `isDisabled` prop:
|
|
235
240
|
|
|
236
241
|
<Canvas>
|
|
237
242
|
<DSProvider>
|
|
238
243
|
<ButtonGroup>
|
|
239
|
-
<Button
|
|
240
|
-
<Button
|
|
244
|
+
<Button isDisabled={false}>Enabled</Button>
|
|
245
|
+
<Button isDisabled>isDisabled</Button>
|
|
241
246
|
</ButtonGroup>
|
|
242
247
|
</DSProvider>
|
|
243
248
|
</Canvas>
|
|
@@ -23,7 +23,6 @@ describe("Button Accessibility", () => {
|
|
|
23
23
|
|
|
24
24
|
describe("Button", () => {
|
|
25
25
|
let onClick;
|
|
26
|
-
let container;
|
|
27
26
|
let rerender;
|
|
28
27
|
|
|
29
28
|
beforeEach(() => {
|
|
@@ -33,7 +32,6 @@ describe("Button", () => {
|
|
|
33
32
|
Submit
|
|
34
33
|
</Button>
|
|
35
34
|
);
|
|
36
|
-
container = utils.container;
|
|
37
35
|
rerender = utils.rerender;
|
|
38
36
|
});
|
|
39
37
|
|
|
@@ -47,10 +45,6 @@ describe("Button", () => {
|
|
|
47
45
|
expect(screen.getByText("Submit")).toBeInTheDocument();
|
|
48
46
|
});
|
|
49
47
|
|
|
50
|
-
it("has 'button' class", () => {
|
|
51
|
-
expect(container.querySelector(".button")).toBeInTheDocument();
|
|
52
|
-
});
|
|
53
|
-
|
|
54
48
|
it("optionally calls the onClick on mouseDown instead of on click", () => {
|
|
55
49
|
expect(onClick).toHaveBeenCalledTimes(0);
|
|
56
50
|
rerender(
|
|
@@ -100,7 +94,7 @@ describe("padding for icon only button", () => {
|
|
|
100
94
|
/>
|
|
101
95
|
</Button>
|
|
102
96
|
);
|
|
103
|
-
expect(container.querySelector("
|
|
97
|
+
expect(container.querySelector("button svg")).toBeInTheDocument();
|
|
104
98
|
});
|
|
105
99
|
});
|
|
106
100
|
|
|
@@ -113,6 +107,13 @@ describe("Button Snapshot", () => {
|
|
|
113
107
|
</Button>
|
|
114
108
|
)
|
|
115
109
|
.toJSON();
|
|
110
|
+
const disabled = renderer
|
|
111
|
+
.create(
|
|
112
|
+
<Button id="button" onClick={jest.fn()} isDisabled>
|
|
113
|
+
Disabled
|
|
114
|
+
</Button>
|
|
115
|
+
)
|
|
116
|
+
.toJSON();
|
|
116
117
|
const secondary = renderer
|
|
117
118
|
.create(
|
|
118
119
|
<Button
|
|
@@ -160,12 +161,25 @@ describe("Button Snapshot", () => {
|
|
|
160
161
|
</Button>
|
|
161
162
|
)
|
|
162
163
|
.toJSON();
|
|
164
|
+
const noBrand = renderer
|
|
165
|
+
.create(
|
|
166
|
+
<Button
|
|
167
|
+
id="button"
|
|
168
|
+
onClick={jest.fn()}
|
|
169
|
+
buttonType={ButtonTypes.NoBrand}
|
|
170
|
+
>
|
|
171
|
+
NoBrand
|
|
172
|
+
</Button>
|
|
173
|
+
)
|
|
174
|
+
.toJSON();
|
|
163
175
|
|
|
164
176
|
expect(primary).toMatchSnapshot();
|
|
177
|
+
expect(disabled).toMatchSnapshot();
|
|
165
178
|
expect(secondary).toMatchSnapshot();
|
|
166
179
|
expect(callout).toMatchSnapshot();
|
|
167
180
|
expect(pill).toMatchSnapshot();
|
|
168
181
|
expect(link).toMatchSnapshot();
|
|
169
182
|
expect(searchBar).toMatchSnapshot();
|
|
183
|
+
expect(noBrand).toMatchSnapshot();
|
|
170
184
|
});
|
|
171
185
|
});
|
|
@@ -1,68 +1,56 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import {
|
|
3
|
-
Button as ChakraButton,
|
|
4
|
-
ButtonGroup,
|
|
5
|
-
useStyleConfig,
|
|
6
|
-
} from "@chakra-ui/react";
|
|
2
|
+
import { Button as ChakraButton, useStyleConfig } from "@chakra-ui/react";
|
|
7
3
|
|
|
8
|
-
import bem from "../../utils/bem";
|
|
9
4
|
import { ButtonTypes } from "./ButtonTypes";
|
|
10
5
|
import Icon from "../Icons/Icon";
|
|
6
|
+
import { getVariant } from "../../utils/utils";
|
|
7
|
+
import generateUUID from "../../helpers/generateUUID";
|
|
11
8
|
|
|
12
9
|
type ButtonElementType = "submit" | "button" | "reset";
|
|
13
10
|
|
|
14
11
|
interface ButtonProps {
|
|
12
|
+
/** Optionally pass in additional Chakra-based styles. */
|
|
13
|
+
additionalStyles?: { [key: string]: any };
|
|
15
14
|
/** Additional attributes passed to the button */
|
|
16
15
|
attributes?: { [key: string]: any };
|
|
17
16
|
/** The kind of button assigned through the `ButtonTypes` enum */
|
|
18
17
|
buttonType?: ButtonTypes;
|
|
19
|
-
/** Additional className
|
|
18
|
+
/** Additional className to use. */
|
|
20
19
|
className?: string;
|
|
21
|
-
/** Adds 'disabled' property to the button */
|
|
22
|
-
disabled?: boolean;
|
|
23
20
|
/** ID that other components can cross reference for accessibility purposes */
|
|
24
21
|
id?: string;
|
|
25
|
-
/**
|
|
22
|
+
/** Adds 'disabled' property to the button */
|
|
23
|
+
isDisabled?: boolean;
|
|
24
|
+
/** Trigger the Button's action through the `mouseDown` event handler instead
|
|
25
|
+
* of `onClick`. `false` by default. */
|
|
26
26
|
mouseDown?: boolean;
|
|
27
27
|
/** The action to perform on the `<button>`'s onClick function */
|
|
28
28
|
onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;
|
|
29
|
-
/** The
|
|
29
|
+
/** The HTML button type attribute. */
|
|
30
30
|
type?: ButtonElementType;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
// Used to map between ButtonTypes enum values and Chakra variant options.
|
|
34
|
-
const variantMap = {};
|
|
35
|
-
for (const type in ButtonTypes) {
|
|
36
|
-
variantMap[ButtonTypes[type]] = ButtonTypes[type];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
33
|
/**
|
|
40
|
-
*
|
|
41
|
-
* value is passed (typically in non-Typescript scenarios), then the default
|
|
42
|
-
* is the "primary" variant.
|
|
34
|
+
* Renders a simple `button` element with custom variant styles.
|
|
43
35
|
*/
|
|
44
|
-
const getVariant = (buttonType) =>
|
|
45
|
-
variantMap[buttonType] || ButtonTypes.Primary;
|
|
46
|
-
|
|
47
|
-
/** Renders a simple `button` element with custom classes and modifiers. */
|
|
48
36
|
function Button(props: React.PropsWithChildren<ButtonProps>) {
|
|
49
37
|
const {
|
|
38
|
+
additionalStyles = {},
|
|
50
39
|
attributes,
|
|
51
40
|
buttonType,
|
|
52
41
|
children,
|
|
53
42
|
className = "",
|
|
54
|
-
|
|
55
|
-
id,
|
|
43
|
+
isDisabled,
|
|
44
|
+
id = generateUUID(),
|
|
56
45
|
mouseDown = false,
|
|
57
46
|
onClick,
|
|
58
47
|
type = "button",
|
|
59
48
|
} = props;
|
|
60
|
-
const baseClass = "button";
|
|
61
49
|
const btnCallback = mouseDown ? { onMouseDown: onClick } : { onClick };
|
|
62
50
|
let childCount = 0;
|
|
63
51
|
let hasIcon = false;
|
|
64
52
|
let variant;
|
|
65
|
-
let styles;
|
|
53
|
+
let styles = {};
|
|
66
54
|
|
|
67
55
|
React.Children.map(children, (child: React.ReactElement) => {
|
|
68
56
|
childCount++;
|
|
@@ -77,9 +65,9 @@ function Button(props: React.PropsWithChildren<ButtonProps>) {
|
|
|
77
65
|
});
|
|
78
66
|
|
|
79
67
|
if (childCount === 1 && hasIcon) {
|
|
80
|
-
variant = "
|
|
68
|
+
variant = "iconOnly";
|
|
81
69
|
} else {
|
|
82
|
-
variant = getVariant(buttonType);
|
|
70
|
+
variant = getVariant(buttonType, ButtonTypes, ButtonTypes.Primary);
|
|
83
71
|
}
|
|
84
72
|
|
|
85
73
|
styles = useStyleConfig("Button", { variant });
|
|
@@ -87,10 +75,11 @@ function Button(props: React.PropsWithChildren<ButtonProps>) {
|
|
|
87
75
|
return (
|
|
88
76
|
<ChakraButton
|
|
89
77
|
id={id}
|
|
90
|
-
|
|
78
|
+
data-testid="button"
|
|
79
|
+
className={className}
|
|
91
80
|
type={type}
|
|
92
|
-
|
|
93
|
-
__css={styles}
|
|
81
|
+
isDisabled={isDisabled}
|
|
82
|
+
__css={{ ...styles, ...additionalStyles }}
|
|
94
83
|
{...attributes}
|
|
95
84
|
{...btnCallback}
|
|
96
85
|
>
|
|
@@ -99,5 +88,4 @@ function Button(props: React.PropsWithChildren<ButtonProps>) {
|
|
|
99
88
|
);
|
|
100
89
|
}
|
|
101
90
|
|
|
102
|
-
export { ButtonGroup };
|
|
103
91
|
export default Button;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`Button Snapshot Renders the UI snapshot correctly 1`] = `
|
|
4
4
|
<button
|
|
5
|
-
className="chakra-button
|
|
5
|
+
className="chakra-button css-0"
|
|
6
|
+
data-testid="button"
|
|
6
7
|
id="button"
|
|
7
8
|
onClick={[MockFunction]}
|
|
8
9
|
type="button"
|
|
@@ -13,51 +14,69 @@ exports[`Button Snapshot Renders the UI snapshot correctly 1`] = `
|
|
|
13
14
|
|
|
14
15
|
exports[`Button Snapshot Renders the UI snapshot correctly 2`] = `
|
|
15
16
|
<button
|
|
16
|
-
className="chakra-button
|
|
17
|
+
className="chakra-button css-0"
|
|
18
|
+
data-testid="button"
|
|
19
|
+
disabled={true}
|
|
17
20
|
id="button"
|
|
18
21
|
onClick={[MockFunction]}
|
|
19
22
|
type="button"
|
|
20
23
|
>
|
|
21
|
-
|
|
24
|
+
Disabled
|
|
22
25
|
</button>
|
|
23
26
|
`;
|
|
24
27
|
|
|
25
28
|
exports[`Button Snapshot Renders the UI snapshot correctly 3`] = `
|
|
26
29
|
<button
|
|
27
|
-
className="chakra-button
|
|
30
|
+
className="chakra-button css-0"
|
|
31
|
+
data-testid="button"
|
|
28
32
|
id="button"
|
|
29
33
|
onClick={[MockFunction]}
|
|
30
34
|
type="button"
|
|
31
35
|
>
|
|
32
|
-
|
|
36
|
+
Seconday
|
|
33
37
|
</button>
|
|
34
38
|
`;
|
|
35
39
|
|
|
36
40
|
exports[`Button Snapshot Renders the UI snapshot correctly 4`] = `
|
|
37
41
|
<button
|
|
38
|
-
className="chakra-button
|
|
42
|
+
className="chakra-button css-0"
|
|
43
|
+
data-testid="button"
|
|
39
44
|
id="button"
|
|
40
45
|
onClick={[MockFunction]}
|
|
41
46
|
type="button"
|
|
42
47
|
>
|
|
43
|
-
|
|
48
|
+
Callout
|
|
44
49
|
</button>
|
|
45
50
|
`;
|
|
46
51
|
|
|
47
52
|
exports[`Button Snapshot Renders the UI snapshot correctly 5`] = `
|
|
48
53
|
<button
|
|
49
|
-
className="chakra-button
|
|
54
|
+
className="chakra-button css-0"
|
|
55
|
+
data-testid="button"
|
|
50
56
|
id="button"
|
|
51
57
|
onClick={[MockFunction]}
|
|
52
58
|
type="button"
|
|
53
59
|
>
|
|
54
|
-
|
|
60
|
+
Pill
|
|
55
61
|
</button>
|
|
56
62
|
`;
|
|
57
63
|
|
|
58
64
|
exports[`Button Snapshot Renders the UI snapshot correctly 6`] = `
|
|
59
65
|
<button
|
|
60
|
-
className="chakra-button
|
|
66
|
+
className="chakra-button css-0"
|
|
67
|
+
data-testid="button"
|
|
68
|
+
id="button"
|
|
69
|
+
onClick={[MockFunction]}
|
|
70
|
+
type="button"
|
|
71
|
+
>
|
|
72
|
+
Link
|
|
73
|
+
</button>
|
|
74
|
+
`;
|
|
75
|
+
|
|
76
|
+
exports[`Button Snapshot Renders the UI snapshot correctly 7`] = `
|
|
77
|
+
<button
|
|
78
|
+
className="chakra-button css-0"
|
|
79
|
+
data-testid="button"
|
|
61
80
|
id="button"
|
|
62
81
|
onClick={[MockFunction]}
|
|
63
82
|
type="button"
|
|
@@ -65,3 +84,15 @@ exports[`Button Snapshot Renders the UI snapshot correctly 6`] = `
|
|
|
65
84
|
SearchBar
|
|
66
85
|
</button>
|
|
67
86
|
`;
|
|
87
|
+
|
|
88
|
+
exports[`Button Snapshot Renders the UI snapshot correctly 8`] = `
|
|
89
|
+
<button
|
|
90
|
+
className="chakra-button css-0"
|
|
91
|
+
data-testid="button"
|
|
92
|
+
id="button"
|
|
93
|
+
onClick={[MockFunction]}
|
|
94
|
+
type="button"
|
|
95
|
+
>
|
|
96
|
+
NoBrand
|
|
97
|
+
</button>
|
|
98
|
+
`;
|