@pareto-engineering/design-system 2.0.0-alpha.13 → 2.0.0-alpha.17

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 (54) hide show
  1. package/dist/cjs/a/BackgroundGradient/styles.scss +2 -2
  2. package/dist/cjs/a/Conversation/Conversation.js +15 -8
  3. package/dist/cjs/a/Conversation/common/Message/Message.js +33 -6
  4. package/dist/cjs/a/Conversation/styles.scss +139 -32
  5. package/dist/cjs/b/Button/styles.scss +43 -18
  6. package/dist/cjs/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  7. package/dist/cjs/f/common/Debugger/Debugger.js +1 -1
  8. package/dist/cjs/f/common/Label/Label.js +1 -1
  9. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  10. package/dist/cjs/f/fields/SelectInput/SelectInput.js +25 -6
  11. package/dist/cjs/f/fields/SelectInput/styles.scss +4 -4
  12. package/dist/cjs/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  13. package/dist/cjs/f/fields/TextInput/TextInput.js +18 -4
  14. package/dist/cjs/f/fields/TextInput/styles.scss +4 -4
  15. package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +1 -1
  16. package/dist/es/a/BackgroundGradient/styles.scss +2 -2
  17. package/dist/es/a/Conversation/Conversation.js +15 -8
  18. package/dist/es/a/Conversation/common/Message/Message.js +33 -6
  19. package/dist/es/a/Conversation/styles.scss +139 -32
  20. package/dist/es/b/Button/styles.scss +43 -18
  21. package/dist/es/c/ContentSlides/common/Navigator/Navigator.js +4 -3
  22. package/dist/es/f/common/Debugger/Debugger.js +1 -1
  23. package/dist/es/f/common/Label/Label.js +1 -1
  24. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +1 -1
  25. package/dist/es/f/fields/SelectInput/SelectInput.js +25 -6
  26. package/dist/es/f/fields/SelectInput/styles.scss +4 -4
  27. package/dist/es/f/fields/TaskRecommendationInput/TaskRecommendationInput.js +1 -1
  28. package/dist/es/f/fields/TextInput/TextInput.js +18 -4
  29. package/dist/es/f/fields/TextInput/styles.scss +4 -4
  30. package/dist/es/f/fields/TextareaInput/TextareaInput.js +1 -1
  31. package/package.json +2 -2
  32. package/src/__snapshots__/Storyshots.test.js.snap +401 -91
  33. package/src/local.scss +1 -0
  34. package/src/stories/a/BackgroundGradient.stories.jsx +2 -3
  35. package/src/stories/a/Conversation.stories.jsx +78 -1
  36. package/src/stories/b/Button.stories.jsx +5 -4
  37. package/src/stories/f/SelectInput.stories.jsx +29 -0
  38. package/src/stories/f/TextInput.stories.jsx +10 -0
  39. package/src/ui/a/BackgroundGradient/styles.scss +2 -2
  40. package/src/ui/a/Conversation/Conversation.jsx +15 -7
  41. package/src/ui/a/Conversation/common/Message/Message.jsx +40 -7
  42. package/src/ui/a/Conversation/styles.scss +139 -32
  43. package/src/ui/b/Button/Button.jsx +2 -1
  44. package/src/ui/b/Button/styles.scss +43 -18
  45. package/src/ui/c/ContentSlides/common/Navigator/Navigator.jsx +3 -2
  46. package/src/ui/f/common/Debugger/Debugger.jsx +1 -1
  47. package/src/ui/f/common/Label/Label.jsx +1 -1
  48. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +1 -1
  49. package/src/ui/f/fields/SelectInput/SelectInput.jsx +35 -5
  50. package/src/ui/f/fields/SelectInput/styles.scss +4 -4
  51. package/src/ui/f/fields/TaskRecommendationInput/TaskRecommendationInput.jsx +1 -1
  52. package/src/ui/f/fields/TextInput/TextInput.jsx +14 -0
  53. package/src/ui/f/fields/TextInput/styles.scss +4 -4
  54. package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +1 -1
