@dxc-technology/halstack-react 0.0.0-d5ae9d7 → 0.0.0-d618bea
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/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +1 -3
- package/ThemeContext.d.ts +15 -0
- package/ThemeContext.js +5 -8
- package/V3Select/V3Select.js +2 -2
- package/V3Textarea/V3Textarea.js +2 -2
- package/accordion/Accordion.d.ts +2 -2
- package/accordion/Accordion.js +2 -2
- package/accordion/types.d.ts +1 -1
- package/accordion-group/AccordionGroup.d.ts +7 -0
- package/accordion-group/AccordionGroup.js +59 -73
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/types.d.ts +72 -0
- package/accordion-group/types.js +5 -0
- package/alert/Alert.js +2 -2
- package/alert/Alert.stories.tsx +170 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.js +1 -1
- package/box/Box.d.ts +4 -0
- package/box/Box.js +6 -32
- package/box/Box.stories.tsx +132 -0
- package/box/types.d.ts +43 -0
- package/box/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +9 -12
- package/button/Button.stories.tsx +217 -234
- package/button/types.d.ts +11 -11
- package/card/Card.d.ts +4 -0
- package/card/Card.js +17 -53
- package/card/Card.stories.tsx +201 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +67 -0
- package/card/types.js +5 -0
- package/checkbox/Checkbox.js +2 -2
- package/checkbox/Checkbox.stories.tsx +192 -0
- package/checkbox/types.d.ts +3 -4
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +1 -23
- package/chip/Chip.stories.tsx +121 -0
- package/chip/types.d.ts +53 -0
- package/chip/types.js +5 -0
- package/common/variables.js +45 -38
- package/date/Date.js +1 -1
- package/date-input/DateInput.js +4 -7
- package/date-input/DateInput.stories.tsx +138 -0
- package/dialog/Dialog.d.ts +4 -0
- package/dialog/Dialog.js +6 -25
- package/dialog/Dialog.stories.tsx +212 -0
- package/dialog/types.d.ts +43 -0
- package/dialog/types.js +5 -0
- package/dropdown/Dropdown.d.ts +4 -0
- package/dropdown/Dropdown.js +8 -41
- package/dropdown/types.d.ts +89 -0
- package/dropdown/types.js +5 -0
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +65 -76
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +12 -21
- package/file-input/types.d.ts +112 -0
- package/file-input/types.js +5 -0
- package/footer/Footer.d.ts +4 -0
- package/footer/Footer.js +11 -42
- package/footer/Footer.stories.tsx +151 -0
- package/footer/types.d.ts +65 -0
- package/footer/types.js +5 -0
- package/header/Header.d.ts +7 -0
- package/header/Header.js +28 -30
- package/header/Header.stories.tsx +162 -0
- package/header/Icons.js +2 -27
- package/header/types.d.ts +47 -0
- package/header/types.js +5 -0
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +53 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/input-text/InputText.js +2 -2
- package/layout/ApplicationLayout.d.ts +10 -0
- package/layout/ApplicationLayout.js +8 -18
- package/layout/ApplicationLayout.stories.tsx +171 -0
- package/layout/types.d.ts +57 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +3 -0
- package/link/Link.js +4 -26
- package/link/Link.stories.tsx +146 -0
- package/link/types.d.ts +74 -0
- package/link/types.js +5 -0
- package/list/List.d.ts +7 -0
- package/list/List.js +37 -0
- package/list/List.stories.tsx +70 -0
- package/main.d.ts +7 -3
- package/main.js +34 -2
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +5 -50
- package/number-input/NumberInput.stories.tsx +115 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +117 -0
- package/number-input/types.js +5 -0
- package/package.json +1 -1
- package/paginator/Paginator.js +2 -8
- package/paginator/Paginator.stories.tsx +63 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +19 -55
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +1 -1
- package/password-input/types.d.ts +107 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +4 -0
- package/progress-bar/ProgressBar.js +5 -23
- package/progress-bar/ProgressBar.stories.jsx +58 -0
- package/progress-bar/types.d.ts +37 -0
- package/progress-bar/types.js +5 -0
- package/radio/Radio.js +2 -2
- package/radio/Radio.stories.tsx +192 -0
- package/radio/types.d.ts +2 -2
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +4 -27
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/row/Row.d.ts +11 -0
- package/row/Row.js +124 -0
- package/row/Row.stories.tsx +223 -0
- package/select/Select.js +15 -17
- package/select/Select.stories.tsx +572 -0
- package/select/index.d.ts +4 -4
- package/sidenav/Sidenav.d.ts +9 -0
- package/sidenav/Sidenav.js +6 -15
- package/sidenav/Sidenav.stories.tsx +165 -0
- package/sidenav/types.d.ts +50 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +4 -0
- package/slider/Slider.js +61 -84
- package/slider/Slider.stories.tsx +177 -0
- package/slider/types.d.ts +78 -0
- package/slider/types.js +5 -0
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +8 -25
- package/spinner/Spinner.stories.jsx +102 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/stack/Stack.d.ts +10 -0
- package/stack/Stack.js +94 -0
- package/stack/Stack.stories.tsx +150 -0
- package/switch/Switch.js +4 -4
- package/switch/Switch.stories.tsx +160 -0
- package/table/Table.d.ts +4 -0
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +276 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tabs.d.ts +4 -0
- package/tabs/Tabs.js +9 -55
- package/tabs/Tabs.stories.tsx +121 -0
- package/tabs/types.d.ts +70 -0
- package/tabs/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +21 -36
- package/tag/Tag.stories.tsx +145 -0
- package/tag/types.d.ts +60 -0
- package/tag/types.js +5 -0
- package/text/Text.d.ts +7 -0
- package/text/Text.js +30 -0
- package/text/Text.stories.tsx +19 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +42 -81
- package/text-input/TextInput.stories.tsx +456 -0
- package/text-input/types.d.ts +159 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.js +29 -32
- package/textarea/Textarea.stories.jsx +135 -0
- package/textarea/index.d.ts +18 -8
- package/toggle/Toggle.js +1 -1
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +8 -34
- package/toggle-group/ToggleGroup.stories.tsx +178 -0
- package/toggle-group/types.d.ts +84 -0
- package/toggle-group/types.js +5 -0
- package/upload/buttons-upload/ButtonsUpload.js +2 -2
- package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
- package/upload/file-upload/FileToUpload.js +1 -1
- package/upload/files-upload/FilesToUpload.js +1 -1
- package/upload/transaction/Transaction.js +2 -2
- package/upload/transactions/Transactions.js +1 -1
- package/useTheme.d.ts +2 -0
- package/useTheme.js +1 -1
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +13 -53
- package/wizard/Wizard.stories.jsx +224 -0
- package/wizard/types.d.ts +64 -0
- package/wizard/types.js +5 -0
- package/accordion-group/index.d.ts +0 -16
- package/box/index.d.ts +0 -25
- package/card/index.d.ts +0 -22
- package/chip/index.d.ts +0 -22
- package/dialog/index.d.ts +0 -18
- package/dropdown/index.d.ts +0 -26
- package/file-input/index.d.ts +0 -81
- package/footer/index.d.ts +0 -25
- package/header/index.d.ts +0 -25
- package/heading/index.d.ts +0 -17
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/progress-bar/index.d.ts +0 -18
- package/resultsetTable/index.d.ts +0 -19
- package/sidenav/index.d.ts +0 -13
- package/slider/index.d.ts +0 -29
- package/spinner/index.d.ts +0 -17
- package/table/index.d.ts +0 -13
- package/tabs/index.d.ts +0 -19
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/toggle-group/index.d.ts +0 -21
- package/wizard/index.d.ts +0 -18
package/textarea/Textarea.js
CHANGED
|
@@ -23,7 +23,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
23
23
|
|
|
24
24
|
var _utils = require("../common/utils.js");
|
|
25
25
|
|
|
26
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
26
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
27
|
|
|
28
28
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
29
|
|
|
@@ -31,7 +31,7 @@ var _variables = require("../common/variables.js");
|
|
|
31
31
|
|
|
32
32
|
var _uuid = require("uuid");
|
|
33
33
|
|
|
34
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext
|
|
34
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
35
35
|
|
|
36
36
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
37
37
|
|
|
@@ -43,10 +43,6 @@ var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
|
|
|
43
43
|
return "This field is required. Please, enter a value.";
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
var getLengthErrorMessage = function getLengthErrorMessage(length) {
|
|
47
|
-
return "Min length ".concat(length.min, ", max length ").concat(length.max, ".");
|
|
48
|
-
};
|
|
49
|
-
|
|
50
46
|
var getPatternErrorMessage = function getPatternErrorMessage() {
|
|
51
47
|
return "Please match the format requested.";
|
|
52
48
|
};
|
|
@@ -56,13 +52,11 @@ var patternMatch = function patternMatch(pattern, value) {
|
|
|
56
52
|
};
|
|
57
53
|
|
|
58
54
|
var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
59
|
-
var
|
|
60
|
-
label = _ref$label === void 0 ? "" : _ref$label,
|
|
55
|
+
var label = _ref.label,
|
|
61
56
|
_ref$name = _ref.name,
|
|
62
57
|
name = _ref$name === void 0 ? "" : _ref$name,
|
|
63
58
|
value = _ref.value,
|
|
64
|
-
|
|
65
|
-
helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
|
|
59
|
+
helperText = _ref.helperText,
|
|
66
60
|
_ref$placeholder = _ref.placeholder,
|
|
67
61
|
placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
|
|
68
62
|
_ref$disabled = _ref.disabled,
|
|
@@ -75,10 +69,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
75
69
|
rows = _ref$rows === void 0 ? 4 : _ref$rows,
|
|
76
70
|
onChange = _ref.onChange,
|
|
77
71
|
onBlur = _ref.onBlur,
|
|
78
|
-
|
|
79
|
-
error = _ref$error === void 0 ? "" : _ref$error,
|
|
72
|
+
error = _ref.error,
|
|
80
73
|
pattern = _ref.pattern,
|
|
81
|
-
|
|
74
|
+
minLength = _ref.minLength,
|
|
75
|
+
maxLength = _ref.maxLength,
|
|
82
76
|
_ref$autocomplete = _ref.autocomplete,
|
|
83
77
|
autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
|
|
84
78
|
margin = _ref.margin,
|
|
@@ -101,12 +95,16 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
101
95
|
var textareaRef = (0, _react.useRef)(null);
|
|
102
96
|
var errorId = "error-message-".concat(textareaId);
|
|
103
97
|
|
|
98
|
+
var getLengthErrorMessage = function getLengthErrorMessage() {
|
|
99
|
+
return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
|
|
100
|
+
};
|
|
101
|
+
|
|
104
102
|
var isNotOptional = function isNotOptional(value) {
|
|
105
103
|
return value === "" && !optional;
|
|
106
104
|
};
|
|
107
105
|
|
|
108
106
|
var isLengthIncorrect = function isLengthIncorrect(value) {
|
|
109
|
-
return value !== "" &&
|
|
107
|
+
return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
|
|
110
108
|
};
|
|
111
109
|
|
|
112
110
|
var changeValue = function changeValue(newValue) {
|
|
@@ -116,7 +114,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
116
114
|
error: getNotOptionalErrorMessage()
|
|
117
115
|
});else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
118
116
|
value: newValue,
|
|
119
|
-
error: getLengthErrorMessage(
|
|
117
|
+
error: getLengthErrorMessage()
|
|
120
118
|
});else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
|
|
121
119
|
value: newValue,
|
|
122
120
|
error: getPatternErrorMessage()
|
|
@@ -132,7 +130,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
132
130
|
error: getNotOptionalErrorMessage()
|
|
133
131
|
});else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
134
132
|
value: event.target.value,
|
|
135
|
-
error: getLengthErrorMessage(
|
|
133
|
+
error: getLengthErrorMessage()
|
|
136
134
|
});else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
137
135
|
value: event.target.value,
|
|
138
136
|
error: getPatternErrorMessage()
|
|
@@ -161,11 +159,12 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
161
159
|
margin: margin,
|
|
162
160
|
size: size,
|
|
163
161
|
ref: ref
|
|
164
|
-
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
162
|
+
}, label && /*#__PURE__*/_react["default"].createElement(Label, {
|
|
165
163
|
htmlFor: textareaId,
|
|
166
164
|
disabled: disabled,
|
|
167
|
-
backgroundType: backgroundType
|
|
168
|
-
|
|
165
|
+
backgroundType: backgroundType,
|
|
166
|
+
helperText: helperText
|
|
167
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
169
168
|
disabled: disabled,
|
|
170
169
|
backgroundType: backgroundType
|
|
171
170
|
}, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
|
|
@@ -179,8 +178,8 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
179
178
|
onBlur: handleTOnBlur,
|
|
180
179
|
disabled: disabled,
|
|
181
180
|
error: error,
|
|
182
|
-
minLength:
|
|
183
|
-
maxLength:
|
|
181
|
+
minLength: minLength,
|
|
182
|
+
maxLength: maxLength,
|
|
184
183
|
autoComplete: autocomplete,
|
|
185
184
|
backgroundType: backgroundType,
|
|
186
185
|
ref: textareaRef,
|
|
@@ -188,7 +187,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
188
187
|
"aria-invalid": error ? "true" : "false",
|
|
189
188
|
"aria-describedby": error ? errorId : undefined,
|
|
190
189
|
"aria-required": optional ? "false" : "true"
|
|
191
|
-
}), !disabled && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
190
|
+
}), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
192
191
|
id: errorId,
|
|
193
192
|
backgroundType: backgroundType
|
|
194
193
|
}, error)));
|
|
@@ -219,7 +218,7 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_te
|
|
|
219
218
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
220
219
|
});
|
|
221
220
|
|
|
222
|
-
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
221
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
|
|
223
222
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
224
223
|
}, function (props) {
|
|
225
224
|
return props.theme.fontFamily;
|
|
@@ -231,13 +230,15 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
|
|
|
231
230
|
return props.theme.labelFontWeight;
|
|
232
231
|
}, function (props) {
|
|
233
232
|
return props.theme.labelLineHeight;
|
|
233
|
+
}, function (props) {
|
|
234
|
+
return !props.helperText && "margin-bottom: 0.25rem";
|
|
234
235
|
});
|
|
235
236
|
|
|
236
237
|
var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
|
|
237
238
|
return props.theme.optionalLabelFontWeight;
|
|
238
239
|
});
|
|
239
240
|
|
|
240
|
-
var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
241
|
+
var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
|
|
241
242
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
|
|
242
243
|
}, function (props) {
|
|
243
244
|
return props.theme.fontFamily;
|
|
@@ -251,12 +252,10 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
251
252
|
return props.theme.helperTextLineHeight;
|
|
252
253
|
});
|
|
253
254
|
|
|
254
|
-
var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n
|
|
255
|
+
var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n ", "\n\n ", ";\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
|
|
255
256
|
if (props.verticalGrow === "none") return "resize: none;";else if (props.verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (props.verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
|
|
256
257
|
}, function (props) {
|
|
257
258
|
if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");else return "background-color: transparent;";
|
|
258
|
-
}, function (props) {
|
|
259
|
-
return "".concat(props.theme.inputMarginTop, " 0 ").concat(props.theme.inputMarginBottom, " 0");
|
|
260
259
|
}, function (props) {
|
|
261
260
|
if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
|
|
262
261
|
}, function (props) {
|
|
@@ -279,7 +278,7 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templ
|
|
|
279
278
|
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
|
|
280
279
|
});
|
|
281
280
|
|
|
282
|
-
var Error = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n min-height: 1.5em;\n line-height: 1.5em;\n"])), function (props) {
|
|
281
|
+
var Error = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n min-height: 1.5em;\n line-height: 1.5em;\n margin-top: 0.25rem;\n"])), function (props) {
|
|
283
282
|
return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
|
|
284
283
|
}, function (props) {
|
|
285
284
|
return props.theme.fontFamily;
|
|
@@ -293,10 +292,8 @@ DxcTextarea.propTypes = {
|
|
|
293
292
|
placeholder: _propTypes["default"].string,
|
|
294
293
|
verticalGrow: _propTypes["default"].oneOf(["auto", "none", "manual"]),
|
|
295
294
|
rows: _propTypes["default"].number,
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
max: _propTypes["default"].number
|
|
299
|
-
}),
|
|
295
|
+
minLength: _propTypes["default"].number,
|
|
296
|
+
maxLength: _propTypes["default"].number,
|
|
300
297
|
pattern: _propTypes["default"].string,
|
|
301
298
|
disabled: _propTypes["default"].bool,
|
|
302
299
|
optional: _propTypes["default"].bool,
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcTextarea from "./Textarea";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
6
|
+
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "Textarea",
|
|
10
|
+
component: DxcTextarea,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const Chromatic = () => (
|
|
14
|
+
<>
|
|
15
|
+
<>
|
|
16
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
17
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
18
|
+
<DxcTextarea label="Hovered" />
|
|
19
|
+
</ExampleContainer>
|
|
20
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
21
|
+
<Title title="Focused" theme="light" level={4} />
|
|
22
|
+
<DxcTextarea label="Focused" />
|
|
23
|
+
</ExampleContainer>
|
|
24
|
+
<ExampleContainer>
|
|
25
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
26
|
+
<DxcTextarea
|
|
27
|
+
label="Disabled"
|
|
28
|
+
optional
|
|
29
|
+
helperText="Sample text"
|
|
30
|
+
placeholder="Enter your text here..."
|
|
31
|
+
disabled
|
|
32
|
+
/>
|
|
33
|
+
</ExampleContainer>
|
|
34
|
+
<ExampleContainer>
|
|
35
|
+
<Title title="Disabled with value" theme="light" level={4} />
|
|
36
|
+
<DxcTextarea label="Disabled" value="Example text" disabled />
|
|
37
|
+
</ExampleContainer>
|
|
38
|
+
<ExampleContainer>
|
|
39
|
+
<Title title="With error" theme="light" level={4} />
|
|
40
|
+
<DxcTextarea
|
|
41
|
+
label="Textarea with error"
|
|
42
|
+
helperText="Helper text"
|
|
43
|
+
placeholder="Enter your text here..."
|
|
44
|
+
error="Error message"
|
|
45
|
+
/>
|
|
46
|
+
</ExampleContainer>
|
|
47
|
+
<ExampleContainer>
|
|
48
|
+
<Title title="Helper text and optional with value" theme="light" level={4} />
|
|
49
|
+
<DxcTextarea label="Helper & optional" value="Some text" helperText="Sample text" optional />
|
|
50
|
+
</ExampleContainer>
|
|
51
|
+
<ExampleContainer>
|
|
52
|
+
<Title title="Resizable" theme="light" level={4} />
|
|
53
|
+
<DxcTextarea label="With resizer" helperText="Helper text" verticalGrow="manual" />
|
|
54
|
+
</ExampleContainer>
|
|
55
|
+
<ExampleContainer>
|
|
56
|
+
<Title title="Grow manual" theme="light" level={4} />
|
|
57
|
+
<DxcTextarea
|
|
58
|
+
label="Manual vertical grow"
|
|
59
|
+
verticalGrow="manual"
|
|
60
|
+
value="Long textttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
|
|
61
|
+
/>
|
|
62
|
+
</ExampleContainer>
|
|
63
|
+
</>
|
|
64
|
+
<BackgroundColorProvider color="#333333">
|
|
65
|
+
<DarkContainer>
|
|
66
|
+
<>
|
|
67
|
+
<Title title="Helper text and optional with value" theme="dark" level={4} />
|
|
68
|
+
<DxcTextarea label="Helper & optional" value="Some text" margin="medium" helperText="Sample text" optional />
|
|
69
|
+
|
|
70
|
+
<Title title="Disabled" theme="dark" level={4} />
|
|
71
|
+
<DxcTextarea
|
|
72
|
+
label="Disabled"
|
|
73
|
+
margin="medium"
|
|
74
|
+
optional
|
|
75
|
+
helperText="Sample text"
|
|
76
|
+
placeholder="Enter your text here..."
|
|
77
|
+
disabled
|
|
78
|
+
/>
|
|
79
|
+
<Title title="Disabled with value" theme="dark" level={4} />
|
|
80
|
+
<DxcTextarea label="Disabled" margin="medium" value="Example text" disabled />
|
|
81
|
+
<Title title="With error" theme="dark" level={4} />
|
|
82
|
+
<DxcTextarea
|
|
83
|
+
label="Textarea with error"
|
|
84
|
+
margin="medium"
|
|
85
|
+
helperText="Helper text"
|
|
86
|
+
placeholder="Enter your text here..."
|
|
87
|
+
error="Error message"
|
|
88
|
+
/>
|
|
89
|
+
</>
|
|
90
|
+
</DarkContainer>
|
|
91
|
+
</BackgroundColorProvider>
|
|
92
|
+
<Title title="Sizes" theme="light" level={2} />
|
|
93
|
+
<ExampleContainer>
|
|
94
|
+
<DxcTextarea label="Small" size="small" />
|
|
95
|
+
</ExampleContainer>
|
|
96
|
+
<ExampleContainer>
|
|
97
|
+
<DxcTextarea label="Medium" size="medium" />
|
|
98
|
+
</ExampleContainer>
|
|
99
|
+
<ExampleContainer>
|
|
100
|
+
<DxcTextarea label="Large" size="large" />
|
|
101
|
+
</ExampleContainer>
|
|
102
|
+
<ExampleContainer>
|
|
103
|
+
<DxcTextarea label="Fill parent" size="fillParent" />
|
|
104
|
+
</ExampleContainer>
|
|
105
|
+
<Title title="Margins" theme="light" level={2} />
|
|
106
|
+
<ExampleContainer>
|
|
107
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
108
|
+
<DxcTextarea label="Xxsmmall" margin="xxsmall" />
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
112
|
+
<DxcTextarea label="xsmmall" margin="xsmall" />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
116
|
+
<DxcTextarea label="smmall" margin="small" />
|
|
117
|
+
</ExampleContainer>
|
|
118
|
+
<ExampleContainer>
|
|
119
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
120
|
+
<DxcTextarea label="medium" margin="medium" />
|
|
121
|
+
</ExampleContainer>
|
|
122
|
+
<ExampleContainer>
|
|
123
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
124
|
+
<DxcTextarea label="Large" margin="large" />
|
|
125
|
+
</ExampleContainer>
|
|
126
|
+
<ExampleContainer>
|
|
127
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
128
|
+
<DxcTextarea label="Xlarge" margin="xlarge" />
|
|
129
|
+
</ExampleContainer>
|
|
130
|
+
<ExampleContainer>
|
|
131
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
132
|
+
<DxcTextarea label="Xxlarge" margin="xxlarge" />
|
|
133
|
+
</ExampleContainer>
|
|
134
|
+
</>
|
|
135
|
+
);
|
package/textarea/index.d.ts
CHANGED
|
@@ -33,9 +33,9 @@ type Props = {
|
|
|
33
33
|
*/
|
|
34
34
|
disabled?: boolean;
|
|
35
35
|
/**
|
|
36
|
-
* If true, the textarea will be optional, showing '(Optional)'
|
|
37
|
-
* next to the label. Otherwise, the field will be considered required
|
|
38
|
-
* and an error will be passed as a parameter to the OnBlur and onChange functions
|
|
36
|
+
* If true, the textarea will be optional, showing '(Optional)'
|
|
37
|
+
* next to the label. Otherwise, the field will be considered required
|
|
38
|
+
* and an error will be passed as a parameter to the OnBlur and onChange functions
|
|
39
39
|
* when it has not been filled.
|
|
40
40
|
*/
|
|
41
41
|
optional?: boolean;
|
|
@@ -53,14 +53,14 @@ type Props = {
|
|
|
53
53
|
/**
|
|
54
54
|
* This function will be called when the user types within the textarea.
|
|
55
55
|
* An object including the current value and the error (if the value
|
|
56
|
-
* entered is not valid) will be passed to this function.
|
|
56
|
+
* entered is not valid) will be passed to this function.
|
|
57
57
|
* If there is no error, error will be null.
|
|
58
58
|
*/
|
|
59
59
|
onChange?: (val: { value: string; error: string }) => void;
|
|
60
60
|
/**
|
|
61
61
|
* This function will be called when the textarea loses the focus. An
|
|
62
62
|
* object including the textarea value and the error (if the value entered
|
|
63
|
-
* is not valid) will be passed to this function. If there is no error,
|
|
63
|
+
* is not valid) will be passed to this function. If there is no error,
|
|
64
64
|
* error will be null.
|
|
65
65
|
*/
|
|
66
66
|
onBlur?: (val: { value: string; error: string }) => void;
|
|
@@ -81,15 +81,25 @@ type Props = {
|
|
|
81
81
|
*/
|
|
82
82
|
pattern?: string;
|
|
83
83
|
/**
|
|
84
|
-
* Specifies the minimun
|
|
84
|
+
* Specifies the minimun length allowed by the textarea.
|
|
85
85
|
* This will be checked both when the textarea loses the
|
|
86
86
|
* focus and while typing within it. If the string entered does not
|
|
87
|
-
* comply the length, the onBlur and onChange functions will be called
|
|
87
|
+
* comply the minimum length, the onBlur and onChange functions will be called
|
|
88
88
|
* with the current value and an internal error informing that the value
|
|
89
89
|
* length does not comply the specified range. If a valid length is
|
|
90
90
|
* reached, the error parameter of both events will be null.
|
|
91
91
|
*/
|
|
92
|
-
|
|
92
|
+
minLength?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Specifies the maximum length allowed by the textarea.
|
|
95
|
+
* This will be checked both when the textarea loses the
|
|
96
|
+
* focus and while typing within it. If the string entered does not
|
|
97
|
+
* comply the maximum length, the onBlur and onChange functions will be called
|
|
98
|
+
* with the current value and an internal error informing that the value
|
|
99
|
+
* length does not comply the specified range. If a valid length is
|
|
100
|
+
* reached, the error parameter of both events will be null.
|
|
101
|
+
*/
|
|
102
|
+
maxLength?: number;
|
|
93
103
|
/**
|
|
94
104
|
* HTML autocomplete attribute. Lets the user specify if any permission the user agent has to provide automated assistance in filling out the textarea value.
|
|
95
105
|
* Its value must be one of all the possible values of the HTML autocomplete attribute: 'on', 'off', 'email', 'username', 'new-password', ...
|
package/toggle/Toggle.js
CHANGED
|
@@ -25,7 +25,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
25
25
|
|
|
26
26
|
var _utils = require("../common/utils.js");
|
|
27
27
|
|
|
28
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
28
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
29
|
|
|
30
30
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
31
31
|
|
|
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
13
|
|
|
16
14
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
@@ -23,11 +21,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
23
21
|
|
|
24
22
|
var _uuid = require("uuid");
|
|
25
23
|
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
24
|
var _variables = require("../common/variables.js");
|
|
29
25
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
26
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
27
|
|
|
32
28
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
33
29
|
|
|
@@ -42,8 +38,7 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
|
42
38
|
onChange = _ref.onChange,
|
|
43
39
|
_ref$disabled = _ref.disabled,
|
|
44
40
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
45
|
-
|
|
46
|
-
options = _ref$options === void 0 ? [] : _ref$options,
|
|
41
|
+
options = _ref.options,
|
|
47
42
|
margin = _ref.margin,
|
|
48
43
|
_ref$multiple = _ref.multiple,
|
|
49
44
|
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
@@ -51,7 +46,7 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
|
51
46
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
52
47
|
var colorsTheme = (0, _useTheme["default"])();
|
|
53
48
|
|
|
54
|
-
var _useState = (0, _react.useState)(multiple ? [] :
|
|
49
|
+
var _useState = (0, _react.useState)(multiple ? [] : ""),
|
|
55
50
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
56
51
|
selectedValue = _useState2[0],
|
|
57
52
|
setSelectedValue = _useState2[1];
|
|
@@ -64,7 +59,7 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
|
64
59
|
var newSelectedOptions;
|
|
65
60
|
|
|
66
61
|
if (value == null) {
|
|
67
|
-
if (multiple) {
|
|
62
|
+
if (multiple && Array.isArray(selectedValue)) {
|
|
68
63
|
newSelectedOptions = selectedValue.map(function (value) {
|
|
69
64
|
return value;
|
|
70
65
|
});
|
|
@@ -79,9 +74,9 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
|
79
74
|
setSelectedValue(newSelectedOptions);
|
|
80
75
|
} else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
|
|
81
76
|
} else if (multiple) {
|
|
82
|
-
newSelectedOptions = value.map(function (v) {
|
|
77
|
+
newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
|
|
83
78
|
return v;
|
|
84
|
-
});
|
|
79
|
+
}) : value;
|
|
85
80
|
|
|
86
81
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
87
82
|
var _index = newSelectedOptions.indexOf(selectedOption);
|
|
@@ -90,7 +85,7 @@ var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
|
90
85
|
} else newSelectedOptions.push(selectedOption);
|
|
91
86
|
}
|
|
92
87
|
|
|
93
|
-
|
|
88
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
|
|
94
89
|
};
|
|
95
90
|
|
|
96
91
|
var handleKeyPress = function handleKeyPress(event, optionValue) {
|
|
@@ -208,7 +203,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
|
|
|
208
203
|
return props.theme.optionLabelFontWeight;
|
|
209
204
|
});
|
|
210
205
|
|
|
211
|
-
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n"])));
|
|
206
|
+
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
212
207
|
|
|
213
208
|
var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n height: 24px;\n width: 24px;\n margin-right: ", ";\n"])), function (props) {
|
|
214
209
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
@@ -218,26 +213,5 @@ var IconContainer = _styledComponents["default"].div(_templateObject9 || (_templ
|
|
|
218
213
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
219
214
|
});
|
|
220
215
|
|
|
221
|
-
DxcToggleGroup.propTypes = {
|
|
222
|
-
label: _propTypes["default"].string,
|
|
223
|
-
helperText: _propTypes["default"].string,
|
|
224
|
-
value: _propTypes["default"].any,
|
|
225
|
-
onChange: _propTypes["default"].func,
|
|
226
|
-
disabled: _propTypes["default"].bool,
|
|
227
|
-
multiple: _propTypes["default"].bool,
|
|
228
|
-
options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
229
|
-
value: _propTypes["default"].any.isRequired,
|
|
230
|
-
label: _propTypes["default"].string,
|
|
231
|
-
icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
|
|
232
|
-
iconSrc: _propTypes["default"].string
|
|
233
|
-
})),
|
|
234
|
-
margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
|
|
235
|
-
top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
236
|
-
bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
237
|
-
left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
|
|
238
|
-
right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
|
|
239
|
-
}), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
|
|
240
|
-
tabIndex: _propTypes["default"].number
|
|
241
|
-
};
|
|
242
216
|
var _default = DxcToggleGroup;
|
|
243
217
|
exports["default"] = _default;
|