@pareto-engineering/design-system 4.0.0-alpha.35 → 4.0.0-alpha.36

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 (89) hide show
  1. package/dist/cjs/f/common/InputWrapper/InputWrapper.js +74 -0
  2. package/dist/cjs/f/common/InputWrapper/index.js +13 -0
  3. package/dist/cjs/f/common/InputWrapper/styles.scss +13 -0
  4. package/dist/cjs/f/common/Label/Label.js +18 -4
  5. package/dist/cjs/f/common/Label/styles.scss +8 -2
  6. package/dist/cjs/f/common/index.js +8 -1
  7. package/dist/cjs/f/fields/Checkbox/Checkbox.js +40 -10
  8. package/dist/cjs/f/fields/Checkbox/styles.scss +6 -8
  9. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +42 -20
  10. package/dist/cjs/f/fields/ChoicesInput/common/Choice/Choice.js +1 -1
  11. package/dist/cjs/f/fields/ChoicesInput/styles.scss +50 -35
  12. package/dist/cjs/f/fields/QueryChoices/QueryChoices.js +26 -2
  13. package/dist/cjs/f/fields/QueryCombobox/QueryCombobox.js +35 -5
  14. package/dist/cjs/f/fields/QueryCombobox/common/Combobox/Combobox.js +41 -14
  15. package/dist/cjs/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +33 -23
  16. package/dist/cjs/f/fields/QueryCombobox/styles.scss +58 -28
  17. package/dist/cjs/f/fields/QuerySelect/QuerySelect.js +17 -3
  18. package/dist/cjs/f/fields/RatingsInput/RatingsInput.js +41 -19
  19. package/dist/cjs/f/fields/RatingsInput/common/Rating/Rating.js +3 -3
  20. package/dist/cjs/f/fields/RatingsInput/styles.scss +6 -13
  21. package/dist/cjs/f/fields/SelectInput/SelectInput.js +45 -15
  22. package/dist/cjs/f/fields/SelectInput/styles.scss +40 -18
  23. package/dist/cjs/f/fields/TextInput/TextInput.js +38 -16
  24. package/dist/cjs/f/fields/TextInput/styles.scss +28 -22
  25. package/dist/cjs/f/fields/TextareaInput/TextareaInput.js +42 -21
  26. package/dist/cjs/f/fields/TextareaInput/styles.scss +42 -27
  27. package/dist/es/f/common/InputWrapper/InputWrapper.js +66 -0
  28. package/dist/es/f/common/InputWrapper/index.js +2 -0
  29. package/dist/es/f/common/InputWrapper/styles.scss +13 -0
  30. package/dist/es/f/common/Label/Label.js +18 -4
  31. package/dist/es/f/common/Label/styles.scss +8 -2
  32. package/dist/es/f/common/index.js +2 -1
  33. package/dist/es/f/fields/Checkbox/Checkbox.js +41 -11
  34. package/dist/es/f/fields/Checkbox/styles.scss +6 -8
  35. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +43 -21
  36. package/dist/es/f/fields/ChoicesInput/common/Choice/Choice.js +1 -1
  37. package/dist/es/f/fields/ChoicesInput/styles.scss +50 -35
  38. package/dist/es/f/fields/QueryChoices/QueryChoices.js +26 -2
  39. package/dist/es/f/fields/QueryCombobox/QueryCombobox.js +35 -5
  40. package/dist/es/f/fields/QueryCombobox/common/Combobox/Combobox.js +41 -14
  41. package/dist/es/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +33 -23
  42. package/dist/es/f/fields/QueryCombobox/styles.scss +58 -28
  43. package/dist/es/f/fields/QuerySelect/QuerySelect.js +17 -3
  44. package/dist/es/f/fields/RatingsInput/RatingsInput.js +42 -20
  45. package/dist/es/f/fields/RatingsInput/common/Rating/Rating.js +3 -3
  46. package/dist/es/f/fields/RatingsInput/styles.scss +6 -13
  47. package/dist/es/f/fields/SelectInput/SelectInput.js +46 -16
  48. package/dist/es/f/fields/SelectInput/styles.scss +40 -18
  49. package/dist/es/f/fields/TextInput/TextInput.js +39 -17
  50. package/dist/es/f/fields/TextInput/styles.scss +28 -22
  51. package/dist/es/f/fields/TextareaInput/TextareaInput.js +43 -22
  52. package/dist/es/f/fields/TextareaInput/styles.scss +42 -27
  53. package/package.json +2 -2
  54. package/src/stories/f/Checkbox.stories.jsx +22 -7
  55. package/src/stories/f/ChoicesInput.stories.jsx +21 -7
  56. package/src/stories/f/QueryChoices.stories.jsx +20 -4
  57. package/src/stories/f/QueryCombobox.stories.jsx +25 -13
  58. package/src/stories/f/QuerySelect.stories.jsx +20 -5
  59. package/src/stories/f/RatingsInput.stories.jsx +16 -2
  60. package/src/stories/f/SelectInput.stories.jsx +20 -5
  61. package/src/stories/f/TextInput.stories.jsx +23 -9
  62. package/src/stories/f/TextareaInput.stories.jsx +16 -2
  63. package/src/ui/f/common/InputWrapper/InputWrapper.jsx +89 -0
  64. package/src/ui/f/common/InputWrapper/index.js +2 -0
  65. package/src/ui/f/common/InputWrapper/styles.scss +13 -0
  66. package/src/ui/f/common/Label/Label.jsx +18 -2
  67. package/src/ui/f/common/Label/styles.scss +8 -2
  68. package/src/ui/f/common/index.js +1 -0
  69. package/src/ui/f/fields/Checkbox/Checkbox.jsx +65 -27
  70. package/src/ui/f/fields/Checkbox/styles.scss +6 -8
  71. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +75 -47
  72. package/src/ui/f/fields/ChoicesInput/common/Choice/Choice.jsx +10 -3
  73. package/src/ui/f/fields/ChoicesInput/styles.scss +50 -35
  74. package/src/ui/f/fields/QueryChoices/QueryChoices.jsx +28 -0
  75. package/src/ui/f/fields/QueryCombobox/QueryCombobox.jsx +37 -2
  76. package/src/ui/f/fields/QueryCombobox/common/Combobox/Combobox.jsx +67 -38
  77. package/src/ui/f/fields/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +81 -66
  78. package/src/ui/f/fields/QueryCombobox/styles.scss +58 -28
  79. package/src/ui/f/fields/QuerySelect/QuerySelect.jsx +16 -1
  80. package/src/ui/f/fields/RatingsInput/RatingsInput.jsx +55 -28
  81. package/src/ui/f/fields/RatingsInput/common/Rating/Rating.jsx +3 -3
  82. package/src/ui/f/fields/RatingsInput/styles.scss +6 -13
  83. package/src/ui/f/fields/SelectInput/SelectInput.jsx +88 -49
  84. package/src/ui/f/fields/SelectInput/styles.scss +40 -18
  85. package/src/ui/f/fields/TextInput/TextInput.jsx +52 -29
  86. package/src/ui/f/fields/TextInput/styles.scss +28 -22
  87. package/src/ui/f/fields/TextareaInput/TextareaInput.jsx +65 -43
  88. package/src/ui/f/fields/TextareaInput/styles.scss +42 -27
  89. package/tests/__snapshots__/Storyshots.test.js.snap +4698 -3122
