@nypl/design-system-react-components 0.25.7 → 0.25.10
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 +119 -1
- package/README.md +1 -1
- package/dist/components/Button/Button.d.ts +6 -6
- package/dist/components/Button/ButtonTypes.d.ts +0 -1
- package/dist/components/Card/Card.d.ts +6 -4
- package/dist/components/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +3 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +8 -2
- package/dist/components/DatePicker/DatePicker.d.ts +4 -3
- package/dist/components/Fieldset/Fieldset.d.ts +1 -3
- package/dist/components/Form/Form.d.ts +15 -14
- package/dist/components/Form/FormTypes.d.ts +2 -2
- package/dist/components/Heading/Heading.d.ts +7 -3
- package/dist/components/Heading/HeadingTypes.d.ts +6 -6
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +5 -2
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +3 -3
- package/dist/components/Icons/Icon.d.ts +4 -4
- package/dist/components/Icons/IconSvgs.d.ts +1 -21
- package/dist/components/Icons/IconTypes.d.ts +1 -23
- package/dist/components/Image/Image.d.ts +11 -3
- package/dist/components/Image/ImageTypes.d.ts +3 -1
- package/dist/components/Link/LinkTypes.d.ts +1 -0
- package/dist/components/Logo/Logo.d.ts +28 -0
- package/dist/components/Logo/LogoSvgs.d.ts +18 -0
- package/dist/components/Logo/LogoTypes.d.ts +30 -0
- package/dist/components/Modal/Modal.d.ts +0 -4
- package/dist/components/Notification/Notification.d.ts +4 -2
- package/dist/components/Placeholder/Placeholder.d.ts +3 -5
- package/dist/components/Radio/Radio.d.ts +6 -5
- package/dist/components/RadioGroup/RadioGroup.d.ts +6 -5
- package/dist/components/SearchBar/SearchBar.d.ts +15 -7
- package/dist/components/Select/Select.d.ts +5 -2
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +8 -4
- package/dist/components/Slider/Slider.d.ts +3 -2
- package/dist/components/StatusBadge/StatusBadge.d.ts +2 -1
- package/dist/components/StructuredContent/StructuredContent.d.ts +41 -0
- package/dist/components/StructuredContent/StructuredContentTypes.d.ts +5 -0
- package/dist/components/Table/Table.d.ts +29 -0
- package/dist/components/Template/Template.d.ts +30 -6
- package/dist/components/Text/Text.d.ts +2 -2
- package/dist/components/TextInput/TextInput.d.ts +4 -3
- package/dist/components/Toggle/Toggle.d.ts +48 -0
- package/dist/components/Toggle/ToggleSizes.d.ts +4 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +17 -6
- package/dist/design-system-react-components.cjs.development.js +4698 -4405
- 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 +5862 -5573
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +0 -2
- package/dist/styles.css +2 -2
- package/dist/theme/components/breadcrumb.d.ts +1 -1
- package/dist/theme/components/button.d.ts +0 -12
- package/dist/theme/components/card.d.ts +14 -2
- package/dist/theme/components/customTable.d.ts +56 -0
- package/dist/theme/components/fieldset.d.ts +2 -2
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/heading.d.ts +4 -0
- package/dist/theme/components/label.d.ts +1 -1
- package/dist/theme/components/link.d.ts +14 -1
- package/dist/theme/components/list.d.ts +0 -2
- package/dist/theme/components/logo.d.ts +4 -0
- package/dist/theme/components/notification.d.ts +8 -4
- package/dist/theme/components/searchBar.d.ts +7 -13
- package/dist/theme/components/select.d.ts +1 -0
- package/dist/theme/components/structuredContent.d.ts +33 -0
- package/dist/theme/components/template.d.ts +10 -10
- package/dist/theme/components/textInput.d.ts +2 -0
- package/dist/theme/components/toggle.d.ts +71 -0
- package/dist/theme/foundations/spacing.d.ts +2 -0
- package/dist/utils/utils.d.ts +10 -0
- package/package.json +40 -37
- package/src/__tests__/utils/utils.test.ts +23 -1
- package/src/components/Accordion/Accordion.stories.mdx +16 -15
- package/src/components/Accordion/Accordion.test.tsx +45 -1
- package/src/components/Accordion/Accordion.tsx +20 -8
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +243 -0
- package/src/components/Autosuggest/Autosuggest.stories.mdx +2 -1
- package/src/components/Autosuggest/Autosuggest.stories.tsx +24 -48
- package/src/components/Autosuggest/_Autosuggest.scss +2 -6
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +43 -13
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +25 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +9 -3
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +103 -4
- package/src/components/Button/Button.stories.mdx +93 -48
- package/src/components/Button/Button.test.tsx +0 -12
- package/src/components/Button/Button.tsx +7 -8
- package/src/components/Button/ButtonTypes.tsx +0 -1
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -12
- package/src/components/Card/Card.stories.mdx +246 -64
- package/src/components/Card/Card.test.tsx +45 -22
- package/src/components/Card/Card.tsx +30 -14
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +75 -37
- package/src/components/Chakra/Box.stories.mdx +3 -3
- package/src/components/Chakra/Center.stories.mdx +5 -5
- package/src/components/Chakra/Flex.stories.mdx +113 -0
- package/src/components/Chakra/Grid.stories.mdx +14 -17
- package/src/components/Chakra/Stack.stories.mdx +2 -2
- package/src/components/Checkbox/Checkbox.stories.mdx +37 -15
- package/src/components/Checkbox/Checkbox.tsx +13 -8
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +48 -16
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +14 -10
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +6 -3
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +151 -0
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +36 -23
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +85 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +63 -18
- package/src/components/DatePicker/DatePicker.test.tsx +14 -12
- package/src/components/DatePicker/DatePicker.tsx +13 -10
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +41 -22
- package/src/components/Fieldset/Fieldset.stories.mdx +20 -9
- package/src/components/Fieldset/Fieldset.tsx +2 -4
- package/src/components/Form/Form.stories.mdx +75 -49
- package/src/components/Form/Form.test.tsx +92 -3
- package/src/components/Form/Form.tsx +28 -23
- package/src/components/Form/FormTypes.tsx +2 -2
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -1
- package/src/components/Grid/SimpleGrid.stories.mdx +26 -26
- package/src/components/Heading/Heading.stories.mdx +59 -23
- package/src/components/Heading/Heading.test.tsx +82 -18
- package/src/components/Heading/Heading.tsx +31 -31
- package/src/components/Heading/HeadingTypes.tsx +6 -6
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +71 -0
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +55 -27
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +42 -15
- package/src/components/HelperErrorText/HelperErrorText.tsx +24 -24
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +41 -4
- package/src/components/Hero/Hero.stories.mdx +72 -53
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +11 -9
- package/src/components/HorizontalRule/HorizontalRule.tsx +4 -6
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +4 -4
- package/src/components/Icons/Icon.stories.mdx +77 -75
- package/src/components/Icons/Icon.tsx +4 -5
- package/src/components/Icons/IconSvgs.tsx +2 -42
- package/src/components/Icons/IconTypes.tsx +1 -24
- package/src/components/Image/Image.stories.mdx +214 -104
- package/src/components/Image/Image.test.tsx +10 -0
- package/src/components/Image/Image.tsx +21 -10
- package/src/components/Image/ImageTypes.ts +2 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +24 -8
- package/src/components/Label/Label.stories.mdx +21 -20
- package/src/components/Link/Link.stories.mdx +103 -53
- package/src/components/Link/Link.test.tsx +108 -7
- package/src/components/Link/Link.tsx +58 -19
- package/src/components/Link/LinkTypes.tsx +1 -0
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +261 -0
- package/src/components/List/List.stories.mdx +37 -25
- package/src/components/List/List.tsx +1 -1
- package/src/components/Logo/Logo.stories.mdx +220 -0
- package/src/components/Logo/Logo.test.tsx +98 -0
- package/src/components/Logo/Logo.tsx +97 -0
- package/src/components/Logo/LogoSvgs.tsx +34 -0
- package/src/components/Logo/LogoTypes.tsx +32 -0
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +71 -0
- package/src/components/Modal/Modal.stories.mdx +20 -5
- package/src/components/Modal/Modal.tsx +2 -8
- package/src/components/Notification/Notification.stories.mdx +96 -40
- package/src/components/Notification/Notification.test.tsx +62 -16
- package/src/components/Notification/Notification.tsx +26 -9
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +121 -0
- package/src/components/Pagination/Pagination.stories.mdx +19 -9
- package/src/components/Pagination/Pagination.tsx +3 -3
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +42 -0
- package/src/components/Placeholder/Placeholder.tsx +7 -14
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +74 -46
- package/src/components/Radio/Radio.stories.mdx +39 -19
- package/src/components/Radio/Radio.tsx +13 -9
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +5 -5
- package/src/components/RadioGroup/RadioGroup.stories.mdx +50 -16
- package/src/components/RadioGroup/RadioGroup.test.tsx +13 -11
- package/src/components/RadioGroup/RadioGroup.tsx +97 -94
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +24 -21
- package/src/components/SearchBar/SearchBar.Test.tsx +160 -34
- package/src/components/SearchBar/SearchBar.stories.mdx +116 -34
- package/src/components/SearchBar/SearchBar.tsx +70 -50
- package/src/components/Select/Select.stories.mdx +177 -66
- package/src/components/Select/Select.test.tsx +91 -2
- package/src/components/Select/Select.tsx +29 -13
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +545 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +50 -16
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +8 -4
- package/src/components/Slider/Slider.stories.mdx +74 -23
- package/src/components/Slider/Slider.test.tsx +35 -0
- package/src/components/Slider/Slider.tsx +22 -11
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +67 -30
- package/src/components/StatusBadge/StatusBadge.stories.mdx +33 -18
- package/src/components/StatusBadge/StatusBadge.tsx +2 -1
- package/src/components/StructuredContent/StructuredContent.stories.mdx +427 -0
- package/src/components/StructuredContent/StructuredContent.test.tsx +376 -0
- package/src/components/StructuredContent/StructuredContent.tsx +153 -0
- package/src/components/StructuredContent/StructuredContentTypes.tsx +5 -0
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +283 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +32 -83
- package/src/components/StyleGuide/Breakpoints.stories.mdx +1 -11
- package/src/components/StyleGuide/Buttons.stories.mdx +3 -18
- package/src/components/StyleGuide/ColorCard.tsx +1 -2
- package/src/components/StyleGuide/Colors.stories.mdx +3 -11
- package/src/components/StyleGuide/DesignTokens.stories.mdx +3 -8
- package/src/components/StyleGuide/Forms.stories.mdx +2 -10
- package/src/components/StyleGuide/Iconography.stories.mdx +8 -34
- package/src/components/StyleGuide/Spacing.stories.mdx +3 -14
- package/src/components/StyleGuide/Typography.stories.mdx +64 -76
- package/src/components/Table/Table.stories.mdx +165 -0
- package/src/components/Table/Table.test.tsx +137 -0
- package/src/components/Table/Table.tsx +126 -0
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +1179 -0
- package/src/components/Tabs/Tabs.stories.mdx +20 -14
- package/src/components/Tabs/Tabs.test.tsx +21 -5
- package/src/components/Tabs/Tabs.tsx +33 -18
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +195 -0
- package/src/components/Template/Template.stories.mdx +132 -49
- package/src/components/Template/Template.test.tsx +128 -6
- package/src/components/Template/Template.tsx +93 -13
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +169 -0
- package/src/components/Text/Text.stories.mdx +33 -11
- package/src/components/Text/Text.tsx +2 -2
- package/src/components/TextInput/TextInput.stories.mdx +84 -17
- package/src/components/TextInput/TextInput.test.tsx +96 -0
- package/src/components/TextInput/TextInput.tsx +12 -8
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +240 -0
- package/src/components/Toggle/Toggle.stories.mdx +200 -0
- package/src/components/Toggle/Toggle.test.tsx +140 -0
- package/src/components/Toggle/Toggle.tsx +123 -0
- package/src/components/Toggle/ToggleSizes.tsx +4 -0
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +255 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +96 -25
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +103 -1
- package/src/components/VideoPlayer/VideoPlayer.tsx +72 -22
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +57 -3
- package/src/docs/Chakra.stories.mdx +5 -8
- package/src/docs/Intro.stories.mdx +2 -2
- package/src/index.ts +19 -6
- package/src/styles/base/_03-base.scss +1 -1
- package/src/styles/base/_place-holder.scss +7 -7
- package/src/styles.scss +1 -5
- package/src/theme/components/breadcrumb.ts +5 -5
- package/src/theme/components/button.ts +5 -12
- package/src/theme/components/card.ts +9 -7
- package/src/theme/components/checkbox.ts +1 -1
- package/src/theme/components/customTable.ts +63 -0
- package/src/theme/components/datePicker.ts +1 -1
- package/src/theme/components/global.ts +7 -7
- package/src/theme/components/heading.ts +13 -11
- package/src/theme/components/helperErrorText.ts +1 -1
- package/src/theme/components/icon.ts +2 -2
- package/src/theme/components/image.ts +9 -1
- package/src/theme/components/link.ts +17 -5
- package/src/theme/components/list.ts +1 -3
- package/src/theme/components/logo.ts +54 -0
- package/src/theme/components/notification.ts +9 -7
- package/src/theme/components/searchBar.ts +7 -13
- package/src/theme/components/select.ts +1 -0
- package/src/theme/components/statusBadge.ts +1 -1
- package/src/theme/components/structuredContent.ts +54 -0
- package/src/theme/components/template.ts +10 -10
- package/src/theme/components/text.ts +6 -6
- package/src/theme/components/textInput.ts +1 -0
- package/src/theme/components/toggle.ts +69 -0
- package/src/theme/components/videoPlayer.ts +0 -2
- package/src/theme/foundations/global.ts +2 -2
- package/src/theme/foundations/spacing.ts +3 -0
- package/src/theme/foundations/typography.ts +84 -12
- package/src/theme/index.ts +8 -0
- package/src/utils/componentCategories.ts +5 -2
- package/src/utils/utils.ts +17 -0
- package/dist/__tests__/utils/bem.test.d.ts +0 -1
- package/dist/components/CardEdition/CardEdition.d.ts +0 -21
- package/dist/components/CardEdition/CardEdition.stories.d.ts +0 -27
- package/dist/components/Input/Input.d.ts +0 -36
- package/dist/components/Input/Input.stories.d.ts +0 -29
- package/dist/components/Input/InputTypes.d.ts +0 -6
- package/dist/components/StyleGuide/UIDocCard.d.ts +0 -11
- package/dist/helpers/CSSVariablesHelper.d.ts +0 -3
- package/dist/helpers/getCSSVariable.d.ts +0 -1
- package/dist/interfaces.d.ts +0 -3
- package/dist/utils/bem.d.ts +0 -1
- package/src/__tests__/utils/bem.test.ts +0 -37
- package/src/components/CardEdition/CardEdition.stories.tsx +0 -122
- package/src/components/CardEdition/CardEdition.test.tsx +0 -395
- package/src/components/CardEdition/CardEdition.tsx +0 -60
- package/src/components/CardEdition/_CardEdition.scss +0 -137
- package/src/components/Input/Input.stories.tsx +0 -133
- package/src/components/Input/Input.test.tsx +0 -266
- package/src/components/Input/Input.tsx +0 -81
- package/src/components/Input/InputTypes.tsx +0 -8
- package/src/components/Input/_Input.scss +0 -78
- package/src/components/StyleGuide/UIDocCard.tsx +0 -36
- package/src/helpers/CSSVariablesHelper.tsx +0 -34
- package/src/helpers/getCSSVariable.tsx +0 -5
- package/src/interfaces.ts +0 -3
- package/src/utils/bem.ts +0 -44
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
2
|
ArgsTable,
|
|
3
|
+
Canvas,
|
|
6
4
|
Description,
|
|
7
|
-
|
|
5
|
+
Meta,
|
|
6
|
+
Story,
|
|
7
|
+
} from "@storybook/addon-docs";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
9
|
|
|
10
|
-
import
|
|
11
|
-
import DSProvider from "../../theme/provider";
|
|
10
|
+
import Radio from "../Radio/Radio";
|
|
12
11
|
import RadioGroup, { onChangeDefault } from "./RadioGroup";
|
|
13
12
|
import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
|
|
14
|
-
import
|
|
13
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
14
|
+
import DSProvider from "../../theme/provider";
|
|
15
|
+
import { getStorybookEnumValues } from "../../utils/utils";
|
|
16
|
+
|
|
17
|
+
export const enumValues = getStorybookEnumValues(
|
|
18
|
+
RadioGroupLayoutTypes,
|
|
19
|
+
"RadioGroupLayoutTypes"
|
|
20
|
+
);
|
|
15
21
|
|
|
16
22
|
<Meta
|
|
17
23
|
title={getCategory("RadioGroup")}
|
|
@@ -20,16 +26,40 @@ import Radio from "../Radio/Radio";
|
|
|
20
26
|
parameters={{
|
|
21
27
|
design: {
|
|
22
28
|
type: "figma",
|
|
23
|
-
url:
|
|
24
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
|
|
29
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=11895%3A742",
|
|
25
30
|
},
|
|
26
31
|
jest: ["RadioGroup.test.tsx"],
|
|
27
32
|
}}
|
|
28
33
|
argTypes={{
|
|
29
34
|
children: { table: { disable: true } },
|
|
30
|
-
className: {
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
className: { control: false },
|
|
36
|
+
id: { control: false },
|
|
37
|
+
isDisabled: {
|
|
38
|
+
table: { defaultValue: { summary: false } },
|
|
39
|
+
},
|
|
40
|
+
isInvalid: {
|
|
41
|
+
table: { defaultValue: { summary: false } },
|
|
42
|
+
},
|
|
43
|
+
isRequired: {
|
|
44
|
+
table: { defaultValue: { summary: false } },
|
|
45
|
+
},
|
|
46
|
+
layout: {
|
|
47
|
+
control: { type: "select" },
|
|
48
|
+
table: { defaultValue: { summary: "RadioGroupLayoutTypes.Column" } },
|
|
49
|
+
options: enumValues.options,
|
|
50
|
+
},
|
|
51
|
+
key: { table: { disable: true } },
|
|
52
|
+
onChange: { control: false },
|
|
53
|
+
ref: { table: { disable: true } },
|
|
54
|
+
optReqFlag: {
|
|
55
|
+
table: { defaultValue: { summary: true } },
|
|
56
|
+
},
|
|
57
|
+
showHelperInvalidText: {
|
|
58
|
+
table: { defaultValue: { summary: true } },
|
|
59
|
+
},
|
|
60
|
+
showLabel: {
|
|
61
|
+
table: { defaultValue: { summary: true } },
|
|
62
|
+
},
|
|
33
63
|
}}
|
|
34
64
|
/>
|
|
35
65
|
|
|
@@ -38,7 +68,7 @@ import Radio from "../Radio/Radio";
|
|
|
38
68
|
| Component Version | DS Version |
|
|
39
69
|
| ----------------- | ---------- |
|
|
40
70
|
| Added | `0.25.0` |
|
|
41
|
-
| Latest | `0.25.
|
|
71
|
+
| Latest | `0.25.10` |
|
|
42
72
|
|
|
43
73
|
<Description of={RadioGroup} />
|
|
44
74
|
|
|
@@ -46,21 +76,25 @@ import Radio from "../Radio/Radio";
|
|
|
46
76
|
<Story
|
|
47
77
|
name="RadioGroup"
|
|
48
78
|
args={{
|
|
79
|
+
className: undefined,
|
|
49
80
|
defaultValue: "4",
|
|
50
|
-
invalidText: "error!",
|
|
51
81
|
helperText: "This is the helper text for the full group.",
|
|
82
|
+
id: "radioGroup-id",
|
|
83
|
+
invalidText: "error!",
|
|
52
84
|
isDisabled: false,
|
|
53
85
|
isInvalid: false,
|
|
54
86
|
isRequired: false,
|
|
55
87
|
labelText: "Standard Radio Group",
|
|
56
|
-
layout: RadioGroupLayoutTypes.Column,
|
|
88
|
+
layout: "RadioGroupLayoutTypes.Column",
|
|
57
89
|
name: "radio-story",
|
|
90
|
+
onChange: undefined,
|
|
58
91
|
optReqFlag: true,
|
|
92
|
+
showHelperInvalidText: true,
|
|
59
93
|
showLabel: true,
|
|
60
94
|
}}
|
|
61
95
|
>
|
|
62
96
|
{(args) => (
|
|
63
|
-
<RadioGroup {...args}>
|
|
97
|
+
<RadioGroup {...args} layout={enumValues.getValue(args.layout)}>
|
|
64
98
|
<Radio value="2" labelText="Radio 2" />
|
|
65
99
|
<Radio value="3" labelText="Radio 3" />
|
|
66
100
|
<Radio value="4" labelText="Radio 4" />
|
|
@@ -3,7 +3,7 @@ import { render, screen } from "@testing-library/react";
|
|
|
3
3
|
import { axe } from "jest-axe";
|
|
4
4
|
import renderer from "react-test-renderer";
|
|
5
5
|
|
|
6
|
-
import * as generateUUID from "../../helpers/generateUUID";
|
|
6
|
+
// import * as generateUUID from "../../helpers/generateUUID";
|
|
7
7
|
import RadioGroup from "./RadioGroup";
|
|
8
8
|
import Radio from "../Radio/Radio";
|
|
9
9
|
import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
|
|
@@ -131,16 +131,18 @@ describe("Radio Button", () => {
|
|
|
131
131
|
expect(newValue).toEqual("2");
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
134
|
+
// TODO: Figure out why this renders twice with two different calls
|
|
135
|
+
// to the render function.
|
|
136
|
+
// it("calls the UUID generation function if no id prop value is passed", () => {
|
|
137
|
+
// const generateUUIDSpy = jest.spyOn(generateUUID, "default");
|
|
138
|
+
// expect(generateUUIDSpy).toHaveBeenCalledTimes(0);
|
|
139
|
+
// render(
|
|
140
|
+
// <RadioGroup labelText="Test Label" name="test6">
|
|
141
|
+
// <Radio value="2" labelText="Radio 2" id="radio2" />
|
|
142
|
+
// </RadioGroup>
|
|
143
|
+
// );
|
|
144
|
+
// expect(generateUUIDSpy).toHaveBeenCalledTimes(1);
|
|
145
|
+
// });
|
|
144
146
|
|
|
145
147
|
it("sets the 'disabled' attribute for all its Radio children", () => {
|
|
146
148
|
render(
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
import {
|
|
3
2
|
Box,
|
|
4
3
|
Stack,
|
|
5
4
|
useMultiStyleConfig,
|
|
6
5
|
useRadioGroup,
|
|
7
6
|
} from "@chakra-ui/react";
|
|
7
|
+
import * as React from "react";
|
|
8
8
|
|
|
9
|
-
import
|
|
10
|
-
import
|
|
9
|
+
import Fieldset from "../Fieldset/Fieldset";
|
|
10
|
+
import HelperErrorText, {
|
|
11
|
+
HelperErrorTextType,
|
|
12
|
+
} from "../HelperErrorText/HelperErrorText";
|
|
11
13
|
import { spacing } from "../../theme/foundations/spacing";
|
|
12
|
-
import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
|
|
13
14
|
import Radio from "../Radio/Radio";
|
|
14
|
-
import
|
|
15
|
+
import { RadioGroupLayoutTypes } from "./RadioGroupLayoutTypes";
|
|
16
|
+
import generateUUID from "../../helpers/generateUUID";
|
|
15
17
|
|
|
16
18
|
export interface RadioGroupProps {
|
|
17
|
-
/** Any child node passed to the component. */
|
|
18
|
-
children: React.ReactNode;
|
|
19
19
|
/** Additional class name. */
|
|
20
20
|
className?: string;
|
|
21
21
|
/** Populates the initial value of the input */
|
|
22
22
|
defaultValue?: string;
|
|
23
23
|
/** Optional string to populate the HelperErrorText for standard state */
|
|
24
|
-
helperText?:
|
|
24
|
+
helperText?: HelperErrorTextType;
|
|
25
25
|
/** ID that other components can cross reference for accessibility purposes */
|
|
26
26
|
id?: string;
|
|
27
27
|
/** Optional string to populate the HelperErrorText for error state */
|
|
28
|
-
invalidText?:
|
|
28
|
+
invalidText?: HelperErrorTextType;
|
|
29
29
|
/** Adds the 'disabled' prop to the input when true. */
|
|
30
30
|
isDisabled?: boolean;
|
|
31
31
|
/** Adds the 'aria-invalid' attribute to the input and
|
|
@@ -56,99 +56,102 @@ export const onChangeDefault = () => {
|
|
|
56
56
|
return;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
const RadioGroup = React.forwardRef<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
59
|
+
const RadioGroup = React.forwardRef<
|
|
60
|
+
HTMLInputElement,
|
|
61
|
+
React.PropsWithChildren<RadioGroupProps>
|
|
62
|
+
>((props, ref?) => {
|
|
63
|
+
const {
|
|
64
|
+
children,
|
|
65
|
+
className = "",
|
|
66
|
+
defaultValue,
|
|
67
|
+
helperText,
|
|
68
|
+
id = generateUUID(),
|
|
69
|
+
invalidText,
|
|
70
|
+
isDisabled = false,
|
|
71
|
+
isInvalid = false,
|
|
72
|
+
isRequired = false,
|
|
73
|
+
labelText,
|
|
74
|
+
layout = RadioGroupLayoutTypes.Column,
|
|
75
|
+
name,
|
|
76
|
+
onChange = onChangeDefault,
|
|
77
|
+
optReqFlag = true,
|
|
78
|
+
showHelperInvalidText = true,
|
|
79
|
+
showLabel = true,
|
|
80
|
+
} = props;
|
|
81
|
+
const footnote: HelperErrorTextType = isInvalid ? invalidText : helperText;
|
|
82
|
+
const spacingProp =
|
|
83
|
+
layout === RadioGroupLayoutTypes.Column ? spacing.s : spacing.l;
|
|
84
|
+
const newChildren = [];
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
// Use Chakra's RadioGroup hook to set and get the proper props
|
|
87
|
+
// or the custom components.
|
|
88
|
+
const { getRootProps, getRadioProps } = useRadioGroup({
|
|
89
|
+
name,
|
|
90
|
+
defaultValue,
|
|
91
|
+
onChange,
|
|
92
|
+
});
|
|
93
|
+
const radioGroupProps = getRootProps();
|
|
92
94
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
95
|
+
// Go through the Radio children and update them as needed.
|
|
96
|
+
React.Children.map(children, (child: React.ReactElement, i) => {
|
|
97
|
+
if (child.type !== Radio) {
|
|
98
|
+
// Special case for Storybook MDX documentation.
|
|
99
|
+
if (child.props.mdxType && child.props.mdxType === "Radio") {
|
|
100
|
+
noop();
|
|
101
|
+
} else {
|
|
102
|
+
console.warn(
|
|
103
|
+
"Only `Radio` components are allowed inside the `RadioGroup` component."
|
|
104
|
+
);
|
|
104
105
|
}
|
|
106
|
+
}
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
108
|
+
const chakraRadioProps = getRadioProps({
|
|
109
|
+
value: child.props.value,
|
|
110
|
+
} as any);
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
newChildren.push(
|
|
116
|
-
React.cloneElement(child, { ...newProps, ...chakraRadioProps })
|
|
117
|
-
);
|
|
112
|
+
if (child !== undefined && child !== null) {
|
|
113
|
+
const newProps = { key: i, isDisabled, isInvalid, isRequired };
|
|
114
|
+
if (child.props.value === defaultValue) {
|
|
115
|
+
newProps["checked"] = true;
|
|
118
116
|
}
|
|
119
|
-
|
|
117
|
+
newChildren.push(
|
|
118
|
+
React.cloneElement(child, { ...newProps, ...chakraRadioProps })
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
120
122
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
// Get the Chakra-based styles for the custom elements in this component.
|
|
124
|
+
const styles = useMultiStyleConfig("RadioGroup", {});
|
|
123
125
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
return (
|
|
127
|
+
<Fieldset
|
|
128
|
+
className={className}
|
|
129
|
+
id={`radio-group-${id}`}
|
|
130
|
+
isLegendHidden={!showLabel}
|
|
131
|
+
legendText={labelText}
|
|
132
|
+
optReqFlag={optReqFlag}
|
|
133
|
+
>
|
|
134
|
+
<Stack
|
|
135
|
+
aria-label={!showLabel ? labelText : null}
|
|
136
|
+
direction={[layout]}
|
|
137
|
+
spacing={spacingProp}
|
|
138
|
+
ref={ref}
|
|
139
|
+
{...radioGroupProps}
|
|
140
|
+
sx={styles.stack}
|
|
131
141
|
>
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
</
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
</HelperErrorText>
|
|
147
|
-
</Box>
|
|
148
|
-
)}
|
|
149
|
-
</Fieldset>
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
);
|
|
142
|
+
{newChildren}
|
|
143
|
+
</Stack>
|
|
144
|
+
{footnote && showHelperInvalidText && (
|
|
145
|
+
<Box __css={styles.helper}>
|
|
146
|
+
<HelperErrorText
|
|
147
|
+
id={`${id}-helperErrorText`}
|
|
148
|
+
isInvalid={isInvalid}
|
|
149
|
+
text={footnote}
|
|
150
|
+
/>
|
|
151
|
+
</Box>
|
|
152
|
+
)}
|
|
153
|
+
</Fieldset>
|
|
154
|
+
);
|
|
155
|
+
});
|
|
153
156
|
|
|
154
157
|
export default RadioGroup;
|
|
@@ -19,7 +19,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
|
|
|
19
19
|
role="radiogroup"
|
|
20
20
|
>
|
|
21
21
|
<label
|
|
22
|
-
className="chakra-radio css-
|
|
22
|
+
className="chakra-radio css-1pw4d56"
|
|
23
23
|
>
|
|
24
24
|
<input
|
|
25
25
|
checked={false}
|
|
@@ -66,7 +66,7 @@ exports[`Radio Button renders the UI snapshot correctly 1`] = `
|
|
|
66
66
|
</span>
|
|
67
67
|
</label>
|
|
68
68
|
<label
|
|
69
|
-
className="chakra-radio css-
|
|
69
|
+
className="chakra-radio css-1pw4d56"
|
|
70
70
|
>
|
|
71
71
|
<input
|
|
72
72
|
checked={false}
|
|
@@ -135,7 +135,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
|
|
|
135
135
|
role="radiogroup"
|
|
136
136
|
>
|
|
137
137
|
<label
|
|
138
|
-
className="chakra-radio css-
|
|
138
|
+
className="chakra-radio css-1pw4d56"
|
|
139
139
|
>
|
|
140
140
|
<input
|
|
141
141
|
checked={false}
|
|
@@ -182,7 +182,7 @@ exports[`Radio Button renders the UI snapshot correctly 2`] = `
|
|
|
182
182
|
</span>
|
|
183
183
|
</label>
|
|
184
184
|
<label
|
|
185
|
-
className="chakra-radio css-
|
|
185
|
+
className="chakra-radio css-1pw4d56"
|
|
186
186
|
>
|
|
187
187
|
<input
|
|
188
188
|
checked={false}
|
|
@@ -251,7 +251,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
|
|
|
251
251
|
role="radiogroup"
|
|
252
252
|
>
|
|
253
253
|
<label
|
|
254
|
-
className="chakra-radio css-
|
|
254
|
+
className="chakra-radio css-1pw4d56"
|
|
255
255
|
>
|
|
256
256
|
<input
|
|
257
257
|
checked={false}
|
|
@@ -298,7 +298,7 @@ exports[`Radio Button renders the UI snapshot correctly 3`] = `
|
|
|
298
298
|
</span>
|
|
299
299
|
</label>
|
|
300
300
|
<label
|
|
301
|
-
className="chakra-radio css-
|
|
301
|
+
className="chakra-radio css-1pw4d56"
|
|
302
302
|
>
|
|
303
303
|
<input
|
|
304
304
|
checked={false}
|
|
@@ -367,7 +367,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
|
|
|
367
367
|
role="radiogroup"
|
|
368
368
|
>
|
|
369
369
|
<label
|
|
370
|
-
className="chakra-radio css-
|
|
370
|
+
className="chakra-radio css-1pw4d56"
|
|
371
371
|
>
|
|
372
372
|
<input
|
|
373
373
|
checked={false}
|
|
@@ -414,7 +414,7 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
|
|
|
414
414
|
</span>
|
|
415
415
|
</label>
|
|
416
416
|
<label
|
|
417
|
-
className="chakra-radio css-
|
|
417
|
+
className="chakra-radio css-1pw4d56"
|
|
418
418
|
>
|
|
419
419
|
<input
|
|
420
420
|
checked={false}
|
|
@@ -468,11 +468,14 @@ exports[`Radio Button renders the UI snapshot correctly 4`] = `
|
|
|
468
468
|
aria-atomic={true}
|
|
469
469
|
aria-live="off"
|
|
470
470
|
className=" css-0"
|
|
471
|
+
dangerouslySetInnerHTML={
|
|
472
|
+
Object {
|
|
473
|
+
"__html": "helper text",
|
|
474
|
+
}
|
|
475
|
+
}
|
|
471
476
|
data-isinvalid={false}
|
|
472
477
|
id="helperText-helperErrorText"
|
|
473
|
-
|
|
474
|
-
helper text
|
|
475
|
-
</div>
|
|
478
|
+
/>
|
|
476
479
|
</div>
|
|
477
480
|
</fieldset>
|
|
478
481
|
`;
|
|
@@ -496,7 +499,7 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
|
|
|
496
499
|
role="radiogroup"
|
|
497
500
|
>
|
|
498
501
|
<label
|
|
499
|
-
className="chakra-radio css-
|
|
502
|
+
className="chakra-radio css-1pw4d56"
|
|
500
503
|
>
|
|
501
504
|
<input
|
|
502
505
|
checked={false}
|
|
@@ -543,7 +546,7 @@ exports[`Radio Button renders the UI snapshot correctly 5`] = `
|
|
|
543
546
|
</span>
|
|
544
547
|
</label>
|
|
545
548
|
<label
|
|
546
|
-
className="chakra-radio css-
|
|
549
|
+
className="chakra-radio css-1pw4d56"
|
|
547
550
|
>
|
|
548
551
|
<input
|
|
549
552
|
checked={false}
|
|
@@ -607,7 +610,7 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
|
|
|
607
610
|
role="radiogroup"
|
|
608
611
|
>
|
|
609
612
|
<label
|
|
610
|
-
className="chakra-radio css-
|
|
613
|
+
className="chakra-radio css-1pw4d56"
|
|
611
614
|
>
|
|
612
615
|
<input
|
|
613
616
|
checked={false}
|
|
@@ -654,7 +657,7 @@ exports[`Radio Button renders the UI snapshot correctly 6`] = `
|
|
|
654
657
|
</span>
|
|
655
658
|
</label>
|
|
656
659
|
<label
|
|
657
|
-
className="chakra-radio css-
|
|
660
|
+
className="chakra-radio css-1pw4d56"
|
|
658
661
|
>
|
|
659
662
|
<input
|
|
660
663
|
checked={false}
|
|
@@ -723,7 +726,7 @@ exports[`Radio Button renders the UI snapshot correctly 7`] = `
|
|
|
723
726
|
role="radiogroup"
|
|
724
727
|
>
|
|
725
728
|
<label
|
|
726
|
-
className="chakra-radio css-
|
|
729
|
+
className="chakra-radio css-1pw4d56"
|
|
727
730
|
>
|
|
728
731
|
<input
|
|
729
732
|
aria-required={true}
|
|
@@ -771,7 +774,7 @@ exports[`Radio Button renders the UI snapshot correctly 7`] = `
|
|
|
771
774
|
</span>
|
|
772
775
|
</label>
|
|
773
776
|
<label
|
|
774
|
-
className="chakra-radio css-
|
|
777
|
+
className="chakra-radio css-1pw4d56"
|
|
775
778
|
>
|
|
776
779
|
<input
|
|
777
780
|
aria-required={true}
|
|
@@ -841,7 +844,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
|
|
|
841
844
|
role="radiogroup"
|
|
842
845
|
>
|
|
843
846
|
<label
|
|
844
|
-
className="chakra-radio css-
|
|
847
|
+
className="chakra-radio css-1pw4d56"
|
|
845
848
|
data-invalid=""
|
|
846
849
|
>
|
|
847
850
|
<input
|
|
@@ -892,7 +895,7 @@ exports[`Radio Button renders the UI snapshot correctly 8`] = `
|
|
|
892
895
|
</span>
|
|
893
896
|
</label>
|
|
894
897
|
<label
|
|
895
|
-
className="chakra-radio css-
|
|
898
|
+
className="chakra-radio css-1pw4d56"
|
|
896
899
|
data-invalid=""
|
|
897
900
|
>
|
|
898
901
|
<input
|
|
@@ -965,7 +968,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
|
|
|
965
968
|
role="radiogroup"
|
|
966
969
|
>
|
|
967
970
|
<label
|
|
968
|
-
className="chakra-radio css-
|
|
971
|
+
className="chakra-radio css-1pw4d56"
|
|
969
972
|
data-disabled=""
|
|
970
973
|
>
|
|
971
974
|
<input
|
|
@@ -1016,7 +1019,7 @@ exports[`Radio Button renders the UI snapshot correctly 9`] = `
|
|
|
1016
1019
|
</span>
|
|
1017
1020
|
</label>
|
|
1018
1021
|
<label
|
|
1019
|
-
className="chakra-radio css-
|
|
1022
|
+
className="chakra-radio css-1pw4d56"
|
|
1020
1023
|
data-disabled=""
|
|
1021
1024
|
>
|
|
1022
1025
|
<input
|