@@ -142,7 +142,7 @@ TextareaInput.propTypes = {
142
142
  TextareaInput.defaultProps = {
143
143
  rows: 3,
144
144
  textAreaColor: 'background1',
145
- labelColor: 'main1',
145
+ labelColor: 'main2',
146
146
  disabled: false
147
147
  };
148
148
 
@@ -5,11 +5,11 @@
5
5
  position: absolute;
6
6
  top: 0;
7
7
  left: 0;
8
- justify-content: var(--vertical-align);
9
8
  width: 100%;
10
9
  height: var(--gradient-height);
11
10
  background-image: linear-gradient(transparent, var(--y) 25%, var(--light-y) 75%, transparent);
12
- opacity: .8;
11
+ opacity: .4;
12
+ z-index: -1;
13
13
  }
14
14
 
15
15
 
@@ -19,17 +19,18 @@ const Conversation = ({
19
19
  backgroundColor,
20
20
  ourColor,
21
21
  theirColor,
22
- children // ...otherProps
22
+ children,
23
+ hasTriangle // ...otherProps
23
24
 
24
25
  }) => {
25
26
  useLayoutEffect(() => {
26
27
  import("./styles.scss");
27
- }, []); // const messageColors = { ours: color, theirs: 'main2' }
28
-
28
+ }, []);
29
29
  return /*#__PURE__*/React.createElement(ConversationContext.Provider, {
30
30
  value: {
31
31
  ourColor,
32
- theirColor
32
+ theirColor,
33
+ hasTriangle
33
34
  }
34
35
  }, /*#__PURE__*/React.createElement("div", {
35
36
  id: id,
@@ -72,12 +73,18 @@ Conversation.propTypes = {
72
73
  /**
73
74
  * The children JSX
74
75
  */
75
- children: PropTypes.node
76
+ children: PropTypes.node,
77
+
78
+ /**
79
+ * whether to add triangle to bubble chats
80
+ */
81
+ hasTriangle: PropTypes.bool
76
82
  };
77
83
  Conversation.defaultProps = {
78
- backgroundColor: 'background',
79
- ourColor: 'main2',
80
- theirColor: 'background2'
84
+ backgroundColor: 'background2',
85
+ ourColor: 'background1',
86
+ theirColor: 'background1',
87
+ hasTriangle: 'false'
81
88
  };
82
89
  Conversation.Message = Message;
83
90
  export default Conversation;
@@ -16,22 +16,32 @@ const Message = ({
16
16
  style,
17
17
  message,
18
18
  sender,
19
- from // ...otherProps
19
+ from,
20
+ attachment,
21
+ attachmentIcon,
22
+ attachmentColor // ...otherProps
20
23
 
21
24
  }) => {
22
25
  const {
26
+ hasTriangle,
23
27
  ourColor,
24
28
  theirColor
25
29
  } = useConversation();
26
30
  return /*#__PURE__*/React.createElement("div", {
27
31
  id: id,
28
- className: [baseClassName, componentClassName, userClassName, `x-${from === 'ours' ? ourColor : theirColor}`, from === 'ours' && 'ours'].filter(e => e).join(' '),
32
+ className: [baseClassName, componentClassName, userClassName, `x-${from === 'ours' ? ourColor : theirColor}`, from === 'ours' && 'ours', hasTriangle === true ? 'has-triangle' : '', 'v1'].filter(e => e).join(' '),
29
33
  style: style
30
34
  }, /*#__PURE__*/React.createElement("div", {
31
35
  className: styleNames.elementContent
32
36
  }, /*#__PURE__*/React.createElement("p", {
33
37
  className: "sender v25 mb-v s-1"
34
- }, sender, ":"), /*#__PURE__*/React.createElement("p", null, message)));
38
+ }, sender, ":"), /*#__PURE__*/React.createElement("p", null, message), attachment && /*#__PURE__*/React.createElement("div", {
39
+ className: `attachment y-${attachmentColor}`
40
+ }, /*#__PURE__*/React.createElement("span", {
41
+ className: "f-icons"
42
+ }, attachmentIcon), /*#__PURE__*/React.createElement("p", {
43
+ className: "ml-v"
44
+ }, attachment))));
35
45
  };