@@ -29,6 +29,7 @@ const SelectInput = _ref => {
29
29
  style,
30
30
  name,
31
31
  label,
32
+ labelColor,
32
33
  color,
33
34
  options,
34
35
  validate,
@@ -36,7 +37,11 @@ const SelectInput = _ref => {
36
37
  description,
37
38
  disabled,
38
39
  isLoading,
39
- autoComplete
40
+ autoComplete,
41
+ labelSpan,
42
+ desktopLabelSpan,
43
+ inputSpan,
44
+ desktopInputSpan
40
45
  // ...otherProps
41
46
  } = _ref;
42
47
  (0, React.useInsertionEffect)(() => {
@@ -46,18 +51,23 @@ const SelectInput = _ref => {
46
51
  name,
47
52
  validate
48
53
  });
49
- return /*#__PURE__*/React.createElement("div", {
50
- id: id,
51
- className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
52
- style: style
53
- // {...otherProps}
54
- }, /*#__PURE__*/React.createElement(_common.FormLabel, {
54
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_common.FormLabel, {
55
55
  name: name,
56
- optional: optional
57
- }, label), /*#__PURE__*/React.createElement("div", {
58
- className: "select-wrapper with-faded-border"
56
+ color: labelColor,
57
+ optional: optional,
58
+ columnSpan: labelSpan,
59
+ desktopColumnSpan: desktopLabelSpan
60
+ // {...otherProps}
61
+ }, label), /*#__PURE__*/React.createElement(_common.InputWrapper, {
62
+ id: id,
63
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
64
+ style: style,
65
+ columnSpan: inputSpan,
66
+ desktopColumnSpan: desktopInputSpan
67
+ }, /*#__PURE__*/React.createElement("div", {
68
+ className: `select-wrapper${disabled ? ' disabled' : ''}`
59
69
  }, /*#__PURE__*/React.createElement("select", _extends({
60
- className: "input"
70
+ className: `input y-${color}`
61
71
  }, field, {
62
72
  value: field.value || '',
63
73
  id: name,
@@ -75,12 +85,12 @@ const SelectInput = _ref => {
75
85
  disabled: newOption?.disabled || false
76
86
  }, newOption.label);
77
87
  })), isLoading && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
78
- className: "x-main2"
88
+ className: "x-main"
79
89
  })), /*#__PURE__*/React.createElement(_common.FormDescription, {
80
- className: "v50 mt-v s-1",
90
+ className: "s-1",
81
91
  description: description,
82
92
  name: name
83
- }));
93
+ })));
84
94
  };
