@dxc-technology/halstack-react 10.0.0 → 11.0.0
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 +2 -2
- package/BackgroundColorContext.js +5 -17
- package/HalstackContext.d.ts +26 -6
- package/HalstackContext.js +9 -34
- package/README.md +47 -0
- package/accordion/Accordion.js +21 -58
- package/accordion/Accordion.stories.tsx +1 -15
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +5 -5
- package/accordion-group/AccordionGroup.js +15 -42
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +42 -60
- package/accordion-group/AccordionGroupAccordion.js +9 -21
- package/accordion-group/types.d.ts +6 -6
- package/alert/Alert.js +14 -46
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.js +4 -17
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +13 -21
- package/bleed/types.d.ts +2 -2
- package/box/Box.js +10 -29
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -3
- package/bulleted-list/BulletedList.js +7 -33
- package/bulleted-list/BulletedList.stories.tsx +1 -91
- package/bulleted-list/types.d.ts +5 -5
- package/button/Button.js +23 -46
- package/button/Button.stories.tsx +5 -86
- package/button/Button.test.js +11 -21
- package/button/types.d.ts +4 -4
- package/card/Card.js +21 -44
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +5 -5
- package/checkbox/Checkbox.js +81 -111
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.js +12 -31
- package/chip/Chip.test.js +15 -28
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.js +1 -2
- package/common/utils.js +2 -8
- package/common/variables.d.ts +23 -6
- package/common/variables.js +25 -15
- package/date-input/Calendar.js +13 -57
- package/date-input/DateInput.js +50 -96
- package/date-input/DateInput.stories.tsx +11 -30
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +11 -42
- package/date-input/Icons.d.ts +6 -6
- package/date-input/Icons.js +6 -23
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +27 -21
- package/dialog/Dialog.js +11 -35
- package/dialog/Dialog.test.js +125 -187
- package/dialog/types.d.ts +18 -13
- package/dropdown/Dropdown.js +39 -93
- package/dropdown/Dropdown.test.js +391 -378
- package/dropdown/DropdownMenu.js +8 -19
- package/dropdown/DropdownMenuItem.js +5 -17
- package/dropdown/types.d.ts +17 -19
- package/file-input/FileInput.js +131 -220
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +293 -342
- package/file-input/FileItem.js +12 -39
- package/file-input/types.d.ts +9 -9
- package/flex/Flex.js +25 -39
- package/flex/types.d.ts +6 -6
- package/footer/Footer.js +9 -39
- package/footer/Footer.stories.tsx +8 -7
- package/footer/Footer.test.js +18 -32
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +2 -7
- package/footer/types.d.ts +13 -13
- package/grid/Grid.js +1 -16
- package/grid/types.d.ts +10 -10
- package/header/Header.d.ts +1 -1
- package/header/Header.js +19 -64
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- package/header/types.d.ts +5 -7
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +13 -21
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +1 -1
- package/layout/ApplicationLayout.js +25 -65
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +3 -3
- package/link/Link.js +21 -42
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +3 -2
- package/main.js +10 -51
- package/nav-tabs/NavTabs.js +11 -43
- package/nav-tabs/NavTabs.stories.tsx +1 -1
- package/nav-tabs/NavTabs.test.js +36 -43
- package/nav-tabs/Tab.js +16 -45
- package/nav-tabs/types.d.ts +9 -9
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +700 -412
- package/number-input/types.d.ts +11 -5
- package/package.json +28 -26
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.js +14 -39
- package/paginator/Paginator.test.js +224 -207
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.js +3 -14
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -32
- package/password-input/PasswordInput.test.js +157 -140
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +16 -42
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +22 -54
- package/radio-group/RadioGroup.js +37 -83
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.js +22 -58
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +13 -39
- package/select/Option.js +9 -26
- package/select/Select.js +54 -138
- package/select/Select.stories.tsx +3 -3
- package/select/Select.test.js +1906 -1800
- package/select/types.d.ts +14 -15
- package/sidenav/Icons.d.ts +4 -4
- package/sidenav/Icons.js +1 -5
- package/sidenav/Sidenav.js +24 -63
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +18 -18
- package/slider/Slider.js +38 -86
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +10 -40
- package/spinner/Spinner.test.js +25 -34
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.js +26 -69
- package/switch/Switch.stories.tsx +0 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/Table.js +4 -23
- package/table/Table.test.js +1 -6
- package/table/types.d.ts +8 -8
- package/tabs/Tab.js +10 -29
- package/tabs/Tabs.js +48 -124
- package/tabs/Tabs.test.js +62 -118
- package/tabs/types.d.ts +19 -19
- package/tag/Tag.js +21 -51
- package/tag/Tag.test.js +19 -30
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +5 -5
- package/text-input/Icons.js +1 -5
- package/text-input/Suggestion.js +9 -26
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +12 -57
- package/text-input/TextInput.js +182 -263
- package/text-input/TextInput.stories.tsx +48 -152
- package/text-input/TextInput.test.js +1210 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.js +60 -96
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -99
- package/textarea/Textarea.test.js +150 -179
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.js +91 -105
- package/toggle-group/ToggleGroup.stories.tsx +7 -4
- package/toggle-group/ToggleGroup.test.js +68 -87
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +20 -3
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +12 -36
- package/wizard/Wizard.js +14 -49
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +6 -6
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/Icons.d.ts +0 -7
- package/slider/Slider.stories.tsx +0 -240
- /package/{resultsetTable → image}/types.js +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
- /package/{number-input/numberInputContextTypes.js → resultset-table/types.js} +0 -0
- /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
- /package/table/{Table.stories.jsx → Table.stories.tsx} +0 -0
|
@@ -1,142 +1,131 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
14
|
var _uuid = require("uuid");
|
|
23
|
-
|
|
24
15
|
var _variables = require("../common/variables");
|
|
25
|
-
|
|
26
16
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
|
-
|
|
28
17
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
29
|
-
|
|
30
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
-
|
|
18
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
20
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
36
22
|
var DxcToggleGroup = function DxcToggleGroup(_ref) {
|
|
37
23
|
var label = _ref.label,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
24
|
+
helperText = _ref.helperText,
|
|
25
|
+
defaultValue = _ref.defaultValue,
|
|
26
|
+
value = _ref.value,
|
|
27
|
+
onChange = _ref.onChange,
|
|
28
|
+
_ref$disabled = _ref.disabled,
|
|
29
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
30
|
+
options = _ref.options,
|
|
31
|
+
margin = _ref.margin,
|
|
32
|
+
_ref$multiple = _ref.multiple,
|
|
33
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
34
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
35
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
36
|
+
var _useState = (0, _react.useState)("label-toggle-group-".concat((0, _uuid.v4)())),
|
|
37
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
38
|
+
toggleGroupLabelId = _useState2[0];
|
|
39
|
+
var _useState3 = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
|
|
40
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
41
|
+
selectedValue = _useState4[0],
|
|
42
|
+
setSelectedValue = _useState4[1];
|
|
50
43
|
var colorsTheme = (0, _useTheme["default"])();
|
|
51
|
-
|
|
52
|
-
var _useState = (0, _react.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : multiple ? [] : -1),
|
|
53
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
54
|
-
selectedValue = _useState2[0],
|
|
55
|
-
setSelectedValue = _useState2[1];
|
|
56
|
-
|
|
57
|
-
var _useState3 = (0, _react.useState)("toggle-group-".concat((0, _uuid.v4)())),
|
|
58
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
|
|
59
|
-
toggleGroupId = _useState4[0];
|
|
60
|
-
|
|
61
44
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
62
|
-
|
|
63
45
|
var handleToggleChange = function handleToggleChange(selectedOption) {
|
|
64
46
|
var newSelectedOptions;
|
|
65
|
-
|
|
66
47
|
if (value == null) {
|
|
67
48
|
if (multiple && Array.isArray(selectedValue)) {
|
|
68
49
|
newSelectedOptions = selectedValue.map(function (value) {
|
|
69
50
|
return value;
|
|
70
51
|
});
|
|
71
|
-
|
|
72
52
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
73
53
|
var index = newSelectedOptions.indexOf(selectedOption);
|
|
74
54
|
newSelectedOptions.splice(index, 1);
|
|
75
55
|
} else {
|
|
76
56
|
newSelectedOptions.push(selectedOption);
|
|
77
57
|
}
|
|
78
|
-
|
|
79
58
|
setSelectedValue(newSelectedOptions);
|
|
80
59
|
} else setSelectedValue(selectedOption === selectedValue ? null : selectedOption);
|
|
81
60
|
} else if (multiple) {
|
|
82
61
|
newSelectedOptions = Array.isArray(value) ? value.map(function (v) {
|
|
83
62
|
return v;
|
|
84
63
|
}) : value;
|
|
85
|
-
|
|
86
64
|
if (newSelectedOptions.includes(selectedOption)) {
|
|
87
65
|
var _index = newSelectedOptions.indexOf(selectedOption);
|
|
88
|
-
|
|
89
66
|
newSelectedOptions.splice(_index, 1);
|
|
90
67
|
} else newSelectedOptions.push(selectedOption);
|
|
91
68
|
}
|
|
92
|
-
|
|
93
69
|
onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? newSelectedOptions : selectedOption);
|
|
94
70
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
71
|
+
var handleOnKeyDown = function handleOnKeyDown(event, optionValue) {
|
|
72
|
+
switch (event.key) {
|
|
73
|
+
case "Enter":
|
|
74
|
+
case " ":
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
handleToggleChange(optionValue);
|
|
77
|
+
}
|
|
99
78
|
};
|
|
100
|
-
|
|
101
79
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
102
80
|
theme: colorsTheme.toggleGroup
|
|
103
81
|
}, /*#__PURE__*/_react["default"].createElement(ToggleGroup, {
|
|
104
82
|
margin: margin
|
|
105
83
|
}, /*#__PURE__*/_react["default"].createElement(Label, {
|
|
106
|
-
|
|
84
|
+
id: toggleGroupLabelId,
|
|
107
85
|
disabled: disabled
|
|
108
86
|
}, label), /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
109
87
|
disabled: disabled
|
|
110
88
|
}, helperText), /*#__PURE__*/_react["default"].createElement(OptionsContainer, {
|
|
111
|
-
|
|
112
|
-
role: multiple ? "group" : "radiogroup"
|
|
89
|
+
"aria-labelledby": toggleGroupLabelId
|
|
113
90
|
}, options.map(function (option, i) {
|
|
114
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
tabIndex: !disabled ? tabIndex : -1,
|
|
91
|
+
return /*#__PURE__*/_react["default"].createElement(ToggleButton, {
|
|
92
|
+
key: "toggle-".concat(i, "-").concat(option.label),
|
|
93
|
+
"aria-label": option.title,
|
|
94
|
+
"aria-pressed": multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue,
|
|
95
|
+
disabled: disabled,
|
|
120
96
|
onClick: function onClick() {
|
|
121
|
-
|
|
97
|
+
handleToggleChange(option.value);
|
|
122
98
|
},
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
optionLabel: option.label,
|
|
126
|
-
disabled: disabled,
|
|
127
|
-
onKeyPress: function onKeyPress(event) {
|
|
128
|
-
handleKeyPress(event, option.value);
|
|
99
|
+
onKeyDown: function onKeyDown(event) {
|
|
100
|
+
handleOnKeyDown(event, option.value);
|
|
129
101
|
},
|
|
130
|
-
|
|
131
|
-
|
|
102
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
103
|
+
title: option.title,
|
|
104
|
+
backgroundType: backgroundType,
|
|
105
|
+
hasIcon: option.icon,
|
|
106
|
+
optionLabel: option.label,
|
|
107
|
+
selected: multiple ? value ? Array.isArray(value) && value.includes(option.value) : Array.isArray(selectedValue) && selectedValue.includes(option.value) : value ? option.value === value : option.value === selectedValue
|
|
108
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
109
|
+
alignItems: "center"
|
|
110
|
+
}, option.icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
132
111
|
optionLabel: option.label
|
|
133
|
-
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(
|
|
112
|
+
}, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
134
113
|
src: option.icon
|
|
135
114
|
}) : option.icon), option.label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, option.label)));
|
|
136
115
|
}))));
|
|
137
116
|
};
|
|
138
|
-
|
|
139
|
-
|
|
117
|
+
var ToggleGroup = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
118
|
+
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
119
|
+
}, function (props) {
|
|
120
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
121
|
+
}, function (props) {
|
|
122
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
123
|
+
}, function (props) {
|
|
124
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
125
|
+
}, function (props) {
|
|
126
|
+
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
127
|
+
});
|
|
128
|
+
var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
140
129
|
return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
|
|
141
130
|
}, function (props) {
|
|
142
131
|
return props.theme.labelFontFamily;
|
|
@@ -149,8 +138,7 @@ var Label = _styledComponents["default"].label(_templateObject || (_templateObje
|
|
|
149
138
|
}, function (props) {
|
|
150
139
|
return props.theme.labelLineHeight;
|
|
151
140
|
});
|
|
152
|
-
|
|
153
|
-
var HelperText = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
141
|
+
var HelperText = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
|
|
154
142
|
return props.disabled ? props.theme.disabledHelperTextFontcolor : props.theme.helperTextFontColor;
|
|
155
143
|
}, function (props) {
|
|
156
144
|
return props.theme.helperTextFontFamily;
|
|
@@ -163,20 +151,7 @@ var HelperText = _styledComponents["default"].span(_templateObject2 || (_templat
|
|
|
163
151
|
}, function (props) {
|
|
164
152
|
return props.theme.helperTextLineHeight;
|
|
165
153
|
});
|
|
166
|
-
|
|
167
|
-
var ToggleGroup = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: column;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
168
|
-
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
169
|
-
}, function (props) {
|
|
170
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
171
|
-
}, function (props) {
|
|
172
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
|
|
173
|
-
}, function (props) {
|
|
174
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
175
|
-
}, function (props) {
|
|
176
|
-
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n width: max-content;\n opacity: 1;\n height: calc(48px - 4px - 4px);\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n background-color: ", ";\n padding: 4px;\n margin-top: ", ";\n"])), function (props) {
|
|
154
|
+
var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.25rem;\n width: max-content;\n height: calc(48px - 4px - 4px);\n padding: 0.25rem;\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n border-color: ", ";\n margin-top: ", ";\n background-color: ", ";\n"])), function (props) {
|
|
180
155
|
return props.theme.containerBorderThickness;
|
|
181
156
|
}, function (props) {
|
|
182
157
|
return props.theme.containerBorderStyle;
|
|
@@ -184,18 +159,36 @@ var OptionsContainer = _styledComponents["default"].div(_templateObject4 || (_te
|
|
|
184
159
|
return props.theme.containerBorderRadius;
|
|
185
160
|
}, function (props) {
|
|
186
161
|
return props.theme.containerBorderColor;
|
|
187
|
-
}, function (props) {
|
|
188
|
-
return props.theme.containerBackgroundColor;
|
|
189
162
|
}, function (props) {
|
|
190
163
|
return props.theme.containerMarginTop;
|
|
164
|
+
}, function (props) {
|
|
165
|
+
return props.theme.containerBackgroundColor;
|
|
191
166
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
167
|
+
var ToggleButton = _styledComponents["default"].button(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: ", ";\n padding-right: ", ";\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n background-color: ", ";\n color: ", ";\n cursor: pointer;\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n color: #ffffff;\n }\n &:focus {\n outline: none;\n box-shadow: ", ";\n }\n &:disabled {\n background-color: ", ";\n color: ", ";\n cursor: not-allowed;\n }\n"])), function (props) {
|
|
168
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingLeft : props.theme.iconPaddingLeft;
|
|
169
|
+
}, function (props) {
|
|
170
|
+
return props.optionLabel && props.hasIcon || props.optionLabel && !props.hasIcon ? props.theme.labelPaddingRight : props.theme.iconPaddingRight;
|
|
171
|
+
}, function (props) {
|
|
172
|
+
return props.theme.optionBorderThickness;
|
|
173
|
+
}, function (props) {
|
|
174
|
+
return props.theme.optionBorderStyle;
|
|
175
|
+
}, function (props) {
|
|
176
|
+
return props.theme.optionBorderRadius;
|
|
177
|
+
}, function (props) {
|
|
178
|
+
return props.selected ? props.theme.selectedBackgroundColor : props.theme.unselectedBackgroundColor;
|
|
195
179
|
}, function (props) {
|
|
196
|
-
return
|
|
180
|
+
return props.selected ? props.theme.selectedFontColor : props.theme.unselectedFontColor;
|
|
181
|
+
}, function (props) {
|
|
182
|
+
return props.selected ? props.theme.selectedHoverBackgroundColor : props.theme.unselectedHoverBackgroundColor;
|
|
183
|
+
}, function (props) {
|
|
184
|
+
return props.selected ? props.theme.selectedActiveBackgroundColor : props.theme.unselectedActiveBackgroundColor;
|
|
185
|
+
}, function (props) {
|
|
186
|
+
return "0 0 0 ".concat(props.theme.optionFocusBorderThickness, " ").concat(props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor);
|
|
187
|
+
}, function (props) {
|
|
188
|
+
return props.selected ? props.theme.selectedDisabledBackgroundColor : props.theme.unselectedDisabledBackgroundColor;
|
|
189
|
+
}, function (props) {
|
|
190
|
+
return props.selected ? props.theme.selectedDisabledFontColor : props.theme.unselectedDisabledFontColor;
|
|
197
191
|
});
|
|
198
|
-
|
|
199
192
|
var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
200
193
|
return props.theme.optionLabelFontFamily;
|
|
201
194
|
}, function (props) {
|
|
@@ -205,14 +198,7 @@ var LabelContainer = _styledComponents["default"].span(_templateObject6 || (_tem
|
|
|
205
198
|
}, function (props) {
|
|
206
199
|
return props.theme.optionLabelFontWeight;
|
|
207
200
|
});
|
|
208
|
-
|
|
209
|
-
var OptionContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
|
|
210
|
-
|
|
211
|
-
var Icon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
212
|
-
|
|
213
|
-
var IconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n height: 24px;\n width: 24px;\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
201
|
+
var IconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 24px;\n width: 24px;\n margin-right: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
214
202
|
return props.optionLabel && props.theme.iconMarginRight;
|
|
215
203
|
});
|
|
216
|
-
|
|
217
|
-
var _default = DxcToggleGroup;
|
|
218
|
-
exports["default"] = _default;
|
|
204
|
+
var _default = exports["default"] = DxcToggleGroup;
|
|
@@ -6,7 +6,7 @@ import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
|
6
6
|
import { HalstackProvider } from "../HalstackContext";
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
|
-
title: "
|
|
9
|
+
title: "Toggle Group",
|
|
10
10
|
component: DxcToggleGroup,
|
|
11
11
|
};
|
|
12
12
|
|
|
@@ -42,7 +42,7 @@ const options = [
|
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
value: 2,
|
|
45
|
-
label: "
|
|
45
|
+
label: "X",
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
value: 3,
|
|
@@ -53,14 +53,17 @@ const optionsWithIcon = [
|
|
|
53
53
|
{
|
|
54
54
|
value: 1,
|
|
55
55
|
icon: wifiSVG,
|
|
56
|
+
title: "WiFi connection",
|
|
56
57
|
},
|
|
57
58
|
{
|
|
58
59
|
value: 2,
|
|
59
60
|
icon: ethernetSVG,
|
|
61
|
+
title: "Ethernet connection",
|
|
60
62
|
},
|
|
61
63
|
{
|
|
62
64
|
value: 3,
|
|
63
65
|
icon: gMobileSVG,
|
|
66
|
+
title: "3G Mobile data connection",
|
|
64
67
|
},
|
|
65
68
|
];
|
|
66
69
|
const optionsWithIconAndLabel = [
|
|
@@ -87,7 +90,7 @@ const twoOptions = [
|
|
|
87
90
|
},
|
|
88
91
|
{
|
|
89
92
|
value: 2,
|
|
90
|
-
label: "
|
|
93
|
+
label: "X",
|
|
91
94
|
},
|
|
92
95
|
];
|
|
93
96
|
|
|
@@ -209,7 +212,7 @@ ToggleGroupSelectedActived.play = async ({ canvasElement }) => {
|
|
|
209
212
|
export const ToggleGroupUnselectedActived = OptionSelected.bind({});
|
|
210
213
|
ToggleGroupUnselectedActived.play = async ({ canvasElement }) => {
|
|
211
214
|
const canvas = within(canvasElement);
|
|
212
|
-
const option = canvas.getByText("
|
|
215
|
+
const option = canvas.getByText("X");
|
|
213
216
|
await userEvent.click(option);
|
|
214
217
|
userEvent.tab();
|
|
215
218
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _ToggleGroup = _interopRequireDefault(require("./ToggleGroup.tsx"));
|
|
10
|
-
|
|
11
7
|
var options = [{
|
|
12
8
|
value: 1,
|
|
13
9
|
label: "Amazon"
|
|
@@ -24,12 +20,11 @@ var options = [{
|
|
|
24
20
|
describe("Toggle group component tests", function () {
|
|
25
21
|
test("Toggle group renders with correct labels", function () {
|
|
26
22
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
label: "Toggle group label",
|
|
24
|
+
helperText: "Toggle group helper text",
|
|
25
|
+
options: options
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render.getByText;
|
|
33
28
|
expect(getByText("Toggle group label")).toBeTruthy();
|
|
34
29
|
expect(getByText("Toggle group helper text")).toBeTruthy();
|
|
35
30
|
expect(getByText("Amazon")).toBeTruthy();
|
|
@@ -37,120 +32,106 @@ describe("Toggle group component tests", function () {
|
|
|
37
32
|
expect(getByText("Apple")).toBeTruthy();
|
|
38
33
|
expect(getByText("Google")).toBeTruthy();
|
|
39
34
|
});
|
|
35
|
+
test("Toggle group renders with correct aria-label in only-icon scenario", function () {
|
|
36
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
37
|
+
label: "Toggle group label",
|
|
38
|
+
helperText: "Toggle group helper text",
|
|
39
|
+
options: [{
|
|
40
|
+
value: 1,
|
|
41
|
+
icon: "https://cdn.icon-icons.com/icons2/2645/PNG/512/mic_mute_icon_159965.png",
|
|
42
|
+
title: "Mute"
|
|
43
|
+
}]
|
|
44
|
+
})),
|
|
45
|
+
getByRole = _render2.getByRole;
|
|
46
|
+
expect(getByRole("button").getAttribute("aria-label")).toBe("Mute");
|
|
47
|
+
});
|
|
40
48
|
test("Uncontrolled toggle group calls correct function on change with value", function () {
|
|
41
49
|
var onChange = jest.fn();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
getByText = _render2.getByText;
|
|
48
|
-
|
|
50
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
51
|
+
options: options,
|
|
52
|
+
onChange: onChange
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render3.getByText;
|
|
49
55
|
var option = getByText("Ebay");
|
|
50
|
-
|
|
51
56
|
_react2.fireEvent.click(option);
|
|
52
|
-
|
|
53
57
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
54
58
|
});
|
|
55
59
|
test("Controlled toggle group calls correct function on change with value", function () {
|
|
56
60
|
var onChange = jest.fn();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
getByText = _render3.getByText;
|
|
64
|
-
|
|
61
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
62
|
+
options: options,
|
|
63
|
+
onChange: onChange,
|
|
64
|
+
value: 1
|
|
65
|
+
})),
|
|
66
|
+
getByText = _render4.getByText;
|
|
65
67
|
var option = getByText("Ebay");
|
|
66
|
-
|
|
67
68
|
_react2.fireEvent.click(option);
|
|
68
|
-
|
|
69
69
|
expect(onChange).toHaveBeenCalledWith(2);
|
|
70
70
|
});
|
|
71
71
|
test("Function on change is not called when disable", function () {
|
|
72
72
|
var onChange = jest.fn();
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
getByText = _render4.getByText;
|
|
80
|
-
|
|
73
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
74
|
+
options: options,
|
|
75
|
+
onChange: onChange,
|
|
76
|
+
disabled: true
|
|
77
|
+
})),
|
|
78
|
+
getByText = _render5.getByText;
|
|
81
79
|
var option = getByText("Ebay");
|
|
82
|
-
|
|
83
80
|
_react2.fireEvent.click(option);
|
|
84
|
-
|
|
85
81
|
expect(onChange).toHaveBeenCalledTimes(0);
|
|
86
82
|
});
|
|
87
83
|
test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", function () {
|
|
88
84
|
var onChange = jest.fn();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var toggleOptions = getAllByRole("switch");
|
|
98
|
-
|
|
85
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
86
|
+
options: options,
|
|
87
|
+
onChange: onChange,
|
|
88
|
+
multiple: true
|
|
89
|
+
})),
|
|
90
|
+
getAllByRole = _render6.getAllByRole;
|
|
91
|
+
var toggleOptions = getAllByRole("button");
|
|
99
92
|
_react2.fireEvent.click(toggleOptions[0]);
|
|
100
|
-
|
|
101
93
|
expect(onChange).toHaveBeenCalledWith([1]);
|
|
102
|
-
|
|
103
94
|
_react2.fireEvent.click(toggleOptions[1]);
|
|
104
|
-
|
|
105
95
|
_react2.fireEvent.click(toggleOptions[3]);
|
|
106
|
-
|
|
107
96
|
expect(onChange).toHaveBeenCalledWith([1, 2, 4]);
|
|
108
|
-
expect(toggleOptions[0].getAttribute("aria-
|
|
109
|
-
expect(toggleOptions[1].getAttribute("aria-
|
|
110
|
-
expect(toggleOptions[3].getAttribute("aria-
|
|
97
|
+
expect(toggleOptions[0].getAttribute("aria-pressed")).toBe("true");
|
|
98
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
99
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
111
100
|
});
|
|
112
101
|
test("Controlled multiple toggle returns always same values", function () {
|
|
113
102
|
var onChange = jest.fn();
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
getByText = _render6.getByText;
|
|
122
|
-
|
|
103
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
104
|
+
options: options,
|
|
105
|
+
onChange: onChange,
|
|
106
|
+
value: [1],
|
|
107
|
+
multiple: true
|
|
108
|
+
})),
|
|
109
|
+
getByText = _render7.getByText;
|
|
123
110
|
var option = getByText("Ebay");
|
|
124
|
-
|
|
125
111
|
_react2.fireEvent.click(option);
|
|
126
|
-
|
|
127
112
|
expect(onChange).toHaveBeenCalledWith([1, 2]);
|
|
128
113
|
var option2 = getByText("Google");
|
|
129
|
-
|
|
130
114
|
_react2.fireEvent.click(option2);
|
|
131
|
-
|
|
132
115
|
expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
|
|
133
116
|
});
|
|
134
117
|
test("Single selection: Renders with correct default value", function () {
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
expect(toggleOptions[1].getAttribute("aria-checked")).toBe("true");
|
|
118
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
119
|
+
options: options,
|
|
120
|
+
defaultValue: 2
|
|
121
|
+
})),
|
|
122
|
+
getAllByRole = _render8.getAllByRole;
|
|
123
|
+
var toggleOptions = getAllByRole("button");
|
|
124
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
143
125
|
});
|
|
144
126
|
test("Multiple selection: Renders with correct default value", function () {
|
|
145
|
-
var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
expect(toggleOptions[
|
|
154
|
-
expect(toggleOptions[3].getAttribute("aria-checked")).toBe("true");
|
|
127
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleGroup["default"], {
|
|
128
|
+
options: options,
|
|
129
|
+
defaultValue: [2, 4],
|
|
130
|
+
multiple: true
|
|
131
|
+
})),
|
|
132
|
+
getAllByRole = _render9.getAllByRole;
|
|
133
|
+
var toggleOptions = getAllByRole("button");
|
|
134
|
+
expect(toggleOptions[1].getAttribute("aria-pressed")).toBe("true");
|
|
135
|
+
expect(toggleOptions[3].getAttribute("aria-pressed")).toBe("true");
|
|
155
136
|
});
|
|
156
137
|
});
|