36
46
 
37
47
  Message.propTypes = {
@@ -45,6 +55,11 @@ Message.propTypes = {
45
55
  */
46
56
  className: PropTypes.string,
47
57
 
58
+ /**
59
+ * The React-written, css properties for this element.
60
+ */
61
+ style: PropTypes.objectOf(PropTypes.string),
62
+
48
63
  /**
49
64
  * The message in the conversation
50
65
  */
@@ -61,11 +76,23 @@ Message.propTypes = {
61
76
  from: PropTypes.oneOf(['ours', 'theirs']),
62
77
 
63
78
  /**
64
- * The React-written, css properties for this element.
79
+ * name of the attachment file
80
+ */
81
+ attachment: PropTypes.string,
82
+
83
+ /**
84
+ * source of the attachment icon
85
+ */
86
+ attachmentIcon: PropTypes.string,
87
+
88
+ /**
89
+ * background color of the attachment box
65
90
  */
66
- style: PropTypes.objectOf(PropTypes.string)
91
+ attachmentColor: PropTypes.string
67
92
  };
68
93
  Message.defaultProps = {
69
- from: 'theirs'
94
+ from: 'theirs',
95
+ attachmentIcon: 'A',
96
+ attachmentColor: 'main4'
70
97
  };
71
98
  export default Message;
@@ -1,4 +1,5 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
+
2
3
  @use "@pareto-engineering/bem";
3
4
  @use "@aztlan/stylebook/src/mixins";
4
5
  @use "@aztlan/stylebook/src/globals" as *;
@@ -8,47 +9,153 @@ $default-conversation-background: var(--y);
8
9
  $default-message-max-width: calc(100% - #{$default-padding});
9
10
  $default-message-min-width: 12em;
10
11
  $default-message-border: var(--theme-border);
12
+ $triangle-border-size: 15px;
13
+ $triangle-border-style: $triangle-border-size solid;
14
+ $triangle-border-style-subtracted: ($triangle-border-size - 1px) solid;
15
+ $triangle-border1: $triangle-border-style var(--paragraph);
16
+ $triangle-border2: $triangle-border-style transparent;
17
+ $triangle-border3: $triangle-border-style-subtracted var(--x);
18
+ $triangle-border4: $triangle-border-style-subtracted transparent;
19
+ $triangle-before-side:24px;
20
+ $triangle-before-bottom:-30px;
21
+ $triangle-after-bottom:-27px;
22
+ $triangle-after-side:25px;
11
23
 
12
24
  .#{bem.$base}.conversation {
13
- display: flex;
14
- flex-direction: column;
15
- background-color: $default-conversation-background;
16
- padding: $default-padding;
25
+ background-color: $default-conversation-background;
26
+ border-radius: var(--theme-border-radius);
27
+ display: flex;
28
+ flex-direction: column;
29
+ padding: $default-padding;
30
+
31
+ >:not(:last-child) {
32
+ margin-bottom: $default-padding;
33
+ }
34
+
35
+ // >:nth-child(1) {
36
+ // animation-delay: 1s;
37
+ // }
38
+ // >:nth-child(2) {
39
+ // animation-delay: 3s;
40
+ // }
41
+
42
+ .#{bem.$base}.message {
43
+ align-self: flex-start;
44
+ background-color: var(--x);
45
+ // animation: fadeIn 1s ease-in both;
46
+ border: $default-message-border;
17
47
  border-radius: var(--theme-border-radius);
48
+ max-width: $default-message-max-width;
49
+ min-width: $default-message-min-width;
50
+ padding: $default-padding;
51
+ position: relative;
18
52
 
19
- >:not(:last-child) {
20
- margin-bottom: $default-padding;
21
- }
53
+ .#{bem.$element-content} {
54
+ display: flex;
55
+ flex-direction: column;
56
+
57
+ >p {
58
+ color: var(--on-x);
59
+ }
60
+
61
+ .sender {
62
+ font-weight: 800;
63
+ margin-bottom: .5em;
64
+ }
22
65
 
23
- .#{bem.$base}.message {
24
- min-width: $default-message-min-width;
25
- max-width: $default-message-max-width;
26
- padding: $default-padding;
27
- border-radius: var(--theme-border-radius);
28
- background-color: var(--x);
29
- align-self: flex-start;
30
- border: $default-message-border;
31
-
32
- .#{bem.$element-content} {
33
- display: flex;
34
- flex-direction: column;
35
-
36
- >p {
37
- color: var(--on-x);
38
- }
39
-
40
- .sender {
41
- font-weight: 800;
42
- margin-bottom: .5em;
43
- }
66
+ .attachment {
67
+ align-self: baseline;
68
+ background-color: var(--y);
69
+ display: flex;
70
+ flex-direction: row;
71
+ padding: .5em 1em;
72
+
73
+ > p {
74
+ margin-bottom: 0;
44
75
  }
45
- }
46
76
 
47
- .#{bem.$base}.ours {
48
- align-self: flex-end;
77
+ > img {
78
+ width: 40px;
79
+ }
80
+ }
81
+ }
82
+ &.#{bem.$base}.ours {
83
+ align-self: flex-end;
49
84
  }
