@madie/madie-design-system 1.0.47 → 1.0.49

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.
Files changed (53) hide show
  1. package/.babelrc +2 -8
  2. package/.eslintrc.js +15 -15
  3. package/.storybook/main.js +39 -40
  4. package/.storybook/preview-head.html +3 -3
  5. package/.storybook/preview.js +2 -2
  6. package/README.md +0 -1
  7. package/components/AutoComplete/AutoComplete.jsx +56 -46
  8. package/components/AutoComplete/AutoComplete.stories.js +18 -7
  9. package/components/Breadcrumb/Breadcrumb.md +7 -7
  10. package/components/DateField/DateField.jsx +85 -0
  11. package/components/DateField/DateField.stories.jsx +25 -0
  12. package/components/MadieDeleteDialog/MadieDeleteDialog.stories.js +1 -1
  13. package/components/MadieDeleteDialog/index.jsx +1 -1
  14. package/components/Pagination/index.jsx +6 -8
  15. package/components/Popover/Popover.stories.js +7 -5
  16. package/components/Popover/index.js +2 -1
  17. package/components/RadioButton/RadioButton.jsx +29 -20
  18. package/components/RadioButton/RadioButton.stories.jsx +4 -4
  19. package/components/Select/Select.stories.js +76 -73
  20. package/components/Select/index.jsx +54 -43
  21. package/components/Tabs/Tab.js +24 -31
  22. package/components/Tabs/Tabs.stories.js +157 -42
  23. package/components/Tabs/index.js +22 -30
  24. package/components/TextArea/TextArea.stories.js +7 -3
  25. package/components/TextArea/index.jsx +64 -56
  26. package/components/TextField/TextField.stories.js +37 -34
  27. package/components/TextField/index.jsx +89 -77
  28. package/components/Toast/index.jsx +3 -1
  29. package/components/index.js +3 -1
  30. package/dist/browser.js +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/react/index.js +19 -19
  33. package/dist/react/index.js.LICENSE.txt +9 -0
  34. package/dist/react/index.js.map +1 -1
  35. package/index.js +9 -10
  36. package/jest/mediaFileTransformer.js +2 -2
  37. package/jest.config.js +7 -7
  38. package/lib/Chevron.jsx +22 -22
  39. package/lib/SvgComponents.jsx +384 -359
  40. package/package.json +3 -1
  41. package/storybook-static/602.f6d1ca28.iframe.bundle.js +103 -0
  42. package/storybook-static/{533.ce3f16be.iframe.bundle.js.map → 602.f6d1ca28.iframe.bundle.js.map} +1 -1
  43. package/storybook-static/iframe.html +1 -1
  44. package/storybook-static/main.04a59fc2.iframe.bundle.js +1 -0
  45. package/storybook-static/project.json +1 -1
  46. package/svgo.config.js +1 -1
  47. package/test/components/DateField.test.js +29 -0
  48. package/test-setup.js +4 -4
  49. package/webpack.config.js +116 -116
  50. package/webpack.config.react.js +69 -69
  51. package/storybook-static/533.ce3f16be.iframe.bundle.js +0 -103
  52. package/storybook-static/main.24906d7d.iframe.bundle.js +0 -1
  53. /package/storybook-static/{533.ce3f16be.iframe.bundle.js.LICENSE.txt → 602.f6d1ca28.iframe.bundle.js.LICENSE.txt} +0 -0
package/.babelrc CHANGED
@@ -1,10 +1,4 @@
1
1
  {
2
- "presets": [
3
- "@babel/preset-react",
4
- "@babel/preset-env"
5
- ],
6
- "plugins": [
7
- "transform-es2015-modules-umd",
8
- "transform-class-properties"
9
- ]
2
+ "presets": ["@babel/preset-react", "@babel/preset-env"],
3
+ "plugins": ["transform-es2015-modules-umd", "transform-class-properties"]
10
4
  }
package/.eslintrc.js CHANGED
@@ -1,31 +1,31 @@
1
1
  module.exports = {
2
- extends: ['eslint:recommended', 'plugin:react/recommended'],
3
- parser: 'babel-eslint',
2
+ extends: ["eslint:recommended", "plugin:react/recommended"],
3
+ parser: "babel-eslint",
4
4
  parserOptions: {
5
- sourceType: 'module',
5
+ sourceType: "module",
6
6
  ecmaFeatures: {
7
- jsx: true
8
- }
7
+ jsx: true,
8
+ },
9
9
  },
