@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3ac293
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 +1 -1
- package/HalstackContext.d.ts +1336 -0
- package/HalstackContext.js +335 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +118 -126
- package/accordion/Accordion.stories.tsx +115 -27
- package/accordion/Accordion.test.js +26 -12
- package/accordion/types.d.ts +9 -4
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +17 -38
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +31 -38
- package/accordion-group/types.d.ts +14 -3
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +25 -1
- package/box/Box.js +25 -37
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/button/Button.js +52 -69
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +7 -7
- package/card/Card.js +25 -28
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +107 -110
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +101 -11
- package/checkbox/types.d.ts +13 -5
- package/chip/Chip.js +18 -24
- package/chip/Chip.stories.tsx +96 -9
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1625 -0
- package/common/variables.js +483 -352
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +169 -258
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +521 -155
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +67 -9
- package/dialog/Dialog.js +76 -93
- package/dialog/Dialog.stories.tsx +230 -123
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -253
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +181 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/footer/Footer.js +16 -89
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +14 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +108 -129
- package/header/Header.stories.tsx +189 -36
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +72 -132
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +59 -76
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +7 -23
- package/main.d.ts +8 -10
- package/main.js +46 -56
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +125 -0
- package/nav-tabs/NavTabs.stories.tsx +260 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +150 -0
- package/nav-tabs/types.d.ts +53 -0
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +46 -12
- package/number-input/types.d.ts +17 -10
- package/package.json +20 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +78 -39
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +17 -19
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +32 -28
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +145 -117
- package/radio-group/types.d.ts +79 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +2 -2
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +97 -0
- package/select/Select.js +179 -384
- package/select/Select.stories.tsx +531 -142
- package/select/Select.test.js +652 -324
- package/select/types.d.ts +53 -13
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +183 -53
- package/sidenav/Sidenav.stories.tsx +249 -149
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +124 -98
- package/slider/Slider.stories.tsx +72 -9
- package/slider/Slider.test.js +143 -22
- package/slider/types.d.ts +10 -2
- package/spinner/Spinner.js +4 -4
- package/spinner/Spinner.stories.jsx +27 -1
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -69
- package/switch/Switch.stories.tsx +53 -42
- package/switch/Switch.test.js +156 -4
- package/switch/types.d.ts +12 -4
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +363 -109
- package/tabs/Tabs.stories.tsx +119 -13
- package/tabs/Tabs.test.js +241 -14
- package/tabs/types.d.ts +19 -5
- package/tag/Tag.js +17 -22
- package/tag/Tag.stories.tsx +25 -8
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +221 -344
- package/text-input/TextInput.stories.tsx +290 -195
- package/text-input/TextInput.test.js +763 -731
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +17 -26
- package/textarea/Textarea.stories.jsx +65 -6
- package/textarea/Textarea.test.js +38 -37
- package/textarea/types.d.ts +18 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +6 -5
- package/toggle-group/ToggleGroup.stories.tsx +46 -4
- package/toggle-group/ToggleGroup.test.js +36 -5
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +3 -3
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +59 -55
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +37 -24
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → nav-tabs}/types.js +0 -0
- /package/{stack → quick-nav}/types.js +0 -0
package/radio-group/Radio.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { RadioProps } from "./types";
|
|
3
|
-
declare const _default: React.MemoExoticComponent<({
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ label, checked, onClick, error, disabled, focused, readonly, tabIndex, }: RadioProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
package/radio-group/Radio.js
CHANGED
|
@@ -28,10 +28,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
29
29
|
|
|
30
30
|
var DxcRadio = function DxcRadio(_ref) {
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
var option = _ref.option,
|
|
34
|
-
currentValue = _ref.currentValue,
|
|
31
|
+
var label = _ref.label,
|
|
32
|
+
checked = _ref.checked,
|
|
35
33
|
onClick = _ref.onClick,
|
|
36
34
|
error = _ref.error,
|
|
37
35
|
disabled = _ref.disabled,
|
|
@@ -50,7 +48,7 @@ var DxcRadio = function DxcRadio(_ref) {
|
|
|
50
48
|
var _ref$current;
|
|
51
49
|
|
|
52
50
|
onClick();
|
|
53
|
-
|
|
51
|
+
document.activeElement !== (ref === null || ref === void 0 ? void 0 : ref.current) && (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus());
|
|
54
52
|
};
|
|
55
53
|
|
|
56
54
|
var _useState3 = (0, _react.useState)(true),
|
|
@@ -75,52 +73,57 @@ var DxcRadio = function DxcRadio(_ref) {
|
|
|
75
73
|
error: error,
|
|
76
74
|
disabled: disabled,
|
|
77
75
|
readonly: readonly,
|
|
78
|
-
|
|
79
|
-
// Prevents div's onClick from stealing the radio input's focus
|
|
80
|
-
event.preventDefault();
|
|
81
|
-
},
|
|
82
|
-
onClick: handleOnClick
|
|
76
|
+
onClick: disabled ? undefined : handleOnClick
|
|
83
77
|
}, /*#__PURE__*/_react["default"].createElement(RadioInputContainer, null, /*#__PURE__*/_react["default"].createElement(RadioInput, {
|
|
84
78
|
error: error,
|
|
85
79
|
disabled: disabled,
|
|
86
80
|
readonly: readonly,
|
|
87
81
|
role: "radio",
|
|
88
|
-
"aria-checked":
|
|
89
|
-
"aria-disabled":
|
|
82
|
+
"aria-checked": checked,
|
|
83
|
+
"aria-disabled": disabled,
|
|
90
84
|
"aria-labelledby": radioLabelId,
|
|
91
85
|
tabIndex: disabled ? -1 : focused ? tabIndex : -1,
|
|
92
86
|
ref: ref
|
|
93
|
-
},
|
|
87
|
+
}, checked && /*#__PURE__*/_react["default"].createElement(Dot, {
|
|
94
88
|
disabled: disabled,
|
|
95
89
|
readonly: readonly,
|
|
96
90
|
error: error
|
|
97
91
|
}))), /*#__PURE__*/_react["default"].createElement(Label, {
|
|
98
92
|
id: radioLabelId,
|
|
99
93
|
disabled: disabled
|
|
100
|
-
},
|
|
94
|
+
}, label))));
|
|
101
95
|
};
|
|
102
96
|
|
|
103
|
-
var
|
|
97
|
+
var getRadioInputStateColor = function getRadioInputStateColor(props, state) {
|
|
98
|
+
switch (state) {
|
|
99
|
+
case "enabled":
|
|
100
|
+
return props.disabled ? props.theme.disabledRadioInputColor : props.error ? props.theme.errorRadioInputColor : props.readonly ? props.theme.readonlyRadioInputColor : props.theme.radioInputColor;
|
|
104
101
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}, function (props) {
|
|
108
|
-
return !props.disabled ? "\n &:hover {\n & > div > div { \n border-color: ".concat(props.error ? props.theme.hoverErrorRadioInputColor : props.readonly ? props.theme.hoverReadonlyRadioInputColor : props.theme.hoverRadioInputColor, ";\n & > span {\n background-color: ").concat(props.error ? props.theme.hoverErrorRadioInputColor : props.readonly ? props.theme.hoverReadonlyRadioInputColor : props.theme.hoverRadioInputColor, ";\n }\n };\n }\n &:active {\n & > div > div {\n border-color: ").concat(props.error ? props.theme.activeErrorRadioInputColor : props.readonly ? props.theme.activeReadonlyRadioInputColor : props.theme.activeRadioInputColor, ";\n & > span {\n background-color: ").concat(props.error ? props.theme.activeErrorRadioInputColor : props.readonly ? props.theme.activeReadonlyRadioInputColor : props.theme.activeRadioInputColor, ";\n }\n }\n }\n ") : "pointer-events: none;";
|
|
109
|
-
});
|
|
102
|
+
case "hover":
|
|
103
|
+
return props.error ? props.theme.hoverErrorRadioInputColor : props.readonly ? props.theme.hoverReadonlyRadioInputColor : props.theme.hoverRadioInputColor;
|
|
110
104
|
|
|
111
|
-
|
|
105
|
+
case "active":
|
|
106
|
+
return props.error ? props.theme.activeErrorRadioInputColor : props.readonly ? props.theme.activeReadonlyRadioInputColor : props.theme.activeRadioInputColor;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
112
109
|
|
|
113
|
-
var
|
|
114
|
-
|
|
110
|
+
var RadioMainContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
|
|
111
|
+
|
|
112
|
+
var RadioInputContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
|
|
113
|
+
|
|
114
|
+
var RadioInput = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid ", ";\n border-radius: 50%;\n\n &:focus {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n ", "\n"])), function (props) {
|
|
115
|
+
return getRadioInputStateColor(props, "enabled");
|
|
116
|
+
}, function (props) {
|
|
117
|
+
return props.theme.focusBorderColor;
|
|
115
118
|
}, function (props) {
|
|
116
|
-
return
|
|
119
|
+
return props.disabled && "pointer-events: none;";
|
|
117
120
|
});
|
|
118
121
|
|
|
119
|
-
var Dot = _styledComponents["default"].span(
|
|
120
|
-
|
|
122
|
+
var Dot = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background-color: ", ";\n"])), function (props) {
|
|
123
|
+
return getRadioInputStateColor(props, "enabled");
|
|
121
124
|
});
|
|
122
125
|
|
|
123
|
-
var Label = _styledComponents["default"].span(
|
|
126
|
+
var Label = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
|
|
124
127
|
return props.theme.radioInputLabelMargin;
|
|
125
128
|
}, function (props) {
|
|
126
129
|
return props.theme.fontFamily;
|
|
@@ -133,7 +136,19 @@ var Label = _styledComponents["default"].span(_templateObject6 || (_templateObje
|
|
|
133
136
|
}, function (props) {
|
|
134
137
|
return props.theme.radioInputLabelLineHeight;
|
|
135
138
|
}, function (props) {
|
|
136
|
-
return props.disabled
|
|
139
|
+
return props.disabled ? "color: ".concat(props.theme.disabledRadioInputLabelFontColor, ";") : "color: ".concat(props.theme.radioInputLabelFontColor);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
var RadioContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n\n &:hover {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n &:active {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n"])), function (props) {
|
|
143
|
+
return props.disabled ? "not-allowed" : props.readonly ? "default" : "pointer";
|
|
144
|
+
}, RadioInput, function (props) {
|
|
145
|
+
return !props.disabled && getRadioInputStateColor(props, "hover");
|
|
146
|
+
}, Dot, function (props) {
|
|
147
|
+
return !props.disabled && getRadioInputStateColor(props, "hover");
|
|
148
|
+
}, RadioInput, function (props) {
|
|
149
|
+
return !props.disabled && getRadioInputStateColor(props, "active");
|
|
150
|
+
}, Dot, function (props) {
|
|
151
|
+
return !props.disabled && getRadioInputStateColor(props, "active");
|
|
137
152
|
});
|
|
138
153
|
|
|
139
154
|
var _default = /*#__PURE__*/_react["default"].memo(DxcRadio);
|
|
@@ -23,6 +23,8 @@ var _uuid = require("uuid");
|
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
27
|
+
|
|
26
28
|
var _Radio = _interopRequireDefault(require("./Radio"));
|
|
27
29
|
|
|
28
30
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
@@ -39,6 +41,8 @@ var getInitialFocusIndex = function getInitialFocusIndex(innerOptions, value) {
|
|
|
39
41
|
};
|
|
40
42
|
|
|
41
43
|
var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
44
|
+
var _ref2;
|
|
45
|
+
|
|
42
46
|
var label = _ref.label,
|
|
43
47
|
name = _ref.name,
|
|
44
48
|
helperText = _ref.helperText,
|
|
@@ -47,8 +51,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
47
51
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
48
52
|
_ref$optional = _ref.optional,
|
|
49
53
|
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
50
|
-
|
|
51
|
-
optionalItemLabel = _ref$optionalItemLabe === void 0 ? "N/A" : _ref$optionalItemLabe,
|
|
54
|
+
optionalItemLabel = _ref.optionalItemLabel,
|
|
52
55
|
_ref$readonly = _ref.readonly,
|
|
53
56
|
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
54
57
|
_ref$stacking = _ref.stacking,
|
|
@@ -78,8 +81,10 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
78
81
|
firstTimeFocus = _useState6[0],
|
|
79
82
|
setFirstTimeFocus = _useState6[1];
|
|
80
83
|
|
|
84
|
+
var colorsTheme = (0, _useTheme["default"])();
|
|
85
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
81
86
|
var optionalItem = {
|
|
82
|
-
label: optionalItemLabel,
|
|
87
|
+
label: optionalItemLabel || translatedLabels.radioGroup.optionalItemLabelDefault,
|
|
83
88
|
value: "",
|
|
84
89
|
disabled: disabled
|
|
85
90
|
};
|
|
@@ -92,7 +97,6 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
92
97
|
currentFocusIndex = _useState8[0],
|
|
93
98
|
setCurrentFocusIndex = _useState8[1];
|
|
94
99
|
|
|
95
|
-
var colorsTheme = (0, _useTheme["default"])();
|
|
96
100
|
var handleOnChange = (0, _react.useCallback)(function (newValue) {
|
|
97
101
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
98
102
|
|
|
@@ -100,16 +104,16 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
100
104
|
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
101
105
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
102
106
|
}
|
|
103
|
-
}, [value, innerValue,
|
|
107
|
+
}, [value, innerValue, onChange]);
|
|
104
108
|
|
|
105
|
-
var handleOnBlur = function handleOnBlur(
|
|
109
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
106
110
|
// If the radio group loses the focus to an element not contained inside it...
|
|
107
|
-
if (!
|
|
111
|
+
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
108
112
|
setFirstTimeFocus(true);
|
|
109
113
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
110
114
|
!optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
111
115
|
value: currentValue,
|
|
112
|
-
error:
|
|
116
|
+
error: translatedLabels.formFields.requiredSelectionErrorMessage
|
|
113
117
|
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
114
118
|
value: currentValue
|
|
115
119
|
});
|
|
@@ -147,27 +151,24 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
147
151
|
};
|
|
148
152
|
|
|
149
153
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
150
|
-
switch (event.
|
|
151
|
-
case
|
|
152
|
-
|
|
153
|
-
case
|
|
154
|
-
|
|
154
|
+
switch (event.key) {
|
|
155
|
+
case "Left":
|
|
156
|
+
case "ArrowLeft":
|
|
157
|
+
case "Up":
|
|
158
|
+
case "ArrowUp":
|
|
155
159
|
event.preventDefault();
|
|
156
160
|
setPreviousRadioChecked();
|
|
157
161
|
break;
|
|
158
162
|
|
|
159
|
-
case
|
|
160
|
-
|
|
161
|
-
case
|
|
162
|
-
|
|
163
|
+
case "Right":
|
|
164
|
+
case "ArrowRight":
|
|
165
|
+
case "Down":
|
|
166
|
+
case "ArrowDown":
|
|
163
167
|
event.preventDefault();
|
|
164
168
|
setNextRadioChecked();
|
|
165
169
|
break;
|
|
166
170
|
|
|
167
|
-
case
|
|
168
|
-
|
|
169
|
-
case 32:
|
|
170
|
-
// space
|
|
171
|
+
case " ":
|
|
171
172
|
event.preventDefault();
|
|
172
173
|
handleOnChange(innerOptions[currentFocusIndex].value);
|
|
173
174
|
break;
|
|
@@ -182,7 +183,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
182
183
|
id: radioGroupLabelId,
|
|
183
184
|
helperText: helperText,
|
|
184
185
|
disabled: disabled
|
|
185
|
-
}, label,
|
|
186
|
+
}, label, optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, " ".concat(translatedLabels.formFields.optionalLabel))), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
186
187
|
disabled: disabled
|
|
187
188
|
}, helperText), /*#__PURE__*/_react["default"].createElement(RadioGroup, {
|
|
188
189
|
onBlur: handleOnBlur,
|
|
@@ -192,19 +193,22 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
192
193
|
role: "radiogroup",
|
|
193
194
|
"aria-disabled": disabled,
|
|
194
195
|
"aria-labelledby": radioGroupLabelId,
|
|
195
|
-
"aria-invalid": error ?
|
|
196
|
+
"aria-invalid": error ? true : false,
|
|
196
197
|
"aria-errormessage": error ? errorId : undefined,
|
|
197
198
|
"aria-required": !disabled && !readonly && !optional,
|
|
198
|
-
"aria-readonly": readonly
|
|
199
|
+
"aria-readonly": readonly,
|
|
200
|
+
"aria-orientation": stacking === "column" ? "vertical" : "horizontal"
|
|
199
201
|
}, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
200
202
|
name: name,
|
|
201
|
-
|
|
203
|
+
disabled: disabled,
|
|
204
|
+
value: (_ref2 = value !== null && value !== void 0 ? value : innerValue) !== null && _ref2 !== void 0 ? _ref2 : "",
|
|
202
205
|
readOnly: true,
|
|
203
206
|
"aria-hidden": "true"
|
|
204
207
|
}), innerOptions.map(function (option, index) {
|
|
205
208
|
return /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
|
|
206
|
-
|
|
207
|
-
|
|
209
|
+
key: "radio-".concat(index),
|
|
210
|
+
label: option.label,
|
|
211
|
+
checked: (value !== null && value !== void 0 ? value : innerValue) === option.value,
|
|
208
212
|
onClick: function onClick() {
|
|
209
213
|
handleOnChange(option.value);
|
|
210
214
|
setCurrentFocusIndex(index);
|
|
@@ -259,7 +263,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
259
263
|
return props.theme.groupLabelMargin;
|
|
260
264
|
});
|
|
261
265
|
|
|
262
|
-
var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: ", ";\n
|
|
266
|
+
var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: ", ";\n row-gap: ", ";\n column-gap: ", ";\n"])), function (props) {
|
|
263
267
|
return props.stacking;
|
|
264
268
|
}, function (props) {
|
|
265
269
|
return props.theme.groupVerticalGutter;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
2
3
|
import Title from "../../.storybook/components/Title";
|
|
3
4
|
import DxcRadioGroup from "./RadioGroup";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
4
6
|
|
|
5
7
|
export default {
|
|
6
8
|
title: "Radio Group",
|
|
@@ -18,79 +20,195 @@ const options = [
|
|
|
18
20
|
|
|
19
21
|
const single_disabled_options = [{ label: "Option A", value: "A", disabled: true }];
|
|
20
22
|
|
|
23
|
+
const opinionatedTheme = {
|
|
24
|
+
radioGroup: {
|
|
25
|
+
baseColor: "#0086e6",
|
|
26
|
+
fontColor: "#000000",
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
21
30
|
export const Chromatic = () => (
|
|
22
31
|
<>
|
|
23
32
|
<Title title="Radio input states" theme="light" level={2} />
|
|
24
33
|
<ExampleContainer>
|
|
25
34
|
<Title title="Enabled" theme="light" level={4} />
|
|
26
|
-
<DxcRadioGroup label="
|
|
35
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
27
36
|
</ExampleContainer>
|
|
28
37
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
29
38
|
<Title title="Hovered" theme="light" level={4} />
|
|
30
|
-
<DxcRadioGroup label="
|
|
39
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
31
40
|
</ExampleContainer>
|
|
32
41
|
<ExampleContainer pseudoState="pseudo-active">
|
|
33
42
|
<Title title="Active" theme="light" level={4} />
|
|
34
|
-
<DxcRadioGroup label="
|
|
43
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
35
44
|
</ExampleContainer>
|
|
36
45
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
37
46
|
<Title title="Focused" theme="light" level={4} />
|
|
38
|
-
<DxcRadioGroup label="
|
|
47
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
39
48
|
</ExampleContainer>
|
|
40
49
|
<ExampleContainer>
|
|
41
50
|
<Title title="Disabled" theme="light" level={4} />
|
|
42
|
-
<DxcRadioGroup label="
|
|
51
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
|
|
43
52
|
</ExampleContainer>
|
|
44
53
|
<Title title="Readonly radio input sub-states" theme="light" level={3} />
|
|
45
54
|
<ExampleContainer>
|
|
46
55
|
<Title title="Enabled" theme="light" level={4} />
|
|
47
|
-
<DxcRadioGroup label="
|
|
56
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
48
57
|
</ExampleContainer>
|
|
49
58
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
50
59
|
<Title title="Hovered" theme="light" level={4} />
|
|
51
|
-
<DxcRadioGroup label="
|
|
60
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
52
61
|
</ExampleContainer>
|
|
53
62
|
<ExampleContainer pseudoState="pseudo-active">
|
|
54
63
|
<Title title="Active" theme="light" level={4} />
|
|
55
|
-
<DxcRadioGroup label="
|
|
64
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
56
65
|
</ExampleContainer>
|
|
57
66
|
<Title title="Error radio input sub-states" theme="light" level={3} />
|
|
58
67
|
<ExampleContainer>
|
|
59
68
|
<Title title="Enabled" theme="light" level={4} />
|
|
60
|
-
<DxcRadioGroup
|
|
69
|
+
<DxcRadioGroup
|
|
70
|
+
label="Label"
|
|
71
|
+
helperText="Helper text"
|
|
72
|
+
options={single_option}
|
|
73
|
+
defaultValue="A"
|
|
74
|
+
error="Error message"
|
|
75
|
+
/>
|
|
61
76
|
</ExampleContainer>
|
|
62
77
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
63
78
|
<Title title="Hovered" theme="light" level={4} />
|
|
64
|
-
<DxcRadioGroup
|
|
79
|
+
<DxcRadioGroup
|
|
80
|
+
label="Label"
|
|
81
|
+
helperText="Helper text"
|
|
82
|
+
options={single_option}
|
|
83
|
+
defaultValue="A"
|
|
84
|
+
readonly
|
|
85
|
+
error="Error message"
|
|
86
|
+
/>
|
|
65
87
|
</ExampleContainer>
|
|
66
88
|
<ExampleContainer pseudoState="pseudo-active">
|
|
67
89
|
<Title title="Active" theme="light" level={4} />
|
|
68
|
-
<DxcRadioGroup
|
|
90
|
+
<DxcRadioGroup
|
|
91
|
+
label="Label"
|
|
92
|
+
helperText="Helper text"
|
|
93
|
+
options={single_option}
|
|
94
|
+
defaultValue="A"
|
|
95
|
+
readonly
|
|
96
|
+
error="Error message"
|
|
97
|
+
/>
|
|
69
98
|
</ExampleContainer>
|
|
70
99
|
<Title title="Variants" theme="light" level={2} />
|
|
71
100
|
<ExampleContainer>
|
|
72
101
|
<Title title="Column" theme="light" level={4} />
|
|
73
|
-
<DxcRadioGroup label="
|
|
102
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} />
|
|
74
103
|
</ExampleContainer>
|
|
75
104
|
<ExampleContainer>
|
|
76
105
|
<Title title="Row" theme="light" level={4} />
|
|
77
|
-
<DxcRadioGroup label="
|
|
106
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} stacking="row" />
|
|
78
107
|
</ExampleContainer>
|
|
79
108
|
<ExampleContainer>
|
|
80
109
|
<Title title="Optional" theme="light" level={4} />
|
|
81
|
-
<DxcRadioGroup label="
|
|
110
|
+
<DxcRadioGroup label="Label" optional helperText="Helper text" options={options} stacking="row" />
|
|
82
111
|
</ExampleContainer>
|
|
83
112
|
<ExampleContainer>
|
|
84
113
|
<Title title="Disabled" theme="light" level={4} />
|
|
85
|
-
<DxcRadioGroup label="
|
|
114
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled />
|
|
86
115
|
</ExampleContainer>
|
|
87
116
|
<ExampleContainer>
|
|
88
117
|
<Title title="Readonly" theme="light" level={4} />
|
|
89
|
-
<DxcRadioGroup label="
|
|
118
|
+
<DxcRadioGroup label="Label" readonly helperText="Helper text" options={options} />
|
|
119
|
+
</ExampleContainer>
|
|
120
|
+
<ExampleContainer>
|
|
121
|
+
<Title title="Error space reserved" theme="light" level={4} />
|
|
122
|
+
<DxcRadioGroup label="Label" error="" helperText="Helper text" options={options} />
|
|
90
123
|
</ExampleContainer>
|
|
91
124
|
<ExampleContainer>
|
|
92
125
|
<Title title="Error" theme="light" level={4} />
|
|
93
|
-
<DxcRadioGroup label="
|
|
126
|
+
<DxcRadioGroup label="Label" error="Error message" helperText="Helper text" options={options} />
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
129
|
+
<ExampleContainer>
|
|
130
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
131
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
132
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
133
|
+
</HalstackProvider>
|
|
134
|
+
</ExampleContainer>
|
|
135
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
136
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
137
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
138
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
139
|
+
</HalstackProvider>
|
|
140
|
+
</ExampleContainer>
|
|
141
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
142
|
+
<Title title="Active" theme="light" level={4} />
|
|
143
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
144
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
145
|
+
</HalstackProvider>
|
|
146
|
+
</ExampleContainer>
|
|
147
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
148
|
+
<Title title="Focused" theme="light" level={4} />
|
|
149
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
150
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
151
|
+
</HalstackProvider>
|
|
152
|
+
</ExampleContainer>
|
|
153
|
+
<ExampleContainer>
|
|
154
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
155
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
156
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
|
|
157
|
+
</HalstackProvider>
|
|
158
|
+
</ExampleContainer>
|
|
159
|
+
<ExampleContainer>
|
|
160
|
+
<Title title="Readonly enabled" theme="light" level={4} />
|
|
161
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
162
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" readonly />
|
|
163
|
+
</HalstackProvider>
|
|
164
|
+
</ExampleContainer>
|
|
165
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
166
|
+
<Title title="Readonly hovered" theme="light" level={4} />
|
|
167
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
168
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" readonly />
|
|
169
|
+
</HalstackProvider>
|
|
170
|
+
</ExampleContainer>
|
|
171
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
172
|
+
<Title title="Readonly active" theme="light" level={4} />
|
|
173
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
174
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" readonly />
|
|
175
|
+
</HalstackProvider>
|
|
176
|
+
</ExampleContainer>
|
|
177
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
178
|
+
<Title title="Readonly focused" theme="light" level={4} />
|
|
179
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
180
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" readonly />
|
|
181
|
+
</HalstackProvider>
|
|
182
|
+
</ExampleContainer>
|
|
183
|
+
<ExampleContainer>
|
|
184
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
185
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
186
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
|
|
187
|
+
</HalstackProvider>
|
|
188
|
+
</ExampleContainer>
|
|
189
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
190
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
191
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
192
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
|
|
193
|
+
</HalstackProvider>
|
|
194
|
+
</ExampleContainer>
|
|
195
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
196
|
+
<Title title="Active" theme="light" level={4} />
|
|
197
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
198
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
|
|
199
|
+
</HalstackProvider>
|
|
200
|
+
</ExampleContainer>
|
|
201
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
202
|
+
<Title title="Focused" theme="light" level={4} />
|
|
203
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
204
|
+
<DxcRadioGroup label="Label" options={single_option} defaultValue="A" error="Error message" />
|
|
205
|
+
</HalstackProvider>
|
|
206
|
+
</ExampleContainer>
|
|
207
|
+
<ExampleContainer>
|
|
208
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
209
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
210
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled defaultValue="A" />
|
|
211
|
+
</HalstackProvider>
|
|
94
212
|
</ExampleContainer>
|
|
95
213
|
</>
|
|
96
214
|
);
|