@pareto-engineering/design-system 4.0.0-alpha.62 → 4.0.0-alpha.63

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 (192) hide show
  1. package/dist/cjs/f/FormInput/FormInput.js +43 -13
  2. package/dist/cjs/f/common/V2/Description/Description.js +76 -0
  3. package/dist/cjs/f/common/V2/Description/index.js +13 -0
  4. package/dist/cjs/f/common/V2/Description/styles.scss +10 -0
  5. package/dist/cjs/f/common/V2/Label/Label.js +84 -0
  6. package/dist/cjs/f/common/V2/Label/index.js +13 -0
  7. package/dist/cjs/f/common/V2/Label/styles.scss +9 -0
  8. package/dist/cjs/f/common/V2/index.js +19 -0
  9. package/dist/cjs/f/common/index.js +12 -0
  10. package/dist/cjs/f/fields/V2/Checkbox/Checkbox.js +122 -0
  11. package/dist/cjs/f/fields/V2/Checkbox/index.js +13 -0
  12. package/dist/cjs/f/fields/V2/Checkbox/styles.scss +16 -0
  13. package/dist/cjs/f/fields/V2/ChoicesInput/ChoicesInput.js +154 -0
  14. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/Choice.js +104 -0
  15. package/dist/cjs/f/fields/V2/ChoicesInput/common/Choice/index.js +13 -0
  16. package/dist/cjs/f/fields/V2/ChoicesInput/common/index.js +12 -0
  17. package/dist/cjs/f/fields/V2/ChoicesInput/index.js +13 -0
  18. package/dist/cjs/f/fields/V2/ChoicesInput/styles.scss +79 -0
  19. package/dist/cjs/f/fields/V2/EditorInput/EditorInput.js +197 -0
  20. package/dist/cjs/f/fields/V2/EditorInput/common/Toolbar.js +257 -0
  21. package/dist/cjs/f/fields/V2/EditorInput/common/TreeViewPlugin.js +18 -0
  22. package/dist/cjs/f/fields/V2/EditorInput/common/index.js +20 -0
  23. package/dist/cjs/f/fields/V2/EditorInput/index.js +13 -0
  24. package/dist/cjs/f/fields/V2/EditorInput/styles.scss +149 -0
  25. package/dist/cjs/f/fields/V2/LinkInput/LinkInput.js +156 -0
  26. package/dist/cjs/f/fields/V2/LinkInput/index.js +13 -0
  27. package/dist/cjs/f/fields/V2/LinkInput/styles.scss +90 -0
  28. package/dist/cjs/f/fields/V2/QueryChoices/QueryChoices.js +137 -0
  29. package/dist/cjs/f/fields/V2/QueryChoices/index.js +13 -0
  30. package/dist/cjs/f/fields/V2/QueryCombobox/QueryCombobox.js +229 -0
  31. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +236 -0
  32. package/dist/cjs/f/fields/V2/QueryCombobox/common/Combobox/index.js +13 -0
  33. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/Menu.js +83 -0
  34. package/dist/cjs/f/fields/V2/QueryCombobox/common/Menu/index.js +13 -0
  35. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +300 -0
  36. package/dist/cjs/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +13 -0
  37. package/dist/cjs/f/fields/V2/QueryCombobox/common/index.js +26 -0
  38. package/dist/cjs/f/fields/V2/QueryCombobox/index.js +13 -0
  39. package/dist/cjs/f/fields/V2/QueryCombobox/styles.scss +127 -0
  40. package/dist/cjs/f/fields/V2/QuerySelect/QuerySelect.js +198 -0
  41. package/dist/cjs/f/fields/V2/QuerySelect/index.js +13 -0
  42. package/dist/cjs/f/fields/V2/RatingsInput/RatingsInput.js +130 -0
  43. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/Rating.js +117 -0
  44. package/dist/cjs/f/fields/V2/RatingsInput/common/Rating/index.js +13 -0
  45. package/dist/cjs/f/fields/V2/RatingsInput/common/index.js +12 -0
  46. package/dist/cjs/f/fields/V2/RatingsInput/index.js +13 -0
  47. package/dist/cjs/f/fields/V2/RatingsInput/styles.scss +48 -0
  48. package/dist/cjs/f/fields/V2/SelectInput/SelectInput.js +154 -0
  49. package/dist/cjs/f/fields/V2/SelectInput/index.js +13 -0
  50. package/dist/cjs/f/fields/V2/SelectInput/styles.scss +87 -0
  51. package/dist/cjs/f/fields/V2/TextInput/TextInput.js +155 -0
  52. package/dist/cjs/f/fields/V2/TextInput/index.js +13 -0
  53. package/dist/cjs/f/fields/V2/TextInput/styles.scss +78 -0
  54. package/dist/cjs/f/fields/V2/TextareaInput/TextareaInput.js +152 -0
  55. package/dist/cjs/f/fields/V2/TextareaInput/index.js +13 -0
  56. package/dist/cjs/f/fields/V2/TextareaInput/styles.scss +53 -0
  57. package/dist/cjs/f/fields/V2/index.js +82 -0
  58. package/dist/cjs/f/fields/index.js +26 -1
  59. package/dist/es/f/FormInput/FormInput.js +33 -3
  60. package/dist/es/f/common/V2/Description/Description.js +68 -0
  61. package/dist/es/f/common/V2/Description/index.js +2 -0
  62. package/dist/es/f/common/V2/Description/styles.scss +10 -0
  63. package/dist/es/f/common/V2/Label/Label.js +76 -0
  64. package/dist/es/f/common/V2/Label/index.js +2 -0
  65. package/dist/es/f/common/V2/Label/styles.scss +9 -0
  66. package/dist/es/f/common/V2/index.js +2 -0
  67. package/dist/es/f/common/index.js +2 -1
  68. package/dist/es/f/fields/V2/Checkbox/Checkbox.js +114 -0
  69. package/dist/es/f/fields/V2/Checkbox/index.js +2 -0
  70. package/dist/es/f/fields/V2/Checkbox/styles.scss +16 -0
  71. package/dist/es/f/fields/V2/ChoicesInput/ChoicesInput.js +148 -0
  72. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/Choice.js +97 -0
  73. package/dist/es/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  74. package/dist/es/f/fields/V2/ChoicesInput/common/index.js +1 -0
  75. package/dist/es/f/fields/V2/ChoicesInput/index.js +2 -0
  76. package/dist/es/f/fields/V2/ChoicesInput/styles.scss +79 -0
  77. package/dist/es/f/fields/V2/EditorInput/EditorInput.js +192 -0
  78. package/dist/es/f/fields/V2/EditorInput/common/Toolbar.js +246 -0
  79. package/dist/es/f/fields/V2/EditorInput/common/TreeViewPlugin.js +11 -0
  80. package/dist/es/f/fields/V2/EditorInput/common/index.js +2 -0
  81. package/dist/es/f/fields/V2/EditorInput/index.js +2 -0
  82. package/dist/es/f/fields/V2/EditorInput/styles.scss +149 -0
  83. package/dist/es/f/fields/V2/LinkInput/LinkInput.js +148 -0
  84. package/dist/es/f/fields/V2/LinkInput/index.js +2 -0
  85. package/dist/es/f/fields/V2/LinkInput/styles.scss +90 -0
  86. package/dist/es/f/fields/V2/QueryChoices/QueryChoices.js +126 -0
  87. package/dist/es/f/fields/V2/QueryChoices/index.js +2 -0
  88. package/dist/es/f/fields/V2/QueryCombobox/QueryCombobox.js +221 -0
  89. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/Combobox.js +229 -0
  90. package/dist/es/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  91. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/Menu.js +73 -0
  92. package/dist/es/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  93. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.js +293 -0
  94. package/dist/es/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  95. package/dist/es/f/fields/V2/QueryCombobox/common/index.js +3 -0
  96. package/dist/es/f/fields/V2/QueryCombobox/index.js +2 -0
  97. package/dist/es/f/fields/V2/QueryCombobox/styles.scss +127 -0
  98. package/dist/es/f/fields/V2/QuerySelect/QuerySelect.js +186 -0
  99. package/dist/es/f/fields/V2/QuerySelect/index.js +2 -0
  100. package/dist/es/f/fields/V2/RatingsInput/RatingsInput.js +124 -0
  101. package/dist/es/f/fields/V2/RatingsInput/common/Rating/Rating.js +109 -0
  102. package/dist/es/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  103. package/dist/es/f/fields/V2/RatingsInput/common/index.js +1 -0
  104. package/dist/es/f/fields/V2/RatingsInput/index.js +2 -0
  105. package/dist/es/f/fields/V2/RatingsInput/styles.scss +48 -0
  106. package/dist/es/f/fields/V2/SelectInput/SelectInput.js +146 -0
  107. package/dist/es/f/fields/V2/SelectInput/index.js +2 -0
  108. package/dist/es/f/fields/V2/SelectInput/styles.scss +87 -0
  109. package/dist/es/f/fields/V2/TextInput/TextInput.js +147 -0
  110. package/dist/es/f/fields/V2/TextInput/index.js +2 -0
  111. package/dist/es/f/fields/V2/TextInput/styles.scss +78 -0
  112. package/dist/es/f/fields/V2/TextareaInput/TextareaInput.js +146 -0
  113. package/dist/es/f/fields/V2/TextareaInput/index.js +2 -0
  114. package/dist/es/f/fields/V2/TextareaInput/styles.scss +53 -0
  115. package/dist/es/f/fields/V2/index.js +11 -0
  116. package/dist/es/f/fields/index.js +2 -1
  117. package/package.json +3 -3
  118. package/src/stories/f/v2/Checkbox.stories.jsx +102 -0
  119. package/src/stories/f/v2/ChoicesInput.stories.jsx +139 -0
  120. package/src/stories/f/v2/EditorInput.stories.jsx +81 -0
  121. package/src/stories/f/v2/LinkInput.stories.jsx +93 -0
  122. package/src/stories/f/v2/QueryChoices.stories.jsx +144 -0
  123. package/src/stories/f/v2/QueryCombobox.stories.jsx +301 -0
  124. package/src/stories/f/v2/QuerySelect.stories.jsx +150 -0
  125. package/src/stories/f/v2/RatingsInput.stories.jsx +77 -0
  126. package/src/stories/f/v2/SelectInput.stories.jsx +95 -0
  127. package/src/stories/f/v2/TextInput.stories.jsx +120 -0
  128. package/src/stories/f/v2/TextareaInput.stories.jsx +107 -0
  129. package/src/stories/f/v2/__generated__/FormInputAllTaskStatusesQuery.graphql.js +122 -0
  130. package/src/stories/f/v2/__generated__/FormInputAllTeamsQuery.graphql.js +139 -0
  131. package/src/stories/f/v2/__generated__/QueryChoicesAllTaskStatusesQuery.graphql.js +122 -0
  132. package/src/stories/f/v2/__generated__/QueryComboboxAllTeamsQuery.graphql.js +139 -0
  133. package/src/stories/f/v2/__generated__/QuerySelectAllTaskStatusesQuery.graphql.js +122 -0
  134. package/src/ui/f/FormInput/FormInput.jsx +57 -12
  135. package/src/ui/f/common/V2/Description/Description.jsx +94 -0
  136. package/src/ui/f/common/V2/Description/index.js +2 -0
  137. package/src/ui/f/common/V2/Description/styles.scss +10 -0
  138. package/src/ui/f/common/V2/Label/Label.jsx +102 -0
  139. package/src/ui/f/common/V2/Label/index.js +2 -0
  140. package/src/ui/f/common/V2/Label/styles.scss +9 -0
  141. package/src/ui/f/common/V2/index.js +2 -0
  142. package/src/ui/f/common/index.js +1 -0
  143. package/src/ui/f/fields/V2/Checkbox/Checkbox.jsx +146 -0
  144. package/src/ui/f/fields/V2/Checkbox/index.js +2 -0
  145. package/src/ui/f/fields/V2/Checkbox/styles.scss +16 -0
  146. package/src/ui/f/fields/V2/ChoicesInput/ChoicesInput.jsx +183 -0
  147. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/Choice.jsx +125 -0
  148. package/src/ui/f/fields/V2/ChoicesInput/common/Choice/index.js +2 -0
  149. package/src/ui/f/fields/V2/ChoicesInput/common/index.js +1 -0
  150. package/src/ui/f/fields/V2/ChoicesInput/index.js +2 -0
  151. package/src/ui/f/fields/V2/ChoicesInput/styles.scss +79 -0
  152. package/src/ui/f/fields/V2/EditorInput/EditorInput.jsx +244 -0
  153. package/src/ui/f/fields/V2/EditorInput/common/Toolbar.jsx +356 -0
  154. package/src/ui/f/fields/V2/EditorInput/common/TreeViewPlugin.jsx +16 -0
  155. package/src/ui/f/fields/V2/EditorInput/common/index.jsx +2 -0
  156. package/src/ui/f/fields/V2/EditorInput/index.js +2 -0
  157. package/src/ui/f/fields/V2/EditorInput/styles.scss +149 -0
  158. package/src/ui/f/fields/V2/LinkInput/LinkInput.jsx +187 -0
  159. package/src/ui/f/fields/V2/LinkInput/index.js +2 -0
  160. package/src/ui/f/fields/V2/LinkInput/styles.scss +90 -0
  161. package/src/ui/f/fields/V2/QueryChoices/QueryChoices.jsx +153 -0
  162. package/src/ui/f/fields/V2/QueryChoices/index.js +2 -0
  163. package/src/ui/f/fields/V2/QueryCombobox/QueryCombobox.jsx +254 -0
  164. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/Combobox.jsx +276 -0
  165. package/src/ui/f/fields/V2/QueryCombobox/common/Combobox/index.js +2 -0
  166. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/Menu.jsx +103 -0
  167. package/src/ui/f/fields/V2/QueryCombobox/common/Menu/index.js +2 -0
  168. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/MultipleCombobox.jsx +362 -0
  169. package/src/ui/f/fields/V2/QueryCombobox/common/MultipleCombobox/index.js +2 -0
  170. package/src/ui/f/fields/V2/QueryCombobox/common/index.js +3 -0
  171. package/src/ui/f/fields/V2/QueryCombobox/index.js +2 -0
  172. package/src/ui/f/fields/V2/QueryCombobox/styles.scss +127 -0
  173. package/src/ui/f/fields/V2/QuerySelect/QuerySelect.jsx +220 -0
  174. package/src/ui/f/fields/V2/QuerySelect/index.js +2 -0
  175. package/src/ui/f/fields/V2/RatingsInput/RatingsInput.jsx +152 -0
  176. package/src/ui/f/fields/V2/RatingsInput/common/Rating/Rating.jsx +142 -0
  177. package/src/ui/f/fields/V2/RatingsInput/common/Rating/index.js +2 -0
  178. package/src/ui/f/fields/V2/RatingsInput/common/index.js +1 -0
  179. package/src/ui/f/fields/V2/RatingsInput/index.js +2 -0
  180. package/src/ui/f/fields/V2/RatingsInput/styles.scss +48 -0
  181. package/src/ui/f/fields/V2/SelectInput/SelectInput.jsx +187 -0
  182. package/src/ui/f/fields/V2/SelectInput/index.js +2 -0
  183. package/src/ui/f/fields/V2/SelectInput/styles.scss +87 -0
  184. package/src/ui/f/fields/V2/TextInput/TextInput.jsx +192 -0
  185. package/src/ui/f/fields/V2/TextInput/index.js +2 -0
  186. package/src/ui/f/fields/V2/TextInput/styles.scss +78 -0
  187. package/src/ui/f/fields/V2/TextareaInput/TextareaInput.jsx +180 -0
  188. package/src/ui/f/fields/V2/TextareaInput/index.js +2 -0
  189. package/src/ui/f/fields/V2/TextareaInput/styles.scss +53 -0
  190. package/src/ui/f/fields/V2/index.js +11 -0
  191. package/src/ui/f/fields/index.js +1 -0
  192. package/tests/__snapshots__/Storyshots.test.js.snap +5909 -0