10
10
  env: {
11
11
  es6: true,
12
12
  node: true,
13
13
  browser: true,
14
14
  jquery: true,
15
- mocha: true
15
+ mocha: true,
16
16
  },
17
17
  rules: {
18
- 'no-unused-vars': [
19
- 'error',
18
+ "no-unused-vars": [
19
+ "error",
20
20
  {
21
- args: 'none'
22
- }
21
+ args: "none",
22
+ },
23
23
  ],
24
- 'linebreak-style': ['error', 'unix'],
25
- 'no-console': 0,
26
- 'no-prototype-builtins': [0]
24
+ "linebreak-style": ["error", "unix"],
25
+ "no-console": 0,
26
+ "no-prototype-builtins": [0],
27
27
  },
28
28
  settings: {
29
- react: { version: 'detect' }
30
- }
29
+ react: { version: "detect" },
30
+ },
31
31
  };
@@ -1,46 +1,45 @@
1
-
2
1
  module.exports = {
3
2
  core: {
4
- builder: 'webpack5',
3
+ builder: "webpack5",
5
4
  },
6
- stories: [
7
- '../components/**/*.stories.@(js|jsx|mdx)',
8
- '../lib/**/*.stories.@(js|jsx|mdx)',
9
- ],
10
- addons: [
11
- '@storybook/addon-actions',
12
- '@storybook/addon-links',
13
- '@storybook/addon-storysource',
14
- '@storybook/addon-knobs',
15
- '@storybook/addon-a11y',
16
- '@storybook/addon-docs',
17
- '@storybook/addon-backgrounds',
18
- '@storybook/addon-viewport',
19
- '@storybook/addon-postcss',
20
- ],
21
- webpackFinal: async (config) => {
22
- // do mutation to the config
5
+ stories: [
6
+ "../components/**/*.stories.@(js|jsx|mdx)",
7
+ "../lib/**/*.stories.@(js|jsx|mdx)",
8
+ ],
9
+ addons: [
10
+ "@storybook/addon-actions",
11
+ "@storybook/addon-links",
12
+ "@storybook/addon-storysource",
13
+ "@storybook/addon-knobs",
14
+ "@storybook/addon-a11y",
15
+ "@storybook/addon-docs",
16
+ "@storybook/addon-backgrounds",
17
+ "@storybook/addon-viewport",
18
+ "@storybook/addon-postcss",
19
+ ],
20
+ webpackFinal: async (config) => {
21
+ // do mutation to the config
23
22
 
24
- config.module.rules.push({
25
- test: /\.scss$/,
26
- resolve: {
27
- extensions: ['.scss', '.sass'],
28
- },
29
- use: [
30
- { loader: 'style-loader' },
31
- {
32
- loader: 'css-loader',
33
- options: { sourceMap: true, importLoaders: 1 },
34
- },
35
- {
36
- loader: 'sass-loader',
37
- options: {
38
- sourceMap: true,
39
- },
40
- },
41
- ],
42
- });
23
+ config.module.rules.push({
24
+ test: /\.scss$/,
25
+ resolve: {
26
+ extensions: [".scss", ".sass"],
27
+ },
28
+ use: [
29
+ { loader: "style-loader" },
30
+ {
31
+ loader: "css-loader",
32
+ options: { sourceMap: true, importLoaders: 1 },
33
+ },
34
+ {
35
+ loader: "sass-loader",
36
+ options: {
37
+ sourceMap: true,
38
+ },
39
+ },
40
+ ],
41
+ });
43
42
 
44
- return config;
45
- },
43
+ return config;
44
+ },
46
45
  };
@@ -3,7 +3,7 @@
3
3
  TODO: <Header> should be refactored to no longer rely on bootstrap.
4
4
  -->
5
5
  <script
6
- src="https://code.jquery.com/jquery-3.5.1.min.js"
7
- integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
8
- crossorigin="anonymous"
6
+ src="https://code.jquery.com/jquery-3.5.1.min.js"
7
+ integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
8
+ crossorigin="anonymous"
9
9
  ></script>
@@ -1,5 +1,5 @@
1
- import '../../shared/styles/_main.scss';
1
+ import "../../shared/styles/_main.scss";
2
2
 