50
85
 
51
- }
86
+ &.has-triangle {
87
+ ::before {
88
+ border-bottom: $triangle-border2;
89
+ border-left: $triangle-border2;
90
+ border-right: $triangle-border1;
91
+ border-top: $triangle-border1;
92
+ bottom: $triangle-before-bottom;
93
+ content: "";
94
+ height: 0;
95
+ position: absolute;
96
+ right: $triangle-before-side;
97
+ width: 0;
98
+ }
99
+
100
+ ::after {
101
+ border-bottom: $triangle-border4;
102
+ border-left: $triangle-border4;
103
+ border-right: $triangle-border3;
104
+ border-top: $triangle-border3;
105
+ bottom: $triangle-after-bottom;
106
+ content: "";
107
+ height: 0;
108
+ position: absolute;
109
+ right: $triangle-after-side;
110
+ width: 0;
111
+ }
112
+
113
+ &:not(.ours) {
114
+ ::before {
115
+ border-bottom: $triangle-border2;
116
+ border-left: $triangle-border1;
117
+ border-right: $triangle-border2;
118
+ border-top: $triangle-border1;
119
+ bottom: $triangle-before-bottom;
120
+ content: "";
121
+ height: 0;
122
+ left: $triangle-before-side;
123
+ position: absolute;
124
+ width: 0;
125
+ }
52
126
 
127
+ ::after {
128
+ border-bottom: $triangle-border4;
129
+ border-left: $triangle-border3;
130
+ border-right: $triangle-border4;
131
+ border-top: $triangle-border3;
132
+ bottom: $triangle-after-bottom;
133
+ content: "";
134
+ height: 0;
135
+ left: $triangle-after-side;
136
+ position: absolute;
137
+ width: 0;
138
+ }
139
+ }
140
+ }
53
141
 
142
+ // mobile style
143
+ @include mixins.media($to:$sm-md) {
144
+ .message {
145
+ margin-top: 2em;
146
+ }
147
+ }
148
+ }
149
+ }
54
150
 
151
+ //@keyframes fadeIn {
152
+ // from {
153
+ // opacity: 0;
154
+ // transform: translate3d(0, 50%, 0);
155
+ // }
156
+ //
157
+ // to {
158
+ // opacity: 1;
159
+ // transform: translate3d(0, 0, 0);
160
+ // }
161
+ //}
@@ -7,31 +7,47 @@ $compact-padding: .6em .6em .48em;
7
7
  $default-color:primary;
8
8
  $font-weight:bold;
9
9
  $default-margin:.5em;
10
+ $default-animation-time: .3s;
10
11
 
11
12
  .#{bem.$base}.button {