@@ -0,0 +1,192 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { useInsertionEffect, memo } from 'react'
5
+
6
+ import PropTypes from 'prop-types'
7
+
8
+ import styleNames from '@pareto-engineering/bem/exports'
9
+
10
+ import { useField } from 'formik'
11
+
12
+ import { FormLabelV2, FormDescriptionV2 } from '../../../common'
13
+
14
+ // Local Definitions
15
+
16
+ const baseClassName = styleNames.base
17
+
18
+ const componentClassName = 'text-input'
19
+
20
+ /**
21
+ * This is the component description.
22
+ */
23
+ const TextInput = ({
24
+ id,
25
+ className:userClassName,
26
+ style,
27
+ type,
28
+ name,
29
+ label,
30
+ color,
31
+ labelColor,
32
+ validate,
33
+ description,
34
+ disabled,
35
+ placeholder,
36
+ optional,
37
+ autoComplete,
38
+ symbol,
39
+ ...otherProps
40
+ }) => {
41
+ useInsertionEffect(() => {
42
+ import('./styles.scss')
43
+ }, [])
44
+
45
+ const [field] = useField({ name, validate })
46
+ const symbolStyle = symbol
47
+ ? { '--symbol': symbol }
48
+ : {}
49
+
50
+ const InputWrapper = symbol ? 'div' : React.Fragment
51
+ const inputWrapperProps = symbol ? { className: 'input-wrapper' } : {}
52
+
53
+ return (
54
+ <div
55
+ id={id}
56
+ className={[
57
+ baseClassName,
58
+ componentClassName,
59
+ userClassName,
60
+ `y-${color} ${symbol ? 'has-symbol' : ''}`,
61
+ ]
62
+ .filter((e) => e)
63
+ .join(' ')}
64
+ style={{
65
+ ...symbolStyle,
66
+ ...style,
67
+ }}
68
+ >
69
+ <FormLabelV2
70
+ name={name}
71
+ color={labelColor}
72
+ optional={optional}
73
+ // {...otherProps}
74
+ >
75
+ {label}
76
+ </FormLabelV2>
77
+ <InputWrapper {...inputWrapperProps}>
78
+ <input
79
+ id={name}
80
+ className="input"
81
+ type={type}
82
+ disabled={disabled}
83
+ placeholder={placeholder}
84
+ autoComplete={autoComplete}
85
+ {...field}
86
+ {...otherProps}
87
+ />
88
+ </InputWrapper>
89
+ <FormDescriptionV2 className="s-1" description={description} name={name} />
90
+ </div>
91
+ )
92
+ }
93
+
94
+ TextInput.propTypes = {
95
+ /**
96
+ * The HTML id for this element
97
+ */
98
+ id:PropTypes.string,
99
+
100
+ /**
101
+ * The HTML class names for this element
102
+ */
103
+ className:PropTypes.string,
104
+
105
+ /**
106
+ * The React-written, css properties for this element.
107
+ */
108
+ style:PropTypes.objectOf(PropTypes.string),
109
+
110
+ /**
111
+ * The input name (html - and Formik state)
112
+ */
113
+ name:PropTypes.string.isRequired,
114
+
115
+ /**
116
+ * The input label
117
+ */
118
+ label:PropTypes.string.isRequired,
119
+
120
+ /**
121
+ * The input label color
122
+ */
123
+ labelColor:PropTypes.string,
124
+
125
+ /**
126
+ * The type of the input (html)
127
+ */
128
+ type:PropTypes.oneOf([
129
+ 'text',
130
+ 'email',
131
+ 'password',
132
+ 'number',
133
+ 'date',
134
+ 'time',
135
+ 'datetime',
136
+ 'month',
137
+ 'tel',
138
+ 'hidden',
139
+ 'url',
140
+ ]),
141
+
142
+ /**
143
+ * The input field validator function
144
+ */
145
+ validate :PropTypes.func,
146
+ /**
147
+ * If the slide will only have one input
148
+ */
149
+ oneInputLabel:PropTypes.bool,
150
+ /**
151
+ * Input description
152
+ */
153
+ description :PropTypes.string,
154
+ /**
155
+ * Whether the text input should be disabled
156
+ */
157
+ disabled :PropTypes.bool,
158
+
159
+ /**
160
+ * The placeholder text for the input
161
+ */
162
+ placeholder:PropTypes.string,
163
+
164
+ /**
165
+ * The text input color
166
+ */
167
+ color:PropTypes.string,
168
+
169
+ /**
170
+ * Whether the input is optional or not
171
+ */
172
+ optional:PropTypes.bool,
173
+
174
+ /**
175
+ * The autoComplete value that the browser should watch for the input
176
+ * `https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete`
177
+ */
178
+ autoComplete:PropTypes.string,
179
+
180
+ /**
181
+ * A symbol to be set inside the input field
182
+ */
183
+ symbol:PropTypes.string,
184
+ }
185
+
186
+ TextInput.defaultProps = {
187
+ type :'text',
188
+ color :'paragraph',
189
+ disabled:false,
190
+ }
191
+
192
+ export default memo(TextInput)
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as TextInput } from './TextInput'
@@ -0,0 +1,78 @@
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
+ $default-padding: .55em .75em;
8
+ $default-symbol-left: 1em;
9
+ $default-padding-with-symbol:
10
+ .55em
11
+ calc($default-symbol-left - 1em)
12
+ .55em
13
+ calc($default-symbol-left + 1em);
14
+ $default-input-border-radius: var(--theme-default-input-border-radius);
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(--background-inputs);
19
+ $disabled-background: var(--background-inputs-30);
20
+
21
+ .#{bem.$base}.text-input {
22
+ display: flex;
23
+ flex-direction: column;
24
+
25
+ > .#{bem.$base}.form-label {
26
+ margin-bottom: var(--gap);
27
+ }
28
+
29
+
30
+ &.has-symbol {
31
+ > .input-wrapper {
32
+ position: relative;
33
+
34
+ &::before {
35
+ color: var(--y);
36
+ content: var(--symbol);
37
+ left: $default-symbol-left;
38
+ position: absolute;
39
+ top: 50%;
40
+ transform: translate(-50%, -50%);
41
+ }
42
+ }
43
+
44
+ input {
45
+ padding: $default-padding-with-symbol;
46
+ }
47
+ }
48
+
49
+ .input {
50
+ background-color: $default-background;
51
+ border: $default-border;
52
+ border-radius: $default-input-border-radius;
53
+ color: var(--y);
54
+ outline: none;
55
+ padding: $default-padding;
56
+ width: 100%;
57
+
58
+ &::placeholder {
59
+ color: var(--metadata);
60
+ }
61
+
62
+ &:disabled {
63
+ background-color: $disabled-background;
64
+ }
65
+
66
+ &:not(:disabled) {
67
+ &:hover,
68
+ &:active {
69
+ border: $hover-border;
70
+ }
71
+
72
+ &:focus {
73
+ border: $focus-border;
74
+ }
75
+ }
76
+ }
77
+ }
78
+
@@ -0,0 +1,180 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { useInsertionEffect, memo } from 'react'
5
+
6
+ import PropTypes from 'prop-types'
7
+
8
+ import styleNames from '@pareto-engineering/bem/exports'
9
+
10
+ import { useField } from 'formik'
11
+
12
+ // Local Definitions
13
+
14
+ import { FormLabelV2, FormDescriptionV2 } from '../../../common'
15
+
16
+ const baseClassName = styleNames.base
17
+
18
+ const componentClassName = 'text-area-input'
19
+
20
+ /**
21
+ * This is the component description.
22
+ */
23
+ const TextareaInput = ({
24
+ id,
25
+ className:userClassName,
26
+ style,
27
+ name,
28
+ label,
29
+ validate,
30
+ color,
31
+ rows,
32
+ optional,
33
+ labelColor,
34
+ description,
35
+ disabled,
36
+ placeholder,
37
+ autoComplete,
38
+ resize,
39
+ // ...otherProps
40
+ }) => {
41
+ useInsertionEffect(() => {
42
+ import('./styles.scss')
43
+ }, [])
44
+
45
+ const [field] = useField({ name, validate })
46
+
47
+ return (
48
+ <div
49
+ id={id}
50
+ className={[
51
+ baseClassName,
52
+ componentClassName,
53
+ userClassName,
54
+ `y-${color}`,
55
+ ]
56
+ .filter((e) => e)
57
+ .join(' ')}
58
+ style={style}
59
+ >
60
+ <FormLabelV2
61
+ name={name}
62
+ color={labelColor}
63
+ optional={optional}
64
+ // {...otherProps}
65
+ >
66
+ {label}
67
+ </FormLabelV2>
68
+
69
+ <textarea
70
+ id={name}
71
+ className="textarea"
72
+ {...field}
73
+ style={{ resize }}
74
+ placeholder={placeholder}
75
+ rows={rows}
76
+ disabled={disabled}
77
+ autoComplete={autoComplete}
78
+ >
79
+ {/* It was a dark and stormy night... */}
80
+ </textarea>
81
+ <FormDescriptionV2 className="s-1" description={description} name={name} />
82
+ </div>
83
+ )
84
+ }
85
+
86
+ TextareaInput.propTypes = {
87
+ /**
88
+ * The HTML id for this element
89
+ */
90
+ id:PropTypes.string,
91
+
92
+ /**
93
+ * The HTML class names for this element
94
+ */
95
+ className:PropTypes.string,
96
+
97
+ /**
98
+ * The React-written, css properties for this element.
99
+ */
100
+ style:PropTypes.objectOf(PropTypes.string),
101
+
102
+ /**
103
+ * The input name (html - and Formik state)
104
+ */
105
+ name:PropTypes.string.isRequired,
106
+
107
+ /**
108
+ * The input label
109
+ */
110
+ label:PropTypes.string.isRequired,
111
+
112
+ /**
113
+ * The input value validator function
114
+ */
115
+ validate :PropTypes.func,
116
+ /**
117
+ * If the text area depends on it's label's text as the default description
118
+ */
119
+ labelAsDescription:PropTypes.bool,
120
+
121
+ /**
122
+ * The textarea id
123
+ */
124
+ textAreaId:PropTypes.string,
125
+
126
+ /**
127
+ * The number of rows int the text area
128
+ */
129
+ rows:PropTypes.number,
130
+
131
+ /**
132
+ * Color of the text
133
+ */
134
+ color:PropTypes.string,
135
+
136
+ /**
137
+ * Label base color
138
+ */
139
+ labelColor:PropTypes.string,
140
+
141
+ /**
142
+ * Text area description
143
+ */
144
+ description:PropTypes.string,
145
+
146
+ /**
147
+ * Whether the text area should be disabled
148
+ */
149
+ disabled:PropTypes.bool,
150
+
151
+ /**
152
+ * The textarea placeholder text
153
+ */
154
+ placeholder:PropTypes.string,
155
+
156
+ /**
157
+ * The autoComplete value that the browser should watch for the input
158
+ */
159
+ autoComplete:PropTypes.string,
160
+
161
+ /**
162
+ * Whether to disable or allow only a certain method of resizing the area
163
+ * Textarea docs - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
164
+ */
165
+ resize:PropTypes.string,
166
+
167
+ /**
168
+ * Whether the input is optional or not
169
+ */
170
+ optional:PropTypes.bool,
171
+ }
172
+
173
+ TextareaInput.defaultProps = {
174
+ rows :10,
175
+ disabled:false,
176
+ resize :'vertical',
177
+ color :'paragraph',
178
+ }
179
+
180
+ export default memo(TextareaInput)
@@ -0,0 +1,2 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ export { default as TextareaInput } from './TextareaInput'
@@ -0,0 +1,53 @@
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
+ $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(--background-inputs);
14
+ $disabled-background: var(--background-inputs-30);
15
+
16
+ .#{bem.$base}.text-area-input {
17
+ display: flex;
18
+ flex-direction: column;
19
+
20
+ > .#{bem.$base}.form-label {
21
+ margin-bottom: var(--gap);
22
+ }
23
+
24
+
25
+ > .textarea {
26
+ background: $default-background;
27
+ border: $default-border;
28
+ border-radius: $default-input-border-radius;
29
+ color: var(--y);
30
+ outline: none;
31
+ padding: $default-padding;
32
+ width: 100%;
33
+
34
+ &::placeholder {
35
+ color: var(--metadata);
36
+ }
37
+
38
+ &:disabled {
39
+ background-color: $disabled-background;
40
+ }
41
+
42
+ &:not(:disabled) {
43
+ &:hover,
44
+ &:active {
45
+ border: $hover-border;
46
+ }
47
+
48
+ &:focus {
49
+ border: $focus-border;
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,11 @@
1
+ export { TextInput as TextInputV2 } from './TextInput'
2
+ export { SelectInput as SelectInputV2 } from './SelectInput'
3
+ export { ChoicesInput as ChoicesInputV2 } from './ChoicesInput'
4
+ export { TextareaInput as TextareaInputV2 } from './TextareaInput'
5
+ export { RatingsInput as RatingsInputV2 } from './RatingsInput'
6
+ export { QueryCombobox as QueryComboboxV2 } from './QueryCombobox'
7
+ export { QuerySelect as QuerySelectV2 } from './QuerySelect'
8
+ export { Checkbox as CheckboxV2 } from './Checkbox'
9
+ export { QueryChoices as QueryChoicesV2 } from './QueryChoices'
10
+ export { LinkInput as LinkInputV2 } from './LinkInput'
11
+ export { EditorInput as EditorInputV2 } from './EditorInput'
@@ -9,3 +9,4 @@ export { Checkbox } from './Checkbox'
9
9
  export { QueryChoices } from './QueryChoices'
10
10
  export { LinkInput } from './LinkInput'
11
11
  export { EditorInput } from './EditorInput'
12
+ export * from './V2'