3
3
  export const parameters = {
4
- layout: 'fullscreen',
4
+ layout: "fullscreen",
5
5
  };
package/README.md CHANGED
@@ -1,4 +1,3 @@
1
1
  # Madie/madie-design-system React
2
2
 
3
3
  This directory contains react implementations of the components for Madie.
4
-
@@ -31,10 +31,10 @@ const autoCompleteStyles = {
31
31
  paddingTop: 0,
32
32
  paddingBottom: 0,
33
33
  },
34
- "& .Mui-disabled" : {
34
+ "& .Mui-disabled": {
35
35
  backgroundColor: "#EDEDED",
36
36
  border: "#EDEDED",
37
- }
37
+ },
38
38
  };
39
39
 
40
40
  const checkedIcon = <CheckBoxIcon fontSize="small" />;
@@ -83,68 +83,78 @@ const AutoComplete = ({
83
83
  }) => {
84
84
  return (
85
85
  <FormControl error={error} fullWidth>
86
- <div style={{ width: 1, display: "flex", flexDirection: "column", flexGrow: 1}}/>
86
+ <div
87
+ style={{
88
+ width: 1,
89
+ display: "flex",
90
+ flexDirection: "column",
91
+ flexGrow: 1,
92
+ }}
93
+ />
87
94
  <InputLabel
88
95
  htmlFor={`${id}`}
89
96
  id={`${id}-label`}
90
97
  disabled={disabled}
91
98
  required={required}
92
99
  shrink
93
- style={{marginBottom: 0, height: 16}} // force a heignt
100
+ style={{ marginBottom: 0, height: 16 }} // force a heignt
94
101
  sx={[
95
- {
96
- backgroundColor: "transparent",
97
- display: "flex",
98
- flexDirection: "row-reverse",
99
- alignSelf: "baseline",
100
- textTransform: "none",
101
- // force it outside the select box
102
- position: "initial",
103
- transform: "translateX(0px) translateY(0px)",
104
- fontFamily: "Rubik",
105
- fontWeight: 500,
106
- fontSize: 14,
107
- color: "#333",
108
- "& .MuiInputLabel-asterisk": {
109
- color: "#AE1C1C !important",
110
- marginRight: "3px !important", //this was
102
+ {
103
+ backgroundColor: "transparent",
104
+ display: "flex",
105
+ flexDirection: "row-reverse",
106
+ alignSelf: "baseline",
107
+ textTransform: "none",
108
+ // force it outside the select box
109
+ position: "initial",
110
+ transform: "translateX(0px) translateY(0px)",
111
+ fontFamily: "Rubik",
112
+ fontWeight: 500,
113
+ fontSize: 14,
114
+ color: "#333",
115
+ "& .MuiInputLabel-asterisk": {
116
+ color: "#AE1C1C !important",
117
+ marginRight: "3px !important", //this was
118
+ },
119
+ },
120
+ required && {
121
+ transform: "translateX(-12px) translateY(0px)",
122
+ "& .MuiInputLabel-asterisk": {
123
+ color: "#D92F2",
124
+ marginRight: "3px !important", //this was
125
+ },
126
+ },
127
+ disabled && {
128
+ color: "rgba(0,0,0,0.6)",
111
129
  },
112
- },
113
- required && {
114
- transform: "translateX(-12px) translateY(0px)",
115
- "& .MuiInputLabel-asterisk": {
116
- color: "#D92F2",
117
- marginRight: "3px !important", //this was
130
+ error && {
131
+ color: "#AE1C1C !important",
118
132
  },
119
- },
120
- disabled && {
121
- color: "rgba(0,0,0,0.6)",
122
- },
123
- error && {
124
- color: "#AE1C1C !important",
125
- },
126
- ]}
133
+ ]}
127
134
  >
128
135
  {label}
129
136
  </InputLabel>
130
- {helperText && (<FormHelperText
137
+ {helperText && (
138
+ <FormHelperText
131
139
  tabIndex={0}
132
140
  aria-live="polite"
133
141
  id={`${id}-helper-text`}
134
142
  data-testid={`${id}-helper-text`}
135
143
  error={error}
136
- sx={[{
137
- margin: "4px 0px 0px 0px",
138
- color: "#515151",
139
- lineHeight: 1
140
- },
141
- error && {
142
- color: "#AE1C1C !important",
143
- },
144
- ]}
144
+ sx={[
145
+ {
146
+ margin: "4px 0px 0px 0px",
147
+ color: "#515151",
148
+ lineHeight: 1,
149
+ },
150
+ error && {
151
+ color: "#AE1C1C !important",
152
+ },
153
+ ]}
145
154
  >
146
155
  {helperText}
147
- </FormHelperText>)}
156
+ </FormHelperText>
157
+ )}
148
158
  <MUIAutoComplete
149
159
  disablePortal
150
160
  id={id}
@@ -178,7 +188,7 @@ const AutoComplete = ({
178
188
  color: "#333",
179
189
  "&::placeholder": {
180
190
  opacity: 1,
181
- color: "#717171"
191
+ color: "#717171",
182
192
  },
183
193
  },
184
194
  }}
@@ -36,7 +36,7 @@ AutoCompleteWithLabel.args = {
36
36
  export const AutoCompleteWithLabelDisabled = TemplateSingleSelect.bind({});
37
37
  AutoCompleteWithLabelDisabled.args = {
38
38
  disabled: true,
39
- value: "Option1"
39
+ value: "Option1",
40
40
  };
41
41
 
42
42
  export const AutoCompleteWithHelperText = TemplateSingleSelect.bind({});
@@ -97,15 +97,26 @@ AutoCompleteMultipleWithError.args = {
97
97
  error: true,
98
98
  };
99
99
 
100
-
101
100
  export const AutoCompleteWithVariableHeights = () => {
102
101
  return (
103
102
  <div className="qpp-u-padding--16">
104
- <div style={{display: "flex", flexDirection: "row", flexGrow: 1}}>
105
- <TemplateMultipleSelect placeholder="test" required={true} helperText="test"/>
106
- <TemplateMultipleSelect placeholder="test" required={true} helperText="An error message designed to take up a lot of space to see how we space multiple input elements within the same row in a responsive manner "/>
107
- <TemplateMultipleSelect placeholder="test" required={true} helperText="test"/>
103
+ <div style={{ display: "flex", flexDirection: "row", flexGrow: 1 }}>
104
+ <TemplateMultipleSelect
105
+ placeholder="test"
106
+ required={true}
107
+ helperText="test"
108
+ />
109
+ <TemplateMultipleSelect
110
+ placeholder="test"
111
+ required={true}
112
+ helperText="An error message designed to take up a lot of space to see how we space multiple input elements within the same row in a responsive manner "
113
+ />
114
+ <TemplateMultipleSelect
115
+ placeholder="test"
116
+ required={true}
117
+ helperText="test"
118
+ />
108
119
  </div>
109
120
  </div>
110
121
  );
111
- };
122
+ };
@@ -4,13 +4,13 @@ The Breadcrumb component is a secondary navigation scheme that reveals the user'
4
4
 
5
5
  ### Props
6
6
 
7
- | Property name | Type | Required | Default Value | Description |
8
- | --------------------- | ---------- | -------- | ------------- | ------------------------------------------ |
9
- | `breadcrumbClass` | `String` | `false` | '' | class to append to Breadcrumb nav element |
10
- | `crumbs` | `Array` | `true` | | array of breadcrumbs |
11
- | `dark` | `Boolean` | `false` | `false` | Use dark mode theme |
12
- | `RouterLink` | `Function` | `false` | `null` | Link component to use instead of `<a>` |
13
- | `routerExcludedLinks` | `Array` | `false` | `[]` | Array of paths to exclude from using Link |
7
+ | Property name | Type | Required | Default Value | Description |
8
+ | --------------------- | ---------- | -------- | ------------- | ----------------------------------------- |
9
+ | `breadcrumbClass` | `String` | `false` | '' | class to append to Breadcrumb nav element |
10
+ | `crumbs` | `Array` | `true` | | array of breadcrumbs |
11
+ | `dark` | `Boolean` | `false` | `false` | Use dark mode theme |
12
+ | `RouterLink` | `Function` | `false` | `null` | Link component to use instead of `<a>` |
13
+ | `routerExcludedLinks` | `Array` | `false` | `[]` | Array of paths to exclude from using Link |
14
14
 
15
15
  ### Crumbs
16
16
 
@@ -0,0 +1,85 @@
1
+ import React from "react";
2
+ import PropTypes from "prop-types";
3
+ import InputLabel from "../InputLabel";
4
+ import { DatePicker } from "@mui/x-date-pickers/DatePicker";
5
+ import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
6
+ import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
7
+ import { kebabCase } from "lodash";
8
+
9
+ export const dateTextFieldStyle = {
10
+ width: "170px",
11
+ borderRadius: "3px",
12
+ height: 40,
13
+ border: "1px solid #B0B0B0",
14
+ marginTop: "8px",
15
+ "& .MuiOutlinedInput-notchedOutline": {
16
+ borderRadius: "3px",
17
+ "& legend": {
18
+ width: 0,
19
+ },
20
+ },
21
+ "& .MuiOutlinedInput-root": {
22
+ "&&": {
23
+ borderRadius: "3px",
24
+ },
25
+ },
26
+ "& .MuiInputBase-input": {
27
+ color: "#333333",
28
+ fontFamily: "Rubik",
29
+ fontSize: 14,
30
+ borderRadius: "3px",
31
+ padding: "9px",
32
+ Width: "170px",
33
+ "&::placeholder": {
34
+ opacity: 1,
35
+ color: "#717171",
36
+ fontFamily: "Rubik",
37
+ fontSize: 14,
38
+ },
39
+ },
40
+ };
41
+
42
+ const DateField = ({ label, value, handlDateTimeChange }) => {
43
+ return (
44
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
45
+ <InputLabel
46
+ data-testid={`${kebabCase(label)}-date`}
47
+ style={{ marginBottom: 0, height: 16 }}
48
+ sx={[
49
+ {
50
+ backgroundColor: "transparent",
51
+ textTransform: "none",
52
+ height: 17,
53
+ left: 0,
54
+ right: 0,
55
+ top: 0,
56
+ fontFamily: "Rubik",
57
+ fontStyle: "normal",
58
+ fontWeight: 500,
59
+ fontSize: 14,
60
+ color: "#333333",
61
+ },
62
+ ]}
63
+ >
64
+ {`${label} Date`}
65
+ </InputLabel>
66
+ <DatePicker
67
+ value={value ? value : null}
68
+ onChange={handlDateTimeChange}
69
+ slotProps={{
70
+ textField: {
71
+ id: "date",
72
+ sx: dateTextFieldStyle,
73
+ },
74
+ }}
75
+ />
76
+ </LocalizationProvider>
77
+ );
78
+ };
79
+ DateField.propTypes = {
80
+ label: PropTypes.string.isRequired,
81
+ value: PropTypes.any,
82
+ handlDateTimeChange: PropTypes.func.isRequired,
83
+ };
84
+
85
+ export default DateField;
@@ -0,0 +1,25 @@
1
+ import React, { useState } from "react";
2
+ import DateField from "./DateField";
3
+ import { withKnobs } from "@storybook/addon-knobs";
4
+
5
+ export default {
6
+ title: "DateField",
7
+ component: DateField,
8
+ decorators: [withKnobs],
9
+ };
10
+ export const DateFieldComponent = (args) => {
11
+ const [value, setValue] = useState("");
12
+ const handlDateTimeChange = (e) => {
13
+ console.log("Handle change triggered", e.target.value);
14
+ setValue(e.target.value);
15
+ };
16
+ return (
17
+ <div className="qpp-u-padding--16">
18
+ <DateField
19
+ label="Status"
20
+ handlDateTimeChange={handlDateTimeChange}
21
+ value={value}
22
+ />
23
+ </div>
24
+ );
25
+ };
@@ -40,4 +40,4 @@ export const DeleteDialog = () => {
40
40
  />
41
41
  </div>
42
42
  );
43
- };
43
+ };
@@ -51,4 +51,4 @@ MadieDeleteDialog.propTypes = {
51
51
  onContinue: PropTypes.func,
52
52
  };
