@dxc-technology/halstack-react 0.0.0-d30020b → 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 +71 -0
- 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 +126 -0
- 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 +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +5 -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 +18 -0
- 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 +35 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +25 -28
- package/card/Card.test.js +50 -0
- 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 +155 -0
- 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 +54 -0
- 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 +476 -583
- 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 +835 -0
- 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 +369 -0
- 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 +586 -0
- 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 +457 -0
- 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 +97 -0
- 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 +79 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +186 -0
- 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 +81 -0
- package/link/types.d.ts +7 -23
- package/main.d.ts +10 -15
- package/main.js +48 -82
- 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 +542 -0
- 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 +305 -0
- 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 +181 -0
- 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 +110 -0
- 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/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +53 -37
- package/radio-group/RadioGroup.js +67 -57
- package/radio-group/RadioGroup.stories.tsx +171 -36
- package/radio-group/RadioGroup.test.js +563 -89
- package/radio-group/types.d.ts +82 -4
- 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 +325 -0
- 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 +185 -384
- package/select/Select.stories.tsx +600 -201
- package/select/Select.test.js +2228 -0
- 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 +44 -0
- 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 +250 -0
- 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 +64 -0
- 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 +225 -0
- 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 +26 -0
- 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 +350 -0
- 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 +60 -0
- 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 +224 -345
- package/text-input/TextInput.stories.tsx +310 -197
- package/text-input/TextInput.test.js +1723 -0
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +22 -29
- package/textarea/Textarea.stories.jsx +93 -13
- package/textarea/Textarea.test.js +437 -0
- 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 +156 -0
- 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 +141 -0
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/common/RequiredComponent.js +0 -32
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- 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/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/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- /package/{list → badge}/types.js +0 -0
- /package/{radio → bulleted-list}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → nav-tabs}/types.js +0 -0
|
@@ -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,
|
|
@@ -57,7 +60,9 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
57
60
|
value = _ref.value,
|
|
58
61
|
onChange = _ref.onChange,
|
|
59
62
|
onBlur = _ref.onBlur,
|
|
60
|
-
error = _ref.error
|
|
63
|
+
error = _ref.error,
|
|
64
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
65
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
61
66
|
|
|
62
67
|
var _useState = (0, _react.useState)("radio-group-".concat((0, _uuid.v4)())),
|
|
63
68
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
@@ -76,8 +81,10 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
76
81
|
firstTimeFocus = _useState6[0],
|
|
77
82
|
setFirstTimeFocus = _useState6[1];
|
|
78
83
|
|
|
84
|
+
var colorsTheme = (0, _useTheme["default"])();
|
|
85
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
79
86
|
var optionalItem = {
|
|
80
|
-
label: optionalItemLabel,
|
|
87
|
+
label: optionalItemLabel || translatedLabels.radioGroup.optionalItemLabelDefault,
|
|
81
88
|
value: "",
|
|
82
89
|
disabled: disabled
|
|
83
90
|
};
|
|
@@ -90,7 +97,6 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
90
97
|
currentFocusIndex = _useState8[0],
|
|
91
98
|
setCurrentFocusIndex = _useState8[1];
|
|
92
99
|
|
|
93
|
-
var colorsTheme = (0, _useTheme["default"])();
|
|
94
100
|
var handleOnChange = (0, _react.useCallback)(function (newValue) {
|
|
95
101
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
96
102
|
|
|
@@ -98,70 +104,71 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
98
104
|
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
99
105
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
100
106
|
}
|
|
101
|
-
}, [value, innerValue,
|
|
107
|
+
}, [value, innerValue, onChange]);
|
|
102
108
|
|
|
103
|
-
var handleOnBlur = function handleOnBlur(
|
|
109
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
104
110
|
// If the radio group loses the focus to an element not contained inside it...
|
|
105
|
-
!
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
112
|
+
setFirstTimeFocus(true);
|
|
113
|
+
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
114
|
+
!optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
115
|
+
value: currentValue,
|
|
116
|
+
error: translatedLabels.formFields.requiredSelectionErrorMessage
|
|
117
|
+
}) : onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
118
|
+
value: currentValue
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var handleOnFocus = function handleOnFocus() {
|
|
124
|
+
firstTimeFocus && setFirstTimeFocus(false);
|
|
113
125
|
};
|
|
114
126
|
|
|
115
127
|
var setPreviousRadioChecked = function setPreviousRadioChecked() {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
var index = currentFocusIndex === 0 ? innerOptions.length - 1 : currentFocusIndex - 1;
|
|
128
|
+
setCurrentFocusIndex(function (currentFocusIndex) {
|
|
129
|
+
var index = currentFocusIndex === 0 ? innerOptions.length - 1 : currentFocusIndex - 1;
|
|
119
130
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
while (innerOptions[index].disabled) {
|
|
132
|
+
index = index === 0 ? innerOptions.length - 1 : index - 1;
|
|
133
|
+
}
|
|
123
134
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
135
|
+
handleOnChange(innerOptions[index].value);
|
|
136
|
+
return index;
|
|
137
|
+
});
|
|
127
138
|
};
|
|
128
139
|
|
|
129
140
|
var setNextRadioChecked = function setNextRadioChecked() {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
var index = currentFocusIndex === innerOptions.length - 1 ? 0 : currentFocusIndex + 1;
|
|
141
|
+
setCurrentFocusIndex(function (currentFocusIndex) {
|
|
142
|
+
var index = currentFocusIndex === innerOptions.length - 1 ? 0 : currentFocusIndex + 1;
|
|
133
143
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
144
|
+
while (innerOptions[index].disabled) {
|
|
145
|
+
index = index === innerOptions.length - 1 ? 0 : index + 1;
|
|
146
|
+
}
|
|
137
147
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
148
|
+
handleOnChange(innerOptions[index].value);
|
|
149
|
+
return index;
|
|
150
|
+
});
|
|
141
151
|
};
|
|
142
152
|
|
|
143
153
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
144
|
-
switch (event.
|
|
145
|
-
case
|
|
146
|
-
|
|
147
|
-
case
|
|
148
|
-
|
|
154
|
+
switch (event.key) {
|
|
155
|
+
case "Left":
|
|
156
|
+
case "ArrowLeft":
|
|
157
|
+
case "Up":
|
|
158
|
+
case "ArrowUp":
|
|
149
159
|
event.preventDefault();
|
|
150
160
|
setPreviousRadioChecked();
|
|
151
161
|
break;
|
|
152
162
|
|
|
153
|
-
case
|
|
154
|
-
|
|
155
|
-
case
|
|
156
|
-
|
|
163
|
+
case "Right":
|
|
164
|
+
case "ArrowRight":
|
|
165
|
+
case "Down":
|
|
166
|
+
case "ArrowDown":
|
|
157
167
|
event.preventDefault();
|
|
158
168
|
setNextRadioChecked();
|
|
159
169
|
break;
|
|
160
170
|
|
|
161
|
-
case
|
|
162
|
-
|
|
163
|
-
case 32:
|
|
164
|
-
// space
|
|
171
|
+
case " ":
|
|
165
172
|
event.preventDefault();
|
|
166
173
|
handleOnChange(innerOptions[currentFocusIndex].value);
|
|
167
174
|
break;
|
|
@@ -176,38 +183,41 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
176
183
|
id: radioGroupLabelId,
|
|
177
184
|
helperText: helperText,
|
|
178
185
|
disabled: disabled
|
|
179
|
-
}, label,
|
|
186
|
+
}, label, optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, " ".concat(translatedLabels.formFields.optionalLabel))), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
180
187
|
disabled: disabled
|
|
181
188
|
}, helperText), /*#__PURE__*/_react["default"].createElement(RadioGroup, {
|
|
182
189
|
onBlur: handleOnBlur,
|
|
190
|
+
onFocus: handleOnFocus,
|
|
183
191
|
onKeyDown: handleOnKeyDown,
|
|
184
192
|
stacking: stacking,
|
|
185
193
|
role: "radiogroup",
|
|
186
194
|
"aria-disabled": disabled,
|
|
187
195
|
"aria-labelledby": radioGroupLabelId,
|
|
188
|
-
"aria-invalid": error ?
|
|
196
|
+
"aria-invalid": error ? true : false,
|
|
189
197
|
"aria-errormessage": error ? errorId : undefined,
|
|
190
|
-
"aria-required": !optional
|
|
198
|
+
"aria-required": !disabled && !readonly && !optional,
|
|
199
|
+
"aria-readonly": readonly,
|
|
200
|
+
"aria-orientation": stacking === "column" ? "vertical" : "horizontal"
|
|
191
201
|
}, /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
192
202
|
name: name,
|
|
193
|
-
|
|
203
|
+
disabled: disabled,
|
|
204
|
+
value: (_ref2 = value !== null && value !== void 0 ? value : innerValue) !== null && _ref2 !== void 0 ? _ref2 : "",
|
|
194
205
|
readOnly: true,
|
|
195
206
|
"aria-hidden": "true"
|
|
196
207
|
}), innerOptions.map(function (option, index) {
|
|
197
208
|
return /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
|
|
198
|
-
|
|
199
|
-
|
|
209
|
+
key: "radio-".concat(index),
|
|
210
|
+
label: option.label,
|
|
211
|
+
checked: (value !== null && value !== void 0 ? value : innerValue) === option.value,
|
|
200
212
|
onClick: function onClick() {
|
|
201
213
|
handleOnChange(option.value);
|
|
202
214
|
setCurrentFocusIndex(index);
|
|
203
215
|
},
|
|
204
|
-
onFocus: function onFocus() {
|
|
205
|
-
!firstTimeFocus ? handleOnChange(option.value) : setFirstTimeFocus(false);
|
|
206
|
-
},
|
|
207
216
|
error: error,
|
|
208
217
|
disabled: option.disabled || disabled,
|
|
209
218
|
focused: currentFocusIndex === index,
|
|
210
|
-
readonly: readonly
|
|
219
|
+
readonly: readonly,
|
|
220
|
+
tabIndex: tabIndex
|
|
211
221
|
});
|
|
212
222
|
})), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
213
223
|
id: errorId,
|
|
@@ -253,7 +263,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
253
263
|
return props.theme.groupLabelMargin;
|
|
254
264
|
});
|
|
255
265
|
|
|
256
|
-
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) {
|
|
257
267
|
return props.stacking;
|
|
258
268
|
}, function (props) {
|
|
259
269
|
return props.theme.groupVerticalGutter;
|
|
@@ -1,12 +1,16 @@
|
|
|
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",
|
|
7
9
|
component: DxcRadioGroup,
|
|
8
10
|
};
|
|
9
11
|
|
|
12
|
+
const single_option = [{ label: "Option A", value: "A" }];
|
|
13
|
+
|
|
10
14
|
const options = [
|
|
11
15
|
{ label: "Option 1", value: "1" },
|
|
12
16
|
{ label: "Option 2", value: "2" },
|
|
@@ -14,66 +18,197 @@ const options = [
|
|
|
14
18
|
{ label: "Option 4", value: "4" },
|
|
15
19
|
];
|
|
16
20
|
|
|
17
|
-
const single_disabled_options = [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const single_disabled_options = [{ label: "Option A", value: "A", disabled: true }];
|
|
22
|
+
|
|
23
|
+
const opinionatedTheme = {
|
|
24
|
+
radioGroup: {
|
|
25
|
+
baseColor: "#0086e6",
|
|
26
|
+
fontColor: "#000000",
|
|
27
|
+
},
|
|
28
|
+
};
|
|
22
29
|
|
|
23
30
|
export const Chromatic = () => (
|
|
24
31
|
<>
|
|
32
|
+
<Title title="Radio input states" theme="light" level={2} />
|
|
25
33
|
<ExampleContainer>
|
|
26
|
-
<Title title="
|
|
27
|
-
<DxcRadioGroup label="
|
|
34
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
35
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
28
36
|
</ExampleContainer>
|
|
29
|
-
<ExampleContainer>
|
|
30
|
-
<Title title="
|
|
31
|
-
<DxcRadioGroup label="
|
|
37
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
38
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
39
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
32
40
|
</ExampleContainer>
|
|
33
|
-
<ExampleContainer>
|
|
34
|
-
<Title title="
|
|
35
|
-
<DxcRadioGroup label="
|
|
41
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
42
|
+
<Title title="Active" theme="light" level={4} />
|
|
43
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
46
|
+
<Title title="Focused" theme="light" level={4} />
|
|
47
|
+
<DxcRadioGroup label="Label" helperText="Helper text" defaultValue="A" options={single_option} />
|
|
36
48
|
</ExampleContainer>
|
|
37
49
|
<ExampleContainer>
|
|
38
50
|
<Title title="Disabled" theme="light" level={4} />
|
|
39
|
-
<DxcRadioGroup
|
|
40
|
-
label="Disabled"
|
|
41
|
-
error="Error message"
|
|
42
|
-
helperText="Helper text"
|
|
43
|
-
options={options}
|
|
44
|
-
disabled
|
|
45
|
-
optional
|
|
46
|
-
defaultValue="2"
|
|
47
|
-
/>
|
|
51
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_disabled_options} defaultValue="A" />
|
|
48
52
|
</ExampleContainer>
|
|
53
|
+
<Title title="Readonly radio input sub-states" theme="light" level={3} />
|
|
49
54
|
<ExampleContainer>
|
|
50
|
-
<Title title="
|
|
51
|
-
<DxcRadioGroup label="
|
|
55
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
56
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
57
|
+
</ExampleContainer>
|
|
58
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
59
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
60
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
52
61
|
</ExampleContainer>
|
|
62
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
63
|
+
<Title title="Active" theme="light" level={4} />
|
|
64
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={single_option} defaultValue="A" readonly />
|
|
65
|
+
</ExampleContainer>
|
|
66
|
+
<Title title="Error radio input sub-states" theme="light" level={3} />
|
|
53
67
|
<ExampleContainer>
|
|
54
|
-
<Title title="
|
|
68
|
+
<Title title="Enabled" theme="light" level={4} />
|
|
55
69
|
<DxcRadioGroup
|
|
56
|
-
label="
|
|
57
|
-
optionalItemLabel="No selection"
|
|
58
|
-
optional
|
|
70
|
+
label="Label"
|
|
59
71
|
helperText="Helper text"
|
|
60
|
-
options={
|
|
61
|
-
|
|
72
|
+
options={single_option}
|
|
73
|
+
defaultValue="A"
|
|
74
|
+
error="Error message"
|
|
62
75
|
/>
|
|
63
76
|
</ExampleContainer>
|
|
64
|
-
<ExampleContainer>
|
|
65
|
-
<Title title="
|
|
77
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
78
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
66
79
|
<DxcRadioGroup
|
|
67
|
-
label="
|
|
80
|
+
label="Label"
|
|
81
|
+
helperText="Helper text"
|
|
82
|
+
options={single_option}
|
|
83
|
+
defaultValue="A"
|
|
84
|
+
readonly
|
|
68
85
|
error="Error message"
|
|
86
|
+
/>
|
|
87
|
+
</ExampleContainer>
|
|
88
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
89
|
+
<Title title="Active" theme="light" level={4} />
|
|
90
|
+
<DxcRadioGroup
|
|
91
|
+
label="Label"
|
|
69
92
|
helperText="Helper text"
|
|
70
|
-
options={
|
|
71
|
-
defaultValue="
|
|
93
|
+
options={single_option}
|
|
94
|
+
defaultValue="A"
|
|
95
|
+
readonly
|
|
96
|
+
error="Error message"
|
|
72
97
|
/>
|
|
73
98
|
</ExampleContainer>
|
|
99
|
+
<Title title="Variants" theme="light" level={2} />
|
|
100
|
+
<ExampleContainer>
|
|
101
|
+
<Title title="Column" theme="light" level={4} />
|
|
102
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} />
|
|
103
|
+
</ExampleContainer>
|
|
104
|
+
<ExampleContainer>
|
|
105
|
+
<Title title="Row" theme="light" level={4} />
|
|
106
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} stacking="row" />
|
|
107
|
+
</ExampleContainer>
|
|
108
|
+
<ExampleContainer>
|
|
109
|
+
<Title title="Optional" theme="light" level={4} />
|
|
110
|
+
<DxcRadioGroup label="Label" optional helperText="Helper text" options={options} stacking="row" />
|
|
111
|
+
</ExampleContainer>
|
|
112
|
+
<ExampleContainer>
|
|
113
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
114
|
+
<DxcRadioGroup label="Label" helperText="Helper text" options={options} disabled />
|
|
115
|
+
</ExampleContainer>
|
|
74
116
|
<ExampleContainer>
|
|
75
117
|
<Title title="Readonly" theme="light" level={4} />
|
|
76
|
-
<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} />
|
|
123
|
+
</ExampleContainer>
|
|
124
|
+
<ExampleContainer>
|
|
125
|
+
<Title title="Error" theme="light" level={4} />
|
|
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>
|
|
77
212
|
</ExampleContainer>
|
|
78
213
|
</>
|
|
79
214
|
);
|