85
95
  SelectInput.propTypes = {
86
96
  /**
@@ -127,6 +137,10 @@ SelectInput.propTypes = {
127
137
  * The color of the select input
128
138
  */
129
139
  color: _propTypes.default.string,
140
+ /**
141
+ * The color of the select input label
142
+ */
143
+ labelColor: _propTypes.default.string,
130
144
  /*
131
145
  * Whether the query that is fetching the select options is still in flight
132
146
  */
@@ -136,13 +150,29 @@ SelectInput.propTypes = {
136
150
  */
137
151
  autoComplete: _propTypes.default.string,
138
152
  /**
153
+ * The number of columns the label should span
154
+ */
155
+ labelSpan: _propTypes.default.number,
156
+ /**
157
+ * The number of columns the input should span
158
+ */
159
+ inputSpan: _propTypes.default.number,
160
+ /**
161
+ * The number of columns the label should span on desktop
162
+ */
163
+ desktopLabelSpan: _propTypes.default.number,
164
+ /**
165
+ * The number of columns the input should span on desktop
166
+ */
167
+ desktopInputSpan: _propTypes.default.number,
168
+ /**
139
169
  * Whether the input is optional or not
140
170
  */
141
171
  optional: _propTypes.default.bool
142
172
  };
143
173
  SelectInput.defaultProps = {
144
174
  disabled: false,
145
- color: 'interactive'
175
+ color: 'paragraph'
146
176
  };
147
177
  var _default = /*#__PURE__*/(0, React.memo)(SelectInput);
148
178
  exports.default = _default;
@@ -2,45 +2,66 @@
2
2
 
3
3
 
4
4
  @use "@pareto-engineering/bem";
5
- @use "../../../form.scss";
6
-
5
+ @use "@pareto-engineering/styles/src/mixins";
6
+ @use "@pareto-engineering/styles/src/globals" as *;
7
7
 
8
8
  $default-spacing-size: 1em;
9
- $default-padding: .5em;
9
+ $default-padding: .55em .75em;
10
10
  $default-bg-gradient: var(--background-far);
11
11
  $default-input-border-radius: var(--theme-default-input-border-radius);
12
+ $default-border: var(--theme-default-input-border);
13
+ $hover-border: var(--theme-hover-input-border);
14
+ $focus-border: var(--theme-focus-input-border);
15
+ $default-background: var(--theme-default-input-background);
16
+ $disabled-background: var(--theme-disabled-input-background);
12
17
 
13
18
  .#{bem.$base}.select-input {
14
- display: flex;
15
- flex-direction: column;
16
-
17
- .#{bem.$base}.label {
19
+ &.#{bem.$base}.label {
18
20
  margin-bottom: $default-spacing-size;
19
21
  }
20
22
 
