@dxc-technology/halstack-react 0.0.0-e201636 → 0.0.0-e26622f
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/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +2 -3
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +2 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +10 -3
- package/alert/Alert.js +1 -1
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.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/{list → bulleted-list}/types.js +0 -0
- package/button/Button.js +43 -61
- package/button/Button.stories.tsx +9 -0
- package/button/types.d.ts +7 -7
- package/card/Card.js +34 -36
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.js +87 -95
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +2 -2
- package/chip/types.d.ts +1 -1
- package/common/variables.js +56 -18
- package/date-input/DateInput.js +3 -3
- package/dialog/Dialog.js +52 -28
- package/dialog/Dialog.stories.tsx +57 -2
- package/dialog/Dialog.test.js +34 -4
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +244 -247
- package/dropdown/Dropdown.stories.tsx +126 -63
- package/dropdown/Dropdown.test.js +509 -108
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +25 -5
- 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/{row → flex}/types.js +0 -0
- package/footer/Footer.stories.tsx +8 -1
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +74 -72
- package/header/Header.stories.tsx +4 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +37 -65
- package/layout/ApplicationLayout.stories.tsx +80 -44
- package/layout/types.d.ts +17 -27
- package/link/Link.js +1 -1
- package/link/Link.stories.tsx +13 -6
- package/link/types.d.ts +1 -1
- package/main.d.ts +5 -8
- package/main.js +28 -52
- package/number-input/NumberInput.test.js +1 -1
- package/package.json +10 -9
- package/paginator/Paginator.test.js +42 -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.test.js +13 -12
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +56 -50
- package/progress-bar/ProgressBar.stories.jsx +3 -1
- package/progress-bar/ProgressBar.test.js +67 -22
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +25 -20
- package/quick-nav/QuickNav.stories.tsx +131 -26
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +26 -29
- package/radio-group/RadioGroup.stories.tsx +1 -0
- package/radio-group/RadioGroup.test.js +28 -58
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/ResultsetTable.test.js +42 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +53 -7
- package/select/Select.js +42 -43
- package/select/Select.stories.tsx +131 -98
- package/select/Select.test.js +105 -50
- package/select/types.d.ts +2 -5
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +176 -55
- package/sidenav/Sidenav.stories.tsx +154 -156
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.js +116 -92
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +2 -2
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +132 -66
- package/switch/Switch.stories.tsx +8 -30
- package/switch/Switch.test.js +144 -17
- package/switch/types.d.ts +3 -4
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +15 -5
- package/tabs-nav/NavTabs.js +5 -5
- package/tabs-nav/Tab.js +3 -5
- package/tabs-nav/types.d.ts +1 -1
- package/tag/Tag.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.js +7 -5
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +181 -278
- package/text-input/TextInput.stories.tsx +189 -182
- package/text-input/TextInput.test.js +165 -163
- package/text-input/types.d.ts +22 -3
- package/toggle-group/types.d.ts +1 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/{stack → typography}/types.js +0 -0
- package/wizard/Wizard.js +9 -16
- package/wizard/Wizard.stories.tsx +20 -1
- package/wizard/types.d.ts +5 -4
- 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/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 -28
- 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 -24
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
|
@@ -27,7 +27,7 @@ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabel
|
|
|
27
27
|
|
|
28
28
|
var _Radio = _interopRequireDefault(require("./Radio"));
|
|
29
29
|
|
|
30
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6
|
|
30
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
31
31
|
|
|
32
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
33
|
|
|
@@ -41,6 +41,8 @@ var getInitialFocusIndex = function getInitialFocusIndex(innerOptions, value) {
|
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
44
|
+
var _ref2;
|
|
45
|
+
|
|
44
46
|
var label = _ref.label,
|
|
45
47
|
name = _ref.name,
|
|
46
48
|
helperText = _ref.helperText,
|
|
@@ -102,11 +104,11 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
102
104
|
value !== null && value !== void 0 ? value : setInnerValue(newValue);
|
|
103
105
|
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
104
106
|
}
|
|
105
|
-
}, [value, innerValue,
|
|
107
|
+
}, [value, innerValue, onChange]);
|
|
106
108
|
|
|
107
|
-
var handleOnBlur = function handleOnBlur(
|
|
109
|
+
var handleOnBlur = function handleOnBlur(event) {
|
|
108
110
|
// If the radio group loses the focus to an element not contained inside it...
|
|
109
|
-
if (!
|
|
111
|
+
if (!event.currentTarget.contains(event.relatedTarget)) {
|
|
110
112
|
setFirstTimeFocus(true);
|
|
111
113
|
var currentValue = value !== null && value !== void 0 ? value : innerValue;
|
|
112
114
|
!optional && !Boolean(currentValue) ? onBlur === null || onBlur === void 0 ? void 0 : onBlur({
|
|
@@ -149,27 +151,24 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
149
151
|
};
|
|
150
152
|
|
|
151
153
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
152
|
-
switch (event.
|
|
153
|
-
case
|
|
154
|
-
|
|
155
|
-
case
|
|
156
|
-
|
|
154
|
+
switch (event.key) {
|
|
155
|
+
case "Left":
|
|
156
|
+
case "ArrowLeft":
|
|
157
|
+
case "Up":
|
|
158
|
+
case "ArrowUp":
|
|
157
159
|
event.preventDefault();
|
|
158
160
|
setPreviousRadioChecked();
|
|
159
161
|
break;
|
|
160
162
|
|
|
161
|
-
case
|
|
162
|
-
|
|
163
|
-
case
|
|
164
|
-
|
|
163
|
+
case "Right":
|
|
164
|
+
case "ArrowRight":
|
|
165
|
+
case "Down":
|
|
166
|
+
case "ArrowDown":
|
|
165
167
|
event.preventDefault();
|
|
166
168
|
setNextRadioChecked();
|
|
167
169
|
break;
|
|
168
170
|
|
|
169
|
-
case
|
|
170
|
-
|
|
171
|
-
case 32:
|
|
172
|
-
// space
|
|
171
|
+
case " ":
|
|
173
172
|
event.preventDefault();
|
|
174
173
|
handleOnChange(innerOptions[currentFocusIndex].value);
|
|
175
174
|
break;
|
|
@@ -184,7 +183,7 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
184
183
|
id: radioGroupLabelId,
|
|
185
184
|
helperText: helperText,
|
|
186
185
|
disabled: disabled
|
|
187
|
-
}, label,
|
|
186
|
+
}, label, optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, " ".concat(translatedLabels.formFields.optionalLabel))), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
|
|
188
187
|
disabled: disabled
|
|
189
188
|
}, helperText), /*#__PURE__*/_react["default"].createElement(RadioGroup, {
|
|
190
189
|
onBlur: handleOnBlur,
|
|
@@ -194,20 +193,20 @@ var DxcRadioGroup = /*#__PURE__*/_react["default"].forwardRef(function (_ref, re
|
|
|
194
193
|
role: "radiogroup",
|
|
195
194
|
"aria-disabled": disabled,
|
|
196
195
|
"aria-labelledby": radioGroupLabelId,
|
|
197
|
-
"aria-invalid": error ?
|
|
196
|
+
"aria-invalid": error ? true : false,
|
|
198
197
|
"aria-errormessage": error ? errorId : undefined,
|
|
199
198
|
"aria-required": !disabled && !readonly && !optional,
|
|
200
199
|
"aria-readonly": readonly,
|
|
201
200
|
"aria-orientation": stacking === "column" ? "vertical" : "horizontal"
|
|
202
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
201
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
202
|
+
type: "hidden",
|
|
203
203
|
name: name,
|
|
204
|
-
value: value !== null && value !== void 0 ? value : innerValue
|
|
205
|
-
readOnly: true,
|
|
206
|
-
"aria-hidden": "true"
|
|
204
|
+
value: (_ref2 = value !== null && value !== void 0 ? value : innerValue) !== null && _ref2 !== void 0 ? _ref2 : ""
|
|
207
205
|
}), innerOptions.map(function (option, index) {
|
|
208
206
|
return /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
key: "radio-".concat(index),
|
|
208
|
+
label: option.label,
|
|
209
|
+
checked: (value !== null && value !== void 0 ? value : innerValue) === option.value,
|
|
211
210
|
onClick: function onClick() {
|
|
212
211
|
handleOnChange(option.value);
|
|
213
212
|
setCurrentFocusIndex(index);
|
|
@@ -262,7 +261,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
|
|
|
262
261
|
return props.theme.groupLabelMargin;
|
|
263
262
|
});
|
|
264
263
|
|
|
265
|
-
var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n flex-direction: ", ";\n
|
|
264
|
+
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) {
|
|
266
265
|
return props.stacking;
|
|
267
266
|
}, function (props) {
|
|
268
267
|
return props.theme.groupVerticalGutter;
|
|
@@ -270,9 +269,7 @@ var RadioGroup = _styledComponents["default"].div(_templateObject5 || (_template
|
|
|
270
269
|
return props.theme.groupHorizontalGutter;
|
|
271
270
|
});
|
|
272
271
|
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
var Error = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n margin-top: 0.5rem;\n"])), function (props) {
|
|
272
|
+
var Error = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n margin-top: 0.5rem;\n"])), function (props) {
|
|
276
273
|
return props.theme.errorMessageColor;
|
|
277
274
|
}, function (props) {
|
|
278
275
|
return props.theme.fontFamily;
|
|
@@ -4,12 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
|
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
6
|
|
|
7
|
-
var _RadioGroup = _interopRequireDefault(require("./RadioGroup"));
|
|
8
|
-
|
|
9
7
|
var _react2 = require("@testing-library/react");
|
|
10
8
|
|
|
11
9
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
12
10
|
|
|
11
|
+
var _RadioGroup = _interopRequireDefault(require("./RadioGroup.tsx"));
|
|
12
|
+
|
|
13
13
|
var options = [{
|
|
14
14
|
label: "Option 01",
|
|
15
15
|
value: "1"
|
|
@@ -38,7 +38,7 @@ var options = [{
|
|
|
38
38
|
label: "Option 09",
|
|
39
39
|
value: "9"
|
|
40
40
|
}];
|
|
41
|
-
var
|
|
41
|
+
var singleDisabledOptions = [{
|
|
42
42
|
label: "Option 01",
|
|
43
43
|
value: "1"
|
|
44
44
|
}, {
|
|
@@ -107,8 +107,8 @@ describe("Radio Group component tests", function () {
|
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
_react2.fireEvent.keyDown(radioGroup, {
|
|
110
|
-
key: "
|
|
111
|
-
code: "
|
|
110
|
+
key: " ",
|
|
111
|
+
code: "Space",
|
|
112
112
|
keyCode: 13,
|
|
113
113
|
charCode: 13
|
|
114
114
|
});
|
|
@@ -135,7 +135,7 @@ describe("Radio Group component tests", function () {
|
|
|
135
135
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
136
136
|
name: "test",
|
|
137
137
|
label: "test-radioGroup-label",
|
|
138
|
-
options:
|
|
138
|
+
options: singleDisabledOptions
|
|
139
139
|
})),
|
|
140
140
|
getByRole = _render4.getByRole,
|
|
141
141
|
getAllByRole = _render4.getAllByRole;
|
|
@@ -403,7 +403,7 @@ describe("Radio Group component tests", function () {
|
|
|
403
403
|
expect(onChange).not.toHaveBeenCalled();
|
|
404
404
|
expect(document.activeElement).toEqual(checkedRadio);
|
|
405
405
|
});
|
|
406
|
-
test("The '
|
|
406
|
+
test("The 'space' key checks the current focused option if anyone is checked", function () {
|
|
407
407
|
var onChange = jest.fn();
|
|
408
408
|
|
|
409
409
|
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
@@ -422,37 +422,7 @@ describe("Radio Group component tests", function () {
|
|
|
422
422
|
var submitInput = container.querySelector("input[name=\"test\"]");
|
|
423
423
|
|
|
424
424
|
_react2.fireEvent.keyDown(radioGroup, {
|
|
425
|
-
key: "
|
|
426
|
-
code: "Enter",
|
|
427
|
-
keyCode: 13,
|
|
428
|
-
charCode: 13
|
|
429
|
-
});
|
|
430
|
-
|
|
431
|
-
expect(onChange).toHaveBeenCalledWith("1");
|
|
432
|
-
expect(checkedRadio.getAttribute("aria-checked")).toBe("true");
|
|
433
|
-
expect(checkedRadio.tabIndex).toBe(0);
|
|
434
|
-
expect(submitInput.value).toBe("1");
|
|
435
|
-
});
|
|
436
|
-
test("The 'space' key checks the current focused option if anyone is checked", function () {
|
|
437
|
-
var onChange = jest.fn();
|
|
438
|
-
|
|
439
|
-
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
440
|
-
name: "test",
|
|
441
|
-
label: "test-radio-group-label",
|
|
442
|
-
helperText: "test-radio-group-helper-text",
|
|
443
|
-
options: options,
|
|
444
|
-
onChange: onChange
|
|
445
|
-
})),
|
|
446
|
-
getByRole = _render15.getByRole,
|
|
447
|
-
getAllByRole = _render15.getAllByRole,
|
|
448
|
-
container = _render15.container;
|
|
449
|
-
|
|
450
|
-
var radioGroup = getByRole("radiogroup");
|
|
451
|
-
var checkedRadio = getAllByRole("radio")[0];
|
|
452
|
-
var submitInput = container.querySelector("input[name=\"test\"]");
|
|
453
|
-
|
|
454
|
-
_react2.fireEvent.keyDown(radioGroup, {
|
|
455
|
-
key: "Space",
|
|
425
|
+
key: " ",
|
|
456
426
|
code: "Space",
|
|
457
427
|
keyCode: 32,
|
|
458
428
|
charCode: 32
|
|
@@ -467,7 +437,7 @@ describe("Radio Group component tests", function () {
|
|
|
467
437
|
var onChange = jest.fn();
|
|
468
438
|
var onBlur = jest.fn();
|
|
469
439
|
|
|
470
|
-
var
|
|
440
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
471
441
|
name: "test",
|
|
472
442
|
label: "test-radio-group-label",
|
|
473
443
|
helperText: "test-radio-group-helper-text",
|
|
@@ -475,9 +445,9 @@ describe("Radio Group component tests", function () {
|
|
|
475
445
|
onChange: onChange,
|
|
476
446
|
onBlur: onBlur
|
|
477
447
|
})),
|
|
478
|
-
getByRole =
|
|
479
|
-
getAllByRole =
|
|
480
|
-
container =
|
|
448
|
+
getByRole = _render15.getByRole,
|
|
449
|
+
getAllByRole = _render15.getAllByRole,
|
|
450
|
+
container = _render15.container;
|
|
481
451
|
|
|
482
452
|
var radioGroup = getByRole("radiogroup");
|
|
483
453
|
var radios = getAllByRole("radio");
|
|
@@ -510,7 +480,7 @@ describe("Radio Group component tests", function () {
|
|
|
510
480
|
var onChange = jest.fn();
|
|
511
481
|
var onBlur = jest.fn();
|
|
512
482
|
|
|
513
|
-
var
|
|
483
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
514
484
|
defaultValue: "8",
|
|
515
485
|
name: "test",
|
|
516
486
|
label: "test-radio-group-label",
|
|
@@ -519,9 +489,9 @@ describe("Radio Group component tests", function () {
|
|
|
519
489
|
onChange: onChange,
|
|
520
490
|
onBlur: onBlur
|
|
521
491
|
})),
|
|
522
|
-
getByRole =
|
|
523
|
-
getAllByRole =
|
|
524
|
-
container =
|
|
492
|
+
getByRole = _render16.getByRole,
|
|
493
|
+
getAllByRole = _render16.getAllByRole,
|
|
494
|
+
container = _render16.container;
|
|
525
495
|
|
|
526
496
|
var radioGroup = getByRole("radiogroup");
|
|
527
497
|
var radios = getAllByRole("radio");
|
|
@@ -559,7 +529,7 @@ describe("Radio Group component tests", function () {
|
|
|
559
529
|
var onChange = jest.fn();
|
|
560
530
|
var onBlur = jest.fn();
|
|
561
531
|
|
|
562
|
-
var
|
|
532
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
563
533
|
defaultValue: "2",
|
|
564
534
|
name: "test",
|
|
565
535
|
label: "test-radio-group-label",
|
|
@@ -568,9 +538,9 @@ describe("Radio Group component tests", function () {
|
|
|
568
538
|
onChange: onChange,
|
|
569
539
|
onBlur: onBlur
|
|
570
540
|
})),
|
|
571
|
-
getByRole =
|
|
572
|
-
getAllByRole =
|
|
573
|
-
container =
|
|
541
|
+
getByRole = _render17.getByRole,
|
|
542
|
+
getAllByRole = _render17.getAllByRole,
|
|
543
|
+
container = _render17.container;
|
|
574
544
|
|
|
575
545
|
var radioGroup = getByRole("radiogroup");
|
|
576
546
|
var radios = getAllByRole("radio");
|
|
@@ -607,16 +577,16 @@ describe("Radio Group component tests", function () {
|
|
|
607
577
|
test("Keyboard focus movement continues from the last radio input clicked", function () {
|
|
608
578
|
var onChange = jest.fn();
|
|
609
579
|
|
|
610
|
-
var
|
|
580
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
611
581
|
name: "test",
|
|
612
582
|
label: "test-radio-group-label",
|
|
613
583
|
helperText: "test-radio-group-helper-text",
|
|
614
584
|
options: options,
|
|
615
585
|
onChange: onChange
|
|
616
586
|
})),
|
|
617
|
-
getByRole =
|
|
618
|
-
getAllByRole =
|
|
619
|
-
container =
|
|
587
|
+
getByRole = _render18.getByRole,
|
|
588
|
+
getAllByRole = _render18.getAllByRole,
|
|
589
|
+
container = _render18.container;
|
|
620
590
|
|
|
621
591
|
var radioGroup = getByRole("radiogroup");
|
|
622
592
|
var radios = getAllByRole("radio");
|
|
@@ -655,7 +625,7 @@ describe("Radio Group component tests", function () {
|
|
|
655
625
|
test("Readonly radio group lets the user move the focus, but neither click nor keyboard press changes the value", function () {
|
|
656
626
|
var onChange = jest.fn();
|
|
657
627
|
|
|
658
|
-
var
|
|
628
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
659
629
|
name: "test",
|
|
660
630
|
label: "test-radio-group-label",
|
|
661
631
|
helperText: "test-radio-group-helper-text",
|
|
@@ -663,9 +633,9 @@ describe("Radio Group component tests", function () {
|
|
|
663
633
|
onChange: onChange,
|
|
664
634
|
readonly: true
|
|
665
635
|
})),
|
|
666
|
-
getByRole =
|
|
667
|
-
getAllByRole =
|
|
668
|
-
container =
|
|
636
|
+
getByRole = _render19.getByRole,
|
|
637
|
+
getAllByRole = _render19.getAllByRole,
|
|
638
|
+
container = _render19.container;
|
|
669
639
|
|
|
670
640
|
var radioGroup = getByRole("radiogroup");
|
|
671
641
|
var radios = getAllByRole("radio");
|
package/radio-group/types.d.ts
CHANGED
|
@@ -102,8 +102,8 @@ export declare type RefType = HTMLDivElement;
|
|
|
102
102
|
* Single radio prop types.
|
|
103
103
|
*/
|
|
104
104
|
export declare type RadioProps = {
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
label: string;
|
|
106
|
+
checked: boolean;
|
|
107
107
|
onClick: () => void;
|
|
108
108
|
error?: string;
|
|
109
109
|
disabled: boolean;
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
6
|
+
|
|
7
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
8
|
+
|
|
5
9
|
var _react = _interopRequireDefault(require("react"));
|
|
6
10
|
|
|
7
11
|
var _react2 = require("@testing-library/react");
|
|
@@ -10,6 +14,44 @@ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
|
10
14
|
|
|
11
15
|
var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
|
|
12
16
|
|
|
17
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
18
|
+
global.globalThis = global;
|
|
19
|
+
|
|
20
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
21
|
+
function ResizeObserver(cb) {
|
|
22
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
23
|
+
this.cb = cb;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
27
|
+
key: "observe",
|
|
28
|
+
value: function observe() {
|
|
29
|
+
this.cb([{
|
|
30
|
+
borderBoxSize: {
|
|
31
|
+
inlineSize: 0,
|
|
32
|
+
blockSize: 0
|
|
33
|
+
}
|
|
34
|
+
}]);
|
|
35
|
+
}
|
|
36
|
+
}, {
|
|
37
|
+
key: "unobserve",
|
|
38
|
+
value: function unobserve() {}
|
|
39
|
+
}]);
|
|
40
|
+
return ResizeObserver;
|
|
41
|
+
}();
|
|
42
|
+
|
|
43
|
+
global.DOMRect = {
|
|
44
|
+
fromRect: function fromRect() {
|
|
45
|
+
return {
|
|
46
|
+
top: 0,
|
|
47
|
+
left: 0,
|
|
48
|
+
bottom: 0,
|
|
49
|
+
right: 0,
|
|
50
|
+
width: 0,
|
|
51
|
+
height: 0
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
13
55
|
var columns = [{
|
|
14
56
|
displayValue: "Id",
|
|
15
57
|
isSortable: false
|
package/select/Listbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ListboxProps } from "./types";
|
|
3
|
-
declare const _default: React.MemoExoticComponent<
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, getSelectWidth, }: ListboxProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
package/select/Listbox.js
CHANGED
|
@@ -11,7 +11,9 @@ exports["default"] = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
17
|
|
|
16
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
17
19
|
|
|
@@ -37,7 +39,7 @@ var groupsHaveOptions = function groupsHaveOptions(options) {
|
|
|
37
39
|
}) : true;
|
|
38
40
|
};
|
|
39
41
|
|
|
40
|
-
var Listbox =
|
|
42
|
+
var Listbox = function Listbox(_ref) {
|
|
41
43
|
var id = _ref.id,
|
|
42
44
|
currentValue = _ref.currentValue,
|
|
43
45
|
options = _ref.options,
|
|
@@ -47,9 +49,17 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
47
49
|
optional = _ref.optional,
|
|
48
50
|
optionalItem = _ref.optionalItem,
|
|
49
51
|
searchable = _ref.searchable,
|
|
50
|
-
handleOptionOnClick = _ref.handleOptionOnClick
|
|
52
|
+
handleOptionOnClick = _ref.handleOptionOnClick,
|
|
53
|
+
getSelectWidth = _ref.getSelectWidth;
|
|
51
54
|
var colorsTheme = (0, _useTheme["default"])();
|
|
52
55
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
56
|
+
var listboxRef = (0, _react.useRef)(null);
|
|
57
|
+
|
|
58
|
+
var _useState = (0, _react.useState)(null),
|
|
59
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
|
+
styles = _useState2[0],
|
|
61
|
+
setStyles = _useState2[1];
|
|
62
|
+
|
|
53
63
|
var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
|
|
54
64
|
|
|
55
65
|
var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
|
|
@@ -92,6 +102,42 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
92
102
|
}
|
|
93
103
|
};
|
|
94
104
|
|
|
105
|
+
(0, _react.useLayoutEffect)(function () {
|
|
106
|
+
if (currentValue && !multiple) {
|
|
107
|
+
var _listEl$scrollTo;
|
|
108
|
+
|
|
109
|
+
var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
|
|
110
|
+
var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
|
|
111
|
+
listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
|
|
112
|
+
top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}, [currentValue, multiple]);
|
|
116
|
+
(0, _react.useLayoutEffect)(function () {
|
|
117
|
+
var _listboxRef$current, _visualFocusedOptionE;
|
|
118
|
+
|
|
119
|
+
var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
|
|
120
|
+
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
121
|
+
block: "nearest",
|
|
122
|
+
inline: "start"
|
|
123
|
+
});
|
|
124
|
+
}, [visualFocusIndex]);
|
|
125
|
+
|
|
126
|
+
var handleResize = function handleResize() {
|
|
127
|
+
setStyles({
|
|
128
|
+
width: getSelectWidth()
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
(0, _react.useLayoutEffect)(function () {
|
|
133
|
+
handleResize();
|
|
134
|
+
}, [getSelectWidth]);
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
window.addEventListener("resize", handleResize);
|
|
137
|
+
return function () {
|
|
138
|
+
window.removeEventListener("resize", handleResize);
|
|
139
|
+
};
|
|
140
|
+
}, [getSelectWidth]);
|
|
95
141
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
96
142
|
theme: colorsTheme.select
|
|
97
143
|
}, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
|
|
@@ -102,10 +148,10 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
102
148
|
onMouseDown: function onMouseDown(event) {
|
|
103
149
|
event.preventDefault();
|
|
104
150
|
},
|
|
105
|
-
ref:
|
|
151
|
+
ref: listboxRef,
|
|
106
152
|
role: "listbox",
|
|
107
153
|
"aria-multiselectable": multiple,
|
|
108
|
-
|
|
154
|
+
style: styles
|
|
109
155
|
}, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
|
|
110
156
|
key: "option-".concat(optionalItem.value),
|
|
111
157
|
id: "option-".concat(0),
|
|
@@ -117,9 +163,9 @@ var Listbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
117
163
|
isLastOption: lastOptionIndex === 0,
|
|
118
164
|
isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
|
|
119
165
|
}), options.map(mapOptionFunc)));
|
|
120
|
-
}
|
|
166
|
+
};
|
|
121
167
|
|
|
122
|
-
var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
168
|
+
var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
123
169
|
return props.theme.listDialogBackgroundColor;
|
|
124
170
|
}, function (props) {
|
|
125
171
|
return props.theme.listDialogBorderColor;
|