53
53
 
54
- export default MadieDeleteDialog;
54
+ export default MadieDeleteDialog;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import PropTypes from "prop-types";
3
- import { visuallyHidden } from '@mui/utils';
3
+ import { visuallyHidden } from "@mui/utils";
4
4
 
5
5
  import {
6
6
  Pagination as PaginationComponent,
@@ -60,10 +60,7 @@ const Pagination = ({
60
60
  <Container>
61
61
  <Row>
62
62
  {/*this span is only for screen reader*/}
63
- <span
64
- id="items-per-page"
65
- style={visuallyHidden}
66
- >
63
+ <span id="items-per-page" style={visuallyHidden}>
67
64
  Items per page {limit}.
68
65
  </span>
69
66
  <Typography
@@ -95,8 +92,9 @@ const Pagination = ({
95
92
  label={null}
96
93
  onChange={handleLimitChange}
97
94
  inputProps={{
98
- "aria-labelledby":"items-per-page",
99
- "aria-describedby": "items-per-page offset-of-total-items",
95
+ "aria-labelledby": "items-per-page",
96
+ "aria-describedby":
97
+ "items-per-page offset-of-total-items",
100
98
  }}
101
99
  >
102
100
  {limitOptions.map((val) => (
@@ -215,4 +213,4 @@ Pagination.propTypes = {
215
213
  type: PropTypes.string,
216
214
  };
217
215
 
218
- export { Pagination };
216
+ export { Pagination };
@@ -44,11 +44,13 @@ export const PopOver = () => {
44
44
  toImplementFunction: viewEditredirect,
45
45
  dataTestId: `edit-measure-1`,
46
46
  }}
47
- otherSelectOptionProps={[{
48
- label: "Export",
49
- toImplementFunction: zipData,
50
- dataTestId: `export-measure-1`,
51
- }]}
47
+ otherSelectOptionProps={[
48
+ {
49
+ label: "Export",
50
+ toImplementFunction: zipData,
51
+ dataTestId: `export-measure-1`,
52
+ },
53
+ ]}
52
54
  />
53
55
  </div>
54
56
  );
@@ -75,7 +75,8 @@ const MadiePopover = ({
75
75
  >
76
76
  {editViewSelectOptionProps.label}
77
77
  </button>
78
- {additionalSelectOptionProps && additionalSelectOptionProps.map((res) => {
78
+ {additionalSelectOptionProps &&
79
+ additionalSelectOptionProps.map((res) => {
79
80
  return (
80
81
  <button
81
82
  key={res.dataTestId}
@@ -28,7 +28,7 @@ const RadioButton = ({
28
28
  disabled={disabled}
29
29
  required={required}
30
30
  shrink
31
- style={{marginBottom: 0, height: 16}} // force a height
31
+ style={{ marginBottom: 0, height: 16 }} // force a height
32
32
  sx={[
33
33
  {
34
34
  backgroundColor: "transparent",
@@ -65,31 +65,40 @@ const RadioButton = ({
65
65
  >
66
66
  {label}
67
67
  </InputLabel>
68
- {helperText && (<FormHelperText
69
- tabIndex={0}
70
- aria-live="polite"
71
- id={`${id}-helper-text`}
72
- data-testid={`${id}-helper-text`}
73
- error={error}
74
- sx={[{
75
- margin: "4px 0px 0px 0px",
76
- color: "#515151",
77
- lineHeight: 1
78
- },
79
- error && {
80
- color: "#AE1C1C !important",
81
- },
82
- ]}
83
- >
84
- {helperText}
85
- </FormHelperText>)}
68
+ {helperText && (
69
+ <FormHelperText
70
+ tabIndex={0}
71
+ aria-live="polite"
72
+ id={`${id}-helper-text`}
73
+ data-testid={`${id}-helper-text`}
74
+ error={error}
75
+ sx={[
76
+ {
77
+ margin: "4px 0px 0px 0px",
78
+ color: "#515151",
79
+ lineHeight: 1,
80
+ },
81
+ error && {
82
+ color: "#AE1C1C !important",
83
+ },
84
+ ]}
85
+ >
86
+ {helperText}
87
+ </FormHelperText>
88
+ )}
86
89
  <RadioGroup
87
90
  aria-labelledby={`${id}-radio-buttons-group`}
88
91
  data-testid={`${id}-radio-buttons-group`}
89
92
  {...rest}
90
93
  >
91
94
  {options.map((option, index) => (
92
- <FormControlLabel disabled={disabled} key={index} value={option.value} control={<Radio />} label={option.label} />
95
+ <FormControlLabel
96
+ disabled={disabled}
97
+ key={index}
98
+ value={option.value}
99
+ control={<Radio />}
100
+ label={option.label}
101
+ />
93
102
  ))}
94
103
  </RadioGroup>
95
104
  </FormControl>