21
- >.select-wrapper {
22
- background-color: var(--background-inputs);
23
+ .select-wrapper {
24
+ background-color: $default-background;
25
+ border: $default-border;
23
26
  border-radius: $default-input-border-radius;
24
- padding: $default-padding 0 $default-padding calc($default-padding * 1.5);
27
+ display: flex;
28
+ flex-direction: column;
29
+ padding: $default-padding;
30
+ padding-right: 0;
25
31
  position: relative;
26
32
 
33
+ &:not(.disabled) {
34
+ &:hover,
35
+ &:active {
36
+ border: $hover-border;
37
+ }
38
+
39
+ &:focus {
40
+ border: $focus-border;
41
+ }
42
+ }
43
+
44
+ &.disabled {
45
+ background: $disabled-background;
46
+ }
47
+
48
+ &::placeholder {
49
+ color: var(--metadata);
50
+ }
51
+
27
52
  &::after {
28
53
  border-radius: $default-input-border-radius;
29
54
  }
30
55
 
31
- &:not(:disabled):hover {
32
- box-shadow: var(--default-input-box-shadow);
33
- }
34
56
  >.#{bem.$base}.loading-circle {
35
57
  position: absolute;
36
- right: 0;
58
+ right: $default-spacing-size;
37
59
  top: 50%;
38
60
  transform: translateY(-50%);
39
61
  }
40
62
 
41
63
  select {
42
64
  appearance: none;
43
- background-color: transparent;
44
65
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyMCAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEuNUwxMCAxMC41TDEgMS41IiBzdHJva2U9IiM0QzRENTMiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");
45
66
  background-position: calc(100% - $default-spacing-size);
46
67
  background-repeat: no-repeat;
@@ -48,12 +69,13 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
48
69
  padding-right: $default-spacing-size;
49
70
 
50
71
  &.input {
51
- color: var(--paragraph);
72
+ border: none;
73
+ color: var(--y);
74
+ outline: none;
52
75
  width: 100%;
53
76
 
54
77
  &:disabled {
55
- appearance: none;
56
- opacity: 35%;
78
+ opacity: 0%;
57
79
  }
58
80
  }
59
81
  }
@@ -32,12 +32,15 @@ const TextInput = _ref => {
32
32
  color,
33
33
  labelColor,
34
34
  validate,
35
- oneInputLabel,
36
35
  description,
37
36
  disabled,
38
37
  placeholder,
39
38
  optional,
40
39
  autoComplete,
40
+ labelSpan,
41
+ desktopLabelSpan,
42
+ inputSpan,
43
+ desktopInputSpan,
41
44
  symbol
42
45
  // ...otherProps
43
46
  } = _ref;
@@ -51,19 +54,22 @@ const TextInput = _ref => {
51
54
  const symbolStyle = symbol ? {
52
55
  '--symbol': symbol
53
56
  } : {};
54
- return /*#__PURE__*/React.createElement("div", {
55
- id: id,
56
- className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
57
- style: style
58
- // {...otherProps}
59
- }, /*#__PURE__*/React.createElement(_common.FormLabel, {
60
- className: [oneInputLabel ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v'].filter(e => e).join(' '),
57
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_common.FormLabel, {
61
58
  name: name,
62
59
  color: labelColor,
63
- optional: optional
64
- }, label), /*#__PURE__*/React.createElement("div", {
65
- className: `input-wrapper with-faded-border ${symbol ? 'has-symbol' : ''}`,
66
- style: symbolStyle
60
+ optional: optional,
61
+ columnSpan: labelSpan,
62
+ desktopColumnSpan: desktopLabelSpan
63
+ // {...otherProps}
64
+ }, label), /*#__PURE__*/React.createElement(_common.InputWrapper, {
65
+ id: id,
66
+ className: [baseClassName, componentClassName, userClassName, `y-${color} ${symbol ? 'has-symbol' : ''}`].filter(e => e).join(' '),
67
+ style: {
68
+ ...symbolStyle,
69
+ ...style
70
+ },
71
+ columnSpan: inputSpan,
72
+ desktopColumnSpan: desktopInputSpan
67
73
  }, /*#__PURE__*/React.createElement("input", _extends({
68
74
  id: name,
69
75
  className: "input",
@@ -71,11 +77,11 @@ const TextInput = _ref => {
71
77
  disabled: disabled,
72
78
  placeholder: placeholder,
73
79
  autoComplete: autoComplete
74
- }, field))), /*#__PURE__*/React.createElement(_common.FormDescription, {
75
- className: "v50 mt-v s-1",
80
+ }, field)), /*#__PURE__*/React.createElement(_common.FormDescription, {
81
+ className: "s-1",
76
82
  description: description,
77
83
  name: name
78
- }));
84
+ })));
79
85
  };
