@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
@@ -2,8 +2,7 @@ import React, { useState } from "react";
2
2
  import { withKnobs } from "@storybook/addon-knobs";
3
3
 
4
4
  import Tabs from "./index";
5
- import Tab from './Tab';
6
-
5
+ import Tab from "./Tab";
7
6
 
8
7
  export default {
9
8
  title: "Tabs",
@@ -13,61 +12,124 @@ export default {
13
12
 
14
13
  export const TypeA = () => {
15
14
  // state, setState
16
- const [selected, setSelected] = useState(1)
17
-
15
+ const [selected, setSelected] = useState(1);
18
16
 
19
- const handleChange = (e,v) => {
17
+ const handleChange = (e, v) => {
20
18
  // 1,2,3
21
19
  setSelected(v);
22
20
  };
23
21
 
24
-
25
22
  return (
26
- <div style={{margin: "25px"}}>
27
- <div style={{ width: "fit-content"}}>
23
+ <div style={{ margin: "25px" }}>
24
+ <div style={{ width: "fit-content" }}>
28
25
  Standard: A
29
- <Tabs type="A" size="standard" value={selected} onChange={handleChange}>
30
- <Tab type="A" size="standard" label="Item One" value={1}/>
31
- <Tab type="A" size="standard" label="Item Two" value={2}/>
32
- <Tab type="A" size="standard" label="Item Three" value={3}/>
33
- <Tab type="A" size="standard" label="disabled" value={4} disabled/>
26
+ <Tabs
27
+ type="A"
28
+ size="standard"
29
+ value={selected}
30
+ onChange={handleChange}
31
+ >
32
+ <Tab type="A" size="standard" label="Item One" value={1} />
33
+ <Tab type="A" size="standard" label="Item Two" value={2} />
34
+ <Tab
35
+ type="A"
36
+ size="standard"
37
+ label="Item Three"
38
+ value={3}
39
+ />
40
+ <Tab
41
+ type="A"
42
+ size="standard"
43
+ label="disabled"
44
+ value={4}
45
+ disabled
46
+ />
34
47
  </Tabs>
35
48
  </div>
36
- <div style={{ width: "fit-content"}}>
49
+ <div style={{ width: "fit-content" }}>
37
50
  Large: A
38
- <Tabs type="A" size="large" value={selected} onChange={handleChange}>
39
- <Tab type="A" size="large" label="Item One" value={1}/>
40
- <Tab type="A" size="large" label="Item Two" value={2}/>
41
- <Tab type="A" size="large" label="Item Three" value={3}/>
42
- <Tab type="A" size="large" label="disabled" value={4} disabled/>
51
+ <Tabs
52
+ type="A"
53
+ size="large"
54
+ value={selected}
55
+ onChange={handleChange}
56
+ >
57
+ <Tab type="A" size="large" label="Item One" value={1} />
58
+ <Tab type="A" size="large" label="Item Two" value={2} />
59
+ <Tab type="A" size="large" label="Item Three" value={3} />
60
+ <Tab
61
+ type="A"
62
+ size="large"
63
+ label="disabled"
64
+ value={4}
65
+ disabled
66
+ />
43
67
  </Tabs>
44
68
  </div>
45
- <div style={{ width: "fit-content"}}>
69
+ <div style={{ width: "fit-content" }}>
46
70
  Standard: B
47
- <Tabs type="B" size="standard" value={selected} onChange={handleChange}>
71
+ <Tabs
72
+ type="B"
73
+ size="standard"
74
+ value={selected}
75
+ onChange={handleChange}
76
+ >
48
77
  <Tab type="B" size="standard" label="Item One" value={1} />
49
78
  <Tab type="B" size="standard" label="Item Two" value={2} />
50
- <Tab type="B" size="standard" label="Item Three" value={3} />
51
- <Tab type="B" size="standard" label="disabled" value={4} disabled/>
79
+ <Tab
80
+ type="B"
81
+ size="standard"
82
+ label="Item Three"
83
+ value={3}
84
+ />
85
+ <Tab
86
+ type="B"
87
+ size="standard"
88
+ label="disabled"
89
+ value={4}
90
+ disabled
91
+ />
52
92
  </Tabs>
53
93
  </div>
54
-
55
- <div style={{ width: "fit-content"}}>
94
+
95
+ <div style={{ width: "fit-content" }}>
56
96
  Large: B
57
- <Tabs type="B" size="large" value={selected} onChange={handleChange}>
97
+ <Tabs
98
+ type="B"
99
+ size="large"
100
+ value={selected}
101
+ onChange={handleChange}
102
+ >
58
103
  <Tab type="B" size="large" label="Item One" value={1} />
59
104
  <Tab type="B" size="large" label="Item Two" value={2} />
60
105
  <Tab type="B" size="large" label="Item Three" value={3} />
61
- <Tab type="B" size="large" label="disabled" value={4} disabled/>
106
+ <Tab
107
+ type="B"
108
+ size="large"
109
+ label="disabled"
110
+ value={4}
111
+ disabled
112
+ />
62
113
  </Tabs>
63
114
  </div>
64
- <div style={{ width: "fit-content"}}>
115
+ <div style={{ width: "fit-content" }}>
65
116
  Standard: C
66
117
  <Tabs type="C" value={selected} onChange={handleChange}>
67
118
  <Tab type="C" size="standard" label="Item One" value={1} />
68
119
  <Tab type="C" size="standard" label="Item Two" value={2} />
69
- <Tab type="C" size="standard" label="Item Three"value={3} />
70
- <Tab type="C" size="standard" label="disabled" value={4} disabled/>
120
+ <Tab
121
+ type="C"
122
+ size="standard"
123
+ label="Item Three"
124
+ value={3}
125
+ />
126
+ <Tab
127
+ type="C"
128
+ size="standard"
129
+ label="disabled"
130
+ value={4}
131
+ disabled
132
+ />
71
133
  </Tabs>
72
134
  </div>
73
135
  <div style={{ width: "fit-content" }}>
@@ -75,26 +137,73 @@ export const TypeA = () => {
75
137
  <Tabs type="C" value={selected} onChange={handleChange}>
76
138
  <Tab type="C" size="large" label="Item One" value={1} />
77
139
  <Tab type="C" size="large" label="Item Two" value={2} />
78
- <Tab type="C" size="large" label="Item Three"value={3} />
79
- <Tab type="C" size="large" label="disabled" value={4} disabled/>
140
+ <Tab type="C" size="large" label="Item Three" value={3} />
141
+ <Tab
142
+ type="C"
143
+ size="large"
144
+ label="disabled"
145
+ value={4}
146
+ disabled
147
+ />
80
148
  </Tabs>
81
149
  </div>
82
150
  <div>
83
151
  Vertical Standard: C
84
- <Tabs type="C" value={selected} onChange={handleChange} orientation="vertical">
85
- <Tab type="C" size="standard" label="Item One" value={1} orientation="vertical"/>
86
- <Tab type="C" size="standard" label="Item Two" value={2} orientation="vertical"/>
87
- <Tab type="C" size="standard" label="Item Three"value={3} orientation="vertical"/>
88
- <Tab type="C" size="standard" label="disabled" value={4} disabled orientation="vertical"/>
152
+ <Tabs
153
+ type="C"
154
+ value={selected}
155
+ onChange={handleChange}
156
+ orientation="vertical"
157
+ >
158
+ <Tab
159
+ type="C"
160
+ size="standard"
161
+ label="Item One"
162
+ value={1}
163
+ orientation="vertical"
164
+ />
165
+ <Tab
166
+ type="C"
167
+ size="standard"
168
+ label="Item Two"
169
+ value={2}
170
+ orientation="vertical"
171
+ />
172
+ <Tab
173
+ type="C"
174
+ size="standard"
175
+ label="Item Three"
176
+ value={3}
177
+ orientation="vertical"
178
+ />
179
+ <Tab
180
+ type="C"
181
+ size="standard"
182
+ label="disabled"
183
+ value={4}
184
+ disabled
185
+ orientation="vertical"
186
+ />
89
187
  </Tabs>
90
188
  </div>
91
- <div style={{ width: "fit-content"}}>
189
+ <div style={{ width: "fit-content" }}>
92
190
  Standard: D
93
191
  <Tabs type="D" value={selected} onChange={handleChange}>
94
192
  <Tab type="D" size="standard" label="Item One" value={1} />
95
193
  <Tab type="D" size="standard" label="Item Two" value={2} />
96
- <Tab type="D" size="standard" label="Item Three"value={3} />
97
- <Tab type="D" size="standard" label="disabled" value={4} disabled/>
194
+ <Tab
195
+ type="D"
196
+ size="standard"
197
+ label="Item Three"
198
+ value={3}
199
+ />
200
+ <Tab
201
+ type="D"
202
+ size="standard"
203
+ label="disabled"
204
+ value={4}
205
+ disabled
206
+ />
98
207
  </Tabs>
99
208
  </div>
100
209
  <div style={{ width: "fit-content" }}>
@@ -102,8 +211,14 @@ export const TypeA = () => {
102
211
  <Tabs type="D" value={selected} onChange={handleChange}>
103
212
  <Tab type="D" size="large" label="Item One" value={1} />
104
213
  <Tab type="D" size="large" label="Item Two" value={2} />
105
- <Tab type="D" size="large" label="Item Three"value={3} />
106
- <Tab type="D" size="large" label="disabled" value={4} disabled/>
214
+ <Tab type="D" size="large" label="Item Three" value={3} />
215
+ <Tab
216
+ type="D"
217
+ size="large"
218
+ label="disabled"
219
+ value={4}
220
+ disabled
221
+ />
107
222
  </Tabs>
108
223
  </div>
109
224
  </div>
@@ -7,44 +7,40 @@ const typeA = {
7
7
  columnGap: "4px !important",
8
8
  },
9
9
  "& .MuiTabs-indicator": {
10
- display: "none !important"
11
- },
10
+ display: "none !important",
11
+ },
12
12
  };
13
13
 
14
14
  const typeB = {
15
15
  backgroundColor: "#FFF",
16
16
  color: "#515151",
17
17
  "& .MuiTabs-indicator": {
18
- backgroundColor:"#209FA6",
19
- height: "6px"
20
- },
18
+ backgroundColor: "#209FA6",
19
+ height: "6px",
20
+ },
21
21
  };
22
22
 
23
23
  const typeC = {
24
- color:"333",
24
+ color: "333",
25
25
  "& .MuiTabs-indicator": {
26
- backgroundColor:"#209FA6",
26
+ backgroundColor: "#209FA6",
27
27
  height: "100%",
28
28
  width: "6px !important",
29
29
  left: 0,
30
- },
30
+ },
31
31
  };
32
32
 
33
33
  const typeD = {
34
34
  backgroundColor: "#FFF",
35
35
  color: "#515151",
36
36
  "& .MuiTabs-indicator": {
37
- backgroundColor:"#209FA6",
37
+ backgroundColor: "#209FA6",
38
38
  height: "6px",
39
- top: 0
40
- },
41
- }
39
+ top: 0,
40
+ },
41
+ };
42
42
 
43
- const Tabs = ({
44
- type,
45
- size,
46
- ...rest
47
- }) => {
43
+ const Tabs = ({ type, size, ...rest }) => {
48
44
  const baseStyle = {
49
45
  outline: "none",
50
46
  fontFamily: "Rubik, sans Sarif",
@@ -56,28 +52,24 @@ const Tabs = ({
56
52
  fontWeight: 500,
57
53
  color: "#333 !important",
58
54
  backgroundColor: "#fff",
59
- },
60
- }
55
+ },
56
+ };
61
57
  const style = ((type) => {
62
58
  if (type === "A") {
63
- return { ...baseStyle, ...typeA}
59
+ return { ...baseStyle, ...typeA };
64
60
  }
65
61
  if (type === "B") {
66
- return { ...baseStyle, ...typeB}
62
+ return { ...baseStyle, ...typeB };
67
63
  }
68
64
  if (type === "C") {
69
- return { ...baseStyle, ...typeC}
65
+ return { ...baseStyle, ...typeC };
70
66
  }
71
67
  if (type === "D") {
72
- return { ...baseStyle, ...typeD}
68
+ return { ...baseStyle, ...typeD };
73
69
  }
74
- })(type)
75
- return (<MuiTabs
76
- disableRipple
77
- sx={style}
78
- {...rest}
79
- />)
80
- }
70
+ })(type);
71
+ return <MuiTabs disableRipple sx={style} {...rest} />;
72
+ };
81
73
 