12
13
  background: var(--x, var(--#{$default-color}));
13
14
  border: transparent;
14
15
  border-radius: var(--theme-border-radius);
15
16
  color: var(--on-x, var(--on-#{$default-color}));
17
+ display: inline-flex;
18
+ font-family: var(--theme-default-paragraph);
16
19
  font-weight: 600;
20
+ justify-content: space-between;
17
21
  padding: $default-padding;
18
22
  transition: all .25s;
19
23
 
20
- &.arrow-right{
24
+ &.arrow-right {
21
25
  &::after {
22
- content: "L";
23
- font-family: "icons";
24
- vertical-align: middle;
26
+ content: "-->";
25
27
  margin-left: $default-margin;
28
+ vertical-align: middle;
29
+ }
30
+
31
+ &:hover {
32
+ &::after {
33
+ --final-position: 50%;
34
+ animation: animateArrow $default-animation-time forwards;
35
+ }
26
36
  }
27
37
  }
28
38
 
29
- &.arrow-left{
39
+ &.arrow-left {
30
40
  &::before {
31
- content: "H";
32
- font-family: "icons";
33
- vertical-align: middle;
41
+ content: "<--";
34
42
  margin-right: $default-margin;
43
+ vertical-align: middle;
44
+ }
45
+
46
+ &:hover {
47
+ &::before {
48
+ --final-position: -50%;
49
+ animation: animateArrow $default-animation-time forwards;
50
+ }
35
51
  }
36
52
  }
37
53
 
@@ -41,12 +57,12 @@ $default-margin:.5em;
41
57
  &:hover {
42
58
  background: var(--light-x, var(--light-#{$default-color}));
43
59
  }
60
+
44
61
  &:focus {
45
62
  background: var(--dark-x, var(--dark-#{$default-color}));
46
63
  }
47
64
  }
48
65
 
49
-
50
66
  &.#{bem.$modifier-compact} {
51
67
  padding: $compact-padding;
52
68
  }
@@ -58,7 +74,7 @@ $default-margin:.5em;
58
74
 
59
75
  &:hover,
60
76
  &:focus,
61
- &:disabled{
77
+ &:disabled {
62
78
  background: transparent;
63
79
  }
64
80
 
@@ -74,7 +90,7 @@ $default-margin:.5em;
74
90
  }
75
91
  }
76
92
 
77
- &:disabled{
93
+ &:disabled {
78
94
  border: 1px solid var(--x, var(--#{$default-color}));
79
95
  color: var(--x, var(--#{$default-color}));
80
96
  }
@@ -83,8 +99,8 @@ $default-margin:.5em;
83
99
  &.#{bem.$modifier-simple} {
84
100
  background: transparent;
85
101
  border: 1px solid transparent;
86
- padding: 0;
87
102
  color: var(--x, var(--#{$default-color}));
103
+ padding: 0;
88
104
 
89
105
  &:disabled,
90
106
  &:hover,
@@ -93,13 +109,13 @@ $default-margin:.5em;
93
109
  }
94
110
 
95
111
  &:not(:disabled) {
96
- &:hover {
97
- color: var(--light-x, var(--light-#{$default-color}));
98
- }
112
+ &:hover {
113
+ color: var(--light-x, var(--light-#{$default-color}));
114
+ }
99
115
 
100
- &:focus {
101
- color: var(--dark-x, var(--dark-#{$default-color}));
102
- }
116
+ &:focus {
117
+ color: var(--dark-x, var(--dark-#{$default-color}));
118
+ }
103
119
  }
104
120
 
105
121
  &:disabled {
@@ -114,3 +130,12 @@ $default-margin:.5em;
114
130
  }
115
131
 
116
132
 
133
+ @keyframes animateArrow {
134
+ from {
135
+ transform: translateX(0);
136
+ }
137
+
138
+ to {
139
+ transform: translateX(var(--final-position));
140
+ }
141
+ }
@@ -56,7 +56,8 @@ const Navigator = ({
56
56
  } else {
57
57
  setNextStepIndex(stepsForward);
58
58
  }
59
- }
59
+ },
60
+ isCompact: true
60
61
  }, "Next") : /*#__PURE__*/React.createElement("span", null));
61
62
  };
62
63
 
@@ -118,8 +119,8 @@ Navigator.propTypes = {
118
119
  };
119
120
  Navigator.defaultProps = {
120
121
  canMoveForward: true,
121
- previousColor: 'main1',
122
- nextColor: 'main1',
122
+ previousColor: 'main2',
123
+ nextColor: 'main2',
123
124
  stepsForward: 1,
124
125
  stepsBackwards: 1
125
126
  };
@@ -31,7 +31,7 @@ const Debugger = ({
31
31
  style: style
32
32
  }, /*#__PURE__*/React.createElement(Button, {
33
33
  onClick: toggleDebugger,
34
- color: "main1"
34
+ color: "main2"
35
35
  }, isOpen ? 'Close FormDebugger' : 'Open FormDebugger'), isOpen && /*#__PURE__*/React.createElement("pre", {
36
36
  className: "debuger-content"
37
37
  }, JSON.stringify(formikContext, null, 2)));
@@ -71,6 +71,6 @@ Label.propTypes = {
71
71
  Label.defaultProps = {
72
72
  // someProp:false
73
73
  as: 'label',
74
- color: 'main1'
74
+ color: 'main2'
75
75
  };
76
76
  export default Label;
@@ -129,7 +129,7 @@ ChoicesInput.defaultProps = {
129
129
  gridColumnsMobile: 2,
130
130
  gridColumnsDesktop: 3,
131
131
  color: 'background2',
132
- colorChecked: 'main1',
132
+ colorChecked: 'main2',
133
133
  disabled: false
134
134
  };
135
135
  export default /*#__PURE__*/memo(ChoicesInput);
@@ -21,13 +21,18 @@ const SelectInput = ({
21
21
  name,
22
22
  label,
23
23
  options,
24
+ validate,
25
+ description,
24
26
  disabled // ...otherProps
25
27
 
26
28
  }) => {
27
29
  useLayoutEffect(() => {
28
30
  import("./styles.scss");
29
31
  }, []);
30
- const [field, meta] = useField(name);
32
+ const [field, meta] = useField({
33
+ name,
34
+ validate
35
+ });
31
36
  return /*#__PURE__*/React.createElement("div", {
32
37
  id: id,
33
38
  className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
@@ -39,6 +44,7 @@ const SelectInput = ({
39
44
  }, label), /*#__PURE__*/React.createElement("select", _extends({
40
45
  className: "input v25 pv-v"
41
46
  }, field, {
47
+ value: field.value || '',
42
48
  id: name,
43
49
  disabled: disabled
44
50
  }), options.map(option => {
@@ -49,11 +55,13 @@ const SelectInput = ({
49
55
  } : option;
50
56
  return /*#__PURE__*/React.createElement("option", {
51
57
  key: newOption.value,
52
- value: newOption.value
58
+ value: newOption.value,
59
+ disabled: (newOption === null || newOption === void 0 ? void 0 : newOption.disabled) || false
53
60
  }, newOption.label);
54
- })), meta.error && meta.touched && /*#__PURE__*/React.createElement(FormDescription, {
55
- error: true
56
- }, meta.error));
61
+ })), (description || meta.touched && meta.error) && /*#__PURE__*/React.createElement(FormDescription, {
62
+ isError: !!meta.error,
63
+ className: "v50 mt-v s-1"
64
+ }, meta.error || description));
57
65
  };
58
66
 
59
67
  SelectInput.propTypes = {
@@ -82,12 +90,23 @@ SelectInput.propTypes = {
82
90
  */
83
91
  label: PropTypes.string,
84
92
 
93
+ /**
94
+ * The input field validator function
95
+ */
96
+ validate: PropTypes.func,
97
+
98
+ /**
99
+ * The select input description
100
+ */
101
+ description: PropTypes.string,
102
+
85
103
  /**
86
104
  * The options of the select input
87
105
  */
88
106
  options: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
89
107
  value: PropTypes.string,
90
- label: PropTypes.string
108
+ label: PropTypes.string,
109
+ disabled: PropTypes.bool
91
110
  })])),
92
111
 
93
112
  /**
@@ -14,16 +14,16 @@ $default-padding: 0.75em 0.75em 0.55em;
14
14
 
15
15
 
16
16
  .input-label {
17
- color: var(--main1);
17
+ color: var(--main2);
18
18
  }
19
19
 
20
20
  .input {
21
- background: var(--light-background1);
22
- color: var(--on-background1);
21
+ background: var(--light-background2);
22
+ color: var(--on-background2);
23
23
  padding: $default-padding;
24
24
 
25
25
  &:focus {
26
- background: var(--dark-background1);
26
+ background: var(--dark-background2);
27
27
  }
28
28
  }
29
29
  }
@@ -106,6 +106,6 @@ TaskRecommendationInput.propTypes = {
106
106
  image: PropTypes.string.isRequired
107
107
  };
108
108
  TaskRecommendationInput.defaultProps = {
109
- color: 'main1'
109
+ color: 'main2'
110
110
  };
111
111
  export default /*#__PURE__*/memo(TaskRecommendationInput);
@@ -21,10 +21,12 @@ const TextInput = ({
21
21
  type,
22
22
  name,
23
23
  label,
24
+ labelColor,
24
25
  validate,
25
26
  oneInputLabel,
26
27
  description,
27
- disabled // ...otherProps
28
+ disabled,
29
+ placeholder // ...otherProps
28
30
 
29
31
  }) => {
30
32
  useLayoutEffect(() => {
@@ -41,12 +43,14 @@ const TextInput = ({
41
43
 
42
44
  }, /*#__PURE__*/React.createElement(FormLabel, {
43
45
  className: ['input-label', oneInputLabel ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v'].filter(e => e).join(' '),
44
- name: name
46
+ name: name,
47
+ color: labelColor
45
48
  }, label), /*#__PURE__*/React.createElement("input", _extends({
46
49
  id: name,
47
50
  className: `input ${meta.touched && meta.error ? 'input-border-error' : 'input-border'}`,
48
51
  type: type,
49
- disabled: disabled
52
+ disabled: disabled,
53
+ placeholder: placeholder
50
54
  }, field)), (description || meta.touched && meta.error) && /*#__PURE__*/React.createElement(FormDescription, {
51
55
  isError: !!meta.error,
52
56
  className: "v50 mt-v s-1"
@@ -79,6 +83,11 @@ TextInput.propTypes = {
79
83
  */
80
84
  label: PropTypes.string.isRequired,
81
85
 
86
+ /**
87
+ * The input label color
88
+ */
89
+ labelColor: PropTypes.string,
90
+
82
91
  /**
83
92
  * The type of the input (html)
84
93
  */
@@ -102,7 +111,12 @@ TextInput.propTypes = {
102
111
  /**
103
112
  * Whether the text input should be disabled
104
113
  */
105
- disabled: PropTypes.bool
114
+ disabled: PropTypes.bool,
115
+
116
+ /**
117
+ * The placeholder text for the input
118
+ */
119
+ placeholder: PropTypes.string
106
120
  };
107
121
  TextInput.defaultProps = {
108
122
  type: 'text',
@@ -10,16 +10,16 @@ $default-padding: 0.75em 0.75em 0.55em;
10
10
  flex-direction: column;
11
11
 
12
12
  .input-label {
13
- color: var(--main1);
13
+ color: var(--main2);
14
14
  }
15
15
 
16
16
  .input {
17
- background: var(--light-background1);
18
- color: var(--on-background1);
17
+ background: var(--light-background2);
18
+ color: var(--on-background2);
19
19
  padding: $default-padding;
20
20
 
21
21
  &:focus {
22
- background: var(--dark-background1);
22
+ background: var(--dark-background2);
23
23
  }
24
24
  }
25
25
  }