@platformatic/ui-components 0.3.3 → 0.3.4

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@platformatic/ui-components",
3
3
  "description": "Platformatic UI Components",
4
- "version": "0.3.3",
4
+ "version": "0.3.4",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -12,6 +12,7 @@ function Input ({
12
12
  name,
13
13
  borderColor,
14
14
  errorMessage,
15
+ errorMessageTextClassName,
15
16
  onChange,
16
17
  disabled,
17
18
  beforeIcon,
@@ -27,7 +28,7 @@ function Input ({
27
28
  let baseInputClassName = `${commonStyles.fullWidth} ${styles.input} ${inputTextClassName} `
28
29
  baseInputClassName += verticalPaddingClassName || ` ${styles.inputDefaultVerticalPadding} `
29
30
  baseInputClassName += ' ' + commonStyles[`text--${borderColor}`] + ' ' + commonStyles[`background-color-${backgroundColor}`]
30
-
31
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
31
32
  const showError = errorMessage.length > 0
32
33
  if (disabled) baseInputClassName += ' ' + commonStyles['apply-opacity-30']
33
34
  if (beforeIcon) baseInputClassName += ' ' + styles.beforeIconPadding
@@ -80,7 +81,7 @@ function Input ({
80
81
  {placeholderApart && <p className={styles.placeholderAPart}>{placeholder}</p>}
81
82
  {afterIcon && <div className={styles.afterInputIcon}><PlatformaticIcon iconName={afterIcon.iconName} color={afterIcon.color} data-testid='after-icon' onClick={null} /></div>}
82
83
  </div>
83
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
84
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
84
85
  </div>
85
86
  )
86
87
  }
@@ -157,7 +158,15 @@ Input.propTypes = {
157
158
  /**
158
159
  * readOnly
159
160
  */
160
- readOnly: PropTypes.bool
161
+ readOnly: PropTypes.bool,
162
+ /**
163
+ * errorMessage
164
+ */
165
+ errorMessage: PropTypes.string,
166
+ /**
167
+ * errorMessageTextClassName
168
+ */
169
+ errorMessageTextClassName: PropTypes.string
161
170
  }
162
171
 
163
172
  Input.defaultProps = {
@@ -167,6 +176,7 @@ Input.defaultProps = {
167
176
  borderColor: MAIN_GREEN,
168
177
  backgroundColor: WHITE,
169
178
  errorMessage: '',
179
+ errorMessageTextClassName: '',
170
180
  onChange: () => {},
171
181
  disabled: false,
172
182
  beforeIcon: null,
@@ -14,6 +14,7 @@ function InputWithSeparator ({
14
14
  borderColor,
15
15
  backgroundColor,
16
16
  errorMessage,
17
+ errorMessageTextClassName,
17
18
  onChange,
18
19
  disabled,
19
20
  afterIcon,
@@ -27,6 +28,7 @@ function InputWithSeparator ({
27
28
  const [focus, setFocus] = useState(false)
28
29
  const baseClassName = `${styles.input} ${styles.flexNone} ${styles.smallMargin} ${inputTextClassName} ` + commonStyles[`background-color-${backgroundColor}`]
29
30
  const buttonClassName = commonStyles[`background-color-${borderColor}`] + ' ' + commonStyles['background-color-opaque-30']
31
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
30
32
  const [chunks, setChunks] = useState([])
31
33
  const [inputClassName, setInputClassName] = useState(normalClassName())
32
34
  const [inputContainerClassName, setInputContainerClassName] = useState(unFocusedClassName())
@@ -164,7 +166,7 @@ function InputWithSeparator ({
164
166
  />
165
167
  )}
166
168
  </div>
167
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
169
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
168
170
  </div>
169
171
  )
170
172
  }
@@ -222,7 +224,15 @@ InputWithSeparator.propTypes = {
222
224
  color: PropTypes.string,
223
225
  handleClick: PropTypes.func,
224
226
  disabled: PropTypes.bool
225
- })
227
+ }),
228
+ /**
229
+ * errorMessage
230
+ */
231
+ errorMessage: PropTypes.string,
232
+ /**
233
+ * errorMessageTextClassName
234
+ */
235
+ errorMessageTextClassName: PropTypes.string
226
236
  }
227
237
 
228
238
  InputWithSeparator.defaultProps = {
@@ -234,6 +244,7 @@ InputWithSeparator.defaultProps = {
234
244
  borderColor: MAIN_GREEN,
235
245
  backgroundColor: WHITE,
236
246
  errorMessage: '',
247
+ errorMessageTextClassName: '',
237
248
  onChange: () => {},
238
249
  disabled: false,
239
250
  afterIcon: null,
@@ -6,10 +6,11 @@ import commonStyles from '../Common.module.css'
6
6
  import PlatformaticIcon from '../PlatformaticIcon'
7
7
  import { MAIN_DARK_BLUE, MAIN_GREEN } from '../constants'
8
8
 
9
- function Input ({ placeholder, value, name, borderColor, errorMessage, onChange, disabled }) {
9
+ function Input ({ placeholder, value, name, borderColor, errorMessage, errorMessageTextClassName, onChange, disabled }) {
10
10
  const [type, setType] = useState('password')
11
11
  let passwordClassName = `${commonStyles.fullWidth} ${styles.password} `
12
12
  passwordClassName += commonStyles[`bordered--${borderColor}`] + ' ' + commonStyles[`text--${borderColor}`] + ' ' + styles.afterIconPadding
13
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
13
14
  const showError = errorMessage.length > 0
14
15
  if (showError) passwordClassName += ' ' + commonStyles['bordered--error-red']
15
16
  if (disabled) passwordClassName += ' ' + commonStyles['apply-opacity-30']
@@ -24,7 +25,7 @@ function Input ({ placeholder, value, name, borderColor, errorMessage, onChange,
24
25
  : <PlatformaticIcon iconName='EyeClosedIcon' color={MAIN_DARK_BLUE} data-testid='after-eye-closed-icon' onClick={() => setType('password')} />}
25
26
  </div>
26
27
  </div>
27
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
28
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
28
29
  </div>
29
30
  )
30
31
  }
@@ -61,7 +62,15 @@ Input.propTypes = {
61
62
  /**
62
63
  * placeholderApart
63
64
  */
64
- placeholderApart: PropTypes.bool
65
+ placeholderApart: PropTypes.bool,
66
+ /**
67
+ * errorMessage
68
+ */
69
+ errorMessage: PropTypes.string,
70
+ /**
71
+ * errorMessageTextClassName
72
+ */
73
+ errorMessageTextClassName: PropTypes.string
65
74
  }
66
75
 
67
76
  Input.defaultProps = {
@@ -70,6 +79,7 @@ Input.defaultProps = {
70
79
  name: '',
71
80
  borderColor: MAIN_DARK_BLUE,
72
81
  errorMessage: '',
82
+ errorMessageTextClassName: '',
73
83
  onChange: () => {},
74
84
  disabled: false,
75
85
  focused: false,
@@ -5,8 +5,10 @@ import styles from './RadioGroup.module.css'
5
5
  import commonStyles from '../Common.module.css'
6
6
  import { MAIN_DARK_BLUE, MAIN_GREEN } from '../constants'
7
7
 
8
- function RadioGroup ({ name, radios, errorMessage, onChange, disabled, value }) {
8
+ function RadioGroup ({ name, radios, errorMessage, errorMessageTextClassName, onChange, disabled, value }) {
9
9
  let radioContainerClass = styles.radioContainer
10
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
11
+
10
12
  const showError = errorMessage.length > 0
11
13
  if (disabled) radioContainerClass += ' ' + commonStyles['apply-opacity-30']
12
14
 
@@ -20,7 +22,7 @@ function RadioGroup ({ name, radios, errorMessage, onChange, disabled, value })
20
22
  </div>
21
23
  ))}
22
24
  </div>
23
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
25
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
24
26
  </div>
25
27
  )
26
28
  }
@@ -41,6 +43,10 @@ RadioGroup.propTypes = {
41
43
  * errorMessage
42
44
  */
43
45
  errorMessage: PropTypes.string,
46
+ /**
47
+ * errorMessageTextClassName
48
+ */
49
+ errorMessageTextClassName: PropTypes.string,
44
50
  /**
45
51
  * onChange
46
52
  */
@@ -63,6 +69,7 @@ RadioGroup.defaultProps = {
63
69
  name: '',
64
70
  radios: [],
65
71
  errorMessage: '',
72
+ errorMessageTextClassName: '',
66
73
  onChange: () => {},
67
74
  disabled: false,
68
75
  color: MAIN_DARK_BLUE,
@@ -17,6 +17,7 @@ function Select ({
17
17
  borderColor,
18
18
  borderListColor,
19
19
  errorMessage,
20
+ errorMessageTextClassName,
20
21
  onSelect,
21
22
  disabled,
22
23
  mainColor,
@@ -30,7 +31,7 @@ function Select ({
30
31
  // eslint-disable-next-line no-unused-vars
31
32
  const [isSelected, setIsSelected] = useState(false)
32
33
  const [isOnFocus, setIsOnFocus] = useState(false)
33
-
34
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
34
35
  const showError = errorMessage.length > 0
35
36
  const containerClassName = `${styles.container} ${defaultContainerClassName} `
36
37
  let inputClassName = `${commonStyles.fullWidth} ${styles.select} ${inputTextClassName}`
@@ -165,7 +166,7 @@ function Select ({
165
166
  </div>
166
167
  </div>
167
168
  {showOptions && !showError && renderOptions()}
168
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
169
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
169
170
  </div>
170
171
  )
171
172
  }
@@ -250,7 +251,15 @@ Select.propTypes = {
250
251
  /**
251
252
  * inputTextClassName
252
253
  */
253
- inputTextClassName: PropTypes.string
254
+ inputTextClassName: PropTypes.string,
255
+ /**
256
+ * errorMessage
257
+ */
258
+ errorMessage: PropTypes.string,
259
+ /**
260
+ * errorMessageTextClassName
261
+ */
262
+ errorMessageTextClassName: PropTypes.string
254
263
  }
255
264
 
256
265
  Select.defaultProps = {
@@ -265,6 +274,7 @@ Select.defaultProps = {
265
274
  borderColor: MAIN_GREEN,
266
275
  borderListColor: '',
267
276
  errorMessage: '',
277
+ errorMessageTextClassName: '',
268
278
  onSelect: () => {},
269
279
  disabled: false,
270
280
  mainColor: MAIN_DARK_BLUE,
@@ -17,6 +17,7 @@ function SelectWithInput ({
17
17
  borderColor,
18
18
  borderListColor,
19
19
  errorMessage,
20
+ errorMessageTextClassName,
20
21
  onChange,
21
22
  onSelect,
22
23
  onClear,
@@ -32,7 +33,7 @@ function SelectWithInput ({
32
33
  const [showOptions, setShowOptions] = useState(false)
33
34
  const [isSelected, setIsSelected] = useState(false)
34
35
  const [isOnFocus, setIsOnFocus] = useState(false)
35
-
36
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
36
37
  const showError = errorMessage.length > 0
37
38
  const containerClassName = `${styles.container} ${defaultContainerClassName} `
38
39
  let inputClassName = `${commonStyles.fullWidth} ${styles.select} ${inputTextClassName}`
@@ -194,7 +195,7 @@ function SelectWithInput ({
194
195
  </div>
195
196
  </div>
196
197
  {showOptions && !showError && renderOptions()}
197
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
198
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
198
199
  </div>
199
200
  )
200
201
  }
@@ -297,7 +298,15 @@ SelectWithInput.propTypes = {
297
298
  /**
298
299
  * inputTextClassName
299
300
  */
300
- inputTextClassName: PropTypes.string
301
+ inputTextClassName: PropTypes.string,
302
+ /**
303
+ * errorMessage
304
+ */
305
+ errorMessage: PropTypes.string,
306
+ /**
307
+ * errorMessageTextClassName
308
+ */
309
+ errorMessageTextClassName: PropTypes.string
301
310
  }
302
311
 
303
312
  SelectWithInput.defaultProps = {
@@ -312,6 +321,7 @@ SelectWithInput.defaultProps = {
312
321
  borderColor: MAIN_GREEN,
313
322
  borderListColor: '',
314
323
  errorMessage: '',
324
+ errorMessageTextClassName: '',
315
325
  onChange: () => {},
316
326
  onSelect: () => {},
317
327
  onClear: () => {},
@@ -6,9 +6,22 @@ import commonStyles from '../Common.module.css'
6
6
  import PlatformaticIcon from '../PlatformaticIcon'
7
7
  import { MAIN_DARK_BLUE, MAIN_GREEN } from '../constants'
8
8
 
9
- function TextArea ({ placeholder, value, name, borderColor, errorMessage, onChange, disabled, afterIcon, rows, cols }) {
9
+ function TextArea ({
10
+ placeholder,
11
+ value,
12
+ name,
13
+ borderColor,
14
+ errorMessage,
15
+ errorMessageTextClassName,
16
+ onChange,
17
+ disabled,
18
+ afterIcon,
19
+ rows,
20
+ cols
21
+ }) {
10
22
  let className = styles.textAreaContainer + ' ' + commonStyles[`bordered--${borderColor}`] + ' ' + commonStyles[`text--${borderColor}`]
11
23
  const showError = errorMessage.length > 0
24
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
12
25
  if (showError) className += ' ' + commonStyles['bordered--error-red']
13
26
  if (disabled) className += ' ' + commonStyles['apply-opacity-30']
14
27
  const textAreaClassName = `${commonStyles.fullWidth} ${styles.textarea}`
@@ -19,7 +32,7 @@ function TextArea ({ placeholder, value, name, borderColor, errorMessage, onChan
19
32
  <textarea name={name} className={textAreaClassName} onChange={onChange} disabled={disabled} placeholder={placeholder} rows={rows} cols={cols} value={value} />
20
33
  {afterIcon && <div className={styles.afterIcon}><PlatformaticIcon iconName={afterIcon.iconName} color={afterIcon.color} data-testid='after-icon' onClick={null} /></div>}
21
34
  </div>
22
- {showError && <span className={commonStyles['error-message']}>{errorMessage}</span>}
35
+ {showError && <span className={errorMessageClassName}>{errorMessage}</span>}
23
36
  </div>
24
37
  )
25
38
  }
@@ -64,7 +77,15 @@ TextArea.propTypes = {
64
77
  /**
65
78
  * cols
66
79
  */
67
- cols: PropTypes.number
80
+ cols: PropTypes.number,
81
+ /**
82
+ * errorMessage
83
+ */
84
+ errorMessage: PropTypes.string,
85
+ /**
86
+ * errorMessageTextClassName
87
+ */
88
+ errorMessageTextClassName: PropTypes.string
68
89
  }
69
90
 
70
91
  TextArea.defaultProps = {
@@ -73,6 +94,7 @@ TextArea.defaultProps = {
73
94
  name: '',
74
95
  borderColor: MAIN_DARK_BLUE,
75
96
  errorMessage: '',
97
+ errorMessageTextClassName: '',
76
98
  onChange: () => {},
77
99
  disabled: false,
78
100
  afterIcon: null,
@@ -4,10 +4,21 @@ import PropTypes from 'prop-types'
4
4
  import styles from './ToggleSwitch.module.css'
5
5
  import commonStyles from '../Common.module.css'
6
6
 
7
- function ToggleSwitch ({ name, label, labelClassName, errorMessage, onChange, checked, disabled }) {
7
+ function ToggleSwitch ({
8
+ name,
9
+ label,
10
+ labelClassName,
11
+ errorMessage,
12
+ errorMessageTextClassName,
13
+ onChange,
14
+ checked,
15
+ disabled
16
+ }) {
8
17
  let className = `${styles.switch} `
9
18
  if (disabled) className += styles.disabled
10
19
  const styleLabel = labelClassName || styles.defaultLabel
20
+ const errorMessageClassName = errorMessageTextClassName || commonStyles['error-message']
21
+
11
22
  return (
12
23
  <>
13
24
  <div className={styles.container}>
@@ -17,7 +28,7 @@ function ToggleSwitch ({ name, label, labelClassName, errorMessage, onChange, ch
17
28
  </label>
18
29
  <span className={styleLabel}>{label}</span>
19
30
  </div>
20
- {errorMessage.length > 0 && <span className={commonStyles['error-message']}>{errorMessage}</span>}
31
+ {errorMessage.length > 0 && <span className={errorMessageClassName}>{errorMessage}</span>}
21
32
  </>
22
33
  )
23
34
  }
@@ -35,6 +46,10 @@ ToggleSwitch.propTypes = {
35
46
  * errorMessage
36
47
  */
37
48
  errorMessage: PropTypes.string,
49
+ /**
50
+ * errorMessageTextClassName
51
+ */
52
+ errorMessageTextClassName: PropTypes.string,
38
53
  /**
39
54
  * checked
40
55
  */
@@ -58,6 +73,7 @@ ToggleSwitch.defaultProps = {
58
73
  name: '',
59
74
  label: '',
60
75
  errorMessage: '',
76
+ errorMessageTextClassName: '',
61
77
  checked: false,
62
78
  disabled: false,
63
79
  onChange: () => {},