82
74
  Tabs.propTypes = {
83
75
  orientatin: PropTypes.string,
@@ -95,8 +95,11 @@ export const Error = () => (
95
95
  );
96
96
 
97
97
  export const VariedHeights = () => (
98
- <div className="qpp-u-padding--16" style={{ width: 900, marginBottom: "16px" }} >
99
- <div style={{display: "flex", flexDirection: "row"}}>
98
+ <div
99
+ className="qpp-u-padding--16"
100
+ style={{ width: 900, marginBottom: "16px" }}
101
+ >
102
+ <div style={{ display: "flex", flexDirection: "row" }}>
100
103
  <TextArea
101
104
  placeholder="Placeholder"
102
105
  required
@@ -138,4 +141,5 @@ export const VariedHeights = () => (
138
141
  helperText="An error message"
139
142
  />
140
143
  </div>
141
- </div>)
144
+ </div>
145
+ );
@@ -1,9 +1,5 @@
1
1
  import React from "react";
2
- import {
3
- FormControl,
4
- FormHelperText,
5
- TextareaAutosize
6
- } from "@mui/material";
2
+ import { FormControl, FormHelperText, TextareaAutosize } from "@mui/material";
7
3
  import InputLabel from "../InputLabel";
8
4
  import PropTypes from "prop-types";
9
5
 
@@ -21,69 +17,81 @@ const TextArea = ({
21
17
  // text area autosize is deprecated and only takes style rules
22
18
  return (
23
19
  <FormControl fullWidth error={error}>
24
- <div style={{ width: 1, display: "flex", flexDirection: "column", flexGrow: 1}}/>
20
+ <div
21
+ style={{
22
+ width: 1,
23
+ display: "flex",
24
+ flexDirection: "column",
25
+ flexGrow: 1,
26
+ }}
27
+ />
25
28
  <InputLabel
26
29
  disabled={disabled}
27
30
  shrink
28
31
  required={required}
29
32
  error={error}
30
33
  htmlFor={id}
31
- style={{marginBottom: 0, height: 16}} // force a heignt
34
+ style={{ marginBottom: 0, height: 16 }} // force a heignt
32
35
  sx={[
33
- {
34
- backgroundColor: "transparent",
35
- display: "flex",
36
- flexDirection: "row-reverse",
37
- alignSelf: "baseline",
38
- textTransform: "none",
39
- // force it outside the select box
40
- position: "initial",
41
- transform: "translateX(0px) translateY(0px)",
42
- fontFamily: "Rubik",
43
- fontWeight: 500,
44
- fontSize: 14,
45
- color: "#333",
46
- "& .MuiInputLabel-asterisk": {
47
- color: "#AE1C1C !important",
48
- marginRight: "3px !important", //this was
36
+ {
37
+ backgroundColor: "transparent",
38
+ display: "flex",
39
+ flexDirection: "row-reverse",
40
+ alignSelf: "baseline",
41
+ textTransform: "none",
42
+ // force it outside the select box
43
+ position: "initial",
44
+ transform: "translateX(0px) translateY(0px)",
45
+ fontFamily: "Rubik",
46
+ fontWeight: 500,
47
+ fontSize: 14,
48
+ color: "#333",
49
+ "& .MuiInputLabel-asterisk": {
50
+ color: "#AE1C1C !important",
51
+ marginRight: "3px !important", //this was
52
+ },
49
53
  },
50
- },
51
- required && {
52
- transform: "translateX(-12px) translateY(0px)",
53
- "& .MuiInputLabel-asterisk": {
54
- color: "#D92F2",
55
- marginRight: "3px !important", //this was
54
+ required && {
55
+ transform: "translateX(-12px) translateY(0px)",
56
+ "& .MuiInputLabel-asterisk": {
57
+ color: "#D92F2",
58
+ marginRight: "3px !important", //this was
59
+ },
60
+ },
61
+ disabled && {
62
+ color: "rgba(0,0,0,0.6)",
63
+ },
64
+ error && {
65
+ color: "#AE1C1C !important",
56
66
  },
57
- },
58
- disabled && {
59
- color: "rgba(0,0,0,0.6)",
60
- },
61
- error && {
62
- color: "#AE1C1C !important",
63
- },
64
- ]}
67
+ ]}
65
68
  >
66
69
  {label}
67
70
  </InputLabel>
68
- { helperText && (<FormHelperText
69
- tabIndex={0}
70
- aria-live="polite"
71
- id={`${id}-helper-text`}
72
- data-testid={`${id}-helper-text`}
73
- sx={[{
74
- margin: "4px 0px 0px 0px",
75
- color: "#515151",
76
- lineHeight: 1
77
- },
78
- error && {
79
- color: "#AE1C1C !important",
80
- },
81
- ]}
82
- >
83
- {helperText}
84
- </FormHelperText>)}
71
+ {helperText && (
72
+ <FormHelperText
73
+ tabIndex={0}
74
+ aria-live="polite"
75
+ id={`${id}-helper-text`}
76
+ data-testid={`${id}-helper-text`}
77
+ sx={[
78
+ {
79
+ margin: "4px 0px 0px 0px",
80
+ color: "#515151",
81
+ lineHeight: 1,
82
+ },
83
+ error && {
84
+ color: "#AE1C1C !important",
85
+ },
86
+ ]}
87
+ >
88
+ {helperText}
89
+ </FormHelperText>
90
+ )}
85
91
  <TextareaAutosize
86
- className={error ? "text-area-variable error" : "text-area-variable"}
92
+ className={
93
+ error ? "text-area-variable error" : "text-area-variable"
94
+ }
87
95
  label={null}
88
96
  disabled={disabled}
89
97
  id={id}
@@ -102,6 +110,6 @@ TextArea.propTypes = {
102
110
  disabled: PropTypes.bool,
103
111
  placeholder: PropTypes.string, // expects placeholder objects of { name: value } and inserts into the render item function.
104
112
  label: PropTypes.string,
105
- inputProps: PropTypes.any
113
+ inputProps: PropTypes.any,
106
114
  };
107
115
  export default TextArea;
@@ -95,38 +95,41 @@ export const Error = () => (
95
95
  );
96
96
 
97
97
  export const VariedHeights = () => (
98
- <div className="qpp-u-padding--16" style={{ width: 900, marginBottom: "16px" }} >
99
- <div style={{display: "flex",
100
- flexDirection: "row"}}>
101
- <TextField
102
- placeholder="Placeholder"
103
- required
104
- label="Text Label"
105
- id="measureName"
106
- inputProps={{ "data-testid": "measure-name-input" }}
107
- data-testid="measure-name-text-field"
108
- size="small"
109
- helperText="An error message"
110
- />
111
- <TextField
112
- placeholder="Placeholder"
113
- label="Text Label"
114
- id="measureName"
115
- inputProps={{ "data-testid": "measure-name-input" }}
116
- data-testid="measure-name-text-field"
117
- size="small"
118
- 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 "
119
- />
120
- <TextField
121
- placeholder="Placeholder"
122
- error
123
- required
124
- label="Text Label"
125
- id="measureName"
126
- inputProps={{ "data-testid": "measure-name-input" }}
127
- data-testid="measure-name-text-field"
128
- size="small"
129
- helperText="An error message"
130
- />
98
+ <div
99
+ className="qpp-u-padding--16"
100
+ style={{ width: 900, marginBottom: "16px" }}
101
+ >
102
+ <div style={{ display: "flex", flexDirection: "row" }}>
103
+ <TextField
104
+ placeholder="Placeholder"
105
+ required
106
+ label="Text Label"
107
+ id="measureName"
108
+ inputProps={{ "data-testid": "measure-name-input" }}
109
+ data-testid="measure-name-text-field"
110
+ size="small"
111
+ helperText="An error message"
112
+ />
113
+ <TextField
114
+ placeholder="Placeholder"
115
+ label="Text Label"
116
+ id="measureName"
117
+ inputProps={{ "data-testid": "measure-name-input" }}
118
+ data-testid="measure-name-text-field"
119
+ size="small"
120
+ 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 "
121
+ />
122
+ <TextField
123
+ placeholder="Placeholder"
124
+ error
125
+ required
126
+ label="Text Label"
127
+ id="measureName"
128
+ inputProps={{ "data-testid": "measure-name-input" }}
129
+ data-testid="measure-name-text-field"
130
+ size="small"
131
+ helperText="An error message"
132
+ />
131
133
  </div>
132
- </div>)
134
+ </div>
135
+ );