80
86
  TextInput.propTypes = {
81
87
  /**
@@ -139,6 +145,22 @@ TextInput.propTypes = {
139
145
  * `https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete`
140
146
  */
141
147
  autoComplete: _propTypes.default.string,
148
+ /**
149
+ * The number of columns the label should span
150
+ */
151
+ labelSpan: _propTypes.default.number,
152
+ /**
153
+ * The number of columns the input should span
154
+ */
155
+ inputSpan: _propTypes.default.number,
156
+ /**
157
+ * The number of columns the label should span on desktop
158
+ */
159
+ desktopLabelSpan: _propTypes.default.number,
160
+ /**
161
+ * The number of columns the input should span on desktop
162
+ */
163
+ desktopInputSpan: _propTypes.default.number,
142
164
  /**
143
165
  * A symbol to be set inside the input field
144
166
  */
@@ -146,7 +168,7 @@ TextInput.propTypes = {
146
168
  };
147
169
  TextInput.defaultProps = {
148
170
  type: 'text',
149
- color: 'main',
171
+ color: 'paragraph',
150
172
  disabled: false
151
173
  };
152
174
  var _default = /*#__PURE__*/(0, React.memo)(TextInput);
@@ -1,32 +1,32 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
 
3
3
  @use "@pareto-engineering/bem";
4
- @use "../../../form.scss";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
5
6
 
6
- $default-padding: .75em .75em .55em;
7
+ $default-padding: .55em .75em;
7
8
  $default-symbol-left: 1em;
8
9
  $default-padding-with-symbol:
9
- .75em
10
+ .55em
10
11
  calc($default-symbol-left - 1em)
11
- .75em
12
+ .55em
12
13
  calc($default-symbol-left + 1em);
13
14
  $default-input-border-radius: var(--theme-default-input-border-radius);
14
-
15
+ $default-border: var(--theme-default-input-border);
16
+ $hover-border: var(--theme-hover-input-border);
17
+ $focus-border: var(--theme-focus-input-border);
18
+ $default-background: var(--theme-default-input-background);
19
+ $disabled-background: var(--theme-disabled-input-background);
15
20
 
16
21
  .#{bem.$base}.text-input {
17
- display: flex;
18
- flex-direction: column;
19
-
20
- >.input-wrapper {
22
+ &.#{bem.$base}.input-wrapper {
23
+ display: flex;
24
+ flex-direction: column;
21
25
  position: relative;
22
26
 
23
- &::after {
24
- border-radius: $default-input-border-radius;
25
- }
26
-
27
27
  &.has-symbol {
28
28
  &::before {
29
- color: var(--interactive);
29
+ color: var(--y);
30
30
  content: var(--symbol);
31
31
  left: $default-symbol-left;
32
32
  position: absolute;
@@ -40,10 +40,11 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
40
40
  }
41
41
 
42
42
  > input {
43
- background-color: var(--background-inputs);
43
+ background-color: $default-background;
44
+ border: $default-border;
44
45
  border-radius: $default-input-border-radius;
45
- color: var(--paragraph);
46
- height: 100%;
46
+ color: var(--y);
47
+ outline: none;
47
48
  padding: $default-padding;
48
49
  width: 100%;
49
50
 
@@ -52,14 +53,19 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
52
53
  }
53
54
 
54
55
  &:disabled {
55
- background-color: var(--hard-x);
56
+ background-color: $disabled-background;
56
57
  }
57
58
 
58
- &:not(:disabled):hover {
59
- border-radius: $default-input-border-radius;
60
- box-shadow: var(--theme-default-input-box-shadow);
59
+ &:not(:disabled) {
60
+ &:hover,
61
+ &:active {
62
+ border: $hover-border;
63
+ }
64
+
65
+ &:focus {
66
+ border: $focus-border;
67
+ }
61
68
  }
62
69
  }
63
70
  }
64
71
  }
65
-
@@ -27,17 +27,19 @@ const TextareaInput = _ref => {
27
27
  name,
28
28
  label,
29
29
  validate,
30
- labelAsDescription,
31
- textAreaId,
30
+ color,
32
31
  rows,
33
32
  optional,
34
- backgroundColor,
35
33
  labelColor,
36
34
  description,
37
35
  disabled,
38
36
  placeholder,
39
37
  autoComplete,
40
- resize
38
+ resize,
39
+ labelSpan,
40
+ desktopLabelSpan,
41
+ inputSpan,
42
+ desktopInputSpan
41
43
  // ...otherProps
42
44
  } = _ref;
43
45
  (0, React.useInsertionEffect)(() => {
@@ -47,18 +49,21 @@ const TextareaInput = _ref => {
47
49
  name,
48
50
  validate
49
51
  });
50
- return /*#__PURE__*/React.createElement("div", {
51
- id: id,
52
- className: [baseClassName, componentClassName, userClassName, `y-${backgroundColor}`].filter(e => e).join(' '),
53
- style: style
54
- // {...otherProps}
55
- }, /*#__PURE__*/React.createElement(_common.FormLabel, {
56
- className: [labelAsDescription ? 'md-s2 s0 v1 mb-v' : 'v50 mb-v'].filter(e => e).join(' '),
52
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_common.FormLabel, {
57
53
  name: name,
58
54
  color: labelColor,
59
- optional: optional
60
- }, label), /*#__PURE__*/React.createElement("textarea", _extends({
61
- id: textAreaId,
55
+ optional: optional,
56
+ columnSpan: labelSpan,
57
+ desktopColumnSpan: desktopLabelSpan
58
+ // {...otherProps}
59
+ }, label), /*#__PURE__*/React.createElement(_common.InputWrapper, {
60
+ id: id,
61
+ className: [baseClassName, componentClassName, userClassName, `y-${color}`].filter(e => e).join(' '),
62
+ style: style,
63
+ columnSpan: inputSpan,
64
+ desktopColumnSpan: desktopInputSpan
65
+ }, /*#__PURE__*/React.createElement("textarea", _extends({
66
+ id: name,
62
67
  className: "textarea"
63
68
  }, field, {
64
69
  style: {
@@ -69,10 +74,10 @@ const TextareaInput = _ref => {
69
74
  disabled: disabled,
70
75
  autoComplete: autoComplete
71
76
  })), /*#__PURE__*/React.createElement(_common.FormDescription, {
72
- className: "v50 mt-v s-1",
77
+ className: "s-1",
73
78
  description: description,
74
79
  name: name
75
- }));
80
+ })));
76
81
  };
77
82
  TextareaInput.propTypes = {
78
83
  /**
@@ -112,9 +117,9 @@ TextareaInput.propTypes = {
112
117
  */
113
118
  rows: _propTypes.default.number,
114
119
  /**
115
- * Text area background color
120
+ * Color of the text
116
121
  */
117
- backgroundColor: _propTypes.default.string,
122
+ color: _propTypes.default.string,
118
123
  /**
119
124
  * Label base color
120
125
  */
@@ -143,13 +148,29 @@ TextareaInput.propTypes = {
143
148
  /**
144
149
  * Whether the input is optional or not
145
150
  */
146
- optional: _propTypes.default.bool
151
+ optional: _propTypes.default.bool,
152
+ /**
153
+ * The number of columns the label should span
154
+ */
155
+ labelSpan: _propTypes.default.number,
156
+ /**
157
+ * The number of columns the input should span
158
+ */
159
+ inputSpan: _propTypes.default.number,
160
+ /**
161
+ * The number of columns the label should span on desktop
162
+ */
163
+ desktopLabelSpan: _propTypes.default.number,
164
+ /**
165
+ * The number of columns the input should span on desktop
166
+ */
167
+ desktopInputSpan: _propTypes.default.number
147
168
  };
148
169
  TextareaInput.defaultProps = {
149
170
  rows: 10,
150
- backgroundColor: 'background-inputs',
151
171
  disabled: false,
152
- resize: 'vertical'
172
+ resize: 'vertical',
173
+ color: 'paragraph'
153
174
  };
154
175
  var _default = /*#__PURE__*/(0, React.memo)(TextareaInput);
155
176
  exports.default = _default;
@@ -1,35 +1,50 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
 
3
3
  @use "@pareto-engineering/bem";
4
-
5
- $default-padding: var(--theme-default-padding);
6
- $active-border-color: var(--on-y);
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ $default-padding: .55em .75em;
8
+ $default-border: 1px solid var(--outline-inputs);
9
+ $default-input-border-radius: var(--theme-default-input-border-radius);
10
+ $default-border: var(--theme-default-input-border);
11
+ $hover-border: var(--theme-hover-input-border);
12
+ $focus-border: var(--theme-focus-input-border);
13
+ $default-background: var(--theme-default-input-background);
14
+ $disabled-background: var(--theme-disabled-input-background);
7
15
 
8
16
  .#{bem.$base}.text-area-input {
9
- display: flex;
10
- flex-direction: column;
11
-
12
- .textarea {
13
- background: var(--y);
14
- border: var(--theme-default-border-style) var(--hard-y);
15
- border-radius: calc(var(--theme-default-border-radius) / 2);
16
- color: var(--on-y);
17
- padding: $default-padding;
18
-
19
- &::placeholder {
20
- color: var(--metadata);
21
- }
22
-
23
- &:not(:disabled):hover {
24
- border: var(--theme-default-border-style) $active-border-color;
25
- }
26
-
27
- &:disabled {
28
- background-color: var(--hard-y);
29
- }
30
-
31
- &:focus {
32
- border: var(--theme-default-border-style) $active-border-color;
17
+ &.#{bem.$base}.input-wrapper {
18
+ display: flex;
19
+ flex-direction: column;
20
+
21
+ > .textarea {
22
+ background: $default-background;
23
+ border: $default-border;
24
+ border-radius: $default-input-border-radius;
25
+ color: var(--y);
26
+ outline: none;
27
+ padding: $default-padding;
28
+ width: 100%;
29
+
30
+ &::placeholder {
31
+ color: var(--metadata);
32
+ }
33
+
34
+ &:disabled {
35
+ background-color: $disabled-background;
36
+ }
37
+
38
+ &:not(:disabled) {
39
+ &:hover,
40
+ &:active {
41
+ border: $hover-border;
42
+ }
43
+
44
+ &:focus {
45
+ border: $focus-border;
46
+ }
47
+ }
33
48
  }
34
49
  }
35
50
  }
@@ -0,0 +1,66 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react';
3
+ import { useInsertionEffect } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import styleNames from '@pareto-engineering/bem/exports';
6
+
7
+ // Local Definitions
8
+
9
+ const baseClassName = styleNames.base;
10
+ const componentClassName = 'input-wrapper';
11
+
12
+ /**
13
+ * This is the component description.
14
+ */
15
+ const InputWrapper = ({
16
+ id,
17
+ className: userClassName,
18
+ style,
19
+ children,
20
+ columnSpan,
21
+ desktopColumnSpan
22
+ // ...otherProps
23
+ }) => {
24
+ useInsertionEffect(() => {
25
+ import("./styles.scss");
26
+ }, []);
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ id: id,
29
+ className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
30
+ style: {
31
+ ...style,
32
+ '--column-span': columnSpan || 'var(--columns)',
33
+ '--column-span-md': desktopColumnSpan || 'var(--columns)'
34
+ }
35
+ }, children);
36
+ };
37
+ InputWrapper.propTypes = {
38
+ /**
39
+ * The HTML id for this element
40
+ */
41
+ id: PropTypes.string,
42
+ /**
43
+ * The HTML class names for this element
44
+ */
45
+ className: PropTypes.string,
46
+ /**
47
+ * The React-written, css properties for this element.
48
+ */
49
+ style: PropTypes.objectOf(PropTypes.string),
50
+ /**
51
+ * The children JSX
52
+ */
53
+ children: PropTypes.node,
54
+ /**
55
+ * How many columns the input should span
56
+ */
57
+ columnSpan: PropTypes.number,
58
+ /**
59
+ * How many columns the input should span on desktop
60
+ */
61
+ desktopColumnSpan: PropTypes.number
62
+ };
63
+ InputWrapper.defaultProps = {
64
+ // as :'label',
65
+ };
66
+ export default InputWrapper;
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as InputWrapper } from "./InputWrapper";
@@ -0,0 +1,13 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ .#{bem.$base}.input-wrapper {
8
+ grid-column: span var(--column-span);
9
+
10
+ @include mixins.media($from: $sm-md) {
11
+ grid-column: span var(--column-span-md);
12
+ }
13
+ }